[z3-checkins] r13215 - in z3/zopejam/trunk/src/zopejam: . icons/menu

hathawsh at codespeak.net hathawsh at codespeak.net
Thu Jun 9 09:21:00 CEST 2005


Author: hathawsh
Date: Thu Jun  9 09:20:56 2005
New Revision: 13215

Added:
   z3/zopejam/trunk/src/zopejam/icons/menu/configure.png   (contents, props changed)
   z3/zopejam/trunk/src/zopejam/preferences.py
Modified:
   z3/zopejam/trunk/src/zopejam/main.py
   z3/zopejam/trunk/src/zopejam/resources.xrc
Log:
The current goal is to open a site.zcml in Zope Jam.  Progress:

- Added open project and new project dialogs

- Disabled most controls at startup, except the open project button, 
since most controls don't make sense until you have a project

- Experimented with a wizard, but I don't think I like it.  Left it in 
for a while.

- Tweaked window layout to work around splitter window annoyances 
(sometimes the sash refused to move; the workaround is to add a 1 pixel 
border at every sash edge.)

- Got the filter control to behave exactly how I want it to :-)



Added: z3/zopejam/trunk/src/zopejam/icons/menu/configure.png
==============================================================================
Binary file. No diff available.

Modified: z3/zopejam/trunk/src/zopejam/main.py
==============================================================================
--- z3/zopejam/trunk/src/zopejam/main.py	(original)
+++ z3/zopejam/trunk/src/zopejam/main.py	Thu Jun  9 09:20:56 2005
@@ -23,11 +23,12 @@
 
     _menuitem_names = [
         # File menu
-        'new', 'open', 'openproject',
+        'newfile', 'open', 'openproject',
         'save', 'saveas', 'saveacopy', 'saveall',
         'rename', 'close', 'quit',
         # Edit menu
         'undo', 'redo', 'cut', 'copy', 'paste', 'delete',
+        'projectproperties',
         # Tools menu
         'test', 'restart',
         # Help menu
@@ -35,7 +36,7 @@
         ]
 
     _tool_names = [
-        'new', 'open', 'openproject',
+        'newfile', 'open', 'openproject',
         'save', 'saveall', 'close',
         'undo', 'redo', 'cut', 'copy', 'paste',
         'test',
@@ -53,18 +54,80 @@
             self, xrc.XRCCTRL(self.frame, 'directive_list_panel'))
         self.frame.Fit()
 
+        # No project is open
+        self.commands.newfile.disable()
+        self.commands.open.disable()
+        self.commands.projectproperties.disable()
+        self.commands.test.disable()
+
+        # No files are open
+        self.commands.save.disable()
+        self.commands.saveas.disable()
+        self.commands.saveacopy.disable()
+        self.commands.saveall.disable()
+        self.commands.rename.disable()
+        self.commands.close.disable()
+
+        # No undo history exists
+        self.commands.undo.disable()
+        self.commands.redo.disable()
+
+        # Nothing is selected
+        self.commands.cut.disable()
+        self.commands.copy.disable()
+        self.commands.delete.disable()
+
+        # The clipboard is empty
+        self.commands.paste.disable()
+
+
     def cmd_default(self, event, name):
         wx.MessageDialog(
             self.frame, "Command not yet implemented: %s" % name, "Oops",
             wx.OK | wx.CENTRE).ShowModal()
 
+    def cmd_open(self, event):
+        dlg = wx.FileDialog(
+            self.frame, wildcard="ZCML Files (*.zcml)|*.zcml",
+            style=wx.OPEN | wx.FILE_MUST_EXIST)
+        if dlg.ShowModal() == wx.ID_OK:
+            fn = dlg.GetPath()
+            print fn
+
+    def cmd_openproject(self, event):
+        # presumably no projects have ever been opened yet. ;-)
+        dlg = self.resources.LoadDialog(self.frame, 'newproject_dialog')
+        root_zcml = xrc.XRCCTRL(dlg, 'root_zcml')
+        browse = xrc.XRCCTRL(dlg, 'browse')
+        ok = xrc.XRCCTRL(dlg, 'ok')
+        cancel = xrc.XRCCTRL(dlg, 'cancel')
+
+        def do_browse(event2):
+            d = wx.FileDialog(
+                dlg, wildcard="ZCML Files (*.zcml)|*.zcml",
+                style=wx.OPEN | wx.FILE_MUST_EXIST)
+            if d.ShowModal() == wx.ID_OK:
+                root_zcml.SetValue(d.GetPath())
+
+        def changed_text(event3):
+            ok.Enable(bool(root_zcml.GetValue()))
+
+        root_zcml.Bind(wx.EVT_TEXT, changed_text)
+        browse.Bind(wx.EVT_BUTTON, do_browse)
+        ok.Disable()
+        ok.Bind(wx.EVT_BUTTON, lambda event: dlg.EndModal(wx.ID_OK))
+        cancel.Bind(wx.EVT_BUTTON, lambda event: dlg.EndModal(wx.ID_CANCEL))
+
+        if dlg.ShowModal() == wx.ID_OK:
+            print 'now opening project', root_zcml.GetValue()
+
     def cmd_quit(self, event):
         self.frame.Close()
 
     def cmd_about(self, event):
