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