commit-gnue
[Top][All Lists]
Advanced

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

gnue/designer/src/base MenuBar.py ToolBase.py d...


From: Jason Cater
Subject: gnue/designer/src/base MenuBar.py ToolBase.py d...
Date: Fri, 13 Jun 2003 17:12:32 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Branch:         
Changes by:     Jason Cater <address@hidden>    03/06/13 17:12:32

Modified files:
        designer/src/base: MenuBar.py ToolBase.py 
        designer/src/base/docks: BasePane.py DockedPane.py Docker.py 
                                 FloatingPane.py SplitDock.py 
        designer/src/base/tools: PropertyEditor.py TriggerEditor.py 

Log message:
        cleaning up the interactions between the various docking classes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MenuBar.py.diff?tr1=1.49&tr2=1.50&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolBase.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/BasePane.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/DockedPane.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/Docker.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/FloatingPane.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/SplitDock.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/tools/PropertyEditor.py.diff?tr1=1.46&tr2=1.47&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/tools/TriggerEditor.py.diff?tr1=1.33&tr2=1.34&r1=text&r2=text

Patches:
Index: gnue/designer/src/base/MenuBar.py
diff -c gnue/designer/src/base/MenuBar.py:1.49 
gnue/designer/src/base/MenuBar.py:1.50
*** gnue/designer/src/base/MenuBar.py:1.49      Fri Jun 13 12:39:22 2003
--- gnue/designer/src/base/MenuBar.py   Fri Jun 13 17:12:32 2003
***************
*** 135,140 ****
--- 135,143 ----
            EVT_MENU(self.instance._app, mid,
              lambda event, l=self.instance, m=item, e=action, x=eventdata:
                    l.dispatchEvent('%s:%s' % (m.IsChecked() and 'Show' or 
'Hide',e), **x))
+           self.instance.registerEventListeners( {
+                    'Show:%s' % action:  lambda event, m=item: m.Check(1),
+                    'Hide:%s' % action: lambda event, m=item: m.Check(0) })
          else:
            EVT_MENU(self.instance._app, mid,
              lambda event, l=self.instance, e=action, x=eventdata: 
l.dispatchEvent(e, **x))
Index: gnue/designer/src/base/ToolBase.py
diff -c gnue/designer/src/base/ToolBase.py:1.3 
gnue/designer/src/base/ToolBase.py:1.4
*** gnue/designer/src/base/ToolBase.py:1.3      Tue May 27 19:21:39 2003
--- gnue/designer/src/base/ToolBase.py  Fri Jun 13 17:12:32 2003
***************
*** 42,57 ****
    uses_feedback_bar = 0
    uses_toolbar = 0
  
!   def __init__(self, instance, rootObject, parentWindow):
      wxPanel.__init__(self,parentWindow,-1)
      events.EventAware.__init__(self, instance)
  
!     self.frame = parentWindow
      self.instance = instance
      self.rootObject = rootObject
      self.instance.globalAcceleratorListeners.append(self)
  
      self.init()
  
      RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
--- 42,61 ----
    uses_feedback_bar = 0
    uses_toolbar = 0
  
!   def __init__(self, id, title, instance, rootObject, parentWindow):
      wxPanel.__init__(self,parentWindow,-1)
      events.EventAware.__init__(self, instance)
  
!     self.id = id
!     self.title = title
!     self.dockpane = parentWindow
      self.instance = instance
      self.rootObject = rootObject
      self.instance.globalAcceleratorListeners.append(self)
  
      self.init()
+     instance.registerEventListeners({'Show:Tool:%s' % id: self.__show,
+                                      'Hide:Tool:%s' % id: self.__hide})
  
      RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
***************
*** 59,64 ****
      return (self.runtime_section, {})
  
    def setFeedback(self, text):
!     pass
  
  
--- 63,75 ----
      return (self.runtime_section, {})
  
    def setFeedback(self, text):
!     self.dockpane.setFeedback(text)
! 
!   def __show(self, event):
!     self.dockpane.show()
! 
! 
!   def __hide(self, event):
!     self.dockpane.hide()
  
  
Index: gnue/designer/src/base/docks/BasePane.py
diff -c gnue/designer/src/base/docks/BasePane.py:1.1 
gnue/designer/src/base/docks/BasePane.py:1.2
*** gnue/designer/src/base/docks/BasePane.py:1.1        Fri Jun 13 12:39:22 2003
--- gnue/designer/src/base/docks/BasePane.py    Fri Jun 13 17:12:32 2003
***************
*** 31,58 ****
  from wxPython.wx import *
  
  class BasePane:
