MAJOR CHANGE!
[pygdb.git] / StatusWindow.py
1 #!/usr/bin/python
2 #shuber, 2008-06-04
3
4 __author__ = "shuber"
5
6
7 import gtk
8 import re
9 import string
10 import os
11 import vte
12
13 import DbgTerminal
14 import BreakpointsFrame
15 import PositionFrame
16 import WatchesFrame
17
18
19
20 class StatusWindow (gtk.Window):
21
22 def __init__(self, debugger):
23 gtk.Window.__init__(self)
24
25 self.debugger = debugger
26
27 self.set_border_width(5)
28 self.set_title("Status")
29 self.set_default_size(400,600)
30 self.connect("destroy", DbgTerminal.quitHandler)
31
32
33 #Vbox container of frames
34 vbox = gtk.VBox(False, 5)
35 self.add(vbox)
36
37
38 #Adding the frames
39 self.frames = []
40 self.frames += [PositionFrame.PositionFrame(debugger), \
41 WatchesFrame.WatchesFrame(debugger), \
42 BreakpointsFrame.BreakpointsFrame(debugger) ]
43
44
45 #First paned window
46 self.paned1 = gtk.VPaned()
47 vbox.add(self.paned1)
48 #Second one
49 self.paned2 = gtk.VPaned()
50 self.paned1.add2(self.paned2)
51
52 self.paned1.add1(self.frames[1])
53 self.paned2.add1(self.frames[2])
54 self.paned2.add2(self.frames[0])
55
56 self.show_all()
57
58
59 def applyConfiguration(self, conf):
60
61 w = conf.findInt("statuswnd-width")
62 h = conf.findInt("statuswnd-height")
63 paned1 = conf.findInt("statuswnd-paned1")
64 paned2 = conf.findInt("statuswnd-paned2")
65
66 if w!=None and h!=None:
67 self.resize(w,h)
68 if paned1!=None:
69 self.paned1.set_position(paned1)
70 if paned2!=None:
71 self.paned2.set_position(paned2)
72
73
74 while not self.debugger.isActive():
75 gtk.main_iteration()
76
77 for f in self.frames:
78 f.applyConfiguration(conf)
79
80
81 def fillConfiguration(self, conf):
82
83 conf.addInt("statuswnd-width", self.get_size()[0])
84 conf.addInt("statuswnd-height", self.get_size()[1])
85 conf.addInt("statuswnd-paned1", self.paned1.get_position())
86 conf.addInt("statuswnd-paned2", self.paned2.get_position())
87
88 for f in self.frames:
89 f.fillConfiguration(conf)
90