-        win = self.resources.LoadDialog(self.frame, 'about_dialog')
+        dlg = self.resources.LoadDialog(self.frame, 'about_dialog')
 
-        t = xrc.XRCCTRL(win, 'versiontext')
+        t = xrc.XRCCTRL(dlg, 'versiontext')
         s = t.GetLabel()
         s = s.replace('{zopejam.version}', VERSION)
         py_ver = '%d.%d.%d %s' % sys.version_info[:4]
@@ -75,19 +138,19 @@
         s = s.replace('{os.description}', wx.GetOsDescription())
         t.SetLabel(s)
 
-        b = xrc.XRCCTRL(win, 'close')
-        b.Bind(wx.EVT_BUTTON, lambda event: win.Close())
+        b = xrc.XRCCTRL(dlg, 'close')
+        b.Bind(wx.EVT_BUTTON, lambda event: dlg.Close())
 
         for name in ('homelink', 'zopelink'):
-            c = xrc.XRCCTRL(win, name)
+            c = xrc.XRCCTRL(dlg, name)
             c.GetParent().SetCursor(wx.StockCursor(wx.CURSOR_HAND))
             def browse(event, url=c.GetLabel()):
                 open_browser_thread(url)
-                win.Close()
+                dlg.Close()
             c.Bind(wx.EVT_LEFT_UP, browse)
 
-        win.Fit()
-        win.ShowModal()
+        dlg.Fit()
+        dlg.ShowModal()
 
     def cmd_restart(self, event):
         global restarting
@@ -101,15 +164,7 @@
         self.gui = gui
         self.panel = panel
 
-        self.filter_expr = xrc.XRCCTRL(panel, 'filter_expr')
-        self.filter_clear = xrc.XRCCTRL(panel, 'filter_clear')
-        self.filter_clear.Bind(wx.EVT_LEFT_DOWN, self.onClearFilter)
-        parent = self.filter_expr.GetParent()
-        self.has_filter = False
-        self.suppress_filter_event = False
-        self.filter_expr.Bind(wx.EVT_SET_FOCUS, self.onFocusFilter)
-        self.filter_expr.Bind(wx.EVT_KILL_FOCUS, self.onBlurFilter)
-        self.filter_expr.Bind(wx.EVT_TEXT, self.onChangeFilter)
+        self.filter = Filter(gui, xrc.XRCCTRL(panel, 'filter_panel'))
 
         self.listctrl = xrc.XRCCTRL(panel, 'dir_list')
         images = wx.ImageList(16, 16)
@@ -125,37 +180,59 @@
         self.listctrl.InsertColumn(2, 'Name')
         self.listctrl.InsertStringItem(0, 'test')
 
-    def onFocusFilter(self, event):
-        if not self.has_filter:
-            self.suppress_filter_event = True
+
+class Filter:
+    """The panel for controlling filtering"""
+
+    def __init__(self, gui, panel):
+        self.gui = gui
+        self.panel = panel
+
+        self.expr = xrc.XRCCTRL(panel, 'filter_expr')
+        self.clear = xrc.XRCCTRL(panel, 'filter_clear')
+        self.clear.Bind(wx.EVT_LEFT_DOWN, self.onClear)
+        parent = self.expr.GetParent()
+        self.has_expr = False
+        self.suppress_event = False
+        self.expr.Bind(wx.EVT_SET_FOCUS, self.onFocus)
+        self.expr.Bind(wx.EVT_KILL_FOCUS, self.onBlur)
+        self.expr.Bind(wx.EVT_TEXT, self.onChange)
+
+    def onFocus(self, event):
+        if not self.has_expr:
+            self.suppress_event = True
             try:
-                self.filter_expr.SetValue('')
+                self.expr.SetValue('')
             finally:
-                self.suppress_filter_event = False
+                self.suppress_event = False
 
-    def onBlurFilter(self, event):
-        if not self.has_filter:
-            self.suppress_filter_event = True
+    def onBlur(self, event):
+        if not self.has_expr:
+            self.suppress_event = True
             try:
-                self.filter_expr.SetValue('Entire Directive')
+                self.expr.SetValue('Entire Directive')
             finally:
-                self.suppress_filter_event = False
+                self.suppress_event = False
 
-    def onClearFilter(self, event):
-        self.has_filter = False
-        self.filter_clear.Enable(False)
-        self.suppress_filter_event = True
+    def onClear(self, event):
+        self.has_expr = False
+        self.clear.Hide()
+        self.panel.Layout()
+        self.suppress_event = True
         try:
