commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue/gnuef/designer/src Incubator.py Instance.p...


From: Jason Cater
Subject: gnue/gnuef/designer/src Incubator.py Instance.p...
Date: Thu, 21 Jun 2001 18:15:53 -0700

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/06/21 18:15:53

Modified files:
        gnuef/designer/src: Incubator.py Instance.py LayoutEditor.py 
                            TreeView.py TriggerEditor.py 
Added files:
        gnuef/designer/src: RuntimeSettings.py 

Log message:
        Added: Delete items from tree; save window state between sessions; 
moved layout combos to a toolbar; fixed minor bugs

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/RuntimeSettings.py?cvsroot=OldCVS&rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/Incubator.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/Instance.py.diff?cvsroot=OldCVS&tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/LayoutEditor.py.diff?cvsroot=OldCVS&tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/TreeView.py.diff?cvsroot=OldCVS&tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/TriggerEditor.py.diff?cvsroot=OldCVS&tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gnue/gnuef/designer/src/Incubator.py
diff -u gnue/gnuef/designer/src/Incubator.py:1.2 
gnue/gnuef/designer/src/Incubator.py:1.3
--- gnue/gnuef/designer/src/Incubator.py:1.2    Wed Jun 20 15:31:55 2001
+++ gnue/gnuef/designer/src/Incubator.py        Thu Jun 21 18:15:53 2001
@@ -72,6 +72,7 @@
     if attrs.has_key(attr): 
       o.__dict__[attr] = attributes[attr]
   o.name = name
+  self.nameMappings[object.name] = object
   o.buildObject()
   instance.onCreateObject(o, __name__)
   instance.onSetCurrentObject(o, __name__)
Index: gnue/gnuef/designer/src/Instance.py
diff -u gnue/gnuef/designer/src/Instance.py:1.9 
gnue/gnuef/designer/src/Instance.py:1.10
--- gnue/gnuef/designer/src/Instance.py:1.9     Wed Jun 20 18:37:05 2001
+++ gnue/gnuef/designer/src/Instance.py Thu Jun 21 18:15:53 2001
@@ -38,12 +38,20 @@
 from TreeView import *
 from PropertyEditor import * 
 from TriggerEditor import *
+import RuntimeSettings
 
 class GFDInstance(GFInstance.GFInstance, wxFrame):
   def __init__(self, app, location=None): 
     GFInstance.GFInstance.__init__(self, app, -1, app.connections, None, 
disableSplash=1)
     wxFrame.__init__(self, NULL, -1, "")
 
+    # Register ourself with RuntimeSettings
+    RuntimeSettings.registerInstance(self)
+
+    # Tell RuntimeSettings that we have information to save
+    self.runtime_section = 'FormLayout'
+    RuntimeSettings.registerRuntimeSettingHandler(self, self)
+
     self._isdirty = 0
 
     self._app = app
@@ -99,10 +107,13 @@
     self._currentPage = self._pages[0]
     hsplitter.SplitHorizontally (self.tree, self.propertyEditor)
     vsplitter.SplitVertically(hsplitter, self.layoutEditor)
-    vsplitter.SetSashPosition (220, true)
+    vsplitter.SetSashPosition (
+        RuntimeSettings.getint(self.runtime_section, 'vsash', 170), true)
     self.vsplitter = vsplitter
+    self.hsplitter = hsplitter
     self.layoutEditor.drawPage(self._currentPage)
-    hsplitter.SetSashPosition (320, true)
+    hsplitter.SetSashPosition (
+        RuntimeSettings.getint(self.runtime_section, 'hsash', 170), true)
     self.tree.Expand(self._form._treeItem)
 
     self._menubar.lastToolAdded()
@@ -114,8 +125,35 @@
     vsplitter.Fit()
     self.layoutEditor.Fit()
     self.Fit()
+
+    self.SetSize(( 
+       RuntimeSettings.getint(self.runtime_section, 'width', 550), 
+       RuntimeSettings.getint(self.runtime_section, 'height', 400)))
+
+    self.SetPosition(( 
+       RuntimeSettings.getint(self.runtime_section, 'x', -1), 
+       RuntimeSettings.getint(self.runtime_section, 'y', -1)))
+
     self.Refresh()
 
