commit-gnue
[Top][All Lists]
Advanced

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

[gnue] r9344 - in trunk/gnue-forms: defaults samples/function src src/GF


From: reinhard
Subject: [gnue] r9344 - in trunk/gnue-forms: defaults samples/function src src/GFObjects src/uidrivers/wx26/widgets
Date: Wed, 31 Jan 2007 01:50:02 -0600 (CST)

Author: reinhard
Date: 2007-01-31 01:50:00 -0600 (Wed, 31 Jan 2007)
New Revision: 9344

Added:
   trunk/gnue-forms/samples/function/menu.gfd
Modified:
   trunk/gnue-forms/defaults/default.gfd
   trunk/gnue-forms/src/GFForm.py
   trunk/gnue-forms/src/GFObjects/commanders.py
   trunk/gnue-forms/src/uidrivers/wx26/widgets/menuitem.py
Log:
More work on dynamic menus.

issue79 testing


Modified: trunk/gnue-forms/defaults/default.gfd
===================================================================
--- trunk/gnue-forms/defaults/default.gfd       2007-01-30 18:01:50 UTC (rev 
9343)
+++ trunk/gnue-forms/defaults/default.gfd       2007-01-31 07:50:00 UTC (rev 
9344)
@@ -31,27 +31,28 @@
   </action>
 
   <!-- Record navigation -->
-  <action name="act__first_record__" label="First Record">
+  <action name="act__first_record__" icon="firstrecord" label="First Record">
     form.first_record()
   </action>
-  <action name="act__prev_record__" label="Previous Record">
+  <action name="act__prev_record__" icon="prevrecord" label="Previous Record">
     form.prev_record()
   </action>
-  <action name="act__next_record__" label="Next Record">
+  <action name="act__next_record__" icon="nextrecord" label="Next Record">
     form.next_record()
   </action>
-  <action name="act__last_record__" label="Last Record">
+  <action name="act__last_record__" icon="lastrecord" label="Last Record">
     form.last_record()
   </action>
-  <action name="act__ask_record__" label="Jump to Record">
+  <action name="act__ask_record__" icon="jumpprompt" label="Jump to Record">
     form.ask_record()
   </action>
 
   <!-- Record insertion and deletion -->
-  <action name="act__new_record__" label="New Record">
+  <action name="act__new_record__" icon="newrecord" label="New Record">
     form.new_record()
   </action>
-  <action name="act__delete_record__" label="Delete Record">
+  <action name="act__delete_record__" icon="markfordelete"
+    label="Delete Record">
     form.delete_record()
   </action>
   <action name="act__undelete_record__" label="Undelete Record">
@@ -59,7 +60,7 @@
   </action>
 
   <!-- Queries -->
-  <action name="act__init_query__" label="Enter Query Mode">
+  <action name="act__init_query__" icon="enterquery" label="Enter Query Mode">
     form.init_query()
   </action>
   <action name="act__copy_query__" label="Repeat Last Query">
@@ -68,15 +69,15 @@
   <action name="act__cancel_query__" label="Cancel Query Mode">
     form.cancel_query()
   </action>
-  <action name="act__execute_query__" label="Perform Query">
+  <action name="act__execute_query__" icon="execquery" label="Perform Query">
     form.execute_query()
   </action>
 
   <!-- Transactions -->
-  <action name="act__commit__" label="Save changes">
+  <action name="act__commit__" icon="commit" label="Save changes">
     form.commit()
   </action>
-  <action name="act__rollback__" label="Discard changes">
+  <action name="act__rollback__" icon="rollback" label="Discard changes">
     form.rollback()
   </action>
 
@@ -84,10 +85,10 @@
   <action name="act__show_about__" label="About">
     form.show_about()
   </action>
-  <action name="act__printout__" label="Print Form">
+  <action name="act__printout__" icon="printout" label="Print Form">
     form.printout()
   </action>
-  <action name="act__close__" label="Close Window">
+  <action name="act__close__" icon="exit" label="Close Window">
     form.close()
   </action>
 
@@ -182,6 +183,8 @@
       <menuitem name="__execute_query__" action="act__execute_query__"
         hotkey="F9"/>
     </menu>
+  </menu>
+  <menu name="__help__">
     <menu name="__help__" label="Help">
       <menuitem name="__show_about__" action="act__show_about__"/>
     </menu>

Added: trunk/gnue-forms/samples/function/menu.gfd
===================================================================
--- trunk/gnue-forms/samples/function/menu.gfd  2007-01-30 18:01:50 UTC (rev 
9343)
+++ trunk/gnue-forms/samples/function/menu.gfd  2007-01-31 07:50:00 UTC (rev 
9344)
@@ -0,0 +1,37 @@
+<?xml version="1.0"?>
+
+<form title="Menu Test">
+  <menu name="__extra__">
+    <menu name="mnu_extras" label="Extras">
+      <menuitem name="mnu_1" action="act_1"/>
+      <menuitem name="mnu_2" action="act_2" hotkey="SHIFT+F5"/>
+    </menu>
+    <menu name="mnu_foo" label="Foo">
+      <menuitem name="mnu_1" action="act_3" hotkey="F12"/>
+    </menu>
+  </menu>
+
+  <action name="act_1" label="Menu item 1">
+    form.show_message("Menu item 1 selected")
+  </action>
+
+  <action name="act_2" label="Menu item 2">
+    form.show_message("Menu item 2 selected")
+  </action>
+
+  <action name="act_3" label="Menu item 3">
+    form.show_message("Menu item 3 selected with a value of %s" % 
blk.one.value)
+  </action>
+
+  <logic>
+    <block name="blk">
+      <field name="one" datatype="text"/>
+    </block>
+  </logic>
+
+  <layout xmlns:c="GNUe:Layout:Char" c:height="14" c:width="62">
+    <page name="pg">
+      <entry name="one" c:x="1" c:y="1" block="blk" field="one"/>
+    </page>
+  </layout>
+</form>

Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py      2007-01-30 18:01:50 UTC (rev 9343)
+++ trunk/gnue-forms/src/GFForm.py      2007-01-31 07:50:00 UTC (rev 9344)
@@ -285,8 +285,12 @@
         # FIXME: for now, only merge standard menu if there is a menu defined
         # in the form. Do all of this unconditionally after menu handling is
         # finished.
