commit-gnue
[Top][All Lists]
Advanced

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

gnue common/src/apps/RuntimeSettings.py designe...


From: Jason Cater
Subject: gnue common/src/apps/RuntimeSettings.py designe...
Date: Thu, 29 May 2003 01:07:23 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    03/05/29 01:07:22

Modified files:
        common/src/apps: RuntimeSettings.py 
        designer/src   : Designer.py 
        designer/src/base: Instance.py MenuBar.py 
                           MultiObjectGridEditor.py ObjectList.py 
                           PrimaryToolBar.py TemplateParser.py 
                           ToolBar.py ToolFrame.py 
        designer/src/forms: BlockEditor.py WizardRunner.py 
        designer/src/forms/LayoutEditor: LayoutEditor.py 
                                         LayoutEditorTools.py 
        forms/src/uidrivers/wx: common.py 

Log message:
        * layout editor scrollbars dynamically resize to account for 
arbitrarily large forms
        
        * layout editor now supports zooming in and out (i.e., changing the 
base point size)
        
        * Fixes required for the new event-based menubar and toolbar
        
        * Several bug fixes

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/apps/RuntimeSettings.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Designer.py.diff?tr1=1.69&tr2=1.70&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/Instance.py.diff?tr1=1.97&tr2=1.98&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MenuBar.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MultiObjectGridEditor.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ObjectList.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/PrimaryToolBar.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/TemplateParser.py.diff?tr1=1.31&tr2=1.32&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolBar.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolFrame.py.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/BlockEditor.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/WizardRunner.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.79&tr2=1.80&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/wx/common.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gnue/common/src/apps/RuntimeSettings.py
diff -c gnue/common/src/apps/RuntimeSettings.py:1.11 
gnue/common/src/apps/RuntimeSettings.py:1.12
*** gnue/common/src/apps/RuntimeSettings.py:1.11        Wed Jan  1 19:45:41 2003
--- gnue/common/src/apps/RuntimeSettings.py     Thu May 29 01:07:22 2003
***************
*** 75,80 ****
--- 75,81 ----
  # Save the runtime settings
  #
  def saveRuntimeSettings(instance):
+   from gnue.common.apps.GDebug import _DEBUG_LEVEL
    if location:
      try:
        fh = open(location,'w')
***************
*** 90,98 ****
--- 91,103 ----
          config.write(fh)
        except:
          print _("\nWarning: Unable to save session data to %s\n") % location
+         if _DEBUG_LEVEL:
+           raise
        fh.close()
      except:
        print _("\nWarning: Unable to save session data to %s\n") % location
+       if _DEBUG_LEVEL:
+         raise
  
  #
  # Any object (class) that has settings it wants saved should
Index: gnue/designer/src/Designer.py
diff -c gnue/designer/src/Designer.py:1.69 gnue/designer/src/Designer.py:1.70
*** gnue/designer/src/Designer.py:1.69  Wed May 28 18:19:31 2003
--- gnue/designer/src/Designer.py       Thu May 29 01:07:22 2003
***************
*** 132,137 ****
--- 132,138 ----
                         'RequestSaveAll'      : self.OnSaveAll,
                         'RequestAbout'        : self.OnAbout,
                         'RequestNewWizard'    : self.OnWizard,
+                        'RequestOpen'         : self.OnOpen,
                         'RequestOpenRecent'   : self.OnOpenRecent,
                         'RequestExit'         : self.OnExit
                      })
***************
*** 333,338 ****
--- 334,343 ----
        return None
  
      return self.newInstance(self.toolExtensionMapping[extension], file)
+ 
+ 
+   def OnNew(self, event):
+     self.newInstance(event.type)
  
  
    #
Index: gnue/designer/src/base/Instance.py
diff -c gnue/designer/src/base/Instance.py:1.97 
gnue/designer/src/base/Instance.py:1.98
*** gnue/designer/src/base/Instance.py:1.97     Wed May 28 18:19:31 2003
--- gnue/designer/src/base/Instance.py  Thu May 29 01:07:22 2003
***************
*** 137,143 ****
                         'RequestSave'         : self.OnSave,
                         'RequestSaveAs'       : self.OnSaveAs,
                         'RequestClose'        : self.OnClose,
-                        'RequestNew'          : self.OnNew,  # TODO: should be 
in Designer.py
                         'RequestConnect'      : self.OnConnectTo, # TODO: 
Designer.py??
  
                         # Object stuff
--- 137,142 ----
***************
*** 281,287 ****
            enableMenu = 0
  
          # Add ourselves to the Window menu
!         control._menutool = self._menubar.addTool(window, title, hotkey, 
enableMenu)
          window.finalize()
  
          self.__dict__["%sWindow" % id] = window
--- 280,286 ----
            enableMenu = 0
  
          # Add ourselves to the Window menu
