commit-gnue
[Top][All Lists]
Advanced

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

gnue/designer/src/base Instance.py ToolBase.py ...


From: Jason Cater
Subject: gnue/designer/src/base Instance.py ToolBase.py ...
Date: Tue, 17 Jun 2003 00:55:09 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Branch:         
Changes by:     Jason Cater <address@hidden>    03/06/17 00:55:08

Modified files:
        designer/src/base: Instance.py ToolBase.py 
        designer/src/base/docks: BasePane.py Docker.py FloatingPane.py 
                                 SplitDock.py 

Log message:
        more docking goodness

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/Instance.py.diff?tr1=1.114&tr2=1.115&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolBase.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/BasePane.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/Docker.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/FloatingPane.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/docks/SplitDock.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gnue/designer/src/base/Instance.py
diff -c gnue/designer/src/base/Instance.py:1.114 
gnue/designer/src/base/Instance.py:1.115
*** gnue/designer/src/base/Instance.py:1.114    Mon Jun 16 15:51:02 2003
--- gnue/designer/src/base/Instance.py  Tue Jun 17 00:55:08 2003
***************
*** 408,415 ****
                   'height': height,
                   'width': width  }
  
-     settings.update(self.docker.saveSettings())
- 
      return ( self.runtime_section, settings )
  
  
--- 408,413 ----
Index: gnue/designer/src/base/ToolBase.py
diff -c gnue/designer/src/base/ToolBase.py:1.4 
gnue/designer/src/base/ToolBase.py:1.5
*** gnue/designer/src/base/ToolBase.py:1.4      Fri Jun 13 17:12:32 2003
--- gnue/designer/src/base/ToolBase.py  Tue Jun 17 00:55:08 2003
***************
*** 36,42 ****
  
  class ToolBase (wxPanel, events.EventAware):
  
!   default_visible = 0
    default_dock = 'frame'
    runtime_section = ""
    uses_feedback_bar = 0
--- 36,42 ----
  
  class ToolBase (wxPanel, events.EventAware):
  
!   default_visible = 1
    default_dock = 'frame'
    runtime_section = ""
    uses_feedback_bar = 0
***************
*** 66,75 ****
--- 66,77 ----
      self.dockpane.setFeedback(text)
  
    def __show(self, event):
+     self._visible = 1
      self.dockpane.show()
  
  
    def __hide(self, event):
+     self._visible = 0
      self.dockpane.hide()
  
  
Index: gnue/designer/src/base/docks/BasePane.py
diff -c gnue/designer/src/base/docks/BasePane.py:1.4 
gnue/designer/src/base/docks/BasePane.py:1.5
*** gnue/designer/src/base/docks/BasePane.py:1.4        Mon Jun 16 23:13:51 2003
--- gnue/designer/src/base/docks/BasePane.py    Tue Jun 17 00:55:08 2003
***************
*** 49,52 ****
--- 49,54 ----
    def setFeedback(self, text):
      pass
  
+   def closing(self):
+     pass
  
Index: gnue/designer/src/base/docks/Docker.py
diff -c gnue/designer/src/base/docks/Docker.py:1.6 
gnue/designer/src/base/docks/Docker.py:1.7
*** gnue/designer/src/base/docks/Docker.py:1.6  Mon Jun 16 23:13:51 2003
--- gnue/designer/src/base/docks/Docker.py      Tue Jun 17 00:55:08 2003
***************
*** 41,47 ****
      wxPanel.__init__(self, parent, -1)
      self.parent = parent
      self.instance = instance
-     self.runtime_section = runtime_section = '%s-Docker' % 
instance.properties.nickname
  
      self.horizSplitter = horizSplitter = wxSplitterWindow(self, -1, 
style=wxSP_3D)
      self.leftDock = leftWin = SplitDock(horizSplitter, self, 'left')
--- 41,46 ----
***************
*** 52,57 ****
--- 51,60 ----
                     'Docker:Undock': self.undock,
                     'Docker:Dock': self.dock})
  
+     # Tell RuntimeSettings that we have information to save
+     self.runtime_section = runtime_section = '%s-Docker' % 
instance.properties.nickname
+     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
+ 
      self.tools = []
  
      #
***************
*** 61,70 ****
  
        GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
  
!       indx = '0'
        pos = baseclass.default_dock
        if '-' in pos:
          pos, indx = pos.split('-')
  
        tool = baseclass(id, title, instance, instance.rootObject, self)
  
--- 64,74 ----
  
        GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
  
!       indx = 0
        pos = baseclass.default_dock
        if '-' in pos:
          pos, indx = pos.split('-')
