.. wxPython Phoenix documentation This file was generated by Phoenix's sphinx generator and associated tools, do not edit by hand. Copyright: (c) 2011-2020 by Total Control Software License: wxWindows License .. include:: headings.inc .. currentmodule:: wx.lib.agw.shapedbutton .. highlight:: python .. _wx.lib.agw.shapedbutton.SButton: ========================================================================================================================================== |phoenix_title| **wx.lib.agw.shapedbutton.SButton** ========================================================================================================================================== This is the main implementation of `ShapedButton`. | |class_hierarchy| Class Hierarchy ================================= .. raw:: html
Inheritance diagram for class SButton:
| |sub_classes| Known Subclasses ============================== :class:`wx.lib.agw.shapedbutton.SBitmapButton`, :class:`wx.lib.agw.shapedbutton.SToggleButton` | |super_classes| Known Superclasses ================================== :class:`wx.Window` | |method_summary| Methods Summary ================================ ================================================================================ ================================================================================ :meth:`~wx.lib.agw.shapedbutton.SButton.__init__` Default class constructor. :meth:`~wx.lib.agw.shapedbutton.SButton.AcceptsFocus` Can this window be given focus by mouse click? :meth:`~wx.lib.agw.shapedbutton.SButton.ConvertPILToWX` Converts a PIL image into a :class:`wx.Image`. :meth:`~wx.lib.agw.shapedbutton.SButton.ConvertWXToPIL` Converts a :class:`wx.Image` into a PIL image. :meth:`~wx.lib.agw.shapedbutton.SButton.DoGetBestSize` Overridden base class virtual. Determines the best size of the button :meth:`~wx.lib.agw.shapedbutton.SButton.DrawFocusIndicator` Draws the focus indicator. This is a circle/ellipse inside the button :meth:`~wx.lib.agw.shapedbutton.SButton.DrawLabel` Draws the label on the button. :meth:`~wx.lib.agw.shapedbutton.SButton.DrawMainButton` Draws the main button, in whichever state it is. :meth:`~wx.lib.agw.shapedbutton.SButton.Enable` Enables/disables the button. :meth:`~wx.lib.agw.shapedbutton.SButton.GetAngleOfRotation` Returns angle of button label rotation, in degrees. :meth:`~wx.lib.agw.shapedbutton.SButton.GetButtonColour` Returns the button colour. :meth:`~wx.lib.agw.shapedbutton.SButton.GetEllipseAxis` Returns the ellipse axes. :meth:`~wx.lib.agw.shapedbutton.SButton.GetLabel` Returns the button label. :meth:`~wx.lib.agw.shapedbutton.SButton.GetLabelColour` Returns the button label colour. :meth:`~wx.lib.agw.shapedbutton.SButton.GetUseFocusIndicator` Returns focus indicator flag. :meth:`~wx.lib.agw.shapedbutton.SButton.InitColours` Calculates a new set of focus indicator colour and indicator pen :meth:`~wx.lib.agw.shapedbutton.SButton.IsEnabled` Returns whether the button is enabled or not. :meth:`~wx.lib.agw.shapedbutton.SButton.IsOutside` Checks if a mouse events occurred inside the circle/ellipse or not. :meth:`~wx.lib.agw.shapedbutton.SButton.MakePalette` Creates a palette to be applied on an image based on input colour. :meth:`~wx.lib.agw.shapedbutton.SButton.Notify` Notifies an event and let it be processed. :meth:`~wx.lib.agw.shapedbutton.SButton.OnGainFocus` Handles the ``wx.EVT_SET_FOCUS`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnKeyDown` Handles the ``wx.EVT_KEY_DOWN`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnKeyUp` Handles the ``wx.EVT_KEY_UP`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnLeftDown` Handles the ``wx.EVT_LEFT_DOWN`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnLeftUp` Handles the ``wx.EVT_LEFT_UP`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnLoseFocus` Handles the ``wx.EVT_KILL_FOCUS`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnMotion` Handles the ``wx.EVT_MOTION`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnPaint` Handles the ``wx.EVT_PAINT`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.OnSize` Handles the ``wx.EVT_SIZE`` event for :class:`SButton`. :meth:`~wx.lib.agw.shapedbutton.SButton.SetAngleOfRotation` Sets angle of button label rotation. :meth:`~wx.lib.agw.shapedbutton.SButton.SetBestSize` Given the current font settings, calculate and set a good size. :meth:`~wx.lib.agw.shapedbutton.SButton.SetButtonColour` Sets the button colour, for all button states. :meth:`~wx.lib.agw.shapedbutton.SButton.SetDefault` Sets the button as default item. :meth:`~wx.lib.agw.shapedbutton.SButton.SetEllipseAxis` Sets the ellipse axis. What it is important is not their absolute values :meth:`~wx.lib.agw.shapedbutton.SButton.SetLabel` Sets the button label. :meth:`~wx.lib.agw.shapedbutton.SButton.SetLabelColour` Sets the button label colour. :meth:`~wx.lib.agw.shapedbutton.SButton.SetUseFocusIndicator` Specifies if a focus indicator (dotted line) should be used. :meth:`~wx.lib.agw.shapedbutton.SButton.ShouldInheritColours` Overridden base class virtual. Buttons usually do not inherit ================================================================================ ================================================================================ | |api| Class API =============== .. class:: SButton(wx.Window) This is the main implementation of `ShapedButton`. .. method:: __init__(self, parent, id=wx.ID_ANY, label="", pos=wx.DefaultPosition, size=wx.DefaultSize) Default class constructor. :param `parent`: the :class:`SButton` parent. Must not be ``None``; :param `id`: window identifier. A value of -1 indicates a default value; :param `label`: the button text label; :param `pos`: the control position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxPython, depending on platform; :param `size`: the control size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxPython, depending on platform. .. method:: AcceptsFocus(self) Can this window be given focus by mouse click? .. note:: Overridden from :class:`wx.Window`. .. method:: ConvertPILToWX(self, pil, alpha=True) Converts a PIL image into a :class:`wx.Image`. :param `pil`: a PIL image; :param `alpha`: ``True`` if the image contains alpha transparency, ``False`` otherwise. .. method:: ConvertWXToPIL(self, bmp) Converts a :class:`wx.Image` into a PIL image. :param `bmp`: an instance of :class:`wx.Image`. .. method:: DoGetBestSize(self) Overridden base class virtual. Determines the best size of the button based on the label size. .. note:: Overridden from :class:`wx.Window`. .. method:: DrawFocusIndicator(self, dc, width, height) Draws the focus indicator. This is a circle/ellipse inside the button drawn with a dotted-style pen, to let the user know which button has the focus. :param `dc`: an instance of :class:`wx.DC`; :param `width`: the button width; :param `height`: the button height. .. method:: DrawLabel(self, dc, width, height, dw=0, dh=0) Draws the label on the button. :param `dc`: an instance of :class:`wx.DC`; :param `width`: the button width; :param `height`: the button height; :param `dw`: width differential, to show a 3D effect; :param `dh`: height differential, to show a 3D effect. .. method:: DrawMainButton(self, dc, width, height) Draws the main button, in whichever state it is. :param `dc`: an instance of :class:`wx.DC`; :param `width`: the button width; :param `height`: the button height. .. method:: Enable(self, enable=True) Enables/disables the button. :param `enable`: ``True`` to enable the button, ``False`` to disable it. .. note:: Overridden from :class:`wx.Window`. .. method:: GetAngleOfRotation(self) Returns angle of button label rotation, in degrees. .. method:: GetButtonColour(self) Returns the button colour. .. method:: GetEllipseAxis(self) Returns the ellipse axes. .. method:: GetLabel(self) Returns the button label. .. method:: GetLabelColour(self) Returns the button label colour. .. method:: GetUseFocusIndicator(self) Returns focus indicator flag. .. method:: InitColours(self) Calculates a new set of focus indicator colour and indicator pen based on button colour and label colour. .. method:: IsEnabled(self) Returns whether the button is enabled or not. .. method:: IsOutside(self, x, y) Checks if a mouse events occurred inside the circle/ellipse or not. :param `x`: the mouse x position; :param `y`: the mouse y position. .. method:: MakePalette(self, tr, tg, tb) Creates a palette to be applied on an image based on input colour. :param `tr`: the red intensity of the input colour; :param `tg`: the green intensity of the input colour; :param `tb`: the blue intensity of the input colour. .. method:: Notify(self) Notifies an event and let it be processed. .. method:: OnGainFocus(self, event) Handles the ``wx.EVT_SET_FOCUS`` event for :class:`SButton`. :param `event`: a :class:`FocusEvent` event to be processed. .. method:: OnKeyDown(self, event) Handles the ``wx.EVT_KEY_DOWN`` event for :class:`SButton`. :param `event`: a :class:`KeyEvent` event to be processed. .. method:: OnKeyUp(self, event) Handles the ``wx.EVT_KEY_UP`` event for :class:`SButton`. :param `event`: a :class:`KeyEvent` event to be processed. .. method:: OnLeftDown(self, event) Handles the ``wx.EVT_LEFT_DOWN`` event for :class:`SButton`. :param `event`: a :class:`MouseEvent` event to be processed. .. method:: OnLeftUp(self, event) Handles the ``wx.EVT_LEFT_UP`` event for :class:`SButton`. :param `event`: a :class:`MouseEvent` event to be processed. .. method:: OnLoseFocus(self, event) Handles the ``wx.EVT_KILL_FOCUS`` event for :class:`SButton`. :param `event`: a :class:`FocusEvent` event to be processed. .. method:: OnMotion(self, event) Handles the ``wx.EVT_MOTION`` event for :class:`SButton`. :param `event`: a :class:`MouseEvent` event to be processed. .. method:: OnPaint(self, event) Handles the ``wx.EVT_PAINT`` event for :class:`SButton`. :param `event`: a :class:`PaintEvent` event to be processed. .. method:: OnSize(self, event) Handles the ``wx.EVT_SIZE`` event for :class:`SButton`. :param `event`: a :class:`wx.SizeEvent` event to be processed. .. method:: SetAngleOfRotation(self, angle=None) Sets angle of button label rotation. :param `angle`: the label rotation, in degrees. .. method:: SetBestSize(self, size=None) Given the current font settings, calculate and set a good size. :param `size`: if not ``None``, an instance of :class:`wx.Size` to pass to `SetInitialSize`. .. method:: SetButtonColour(self, colour=None) Sets the button colour, for all button states. :param `colour`: an instance of :class:`wx.Colour`. .. note:: The original button images are greyscale with a lot of pixels with different colours. Changing smoothly the button colour in order to give the same 3D effect can be efficiently done only with PIL. .. method:: SetDefault(self) Sets the button as default item. .. method:: SetEllipseAxis(self, main=None, secondary=None) Sets the ellipse axis. What it is important is not their absolute values but their ratio. :param `main`: a floating point number representing the absolute dimension of the main ellipse axis; :param `secondary`: a floating point number representing the absolute dimension of the secondary ellipse axis. .. method:: SetLabel(self, label=None) Sets the button label. :param `label`: the new button label. .. method:: SetLabelColour(self, colour=None) Sets the button label colour. :param `colour`: an instance of :class:`wx.Colour`. .. method:: SetUseFocusIndicator(self, flag) Specifies if a focus indicator (dotted line) should be used. :param `flag`: ``True`` to use the focus indicator, ``False`` otherwise. .. method:: ShouldInheritColours(self) Overridden base class virtual. Buttons usually do not inherit parent's colours.