63 lines
1.7 KiB
Python
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
|