+         indx = int(indx)
  
        tool = baseclass(id, title, instance, instance.rootObject, self)
  
***************
*** 72,77 ****
--- 76,85 ----
        tool._dock_location = RuntimeSettings.get(self.runtime_section, 
'%s-location' % id, (pos == 'frame' and 'left' or pos))
        tool._dock_index = RuntimeSettings.getint(self.runtime_section, 
'%s-index' % id, indx)
        tool._visible = RuntimeSettings.getint(self.runtime_section, 
'%s-visible' % id, tool.default_visible)
+       tool._frame_x = RuntimeSettings.getint(self.runtime_section, 
'%s-frame-x' % id, -1)
+       tool._frame_y = RuntimeSettings.getint(self.runtime_section, 
'%s-frame-y' % id, -1)
+       tool._frame_width = RuntimeSettings.getint(self.runtime_section, 
'%s-frame-width' % id, 200)
+       tool._frame_height = RuntimeSettings.getint(self.runtime_section, 
'%s-frame-height' % id, 150)
  
        appd = (id, title, baseclass, hotkey, pos)
  
***************
*** 111,129 ****
      self.SetSize(self.instance.GetClientSize())
      self.horizSplitter.SetSize(self.GetClientSize())
  
!   def saveSettings(self):
      settings = {'docksplitter-topbottom': 
self.horizSplitter.GetSashPosition()}
      for tool in self.tools:
        tid = tool.id
        settings['%s-docked' % tid] = tool._docked
        settings['%s-dock-location' % tid] = tool._dock_location
        settings['%s-dock-index' % tid] = tool._dock_index
        settings['%s-visible' % tid] = tool._visible
  
      settings.update(self.leftDock.saveSettings())
      settings.update(self.rightDock.saveSettings())
  
!     return settings
  
    def undock(self, event):
      tool = event.tool
--- 119,143 ----
      self.SetSize(self.instance.GetClientSize())
      self.horizSplitter.SetSize(self.GetClientSize())
  
!   def saveRuntimeSettings(self):
      settings = {'docksplitter-topbottom': 
self.horizSplitter.GetSashPosition()}
      for tool in self.tools:
        tid = tool.id
+       tool.dockpane.closing()
        settings['%s-docked' % tid] = tool._docked
        settings['%s-dock-location' % tid] = tool._dock_location
+       settings['%s-dock-location' % tid] = tool._dock_location
        settings['%s-dock-index' % tid] = tool._dock_index
+       settings['%s-frame-x' % tid] = tool._frame_x
+       settings['%s-frame-y' % tid] = tool._frame_y
+       settings['%s-frame-width' % tid] = tool._frame_width
+       settings['%s-frame-height' % tid] = tool._frame_height
        settings['%s-visible' % tid] = tool._visible
  
      settings.update(self.leftDock.saveSettings())
      settings.update(self.rightDock.saveSettings())
  
!     return (self.runtime_section, settings)
  
    def undock(self, event):
      tool = event.tool
***************
*** 131,147 ****
      dockpane = tool.dockpane
      panel = dockpane.parent.remove(dockpane)
      FloatingPane(instance, instance, tool)
      dockpane.Destroy()
!     instance.dispatchEvent('Show:Tool:%s' % id)
  
    def dock(self, event):
      tool = event.tool
      if not tool._docked:
        frame = tool.dockpane
        if tool._dock_location == 'right':
          dock = self.rightDock
        else:
          dock = self.leftDock
!       dock.add(DockedPane(dock, instance, tool), tool._dock_index)
        frame.Destroy()
!     instance.dispatchEvent('Show:Tool:%s' % id)
--- 145,165 ----
      dockpane = tool.dockpane
      panel = dockpane.parent.remove(dockpane)
      FloatingPane(instance, instance, tool)
+     tool._docked = 0
      dockpane.Destroy()
!     instance.dispatchEvent('Show:Tool:%s' % tool.id)
  
    def dock(self, event):
      tool = event.tool
      if not tool._docked:
        frame = tool.dockpane
+       frame.closing()
+       tool._docked = 1
        if tool._dock_location == 'right':
          dock = self.rightDock
        else:
          dock = self.leftDock
!       dock.add(DockedPane(dock, self.instance, tool), tool._dock_index - .5)
        frame.Destroy()
!     self.instance.dispatchEvent('Show:Tool:%s' % tool.id)
!     dock.refresh()
Index: gnue/designer/src/base/docks/FloatingPane.py
diff -c gnue/designer/src/base/docks/FloatingPane.py:1.4 
gnue/designer/src/base/docks/FloatingPane.py:1.5
*** gnue/designer/src/base/docks/FloatingPane.py:1.4    Mon Jun 16 23:13:51 2003
--- gnue/designer/src/base/docks/FloatingPane.py        Tue Jun 17 00:55:08 2003
***************
*** 56,63 ****
      wxFrame.__init__(self, instance, -1, tool.title, style=style)
      BasePane.__init__(self, parent, instance, tool)
  