+    EVT_CLOSE(self, self.OnClose)
+
+  #
+  #  Used by RuntimeSettings
+  # 
+  def saveRuntimeSettings(self): 
+    x, y = self.GetPositionTuple()
+    width, height = self.GetSizeTuple()
+    return ( self.runtime_section, 
+             { 'x': x, 
+               'y': y, 
+               'height': height, 
+               'width': width, 
+               'hsash': self.hsplitter.GetSashPosition(),
+               'vsash': self.vsplitter.GetSashPosition()  } )
+
+
+  # Hack having to do with UIwxpython import
   def uiEventTrap(self, event): 
     pass
 
@@ -137,16 +175,17 @@
       self.SetTitle( TITLE + " - " + self._path)
  
     
-
-
+  # Take an object and mangle it all up 
+  # until it is useful to us 
   def inventoryLoadedItems (self, object): 
 
     if object != self._form:
-      if hasattr(object, 'name') and \
-         (object.name == None or (
-          object.name[:3] == "__<" and \
-          object.name[-3:] == ">__")): 
-        object.name = self.getNextGenericName(object.getObjectType()[2:])
+      if hasattr(object, 'name'):
+        if (object.name == None or ( \
+            object.name[:3] == "__<" and \
+            object.name[-3:] == ">__")): 
+          object.name = self.getNextGenericName(object.getObjectType()[2:])
+        self.nameMappings[object.name] = object
 
     if isinstance(object, GFObjects.GFPage) and \
         object._parent == self._form:
@@ -279,20 +318,28 @@
     
  
   def OnClose(self, event): 
+    RuntimeSettings.saveRuntimeSettings(self)
     self._app.removeInstance(self) 
-    self.Close()
+    event.Skip()
 
   def OnDebugRun (self, event): 
     DebugSession(self)
 
-
+#
+# Any tool frames inherit from this
+# It handles the Window menu and 
+# saving size/position/display settings
+#
 class ToolFrame (wxFrame): 
+
+  default_width = 200
+  default_height = 150
+
   def __init__(self, instance, title): 
-#    wxMiniFrame.__init__(self, instance, -1, title,
-#      style=wxMINIMIZE_BOX)
     wxFrame.__init__(self, instance, -1, title, 
       style=wxMINIMIZE_BOX|wxRESIZE_BORDER|wxCAPTION)#|wxFRAME_FLOAT_ON_PARENT)
     self.title = title
+    self.runtime_section = "ToolFrame-%s" % string.replace(self.title,' ','')
     self.instance = instance
 
     # Add ourselves to the Window menu
@@ -300,7 +347,29 @@
     self.menu = self.instance._menubar.addTool(self, title)
     
     EVT_CLOSE(self, self.OnClose)
+
+    self.SetPosition(( 
+       RuntimeSettings.getint(self.runtime_section, 'x', -1), 
+       RuntimeSettings.getint(self.runtime_section, 'y', -1)))
+
+    self.SetSize(( 
+       RuntimeSettings.getint(self.runtime_section, 'width', 
self.default_width), 
+       RuntimeSettings.getint(self.runtime_section, 'height', 
self.default_height)))
+
+    if RuntimeSettings.getint(self.runtime_section, 'visible', 0):
+      self.show()
+
+    RuntimeSettings.registerRuntimeSettingHandler(instance, self)
     
+  def saveRuntimeSettings(self): 
+    x, y = self.GetPositionTuple()
+    width, height = self.GetSizeTuple()
+    return ( self.runtime_section, 
+             {'x': x, 
+              'y': y, 
+              'height': height, 
+              'width': width, 
+              'visible': self._menu.IsChecked() } )
 
   # This event is set by MenuBar.addTool
   # Called whenever menu item is selected
Index: gnue/gnuef/designer/src/LayoutEditor.py
diff -u gnue/gnuef/designer/src/LayoutEditor.py:1.4 
gnue/gnuef/designer/src/LayoutEditor.py:1.5
--- gnue/gnuef/designer/src/LayoutEditor.py:1.4 Wed Jun 20 15:31:55 2001
+++ gnue/gnuef/designer/src/LayoutEditor.py     Thu Jun 21 18:15:53 2001
@@ -30,7 +30,8 @@
 from wxPython.wx import *
 from gnue.common import GDebug, GConfig
 from gnue.common.GClientApp import GClientApp
-from gnue.forms import GFForm, GFInstance, GFParser, GFObjects, GFTrigger, 
GFLibrary, UIwxpython
+from gnue.forms import GFForm, GFInstance, GFParser
+from gnue.forms import GFObjects, GFTrigger, GFLibrary, UIwxpython
 
 
 class LayoutEditor (wxScrolledWindow): 
@@ -44,13 +45,16 @@
     self.widgets.update(UIwxpython.WIDGETS)
     del self.widgets['GFPage']
 
