Phoenix Logo

phoenix_title wx.lib.agw.buttonpanel.ButtonPanel

A custom panel class with gradient background shading with the possibility to add buttons and controls still respecting the gradient background.


class_hierarchy Class Hierarchy

Inheritance diagram for class ButtonPanel:


appearance Control Appearance


wxMSW

wxMSW

wxMAC

wxMAC

wxGTK

wxGTK


super_classes Known Superclasses

wx.Panel


method_summary Methods Summary

__init__ Default class constructor.
AddButton Adds a button to ButtonPanel.
AddControl Adds a wxPython control to ButtonPanel.
AddSeparator Adds a separator line to ButtonPanel.
AddSpacer Adds a spacer (stretchable or fixed-size) to ButtonPanel.
Clear Clears the ButtonPanel.
DoGetBestSize Gets the size which best suits ButtonPanel: for a control, it would be
DoGiveHelp Shows tooltips and long help strings in StatusBar.
DoLayout Do the Layout for ButtonPanel.
FlexibleLayout Layout the items when the main caption exists.
GetAlignment Returns the buttons alignment.
GetBarText Returns the main caption text.
GetBPArt Returns the associated BPArt art provider.
GetControls Returns the wxPython controls that belongs to ButtonPanel.
GetItemSize Returns the size of an item in the main ButtonPanel sizer.
GetNonFlexibleChildren Returns all the ButtonPanel main sizer’s children that are not
GetStyle Returns the ButtonPanel window style.
GetUseHelp Returns whether or not short and long help strings should be displayed as tooltips
HasBarText Returns whether ButtonPanel has a main caption text or not.
HitTest HitTest method for ButtonPanel.
IsStandard Returns whether ButtonPanel is aligned “Standard” (left/top) or not.
IsVertical Returns whether ButtonPanel is vertically aligned or not.
LayoutItems Layout the items using a different algorithms depending on the existance
OnEraseBackground Handles the wx.EVT_ERASE_BACKGROUND event for ButtonPanel.
OnLeftDown Handles the wx.EVT_LEFT_DOWN event for ButtonPanel.
OnLeftUp Handles the wx.EVT_LEFT_UP event for ButtonPanel.
OnMouseEnterWindow Handles the wx.EVT_ENTER_WINDOW event for ButtonPanel.
OnMouseLeave Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel.
OnMouseMove Handles the wx.EVT_MOTION event for ButtonPanel.
OnPaint Handles the wx.EVT_PAINT event for ButtonPanel.
OnSize Handles the wx.EVT_SIZE event for ButtonPanel.
OnStatusBarTimer Handles the timer expiring to delete the long help string in StatusBar.
ReCreateSizer Recreates the ButtonPanel sizer accordingly to the alignment specified.
RemoveAllButtons Remove all the buttons from ButtonPanel.
RemoveAllSeparators Remove all the separators from ButtonPanel.
RemoveHelp Removes the tooltips and statusbar help (if any) for a button.
RemoveText Removes the main caption text.
RepaintOldSelection Repaints the old selected/hovered button.
SetAlignment Sets the buttons alignment.
SetBarText Sets the main caption text.
SetBPArt Sets a new BPArt art provider to ButtonPanel.
SetStyle Sets the ButtonPanel window style.
SetUseHelp Sets whether or not short and long help strings should be displayed as tooltips
SizeLayout Layout the items when no main caption exists.

api Class API



class ButtonPanel(wx.Panel)

A custom panel class with gradient background shading with the possibility to add buttons and controls still respecting the gradient background.


Methods



__init__(self, parent, id=wx.ID_ANY, text="", agwStyle=BP_DEFAULT_STYLE, alignment=BP_ALIGN_LEFT, name="buttonPanel")

Default class constructor.

Parameters:
  • parent (wx.Window) – the parent window. Must not be None;
  • id (integer) – window identifier. If wx.ID_ANY, will automatically create an identifier;
  • text (string) – the main caption text for ButtonPanel;
  • agwStyle (integer) – the AGW-specific window style (one of BP_DEFAULT_STYLE, BP_USE_GRADIENT);
  • alignment (integer) – alignment of buttons (left or right);
  • name (string) – window class name.


