[Top][All Lists]
[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()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9344 - in trunk/gnue-forms: defaults samples/function src src/GFObjects src/uidrivers/wx26/widgets,
reinhard <=