-        if self.findChildNamed('__main__', 'GFMenu'):
+        if self.findChildNamed('__extra__', 'GFMenu'):
             self.merge(default_form)
+            # Merge extras and help menus into the main menu
+            main_menu = self.findChildNamed('__main__', 'GFMenu')
+            main_menu.merge(self.findChildNamed('__extra__', 'GFMenu'))
+            main_menu.merge(self.findChildNamed('__help__', 'GFMenu'))
 
         self.phaseInit()
 
@@ -751,7 +755,7 @@
 
     # -------------------------------------------------------------------------
 
-    def show_message(self, message, kind=None, title=None, cancel=False):
+    def show_message(self, message, kind='Info', title=None, cancel=False):
         """
         This function brings up a message box of a given kind.
         @param message: text to be displayed
@@ -762,6 +766,8 @@
             <Cancel> button.
         """
         if self.uiWidget is not None:
+            if title is None:
+                title = self.title
             return self.uiWidget._ui_show_message_(message, kind, title, 
cancel)
 
 
@@ -1362,11 +1368,11 @@
                 self.beginEditing()
                 return
 
+            self.__in_query_mode = True
+
             for block in self._logic._blockList:
                 block.init_query()
 
-            self.__in_query_mode = True
-
             self.status_message(u_('Enter your query criteria.'))
         finally:
             self.beginEditing()
@@ -1388,11 +1394,11 @@
                 self.beginEditing()
                 return
 
+            self.__in_query_mode = True
+
             for block in self._logic._blockList:
                 block.copy_query()
 
-            self.__in_query_mode = True
-
             self.status_message(u_('Enter your query criteria.'))
         finally:
             self.beginEditing()

Modified: trunk/gnue-forms/src/GFObjects/commanders.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/commanders.py        2007-01-30 18:01:50 UTC 
(rev 9343)
+++ trunk/gnue-forms/src/GFObjects/commanders.py        2007-01-31 07:50:00 UTC 
(rev 9344)
@@ -25,6 +25,10 @@
 Classes for all the visible objects that call actions: Menus and Toolbars
 """
 
+import os.path
+
+from gnue import paths
+
 from gnue.forms.GFObjects.GFObj import GFObj
 
 __all__ = ['GFMenu', 'GFMenuItem', 'GFToolbar', 'GFToolButton']
@@ -194,6 +198,50 @@
 
 
     # -------------------------------------------------------------------------
+    # Helper functions to be used by the UI implementations
+    # -------------------------------------------------------------------------
+
+    def _get_icon_file(self, size="32x32", format="png"):
+        """
+        Return the file with the icon bound to this action.
+
+        @param size: Image size, like "16x16" or "24x24".
+        @param format: Image format, like "png" or "bmp".
+        @return: Filename.
+        """
+
+        if self.icon is None:
+            return None
+
+        iconset = gConfigForms('IconSet')
+        if iconset == 'auto':
+            iconset = forms_ui.default_iconset
+        file = "%s-%s.%s" % (self.icon, size, format)
+
+        # First check the directory where this gfd was found.
+        dir = os.path.dirname(self._url)
+        result = os.path.join(dir, iconset, file)
+        if os.path.isfile(result):
+            return result
+        result = os.path.join(dir, file)
+        if os.path.isfile(result):
+            return result
+
+        # Then check the standard images directory (for compatibility).
+        # FIXME: Move standard icons to share/forms/default/<iconset> and
+        # remove this part.
+        dir = os.path.join(paths.data, 'share', 'gnue', 'images', 'forms')
+        result = os.path.join(dir, iconset, file)
+        if os.path.isfile(result):
+            return result
+        result = os.path.join(dir, file)
+        if os.path.isfile(result):
+            return result
+
+        return None
+
+
+    # -------------------------------------------------------------------------
     # Update enabled/disabled status
     # -------------------------------------------------------------------------
 

Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/menuitem.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/menuitem.py     2007-01-30 
18:01:50 UTC (rev 9343)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/menuitem.py     2007-01-31 
07:50:00 UTC (rev 9344)
@@ -45,7 +45,7 @@
         """
 
         # These are the relevant parameters
-        icon = self._gfObject.icon
+        icon_file = self._gfObject._get_icon_file(size="16x16", format="png")
         label = self._gfObject.label
         description = self._gfObject.description
         hotkey = self._gfObject.hotkey
@@ -64,18 +64,13 @@
             widget = wx.MenuItem(event.container, wx.ID_ANY, text,
                     description or u"", kind)
     
-            if icon:
-                image = wx.Image(icon, wx.BITMAP_TYPE_PNG)
+            if icon_file:
+                image = wx.Image(icon_file, wx.BITMAP_TYPE_PNG)
                 widget.SetBitmap(image.ConvertToBitmap())
 
             wx.EVT_MENU(wx.GetApp(), widget.GetId(), self.__on_menu)
 
             event.container.AppendItem(widget)
-
-            # FIXME: GFMenuItems should better call _ui_disable_() if the menu
-            # items should not start up enabled.
-            if not self._gfObject._ui_enabled:
-                widget.Enable(False)
         else:
             widget = None
             event.container.AppendSeparator()





reply via email to

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