!         self._menubar.addTool(id, window, title, hotkey, enableMenu)
          window.finalize()
  
          self.__dict__["%sWindow" % id] = window
***************
*** 531,540 ****
        print _("Unable to connect to %s") % conn
  
  
-   def OnNew(self, event):
-     self._app.newInstance(event.type)
- 
- 
    def OnSave(self, event):
      if not len(self._path):
        self.OnSaveAs(event)
--- 530,535 ----
***************
*** 558,564 ****
             ( self.properties.fileExtensions[type], type, type)
          filterIndex.append(type)
  
!     dlg = wxFileDialog(NULL, _("Save %s As...") % 
self.properties.description, defaultDir=os.getcwd(),
                             wildcard = wildcard,
                             style=wxSAVE)
  
--- 553,559 ----
             ( self.properties.fileExtensions[type], type, type)
          filterIndex.append(type)
  
!     dlg = wxFileDialog(self, _("Save %s As...") % 
self.properties.description, defaultDir=os.getcwd(),
                             wildcard = wildcard,
                             style=wxSAVE)
  
Index: gnue/designer/src/base/MenuBar.py
diff -c gnue/designer/src/base/MenuBar.py:1.45 
gnue/designer/src/base/MenuBar.py:1.46
*** gnue/designer/src/base/MenuBar.py:1.45      Wed May 28 18:19:31 2003
--- gnue/designer/src/base/MenuBar.py   Thu May 29 01:07:22 2003
***************
*** 90,96 ****
                             _("Open an existing object"))
       self._file.AppendSeparator()
       self.__addItem(self._file, 'RequestSave', _("&Save\tCtrl+S"), _("Save 
the current object"))
!      self.__addItem(self._file, 'RequestAs', _("Save &As..."),
                         _("Save the current form under a new name"))
       self.__addItem(self._file, 'RequestSaveAll', _("Save A&ll"),
                         _("Save all open objects"))
--- 90,96 ----
                             _("Open an existing object"))
       self._file.AppendSeparator()
       self.__addItem(self._file, 'RequestSave', _("&Save\tCtrl+S"), _("Save 
the current object"))
!      self.__addItem(self._file, 'RequestSaveAs', _("Save &As..."),
                         _("Save the current form under a new name"))
       self.__addItem(self._file, 'RequestSaveAll', _("Save A&ll"),
                         _("Save all open objects"))
***************
*** 112,118 ****
  
       frame._fileNewMap = {}
       for tool in SupportedTools:
-        frame._fileNewMap[id] = tool.properties.module
         self.__addItem(self._fileNew, 'RequestNew','&%s' % 
tool.properties.nickname,
           _('Create a new %s') % string.lower(tool.properties.nickname), 
{'type': tool.properties.module })
  
--- 112,117 ----
***************
*** 179,187 ****
         self._tools.AppendItem(menu)
         if not tool.enable:
           self._tools.Enable(menu.GetId(), 0)
!        self.__addMenuEvent('%s|%s' % (location, tool.title),
!                            tool.wxId, tool.run)
!        tool.finalize()
  
       # TODO: Make this dynamic
       self._tools.AppendSeparator()
--- 178,185 ----
         self._tools.AppendItem(menu)
         if not tool.enable:
           self._tools.Enable(menu.GetId(), 0)
!        EVT_MENU(self.instance._app, menu.GetId(), tool.toggle)
! 
  
       # TODO: Make this dynamic
       self._tools.AppendSeparator()
***************
*** 252,284 ****
             if not wizard.enable:
               menu.Enable(wizard.wxId,0)
  
!            self.__addMenuEvent('%s|%s' % (location, wizard.title),
!                                wizard.wxId, wizard.run)
  
  
       # Add the Help menu
       self.Append(menumap['Help'][0], '&Help')
  
  
!   def __createMenuStructure(location, data):
!     for loc, isMenu, data in menumap[name][1]:
!      if isMenu:
!        menu.AppendMenu(wxNewId(), "&%s" % loc, data)
!      else:
!        pass
! 
! 
!   def __addMenuEvent(self, location, wxId, method):
!     self._eventMappings[location] = (method, wxId)
!     EVT_MENU(self._frame, wxId, method)
! 
! 
!   def getEventHelp (self, location):
!     try:
!       wxId = self._eventMappings[location][1]
!       return self.GetHelpString(wxId)
!     except KeyError:
!       return None
  
  
  ##  def simulateMenuEvent(self, location):
--- 250,278 ----
             if not wizard.enable:
               menu.Enable(wizard.wxId,0)
  
!            EVT_MENU(self.instance._app, wizard.wxId,
!                     lambda event, l=self.instance,
!                            e='RunWizard:%s' % wizard.id: l.dispatchEvent(e))
  
  
       # Add the Help menu
       self.Append(menumap['Help'][0], '&Help')
  
  
! ##  def __createMenuStructure(location, data):
! ##    for loc, isMenu, data in menumap[name][1]:
! ##     if isMenu:
! ##       menu.AppendMenu(wxNewId(), "&%s" % loc, data)
! ##     else:
! ##       pass
! 
! 
! ##  def getEventHelp (self, location):
! ##    try:
! ##      wxId = self._eventMappings[location][1]
! ##      return self.GetHelpString(wxId)
! ##    except KeyError:
! ##      return None
  
  
  ##  def simulateMenuEvent(self, location):
***************
*** 287,297 ****
  
  
  
!   def addTool(self, toolFrame, title, hotkey=None, enabled=1):
      location = 'Tools|%s' % title
!     self._menuMappings[location] = ToolRunner(toolFrame, title, hotkey, 
enabled)
      self._toolMenuOrder.append(location)
!     return self._menuMappings[location]
  
    def addToolSeparator(self):
      self._toolMenuOrder.append("")
--- 281,291 ----
  
  
  
!   def addTool(self, id, toolFrame, title, hotkey=None, enabled=1):
      location = 'Tools|%s' % title
!     tr = ToolRunner(self.instance, toolFrame, id, title, hotkey, enabled)
      self._toolMenuOrder.append(location)
!     self._menuMappings[location] = tr
  
    def addToolSeparator(self):
      self._toolMenuOrder.append("")
***************
*** 303,338 ****
    def AppendMenu(self, wxId, text, menu):
      self.Append(menu, text)
  
! 
!   def __addItem(menu, event, text, descr, eventExtra={}, canToggle=0, 
canDisable=0):
      id = wxNewId()
      menu.Append(id, text, descr)
      EVT_MENU(self.instance._app, id,
!       lambda event, l=self.instance, e=event, x=extra: l.dispatchEvent(e, 
**x))
  ##    if canDisable:
  ##      for evt in ('Enable:%s' % event, 'Disable:%s' % event):
  ##        EVT_MENU(self.instance._app, id,
! ##          lambda event, l=self.instance, e=event, x=extra: 
l.dispatchEvent(e, **x))
  
      return id
  
  
  class ToolRunner:
!   def __init__(self, toolFrame, title, hotkey, enabled):
!      self.toolFrame = toolFrame
!      self.hotkey = hotkey
!      self.wxId = wxNewId()
!      self.title = title + (hotkey and '\t%s'% hotkey or '')
!      self.enable = enabled
!      self.checkable = 1
!      self.tooltip = _("Show or hide the %s") % title
! 
!   def run(self, event):
!     self.toolFrame.OnMenuSelected(event)
! 
!   def finalize(self):
!     pass
! #    self.toolFrame.finalize()
  
  #
  # fakeWxEvent
--- 297,353 ----
    def AppendMenu(self, wxId, text, menu):
      self.Append(menu, text)
  
!   def __addItem(self, menu, event, text, descr, eventExtra={}, canToggle=0, 
canDisable=0):
      id = wxNewId()
      menu.Append(id, text, descr)
      EVT_MENU(self.instance._app, id,
!       lambda event, l=self.instance, e=event, x=eventExtra: 
l.dispatchEvent(e, **x))
  ##    if canDisable:
  ##      for evt in ('Enable:%s' % event, 'Disable:%s' % event):
  ##        EVT_MENU(self.instance._app, id,
! ##          lambda event, l=self.instance, e=event, x=eventExtra: 
l.dispatchEvent(e, **x))
  
      return id
  
  
  class ToolRunner:
!   def __init__(self, instance, toolFrame, id, title, hotkey, enabled):
! 
!     instance.registerEventListeners(
!       {'ShowTool:%s' % id: self.show,
!        'HideTool:%s' % id: self.hide,
!        'EnableTool:%s' % id: self.enable,
!        'DisableTool:%s' % id: self.disable } )
! 
!     self.instance = instance
!     self.toolFrame = toolFrame
!     self.id = id
!     self.hotkey = hotkey
!     self.wxId = wxNewId()
!     self.title = title + (hotkey and '\t%s'% hotkey or '')
!     self.enable = enabled
!     self.checkable = 1
!     self.tooltip = _("Show or hide the %s") % title
! 
! 
!   def show(self, event):
!     self.menu.Check(1)
! 
!   def hide(self, event):
!     self.menu.Check(0)
! 
!   def enable(self, event):
!     self.menu.Enable(1)
! 
!   def disable(self, event):
!     self.menu.Enable(0)
! 
!   def toggle(self, event):
!     if self.menu.IsChecked():
!       self.instance.dispatchEvent('ShowTool:%s' % self.id)
!     else:
!       self.instance.dispatchEvent('HideTool:%s' % self.id)
! 
  
  #
  # fakeWxEvent
***************
*** 341,350 ****
  # calling wxEvent(id#).  This event lets
  # us pass a fake event in it's place
  #
! class fakeWxEvent:
!   def __init__(self,id):
!     self.id=id
!   def GetId(self):
!     return self.id
  
  
--- 356,365 ----
  # calling wxEvent(id#).  This event lets
  # us pass a fake event in it's place
  #
! ##class fakeWxEvent:
! ##  def __init__(self,id):
! ##    self.id=id
! ##  def GetId(self):
! ##    return self.id
  
  
Index: gnue/designer/src/base/MultiObjectGridEditor.py
diff -c gnue/designer/src/base/MultiObjectGridEditor.py:1.6 
gnue/designer/src/base/MultiObjectGridEditor.py:1.7
*** gnue/designer/src/base/MultiObjectGridEditor.py:1.6 Wed May 28 17:08:26 2003
--- gnue/designer/src/base/MultiObjectGridEditor.py     Thu May 29 01:07:22 2003
***************
*** 289,298 ****
    def _objectDeleted(self, event):
      object = event.object
      if object in self.objects:
        self.objects.remove(object)
        index = self.rows.index(object)
!       self.objects.remove(object)
        self.DeleteRows(index,1)
  
  
    #
--- 289,300 ----
    def _objectDeleted(self, event):
      object = event.object
      if object in self.objects:
+       self.BeginBatch()
        self.objects.remove(object)
        index = self.rows.index(object)
!       self.rows.remove(object)
        self.DeleteRows(index,1)
+       self.EndBatch()
  
  
    #
Index: gnue/designer/src/base/ObjectList.py
diff -c gnue/designer/src/base/ObjectList.py:1.1 
gnue/designer/src/base/ObjectList.py:1.2
*** gnue/designer/src/base/ObjectList.py:1.1    Tue May 27 19:21:39 2003
--- gnue/designer/src/base/ObjectList.py        Thu May 29 01:07:22 2003
***************
*** 49,56 ****
  
    def __objectModified (self, event):
      if isinstance(event.object, self.base) and \
!          self.nameAttr in event.old.keys() or \
!          self.nameAttr in event.new.keys():
        self.update()
  
    def __objectCreated (self, event):
--- 49,56 ----
  
    def __objectModified (self, event):
      if isinstance(event.object, self.base) and \
!          self.name in event.old.keys() or \
!          self.name in event.new.keys():
        self.update()
  
    def __objectCreated (self, event):
Index: gnue/designer/src/base/PrimaryToolBar.py
diff -c gnue/designer/src/base/PrimaryToolBar.py:1.4 
gnue/designer/src/base/PrimaryToolBar.py:1.5
*** gnue/designer/src/base/PrimaryToolBar.py:1.4        Wed May 28 18:19:31 2003
--- gnue/designer/src/base/PrimaryToolBar.py    Thu May 29 01:07:22 2003
***************
*** 28,39 ****
  
  from gnue.designer.base.ToolBar import BaseToolBar
  
! ToolbarMapping = 'RequestNewForm,tb_new.png;'   \
!                + 'RequestOpen,tb_open.png;' \
!                + 'RequestSave,tb_save.png;' \
!                + 'RequestSaveAs,tb_save_as.png;' \
                 + ';' \
!                + 'RequestExit,tb_exit.png;'
  
  
  class PrimaryToolBar(BaseToolBar):
--- 28,39 ----
  
  from gnue.designer.base.ToolBar import BaseToolBar
  
! ToolbarMapping = 'RequestNewForm,tb_new;'   \
!                + 'RequestOpen,tb_open;' \
!                + 'RequestSave,tb_save;' \
!                + 'RequestSaveAs,tb_save_as;' \
                 + ';' \
!                + 'RequestExit,tb_exit;'
  
  
  class PrimaryToolBar(BaseToolBar):
Index: gnue/designer/src/base/TemplateParser.py
diff -c gnue/designer/src/base/TemplateParser.py:1.31 
gnue/designer/src/base/TemplateParser.py:1.32
*** gnue/designer/src/base/TemplateParser.py:1.31       Wed May 28 18:19:31 2003
--- gnue/designer/src/base/TemplateParser.py    Thu May 29 01:07:22 2003
***************
*** 631,636 ****
--- 631,637 ----
       self.instance = instance
  
       self.wxId = wxNewId()
+      self.id = template['BaseID']
       self.title = title
       self.checkable = 0
       self.enable = 1
Index: gnue/designer/src/base/ToolBar.py
diff -c gnue/designer/src/base/ToolBar.py:1.3 
gnue/designer/src/base/ToolBar.py:1.4
*** gnue/designer/src/base/ToolBar.py:1.3       Tue May 27 19:21:39 2003
--- gnue/designer/src/base/ToolBar.py   Thu May 29 01:07:22 2003
***************
*** 34,51 ****
  iconlocation = 
os.path.join(GConfig.getInstalledBase('designer_images','common_images') 
,'designer')
  
  
- ToolbarMapping = 'File|New|Form,tb_new.png;'   \
-                + 'File|Save,tb_save.png;'   \
-                + ';'   \
-                + 'Edit|Insert|Label,deslay_label.png;' \
-                + 'Edit|Insert|Unbound Entry,deslay_entrytext.png;'   \
-                + 'Edit|Insert|Drop Down Entry,deslay_entrydrop.png;' \
-                + 'Edit|Insert|Button,deslay_button.png;' \
-                + 'Edit|Insert|Box,deslay_box.png'
- 
- #               + 'File|Open,tb_open.png;'   \
- 
- 
  class BaseToolBar(wxToolBar, EventAware):
  
    ICON_SIZE = (24,24)
--- 34,39 ----
***************
*** 72,89 ****
          self.AddSeparator()
        else:
          handle, image = string.split(type,',',1)
!         help = self.instance._menubar.getEventHelp(handle)
  
!         if not help:
  ##          print "Warning: No event tied to %s" % handle
!           help = ""
  
          id = wxNewId()
          self.mapping[id] = handle
          self.mapping[handle] = id
  
          self.AddTool(id,
!           wxImage(os.path.join(iconlocation,image),
                    wxBITMAP_TYPE_PNG).ConvertToBitmap(),
            isToggle=1,
            shortHelpString=help,
--- 60,78 ----
          self.AddSeparator()
        else:
          handle, image = string.split(type,',',1)
!         help=""
! ##        help = self.instance._menubar.getEventHelp(handle)
  
! ##        if not help:
  ##          print "Warning: No event tied to %s" % handle
! ##          help = ""
  
          id = wxNewId()
          self.mapping[id] = handle
          self.mapping[handle] = id
  
          self.AddTool(id,
!           wxImage(os.path.join(iconlocation,"%s-%sx%s.png" % ((image,) + 
self.ICON_SIZE)),
                    wxBITMAP_TYPE_PNG).ConvertToBitmap(),
            isToggle=1,
            shortHelpString=help,
***************
*** 108,114 ****
          self.ToggleTool(int(key),0)
        except ValueError:
          pass
!       
      self.ToggleTool(event.GetId(),0)
      handle = self.mapping[event.GetId()]
!     self.instance._menubar.simulateMenuEvent(handle)
--- 97,103 ----
          self.ToggleTool(int(key),0)
        except ValueError:
          pass
! 
      self.ToggleTool(event.GetId(),0)
      handle = self.mapping[event.GetId()]
!     self.instance.dispatchEvent(handle)
Index: gnue/designer/src/base/ToolFrame.py
diff -c gnue/designer/src/base/ToolFrame.py:1.20 
gnue/designer/src/base/ToolFrame.py:1.21
*** gnue/designer/src/base/ToolFrame.py:1.20    Wed May 28 17:08:26 2003
--- gnue/designer/src/base/ToolFrame.py Thu May 29 01:07:22 2003
***************
*** 89,98 ****
      return ( self.runtime_section,
               {'x': x,
                'y': y,
                'height': height,
!               'width': width,
!               'visible': self.control._menutool.menu.IsChecked() } )
! 
  
    # This event is set by MenuBar.addTool
    # Called whenever menu item is selected
--- 89,97 ----
      return ( self.runtime_section,
               {'x': x,
                'y': y,
+ ##              'visible': self.control._menutool.menu.IsChecked(),
                'height': height,
!               'width': width,  } )
  
    # This event is set by MenuBar.addTool
    # Called whenever menu item is selected
Index: gnue/designer/src/forms/BlockEditor.py
diff -c gnue/designer/src/forms/BlockEditor.py:1.2 
gnue/designer/src/forms/BlockEditor.py:1.3
*** gnue/designer/src/forms/BlockEditor.py:1.2  Wed May 28 17:08:26 2003
--- gnue/designer/src/forms/BlockEditor.py      Thu May 29 01:07:22 2003
***************
*** 40,46 ****
  class BlockEditor(ToolBase):
  
    runtime_section = "FormsBlockEditor"
!   default_dock = 'right-20'
    uses_toolbar = 1
  ##  uses_feedback_bar = 1
  
--- 40,46 ----
  class BlockEditor(ToolBase):
  
    runtime_section = "FormsBlockEditor"
!   default_dock = 'frame' # 'right-20'
    uses_toolbar = 1
  ##  uses_feedback_bar = 1
  
***************
*** 66,71 ****
--- 66,74 ----
    def init(self):
      self.datasources = ObjectList(self.instance, GDataSource,
                                    'name', self.__datasourcesUpdated)
+     self.instance.registerEventListeners({'BlockEditor:Delete': 
self.__OnDelete})
+ 
+ 
    def getColumnDefinitions(self):
      return  (
          {'Name':      'Name',     # Internal name
***************
*** 123,135 ****
    def __datasourcesUpdated(self):
      self.updateValidSet('DataSource')
  
  
  ######################################################################
  #
  #
! ToolbarMapping = 'Edit|Insert|Block,deslay_block.png;' \
!                + 'Edit|Delete,tb_delete.png' \
  
  class _BlockToolbar(BaseToolBar):
    def init(self):
      self.addToolbarMapping(ToolbarMapping)
--- 126,147 ----
    def __datasourcesUpdated(self):
      self.updateValidSet('DataSource')
  
+   #
+   # User selected the delete icon
+   #
+   def __OnDelete(self, event):
+     if self.current:
+       self.instance.incubator.deleteObject(self.instance.rootObject,
+                                            self.current, firstRun=0)
+ 
  
  ######################################################################
  #
  #
! ToolbarMapping = 'RunWizard:AddBlock,wizard_block;' \
!                + 'BlockEditor:Delete,tb_delete'
  
  class _BlockToolbar(BaseToolBar):
+ ##  ICON_SIZE=(16,16)
    def init(self):
      self.addToolbarMapping(ToolbarMapping)
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.79 
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.80
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.79   Tue May 27 
19:21:39 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py        Thu May 29 
01:07:22 2003
***************
*** 59,67 ****
      # TODO: blah.... historical reasons
      self._instance = self.instance
  
-     # TODO: this needs to go away... requires toolbar to be on main frame
-     self.frame = self.instance
- 
      self._app = self.instance._app
  
      self.page = None
--- 59,64 ----
***************
*** 88,94 ****
  
      self.notebook = wxNotebook(self, -1, pos=wxPoint(4, 4), 
size=wxSize(32,32))
      self.backcolor = wxWHITE
-     #self.propBar = PropertyBar(self)
  
      EVT_NOTEBOOK_PAGE_CHANGED(self,self.notebook.GetId(), self.OnPageSelected)
      EVT_SIZE(self, self.OnSize)
--- 85,90 ----
***************
*** 109,114 ****
--- 105,112 ----
                         'ObjectCreated'       : self.onCreateObject,
                         'ObjectModified'      : self.onModifyObject,
                         'ObjectDeleted'       : self.onDeleteObject,
+                        'LayoutEditor:ZoomIn' : self.zoomIn,
+                        'LayoutEditor:ZoomOut': self.zoomOut,
                        })
  
      self.instance.rootObject.walk (self.inventoryObject)
***************
*** 131,136 ****
--- 129,144 ----
      self._rebuildBlockCombo()
      return self.toolbar
  
+   # Recalculate the scrollbar sizes
+   def __OnGridSize(self, event):
+     w, h = self.panel.GetSizeTuple()
+     w2, h2 = self.workspacescroll.GetClientSizeTuple()
+     w = int(max(w, w2)*1.1+30)
+     h = int(max(h, h2)*1.1+30)
+     self.workspace.SetSize((w,h))
+     self.workspacescroll.SetScrollbars(w/30-1,h/30-1,30,30)
+ 
+ 
    def inventoryObject(self, object):
      if object._type == 'GFPage':
        index = self.notebook.GetPageCount()
***************
*** 141,152 ****
           pos=wxPoint(0,0),
           style=wxCLIP_CHILDREN|wxHSCROLL|wxVSCROLL|wxSUNKEN_BORDER)
  
        self.workspace = wxPanel(self.workspacescroll,-1)
-       self.workspace.SetSize((51*20,51*20))
- 
-       # TODO: self.workspace needs to have SetScrollbars called with
-       # TODO: reasonable values based on size and position of self.panel
-       self.workspacescroll.SetScrollbars(20,20,50,50)
        self.workspace.SetBackgroundColour(self.backcolor)
  
        self.notebook.AddPage(self.workspacescroll,object.name)
--- 149,156 ----
           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)
  
        self.notebook.AddPage(self.workspacescroll,object.name)
***************
*** 252,257 ****
--- 256,263 ----
        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.
***************
*** 382,407 ****
  
      self.drawPage(page)
  
! 
!   def drawPage(self, page):
!     self._currentSelection = []
!     self.page = page
! 
!     try:
!       self.panel = self.page.__panel
!     except AttributeError:
!       self.panel = GridPane(self, self.workspace, wxPoint(10,12))
! 
!       # We are a drop target for Drag-and-Drop
!       self.panel.SetDropTarget(DisplayDropTarget(self))
! 
! 
!       self.page.__panel = self.panel
!       self.panelColor = self.panel.GetBackgroundColour()
!       self.panelGridColor = wxColour(order(255,self.panelColor.Red()+16)[0],
!                  order(255,self.panelColor.Green()+16)[0],
!                  order(255,self.panelColor.Blue()+16)[0])
! 
        UIwxpython.initFont(self.panel)
  
        maxWidth, maxHeight, maxDescent, maxLeading = [0,0,0,0]
--- 388,394 ----
  
      self.drawPage(page)
  
!   def calcGridSpacing(self):
        UIwxpython.initFont(self.panel)
  
        maxWidth, maxHeight, maxDescent, maxLeading = [0,0,0,0]
***************
*** 420,428 ****
        self.borderPercentage = (float(gConfig('borderPercentage')) / 100)
        self.textPercentage = (float(gConfig('textPercentage')) / 100)
  
-       width = self.rootObject._layout.Char__width
-       height = self.rootObject._layout.Char__height
- 
        self.widgetWidth = (self.charWidth * self.borderPercentage)
        self.widgetHeight = (self.charHeight * self.borderPercentage) + 3
        self.textWidth = self.charWidth * self.textPercentage
--- 407,412 ----
***************
*** 433,442 ****
--- 417,454 ----
  
        self.menu_sb_space=0 # the extra spaces needed by the menu, toolbar and 
statusbar
  
+       width = self.rootObject._layout.Char__width
+       height = self.rootObject._layout.Char__height
        self.panel.SetClientSize(wxSize(int(width)*int(self.widgetWidth),
                         int(height)*int(self.widgetHeight)))
        self.panel.Refresh()
  
+ 
+   def drawPage(self, page):
+     self._currentSelection = []
+     self.page = page
+ 
+     try:
+       self.panel = self.page.__panel
+     except AttributeError:
+       self.panel = GridPane(self, self.workspace, wxPoint(10,12))
+ 
+       # Automatically resize workspace
+       EVT_SIZE(self.panel, self.__OnGridSize)
+ 
+       # We are a drop target for Drag-and-Drop
+       self.panel.SetDropTarget(DisplayDropTarget(self))
+ 
+ 
+       self.page.__panel = self.panel
+       self.panelColor = self.panel.GetBackgroundColour()
+       self.panelGridColor = wxColour(order(255,self.panelColor.Red()+16)[0],
+                  order(255,self.panelColor.Green()+16)[0],
+                  order(255,self.panelColor.Blue()+16)[0])
+ 
+       page.__pointSize = UIwxpython.getPointSize()
+       self.calcGridSpacing()
+ 
        page.walk(self.__drawItem)
  
  
***************
*** 468,474 ****
                     widgetHeight=self.widgetHeight,
                     interface=self,
                     eventHandler=None,
!                    ui=self, 
                     initialize=0)
  
        object._widget = widget = 
