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)
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)
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()
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()
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
def __setattr__(self, name, val): Widget.__setattr__(self, name, val) if name.startswith("padding") and hasattr(self, "label"): setattr(self.label, name, val)