commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef/designer/src GFDesigner.py


From: Jason Cater
Subject: gnue/gnuef/designer/src GFDesigner.py
Date: Mon, 11 Jun 2001 15:03:36 -0700

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    01/06/11 15:03:34

Modified files:
        gnuef/designer/src: GFDesigner.py 

Log message:
        Added support for moving widgets using arrow keys.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnuef/designer/src/GFDesigner.py.diff?cvsroot=OldCVS&tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: gnue/gnuef/designer/src/GFDesigner.py
diff -u gnue/gnuef/designer/src/GFDesigner.py:1.7 
gnue/gnuef/designer/src/GFDesigner.py:1.8
--- gnue/gnuef/designer/src/GFDesigner.py:1.7   Mon Jun 11 01:19:12 2001
+++ gnue/gnuef/designer/src/GFDesigner.py       Mon Jun 11 15:03:34 2001
@@ -277,6 +277,9 @@
     self.textWidth = self.charWidth * self.textPercentage
     self.textHeight = self.charHeight * self.textPercentage
 
+    self.gridWidth = self.widgetWidth
+    self.gridHeight = self.widgetHeight
+
     self.menu_sb_space=0 # the extra spaces needed by the menu, toolbar and 
statusbar    
 
     self.panel.SetSize(wxSize(int(width)*int(self.widgetWidth), 
@@ -284,6 +287,11 @@
 
     page.walk(self.__drawItem)
 
+#    EVT_LEFT_UP(self.panel, self.OnLeftUp)
+#    EVT_LEFT_DOWN(self.panel, self.OnLeftDown)
+#    EVT_RIGHT_UP(self.panel, self.OnRightUp)
+#    EVT_MOTION(self.panel, self.OnMotion)
+
 
   def __drawItem(self, object): 
     if self.widgets.has_key(object.getObjectType()): 
@@ -291,6 +299,7 @@
       object._widget = self.widgets[object.getObjectType()]\
          (object,self.panel, self.textWidth, self.textHeight, \
           self.widgetWidth, self.widgetHeight, self,initialize=0)
+      object._widgetHandler = WidgetHandler(self, object, object._widget)
 #      object._widgetContainer.set(object._widget)
       object._widget._object = object
 
@@ -438,8 +447,170 @@
 
   def OnDebugRun (self, event): 
     DebugSession(self)
-  
 
+  def OnLeftDown(self, event): 
+    print "Left down"
+#    self.curLine = [] 
+    self.x, self.y = event.GetPositionTuple() 
+    self.panel.CaptureMouse() 
+ 
+ 
+  def OnLeftUp(self, event): 
+    print "Left up"
+#    self.lines.append( (self.colour, self.thickness, self.curLine) ) 
+#    self.curLine = [] 
+    self.panel.ReleaseMouse() 
+ 
+ 
+  def OnRightUp(self, event): 
+    pt = event.GetPosition() 
+    print "Right click"
+#    self.PopupMenu(self.menu, pt) 
+
+
+  def OnMotion(self, event): 
+    if event.Dragging() and event.LeftIsDown(): 
+      print "Dragging"
+#      dc = wxClientDC(self.instance.panel) 
+#      dc.BeginDrawing() 
+#      dc.SetPen(self.pen) 
+      pos = event.GetPositionTuple() 
+      coords = (self.x, self.y) + pos 
+      
+#      self.curLine.append(coords) 
+#      dc.DrawLine(self.x, self.y, pos[0], pos[1]) 
+#      self.x, self.y = pos 
+#      dc.EndDrawing() 
+ 
+
+#
+#
+#
+class WidgetHandler: 
+  def __init__(self, instance, object, widget): 
+    print widget
+    self.instance = instance
+    self.object = object 
+    self.widget = widget.widgets[0]
+    self.mainWidget = widget
+    self.hasFocus = 0
+    self.menu = None
+
+    self.setAllChildren(EVT_KEY_UP, self.widget, self.keyTrap)
+#    self.setAllChildren(EVT_PAINT, self.widget, self.paintTrap)
+#    self.setAllChildren(EVT_SET_FOCUS, self.widget, self.focusGainedTrap)
+#    self.setAllChildren(EVT_KILL_FOCUS, self.widget, self.focusLostTrap)
+#    self.setAllChildren(EVT_LEFT_UP, self.widget, self.instance.OnLeftUp)
+#    self.setAllChildren(EVT_LEFT_DOWN, self.widget, self.instance.OnLeftDown)
+#    self.setAllChildren(EVT_RIGHT_UP, self.widget, self.OnRightUp)
+#    self.setAllChildren(EVT_MOTION, self.widget, self.instance.OnMotion)
+    self.widget.Refresh()
+
+  def setAllChildren(self, event, widget, trap):
+#    print "Setting event on %s (%s)" % (widget,self.mainWidget.widgets)
+    event(widget, trap) 
+    for child in widget.GetChildren(): 
+      self.setAllChildren(event, child, trap)
+
+  def focusGainedTrap(self, event): 
+    self.hasFocus = 1 
+    self.widget.Refresh()
+
+  def focusLostTrap(self, event): 
+    print "Got Focus"
+    self.hasFocus = 0
+    self.widget.Refresh()
+
+  def paintTrap(self, event): 
+    print "PaintTrap"
+    dc = wxPaintDC(self.instance.panel)
+    x,y = self.widget.GetPositionTuple()
+    h,w = self.widget.GetSizeTuple()
+    dc.SetPen(wxPen(wxBLUE))
+    dc.DrawRectangle(x-1,y-1,h+2,w+2)
+    event.Skip()
+
+
+  def OnLeftDown(self, event): 
+#    self.curLine = [] 
+#    self.x, self.y = event.GetPositionTuple() 
+    print "Left down"
+    self.widget.CaptureMouse() 
+ 
+ 
+  def OnLeftUp(self, event): 
+#    self.lines.append( (self.colour, self.thickness, self.curLine) ) 
+#    self.curLine = [] 
+    print "Left up"
+    self.widget.ReleaseMouse() 
+ 
+ 
+  def OnRightUp(self, event): 
+    pt = event.GetPosition() 
+    print "Right click"
+#    self.PopupMenu(self.menu, pt) 
+
+
+  def OnMotion(self, event): 
+    if event.Dragging() and event.LeftIsDown(): 
+      print "Dragging"
+#      dc = wxClientDC(self.instance.panel) 
+#      dc.BeginDrawing() 
+#      dc.SetPen(self.pen) 
+      pos = event.GetPositionTuple() 
+#      coords = (self.x, self.y) + pos 
+      
+#      self.curLine.append(coords) 
+      dc.DrawLine(self.x, self.y, pos[0], pos[1]) 
+      self.x, self.y = pos 
+#      dc.EndDrawing() 
+ 
+
+  def keyTrap(self, event): 
+    if event.KeyCode() in (WXK_LEFT, WXK_RIGHT, WXK_UP, WXK_DOWN): 
+      if event.AltDown() or event.MetaDown():
+        if event.KeyCode() == WXK_LEFT and \
+           hasattr(self.object, 'width'):
+          self.object.width = self.object.width - 1 
+          w,h = self.widget.GetSizeTuple()
+          self.widget.SetSize(wxSize(w-self.instance.gridWidth,h))
+        if event.KeyCode() == WXK_RIGHT and \
+           hasattr(self.object, 'width'):
+          self.object.width = self.object.width + 1 
+          w,h = self.widget.GetSizeTuple()
+          self.widget.SetSize(wxSize(w+self.instance.gridWidth,h))
+        if event.KeyCode() == WXK_UP and \
+           hasattr(self.object, 'height') and \
+           self.object.height > 1: 
+          self.object.height = self.object.height - 1 
+          w,h = self.widget.GetSizeTuple()
+          self.widget.SetSize(wxSize(w,h-self.instance.gridHeight))
+        if event.KeyCode() == WXK_DOWN and \
+           hasattr(self.object, 'height'):
+          self.object.height = self.object.height + 1 
+          w,h = self.widget.GetSizeTuple()
+          self.widget.SetSize(wxSize(w,h+self.instance.gridHeight))
+      else: 
+        if event.KeyCode() == WXK_LEFT and \
+           self.object.x > 0: 
+          self.object.x = self.object.x - 1 
+          x,y = self.widget.GetPositionTuple()
+          self.widget.SetPosition(wxPoint(x-self.instance.gridWidth,y))
+        if event.KeyCode() == WXK_RIGHT:
+          self.object.x = self.object.x + 1 
+          x,y = self.widget.GetPositionTuple()
+          self.widget.SetPosition(wxPoint(x+self.instance.gridWidth,y))
+        if event.KeyCode() == WXK_UP and \
+           self.object.x > 0: 
+          self.object.y = self.object.y - 1 
+          x,y = self.widget.GetPositionTuple()
+          self.widget.SetPosition(wxPoint(x,y-self.instance.gridHeight))
+        if event.KeyCode() == WXK_DOWN:
+          self.object.y = self.object.y + 1 
+          x,y = self.widget.GetPositionTuple()
+          self.widget.SetPosition(wxPoint(x,y+self.instance.gridHeight))
+
+        
 #
 #
 #



reply via email to

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