7 import helldon as hildon
10 class ListBox(gtk.TreeView):
12 gtk.TreeView.__init__(self)
13 self.store = gtk.ListStore(str)
14 column = gtk.TreeViewColumn("Text")
15 textRenderer = gtk.CellRendererText()
16 column.pack_start(textRenderer, True)
17 column.set_attributes(textRenderer, text = 0)
18 self.append_column(column)
19 self.set_model(self.store)
21 def get_text(self, path):
22 it = self.store.get_iter(path)
25 ret = self.store.get(it, 0)
28 def get_selected_text(self):
29 model, it = self.get_selection().get_selected()
32 ret = self.store.get(it, 0)
35 def append(self, text):
36 self.store.append([text])
38 def on_select(self, callback, *args):
39 def cb(lb, path, col):
40 ret = self.get_text(path)
43 self.connect('row-activated', cb)
45 class ListDialog(gtk.Dialog):
46 def __init__(self, title, parent=None):
47 gtk.Dialog.__init__(self, title, parent if not _using_helldon else None)
48 self.listbox = ListBox()
49 panarea = hildon.PannableArea()
50 panarea.add(self.listbox)
51 panarea.set_size_request_policy(hildon.SIZE_REQUEST_CHILDREN)
52 self.vbox.pack_start(panarea, True, True, 0)
56 def selector(selected, dialog):
58 self.selected = selected
59 dialog.response(gtk.RESPONSE_OK)
60 self.listbox.on_select(selector, self)
62 class ButtonListDialog(gtk.Dialog):
63 def __init__(self, title, parent=None):
64 gtk.Dialog.__init__(self, title, parent if not _using_helldon else None)
65 self.panarea = hildon.PannableArea()
66 self.panarea.set_size_request(800, 400)
67 self.buttons = gtk.VBox(False, 0)
68 self.panarea.add_with_viewport(self.buttons)
69 self.vbox.pack_start(self.panarea, True, True, 0)
71 def add_button(self, label, clickcb, *args):
72 btn = hildon.Button(gtk.HILDON_SIZE_AUTO_WIDTH|gtk.HILDON_SIZE_FINGER_HEIGHT,
73 hildon.BUTTON_ARRANGEMENT_VERTICAL)
75 btn.connect('clicked', clickcb, *args)
76 self.buttons.pack_start(btn, False, False, 0)