/[ascend]/trunk/pygtk/gtkbrowser.py
ViewVC logotype

Diff of /trunk/pygtk/gtkbrowser.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 171 by johnpye, Fri Jan 6 09:00:52 2006 UTC revision 172 by johnpye, Sat Jan 7 10:06:13 2006 UTC
# Line 61  class Browser: Line 61  class Browser:
61          glade = gtk.glade.XML(GLADE_FILE,"browserwin")          glade = gtk.glade.XML(GLADE_FILE,"browserwin")
62    
63          self.window = glade.get_widget("browserwin")          self.window = glade.get_widget("browserwin")
   
64          if not self.window:          if not self.window:
65              raise RuntimeError("Couldn't load window from glade file")              raise RuntimeError("Couldn't load window from glade file")
66    
67            _geom=self.prefs.getGeometry(self.window.get_screen().get_display().get_name(),"browserwin")
68            if _geom:
69                self.window.resize(_geom[0],_geom[1]);
70                self.window.move(_geom[2],_geom[3]);
71    
72          self.window.connect("delete_event", self.delete_event)          self.window.connect("delete_event", self.delete_event)
73    
74          self.openbutton=glade.get_widget("openbutton")          self.openbutton=glade.get_widget("openbutton")
# Line 117  class Browser: Line 122  class Browser:
122          self.treecontext = gtk.Menu();          self.treecontext = gtk.Menu();
123          self.fixmenuitem = gtk.MenuItem("Fix");          self.fixmenuitem = gtk.MenuItem("Fix");
124          self.freemenuitem = gtk.MenuItem("Free");          self.freemenuitem = gtk.MenuItem("Free");
125            self.plotmenuitem = gtk.MenuItem("Plot");
126          self.fixmenuitem.show()          self.fixmenuitem.show()
127          self.freemenuitem.show()          self.freemenuitem.show()
128            self.plotmenuitem.show()
129          self.treecontext.append(self.fixmenuitem);          self.treecontext.append(self.fixmenuitem);
130          self.treecontext.append(self.freemenuitem);          self.treecontext.append(self.freemenuitem);
131            self.treecontext.append(self.plotmenuitem);
132          self.fixmenuitem.connect("activate",self.fix_activate)          self.fixmenuitem.connect("activate",self.fix_activate)
133          self.freemenuitem.connect("activate",self.free_activate)          self.freemenuitem.connect("activate",self.free_activate)
134            self.freemenuitem.connect("activate",self.plot_activate)
135          if not self.treecontext:          if not self.treecontext:
136              raise RuntimeError("Couldn't create browsercontext")              raise RuntimeError("Couldn't create browsercontext")
137          #--------------------          #--------------------
# Line 706  class Browser: Line 715  class Browser:
715              _time = event.time              _time = event.time
716              _pthinfo = self.treeview.get_path_at_pos(_x, _y)              _pthinfo = self.treeview.get_path_at_pos(_x, _y)
717              if _pthinfo != None:              if _pthinfo != None:
718                    _canpop = False;
719                  _path, _col, _cellx, _celly = _pthinfo                  _path, _col, _cellx, _celly = _pthinfo
720                  # self.reporter.reportError("Right click on %s" % self.otank[_path][0])                  # self.reporter.reportError("Right click on %s" % self.otank[_path][0])
721                  _instance = self.otank[_path][1]                  _instance = self.otank[_path][1]
722                  if _instance.getType().isRefinedSolverVar():                  if _instance.getType().isRefinedSolverVar():
723                      self.treeview.grab_focus()                      _canpop = True;
                     self.treeview.set_cursor( _path, _col, 0)  
724                      if _instance.isFixed():                      if _instance.isFixed():
725                          self.fixmenuitem.hide()                          self.fixmenuitem.hide()
726                          self.freemenuitem.show()                          self.freemenuitem.show()
727                      else:                      else:
728                          self.fixmenuitem.show()                          self.fixmenuitem.show()
729                          self.freemenuitem.hide()                          self.freemenuitem.hide()
730    
731                    if _instance.isPlottable():
732                        self.reporter.reportNote("Instance IS plottable");
733                        self.plotmenuitem.show()
734                        _canpop = True;
735                    else:
736                        self.reporter.reportNote("Instance is not plottable");
737                        self.plotmenuitem.hide()
738    
739                    if _canpop:
740                        self.treeview.grab_focus()
741                        self.treeview.set_cursor( _path, _col, 0)
742                      self.treecontext.popup( None, None, None, event.button, _time)                      self.treecontext.popup( None, None, None, event.button, _time)
743                      return 1                      return 1
744                    else:
745                        self.reporter.reportNote("No right-click options available here");
746              else:              else:
747                  self.reporter.reportError("Invalid selection for right-click")                  self.reporter.reportError("Invalid selection for right-click")
748    
# Line 747  class Browser: Line 770  class Browser:
770              self.refreshtree()              self.refreshtree()
771          return 1          return 1
772    
773        def plot_activate(self,widget):
774            _path,_col = self.treeview.get_cursor()
775            _instance = self.otank[_path][1]
776            if not _instance.isPlottable():
777                self.reporter.reportError("Can't plot instanct %s" % _instance.getName().toString())
778                return
779    
780            self.reporter.reportNote("About to plot instance %s" % _instance.getName().toString())
781            return 1
782    
783    
784            
785  #   ---------------------------------  #   ---------------------------------
786  #   WINDOW-LEVEL ACTIONS  #   WINDOW-LEVEL ACTIONS
787    
788      def delete_event(self, widget, event, data=None):      def delete_event(self, widget, event, data=None):
789          self.reporter.clearPythonErrorCallback()          self.reporter.clearPythonErrorCallback()
790            _w,_h = self.window.get_size()
791            _t,_l = self.window.get_position()
792            self.prefs.setGeometry(self.window.get_screen().get_display().get_name(),"browserwin",_w,_h,_t,_l );
793    
794          # causes prefs to be saved unless they are still being used elsewher          # causes prefs to be saved unless they are still being used elsewher
795          del(self.prefs)          del(self.prefs)

Legend:
Removed from v.171  
changed lines
  Added in v.172

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22