-            self.filter_expr.SetValue('')
+            self.expr.SetValue('')
         finally:
-            self.suppress_filter_event = False
-        self.filter_expr.SetFocus()
+            self.suppress_event = False
+        self.expr.SetFocus()
 
-    def onChangeFilter(self, event):
-        if self.suppress_filter_event:
+    def onChange(self, event):
+        if self.suppress_event:
             return
-        self.has_filter = bool(self.filter_expr.GetValue())
-        self.filter_clear.Enable(self.has_filter)
+        had = self.has_expr
+        self.has_expr = bool(self.expr.GetValue())
+        if had != self.has_expr:
+            self.clear.Show(self.has_expr)
+            self.panel.Layout()
 
 
 class Command:
@@ -165,9 +242,15 @@
         self.menuitems = []
         self.tools = []
 
+    def disable(self):
+        self.enable(False)
+
     def enable(self, enable=True):
-        for c in self.menuitems + self.tools:
+        for c in self.menuitems:
             c.Enable(enable)
+        for c in self.tools:
+            toolbar = c.GetToolBar()
+            toolbar.EnableTool(c.GetId(), enable)
 
     def bind(self, callback):
         for c in self.menuitems:

Added: z3/zopejam/trunk/src/zopejam/preferences.py
==============================================================================
--- (empty file)
+++ z3/zopejam/trunk/src/zopejam/preferences.py	Thu Jun  9 09:20:56 2005
@@ -0,0 +1,24 @@
+
+# (c) 2005 Shane Hathaway
+# License: ZPL 2.1
+
+"""Preference file management"""
+
+import os
+
+
+class Preferences:
+
+    def __init__(self):
+        self.fn = os.path.join(os.environ["HOME"], ".zopejamrc")
+        
+
+
+class Project:
+
+    def __init__(self, root_zcml, pythonpath):
+        self.root_zcml = root_zcml  # '/path/to/site.zcml'
+        self.pythonpath = pythonpath
+        self.open_files = []
+
+

Modified: z3/zopejam/trunk/src/zopejam/resources.xrc
==============================================================================
--- z3/zopejam/trunk/src/zopejam/resources.xrc	(original)
+++ z3/zopejam/trunk/src/zopejam/resources.xrc	Thu Jun  9 09:20:56 2005
@@ -3,24 +3,21 @@
   <object class="wxMenuBar" name="jam_menubar">
     <object class="wxMenu" name="filemenu">
       <label>&amp;File</label>
-      <object class="wxMenuItem" name="new">
+      <object class="wxMenuItem" name="newfile">
         <label>&amp;New...</label>
         <bitmap>icons/menu/filenew.png</bitmap>
         <accel>Ctrl+N</accel>
       </object>
-      <object class="separator"/>
       <object class="wxMenuItem" name="open">
         <label>&amp;Open...</label>
         <bitmap>icons/menu/fileopen.png</bitmap>
         <accel>Ctrl+O</accel>
       </object>
+      <object class="separator"/>
       <object class="wxMenuItem" name="openproject">
-        <label>Open Project...</label>
+        <label>Open &amp;Project...</label>
         <bitmap>icons/menu/project_open.png</bitmap>
-      </object>
-      <object class="wxMenu" name="openrecent">
-        <label>Open &amp;recent</label>
-      </object>
+        </object>
       <object class="separator"/>
       <object class="wxMenuItem" name="save">
         <label>&amp;Save</label>
@@ -87,6 +84,11 @@
         <bitmap>icons/menu/editdelete.png</bitmap>
         <accel>Ctrl+D</accel>
       </object>
+      <object class="separator"/>
+      <object class="wxMenuItem" name="projectproperties">
+        <label>&amp;Project properties...</label>
+        <bitmap>icons/menu/configure.png</bitmap>
+      </object>
     </object>
     <object class="wxMenu" name="addmenu">
       <label>&amp;Add</label>
@@ -119,7 +121,7 @@
   <object class="wxFrame" name="jam_frame">
     <title>Zope Jam</title>
     <object class="wxToolBar">
-      <object class="tool" name="new">
+      <object class="tool" name="newfile">
         <bitmap>icons/toolbar/filenew.png</bitmap>
         <tooltip>Create a new configuration file</tooltip>
         <label>New</label>
@@ -129,10 +131,11 @@
         <tooltip>Open a configuration file</tooltip>
         <label>Open</label>
       </object>
+      <object class="separator"/>
       <object class="tool" name="openproject">
         <bitmap>icons/toolbar/project_open.png</bitmap>
         <tooltip>Open a project</tooltip>
-        <label>Open Project</label>
+        <label>Project</label>
       </object>
       <object class="separator"/>
       <object class="tool" name="save">
