commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef/designer/src LayoutHandler.py


From: Jason Cater
Subject: gnue/gnuef/designer/src LayoutHandler.py
Date: Fri, 15 Jun 2001 07:47:06 -0700

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

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

Log message:
        Updated border-drawing code

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

Patches:
Index: gnue/gnuef/designer/src/LayoutHandler.py
diff -u gnue/gnuef/designer/src/LayoutHandler.py:1.2 
gnue/gnuef/designer/src/LayoutHandler.py:1.3
--- gnue/gnuef/designer/src/LayoutHandler.py:1.2        Thu Jun 14 16:00:08 2001
+++ gnue/gnuef/designer/src/LayoutHandler.py    Fri Jun 15 07:47:06 2001
@@ -207,8 +207,9 @@
 #
 #
 #
-class WidgetHandler: 
+class WidgetHandler(wxEvtHandler): 
   def __init__(self, instance, object): 
+    wxEvtHandler.__init__(self)
     self.instance = instance
     self.object = object 
     self.hasFocus = 0
@@ -223,6 +224,8 @@
 
     for widget in self.mainWidget.widgets:
       widget.SetCursor (wxNullCursor)
+      if hasattr(widget, 'SetEditable'): 
+        widget.SetEditable(0)
       self.setAllChildren(EVT_KEY_UP, widget, self.instance.keyTrap)
       self.setAllChildren(EVT_SET_FOCUS, widget, self.focusGainedTrap)
       self.setAllChildren(EVT_KILL_FOCUS, widget, self.focusLostTrap)
@@ -259,10 +262,11 @@
         y2 = th + ty
 
 
-    self.highlightBox.SetPosition(wxPoint(x1-2,y1-2))
+#    self.highlightBox.SetPosition(wxPoint(x1-2,y1-2))
 #    self.highlightBox.SetClientSize(wxSize(1,1))
-    self.highlightBox.SetClientSize(wxSize(x2-x1+6,y2-y1+6))
+#    self.highlightBox.SetClientSize(wxSize(x2-x1+6,y2-y1+6))
 #    self.instance.panel.Refresh()
+    self.highlightBox.setBoundary(x1-2,y1-2,x2+2,y2+2)
     for widget in self.mainWidget.widgets: 
        widget.Refresh()
 
@@ -272,18 +276,18 @@
 
   def setAllChildren(self, event, widget, trap):
 #    print "Setting event on %s (%s)" % (widget,self.mainWidget.widgets)
-    event(widget, trap) 
+    try: 
+      event(widget, trap) 
+    except: 
+      pass
     for child in widget.GetChildren(): 
       self.setAllChildren(event, child, trap)
 
   def focusGainedTrap(self, event): 
-    self.hasFocus = 1 
-    self.widget.Refresh()
+    pass
 
   def focusLostTrap(self, event): 
-    print "Got Focus"
-    self.hasFocus = 0
-    self.widget.Refresh()
+    pass
 
   def OnLeftDown(self, event): 
 #    self.curLine = [] 
@@ -381,22 +385,44 @@
 #
 #
 #
-class WidgetHighlighter(wxWindow): 
+class WidgetHighlighter: 
 
   def __init__(self, parent): 
-    wxWindow.__init__(self, parent, -1)
     self.selected = 0
     self.parent = parent
-#    self.SetBackgroundMode(wxTRANSPARENT)
-    EVT_PAINT(self, self.OnPaint)
-    EVT_SIZE(self, self.reconfigure)
-    EVT_MOVE(self, self.reconfigure)
+    self.north = wxWindow(parent, -1) 
+    self.south = wxWindow(parent, -1) 
+    self.east = wxWindow(parent, -1) 
+    self.west = wxWindow(parent, -1) 
+    for object in (self.north,self.south,self.east,self.west): 
+      EVT_PAINT(object, self.OnPaint)
+  #    EVT_SIZE(object, self.reconfigure)
+  #    EVT_MOVE(object, self.reconfigure)
+  #    EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
     panelColor = parent.GetBackgroundColour()
     self.inactiveBorderColor = wxColour(panelColor.Red()-16,
                  panelColor.Green()-16,    
                  panelColor.Blue()-16)
     self.activeBorderColor = wxBLUE
 
+  def setBoundary(self, x1, y1, x2, y2): 
+     print "Boundaries (%s,%s)(%s,%s)" %(x1,y1,x2,y2)
+     self.west.SetPosition(wxPoint(x1,y1))  
+     self.west.SetSize(wxSize(1,y2-y1+1)) 
+     self.east.SetPosition(wxPoint(x2,y1))  
+     self.east.SetSize(wxSize(1,y2-y1+1)) 
+     self.south.SetPosition(wxPoint(x1,y2))  
+     self.south.SetSize(wxSize(x2-x1+1,1)) 
+     self.north.SetPosition(wxPoint(x1,y1))  
+     self.north.SetSize(wxSize(x2-x1+1,1)) 
+
+  def GetChildren(self): 
+    return (self.north, self.south, self.east, self.west)
+
+  def Refresh(self): 
+    for object in (self.north,self.south,self.east,self.west): 
+      object.Refresh()    
+ 
   def setSelected (self, selected): 
     if self.selected != selected: 
       self.selected = selected
@@ -406,20 +432,21 @@
     self.Refresh()
 
   def OnPaint(self, event): 
-    dc = wxPaintDC(self)
+    object = wxPyTypeCast(event.GetEventObject(),'wxWindow') 
+    dc = wxPaintDC(object)
     dc.BeginDrawing()
-    dc.SetBackgroundMode(wxTRANSPARENT)
-    dc.SetBrush (wxTRANSPARENT_BRUSH)
     dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))
     dc.Clear()
     if self.selected: 
       dc.SetPen(wxPen(self.activeBorderColor))
     else: 
       dc.SetPen(wxPen(self.inactiveBorderColor))    
-    x1,y1 = self.GetSizeTuple()
-    dc.SetBrush(wxTRANSPARENT_BRUSH)
+    x1,y1 = object.GetSizeTuple()
     dc.DrawRectangle(0,0,x1,y1)
     dc.EndDrawing()
+
+  def OnEraseBackground(self, event): 
+    pass
         
 
 #



reply via email to

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