self.widgets[object._type].configuration['baseClass'](cevent)
--- 480,486 ----
                     widgetHeight=self.widgetHeight,
                     interface=self,
                     eventHandler=None,
!                    ui=self,
                     initialize=0)
  
        object._widget = widget = 
self.widgets[object._type].configuration['baseClass'](cevent)
***************
*** 481,494 ****
        self.widgetList.append(object)
  
    def OnSize(self, event):
!     self.notebook.SetSize(wxSize(self.GetClientSize().x-8, 
self.GetClientSize().y - 8))# - self.propBar.GetSize().y))
  
    def OnPageSelected(self, event):
      p = self._notebookMap[event.GetSelection()]
      if p != self.page:
        self.dispatchEvent('ObjectSelected', object=p, 
originator="Forms::LayoutEditor")
      self._setCurrentPage(p)
! 
  
    def OnLeftDown(self, event):
      # Save starting coordinates for cross-selection box
--- 493,506 ----
        self.widgetList.append(object)
  
    def OnSize(self, event):
!     self.notebook.SetSize(wxSize(self.GetClientSize().x-8, 
self.GetClientSize().y - 8))
  
    def OnPageSelected(self, event):
      p = self._notebookMap[event.GetSelection()]
      if p != self.page:
        self.dispatchEvent('ObjectSelected', object=p, 
originator="Forms::LayoutEditor")
      self._setCurrentPage(p)