@@ -186,186 +189,249 @@
     <object class="wxFlexGridSizer">
       <object class="sizeritem">
         <object class="wxSplitterWindow" name="frame_split">
-          <object class="wxNotebook" name="side_notebook">
-            <object class="notebookpage">
-              <label>Palette</label>
-              <object class="wxSplitterWindow" name="palette_split">
-                <orientation>horizontal</orientation>
-                <object class="wxListCtrl" name="palette">
-                  <style>wxLC_ICON</style>
+          <object class="wxPanel">
+            <object class="wxFlexGridSizer">
+              <cols>1</cols>
+              <object class="sizeritem">
+                <object class="wxNotebook" name="side_notebook">
+                  <object class="notebookpage">
+                    <label>Palette</label>
+                    <object class="wxPanel">
+                      <object class="wxFlexGridSizer">
+                        <cols>1</cols>
+                        <growablerows>0</growablerows>
+                        <growablecols>0</growablecols>
+                        <object class="sizeritem">
+                          <object class="wxSplitterWindow" name="palette_split">
+                            <orientation>horizontal</orientation>
+                            <object class="wxListCtrl" name="palette">
+                              <style>wxLC_ICON</style>
                 </object>
-                <object class="wxListCtrl" name="palette_list">
-                  <style>wxLC_ICON</style>
+                            <object class="wxListCtrl" name="palette_list">
+                              <style>wxLC_ICON</style>
+                </object>
+                          </object>
+                          <flag>wxEXPAND</flag>
+                        </object>
+                      </object>
+                      <style>wxSUNKEN_BORDER</style>
+                    </object>
+                  </object>
+                  <object class="notebookpage">
+                    <label>Includes</label>
+                    <object class="wxTreeCtrl" name="include_tree">
+                      <style>wxSUNKEN_BORDER</style>
+                    </object>
+                  </object>
+                  <object class="notebookpage">
+                    <label>Packages</label>
+                    <object class="wxTreeCtrl" name="file_tree">
+                      <style>wxSUNKEN_BORDER</style>
+                    </object>
+                  </object>
                 </object>
+                <flag>wxRIGHT|wxEXPAND</flag>
+                <border>1</border>
               </object>
-            </object>
-            <object class="notebookpage">
-              <label>Files</label>
-              <object class="wxTreeCtrl" name="file_tree"/>
+              <growablerows>0</growablerows>
+              <growablecols>0</growablecols>
             </object>
           </object>
-          <object class="wxSplitterWindow" name="main_split">
-            <orientation>horizontal</orientation>
-            <object class="wxNotebook" name="files_notebook">
-              <object class="notebookpage">
-                <label>All Directives</label>
-                <object class="wxPanel" name="directive_list_panel">
-                  <object class="wxFlexGridSizer">
-                    <object class="sizeritem">
-                      <object class="wxFlexGridSizer">
-                        <cols>2</cols>
-                        <rows>2</rows>
-                        <object class="sizeritem">
-                          <object class="wxStaticText">
-                            <label>Filter:</label>
+          <object class="wxPanel">
+            <object class="wxFlexGridSizer">
+              <cols>1</cols>
+              <object class="sizeritem">
+                <object class="wxSplitterWindow" name="main_split">
+                  <orientation>horizontal</orientation>
+                  <object class="wxPanel">
+                    <object class="wxFlexGridSizer">
+                      <cols>1</cols>
+                      <growablerows>0</growablerows>
+                      <growablecols>0</growablecols>
+                      <object class="sizeritem">
+                        <object class="wxNotebook" name="files_notebook">
+                          <object class="notebookpage">
+                            <label>All Directives</label>
+                            <object class="wxPanel" name="directive_list_panel">
+                              <object class="wxFlexGridSizer">
+                                <object class="sizeritem">
+                                  <object class="wxFlexGridSizer">
+                                    <cols>2</cols>
+                                    <rows>2</rows>
+                                    <object class="sizeritem">
+                                      <object class="wxStaticText">
+                                        <label>Filter:</label>
                           </object>
-                          <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
-                          <border>4</border>
+                                      <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
+                                      <border>4</border>
                         </object>
-                        <object class="sizeritem">
-                          <object class="wxPanel">
-                            <object class="wxFlexGridSizer">
-                              <cols>3</cols>
-                              <object class="sizeritem">
-                                <object class="wxStaticBitmap" name="filter_type">
-                                  <style>wxNO_BORDER</style>
-                                  <bitmap>icons/other/find.png</bitmap>
+                                    <object class="sizeritem">
+                                      <object class="wxPanel" name="filter_panel">
+                                        <object class="wxFlexGridSizer">
+                                          <cols>3</cols>
+                                          <object class="sizeritem">
+                                            <object class="wxStaticBitmap" name="filter_type">
+                                              <bitmap>icons/other/find.png</bitmap>
                                 </object>