+    self.toolpanel = wxPanel(self, -1, pos=wxPoint(0,0), size=wxSize(32,32), 
style=wxRAISED_BORDER|wxCLIP_CHILDREN)
+
     self.page = None
-    self.pageNameLabel = wxStaticText(self, -1, "Page: ", pos=wxPoint(10,20))
-    self.pageCombo = wxComboBox(self, -1, 
pos=wxPoint(self.pageNameLabel.GetSize().width + 11,18), style=wxCB_READONLY)
-    self.blockNameLabel = wxStaticText(self, -1, "Block:", 
pos=wxPoint(self.pageCombo.GetPosition().x + self.pageCombo.GetSize().width + 
20,20))
-    self.blockCombo = wxComboBox(self, -1, 
pos=wxPoint(self.blockNameLabel.GetPosition().x + 
self.blockNameLabel.GetSize().width + 11,18), style=wxCB_READONLY)
+    self.pageNameLabel = wxStaticText(self.toolpanel, -1, "Page: ", 
pos=wxPoint(4,6))
+    self.pageCombo = wxComboBox(self.toolpanel, -1, 
pos=wxPoint(self.pageNameLabel.GetSize().width + 10,4), style=wxCB_READONLY)
+    self.blockNameLabel = wxStaticText(self.toolpanel, -1, "Block:", 
pos=wxPoint(self.pageCombo.GetPosition().x + self.pageCombo.GetSize().width + 
20,6))
+    self.blockCombo = wxComboBox(self.toolpanel, -1, 
pos=wxPoint(self.blockNameLabel.GetPosition().x + 
self.blockNameLabel.GetSize().width + 11,4), style=wxCB_READONLY)
     EVT_COMBOBOX(self, self.pageCombo.GetId(), self.OnPageSelected)
     EVT_COMBOBOX(self, self.blockCombo.GetId(), self.OnBlockSelected)
+    EVT_SIZE(self, self.OnSize)
 
     self._pageList = []  # Needed by UIwxpython
 
@@ -185,6 +189,9 @@
       if not len(self._currentSelection.keys()): 
         self._currentSelection = {object._widgetHandler:1}
         object._widgetHandler.setSelected(0)
+
+  def OnSize(self, event): 
+    self.toolpanel.SetSize(wxSize(self.GetClientSize().x, 
self.toolpanel.GetSize().y))
 
 
   def OnPageSelected(self, event): 
Index: gnue/gnuef/designer/src/TreeView.py
diff -u gnue/gnuef/designer/src/TreeView.py:1.4 
gnue/gnuef/designer/src/TreeView.py:1.5
--- gnue/gnuef/designer/src/TreeView.py:1.4     Wed Jun 20 15:31:55 2001
+++ gnue/gnuef/designer/src/TreeView.py Thu Jun 21 18:15:53 2001
@@ -126,8 +126,13 @@
   def onDeleteObject (self, object, handler):
     if object == None: 
       return
-    if handler != __name__:
-      pass
+    if hasattr(object, '_treeItemTrigger'):
+      self.Delete(object._treeItemTrigger)
+    if hasattr(object, '_treeItem'):
+      if self.GetSelection() == object._treeItem: 
+        self.SelectItem(self.GetItemParent(object._treeItem))
+      self.Delete(object._treeItem)
+    self.Refresh()
 
   def OnTreeLabelEdit(self, event): 
     event.Veto()
Index: gnue/gnuef/designer/src/TriggerEditor.py
diff -u gnue/gnuef/designer/src/TriggerEditor.py:1.5 
gnue/gnuef/designer/src/TriggerEditor.py:1.6
--- gnue/gnuef/designer/src/TriggerEditor.py:1.5        Wed Jun 20 18:37:05 2001
+++ gnue/gnuef/designer/src/TriggerEditor.py    Thu Jun 21 18:15:53 2001
@@ -41,8 +41,8 @@
     
     wxPanel.__init__(self, parent, -1)
     self.editor = 
wxTextCtrl(self,-1,style=wxTE_PROCESS_TAB|wxTE_MULTILINE|wxHSCROLL)
-    #self.SetSize(parent.GetClientSize())
-    self.SetSize(wxSize(width,height))
+    self.SetSize(parent.GetClientSize())
+    #self.SetSize(wxSize(width,height))
     self.editor.SetSize(self.GetClientSize())
     parent.SetSize(self.GetSize())
     self.object = None



reply via email to

[Prev in Thread] Current Thread [Next in Thread]