!     self.__OnGridSize(None)
  
    def OnLeftDown(self, event):
      # Save starting coordinates for cross-selection box
***************
*** 698,703 ****
--- 710,732 ----
                                                 height=height)
      self.instance.dispatchEvent(Event('EndWizard', template=self.__template))
      self.mode = 'move'
+ 
+ 
+   def zoomIn(self, event):
+     size = UIwxpython.getPointSize()
+     if size < 72:
+       size = size + 1 # int(size * 1.05 + .5)
+       UIwxpython.setPointSize(size)
+       self.calcGridSpacing()
+       self.refreshPage(self.page)
+ 
+   def zoomOut(self, event):
+     size = UIwxpython.getPointSize()
+     if size > 6:
+       size = size - 1 # int(size * -1.05)
+       UIwxpython.setPointSize(size)
+       self.calcGridSpacing()
+       self.refreshPage(self.page)
  
  
  
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.24 
gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.25
*** gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.24      Wed May 
28 18:19:31 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py   Thu May 29 
01:07:22 2003
***************
*** 29,43 ****
  from gnue.designer.base.ToolBar import BaseToolBar
  
  
! ToolbarMapping = 'RunWizard:AddBlock,deslay_block.png;' \
!                + 'RunWizard:AddPage,deslay_page.png;' \
                 + ';' \