-                                <flag>wxALL|wxALIGN_CENTRE</flag>
-                                <border>2</border>
+                                            <flag>wxALL|wxALIGN_CENTRE</flag>
+                                            <border>2</border>
                               </object>
-                              <object class="sizeritem">
-                                <object class="wxTextCtrl" name="filter_expr">
-                                  <value>Entire Directive</value>
-                                  <style>wxTE_PROCESS_ENTER|wxNO_BORDER</style>
+                                          <object class="sizeritem">
+                                            <object class="wxTextCtrl" name="filter_expr">
+                                              <value>Entire Directive</value>
+                                              <style>wxTE_PROCESS_ENTER|wxNO_BORDER</style>
                                 </object>
-                                <flag>wxEXPAND</flag>
-                                <minsize>200, 1</minsize>
+                                            <flag>wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag>
                               </object>
-                              <object class="sizeritem">
-                                <object class="wxStaticBitmap" name="filter_clear">
-                                  <bitmap>icons/other/cancel.png</bitmap>
-                                  <style>wxNO_BORDER</style>
-                                  <enabled>0</enabled>
+                                          <object class="sizeritem">
+                                            <object class="wxStaticBitmap" name="filter_clear">
+                                              <bitmap>icons/other/clear_left.png</bitmap>
+                                              <hidden>1</hidden>
                                 </object>
-                                <flag>wxALL|wxALIGN_CENTRE</flag>
-                                <border>2</border>
+                                            <flag>wxALL|wxALIGN_CENTRE</flag>
+                                            <border>2</border>
                               </object>
-                            </object>
-                            <style>wxSUNKEN_BORDER</style>
-                            <bg>#FFFFFF</bg>
-                          </object>
-                          <flag>wxBOTTOM|wxRIGHT</flag>
-                          <border>1</border>
+                                          <growablecols>1</growablecols>
+                                          <growablerows>0</growablerows>
+                                        </object>
+                                        <style>wxSUNKEN_BORDER</style>
+                                        <bg>#FFFFFF</bg>
+                                      </object>
+                                      <flag>wxBOTTOM|wxRIGHT|wxEXPAND</flag>
+                                      <border>1</border>
+                                      <minsize>250, 22</minsize>
                         </object>
-                      </object>
-                      <flag>wxALIGN_RIGHT</flag>
+                                  </object>
+                                  <flag>wxALIGN_RIGHT</flag>
                     </object>
-                    <cols>1</cols>
-                    <growablerows>1</growablerows>
-                    <growablecols>0</growablecols>
-                    <object class="sizeritem">
-                      <object class="wxPanel">
-                        <object class="wxFlexGridSizer">
-                          <cols>2</cols>
-                          <object class="sizeritem">
-                            <object class="wxBitmapButton" name="select_columns_button">
-                              <bitmap>icons/other/configure_toolbars.png</bitmap>
+                                <cols>1</cols>
+                                <growablerows>1</growablerows>
+                                <growablecols>0</growablecols>
+                                <object class="sizeritem">
+                                  <object class="wxPanel">
+                                    <object class="wxFlexGridSizer">
+                                      <cols>2</cols>
+                                      <object class="sizeritem">
+                                        <object class="wxBitmapButton" name="select_columns_button">
+                                          <bitmap>icons/other/configure_toolbars.png</bitmap>
                           </object>
                         </object>
-                          <object class="sizeritem">
-                            <object class="wxListCtrl" name="dir_list">
-                              <style>wxLC_REPORT</style>
-                              <bg>#FFFFFF</bg>
+                                      <object class="sizeritem">
+                                        <object class="wxListCtrl" name="dir_list">
+                                          <style>wxLC_REPORT</style>
+                                          <bg>#FFFFFF</bg>
                             </object>
-                            <flag>wxEXPAND</flag>
+                                        <flag>wxEXPAND</flag>
                 </object>
-                          <growablerows>0</growablerows>
-                          <growablecols>1</growablecols>
+                                      <growablerows>0</growablerows>
+                                      <growablecols>1</growablecols>
+                                    </object>
+                                    <style>wxSUNKEN_BORDER</style>
+                                    <bg>#FFFFFF</bg>
+                                  </object>
+                                  <flag>wxEXPAND</flag>
+                    </object>
+                              </object>
+                            </object>
+              </object>
                         </object>
-                        <style>wxSUNKEN_BORDER</style>
-                        <bg>#FFFFFF</bg>
+                        <flag>wxBOTTOM|wxEXPAND</flag>
+                        <border>1</border>
                       </object>
-                      <flag>wxEXPAND</flag>
                     </object>
                   </object>
