remembering window sizes
authorStefan Huber <shuber2@gmail.com>
Mon, 9 Jun 2008 18:44:15 +0000 (20:44 +0200)
committerStefan Huber <shuber2@gmail.com>
Mon, 9 Jun 2008 18:44:15 +0000 (20:44 +0200)
Configuration.py
MainControlWindow.py
StatusWindow.py
WatchesFrame.py

index 7dcd2908aca58e6f9013a752c3e8af982ce85908..a8b4abfa8b768b5276bb932c18923285348339ae 100755 (executable)
@@ -15,6 +15,7 @@ class Configuration:
        def __init__(self):
                self.breakpoints = []
                self.watches = []
+               self.ints = []
 
 
        def load(self, filename):
@@ -32,6 +33,8 @@ class Configuration:
                                        self.parseBreak(tail)
                                elif cmd == "watch":
                                        self.parseWatch(tail)
+                               elif cmd == "int":
+                                       self.parseInt(tail)
                                else:
                                        cnt -= 1
                                        print "Unkown command", cmd
@@ -39,6 +42,7 @@ class Configuration:
                except IOError:
                        return None
 
+
        def store(self, filename):
 
                f = file(filename, "w")
@@ -49,6 +53,10 @@ class Configuration:
                for w in self.watches:
                        self.__writeWatch(f, w)
 
+               for s in self.ints:
+                       self.__writeInt(f, s)
+
+
 
        def parseBreak(self, tail):
 
@@ -71,6 +79,17 @@ class Configuration:
 
                self.addBreak(file, lineno, cond)
 
+       def parseInt(self, tail):
+               tail.strip()
+               rx = re.compile("^[\w_\-]+\s+\d+$")
+
+               if not rx.search(tail):
+                       print "Wrong size format:", tail
+                       return
+
+               [name,val] = string.split(tail)
+               val = int(val)
+               self.addInt(name, val)
 
        def parseWatch(self, tail):
                self.addWatch(tail)
@@ -82,6 +101,9 @@ class Configuration:
                else:
                        f.write("break %(file)s:%(lineno)d\n" % b)
 
+       def __writeInt(self, f, s):
+               f.write("int %(name)s %(val)d\n" % s)
+
        def __writeWatch(self, f, w):
                f.write("watch %(expr)s\n" % w)
 
@@ -89,11 +111,24 @@ class Configuration:
        def addBreak(self, file, lineno, cond=None):            
                self.breakpoints += [ {"file" : file, "lineno" : lineno, "cond" : cond} ]
 
+       def addInt(self, name, val):
+               self.ints += [{"name": name, "val": val}]
+
        def addWatch(self, expr):
                self.watches += [ {"expr" : expr.strip() } ]
 
+
+       def findInt(self, name):
+               for i in self.ints:
+                       if i["name"] == name:
+                               return i["val"]
+               return None
+
+
        def __str__(self):
-               return "breakpoints=" + str(self.breakpoints) + ", watches=" + str(self.watches)
+               return "breakpoints=" + str(self.breakpoints) + \
+                               ", watches=" + str(self.watches) + \
+                               ", ints=" + str(self.ints)
 
 
 
index 13d32eed6667f784c079b5a6ff89bae6d5e2187d..d8235c07283941187fa6cc937ca1042cf9778004 100644 (file)
@@ -39,8 +39,8 @@ class MainControlWindow (gtk.Window):
                self.add(vbox)
 
                #Button box
-               hbtnbox = gtk.HButtonBox()
-               hbtnbox.set_layout(gtk.BUTTONBOX_START)
+               hbtnbox = gtk.HBox(False, spacing=5)
+               #hbtnbox.set_layout(gtk.BUTTONBOX_START)
                vbox.pack_start(hbtnbox)
 
                self.runBtn = gtk.Button("Run")
index 121c0b8a7f5b9375e2b6614ffa90abf3ad427d1e..4a08b54f068f771f801b9733fa2cdb50adaead6e 100644 (file)
@@ -29,15 +29,15 @@ class StatusWindow (gtk.Window):
 
                self.status = gtk.Label("Not Running")
                vbox.pack_start(self.status, False, False)
-               vpaned = gtk.VPaned()
-               vbox.add(vpaned)
+               self.paned1 = gtk.VPaned()
+               vbox.add(self.paned1)
 
                #Adding the frames
                self.frames = []
                self.frames += [WatchesFrame.WatchesFrame(debugger)]
                self.frames += [BreakpointsFrame.BreakpointsFrame(debugger)]
-               vpaned.add1(self.frames[0])
-               vpaned.add2(self.frames[1])
+               self.paned1.add1(self.frames[0])
+               self.paned1.add2(self.frames[1])
 
                #Register callback function for new positions
                #and update the values
@@ -48,6 +48,17 @@ class StatusWindow (gtk.Window):
 
        def applyConfiguration(self, conf):
 
+               w = conf.findInt("statuswnd-width")
+               h = conf.findInt("statuswnd-height")
+               paned1 = conf.findInt("statuswnd-paned1")
+
+               print w, h, paned1
+               if w!=None and h!=None:
+                       self.resize(w,h)
+               if paned1!=None:
+                       self.paned1.set_position(paned1)
+
+
                while not self.debugger.isActive():
                        gtk.main_iteration()
 
@@ -56,6 +67,11 @@ class StatusWindow (gtk.Window):
 
 
        def fillConfiguration(self, conf):
+
+               conf.addInt("statuswnd-width", self.get_size()[0])
+               conf.addInt("statuswnd-height", self.get_size()[1])
+               conf.addInt("statuswnd-paned1", self.paned1.get_position())
+
                for f in self.frames:
                        f.fillConfiguration(conf)
 
index 675e47ccb36f49328dc7c100c10d0f53e23f6443..10a46950083440f130adfb45b216ac27586fe9b1 100644 (file)
@@ -96,6 +96,7 @@ class WatchesFrame (StatusFrame.StatusFrame):
 
 
        def fillConfiguration(self, conf):
+
                iter = self.model.get_iter_first()
                while iter != None:
                        expr, = self.model.get(iter, 0)