| | 14 | |
|---|
| | 15 | class CustomResultList(CustomResult): |
|---|
| | 16 | |
|---|
| | 17 | def __init__(self, results): |
|---|
| | 18 | self.results = results |
|---|
| | 19 | |
|---|
| | 20 | def create_widget(self): |
|---|
| | 21 | self.widgets = [res.create_widget() for res in self.results] |
|---|
| | 22 | ntbk = gtk.Notebook() |
|---|
| | 23 | # Notebook tabs have problems unless in EventBox... |
|---|
| | 24 | self.notebook = gtk.EventBox() |
|---|
| | 25 | self.notebook.add(ntbk) |
|---|
| | 26 | self.vertbox = gtk.VBox(spacing=5) |
|---|
| | 27 | for widget in self.widgets: |
|---|
| | 28 | #self.notebook.append_page(widget) |
|---|
| | 29 | self.vertbox.pack_start(widget, False, False) # expand, fill |
|---|
| | 30 | |
|---|
| | 31 | self.container = gtk.HBox() |
|---|
| | 32 | expander = gtk.Expander() |
|---|
| | 33 | expander.set_expanded(True) |
|---|
| | 34 | expander.connect("notify::expanded", self.toggle) |
|---|
| | 35 | self.container.pack_start(expander, False, False) |
|---|
| | 36 | |
|---|
| | 37 | self.container.pack_end(self.vertbox, False, False) |
|---|
| | 38 | self.container.show_all() |
|---|
| | 39 | self.notebook.show_all() |
|---|
| | 40 | |
|---|
| | 41 | return self.container |
|---|
| | 42 | |
|---|
| | 43 | def toggle(self, expander, data=None): |
|---|
| | 44 | if expander.get_expanded(): |
|---|
| | 45 | self.container.remove(self.notebook) |
|---|
| | 46 | self.container.pack_end(self.vertbox, False, False) |
|---|
| | 47 | for widget in self.widgets: |
|---|
| | 48 | self.notebook.child.remove(widget) |
|---|
| | 49 | self.vertbox.pack_start(widget, False, False) |
|---|
| | 50 | else: |
|---|
| | 51 | self.container.remove(self.vertbox) |
|---|
| | 52 | self.container.pack_end(self.notebook, False, False) |
|---|
| | 53 | for n, widget in enumerate(self.widgets): |
|---|
| | 54 | self.vertbox.remove(widget) |
|---|
| | 55 | self.notebook.child.append_page(widget, gtk.Label(" %i "%n)) |
|---|