-                </object>
-              </object>
-            </object>
-            <object class="wxNotebook" name="directive_notebook">
-              <object class="notebookpage">
-                <label>Properties</label>
-                <object class="wxScrolledWindow" name="properties_tab">
-                  <object class="wxPanel" name="properties_panel">
-                    <object class="wxBoxSizer">
-                      <orient>wxVERTICAL</orient>
+                  <object class="wxPanel">
+                    <object class="wxFlexGridSizer">
+                      <cols>1</cols>
+                      <growablerows>0</growablerows>
+                      <growablecols>0</growablecols>
                       <object class="sizeritem">
-                        <object class="wxFlexGridSizer">
-                          <cols>4</cols>
-                          <vgap>8</vgap>
-                          <object class="sizeritem">
-                            <object class="wxStaticText">
-                              <label>Name</label>
+                        <object class="wxNotebook" name="directive_notebook">
+                          <object class="notebookpage">
+                            <label>Properties</label>
+                            <object class="wxScrolledWindow" name="properties_tab">
+                              <object class="wxPanel" name="properties_panel">
+                                <object class="wxBoxSizer">
+                                  <orient>wxVERTICAL</orient>
+                                  <object class="sizeritem">
+                                    <object class="wxFlexGridSizer">
+                                      <cols>4</cols>
+                                      <vgap>8</vgap>
+                                      <object class="sizeritem">
+                                        <object class="wxStaticText">
+                                          <label>Name</label>
                                   </object>
-                            <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
-                            <border>8</border>
+                                        <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag>
+                                        <border>8</border>
                                 </object>
-                          <object class="sizeritem">
-                            <object class="wxTextCtrl">
-                              <value>Foo</value>
+                                      <object class="sizeritem">
+                                        <object class="wxTextCtrl">
+                                          <value>Foo</value>
                                   </object>
-                            <flag>wxEXPAND|wxALIGN_CENTRE</flag>
+                                        <flag>wxEXPAND|wxALIGN_CENTRE</flag>
                                 </object>
-                          <object class="sizeritem">
-                            <object class="wxBitmapButton">
-                              <bitmap>icons/other/clear_left.png</bitmap>
-                              <style>wxNO_BORDER</style>
+                                      <object class="sizeritem">
+                                        <object class="wxBitmapButton">
+                                          <bitmap>icons/other/clear_left.png</bitmap>
+                                          <style>wxNO_BORDER</style>
                                   </object>
-                            <flag>wxALIGN_CENTRE_VERTICAL</flag>
+                                        <flag>wxALIGN_CENTRE_VERTICAL</flag>
                                 </object>
-                          <object class="sizeritem">
-                            <object class="wxBitmapButton">
-                              <bitmap>icons/other/help.png</bitmap>
-                              <style>wxNO_BORDER</style>
+                                      <object class="sizeritem">
+                                        <object class="wxBitmapButton">
+                                          <bitmap>icons/other/help.png</bitmap>
+                                          <style>wxNO_BORDER</style>
                                   </object>
-                            <flag>wxALIGN_CENTRE_VERTICAL</flag>
+                                        <flag>wxALIGN_CENTRE_VERTICAL</flag>
                                 </object>
-                          <growablecols>1</growablecols>
-                        </object>
-                        <flag>wxALL|wxEXPAND</flag>
-                        <border>8</border>
+                                      <growablecols>1</growablecols>
+                                    </object>
+                                    <flag>wxALL|wxEXPAND</flag>
+                                    <border>8</border>
                             </object>
+                                </object>
+                              </object>
+                            </object>
+                            <selected>1</selected>
                     </object>
-                  </object>
-                </object>
-                <selected>1</selected>
-                    </object>
-              <style></style>
-              <object class="notebookpage">
-                <label>Source</label>
-                <object class="wxHtmlWindow" name="source_tab">
-                  <htmlcode>&lt;a href=&quot;#&quot;&gt;/home/shane/src/zope/app/bigpackage/littlepackage/configure.zcml&lt;/a&gt;&lt;br /&gt;
+                          <style></style>
+                          <object class="notebookpage">
+                            <label>Source</label>
+                            <object class="wxHtmlWindow" name="source_tab">
+                              <htmlcode>&lt;a href=&quot;#&quot;&gt;/home/shane/src/zope/app/bigpackage/littlepackage/configure.zcml&lt;/a&gt;&lt;br /&gt;
 line &lt;a href=&quot;#&quot;&gt;105&lt;/a&gt;&lt;br /&gt;
 &amp;lt;browser:page x=&quot;y&quot;&amp;gt;
 </htmlcode>
                       </object>
                     </object>
