Lightningbeam/PyGUI-2.5.3/GUI/Generic/GDrawableContainers.py

63 lines
1.7 KiB
Python

#--------------------------------------------------------------------
#
# PyGUI - DrawableContainer - Generic
#
#--------------------------------------------------------------------
from GUI.Geometry import rect_sized
from GUI import Container
from GUI import ViewBase
from GUI.Printing import Printable
default_size = (100, 100)
class DrawableContainer(ViewBase, Container, Printable):
#
# Construction and destruction
#
def __init__(self, **kwds):
Container.__init__(self, **kwds)
ViewBase.__init__(self)
def destroy(self):
ViewBase.destroy(self)
Container.destroy(self)
def setup_menus(self, m):
ViewBase.setup_menus(self, m)
Container.setup_menus(self, m)
def viewed_rect(self):
"""Return the rectangle in local coordinates bounding the currently
visible part of the extent."""
return rect_sized((0, 0), self.size)
def with_canvas(self, proc):
"""Call the procedure with a canvas suitable for drawing in this
view. The canvas is only valid for the duration of the call, and
should not be retained beyond it."""
raise NotImplementedError
def update(self):
"""Redraw invalidated regions immediately, without waiting for a
return to the event loop."""
raise NotImplementedError
def get_print_extent(self):
return self.content_size
def _draw_background(self, canvas, clip_rect):
return clip_rect
#
# Callbacks
#
def draw(self, canvas, rect):
"""Called when the view needs to be drawn. The rect is the bounding
rectangle of the region needing to be drawn. The default implementation
does nothing."""
pass