# p.g.Button(Label) : class documentation

Part of planes.gui View In Hierarchy

Known subclasses: planes.gui.lmr.LMRButton

    A planes plane which displays a text and reacts on mouse clicks.

    Additional attributes:

    Button.callback
        The callback function to be called with callback(Button) upon
        clicking.

    Button.clicked_counter
        Counted down when the button is clicked and displays a different color

Method | __init__ | No summary
Method | redraw | `Redraw the Button.`
Method | update | `Change color if clicked, then call the base class method.`
Method | clicked | `Plane standard method, called when there is a MOUSEDOWN event on this plane. Changes the Button color for some frames and calls the base class implementation.`

Inherited from Plane (via Label):

Method | sub | `Remove the Plane given from its current parent and add it as a subplane of this Plane.`
Method | remove | `Remove subplane by name or Plane instance.`
Method | remove_all | `Convenience method to call Plane.remove() for all subplanes.`
Method | __getattr__ | `Access subplanes as attributes.`
Method | render | `Draw a composite surface of this plane and all subplanes, in order of their addition.`
Method | get_plane_at | `Return the (sub)plane and the succeeding parent coordinates at the given coordinates. Subplanes are tested in reverse order of their addition (i.e. latest first).`
Method | dropped_upon | `If a plane is dropped on top of this one, call dropped_upon_callback() and conditionally grab it.`
Method | destroy | `Remove this Plane from the parent plane, remove all subplanes and delete all pygame Surfaces.`
Method | sync | `Save the Plane given as master Plane and the position offset to that Plane for position synchronisation in Plane.update().`
Method | unsync | `Remove the position synchronisation to the sync master Plane.`
Method | mouseover_callback | `Callback function when the mouse cursor moves over this plane. The default implementation sets Plan.mouseover to True when Plane.highlight is set.`
Method | mouseout_callback | `Callback function when the mouse cursor has left this plane. The default implementation sets Plan.mouseover to False.`
Method | __repr__ | `Readable string representation.`

def __init__(self, label, rect, callback, background_color=None, text_color=(0, 0, 0)):
overrides planes.gui.Label.__init__
overridden in planes.gui.lmr.LMRButton

    Initialise the Button.
    label is the Text to be written on the button.
    rect is an instance of pygame.Rect giving the dimensions.
    callback is the function to be called with callback(Button) when the
    Button is clicked with the left mouse button.

def redraw(self):
overrides planes.gui.Label.redraw
overridden in planes.gui.lmr.LMRButton

    Redraw the Button.

def update(self):
overrides planes.gui.Label.update

    Change color if clicked, then call the base class method.

def clicked(self, button_name):
overrides planes.Plane.clicked

    Plane standard method, called when there is a MOUSEDOWN event on this plane.
    Changes the Button color for some frames and calls the base class implementation.