-              <object class="notebookpage">
-                <label>Adapters</label>
-                <object class="wxPanel" name="adapters_tab"/>
-                    </object>
-              <object class="notebookpage">
-                <label>Views</label>
-                <object class="wxPanel" name="views_tab"/>
-                    </object>
-              <object class="notebookpage">
-                <label>Code</label>
-                <object class="wxHtmlWindow" name="code_tab"/>
+                          <object class="notebookpage">
+                            <label>Adapters</label>
+                            <object class="wxPanel" name="adapters_tab"/>
+                    </object>
+                          <object class="notebookpage">
+                            <label>Views</label>
+                            <object class="wxPanel" name="views_tab"/>
+                    </object>
+                          <object class="notebookpage">
+                            <label>Code</label>
+                            <object class="wxHtmlWindow" name="code_tab"/>
+                    </object>
+                        </object>
+                        <flag>wxTOP|wxEXPAND</flag>
+                        <border>1</border>
+                      </object>
                     </object>
+                  </object>
+                </object>
+                <flag>wxLEFT|wxEXPAND</flag>
+                <border>1</border>
+              </object>
+              <growablerows>0</growablerows>
+              <growablecols>0</growablecols>
             </object>
           </object>
           <orientation>vertical</orientation>
-          <sashpos>200</sashpos>
+          <sashpos>250</sashpos>
           <style></style>
         </object>
         <flag>wxEXPAND</flag>
@@ -463,4 +529,279 @@
     <centered>1</centered>
     <bg>#FFFFFF</bg>
   </object>
