Module albow.widgets.ImageButton
Source code
from pygame import Surface
import logging
from albow.core.ResourceUtility import ResourceUtility
from albow.utils import overridable_property
from albow.widgets.ButtonBase import ButtonBase
from albow.widgets.Image import Image
class ImageButton(ButtonBase, Image):
    """
    An ImageButton is a button whose appearance is defined by an image.
    """
    disabledBgImage = overridable_property('disabledBgImage')
    """
        This disabled background image
    """
    enabledBgImage = overridable_property('enabledBgImage')
    """
    The enabled background image
    """
    highlightedBgImage = overridable_property('highlightedBgImage')
    """
        The highlighted background image
    """
    def __init__(self, disabledBgImage: str = None, enabledBgImage: str = None, highlightedBgImage: str = None, **kwds):
        """
        You must as a minimum supply a single image via `theImage` parameter.  Optionally, you can supply
        enabled, disabled, and highlighted images
        Args:
            disabledBgImage:  The image to display when the button is disabled
            enabledBGImage:  The image to display when the button is enabled
            highlightedBgImage: The image to display when the button is highlighted
            **kwds:
        """
        Image.__init__(self, **kwds)
        self.logger = logging.getLogger(__name__)
        self._disabledBgImage = None
        self._enabledBgImage = None
        self._highlightedBgImage = None
        if disabledBgImage != None:
            self._disabledBgImage = ResourceUtility.get_image(disabledBgImage)
        if enabledBgImage != None:
            self._enabledBgImage = ResourceUtility.get_image(enabledBgImage)
        if highlightedBgImage != None:
            self._highlightedBgImage = ResourceUtility.get_image(highlightedBgImage)
    def get_disabledBgImage(self):
        return self._disabledBgImage
    def set_disabledBgImage(self, theNewImage: Surface):
        self._disabledBgImage = theNewImage
    def get_enabledBgImage(self):
        return self._enabledBgImage
    def set_enabledBgImage(self, theNewImage: Surface):
        self._enabledBgImage = theNewImage
    def get_highlightedBgImage(self) -> Surface:
        return self._highlightedBgImage
    def set_highlightedBgImage(self, theNewImage: Surface):
        self._highlightedBgImage = theNewImage
    def get_highlighted(self):
        return self._highlighted
    def set_highlighted(self, theNewValue: bool):
        self._highlighted = theNewValue
    def draw(self, surface: Surface):
        dbi = self.disabledBgImage
        ebi = self.enabledBgImage
        hbi = self.highlightedBgImage
        if not self.enabled:
            if dbi:
                self.draw_image(surface, dbi)
        elif self.highlighted:
            if hbi:
                self.draw_image(surface, hbi)
            else:
                surface.fill(self.highlight_color)
        else:
            if ebi:
                self.draw_image(surface, ebi)
        fgi = self.image
        if fgi:
            self.draw_image(surface, fgi)Classes