!                + 'RunWizard:AddLabel,deslay_label.png;' \
!                + 'RunWizard:AddEntry,deslay_entrytext.png;'   \
!                + 'RunWizard:AddDropDown,deslay_entrydrop.png;' \
!                + 'RunWizard:AddCheckbox,deslay_entrycheck.png;' \
!                + 'RunWizard:AddButton,deslay_button.png;' \
!                + 'RunWizard:AddBox,deslay_box.png'
  
  
  class LayoutEditorTools(BaseToolBar):
--- 29,46 ----
  from gnue.designer.base.ToolBar import BaseToolBar
  
  
! ToolbarMapping = 'RunWizard:AddBlock,wizard_block;' \
!                + 'RunWizard:AddPage,wizard_page;' \
                 + ';' \
!                + 'RunWizard:AddLabel,wizard_label;' \
!                + 'RunWizard:AddEntry,wizard_entrytext;'   \
!                + 'RunWizard:AddDropDown,wizard_entrydrop;' \
!                + 'RunWizard:AddCheckbox,wizard_entrycheck;' \
!                + 'RunWizard:AddButton,wizard_button;' \
!                + 'RunWizard:AddBox,wizard_box;' \
! 
! ToolbarMapping2 = 'LayoutEditor:ZoomIn,tb_zoom_in;' \
!                 + 'LayoutEditor:ZoomOut,tb_zoom_out;' \
  
  
  class LayoutEditorTools(BaseToolBar):