!   def __init__(self, parent, instance):
      self.parent = parent
      self.instance = instance
- 
-     # These are used exclusively by ToolDock
-     self.minimumVerticalSize = 0
-     self.lastSize = 0
      self.minimized = 0
  
!   def GetWindow(self):
!     return self
  
    def show(self):
!     self.Show(1)
  
    def hide(self):
!     self.Show(0)
  
    def setFeedback(self, text):
-     print "WARNING: BasePane.setFeedback called directly"
      pass
  
-   def finalize(self):
-     pass
  
--- 31,52 ----
  from wxPython.wx import *
  
  class BasePane:
!   def __init__(self, parent, instance, tool):
      self.parent = parent
      self.instance = instance
      self.minimized = 0
  
!     # Reparent the tool to be under our control...
!     tool.Reparent(self)
!     tool.dockpane = self
  
    def show(self):
!     pass
  
    def hide(self):
!     pass
  
    def setFeedback(self, text):
      pass
  
  
Index: gnue/designer/src/base/docks/DockedPane.py
diff -c gnue/designer/src/base/docks/DockedPane.py:1.1 
gnue/designer/src/base/docks/DockedPane.py:1.2
*** gnue/designer/src/base/docks/DockedPane.py:1.1      Fri Jun 13 12:39:22 2003
--- gnue/designer/src/base/docks/DockedPane.py  Fri Jun 13 17:12:32 2003
***************
*** 41,70 ****
  #
  #
  class DockedPane(wxSashWindow, BasePane):
!   def __init__(self, parent, menutool):
      wxSashWindow.__init__(self, parent, -1, style=wxSW_3DSASH|wxCLIP_CHILDREN)
!     BasePane.__init__(self, parent, menutool)
!     self.manager = None
      self.statusbar = None
      EVT_SIZE(self, self.__OnSize)
      EVT_SASH_DRAGGED(self, self.GetId(), self.__OnDrag)
  
-   def SetManager(self, manager):
-     self.manager = manager
- 
-   def setStatusBar(self, bar):
-     self.statusbar = bar
- 
-   def AddTool(self, title, baseclass, rootObject, instance):
-     self.control = control = baseclass(instance, rootObject, self)
- 
      self.sizer = sizer = wxBoxSizer(wxVERTICAL)
  
      tp = self.__titlePanel = wxPanel(self,-1, wxPoint(0,0))#, 
style=wxSIMPLE_BORDER)
      tp.SetBackgroundColour(TITLEBAR_ACTIVE)
      sizer.Add(tp,0, wxALL|wxEXPAND, border=2)
  
!     tt = self.__titleText = wxStaticText(tp,-1,title,wxPoint(4,1))
      tt.SetForegroundColour(TITLETEXT_ACTIVE)
      font = tt.GetFont()
      font.SetWeight(wxBOLD)
--- 41,66 ----
  #
  #
  class DockedPane(wxSashWindow, BasePane):
!   def __init__(self, parent, instance, tool):
      wxSashWindow.__init__(self, parent, -1, style=wxSW_3DSASH|wxCLIP_CHILDREN)
!     BasePane.__init__(self, parent, instance, tool)
!     # These are used exclusively by ToolDock
! 
!     self.statusbar = instance.statusbar
!     self.minimumVerticalSize = 0
!     self.lastSize = 0
! 
      self.statusbar = None
      EVT_SIZE(self, self.__OnSize)
      EVT_SASH_DRAGGED(self, self.GetId(), self.__OnDrag)
  
      self.sizer = sizer = wxBoxSizer(wxVERTICAL)
  
      tp = self.__titlePanel = wxPanel(self,-1, wxPoint(0,0))#, 
style=wxSIMPLE_BORDER)
      tp.SetBackgroundColour(TITLEBAR_ACTIVE)
      sizer.Add(tp,0, wxALL|wxEXPAND, border=2)
  
!     tt = self.__titleText = wxStaticText(tp,-1,tool.title,wxPoint(4,1))
      tt.SetForegroundColour(TITLETEXT_ACTIVE)
      font = tt.GetFont()
      font.SetWeight(wxBOLD)
***************
*** 80,104 ****
      EVT_RIGHT_UP(tp, self.__RightClick)
      EVT_RIGHT_UP(tt, self.__RightClick)
  
!     if control.uses_toolbar:
!       sizer.Add(control.createToolbar(self), 0, wxEXPAND)
!       
!     control.setFeedback = self.setFeedback
  
!     sizer.Add(control, 1, wxEXPAND)
      self.SetAutoLayout(true)
      self.SetSizer(sizer)
      self.Layout()
  