AddButton(self, btnInfo)

Adds a button to ButtonPanel.

Parameters:btnInfo – an instance of ButtonInfo.

Note

Remember to pass a ButtonInfo instance to this method, and not a standard Button or a ToolBar tool.



AddControl(self, control, proportion=0, flag=wx.ALIGN_CENTER|wx.ALL, border=None)

Adds a wxPython control to ButtonPanel.

Parameters:
  • control – an instance of wx.Window;
  • proportion (integer) – the control proportion (0 for fixed-size, 1 or more for a stretchable one);
  • flag (integer) – one of the BoxSizer flags;
  • border (integer) – the control border width (in pixels), if the flag parameter is set to include any border flag.


AddSeparator(self)

Adds a separator line to ButtonPanel.



AddSpacer(self, size=(0, 0), proportion=1, flag=wx.EXPAND)

Adds a spacer (stretchable or fixed-size) to ButtonPanel.

Parameters:
  • size (tuple) – the spacer size as a tuple;
  • proportion (integer) – the spacer proportion (0 for fixed-size, 1 or more for a stretchable one);
  • flag (integer) – one of the BoxSizer flags.


Clear(self)

Clears the ButtonPanel.

Can be used to reset the ButtonPanel if you’d like have a new set of buttons on the panel.



DoGetBestSize(self)

Gets the size which best suits ButtonPanel: for a control, it would be the minimal size which doesn’t truncate the control, for a panel - the same size as it would have after a call to Fit().

Returns:An instance of wx.Size.

Note

Overridden from Panel.



DoGiveHelp(self, hit)

Shows tooltips and long help strings in StatusBar.

Parameters:hit – an instance of ButtonInfo where the mouse is hovering.


DoLayout(self)

Do the Layout for ButtonPanel.

Note

Call this method every time you make a modification to the layout or to the customizable sizes of the pseudo controls.



FlexibleLayout(self, nonspacers, allchildren)

Layout the items when the main caption exists.

Parameters:
  • nonspacers (list) – a list of items which are not spacers;
  • allchildren (list) – a list of all the children of ButtonPanel.


GetAlignment(self)

Returns the buttons alignment.

Returns:An integer specifying the buttons alignment.

See also

SetAlignment for a set of valid alignment bits.



GetBarText(self)

Returns the main caption text.

Returns:A string representing the caption text.


GetBPArt(self)

Returns the associated BPArt art provider.



GetControls(self)

Returns the wxPython controls that belongs to ButtonPanel.

Returns:A list of items inside ButtonPanel that are wxPython controls.


GetItemSize(self, item, isVertical)

Returns the size of an item in the main ButtonPanel sizer.

Parameters:
  • item – an instance of ButtonInfo;
  • isVertical (bool) – True if ButtonPanel is in vertical orientation, False otherwise.
Returns:

An instance of wx.Size.



GetNonFlexibleChildren(self)

Returns all the ButtonPanel main sizer’s children that are not flexible spacers.

Returns:A list of items inside ButtonPanel that are not flexible spacers.


GetStyle(self)

Returns the ButtonPanel window style.

See also

SetStyle for a list of valid window styles.



GetUseHelp(self)

Returns whether or not short and long help strings should be displayed as tooltips and StatusBar items respectively.

Returns:True if the short and long help strings should be displayed as tooltips and StatusBar items respectively, False otherwise.


HasBarText(self)

Returns whether ButtonPanel has a main caption text or not.

Returns:True if ButtonPanel has a main caption text, False otherwise.


HitTest(self, pt)

HitTest method for ButtonPanel.

Parameters:pt – the mouse position, an instance of wx.Point.
Returns:an instance of ButtonInfo and the hit flag BP_HT_BUTTON if a button client rectangle contains the input point pt, or wx.NOT_FOUND and BP_HT_NONE.


IsStandard(self)

Returns whether ButtonPanel is aligned “Standard” (left/top) or not.

Returns:True if ButtonPanel is aligned “standard”, False otherwise.


IsVertical(self)

