Example #1
0
    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)