commit-gnue
[Top][All Lists]
Advanced

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

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


From: Jason Cater
Subject: gnue/designer/src base/Instance.py base/MenuBar...
Date: Mon, 09 Jun 2003 20:40:14 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Branch:         
Changes by:     Jason Cater <address@hidden>    03/06/09 20:40:14

Modified files:
        designer/src/base: Instance.py MenuBar.py TemplateParser.py 
                           ToolFrame.py 
        designer/src/base/tools: SchemaNavigator.py 
        designer/src/forms: BlockEditor.py Instance.py 
        designer/src/forms/LayoutEditor: LayoutEditorTools.py 
                                         WidgetHandler.py 
        designer/src/forms/wizards: AddBlock.py AddBox.py AddButton.py 
                                    AddCheckbox.py AddDataSource.py 
                                    AddDropDown.py AddEntry.py 
                                    AddLabel.py AddPage.py 
                                    CreateSchema.py CreateWebForm.py 
        designer/src/navigator: Instance.py 
        designer/src/reports: Instance.py 
        designer/src/reports/Standard: FilterSupport.py 
        designer/src/schema: Instance.py 
        designer/src/schema/wizards: AddTable.py WriteSchema.py 

Log message:
        Converted the menu bar to a dynamically-created, completely 
events-driven model; updated menu structure

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/Instance.py.diff?tr1=1.104&tr2=1.105&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MenuBar.py.diff?tr1=1.47&tr2=1.48&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/TemplateParser.py.diff?tr1=1.33&tr2=1.34&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolFrame.py.diff?tr1=1.23&tr2=1.24&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/tools/SchemaNavigator.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/BlockEditor.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/Instance.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py.diff?tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/WidgetHandler.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddBlock.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddBox.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddButton.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddCheckbox.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddDataSource.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddDropDown.py.diff?tr1=1.18&tr2=1.19&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddEntry.py.diff?tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddLabel.py.diff?tr1=1.7&tr2=1.8&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/AddPage.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/CreateSchema.py.diff?tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/wizards/CreateWebForm.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/navigator/Instance.py.diff?tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/reports/Instance.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/reports/Standard/FilterSupport.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/Instance.py.diff?tr1=1.21&tr2=1.22&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/wizards/AddTable.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/schema/wizards/WriteSchema.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text

Patches:
Index: gnue/designer/src/base/Instance.py
diff -c gnue/designer/src/base/Instance.py:1.104 
gnue/designer/src/base/Instance.py:1.105
*** gnue/designer/src/base/Instance.py:1.104    Sat Jun  7 02:53:35 2003
--- gnue/designer/src/base/Instance.py  Mon Jun  9 20:40:13 2003
***************
*** 36,42 ****
  from gnue.common.apps import RuntimeSettings
  from gnue.common.utils.FileUtils import dyn_import
  from gnue.common.events import EventController, Event
! from gnue.designer.base.MenuBar import MainMenuBar
  from gnue.designer.base.UndoManager import UndoManager
  from gnue.designer.base.ToolFrame import ToolFrame
  from gnue.designer.base.ToolBase import ToolBase
--- 36,42 ----
  from gnue.common.apps import RuntimeSettings
  from gnue.common.utils.FileUtils import dyn_import
  from gnue.common.events import EventController, Event
! from gnue.designer.base.MenuBar import MenuBar
  from gnue.designer.base.UndoManager import UndoManager
  from gnue.designer.base.ToolFrame import ToolFrame
  from gnue.designer.base.ToolBase import ToolBase
***************
*** 48,53 ****
--- 48,54 ----
  from gnue.designer.base.TemplateParser import WizardRunner
  from PrimaryToolBar import PrimaryToolBar
  from gnue.designer import VERSION, PACKAGE
+ from ToolSupport import SupportedTools
  
  TITLE=PACKAGE
  
***************
*** 82,94 ****
      return
  
    #
!   def createTools(self):
      pass
  
    #
    def createWizards(self):
      pass
  
    # Instances can add to the primary toolbar
    def initToolBar(self):
      pass
--- 83,99 ----
      return
  
    #
!   def createInspectors(self):
      pass
  
    #
    def createWizards(self):
      pass
  
+   #
+   def initMenu(self):
+     pass
+ 
    # Instances can add to the primary toolbar
    def initToolBar(self):
      pass
***************
*** 149,155 ****
                         'RequestSave'         : self.OnSave,
                         'RequestSaveAs'       : self.OnSaveAs,
                         'RequestClose'        : self.OnClose,
-                        'RequestConnect'      : self.OnConnectTo, # TODO: 
Designer.py??
  
                         # Object stuff
                         'ObjectSelected'      : self.__onSetCurrentObject,
