def action_after_toggle(self): is_active = self.toggle.get_active() if is_active: if self.content_box not in self.align.get_children(): self.align.add(self.content_box) self.show_all() self.td = ToggleThread(self.get_list, self.tree, self.toggle_on_after) self.td.start() else: self.align.remove(self.content_box) self.td.stop_run() self.toggle_off()
class Section(gtk.VBox): # Section prototype def __init__(self): gtk.VBox.__init__(self) self.timer = Timer(200, self.action_after_toggle) def load(self, toggle, content=[]): self.toggle = toggle self.content_box = gtk.VBox(spacing=0) self.pack_start(self.toggle, False, False) self.toggle.switch.connect("toggled", self.toggle_callback) self.tree = TreeView([]) self.tree.set_expand_column(1) self.tree.draw_mask = self.draw_mask content.insert(0, self.tree) for c in content: self.content_box.pack_start(c, False, False) self.align = self._set_align() self.pack_start(self.align, False, False) self.show_all() def init_state(self): pass def set_active(self, state): self.toggle.set_active(state) def draw_mask(self, cr, x, y, w, h): cr.set_source_rgb(1, 1, 1) cr.rectangle(x, y, w, h) cr.fill() def _set_align(self): align = gtk.Alignment(0, 0, 1, 0) align.set_padding(0, 0, PADDING, 11 + 11) return align def toggle_callback(self, widget): if self.timer.alive(): self.timer.restart() else: self.timer.start() def action_after_toggle(self): is_active = self.toggle.get_active() if is_active: if self.content_box not in self.align.get_children(): self.align.add(self.content_box) self.show_all() self.td = ToggleThread(self.get_list, self.tree, self.toggle_on_after) self.td.start() else: self.align.remove(self.content_box) self.td.stop_run() self.toggle_off() def toggle_on(self): ''' method cb when toggle on ''' pass def toggle_on_after(self): pass def toggle_off(self): pass def get_list(self): pass def section_show(self): self.set_no_show_all(False) self.show_all() def section_hide(self): self.set_no_show_all(True) self.hide() def space_box(self): space = gtk.VBox() space.set_size_request(-1, 15) return space
class Section(gtk.VBox): # Section prototype def __init__(self): gtk.VBox.__init__(self) self.timer = Timer(200, self.action_after_toggle) def load(self, toggle, content=[]): self.toggle = toggle self.content_box = gtk.VBox(spacing=0) self.pack_start(self.toggle, False, False) self.toggle.switch.connect("toggled", self.toggle_callback) self.tree = TreeView([]) self.tree.set_expand_column(1) self.tree.draw_mask = self.draw_mask content.insert(0, self.tree) for c in content: self.content_box.pack_start(c, False, False) self.align = self._set_align() self.pack_start(self.align, False, False) self.show_all() def init_state(self): pass def set_active(self, state): self.toggle.set_active(state) def draw_mask(self, cr, x, y, w, h): cr.set_source_rgb(1, 1, 1) cr.rectangle(x, y, w, h) cr.fill() def _set_align(self): align = gtk.Alignment(0,0,1,0) align.set_padding(0, 0, PADDING, 11 + 11) return align def toggle_callback(self, widget): if self.timer.alive(): self.timer.restart() else: self.timer.start() def action_after_toggle(self): is_active = self.toggle.get_active() if is_active: if self.content_box not in self.align.get_children(): self.align.add(self.content_box) self.show_all() self.td = ToggleThread(self.get_list, self.tree, self.toggle_on_after) self.td.start() else: self.align.remove(self.content_box) self.td.stop_run() self.toggle_off() def toggle_on(self): ''' method cb when toggle on ''' pass def toggle_on_after(self): pass def toggle_off(self): pass def get_list(self): pass def section_show(self): self.set_no_show_all(False) self.show_all() def section_hide(self): self.set_no_show_all(True) self.hide() def space_box(self): space = gtk.VBox() space.set_size_request(-1, 15) return space