def __init__(self, icon_file_func, *args, **kwargs): super(_PreviewWidget, self).__init__(*args, **kwargs) self.board_drawer = \ BoardDrawer(get_size_func=self._get_drawer_size, invalidate_rect_func=self._invalidate_drawer_rect) self.removal_drawer = \ RemovalDrawer(get_size_func=self._get_drawer_size, invalidate_rect_func=self._invalidate_drawer_rect) self.win_drawer = \ WinDrawer(get_size_func=self._get_drawer_size, invalidate_rect_func=self._invalidate_drawer_rect) self._icon_file_func = icon_file_func self._preview_rect = Gdk.Rectangle() self._preview_rect.x = self._preview_rect.y = \ self._preview_rect.width = self._preview_rect.height = 0 self._toolbar_rect = Gdk.Rectangle() self._toolbar_rect.x = self._toolbar_rect.y = \ self._toolbar_rect.width = self._toolbar_rect.height = 0 self._drawer_rect = Gdk.Rectangle() self._drawer_rect.x = self._drawer_rect.y = \ self._drawer_rect.width = self._drawer_rect.height = 0 self._drawer = self.board_drawer # Mouse position as a floating point value over the 4x3 unit preview # area. self._cursor_pos = (0.0, 0.0) # Cursor size in pixels. self._cursor_size = (0, 0) self._click_visible = False self._cursor_visible = False self.connect('draw', self._draw_event_cb) self.connect('configure-event', self._configure_event_cb)