Returns whether ButtonPanel is vertically aligned or not.

Returns:True if ButtonPanel is vertically aligned, False otherwise.


LayoutItems(self)

Layout the items using a different algorithms depending on the existance of the main caption.



OnEraseBackground(self, event)

Handles the wx.EVT_ERASE_BACKGROUND event for ButtonPanel.

Parameters:event – a EraseEvent event to be processed.

Note

This is intentionally empty to reduce flicker.



OnLeftDown(self, event)

Handles the wx.EVT_LEFT_DOWN event for ButtonPanel.

Parameters:event – a MouseEvent event to be processed.


OnLeftUp(self, event)

Handles the wx.EVT_LEFT_UP event for ButtonPanel.

Parameters:event – a MouseEvent event to be processed.


OnMouseEnterWindow(self, event)

Handles the wx.EVT_ENTER_WINDOW event for ButtonPanel.

Parameters:event – a MouseEvent event to be processed.


OnMouseLeave(self, event)

Handles the wx.EVT_LEAVE_WINDOW event for ButtonPanel.

Parameters:event – a MouseEvent event to be processed.


OnMouseMove(self, event)

Handles the wx.EVT_MOTION event for ButtonPanel.

Parameters:event – a MouseEvent event to be processed.


OnPaint(self, event)

Handles the wx.EVT_PAINT event for ButtonPanel.

Parameters:event – a PaintEvent event to be processed.


OnSize(self, event)

Handles the wx.EVT_SIZE event for ButtonPanel.

Parameters:event – a wx.SizeEvent event to be processed.

Todo

Improve the chain of methods OnSize ==> DoLayout ==> LayoutItems to avoid multiple calls to LayoutItems.



OnStatusBarTimer(self)

Handles the timer expiring to delete the long help string in StatusBar.



ReCreateSizer(self, text=None)

Recreates the ButtonPanel sizer accordingly to the alignment specified.

Parameters:text (string) – the text to display as main caption. If text is set to None, the main caption will not be displayed.


RemoveAllButtons(self)

Remove all the buttons from ButtonPanel.

Note

This function is for internal use only. If you are interested in manipulating a ButtonPanel in real time (ie. removing things on it) have a look at the Clear method.



RemoveAllSeparators(self)

Remove all the separators from ButtonPanel.

Note

This function is for internal use only. If you are interested in manipulating a ButtonPanel in real time (ie. removing things on it) have a look at the Clear method.



RemoveHelp(self)

Removes the tooltips and statusbar help (if any) for a button.



RemoveText(self)

Removes the main caption text.



RepaintOldSelection(self)

Repaints the old selected/hovered button.



SetAlignment(self, alignment)

Sets the buttons alignment.

Parameters:alignment (integer) – can be one of the following bits:

Alignment Flag Value Description
BP_ALIGN_RIGHT 1 Buttons are aligned on the right
BP_ALIGN_LEFT 2 Buttons are aligned on the left
BP_ALIGN_TOP 4 Buttons are aligned at the top
BP_ALIGN_BOTTOM 8 Buttons are aligned at the bottom


SetBarText(self, text)

Sets the main caption text.

Parameters:text (string) – the main caption text label. An empty string erases the main caption text.


SetBPArt(self, art)

Sets a new BPArt art provider to ButtonPanel.

Parameters:art – an instance of BPArt.


SetStyle(self, agwStyle)

Sets the ButtonPanel window style.

Parameters:agwStyle (integer) – one of the following bits:

Window Styles Hex Value Description
BP_DEFAULT_STYLE 0x1 ButtonPanel has a plain solid background.
BP_USE_GRADIENT 0x2 ButtonPanel has a gradient shading background.


SetUseHelp(self, useHelp=True)

Sets whether or not short and long help strings should be displayed as tooltips and StatusBar items respectively.

Parameters:useHelp (bool) – True to display short and long help strings as tooltips and StatusBar items respectively, False otherwise.


SizeLayout(self, nonspacers, children)

Layout the items when no main caption exists.

Parameters:
  • nonspacers (list) – a list of items which are not spacers;
  • children (list) – a list of all the children of ButtonPanel.