+  <object class="wxDialog" name="openproject_dialog">
+    <title>Open Project</title>
+    <centered>1</centered>
+    <object class="wxFlexGridSizer">
+      <object class="sizeritem">
+        <object class="wxListCtrl" name="projects">
+          <style>wxLC_REPORT|wxSUNKEN_BORDER</style>
+        </object>
+        <flag>wxALL|wxEXPAND</flag>
+        <border>4</border>
+        <minsize>500, 200</minsize>
+      </object>
+      <object class="sizeritem">
+        <object class="wxFlexGridSizer">
+          <object class="sizeritem">
+            <object class="wxButton" name="open">
+              <label>&amp;Open</label>
+              <default>1</default>
+              <enabled>0</enabled>
+            </object>
+          </object>
+          <object class="sizeritem">
+            <object class="wxButton" name="new">
+              <label>&amp;New...</label>
+              <default>1</default>
+            </object>
+          </object>
+          <object class="sizeritem">
+            <object class="wxButton" name="cancel">
+              <label>&amp;Cancel</label>
+            </object>
+          </object>
+          <cols>3</cols>
+          <hgap>4</hgap>
+        </object>
+        <flag>wxALL|wxALIGN_CENTRE</flag>
+        <border>4</border>
+      </object>
+      <cols>1</cols>
+      <growablecols>0</growablecols>
+      <growablerows>0</growablerows>
+    </object>
+  </object>
+  <object class="wxWizard" name="newproject_wizard">
+    <title>New Project</title>
+    <object class="wxWizardPageSimple">
+      <object class="wxBoxSizer">
+        <orient>wxVERTICAL</orient>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>New Project</label>
+            <font>
+              <size>20</size>
+              <style>default</style>
+              <weight>normal</weight>
+              <family>normal</family>
+              <underlined>False</underlined>
+              <face>Sans</face>
+            </font>
+          </object>
+          <flag>wxTOP|wxBOTTOM</flag>
+          <border>8</border>
+        </object>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>Use this wizard to create a new
+project.  A project helps you manage
+all of the configuration files loaded
+by Zope.  You should have a different
+project for each Zope instance.
+</label>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object class="wxWizardPageSimple">
+      <object class="wxBoxSizer">
+        <orient>wxVERTICAL</orient>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>Root ZCML File</label>
+            <font>
+              <size>20</size>
+              <style>default</style>
+              <weight>normal</weight>
+              <family>normal</family>
+              <underlined>False</underlined>
+              <face>Sans</face>
+            </font>
+          </object>
+          <flag>wxTOP|wxBOTTOM</flag>
+          <border>8</border>
+        </object>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>Select the root ZCML file for this
+project.  The root ZCML file is usually
+called &quot;site.zcml&quot; and is located at
+the base of your Zope 3 installation.</label>
+          </object>
+        </object>
+        <object class="spacer">
+          <size>16,16</size>
+        </object>
+        <object class="sizeritem">
+          <object class="wxFlexGridSizer">
+            <cols>2</cols>
+            <object class="sizeritem">
+              <object class="wxStaticText">
+                <label>Root ZCML</label>
+              </object>
+              <flag>wxALIGN_CENTRE_VERTICAL</flag>
+            </object>
+            <vgap>4</vgap>
+            <hgap>4</hgap>
+            <growablecols>1</growablecols>
+            <object class="sizeritem">
+              <object class="wxTextCtrl"/>
+              <flag>wxEXPAND</flag>
+            </object>
+            <object class="spacer">
+              <size>0,0</size>
+            </object>
+            <object class="sizeritem">
+              <object class="wxButton">
+                <label>Browse...</label>
+              </object>
+            </object>
+          </object>
+          <flag>wxTOP|wxBOTTOM|wxEXPAND</flag>
+        </object>
+      </object>
+    </object>
+    <bitmap>icons/other/zopejam.png</bitmap>
+    <object class="wxWizardPageSimple">
+      <object class="wxBoxSizer">
+        <orient>wxVERTICAL</orient>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>Python Path</label>
+            <font>
+              <size>20</size>
+              <style>default</style>
+              <weight>normal</weight>
+              <family>normal</family>
+              <underlined>False</underlined>
+              <face>Sans</face>
+            </font>
+          </object>
+          <flag>wxTOP|wxBOTTOM</flag>
+          <border>8</border>
+        </object>
+        <object class="sizeritem">
+          <object class="wxStaticText">
+            <label>Set the paths to search for Python
+packages.  The list will be
+searched in order.
+</label>
+          </object>
+        </object>
+        <object class="sizeritem">
+          <object class="wxFlexGridSizer">
+            <cols>2</cols>
+            <object class="sizeritem">
+              <object class="wxListCtrl">
+                <style>wxLC_LIST|wxSUNKEN_BORDER</style>
+              </object>
+              <flag>wxALL|wxEXPAND</flag>
+              <border>4</border>
+            </object>
+            <object class="sizeritem">
+              <object class="wxFlexGridSizer">
+                <cols>1</cols>
+                <vgap>4</vgap>
+                <object class="sizeritem">
+                  <object class="wxButton">
+                    <label>^</label>
+                  </object>
+                </object>
+                <object class="sizeritem">
+                  <object class="wxButton">
+                    <label>v</label>
+                  </object>
+                </object>
+              </object>
+              <flag>wxALL|wxALIGN_CENTRE</flag>
+              <border>4</border>
+            </object>
+            <growablerows>0</growablerows>
+            <growablecols>0</growablecols>
+            <object class="sizeritem">
+              <object class="wxFlexGridSizer">
+                <cols>2</cols>
+                <hgap>4</hgap>
+                <object class="sizeritem">
+                  <object class="wxButton">
+                    <label>Add...</label>
+                  </object>
+                </object>
+                <object class="sizeritem">
+                  <object class="wxButton">
+                    <label>Remove</label>
+                  </object>
+                </object>
+              </object>
+              <flag>wxALIGN_CENTRE</flag>
+            </object>
+          </object>
+          <flag>wxEXPAND</flag>
+        </object>
+      </object>
+    </object>
+  </object>
+  <object class="wxDialog" name="newproject_dialog">
+    <title>New Project</title>
+    <centered>1</centered>
+    <object class="wxFlexGridSizer">
+      <object class="sizeritem">
+        <object class="wxStaticText">
+          <label>A project manages all of the configuration files for a Zope instance.
+Select the root configuration file of the Zope instance you want to
+manage.  The root configuration file is usually called &quot;site.zcml&quot;.</label>
+        </object>
+        <flag>wxALL|wxALIGN_CENTRE</flag>
+        <border>12</border>
+      </object>
+      <object class="sizeritem">
+        <object class="wxFlexGridSizer">
+          <cols>3</cols>
+          <object class="sizeritem">
+            <object class="wxStaticText">
+              <label>Root ZCML</label>
+            </object>
+            <flag>wxALIGN_CENTRE_VERTICAL</flag>
+          </object>
+          <hgap>4</hgap>
+          <growablecols>1</growablecols>
+          <object class="sizeritem">
+            <object class="wxTextCtrl" name="root_zcml"/>
+            <flag>wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag>
+          </object>
+          <object class="sizeritem">
+            <object class="wxButton" name="browse">
+              <label>Browse...</label>
+            </object>
+            <flag>wxALIGN_CENTRE_VERTICAL</flag>
+          </object>
+        </object>
+        <flag>wxALL|wxEXPAND|wxALIGN_CENTRE_VERTICAL</flag>
+        <border>8</border>
+      </object>
+      <cols>1</cols>
+      <growablecols>0</growablecols>
+      <object class="sizeritem">
+        <object class="wxFlexGridSizer">
+          <cols>2</cols>
+          <hgap>4</hgap>
+          <object class="sizeritem">
+            <object class="wxButton" name="ok">
+              <label>&amp;Ok</label>
+              <default>1</default>
+            </object>
+          </object>
+          <object class="sizeritem">
+            <object class="wxButton" name="cancel">
+              <label>&amp;Cancel</label>
+            </object>
+          </object>
+        </object>
+        <flag>wxALL|wxALIGN_CENTRE</flag>
+        <border>8</border>
+      </object>
+      <growablerows>1</growablerows>
+    </object>
+  </object>
 </resource>


More information about the z3-checkins mailing list