-     self.runtime_section = '%s-%s-frame' % (instance.properties.nickname, 
tool.id)
- 
      if tool.uses_feedback_bar:
        self.statusbar = self.CreateStatusBar()
  
--- 56,61 ----
***************
*** 78,95 ****
      EVT_CLOSE(self, self.OnClose)
      self.Refresh()
  
!     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)))
! 
  
-     RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
  ##    instance.registerEventListeners(
  ##               { 'Show:Tool:%s' % self.id : self.show,
--- 76,84 ----
      EVT_CLOSE(self, self.OnClose)
      self.Refresh()
  
!     self.SetPosition((tool._frame_x, tool._frame_y))
!     self.SetSize((tool._frame_width, tool._frame_height))
  
  
  ##    instance.registerEventListeners(
  ##               { 'Show:Tool:%s' % self.id : self.show,
***************
*** 119,121 ****
--- 108,113 ----
    def __redock(self, event):
      self.instance.dispatchEvent('Docker:Dock', tool=self.tool)
  
+   def closing(self):
+     self.tool._frame_x, self.tool._frame_y = self.GetPositionTuple()
+     self.tool._frame_width, self.tool._frame_height = self.GetSizeTuple()
Index: gnue/designer/src/base/docks/SplitDock.py
diff -c gnue/designer/src/base/docks/SplitDock.py:1.4 
gnue/designer/src/base/docks/SplitDock.py:1.5
*** gnue/designer/src/base/docks/SplitDock.py:1.4       Mon Jun 16 23:13:51 2003
--- gnue/designer/src/base/docks/SplitDock.py   Tue Jun 17 00:55:08 2003
***************
*** 53,59 ****
    def refresh(self):
  
      # Get the panels in the order the user wants
!     self.panels.sort()
  
      # Remove old sizers
      while self.sizer.Remove(0):
--- 53,61 ----
    def refresh(self):
  
      # Get the panels in the order the user wants
!     panels = self.panels[:]
!     self.panels = []
!     panels.sort()
  
      # Remove old sizers
      while self.sizer.Remove(0):
***************
*** 62,68 ****
      #
      # Now, reparent all the tools
      index = 0
!     for foo, panel in self.panels:
        # Reparent...
        panel.Reparent(self)
  
--- 64,70 ----
      #
      # Now, reparent all the tools
      index = 0
!     for foo, panel in panels:
        # Reparent...
        panel.Reparent(self)
  
***************
*** 71,78 ****
          panel.SetSashVisible(wxSASH_TOP,1)
  
        self.sizer.Add(panel, 1, wxEXPAND)
!       panel._dock_index = "%s" % (index)
!       panel._dock_location = self.name
  
  
        index += 1
--- 73,81 ----
          panel.SetSashVisible(wxSASH_TOP,1)
  
        self.sizer.Add(panel, 1, wxEXPAND)
!       panel.tool._dock_index = index
!       self.panels.append((index, panel))
!       panel.tool._dock_location = self.name
  
  
        index += 1
***************
*** 84,90 ****
        self.__initialize = 0
        baseName = '%s-Sash-' % self.name
        index = 0
!       for foo, panel in self.panels:
          panel.SetSize((10, 
RuntimeSettings.getint(self.docker.runtime_section, baseName + str(index), 
100)))
          index += 1
  
--- 87,93 ----
        self.__initialize = 0
        baseName = '%s-Sash-' % self.name
        index = 0
!       for foo, panel in panels:
          panel.SetSize((10, 
RuntimeSettings.getint(self.docker.runtime_section, baseName + str(index), 
100)))
          index += 1
  
***************
*** 117,123 ****
      self.panels.append((indx, panel))
  
      # Save state information on the tool panel
!     panel._dock_index = indx
  
  
    #
--- 120,126 ----
      self.panels.append((indx, panel))
  
      # Save state information on the tool panel
!     panel.tool._dock_index = indx
  
  
    #
***************
*** 137,143 ****
    # Remove a tool panel from our control
    #
    def remove(self, panel):
!     self.panels.remove((panel._dock_index, panel))
      self.refresh()
  
    #
--- 140,146 ----
    # Remove a tool panel from our control
    #
    def remove(self, panel):
!     self.panels.remove((panel.tool._dock_index, panel))
      self.refresh()
  
    #




reply via email to

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