[Top][All Lists]
[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