-     return control
- 
-   def setFeedback(self, text):
-     if self.statusbar:
-       self.statusbar.SetStatusText(text)
- 
    def __LeftDClick(self, event):
!     if self.manager:
!       self.manager.toggleMinimized(self)
  
    def __RightClick(self, event):
      # Display a menu
--- 76,91 ----
      EVT_RIGHT_UP(tp, self.__RightClick)
      EVT_RIGHT_UP(tt, self.__RightClick)
  
!     if tool.uses_toolbar:
!       sizer.Add(tool.createToolbar(self), 0, wxEXPAND)
  
!     sizer.Add(tool, 1, wxEXPAND)
      self.SetAutoLayout(true)
      self.SetSizer(sizer)
      self.Layout()
  
    def __LeftDClick(self, event):
!     self.parent.toggleMinimized(self)
  
    def __RightClick(self, event):
      # Display a menu
***************
*** 125,136 ****
  
      self.PopupMenu(menu, event.GetPosition())
  
    def __Hide(self, event):
!     self.manager.minimize(self)
  
    def __Restore(self, event):
!     self.manager.restore(self)
  
    def __BreakAway(self, event):
      print _("This function not yet supported!") # TODO
  
--- 112,134 ----
  
      self.PopupMenu(menu, event.GetPosition())
  
+   # Called by GNUe's event dispatcher
+   def hide(self):
+     self.parent.minimize(self)
+ 
+   # Called by GNUe's event dispatcher
+   def show(self):
+     self.parent.restore(self)
+ 
+   # Called by the popup menu when user right-clicks
    def __Hide(self, event):
!     self.instance.dispatchEvent('Hide:Tool:%s' % self.tool.id)
  
+   # Called by the popup menu when user right-clicks
    def __Restore(self, event):
!     self.instance.dispatchEvent('Show:Tool:%s' % self.tool.id)
  
+   # Called by the popup menu when user right-clicks
    def __BreakAway(self, event):
      print _("This function not yet supported!") # TODO
  
***************
*** 141,144 ****
  
    def __OnDrag(self, event):
      newHeight = event.GetDragRect().height
!     self.manager.resize(self, newHeight)
--- 139,145 ----
  
    def __OnDrag(self, event):
      newHeight = event.GetDragRect().height
!     self.parent.resize(self, newHeight)
! 
!   def setFeedback(self, text):
!     self.instance.statusbar.SetStatusText(text)
\ No newline at end of file
Index: gnue/designer/src/base/docks/Docker.py
diff -c gnue/designer/src/base/docks/Docker.py:1.3 
gnue/designer/src/base/docks/Docker.py:1.4
*** gnue/designer/src/base/docks/Docker.py:1.3  Fri Jun 13 13:20:11 2003
--- gnue/designer/src/base/docks/Docker.py      Fri Jun 13 17:12:32 2003
***************
*** 55,60 ****
--- 55,61 ----
        GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
  
        pos = RuntimeSettings.get(instance.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock)
+       visible = RuntimeSettings.get(instance.runtime_section, 'Visible-%s' % 
id, baseclass.default_visible)
  
        #### Historical stuff... remove before 1.0 ####
        if pos in ('topleft','topright','bottomleft','bottomright'):
***************
*** 67,105 ****
        if '-' in pos:
          pos, indx = pos.split('-')
  
        if pos not in ('left','right'):  # i.e., 'frame' or something old
          # Frame type
!         window = FloatingPane(instance, id, title, 
baseclass.uses_feedback_bar)
!         control = baseclass(instance, instance.rootObject, window)
!         window.control = control
!         window.dock = 'frame'
!         enableMenu = 1
!         if baseclass.uses_feedback_bar:
!           frame.setStatusBar(frame.statusbar)
        else:
          # Docked type
-         pane = DockedPane(horizSplitter, self)
-         control = pane.AddTool(title, baseclass, instance.rootObject, 
instance)
          if pos == 'left':
!           window = leftWin
          elif pos == 'right':
!           window = rightWin
!         pane.setStatusBar(instance.statusbar)
! 
! 
!         window.add(pane, indx)
!         enableMenu = 0
  
        # Add ourselves to the Window menu
        instance.menubar.addAction(location='View', text=title, event='Tool:' + 
id,
                                grouping=group, canToggle=1, canDisable=0,
                                icon=None, hotkey=hotkey)
  
!       window.finalize()
  
!       instance.__dict__["%sWindow" % id] = window
!       instance.__dict__[id] = control
  
  
      leftWin.refresh()
      rightWin.refresh()
--- 68,100 ----
        if '-' in pos:
          pos, indx = pos.split('-')
  