--- 154,159 ----
***************
*** 196,217 ****
  
      self.statusbar = self.CreateStatusBar()
      self.SetStatusText('Welcome to GNUe Designer -- Do not expose to direct 
sunlight, do not feed after midnight, and do not get wet.')
!     self._menubar = MainMenuBar(self)
!     self.SetMenuBar(self._menubar)
      self._toolbar = PrimaryToolBar(self, self)
      self.SetToolBar(self._toolbar)
  
  
      self.rootObject.walk(self.__inventory)
  
  
!     # Create the supplemental tools
!     self._toolCache = []
!     self.createTools()
!     self._initTools()
      self.createWizards()
      self.initToolBar()
!     self._menubar.buildMenu()
  
      # Build accelerator list
      accel = wxAcceleratorTable(self.globalAccelerators)
--- 200,234 ----
  
      self.statusbar = self.CreateStatusBar()
      self.SetStatusText('Welcome to GNUe Designer -- Do not expose to direct 
sunlight, do not feed after midnight, and do not get wet.')
!     self._menubar = MenuBar(self)
      self._toolbar = PrimaryToolBar(self, self)
      self.SetToolBar(self._toolbar)
  
  
      self.rootObject.walk(self.__inventory)
  
+     # Create the supplemental inspectors
+     self._inspectorCache = []
+ 
+     # Set up the menu system
+     self._initMenu()
+     self.initMenu()
  
!     self.createInspectors()
!     self._initInspectors()
      self.createWizards()
      self.initToolBar()
! 
!     # Finalize menu bar
!     self._menubar.finalize()
!     self._app.mru.addMenu(self._menubar.getMenu('File|Open Recent|'), self)
! 
!     # TODO: This is a hack to disable any menu items
!     # TODO: for actions we've yet to implement
!     for action in ('RequestRevert','RequestRedo','RequestCopy',
!                    'RequestPaste','RequestPasteSpecial','RequestCut'):
!       self.dispatchEvent('Disable:%s' % action)
! 
  
      # Build accelerator list
      accel = wxAcceleratorTable(self.globalAccelerators)
***************
*** 234,302 ****
  
      self.dispatchEvent(Event('ObjectSelected', originator=self,
                         object=self.rootObject))
-     ##self.onSetCurrentObject(self.rootObject, __name__)
  
      self.Show(true)
      self.Refresh()
  
      EVT_CLOSE(self, self.OnClose)
  
  
!   def _initTools(self):
  
      self.__horizSplitter = wxSplitterWindow(self, -1, style=wxSP_3D)
      self.__leftDock = leftWin = ToolDock(self.__horizSplitter, self, 'left')
      self.__rightDock = rightWin = ToolDock(self.__horizSplitter, self,'right')
  
      # Add each tool
!     for id, title, baseclass, hotkey in self._toolCache:
!       if id == None:
!         self._menubar.addToolSeparator()
!       else:
!         GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
  
!         pos = RuntimeSettings.get(self.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock)
  
!         #### Historical stuff... remove before 1.0 ####
!         if pos in ('topleft','topright','bottomleft','bottomright'):
!           pos = baseclass.default_dock
!         ####
! 
!         appd = (id, title, baseclass, hotkey, pos)
! 
!         indx = '0'
!         if '-' in pos:
!           pos, indx = pos.split('-')
! 
!         if pos not in ('left','right'):  # i.e., 'frame' or something old
!           # Frame type
!           window = ToolFrame(self, id, title, baseclass.uses_feedback_bar)
!           control = baseclass(self, self.rootObject, window)
!           window.control = control
!           window.dock = 'frame'
!           enableMenu = 1
!           if baseclass.uses_feedback_bar:
!             frame.setStatusBar(frame.statusbar)
!         else:
!           # Docked type
!           pane = DockedToolPane(self.__horizSplitter, self)
!           control = pane.AddTool(title, baseclass, self.rootObject, self)
!           if pos == 'left':
!             window = leftWin
!           elif pos == 'right':
!             window = rightWin
!           pane.setStatusBar(self.statusbar)
! 
! 
!           window.add(pane, indx)
!           enableMenu = 0
! 
!         # Add ourselves to the Window menu
!         self._menubar.addTool(id, window, title, hotkey, enableMenu)
!         window.finalize()
  
!         self.__dict__["%sWindow" % id] = window
!         self.__dict__[id] = control
  
  
      leftWin.refresh()
--- 251,369 ----
  
      self.dispatchEvent(Event('ObjectSelected', originator=self,
                         object=self.rootObject))
  
      self.Show(true)
      self.Refresh()
  
      EVT_CLOSE(self, self.OnClose)
  
+   def _initMenu(self):
+     # Add the [sub]menus
+     for location, text, grouping in (
+           ('File', _('&File'), 100),
+           ('File|New', _('&New'), 100),
+           ('File|Open Recent', _('&Open Recent'), 200.1),
+           ('File|Connect To', _('&Connect To'), 400),
+           ('Edit', _('&Edit'), 200),
+           ('Insert',_('&Insert'), 300),
+           ('Modify',_('&Modify'), 400),
+           ('View',_('&View'), 800),
+           ('Help',_('&Help'), 999)):
+ 
+       self._menubar.addMenu(location, text, grouping)
+ 
+     for location, event, text, hotkey, help, grouping in (
+        ('File', 'RequestOpen', _('&Open'), 'Ctrl+O', _("Open an existing 
document"), 200.1),
+        ('File|Open Recent', 'XXXX', _('&Foo'), None, _("This is a placeholder 
for the Open Recent menu"), 200.1),
+        ('File', 'RequestSave', _("&Save"), 'Ctrl+S', _("Save the current 
document"),300.1),
+        ('File', 'RequestSaveAs', _("Save &As..."),None, _("Save the current 
document under a new name"), 300.2),
+        ('File', 'RequestSaveAll', _("Save A&ll"),None,_("Save all open 
document"),300.3),
+        ('File', 'RequestRevert', _("Reload"), None, _("Reload the current 
document as of its last save (abandoning any changes)"), 500),
+        ('File', 'RequestClose', _("&Close"), 'Ctrl+W', _("Close the current 
document"), 990),
+        ('File', 'RequestExit', _("E&xit"), None, _("Exit GNUe Designer"), 
995),
+        ('Edit', 'RequestUndo', _("&Undo"), 'Ctrl+Z', _("Undo the last 
action"), 100.1),
+        ('Edit', 'RequestRedo', _("&Redo"), 'Ctrl+Y', _("Redo the last undo 
action"), 100.2),
+        ('Edit', 'RequestCut', _("Cu&t"), 'Ctrl+X', _("Cut the current object 
and move to the clipboard"), 200.1),
+        ('Edit', 'RequestCopy', _("&Copy"), 'Ctrl+C', _("Copy the current 
object to the clipboard"), 200.2),
+        ('Edit', 'RequestPaste', _("&Paste"), 'Ctrl+V', _("Paste the current 
object on the clipboard"), 200.3),
+        ('Edit', 'RequestPasteSpecial', _("Paste &Special..."), None, _("Paste 
the current object on the clipboard with special attributes"), 200.4),
+        ('Modify','RequestDelete', _("&Delete Item"), 'Delete', _("Delete the 
current object"),100),
+        ('Help', 'RequestAbout', _("&About GNUe Designer"), None, _("More 
information about GNUe Designer"), 900),
+      ):
+       self._menubar.addAction(location, text, event,
+                       grouping, canDisable=1,
+                       icon=None, hotkey=hotkey, help=help)
+ 
+     # Add supported tools to File|New
+     for tool in SupportedTools:
+        self._menubar.addAction('File|New', '&%s' % 
tool.properties.nickname,'RequestNew', 100,
+         help=_('Create a new %s') % string.lower(tool.properties.nickname), 
eventdata={'type': tool.properties.module })
+ 
+     # Add connections
+     for conn in self.connections.getAllConnectionParameters().keys():
+       id = wxNewId()
+       self._menubar.addAction('File|Connect To', conn, 'Connect:%s' % conn,
+                help=_("Login to %s connection") % conn,
+                eventdata={'connection': conn})
+       self.registerEventListeners({'Connect:%s' % conn:self.__OnConnectTo})
  
! 
!   def _initInspectors(self):
  
      self.__horizSplitter = wxSplitterWindow(self, -1, style=wxSP_3D)
      self.__leftDock = leftWin = ToolDock(self.__horizSplitter, self, 'left')
      self.__rightDock = rightWin = ToolDock(self.__horizSplitter, self,'right')
  
      # Add each tool
!     for id, title, baseclass, hotkey, group in self._inspectorCache:
  
!       GDebug.printMesg(2,'Adding inspector %s [%s]' % (title,id))
  
!       pos = RuntimeSettings.get(self.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock)
! 
!       #### Historical stuff... remove before 1.0 ####
!       if pos in ('topleft','topright','bottomleft','bottomright'):
!         pos = baseclass.default_dock
!       ####
! 
!       appd = (id, title, baseclass, hotkey, pos)
! 
!       indx = '0'
!       if '-' in pos:
!         pos, indx = pos.split('-')
! 
!       if pos not in ('left','right'):  # i.e., 'frame' or something old
!         # Frame type
!         window = ToolFrame(self, id, title, baseclass.uses_feedback_bar)
!         control = baseclass(self, self.rootObject, window)
!         window.control = control
!         window.dock = 'frame'
!         enableMenu = 1
!         if baseclass.uses_feedback_bar:
!           frame.setStatusBar(frame.statusbar)
!       else:
!         # Docked type
!         pane = DockedToolPane(self.__horizSplitter, self)
!         control = pane.AddTool(title, baseclass, self.rootObject, self)
!         if pos == 'left':
!           window = leftWin
!         elif pos == 'right':
!           window = rightWin
!         pane.setStatusBar(self.statusbar)
! 
! 
!         window.add(pane, indx)
!         enableMenu = 0
! 
!       # Add ourselves to the Window menu
!       self._menubar.addAction(location='View', text=title, event='Tool:' + id,
!                               grouping=group, canToggle=1, canDisable=0,
!                               icon=None, hotkey=hotkey)
! 
!       window.finalize()
  
!       self.__dict__["%sWindow" % id] = window
!       self.__dict__[id] = control
  
  
      leftWin.refresh()
***************
*** 306,319 ****
      leftWin.restoreSettings(self.runtime_section)
  
  
!   def addTool(self, id, title, baseclass, hotkey=None):
!     self._toolCache.append( (id, title, baseclass, hotkey) )
  
-   def addToolSeparator(self):
-     self._toolCache.append( (None, None, None, None) )
- 
-   def addToolCreate(self, title, method):
-     self._menubar.addToolCreate(title, method)
  
    # Return, or create, an ObjectList based on the xml tag
    def getObjectList(self, tag):
--- 373,381 ----
      leftWin.restoreSettings(self.runtime_section)
  
  
!   def addInspector(self, id, title, baseclass, hotkey=None, menuGroup=499):
!     self._inspectorCache.append( (id, title, baseclass, hotkey, menuGroup) )
  
  
    # Return, or create, an ObjectList based on the xml tag
    def getObjectList(self, tag):
***************
*** 567,585 ****
      
fileHandle.write(self.rootObject.dumpXML(treeDump=1).encode(gConfig('textEncoding')))
      fileHandle.close()
  
!     self._app.mru.addLocation(location)    
      self.makeClean()
  
  
  
!   def OnConnectTo(self, event):
!     # connectionMap is built by MenuBar
      conn = event.connection
      tempDO = self.connections.getDataObject(conn, 'object')
      try:
        self.connections.requestConnection(tempDO, conn)
!       self._menubar._fileConnect.Enable(event.GetId(),0)
!       self.onSetCurrentObject(self._currentObject, __name__)
      except:
        print _("Unable to connect to %s") % conn
  
--- 629,646 ----
      
fileHandle.write(self.rootObject.dumpXML(treeDump=1).encode(gConfig('textEncoding')))
      fileHandle.close()
  
!     self._app.mru.addLocation(location)
      self.makeClean()
  
  
  
!   def __OnConnectTo(self, event):
      conn = event.connection
      tempDO = self.connections.getDataObject(conn, 'object')
      try:
        self.connections.requestConnection(tempDO, conn)
!       self.dispatchEvent('ConnectionEstablished',connection=conn)
!       self.dispatchEvent('Disable:Connect:%s' % conn)
      except:
        print _("Unable to connect to %s") % conn
  
***************
*** 722,730 ****
  
      for template in templates:
        try:
!         location = template['Location']
          if location:
!           self._menubar.addWizardLocation(location, template)
        except ValueError:
          continue
  
--- 783,802 ----
  
      for template in templates:
        try:
!         location = template['MenuLocation']
!         try:
!           location, translation, grouping = location
!           grouping = float(grouping)
!         except:
!           location, translation = location
!           grouping = 499.0
! 
          if location:
!           self.wizardRunner(template, self)
!           self._menubar.addAction(location=location, text=translation,
!                                   event='Wizard:%s' % template['BaseID'],
!                                   grouping=grouping, canDisable=1,
!                                   eventdata={'template':template})
        except ValueError:
          continue
  
Index: gnue/designer/src/base/MenuBar.py
diff -c gnue/designer/src/base/MenuBar.py:1.47 
gnue/designer/src/base/MenuBar.py:1.48
*** gnue/designer/src/base/MenuBar.py:1.47      Fri May 30 01:02:55 2003
--- gnue/designer/src/base/MenuBar.py   Mon Jun  9 20:40:13 2003
***************
*** 34,365 ****
  #
  #
  #
- class MainMenuBar(wxMenuBar):
-   def __init__(self, frame):
-      wxMenuBar.__init__(self)
  
!      # Keep track of user-installed + sys-installed wizards/tools
!      self._menuMappings = {}
!      self._eventMappings = {}
! 
!      # So we can honor the module's requested order for the tool menu
!      self._toolMenuOrder = []
! 
!      self._frame = self.instance = frame
! 
!   def addWizardLocation(self, location, template):
!     #print "Adding %s" % location
!     wr = self._frame.wizardRunner(template,
!                                   string.split(location,'|')[-1],
!                                   self._frame)
! 
!     self._menuMappings[location] = wr
! 
!   # Called after all the addWizardLocation's have been run
!   def buildMenu(self):
!      frame = self._frame
! 
! ##     # Project menu
! ##     ID_NEW_PROJECT = wxNewId()
! ##     ID_OPEN_PROJECT = wxNewId()
! 
! ##     # Debug menu
! ##     ID_RUN = wxNewId()
! 
! ##     # Settings menu
! ##     ID_CFGTOOL = wxNewId()
! 
!      # Help menu
!      ID_ABOUT = wxNewId()
! 
! 
! 
!      ID_NEW = wxNewId()
!      ID_OPEN_RECENT = wxNewId()
!      ID_CONNECT = wxNewId()
! 
! 
!      self._file = wxMenu()
!      self._fileNew = wxMenu()
!      self._fileRecent = wxMenu()
!      self._fileConnect = wxMenu()
! 
!      self._file.AppendMenu(ID_NEW, _("&New"), self._fileNew, _("Create a new 
object"))
!      self.__addItem(self._file, 'RequestOpen', _("&Open...\tCtrl+O"), _("Open 
an existing object"))
!      self._file.AppendMenu(ID_OPEN_RECENT, _("Open &Recent"), 
self._fileRecent,
!                            _("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"))
!      self._file.AppendSeparator()
!      self._file.AppendMenu(ID_CONNECT, _("Connect &to"), self._fileConnect,
!                            _("Connect to a database"))
!      self._file.AppendSeparator()
!      ID_RELOAD = self.__addItem(self._file, 'RequestRevert', _("Reload"),
!         _("Reload the current object as of its last save (abandoning any 
changes)"))
!      self._file.AppendSeparator()
!      self.__addItem(self._file, 'RequestClose', _("&Close\tCtrl+W"), _("Close 
the current object"))
!      self._file.AppendSeparator()
!      self.__addItem(self._file, 'RequestExit', _("E&xit"), _("Exit GNUe 
Designer"))
! 
! 
!      # Set up our MRU list
!      frame._app.mru.addMenu(self._fileRecent, frame)
! 
! 
!      frame._fileNewMap = {}
!      for tool in SupportedTools:
!        self.__addItem(self._fileNew, 'RequestNew','&%s' % 
tool.properties.nickname,
!          _('Create a new %s') % string.lower(tool.properties.nickname), 
{'type': tool.properties.module })
! 
! 
!      self._fileNew.AppendSeparator()
!      self.__addItem(self._fileNew, 'RequestNewWizard',_('from &Wizard...'), \
!                           _("Create a new object from a wizard"))
! 
! 
!      # Build a connection list
!      frame.connectionMap = {}
!      for conn in frame.connections.getAllConnectionParameters().keys():
!        id = wxNewId()
!        self.__addItem(self._fileConnect, 'RequestConnect', conn,
!                _("Login to %s connection") % conn, {'connection': conn})
!        frame.connectionMap[id] = conn
! 
! 
!      self._file.Enable(ID_RELOAD,0)
! 
!      self._help = wxMenu()
!      self.__addItem(self._help, 'RequestAbout', _("&About..."), _("More 
information about GNUe Designer"))
! 
!      self._edit = wxMenu()
!      ID_UNDO = self.__addItem(self._edit, 'RequestUndo', _("&Undo\tCtrl+Z"), 
_("Undo the last action"))
!      ID_REDO = self.__addItem(self._edit, 'RequestRedo', _("&Redo\tCtrl+Y"), 
_("Redo the last undo action"))
!      self._edit.AppendSeparator()
!      ID_CUT = self.__addItem(self._edit, 'RequestCut', _("Cu&t"), _("Cut the 
current object and move to the clipboard"))
!      ID_COPY = self.__addItem(self._edit, 'RequestCopy', _("&Copy"), _("Copy 
the current object to the clipboard"))
!      ID_PASTE = self.__addItem(self._edit, 'RequestPaste', _("&Paste"), 
_("Paste the current object on the clipboard"))
!      ID_PASTE_SPECIAL = self.__addItem(self._edit, 'RequestPasteSpecial', 
_("Paste &Special..."), _("Paste the current object on the clipboard with 
special attributes"))
!      self._edit.AppendSeparator()
!      ID_DELETE = self.__addItem(self._edit, 'RequestDelete', _("&Delete"), 
_("Delete the current object"))
! 
!      # TODO: Implement clipboard
! ##     self._edit.Enable(ID_UNDO,0)
!      self._edit.Enable(ID_REDO,0)
!      self._edit.Enable(ID_CUT,0)
!      self._edit.Enable(ID_COPY,0)
!      self._edit.Enable(ID_PASTE,0)
!      self._edit.Enable(ID_PASTE_SPECIAL,0)
!      self._edit.Enable(ID_DELETE,0)
! 
! 
! ##     # TODO: Implement projects
! ##     self._project = wxMenu()
! 
! 
!      self._tools = wxMenu()
!      for location in self._toolMenuOrder:
! 
!        if location == "":
!          self._tools.AppendSeparator()
!          continue
! 
!        # Grab our ToolRunner (or WizardRunner if tool was replaced???)
!        # and delete the reference.
!        tool = self._menuMappings[location]
!        del self._menuMappings[location]
! 
!        menu = wxMenuItem(self._tools, tool.wxId, tool.title,
!                          tool.tooltip, tool.checkable)
!        tool.menu = menu
!        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()
! 
! 
! ##     TODO: NOT FUNCTION in 0.5.0
! ##     self._debug = wxMenu()
! ##     self._debug.Append(ID_RUN, _('&Run'), _("Run the current form"))
! ##     self.__addMenuEvent('Debug|Run', ID_RUN, frame.OnDebugRun)
! 
! ##      # TODO: Implement settings
! ##      self._settings = wxMenu()
! ##      self._settings.Append(ID_CFGTOOL,_('Configure &Tools...'),
! ##                         _('Configure the display of tools'))
! ##      self.__addMenuEvent('Settings|Configure Tools', ID_RUN, 
frame.OnDebugRun)
! 
! 
!      menumap = { '': (self, {}),
!                  'File': (self._file,{}),
!                  'File|New': (self._fileNew,{}),
!                  'Edit': (self._edit,{}),
! ##                 'Project': (self._project,{}),
! ##                 'Debug': (self._debug,{}),
!                  'Tools': (self._tools,{}),
! ##                 'Settings': (self._settings,{}),
!                  'Help': (self._help, {})}
! 
! ##     basemenuorder = ['File','Edit','Debug','Project', 'Tools', 'Settings']
!      basemenuorder = ['File','Edit', 'Tools']
! 
!      for location in self._menuMappings.keys():
!        last = None
!        nav = string.split(location,'|')
!        partial = ""
!        lastpartial = ""
!        for loc in nav[:-1]:
!          lastpartial = partial
!          partial += (partial and '|' or "") + loc
!          if not menumap.has_key(partial):
!            menumap[partial] = (wxMenu(), {})
!            menumap[lastpartial][1][loc] = (1, menumap[partial][0])
! 
!        menumap[partial][1][nav[-1]] = (0, location)
! 
! 
!      # Add all the base menus first...
!      for name in basemenuorder:
!        self.Append(menumap[name][0], '&' + name)
! 
! 
!      # Next, add all the customizations
!      locsort = menumap.keys()
!      locsort.sort()
!      for location in locsort:
!        menu, submenus = menumap[location]
!        mm = submenus.keys()
!        mm.sort()
!        for menuitem in mm:
!          isMenu, data  = submenus[menuitem]
!          if isMenu:
!            # data is a wxMenu instance
!            menu.AppendMenu(wxNewId(), '&' + menuitem, data)
!          else:
!            # Data is a location pointer
!            wizard = self._menuMappings[data]
!            menu.Append(wizard.wxId, wizard.title, wizard.tooltip)
! 
!            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):
! ##    method, id = self._eventMappings[location]
! ##    method(fakeWxEvent(id))
  
  
  
!   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("")
  
    #
    # Convenience methods to make the main menu bar appear to be a menu 
container
    #
- 
    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
- #
- # There seem to be issues in wx2.4 will
- # 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
  
  
--- 34,155 ----
  #
  #
  #
  
! class MenuBar(wxMenuBar):
!   def __init__(self, instance):
!     wxMenuBar.__init__(self)
!     self.instance = instance
!     self.instance.SetMenuBar(self)
  
!     self._menus = {}
!     self._menuItems = {'':[]}
  
+     self._locationToWx= {}
  
  
+   # Locations can be <loc>|<loc> where <loc> is <location>/<translation>@group
+   def addMenu(self, location, translation=None, grouping=499):
+ 
+     loc = ''
+     if translation:
+       location += '/' + translation
+     if grouping:
+       location += '@' + str(grouping)
+ 
+     for part in location.split('|'):
+       try:
+         part, group = part.split('@')
+         group = float(group)
+       except:
+         group = 500.0
+       try:
+         part, trans = part.split('/')
+       except:
+         trans = part
+       nloc = loc + part + '|'
+       if not self._menuItems.has_key(nloc):
+         self._menuItems[nloc] = []
+         self._menuItems[loc].append((int(grouping),grouping, trans, 1, nloc,
+                                      0, 0, None, None, None, None))
+       loc = nloc
+     return loc
+ 
+ 
+   def addAction(self, location, text, event,
+                       grouping=499, canToggle=0, canDisable=0,
+                       icon=None, hotkey=None, eventdata={}, help=""):
+ 
+     location = self.addMenu(location)
+     self._menuItems[location].append((int(grouping), grouping, text, 0, event,
+                                  canToggle, canDisable, icon, hotkey,
+                                  eventdata, help))
  
  
+   #
+   # Return the wxMenu(Item) associated with a location
+   def getMenu(self, location):
+     return self._locationToWx[location]
  
  
  
!   #
!   # Called by Instance.py when the menu can finally be built
!   #
!   def finalize(self):
!     for group, order, text, isMenu, action, canToggle, canDisable, \
!         icon, hotkey, eventdata, help in self._menuItems['']:
!       self.__setupMenu(self, action, text)
  
  
+   #
+   # Recursively build (sub)menus
+   #
+   def __setupMenu(self, parent, location, text):
+     items = self._menuItems[location]
  
!     # Don't add empty menus (???)
!     if not items:
!       return
! 
!     menu = wxMenu()
!     self._locationToWx[location] = menu
!     parent.AppendMenu(wxNewId(), text, menu)
!     items.sort()
!     lastgroup = items[0][0]
! 
!     for group, order, text, isMenu, action, canToggle, canDisable, \
!         icon, hotkey, eventdata, help in self._menuItems[location]:
!       if group != lastgroup:
!         menu.AppendSeparator()
!         lastgroup = group
! 
!       if isMenu:
!         self.__setupMenu(menu, action, text)
!       else:
!         mid = wxNewId()
!         if hotkey:
!           text += '\t' + hotkey
!         item = wxMenuItem(menu, mid, text, help,
!                   (canToggle and [wxITEM_CHECK] or [wxITEM_NORMAL])[0])
!         if canToggle:
!           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))
!         else:
!           EVT_MENU(self.instance._app, mid,
!             lambda event, l=self.instance, e=action, x=eventdata: 
l.dispatchEvent(e, **x))
! 
!         if canDisable:
!           self.instance.registerEventListeners( {
!                    'Enable:%s' % action:  lambda event, m=item: m.Enable(1),
!                    'Disable:%s' % action: lambda event, m=item: m.Enable(0) })
!         menu.AppendItem(item)
  
  
    #
    # Convenience methods to make the main menu bar appear to be a menu 
container
    #
    def AppendMenu(self, wxId, text, menu):
      self.Append(menu, text)
  
  
Index: gnue/designer/src/base/TemplateParser.py
diff -c gnue/designer/src/base/TemplateParser.py:1.33 
gnue/designer/src/base/TemplateParser.py:1.34
*** gnue/designer/src/base/TemplateParser.py:1.33       Fri Jun  6 22:26:39 2003
--- gnue/designer/src/base/TemplateParser.py    Mon Jun  9 20:40:13 2003
***************
*** 628,654 ****
  
  
  class WizardRunner:
!   def __init__(self, template, title, instance):
       self.template = template
       self.instance = instance
- 
-      self.wxId = wxNewId()
-      self.id = template['BaseID']
-      self.title = title
-      self.checkable = 0
-      self.enable = 1
-      try:
-        self.tooltip = template['Description']
-      except KeyError:
-        self.tooltip = ""
- 
       instance.registerEventListeners(
!          { 'RunWizard:%s' % template['BaseID']: self.run } )
  
    def run(self, event):
!     self.instance.dispatchEvent(Event('BeginWizard', template=self.template))
      TemplateParser(self.instance, self.instance.rootObject,
            self.instance, self.template).run()
      self.instance.dispatchEvent(Event('EndWizard', template=self.template))
  
    def finalize(self):
--- 628,645 ----
  
  
  class WizardRunner:
!   def __init__(self, template, instance):
       self.template = template
       self.instance = instance
       instance.registerEventListeners(
!          { 'Wizard:%s' % template['BaseID']: self.run } )
  
    def run(self, event):
!     self.instance.dispatchEvent('BeginWizard', template=self.template)
!     self.instance.dispatchEvent('BeginUndoGroup')
      TemplateParser(self.instance, self.instance.rootObject,
            self.instance, self.template).run()
+     self.instance.dispatchEvent('EndUndoGroup')
      self.instance.dispatchEvent(Event('EndWizard', template=self.template))
  
    def finalize(self):
Index: gnue/designer/src/base/ToolFrame.py
diff -c gnue/designer/src/base/ToolFrame.py:1.23 
gnue/designer/src/base/ToolFrame.py:1.24
*** gnue/designer/src/base/ToolFrame.py:1.23    Sat Jun  7 02:53:35 2003
--- gnue/designer/src/base/ToolFrame.py Mon Jun  9 20:40:13 2003
***************
*** 89,96 ****
      RuntimeSettings.registerRuntimeSettingHandler(self.instance, self)
  
      self.instance.registerEventListeners(
!                { 'ShowTool:%s' % self.id : self.show,
!                  'HideTool:%s' % self.id : self.hide } )
  
  
    def saveRuntimeSettings(self):
--- 89,96 ----
      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):
***************
*** 113,119 ****
      self.Show(0)
  
    def OnClose(self, event):
!     self.instance.dispatchEvent('HideTool:%s' % self.id)
      event.Veto()
  
  
--- 113,119 ----
      self.Show(0)
  
    def OnClose(self, event):
!     self.instance.dispatchEvent('Hide:Tool:%s' % self.id)
      event.Veto()
  
  
Index: gnue/designer/src/base/tools/SchemaNavigator.py
diff -c gnue/designer/src/base/tools/SchemaNavigator.py:1.5 
gnue/designer/src/base/tools/SchemaNavigator.py:1.6
*** gnue/designer/src/base/tools/SchemaNavigator.py:1.5 Fri Jun  6 21:11:01 2003
--- gnue/designer/src/base/tools/SchemaNavigator.py     Mon Jun  9 20:40:14 2003
***************
*** 72,78 ****
      self.connectionNames.sort()
      self.connectionCache = {}
  
!     EVT_SIZE(self, self.OnSize)
  
      self.current = None
  
--- 72,78 ----
      self.connectionNames.sort()
      self.connectionCache = {}
  
!     EVT_SIZE(self, self.__OnSize)
  
      self.current = None
  
***************
*** 117,124 ****
    def createToolbar(self, parent):
      return _SchemaToolbar(parent, self.instance)
  
!   def OnSize(self, event):
      self.scroll.SetSize(self.GetClientSize())
      # This is some hackery since the earlier
      # SetSashPosition is doing absolutely no good :(
      if self.splitter.GetSashPosition() < 30:
--- 117,125 ----
    def createToolbar(self, parent):
      return _SchemaToolbar(parent, self.instance)
  
!   def __OnSize(self, event):
      self.scroll.SetSize(self.GetClientSize())
+     self.scroll.SetScrollbars(10,10,10,10)
      # This is some hackery since the earlier
      # SetSashPosition is doing absolutely no good :(
      if self.splitter.GetSashPosition() < 30:
Index: gnue/designer/src/forms/BlockEditor.py
diff -c gnue/designer/src/forms/BlockEditor.py:1.3 
gnue/designer/src/forms/BlockEditor.py:1.4
*** gnue/designer/src/forms/BlockEditor.py:1.3  Thu May 29 01:07:22 2003
--- gnue/designer/src/forms/BlockEditor.py      Mon Jun  9 20:40:14 2003
***************
*** 138,144 ****
  ######################################################################
  #
  #
! ToolbarMapping = 'RunWizard:AddBlock,wizard_block;' \
                 + 'BlockEditor:Delete,tb_delete'
  
  class _BlockToolbar(BaseToolBar):
--- 138,144 ----
  ######################################################################
  #
  #
! ToolbarMapping = 'Wizard:AddBlock,wizard_block;' \
                 + 'BlockEditor:Delete,tb_delete'
  
  class _BlockToolbar(BaseToolBar):
Index: gnue/designer/src/forms/Instance.py
diff -c gnue/designer/src/forms/Instance.py:1.45 
gnue/designer/src/forms/Instance.py:1.46
*** gnue/designer/src/forms/Instance.py:1.45    Sat Jun  7 02:53:36 2003
--- gnue/designer/src/forms/Instance.py Mon Jun  9 20:40:14 2003
***************
*** 190,210 ****
      object._popupMenu = ObjectMenu(self, object)
  
  
!   def createTools(self):
!     self.addTool('visualEditor',   _('Layout Editor'), LayoutEditor, 'F11')
!     self.addTool('propertyEditor', _('Property Inspector'), PropertyEditor, 
'F10')
!     self.addTool('treeEditor',     _('Object Navigator'), TreeView, 'F8')
!     self.addTool('schemaNavigator',_('Schema Navigator'), SchemaNavigator)
!     self.addToolSeparator()
!     self.addTool('datasourceEditor',_('Data Source Editor'), 
DataSourceEditor, 'F9')
!     self.addTool('blockEditor',   _('Block Editor'), BlockEditor, 'F5')
!     #self.addTool('fieldEditor',   _('Field Editor'), FieldEditor, 'F6')
!     self.addToolSeparator()
!     self.addTool('eventEditor',    _('Trigger Inspector'), EventEditor, 'F7')
!     self.addTool('triggerEditor',  _('Code Editor'), TriggerEditor, 'F12')
  
    def createWizards(self):
      self.loadWizards(wizards)
  
  
    def preSave(self):
--- 190,243 ----
      object._popupMenu = ObjectMenu(self, object)
  
  
!   def createInspectors(self):
!     self.addInspector('visualEditor',   _('Layout Editor'), LayoutEditor,
!                       hotkey='F11', menuGroup=301)
!     self.addInspector('propertyEditor', _('Property Inspector'), 
PropertyEditor,
!                       hotkey='F10', menuGroup=301)
!     self.addInspector('treeEditor',     _('Object Navigator'), TreeView,
!                       hotkey='F8', menuGroup=311)
! 
!     self.addInspector('schemaNavigator',_('Schema Navigator'), 
SchemaNavigator,
!                       menuGroup=301)
!     self.addInspector('datasourceEditor',_('Data Source Editor'), 
DataSourceEditor,
!                       hotkey='F9', menuGroup=311)
!     self.addInspector('blockEditor',   _('Block Editor'), BlockEditor,
!                       hotkey='F5', menuGroup=311)
!     #self.addInspector('fieldEditor',   _('Field Editor'), FieldEditor,
!     #                  hotkey='F6', menuGroup=201)
! 
!     self.addInspector('eventEditor',    _('Trigger Mappings'), EventEditor,
!                       hotkey='F7', menuGroup=321)
!     self.addInspector('triggerEditor',  _('Code Editor'), TriggerEditor,
!                       hotkey='F12', menuGroup=321)
  
    def createWizards(self):
      self.loadWizards(wizards)
+ 
+ 
+   def initMenu(self):
+     # Add the [sub]menus
+     for location, text, grouping in (
+        ('Modify|Arrange Items',_('&Arrange Items'), 501), ):
+ 
+       self._menubar.addMenu(location, text, grouping)
+ 
+     for location, event, text, hotkey, help, grouping, canToggle in (
+        ('View', 'LayoutEditor:ZoomIn', _("Zoom In"), None, _("Zoom in"), 
11.1, 0),
+        ('View', 'LayoutEditor:ZoomOut', _("Zoom Out"), None, _("Zoom out"), 
11.2, 0),
+        ('View', 'LayoutEditor:ShowFocus', _("Show Focus Order"), None, 
_("Show the navigation order on the layout editor"), 21, 1),
+        ('Modify|Align Items','LayoutEditor:AlignLeft', _("&Align Left 
Edges"), None, _("Horizontally align the currently selected items along their 
left edges"),101.1, 0),
+        ('Modify|Align Items','LayoutEditor:AlignRight', _("&Align Right 
Edges"), None, _("Horizontally align the currently selected items along their 
right edges"),101.2, 0),
+        ('Modify|Align Items','LayoutEditor:AlignHCenter', _("&Align 
Horizontally on Center"), None, _("Horizontally align the currently selected 
items along their centers"),101.2, 0),
+        ('Modify|Align Items','LayoutEditor:AlignTop', _("&Align Left Edges"), 
None, _("Vertically align the currently selected items along their top 
edges"),111.1, 0),
+        ('Modify|Align Items','LayoutEditor:AlignBottom', _("&Align Right 
Edges"), None, _("Vertically align the currently selected items along their 
bottom edges"),111.2, 0),
+        ('Modify|Align Items','LayoutEditor:AlignVCenter', _("&Align 
Vertically on Center"), None, _("Vertically align the currently selected items 
along their centers"),111.2, 0),
+        ('Modify','LayoutEditor:AutoArrange', _("&Reset Focus Order by 
Position"), None, _("Automatically set the focus order based on an items 
position"),201.2, 0)):
+       self._menubar.addAction(location, text, event,
+                       grouping, canDisable=1, canToggle=canToggle,
+                       icon=None, hotkey=hotkey, help=help)
+ 
  
  
    def preSave(self):
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.25 
gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.26
*** gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.25      Thu May 
29 01:07:22 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py   Mon Jun  9 
20:40:14 2003
***************
*** 29,43 ****
  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;' \
--- 29,43 ----
  from gnue.designer.base.ToolBar import BaseToolBar
  
  
! ToolbarMapping = 'Wizard:AddBlock,wizard_block;' \
!                + 'Wizard:AddPage,wizard_page;' \
                 + ';' \
!                + 'Wizard:AddLabel,wizard_label;' \
!                + 'Wizard:AddEntry,wizard_entrytext;'   \
!                + 'Wizard:AddDropDown,wizard_entrydrop;' \
!                + 'Wizard:AddCheckbox,wizard_entrycheck;' \
!                + 'Wizard:AddButton,wizard_button;' \
!                + 'Wizard:AddBox,wizard_box;' \
  
  ToolbarMapping2 = 'LayoutEditor:ZoomIn,tb_zoom_in;' \
                  + 'LayoutEditor:ZoomOut,tb_zoom_out;' \
Index: gnue/designer/src/forms/LayoutEditor/WidgetHandler.py
diff -c gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.13 
gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.14
*** gnue/designer/src/forms/LayoutEditor/WidgetHandler.py:1.13  Wed Jun  4 
19:24:12 2003
--- gnue/designer/src/forms/LayoutEditor/WidgetHandler.py       Mon Jun  9 
20:40:14 2003
***************
*** 260,267 ****
  
      else:
        # Signal the Properties dialog
!       self.instance._instance.dispatchEvent('ShowTool:ObjectProperties')
!       
  
    #
    # Resize the current widget.  dx and dy are incremental
--- 260,267 ----
  
      else:
        # Signal the Properties dialog
!       self.instance._instance.dispatchEvent('Show:Tool:objectProperties')
! 
  
    #
    # Resize the current widget.  dx and dy are incremental
Index: gnue/designer/src/forms/wizards/AddBlock.py
diff -c gnue/designer/src/forms/wizards/AddBlock.py:1.12 
gnue/designer/src/forms/wizards/AddBlock.py:1.13
*** gnue/designer/src/forms/wizards/AddBlock.py:1.12    Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddBlock.py Mon Jun  9 20:40:14 2003
***************
*** 219,224 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Block'
  }
  
--- 219,224 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Insert',_('Block'), 301.1)
  }
  
Index: gnue/designer/src/forms/wizards/AddBox.py
diff -c gnue/designer/src/forms/wizards/AddBox.py:1.6 
gnue/designer/src/forms/wizards/AddBox.py:1.7
*** gnue/designer/src/forms/wizards/AddBox.py:1.6       Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddBox.py   Mon Jun  9 20:40:14 2003
***************
*** 85,90 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'Location' : 'Edit|Insert|Box'
  }
  
--- 85,90 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'MenuLocation' : ('Insert',_('Box'), 401.2)
  }
  
Index: gnue/designer/src/forms/wizards/AddButton.py
diff -c gnue/designer/src/forms/wizards/AddButton.py:1.8 
gnue/designer/src/forms/wizards/AddButton.py:1.9
*** gnue/designer/src/forms/wizards/AddButton.py:1.8    Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddButton.py        Mon Jun  9 20:40:14 2003
***************
*** 209,222 ****
  #
  TemplateInformation = {
      'Product': 'forms',
      'BaseID' : 'AddButton',
-     'BaseClass' : AddButtonWizard,
      'Name' : 'Add Button',
!     'Description' : 'Inserts a button bound to an event',
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Button'
  }
  
  
--- 209,226 ----
  #
  TemplateInformation = {
      'Product': 'forms',
+     # Unique name for this wizard
      'BaseID' : 'AddButton',
      'Name' : 'Add Button',
! 
!     'BaseClass' : AddButtonWizard,
!     'Description' : _('Inserts a button bound to an event'),
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
! 
!     # Add to the menu
!     'MenuLocation' : ('Insert',  _('Button'), 401.5)
  }
  
  
Index: gnue/designer/src/forms/wizards/AddCheckbox.py
diff -c gnue/designer/src/forms/wizards/AddCheckbox.py:1.2 
gnue/designer/src/forms/wizards/AddCheckbox.py:1.3
*** gnue/designer/src/forms/wizards/AddCheckbox.py:1.2  Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddCheckbox.py      Mon Jun  9 20:40:14 2003
***************
*** 95,100 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'Location' : 'Edit|Insert|Checkbox Entry'
  }
  
--- 95,100 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'MenuLocation' : ('Insert',_('Checkbox Entry'),401.2)
  }
  
Index: gnue/designer/src/forms/wizards/AddDataSource.py
diff -c gnue/designer/src/forms/wizards/AddDataSource.py:1.9 
gnue/designer/src/forms/wizards/AddDataSource.py:1.10
*** gnue/designer/src/forms/wizards/AddDataSource.py:1.9        Wed May 28 
18:19:31 2003
--- gnue/designer/src/forms/wizards/AddDataSource.py    Mon Jun  9 20:40:14 2003
***************
*** 172,177 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Datasource'
  }
  
--- 172,177 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Insert',_('Datasource'), 301.2)
  }
  
Index: gnue/designer/src/forms/wizards/AddDropDown.py
diff -c gnue/designer/src/forms/wizards/AddDropDown.py:1.18 
gnue/designer/src/forms/wizards/AddDropDown.py:1.19
*** gnue/designer/src/forms/wizards/AddDropDown.py:1.18 Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddDropDown.py      Mon Jun  9 20:40:14 2003
***************
*** 337,342 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Drop Down Entry'
  }
  
--- 337,342 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Insert',_('Dropdown'), 501.2)
  }
  
Index: gnue/designer/src/forms/wizards/AddEntry.py
diff -c gnue/designer/src/forms/wizards/AddEntry.py:1.8 
gnue/designer/src/forms/wizards/AddEntry.py:1.9
*** gnue/designer/src/forms/wizards/AddEntry.py:1.8     Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddEntry.py Mon Jun  9 20:40:14 2003
***************
*** 94,99 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'Location' : 'Edit|Insert|Unbound Entry'
  }
  
--- 94,99 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'MenuLocation' : ('Insert',_('Unbound Entry'), 501.1)
  }
  
Index: gnue/designer/src/forms/wizards/AddLabel.py
diff -c gnue/designer/src/forms/wizards/AddLabel.py:1.7 
gnue/designer/src/forms/wizards/AddLabel.py:1.8
*** gnue/designer/src/forms/wizards/AddLabel.py:1.7     Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddLabel.py Mon Jun  9 20:40:14 2003
***************
*** 86,91 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'Location' : 'Edit|Insert|Label'
  }
  
--- 86,91 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': TEMPLATE,
!     'MenuLocation' : ('Insert',_('Label'), 401.1)
  }
  
Index: gnue/designer/src/forms/wizards/AddPage.py
diff -c gnue/designer/src/forms/wizards/AddPage.py:1.11 
gnue/designer/src/forms/wizards/AddPage.py:1.12
*** gnue/designer/src/forms/wizards/AddPage.py:1.11     Wed May 28 18:19:31 2003
--- gnue/designer/src/forms/wizards/AddPage.py  Mon Jun  9 20:40:14 2003
***************
*** 144,149 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Blank Page'
  }
  
--- 144,149 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Insert',_('Blank Page'), 201)
  }
  
Index: gnue/designer/src/forms/wizards/CreateSchema.py
diff -c gnue/designer/src/forms/wizards/CreateSchema.py:1.13 
gnue/designer/src/forms/wizards/CreateSchema.py:1.14
*** gnue/designer/src/forms/wizards/CreateSchema.py:1.13        Wed May 28 
18:19:31 2003
--- gnue/designer/src/forms/wizards/CreateSchema.py     Mon Jun  9 20:40:14 2003
***************
*** 322,327 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Extras|Create Schema from Form'
  }
  
--- 322,327 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Extras',_('Create Schema from Form'))
  }
  
Index: gnue/designer/src/forms/wizards/CreateWebForm.py
diff -c gnue/designer/src/forms/wizards/CreateWebForm.py:1.3 
gnue/designer/src/forms/wizards/CreateWebForm.py:1.4
*** gnue/designer/src/forms/wizards/CreateWebForm.py:1.3        Wed May 28 
18:19:32 2003
--- gnue/designer/src/forms/wizards/CreateWebForm.py    Mon Jun  9 20:40:14 2003
***************
*** 16,29 ****
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # Copyright 2001-2002 Free Software Foundation
  #
  # FILE:
  # forms/wizards/CreateWebForm.py
  #
  # DESCRIPTION:
  # a wizard which export the actual form into a dynamic HTML file
! # with javascript includes, which can act as a webform. 
  #
  # VERSION:   0.0.2 (needs gnue-forms.js ver. 0.0.2)
  #
--- 16,29 ----
  # write to the Free Software Foundation, Inc., 59 Temple Place
  # - Suite 330, Boston, MA 02111-1307, USA.
  #
! # Copyright 2001-2003 Free Software Foundation
  #
  # FILE:
  # forms/wizards/CreateWebForm.py
  #
  # DESCRIPTION:
  # a wizard which export the actual form into a dynamic HTML file
! # with javascript includes, which can act as a webform.
  #
  # VERSION:   0.0.2 (needs gnue-forms.js ver. 0.0.2)
  #
***************
*** 578,584 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Extras|Compile Form for GNUe JsForms'
  }
  
  if __name__ == "__main__":
--- 578,584 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Extras',_('Compile Form for GNUe JsForms'))
  }
  
  if __name__ == "__main__":
Index: gnue/designer/src/navigator/Instance.py
diff -c gnue/designer/src/navigator/Instance.py:1.12 
gnue/designer/src/navigator/Instance.py:1.13
*** gnue/designer/src/navigator/Instance.py:1.12        Wed Jan  1 19:45:47 2003
--- gnue/designer/src/navigator/Instance.py     Mon Jun  9 20:40:14 2003
***************
*** 73,85 ****
      return LayoutEditor(self, self.rootObject, self)
  
  
!   def createTools(self):
      pass
! ##    self.addTool('propertyEditor','Property Inspector', PropertyEditor)
! ##    self.addTool('treeEditor','Object Navigator', TreeView)
! ##    self.addTool('triggerEditor','Event Editor', TriggerEditor)
! ##    self.addTool('datasourceEditor','Data Source Editor', DataSourceEditor)
! ##    self.addTool('schemaViewer','Schema Navigator', SchemaViewer)
  
    def createWizards(self):
      self.loadWizards(wizards)
--- 73,85 ----
      return LayoutEditor(self, self.rootObject, self)
  
  
!   def createInspectors(self):
      pass
! ##    self.addInspector('propertyEditor','Property Inspector', PropertyEditor)
! ##    self.addInspectorol('treeEditor','Object Navigator', TreeView)
! ##    self.addInspector('triggerEditor','Event Editor', TriggerEditor)
! ##    self.addInspector('datasourceEditor','Data Source Editor', 
DataSourceEditor)
! ##    self.addInspector('schemaViewer','Schema Navigator', SchemaViewer)
  
    def createWizards(self):
      self.loadWizards(wizards)
Index: gnue/designer/src/reports/Instance.py
diff -c gnue/designer/src/reports/Instance.py:1.16 
gnue/designer/src/reports/Instance.py:1.17
*** gnue/designer/src/reports/Instance.py:1.16  Mon Feb 17 02:32:53 2003
--- gnue/designer/src/reports/Instance.py       Mon Jun  9 20:40:14 2003
***************
*** 128,147 ****
      pass
  
  
!   def createTools(self):
!     self.addTool('propertyEditor', _('Property Inspector'), PropertyEditor, 
'F10')
!     self.addTool('treeEditor',     _('Object Navigator'), TreeView, 'F8')
!     self.addTool('schemaViewer',   _('Schema Navigator'), SchemaViewer)
!     self.addToolSeparator()
!     self.addTool('datasourceEditor',_('Data Source Editor'), DataSourceEditor)
!     #self.addTool('groupEditor',   _('Group Editor'), GroupEditor, 'F5')
!     #self.addTool('fieldEditor',   _('Field Editor'), FieldEditor, 'F6')
!     self.addToolSeparator()
!     self.addTool('eventEditor',    _('Trigger Inspector'), EventEditor, 'F7')
!     self.addTool('triggerEditor',  _('Code Editor'), TriggerEditor, 'F12')
  
      # Add filter-specific tools
!     self.filter.addTools()
  
  
    def createWizards(self):
--- 128,147 ----
      pass
  
  
!   def createInspectors(self):
!     self.addInspector('propertyEditor', _('Property Inspector'), 
PropertyEditor, 'F10', 301)
!     self.addInspector('treeEditor',     _('Object Navigator'), TreeView, 
'F8', 301)
!     self.addInspector('schemaViewer',   _('Schema Navigator'), SchemaViewer, 
301)
! 
!     self.addInspector('datasourceEditor',_('Data Source Editor'), 
DataSourceEditor, 311)
!     #self.addInspectorol('groupEditor',   _('Group Editor'), GroupEditor, 
'F5', 311)
!     #self.addInspector('fieldEditor',   _('Field Editor'), FieldEditor, 'F6', 
311)
! 
!     self.addInspector('eventEditor',    _('Trigger Inspector'), EventEditor, 
'F7', 321)
!     self.addInspector('triggerEditor',  _('Code Editor'), TriggerEditor, 
'F12', 321)
  
      # Add filter-specific tools
!     self.filter.addInspectors()
  
  
    def createWizards(self):
Index: gnue/designer/src/reports/Standard/FilterSupport.py
diff -c gnue/designer/src/reports/Standard/FilterSupport.py:1.5 
gnue/designer/src/reports/Standard/FilterSupport.py:1.6
*** gnue/designer/src/reports/Standard/FilterSupport.py:1.5     Fri May 23 
20:02:32 2003
--- gnue/designer/src/reports/Standard/FilterSupport.py Mon Jun  9 20:40:14 2003
***************
*** 48,56 ****
      _BaseFilterSupport.initAsNew(self)
  
  
!   def addTools(self):
!     self.instance.addToolSeparator()
!     self.instance.addTool('groupEditor',   _('Group Editor'), GroupEditor, 
'F5')
  
  
    def onCreateObject(self, event):
--- 48,56 ----
      _BaseFilterSupport.initAsNew(self)
  
  
!   def addInspectors(self):
!     self.instance.addInspectorSeparator()
!     self.instance.addInspector('groupEditor',   _('Group Editor'), 
GroupEditor, 'F5')
  
  
    def onCreateObject(self, event):
Index: gnue/designer/src/schema/Instance.py
diff -c gnue/designer/src/schema/Instance.py:1.21 
gnue/designer/src/schema/Instance.py:1.22
*** gnue/designer/src/schema/Instance.py:1.21   Tue Mar 11 14:15:39 2003
--- gnue/designer/src/schema/Instance.py        Mon Jun  9 20:40:14 2003
***************
*** 80,91 ****
        table._fieldList.append(object)
        table._fieldMap[object.name.lower()] = object
  
!   def createTools(self):
!     self.addTool(_('treeEditor'), _('Object Navigator'), TreeView)
!     self.addTool(_('propertyEditor'), _('Property Inspector'), PropertyEditor)
!     self.addTool(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
!     self.addTool(_('tableEditor'), _('Table/Field Editor'), TableEditor)
!     self.addTool(_('visualEditor'), _('Visual Editor'), VisualEditor)
  
    def createWizards(self):
      self.loadWizards(wizards)
--- 80,91 ----
        table._fieldList.append(object)
        table._fieldMap[object.name.lower()] = object
  
!   def createInspectors(self):
!     self.addInspector(_('treeEditor'), _('Object Navigator'), TreeView)
!     self.addInspector(_('propertyEditor'), _('Property Inspector'), 
PropertyEditor)
!     self.addInspector(_('schemaViewer'), _('Schema Navigator'), SchemaViewer)
!     self.addInspector(_('tableEditor'), _('Table/Field Editor'), TableEditor)
!     self.addInspector(_('visualEditor'), _('Visual Editor'), VisualEditor)
  
    def createWizards(self):
      self.loadWizards(wizards)
Index: gnue/designer/src/schema/wizards/AddTable.py
diff -c gnue/designer/src/schema/wizards/AddTable.py:1.2 
gnue/designer/src/schema/wizards/AddTable.py:1.3
*** gnue/designer/src/schema/wizards/AddTable.py:1.2    Wed May 28 18:19:32 2003
--- gnue/designer/src/schema/wizards/AddTable.py        Mon Jun  9 20:40:14 2003
***************
*** 101,106 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Edit|Insert|Table'
  }
  
--- 101,106 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Insert', _('Table'))
  }
  
Index: gnue/designer/src/schema/wizards/WriteSchema.py
diff -c gnue/designer/src/schema/wizards/WriteSchema.py:1.5 
gnue/designer/src/schema/wizards/WriteSchema.py:1.6
*** gnue/designer/src/schema/wizards/WriteSchema.py:1.5 Wed May 28 18:19:32 2003
--- gnue/designer/src/schema/wizards/WriteSchema.py     Mon Jun  9 20:40:14 2003
***************
*** 122,127 ****
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'Location' : 'Extras|Write Schema to Database'
  }
  
--- 122,127 ----
      'Version' : VERSION,
      'Author' : 'The GNUe Designer Team',
      'Behavior': WIZARD,
!     'MenuLocation' : ('Extras',_('Write Schema to Database'))
  }
  




reply via email to

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