***************
*** 47,52 ****
--- 50,57 ----
                                    'EndWizard' : self.onEndWizard } )
  
      self.addToolbarMapping(ToolbarMapping)
+     self.AddSeparator()
+     self.addToolbarMapping(ToolbarMapping2)
      self.AddSeparator()
      self.AddControl(wxStaticText(self,-1,_("Block: ")))
      self.blockCombo = wxComboBox(self, -1)
Index: gnue/designer/src/forms/WizardRunner.py
diff -c gnue/designer/src/forms/WizardRunner.py:1.5 
gnue/designer/src/forms/WizardRunner.py:1.6
*** gnue/designer/src/forms/WizardRunner.py:1.5 Wed Jan  1 19:45:46 2003
--- gnue/designer/src/forms/WizardRunner.py     Thu May 29 01:07:22 2003
***************
*** 34,50 ****
  
  class WizardRunner(BaseWizardRunner):
  
!   def __init__(self, *args, **params):
!     BaseWizardRunner.__init__(self, *args, **params)
! 
      # Handle FormPrePositioningTemplate specially;
      # i.e., intercept the run method.
      if issubclass( self.template['BaseClass'],
                     TemplateSupport.FormPrePositioningTemplate ):
!       self.run = self.__run
! 
! 
!   def __run(self, event):
!     self.instance.dispatchEvent(Event('BeginWizard', 
!               template=self.template))
!     self.instance.visualEditor.startPrePositioningTemplate(self.template)
--- 34,46 ----
  
  class WizardRunner(BaseWizardRunner):
  