+       tool = baseclass(id, title, instance, instance.rootObject, self)
+ 
        if pos not in ('left','right'):  # i.e., 'frame' or something old
          # Frame type
!         FloatingPane(instance, instance, tool)
        else:
          # Docked type
          if pos == 'left':
!           dock = leftWin
          elif pos == 'right':
!           dock = rightWin
!         dock.add(DockedPane(dock, instance, tool), indx)
  
        # Add ourselves to the Window menu
        instance.menubar.addAction(location='View', text=title, event='Tool:' + 
id,
                                grouping=group, canToggle=1, canDisable=0,
                                icon=None, hotkey=hotkey)
  
! ##      instance.__dict__["%sWindow" % id] = window
!       instance.__dict__[id] = tool
  
!       if visible:
!         instance.dispatchEvent('Show:Tool:%s' % id)
!       else:
!         instance.dispatchEvent('Hide:Tool:%s' % id)
  
+ ##      instance.registerEventListeners({'Show:Tool:%s'% id: self.showTool
  
      leftWin.refresh()
      rightWin.refresh()
***************
*** 112,121 ****
      self.horizSplitter.SetSize(self.GetClientSize())
  
    def saveSettings(self):
!     settings = {}
!     if self.horizSplitter:
!       settings['docksplitter-topbottom'] = 
self.horizSplitter.GetSashPosition()
! 
      settings.update(self.leftDock.saveSettings())
      settings.update(self.rightDock.saveSettings())
  
--- 107,113 ----
      self.horizSplitter.SetSize(self.GetClientSize())
  
    def saveSettings(self):
!     settings = {'docksplitter-topbottom': 
self.horizSplitter.GetSashPosition()}
      settings.update(self.leftDock.saveSettings())
      settings.update(self.rightDock.saveSettings())
  
Index: gnue/designer/src/base/docks/FloatingPane.py
diff -c gnue/designer/src/base/docks/FloatingPane.py:1.1 
gnue/designer/src/base/docks/FloatingPane.py:1.2
*** gnue/designer/src/base/docks/FloatingPane.py:1.1    Fri Jun 13 12:39:22 2003
--- gnue/designer/src/base/docks/FloatingPane.py        Fri Jun 13 17:12:32 2003
***************
*** 33,38 ****
--- 33,39 ----
  from wxPython.wx import *
  from gnue.common.apps import GDebug
  from BasePane import BasePane
+ from gnue.designer.base.ToolBar import BaseToolBar
  
  #
  # Any tool frames inherit from this
***************
*** 45,51 ****
    default_height = 200
    default_visible = 0
  
!   def __init__(self, instance, id, title, statusbar=0, toolbar=0):
      if sys.platform[:3] == 'win':
        style = wxFRAME_TOOL_WINDOW|wxMINIMIZE_BOX|wxRESIZE_BORDER| \
                wxFRAME_FLOAT_ON_PARENT
--- 46,52 ----
    default_height = 200
    default_visible = 0
  
!   def __init__(self, parent, instance, tool):
      if sys.platform[:3] == 'win':
        style = wxFRAME_TOOL_WINDOW|wxMINIMIZE_BOX|wxRESIZE_BORDER| \
                wxFRAME_FLOAT_ON_PARENT
***************
*** 53,96 ****
        style = 
wxMINIMIZE_BOX|wxRESIZE_BORDER|wxCAPTION|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT
  
  
!     wxFrame.__init__(self, instance, -1, title, style=style)
  
!     self.id = id
!     self.title = title
!     self.runtime_section = "ToolFrame-%s" % string.replace(self.title,' ','')
!     self.instance = instance
!     self.visible = 0
!     if statusbar:
        self.statusbar = self.CreateStatusBar()
  
-     EVT_CLOSE(self, self.OnClose)
- ##    EVT_SIZE(self, self.OnSize)
- ##
- ##  def OnSize(self, evt):
- ##    self.child.SetSize(self.GetClientSize())
- 
-   def finalize(self):
- 
-     self.SetPosition((
-        RuntimeSettings.getint(self.runtime_section, 'x', -1),
-        RuntimeSettings.getint(self.runtime_section, 'y', -1)))
- 
-     self.SetSize((
-        RuntimeSettings.getint(
-            self.runtime_section, 'width', self.default_width),
-        RuntimeSettings.getint(
-            self.runtime_section, 'height', self.default_height)))
  
!     if RuntimeSettings.getint(
!            self.runtime_section, 'visible', self.default_visible):
!       self.show()
! 
! 
!     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
!     self.instance.registerEventListeners(
!                { 'Show:Tool:%s' % self.id : self.show,
!                  'Hide:Tool:%s' % self.id : self.hide } )
  
  
    def saveRuntimeSettings(self):
