/[gnue]/gnue-designer/src/forms/LayoutEditor/LayoutEditor.py
ViewVC logotype

Diff of /gnue-designer/src/forms/LayoutEditor/LayoutEditor.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.97 by jcater, Fri Aug 22 18:39:18 2003 UTC revision 1.97.4.1 by jcater, Sat Aug 23 00:04:42 2003 UTC
# Line 43  from gnue.common.events import Event Line 43  from gnue.common.events import Event
43  # My support files  # My support files
44  from Utils import *  from Utils import *
45  from LayoutEditorTools import LayoutEditorTools  from LayoutEditorTools import LayoutEditorTools
 from WidgetHandler import WidgetHandler  
46  from PropertyBar import PropertyBar  from PropertyBar import PropertyBar
47  from DisplayDropTarget import DisplayDropTarget  from DisplayDropTarget import DisplayDropTarget
48  from ReorderFocus import ReorderFocus  from ReorderFocus import ReorderFocus
49    
50    from renderers.native.WidgetHandler import WidgetHandler
51  from renderers.Base.GridPane import GridPane  from renderers.Base.GridPane import GridPane
52    from renderers.native.Driver import Renderer
53    
54    from Workspace import Workspace
55    
56  class LayoutEditor (ToolBase):  class LayoutEditor (ToolBase):
57    
# Line 60  class LayoutEditor (ToolBase): Line 63  class LayoutEditor (ToolBase):
63    
64    def init(self):    def init(self):
65    
66        self.renderer = Renderer(self.instance)
67    
68      # TODO: blah.... historical reasons      # TODO: blah.... historical reasons
69      self._instance = self.instance      self._instance = self.instance
70    
# Line 154  class LayoutEditor (ToolBase): Line 159  class LayoutEditor (ToolBase):
159        self._notebookMap[object] = index        self._notebookMap[object] = index
160        self._notebookMap[index] = object        self._notebookMap[index] = object
161    
162        self.workspacescroll = wxScrolledWindow(self.notebook, -1,        self.workspace = Workspace(self.notebook, self, object)
          pos=wxPoint(0,0),  
          style=wxCLIP_CHILDREN|wxHSCROLL|wxVSCROLL|wxSUNKEN_BORDER)  
   
       EVT_SIZE(self.workspacescroll, self.__OnGridSize)  
       self.workspace = wxPanel(self.workspacescroll,-1)  
       self.workspace.SetBackgroundColour(self.backcolor)  
163    
164        self.notebook.AddPage(self.workspacescroll,object.name)        self.notebook.AddPage(self.workspace.scroller, object.name)
165        object.__workspace = self.workspace        object.__workspace = self.workspace
166        self.drawPage(object)  
167      if object._type == 'GFBlock':      elif object._type == 'GFBlock':
168        self.blockMap[object.name.lower()] = object        self.blockMap[object.name.lower()] = object
169        if not self.block:        if not self.block:
170          self._setCurrentBlock(object)          self._setCurrentBlock(object)
171    
172    
173    def onSetCurrentObject (self, event):    def onSetCurrentObject (self, event):
174      object = event.object      object = event.object
175      handler = event.originator      handler = event.originator
# Line 261  class LayoutEditor (ToolBase): Line 261  class LayoutEditor (ToolBase):
261    
262      if page != None and page != self.page:      if page != None and page != self.page:
263        self.page = page        self.page = page
264          self.workspace = page.__workspace
265        self.notebook.SetSelection(self._notebookMap[page])        self.notebook.SetSelection(self._notebookMap[page])
       try:  
         self.workspace = page.__workspace  
         self.panel = self.page.__panel  
         UIwxpython.setPointSize(self.page.__pointSize)  
         self.calcGridSpacing()  
       except AttributeError:  
         # This simply means we are setting up  
         # our notebook for the first time.  
         pass  