!   def run(self, event):
      # Handle FormPrePositioningTemplate specially;
      # i.e., intercept the run method.
      if issubclass( self.template['BaseClass'],
                     TemplateSupport.FormPrePositioningTemplate ):
!       self.instance.dispatchEvent(Event('BeginWizard',
!                 template=self.template))
!       self.instance.visualEditor.startPrePositioningTemplate(self.template)
!     else:
!       BaseWizardRunner.run(self, event)
Index: gnue/forms/src/uidrivers/wx/common.py
diff -c gnue/forms/src/uidrivers/wx/common.py:1.5 
gnue/forms/src/uidrivers/wx/common.py:1.6
*** gnue/forms/src/uidrivers/wx/common.py:1.5   Thu May 22 04:53:10 2003
--- gnue/forms/src/uidrivers/wx/common.py       Thu May 29 01:07:22 2003
***************
*** 38,48 ****
  #
  # TODO: Not completed
  #
  def initFont(widget, affectsLayout=1):
      if int(gConfigForms('fixedWidthFont')):
!         
widget.SetFont(wxFont(int(gConfigForms('pointSize')),wxMODERN,wxNORMAL,\
                                
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
!             
  
  #####################################################################
  ##
--- 38,58 ----
  #
  # TODO: Not completed
  #
+ _pointSize = 0
+ 
+ def getPointSize():
+   return _pointSize or setPointSize(int(gConfigForms('pointSize')))
+ 
+ def setPointSize(size):
+   global _pointSize
+   _pointSize = size
+   return size
+ 
  def initFont(widget, affectsLayout=1):
      if int(gConfigForms('fixedWidthFont')):
!         widget.SetFont(wxFont(getPointSize(),wxMODERN,wxNORMAL,\
                                
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
! 
  
  #####################################################################
  ##




reply via email to

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