コード例 #1
0
    def __setattr__(self, name, val):
        new_rows = False
        if name == "rows":
            if isinstance(val, TreeModel) == False:
                val = TreeModel(val)

            if getattr(self, "rows", None):
                for listener in getattr(self, "_data_change_listeners", []):
                    self.rows.disconnect(listener)
            if getattr(self, "rows", None):
                new_rows = True
            self.queue_resize()

        row_changed = name == "current_row" and val != self.__dict__.get(
            name, 'hamster_no_value_really')
        Widget.__setattr__(self, name, val)

        if new_rows:
            self._on_row_deleted(self.rows)

        if row_changed:
            self.emit("on-change", val if val else None)

        if name == "rows":
            changed = self.rows.connect("row-changed", self._on_row_changed)
            deleted = self.rows.connect("row-deleted", self._on_row_deleted)
            inserted = self.rows.connect("row-inserted", self._on_row_inserted)
            self._data_change_listeners = [changed, deleted, inserted]
        elif name == "padding":
            for renderer in self.renderers:
                renderer.padding = val
        elif name == "current_row" and val:
            self.scroll_to_row(val)
コード例 #2
0
    def __setattr__(self, name, val):
        new_rows = False
        if name == "rows":
            if isinstance(val, TreeModel) == False:
                val = TreeModel(val)

            if getattr(self, "rows", None):
                for listener in getattr(self, "_data_change_listeners", []):
                    self.rows.disconnect(listener)
            if getattr(self, "rows", None):
                new_rows = True
            self.queue_resize()

        row_changed = name == "current_row" and val != self.__dict__.get(name, "hamster_no_value_really")
        Widget.__setattr__(self, name, val)

        if new_rows:
            self._on_row_deleted(self.rows)

        if row_changed:
            self.emit("on-change", val if val else None)

        if name == "rows":
            changed = self.rows.connect("row-changed", self._on_row_changed)
            deleted = self.rows.connect("row-deleted", self._on_row_deleted)
            inserted = self.rows.connect("row-inserted", self._on_row_inserted)
            self._data_change_listeners = [changed, deleted, inserted]
        elif name == "padding":
            for renderer in self.renderers:
                renderer.padding = val
        elif name == "current_row" and val:
            self.scroll_to_row(val)
コード例 #3
0
ファイル: image.py プロジェクト: Geotexan/experiments
    def __setattr__(self, name, val):
        Widget.__setattr__(self, name, val)
        if self.__dict__.get(name, "hamster_graphics_no_value_really") == val:
            return

        # reslice when params change
        if name in ("slice_left", "slice_top", "slice_right", "slice_bottom") and hasattr(self, "_slices"):
            self._slice()

        if name == "path" and val and hasattr(self, "image_data"):
            self.image_data = cairo.ImageSurface.create_from_png(val)
            self.image_w, self.image_h = self.image_data.get_width(), self.image_data.get_height()
            self._slice()
コード例 #4
0
    def __setattr__(self, name, val):
        Widget.__setattr__(self, name, val)
        if self.__dict__.get(name, "hamster_graphics_no_value_really") == val:
            return

        # reslice when params change
        if name in ("slice_left", "slice_top", "slice_right",
                    "slice_bottom") and hasattr(self, "_slices"):
            self._slice()

        if name == "path" and val and hasattr(self, "image_data"):
            self.image_data = cairo.ImageSurface.create_from_png(val)
            self.image_w, self.image_h = self.image_data.get_width(
            ), self.image_data.get_height()
            self._slice()
コード例 #5
0
    def __setattr__(self, name, val):
        if self.__dict__.get(name, "hamster_graphics_no_value_really") == val:
            return

        Widget.__setattr__(self, name, val)
        if name == 'contents':
            if val:
                if isinstance(val, graphics.Sprite):
                    val = [val]
                self.add_child(*val)
            if self.sprites and self.sprites != val:
                self.remove_child(*list(set(self.sprites) ^ set(val or [])))

        if name in ("alloc_w", "alloc_h") and val:
            self.__dict__['_cached_w'], self.__dict__['_cached_h'] = None, None
            self._children_resize_queued = True
コード例 #6
0
ファイル: containers.py プロジェクト: Geotexan/experiments
    def __setattr__(self, name, val):
        if self.__dict__.get(name, "hamster_graphics_no_value_really") == val:
            return

        Widget.__setattr__(self, name, val)
        if name == 'contents':
            if val:
                if isinstance(val, graphics.Sprite):
                    val = [val]
                self.add_child(*val)
            if self.sprites and self.sprites != val:
                self.remove_child(*list(set(self.sprites) ^ set(val or [])))

        if name in ("alloc_w", "alloc_h") and val:
            self.__dict__['_cached_w'], self.__dict__['_cached_h'] = None, None
            self._children_resize_queued = True
コード例 #7
0
 def __setattr__(self, name, val):
     Widget.__setattr__(self, name, val)
     if name.startswith("padding") and hasattr(self, "label"):
         setattr(self.label, name, val)
コード例 #8
0
 def __setattr__(self, name, val):
     Widget.__setattr__(self, name, val)
     if name.startswith("padding") and hasattr(self, "label"):
         setattr(self.label, name, val)