266    
267    
268    def _setSelection(self, focus, objects):    def _setSelection(self, focus, objects):
# Line 345  class LayoutEditor (ToolBase): Line 336  class LayoutEditor (ToolBase):
336            self._setCurrentPage(page)            self._setCurrentPage(page)
337    
338        if object in (self.rootObject, self.page, self.rootObject._layout) or object in self.widgetList:        if object in (self.rootObject, self.page, self.rootObject._layout) or object in self.widgetList:
339          self.refreshPage(self.page)          self.workspace.refreshPage(self.page)
340    
341      if object._type == 'GFBlock' and event.old.has_key('name'):      if object._type == 'GFBlock' and event.old.has_key('name'):
342        del self.blockMap[event.old['name'].lower()]        del self.blockMap[event.old['name'].lower()]
# Line 389  class LayoutEditor (ToolBase): Line 380  class LayoutEditor (ToolBase):
380        object._widgetHandler = None        object._widgetHandler = None
381    
382    
   def refreshPage(self, page):  
     try:  
       page.__panel.Destroy()  
       del page.__panel  
     except AttributeError:  
       pass  
   
     self.drawPage(page)  
   
383    def calcGridSpacing(self):    def calcGridSpacing(self):
384        UIwxpython.initFont(self.panel)        UIwxpython.initFont(self.panel)
385    
# Line 462  class LayoutEditor (ToolBase): Line 444  class LayoutEditor (ToolBase):
444        page.walk(self.__drawItem)        page.walk(self.__drawItem)
445    
446    
 ###    coverPanel = TransparentPanel(self, self.panel)  
   
447      EVT_CHAR(self.panel, self.keyTrap)      EVT_CHAR(self.panel, self.keyTrap)
448      EVT_LEFT_DOWN(self.panel, self.OnLeftDown)      EVT_LEFT_DOWN(self.panel, self.OnLeftDown)
449      EVT_MOTION(self.panel, self.OnMotion)      EVT_MOTION(self.panel, self.OnMotion)
# Line 840  class LayoutEditor (ToolBase): Line 820  class LayoutEditor (ToolBase):
820        self.dispatchEvent('Cancel:LayoutEditor:Prepositioning')        self.dispatchEvent('Cancel:LayoutEditor:Prepositioning')
821      self.dispatchEvent('LayoutEditor:Select')      self.dispatchEvent('LayoutEditor:Select')
822    
 class PrepositioningTimer(wxTimer):  
     def __init__(self, method, *args, **params):  
       self.__method = method  
       self.__args = args  
       self.__params = params  
       wxTimer.__init__(self)  
   
     def Notify(self):  
       self.__method(*self.__args, **self.__params)  
   
   
   
 class TransparentPanel:  
   def __init__(self, layoutEditor, parent):  
     self.parent = parent  
     self.editor = layoutEditor  
     self.bitmap = wxEmptyBitmap(*self.parent.GetClientSizeTuple())  
   
 class TransparentPanelXXXX(wxWindow):  
   def __init__(self, layoutEditor, parent):  
     wxWindow.__init__(self, parent, -1, pos=wxPoint(0,0), size=parent.GetClientSize())  
 #    EVT_PAINT(self, self.OnPaint)  
     EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)  
 #    parent.Refresh()  
   
   def OnEraseBackground(self, event):  
     print "Painting"  
     pass  
   
   
   def OnPaint(self, event):  
     object = wxPyTypeCast(event.GetEventObject(),'wxWindow')  
     dc = wxPaintDC(object)  
     dc.BeginDrawing()  
     dc.SetBackgroundMode(wxTRANSPARENT)  
     dc.SetClippingRegion(5,5,10,50)  
 ##    dc.SetBackground(wxBrush(self.parent.GetBackgroundColour(),wxTRANSPARENT))  
 ##    dc.SetBackground(wxBrush(wxBLACK,wxTRANSPARENT))  
   
 ##    dc.Clear()  
 ##    if self.focused:  
 ##      dc.SetPen(wxPen(activeBorderColor))  
 ##    else:  
 ##      dc.SetPen(wxPen(inactiveBorderColor))  
 ##    x1,y1 = object.GetSizeTuple()  
 ##    dc.DrawRectangle(0,0,x1,y1)  
 ##    if self.focused:  
 ##      dc.DrawRectangle(1,1,x1-2,y1-2)  
   
     dc.EndDrawing()  
823    
824    class PrepositioningTimer(wxTimer):
825      def __init__(self, method, *args, **params):
826        self.__method = method
827        self.__args = args
828        self.__params = params
829        wxTimer.__init__(self)
830    
831      def Notify(self):
832        self.__method(*self.__args, **self.__params)
833    

Legend:
Removed from v.1.97  
changed lines
  Added in v.1.97.4.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26