--- 54,88 ----
        style = 
wxMINIMIZE_BOX|wxRESIZE_BORDER|wxCAPTION|wxFRAME_NO_TASKBAR|wxFRAME_FLOAT_ON_PARENT
  
  
!     wxFrame.__init__(self, instance, -1, tool.title, style=style)
!     BasePane.__init__(self, parent, instance, tool)
  
!     if tool.uses_feedback_bar:
        self.statusbar = self.CreateStatusBar()
  
  
!     EVT_CLOSE(self, self.OnClose)
  
! ##    self.SetPosition((
! ##       RuntimeSettings.getint(self.runtime_section, 'x', -1),
! ##       RuntimeSettings.getint(self.runtime_section, 'y', -1)))
! 
! ##    self.SetSize((
! ##       RuntimeSettings.getint(
! ##           self.runtime_section, 'width', self.default_width),
! ##       RuntimeSettings.getint(
! ##           self.runtime_section, 'height', self.default_height)))
! 
! ##    if RuntimeSettings.getint(
! ##           self.runtime_section, 'visible', self.default_visible):
! ##      self.show()
! 
! 
! ##    RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
! 
! ##    instance.registerEventListeners(
! ##               { 'Show:Tool:%s' % self.id : self.show,
! ##                 'Hide:Tool:%s' % self.id : self.hide } )
  
  
    def saveRuntimeSettings(self):
***************
*** 104,115 ****
                'width': width,  } )
  
  
!   def show(self, event=None):
!     self.visible = 1
      self.Show(1)
  
!   def hide(self, event=None):
!     self.visible = 0
      self.Show(0)
  
    def OnClose(self, event):
--- 96,105 ----
                'width': width,  } )
  
  
!   def show(self):
      self.Show(1)
  
!   def hide(self):
      self.Show(0)
  
    def OnClose(self, event):
Index: gnue/designer/src/base/docks/SplitDock.py
diff -c gnue/designer/src/base/docks/SplitDock.py:1.1 
gnue/designer/src/base/docks/SplitDock.py:1.2
*** gnue/designer/src/base/docks/SplitDock.py:1.1       Fri Jun 13 12:39:22 2003
--- gnue/designer/src/base/docks/SplitDock.py   Fri Jun 13 17:12:32 2003
***************
*** 106,112 ****
      # Save state information on the tool panel
      panel._dock_ = self
      panel._dock_index = indx
-     panel.SetManager(self)
  
    #
    # Restore sizes.. used by RuntimeSettings
--- 106,111 ----
Index: gnue/designer/src/base/tools/PropertyEditor.py
diff -c gnue/designer/src/base/tools/PropertyEditor.py:1.46 
gnue/designer/src/base/tools/PropertyEditor.py:1.47
*** gnue/designer/src/base/tools/PropertyEditor.py:1.46 Mon Jun  9 11:54:32 2003
--- gnue/designer/src/base/tools/PropertyEditor.py      Fri Jun 13 17:12:32 2003
***************
*** 44,50 ****
      self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
      self.notebook = wxNotebook(self.panel, -1, style=wxNB_BOTTOM)
  
- 
      self.object = None
  
      # EventAware provided by ToolBase
--- 44,49 ----
***************
*** 134,139 ****
--- 133,142 ----
      self.editor = editor
      self.fields = []
      self.labels = []
+ 
+     # These will be set in _setCurrent
+     self.maxy = 0
+     self.maxLabel = 0
  
      self.labelPanel = wxPanel(splitter, -1)
      self.fieldPanel = wxPanel(splitter, -1)
Index: gnue/designer/src/base/tools/TriggerEditor.py
diff -c gnue/designer/src/base/tools/TriggerEditor.py:1.33 
gnue/designer/src/base/tools/TriggerEditor.py:1.34
*** gnue/designer/src/base/tools/TriggerEditor.py:1.33  Fri May 23 20:02:31 2003
--- gnue/designer/src/base/tools/TriggerEditor.py       Fri Jun 13 17:12:32 2003
***************
*** 67,77 ****
      self.triggerMap = {}
  
  
-     # TODO: Historical stuff (pre-ToolBase)
-     self.parent = self.frame
-     self.form = self.rootObject
- 
- 
      self.editor.SetReadOnly(1)
      EVT_SIZE(self, self._onSize)
      EVT_KILL_FOCUS(self.editor, self.OnKillFocus)
--- 67,72 ----




reply via email to

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