15
by Oliver Marks
attaching gui to application |
1 |
#!/usr/bin/python
|
2 |
import os |
|
3 |
import sys |
|
4 |
from gi.repository import Gtk, GdkX11, Gdk |
|
5 |
||
6 |
||
7 |
class objectList: |
|
8 |
treeview = None |
|
9 |
treemodel = None |
|
10 |
||
11 |
selected = 'workspace' |
|
12 |
||
13 |
def __init__(self, workspace, treeview): |
|
14 |
self.treeview = treeview |
|
15 |
||
16 |
self.workspace = workspace |
|
17 |
||
18 |
self.treeview.connect('row-activated', self.selection) |
|
19 |
self.treeview.connect('button_press_event', self.show_menu) |
|
20 |
||
21 |
self.treemodel = Gtk.TreeStore(str) |
|
22 |
self.treeview.set_model(self.treemodel) |
|
23 |
||
24 |
column = Gtk.TreeViewColumn("Objects") |
|
25 |
self.treeview.append_column(column) |
|
26 |
||
27 |
cell = Gtk.CellRendererText() |
|
28 |
column.pack_start(cell, False) |
|
29 |
column.add_attribute(cell, "text", 0) |
|
30 |
||
31 |
self.populate() |
|
32 |
self.menu() |
|
33 |
||
34 |
def populate(self): |
|
35 |
#print 'populate'
|
|
36 |
self.treemodel.clear() |
|
37 |
for layer in self.workspace.keys(): |
|
38 |
iter = self.append(layer) |
|
39 |
for part in self.workspace[layer]: |
|
40 |
#print iter
|
|
41 |
#print part.name
|
|
42 |
self.append(part.name, iter) |
|
43 |
||
44 |
def menu(self): |
|
45 |
self.layer_menu = Gtk.Menu() |
|
46 |
||
47 |
self.layer_menu_item = Gtk.MenuItem("Display") |
|
48 |
#self.layer_menu_item.connect("activate", self.toggle_value_handler, 'show')
|
|
49 |
self.layer_menu.append(self.layer_menu_item) |
|
50 |
||
51 |
self.layer_menu_item = Gtk.MenuItem("Colour") |
|
52 |
self.layer_menu.append(self.layer_menu_item) |
|
53 |
||
54 |
def show_menu(self, tv, event): |
|
55 |
if event.button ==2: |
|
56 |
model = tv.get_model() |
|
57 |
treeiter = model.get_iter(treepath) |
|
58 |
self.selected = model.get_value(treeiter, 0) |
|
59 |
print treepath |
|
60 |
print self.selected |
|
61 |
||
62 |
if event.button == 3: |
|
63 |
self.layer_menu.show_all() |
|
64 |
self.layer_menu.popup(None, None, None, None, 1, 0) |
|
65 |
||
66 |
def append(self, name, parent=None): |
|
67 |
myiter = self.treemodel.insert_after(parent, None) |
|
68 |
self.treemodel.set_value(myiter, 0, name) |
|
69 |
return myiter |
|
70 |
||
71 |
def selection(self, tv, treepath, tvcolumn): |
|
72 |
model = tv.get_model() |
|
73 |
treeiter = model.get_iter(treepath) |
|
74 |
self.selected = model.get_value(treeiter, 0) |
|
75 |
#print treepath
|
|
76 |
print self.selected |