- class ImageButton (disabledBgImage=None, enabledBgImage=None, highlightedBgImage=None, **kwds)
- 
An ImageButton is a button whose appearance is defined by an image. You must as a minimum supply a single image via theImageparameter. Optionally, you can supply enabled, disabled, and highlighted imagesArgs- disabledBgImage
- The image to display when the button is disabled
- enabledBGImage
- The image to display when the button is enabled
- highlightedBgImage
- The image to display when the button is highlighted
 **kwds: Source codeclass ImageButton(ButtonBase, Image): """ An ImageButton is a button whose appearance is defined by an image. """ disabledBgImage = overridable_property('disabledBgImage') """ This disabled background image """ enabledBgImage = overridable_property('enabledBgImage') """ The enabled background image """ highlightedBgImage = overridable_property('highlightedBgImage') """ The highlighted background image """ def __init__(self, disabledBgImage: str = None, enabledBgImage: str = None, highlightedBgImage: str = None, **kwds): """ You must as a minimum supply a single image via `theImage` parameter. Optionally, you can supply enabled, disabled, and highlighted images Args: disabledBgImage: The image to display when the button is disabled enabledBGImage: The image to display when the button is enabled highlightedBgImage: The image to display when the button is highlighted **kwds: """ Image.__init__(self, **kwds) self.logger = logging.getLogger(__name__) self._disabledBgImage = None self._enabledBgImage = None self._highlightedBgImage = None if disabledBgImage != None: self._disabledBgImage = ResourceUtility.get_image(disabledBgImage) if enabledBgImage != None: self._enabledBgImage = ResourceUtility.get_image(enabledBgImage) if highlightedBgImage != None: self._highlightedBgImage = ResourceUtility.get_image(highlightedBgImage) def get_disabledBgImage(self): return self._disabledBgImage def set_disabledBgImage(self, theNewImage: Surface): self._disabledBgImage = theNewImage def get_enabledBgImage(self): return self._enabledBgImage def set_enabledBgImage(self, theNewImage: Surface): self._enabledBgImage = theNewImage def get_highlightedBgImage(self) -> Surface: return self._highlightedBgImage def set_highlightedBgImage(self, theNewImage: Surface): self._highlightedBgImage = theNewImage def get_highlighted(self): return self._highlighted def set_highlighted(self, theNewValue: bool): self._highlighted = theNewValue def draw(self, surface: Surface): dbi = self.disabledBgImage ebi = self.enabledBgImage hbi = self.highlightedBgImage if not self.enabled: if dbi: self.draw_image(surface, dbi) elif self.highlighted: if hbi: self.draw_image(surface, hbi) else: surface.fill(self.highlight_color) else: if ebi: self.draw_image(surface, ebi) fgi = self.image if fgi: self.draw_image(surface, fgi)AncestorsClass variables- var disabledBgImage
- 
This disabled background image 
- var enabledBgImage
- 
The enabled background image 
- var highlightedBgImage
- 
The highlighted background image 
 Methods- def get_disabledBgImage(self)
- 
Source codedef get_disabledBgImage(self): return self._disabledBgImage
- def get_enabledBgImage(self)
- 
Source codedef get_enabledBgImage(self): return self._enabledBgImage
- def get_highlighted(self)
- 
Source codedef get_highlighted(self): return self._highlighted
- def get_highlightedBgImage(self)
- 
Source codedef get_highlightedBgImage(self) -> Surface: return self._highlightedBgImage
- def set_disabledBgImage(self, theNewImage)
- 
Source codedef set_disabledBgImage(self, theNewImage: Surface): self._disabledBgImage = theNewImage
- def set_enabledBgImage(self, theNewImage)
- 
Source codedef set_enabledBgImage(self, theNewImage: Surface): self._enabledBgImage = theNewImage
- def set_highlighted(self, theNewValue)
- 
Source codedef set_highlighted(self, theNewValue: bool): self._highlighted = theNewValue
- def set_highlightedBgImage(self, theNewImage)
- 
Source codedef set_highlightedBgImage(self, theNewImage: Surface): self._highlightedBgImage = theNewImage
 Inherited members- ButtonBase:
- Image:
- Image:- add
- add_anchor
- add_centered
- anchor
- attention_lost
- augment_mouse_event
- bg_color
- bg_image
- border_color
- border_width
- call_handler
- call_parent_handler
- defer_drawing
- dismiss
- draw_over
- fg_color
- focus
- focus_switch
- font
- get_cursor
- get_focus
- get_image
- get_margin_rect
- get_root
- get_top_widget
- get_visible
- global_to_local
- has_focus
- highlight_color
- image
- inherited
- invalidate
- is_gl_container
- key_down
- key_up
- local_to_global
- margin
- menu_bar
- parent
- parent_resized
- present
- rect
- relative_mode
- remove
- remove_anchor
- resized
- scale_bg
- sel_color
- set_parent
- set_size_for_text
- tab_stop
- visible