commit-gnue
[Top][All Lists]
Advanced

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

r5840 - trunk/gnue-designer/src/forms/LayoutEditor


From: btami
Subject: r5840 - trunk/gnue-designer/src/forms/LayoutEditor
Date: Thu, 27 May 2004 16:22:45 -0500 (CDT)

Author: btami
Date: 2004-05-27 16:22:44 -0500 (Thu, 27 May 2004)
New Revision: 5840

Modified:
   trunk/gnue-designer/src/forms/LayoutEditor/LayoutEditor.py
   trunk/gnue-designer/src/forms/LayoutEditor/ReorderFocus.py
   trunk/gnue-designer/src/forms/LayoutEditor/WidgetFocusTab.py
Log:
implemented "Reset Focus Order by Position" in designer

Modified: trunk/gnue-designer/src/forms/LayoutEditor/LayoutEditor.py
===================================================================
--- trunk/gnue-designer/src/forms/LayoutEditor/LayoutEditor.py  2004-05-27 
20:54:41 UTC (rev 5839)
+++ trunk/gnue-designer/src/forms/LayoutEditor/LayoutEditor.py  2004-05-27 
21:22:44 UTC (rev 5840)
@@ -114,6 +114,7 @@
                        'ObjectDeleted'       : self.onDeleteObject,
                        'LayoutEditor:ZoomIn' : self.zoomIn,
                        'LayoutEditor:ZoomOut': self.zoomOut,
+                       'LayoutEditor:AutoArrange' : self.onAutoArrange,
                        'LayoutEditor:FocusOrder': self.beginFocusOrder,
                        'Cancel:LayoutEditor:FocusOrder': self.endFocusOrder,
                        'LayoutEditor:Prepositioning': 
self.beginPrePositioningTemplate,
@@ -798,7 +799,25 @@
     self.dispatchEvent('LayoutEditor:Select')
     self.__wizardrunner.positioned_run(x=x, y=y, width=width, height=height)
 
+  def onAutoArrange(self, event):
+    mode = self.mode
+    self.mode = 'refocus'
+    if mode == 'move':
+      event.dispatchAfter('Cancel:LayoutEditor:Select')
+    elif mode == 'positioning':
+      self.__wizardrunner.cancel()
+      # Yes, you are reading this right...
+      # I'm triggering the exact event that
+      # triggered this method. Blame it on
+      # the Tuesday night atmospheric crack
+      # levels.
+      self.dispatchEvent('LayoutEditor:AutoArrange')
+      return
 
+    self.reorderfocus.start(self.page)
+    self.reorderfocus.autoArrange()
+    self.dispatchEvent('LayoutEditor:FocusOrder')
+
   def beginFocusOrder(self, event):
     mode = self.mode
     self.mode = 'refocus'

Modified: trunk/gnue-designer/src/forms/LayoutEditor/ReorderFocus.py
===================================================================
--- trunk/gnue-designer/src/forms/LayoutEditor/ReorderFocus.py  2004-05-27 
20:54:41 UTC (rev 5839)
+++ trunk/gnue-designer/src/forms/LayoutEditor/ReorderFocus.py  2004-05-27 
21:22:44 UTC (rev 5840)
@@ -43,7 +43,10 @@
 
     i = 0
     for tab in self.list:
-      tab.setOrder(i)
+      if hasattr(tab.widget, 'focusorder'):
+        tab.setOrder(tab.widget.focusorder)
+      else:
+        tab.setOrder(i)
       i += 1
 
   def _buildList(self, object):
@@ -53,7 +56,25 @@
       self.list.append(WidgetFocusTab(self.instance, object))
 
   def end(self):
-    for object in self.list:
+    while len(self.list):
+      object = self.list.pop()
       object.close()
-    self.list = []
 
+  def autoArrange(self):
+    self.list.sort(self.myCmp)
+    i = 0
+    for tab in self.list:
+      tab.setOrder(i)
+      i += 1
+    
+  def myCmp(self, a, b):
+    if a.y < b.y:
+      return -1
+    elif a.y > b.y:
+      return 1
+    elif a.x < b.x:
+      return -1
+    elif a.x > b.x:
+      return 1
+    else:
+      return 0

Modified: trunk/gnue-designer/src/forms/LayoutEditor/WidgetFocusTab.py
===================================================================
--- trunk/gnue-designer/src/forms/LayoutEditor/WidgetFocusTab.py        
2004-05-27 20:54:41 UTC (rev 5839)
+++ trunk/gnue-designer/src/forms/LayoutEditor/WidgetFocusTab.py        
2004-05-27 21:22:44 UTC (rev 5840)
@@ -42,17 +42,18 @@
     self.instance = instance
     panel = self.instance.visualEditor.panel
     self.widget = widget
-    x, y = widget._widgetHandler.widget.GetPositionTuple()
-    print x,y
-    self.label = wxStaticText(panel, -1, "0", pos=(x,y-10))
+    self.x, self.y = widget._widgetHandler.widget.GetPositionTuple()
+    print self.x, self.y
+    self.label = wxStaticText(panel, -1, "0", pos=(self.x, self.y-10))
 
   def setOrder(self, position):
     self.position = position
-    self.label.SetLabel("%s" % (position+1))
-    print "Setting order to %s" % (position+1)
+    self.label.SetLabel("%s" % (position))
+    self.widget.focusorder = position
+    print "Setting order to %s" % (position)
 
   def close(self):
     self.instance = None
     self.widget = None
-##    self.Destroy()
+    self.label.Destroy()
 





reply via email to

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