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