[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8509 - in trunk/gnue-forms/src: . uidrivers/wx
From: |
reinhard |
Subject: |
[gnue] r8509 - in trunk/gnue-forms/src: . uidrivers/wx |
Date: |
Thu, 22 Jun 2006 13:35:43 -0500 (CDT) |
Author: reinhard
Date: 2006-06-22 13:35:43 -0500 (Thu, 22 Jun 2006)
New Revision: 8509
Modified:
trunk/gnue-forms/src/GFForm.py
trunk/gnue-forms/src/GFInstance.py
trunk/gnue-forms/src/uidrivers/wx/PrintForm.py
Log:
Clean up GFForm's trigger visible functions.
Modified: trunk/gnue-forms/src/GFForm.py
===================================================================
--- trunk/gnue-forms/src/GFForm.py 2006-06-22 17:10:52 UTC (rev 8508)
+++ trunk/gnue-forms/src/GFForm.py 2006-06-22 18:35:43 UTC (rev 8509)
@@ -111,65 +111,65 @@
'POST-COMMIT': 'Post-Commit'}
self._triggerFunctions = {
- 'setFocus': {
- 'function': self.triggerSetFocus,
- 'global' : True},
'getAuthenticatedUser': {
- 'function': self.triggerGetAuthenticatedUser,
+ 'function': self.__trigger_get_authenticated_user,
'global' : True},
+ 'getFeature': {
+ 'function': self.__trigger_get_feature,
+ 'global': True},
+ 'setFeature': {
+ 'function': self.__trigger_set_feature,
+ 'global': True},
+ 'getParameter': {
+ 'function': self.__trigger_get_parameter,
+ 'global' : True},
+ 'setParameter': {
+ 'function': self.__trigger_set_parameter,
+ 'global' : True},
'setTitle': {
- 'function': self.triggerSetTitle,
+ 'function': self.__trigger_set_title,
'global' : True},
+ 'setStatusText': {
+ 'function':self.__trigger_status_message,
+ 'global': True},
'getCurrentBlockName': {
- 'function': self.triggerGetCurrentBlockName,
+ 'function': self.__trigger_get_current_block_name,
'global' : True},
- 'setStatusText': {
- 'function':self.triggerSetStatusText,
+ 'setFocus': {
+ 'function': self.__trigger_set_focus,
+ 'global' : True},
+ 'beep': {
+ 'function': self.__trigger_beep,
'global': True},
- 'getParameter': {
- 'function': self.getParameter,
- 'global' : True},
- 'setParameter': {
- 'function': self.triggerSetParameter,
- 'global' : True},
'showMessage': {
- 'function': self.triggerShowMessageBox,
+ 'function': self.__trigger_show_message,
'global': True},
'messageBox': {
- 'function': self.triggerMessageBox,
+ 'function': self.__trigger_message_box,
'global': True},
'commit': {
- 'function': self.triggerCommit,
+ 'function': self.__trigger_commit,
'global': True},
'rollback': {
- 'function': self.rollback,
+ 'function': self.__trigger_rollback,
'global': True},
- 'close': {
- 'function': self.triggerClose,
+ 'initQuery': {
+ 'function': self.__trigger_init_query},
+ 'activateDialog': {
+ 'function': self.__trigger_activate_dialog,
'global': True},
- 'beep': {
- 'function': self.triggerBeep,
+ 'activateTrigger': {
+ 'function': self.__trigger_fire_trigger,
'global': True},
- 'getFeature': {
- 'function': self.triggerGetFeature,
- 'global': True},
- 'setFeature': {
- 'function': self.triggerSetFeature,
- 'global': True},
'runForm': {
- 'function': self.triggerRunForm,
+ 'function': self.__trigger_run_form,
'global': True},
'runReport': {
- 'function': self.triggerRunReport,
+ 'function': self.__trigger_run_report,
'global': True},
- 'activateDialog': {
- 'function': self.triggerActivateDialog,
+ 'close': {
+ 'function': self.__trigger_close,
'global': True},
- 'activateTrigger': {
- 'function': self.fireTrigger,
- 'global': True},
- 'initQuery': {
- 'function': self.initQuery},
}
self._features = {
@@ -228,10 +228,290 @@
self.processTrigger('On-Startup')
- # =========================================================================
+ # -------------------------------------------------------------------------
# Trigger functions
- # =========================================================================
+ # -------------------------------------------------------------------------
+ def __trigger_get_authenticated_user(self, connection=None):
+ """
+ Return the authenticated user.
+ """
+ return self._instance.connections.getAuthenticatedUser(connection)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_get_feature(self, feature):
+ """
+ Gets feature values.
+ Features are things like toolbars, menubars and statusbar.
+ @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
+ 'GUI:STATUSBAR:SUPPRESS'
+ @return: Boolean
+ """
+ try:
+ return self._features[feature]
+ except KeyError:
+ raise KeyError, "Trigger attempted to get unknown feature %s" %
feature
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_feature(self, feature, value):
+ """
+ Sets feature values.
+ Features are things like toolbars, menubars and statusbar.
+ @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
+ 'GUI:STATUSBAR:SUPPRESS'
+ @param value: True or False
+ @return: None
+ """
+ if not self._features.has_key(feature):
+ raise KeyError, "Trigger attempted to set unknown feature %s" %
feature
+ else:
+ self._features[feature] = value
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_get_parameter(self, parameter):
+ """
+ Return the value of the given parameter.
+
+ @param parameter: Name of the parameter
+ @return: Parameter value.
+ """
+ # FIXME: Should allow access via parameter object.
+ return self.getParameter(parameter)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_parameter(self, parameter, value):
+ """
+ Set a parameter.
+
+ @param parameter: the (case-insensitive) name of the parameter to be
set
+ @value: new value for parameter
+ """
+ # FIXME: Should allow access via parameter object
+ # If _parameters are not yet set, fall back to the parameter dictionary
+ # of the GFInstance. This can only happen in ON-STARTUP triggers.
+ if not hasattr (self, '_parameters'):
+ self._parameters = self._instance._parameters
+
+ # _parameters is a CaselessDict, so case of parameter doesn't matter
+ self._parameters [parameter] = value
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_title(self, title):
+ """
+ Sets and displays the title of the form.
+ @param title: new title
+ """
+ self.title = title
+ self.dispatchEvent('setTitle', title=title, _form=self);
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_status_message(self, message):
+ """
+ Display a message in the form's status bar.
+
+ @param message: Message text to display.
+ """
+ self.status_message(message)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_get_current_block_name(self):
+ return self._currentBlock.name
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_set_focus(self, object):
+ """
+ Switch input focus to a specific widget.
+
+ @param object: the widget that should get the focus
+ """
+ # add global focus locking
+ if self._in_trigger_lock:
+ print "Already called by a trigger"
+ return
+
+ self._in_trigger_lock = True
+
+ focus = object._object
+ if focus._type == 'GFField':
+ try:
+ focus = focus._entryList[0]
+ except KeyError:
+ raise "setFocus failed: GFField is not bound to an GFEntry object."
+
+ if not focus._type in ['GFEntry', 'GFButton']:
+ raise "setFocus failed: Can just switch to GFEntry objects. " +\
+ "You passed a '%s' object." % focus._type
+ self.changeFocus(focus, 1)
+ self.dispatchEvent('gotoENTRY', object=self._currentEntry, _form=self)
+ self._in_trigger_lock = False
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_beep(self):
+ """
+ Tell the UI to beep (if possible)
+ """
+ self.dispatchEvent('formBEEP', _form=self)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_show_message(self, msgtxt, caption='GNUe Message',
+ title='Information', kind = 'Info', cancel = False):
+ """
+ Displays a standard message box.
+ @param msgtxt: text to be displayed
+ @param caption: caption to be displayed, default='GNUe Message'
+ @param title: title of messagebox, default='Information'
+ @param kind: 'Question', 'Info', 'Warning', or 'Error', default='Info'
+ @param cancel: Flag whether to include a Cancel button, default='False'
+ @return: True for <Yes> or <Ok> button, False for <No> button, None for
+ <Cancel> button.
+ """
+ return self._instance.displayMessageBox (msgtxt, kind, cancel, caption,
+ title)
+
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_message_box(self, message, kind=None, title=None,
+ cancel=False):
+ """
+ This function brings up a message box of a given kind.
+ @param message: text to be displayed
+ @param kind: 'Question', 'Info', 'Warning', or 'Error'
+ @param cancel: Boolean flag indicating wether a cancel button will be
+ included or not.
+ @return: True for <Yes> or <Ok> button, False for <No> button, None for
+ <Cancel> button.
+ """
+ # FIXME: Should be deprecated in favour of __trigger_show_message
+ return self._instance.displayMessageBox (message, kind, cancel, '',
+ title)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_commit(self):
+ """
+ Save all changes.
+ """
+ event = events.Event('requestCOMMIT',_form=self)
+ self._instance.executeCommit(event)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_rollback(self):
+ """
+ Roll back all unsaved changes.
+ """
+ self.rollback()
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_init_query(self):
+ """
+ Set form into query mode.
+ """
+ self.initQuery()
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_activate_dialog (self, dialogName, parameters={}, modal=0):
+ """
+ Launches a standard or a custom dialog.
+ @param dialogName: name of the dialog to be displayed
+ @param parameters: dictionary of parameters used to pass values
+ back and forth
+ @param modal: whether the dialog should be modal or not
+ @return: None
+ """
+ # Keep this to allow calling of about-box from trigger namespace
+ if dialogName == '_about':
+ # FIXME: This should be deprecated
+ self._instance._uiinstance.showAbout (**parameters)
+ else:
+ self._instance.activateForm (dialogName, parameters, modal)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_fire_trigger(self, name):
+ """
+ Fires a named trigger.
+ """
+ # FIXME: Should allow access via trigger object run() method, like for
+ # actions.
+ self.fireTrigger(name)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_run_form(self, fileName, parameters={}):
+ """
+ Launches a new instance of GNUe-Forms, running a different form.
+ @param fileName: the name of the .gfd file to be displayed
+ @param parameters: dictionary of parameters to be passed
+ to the newly run form
+ @return: None
+ """
+ from GFInstance import GFInstance
+ instance = GFInstance(self._instance.manager,
+ self._instance.connections,
+ self._instance._uimodule,
+ 1,
+ parameters=parameters)
+ instance.addFormFromFile(fileName)
+ #instance.addDialogs ()
+ instance.activate()
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_run_report(self, reportFile, parameters={}, **parms):
+ """
+ Launches a new instance of GNUe-Reports, running a new report.
+ @param reportFile: the name of the .grd file to be processed
+ @param parameters: dictionary of parameters to be passed
+ to the newly run report
+ @param **params:
+ These roughly correspond to the ./gnue-reports options
+ destination
+ destinationType
+ destinationOptions (dict)
+ filter
+ filterOptions (dict)
+ sortoption
+ includeStructuralComments
+ omitGNUeXML
+ @return: None
+ """
+ from gnue.reports.base.GREngine import GREngine
+ from gnue.reports.base import GRFilters, GRExceptions
+ rep_engine = GREngine(self._instance.connections)
+ rep_engine.processReport(reportFile, parameters=parameters, **parms)
+
+ # -------------------------------------------------------------------------
+
+ def __trigger_close(self):
+ """
+ Closes this copy of GNUe-Forms.
+ @return: None, or 1 if error
+ """
+ event = events.Event('requestEXIT', _form=self)
+ #self._instance.dispatchEvent(event)
+ self.dispatchEvent(event)
+ if event.__error__:
+ return 1
+
+
+ # -------------------------------------------------------------------------
+ # Get the value of a parameter
+ # -------------------------------------------------------------------------
+
def getParameter(self, parameter):
"""
Gets a user parameter. If parameter is not specified, pulls default
@@ -264,6 +544,19 @@
return rv
+ # -------------------------------------------------------------------------
+ # Write a message to the status bar
+ # -------------------------------------------------------------------------
+
+ def status_message(self, message):
+ """
+ Displays a custom message on the form's status bar.
+ @param message: message to be displayed
+ """
+
+ self._instance.updateStatusBar(tip=message, form=self)
+
+
# =========================================================================
# Focus functions
# =========================================================================
@@ -639,7 +932,7 @@
for block in self._logic._blockList:
block.initQuery()
- self.triggerSetStatusText(_('Enter your query criteria.'))
+ self.status_message(u_('Enter your query criteria.'))
return message
@@ -658,7 +951,7 @@
for block in self._logic._blockList:
block.cancelQuery()
- self.triggerSetStatusText(_('Query canceled.'))
+ self.status_message(u_('Query canceled.'))
return message
@@ -709,9 +1002,9 @@
self.refreshDisplay (self._currentBlock)
if self._currentBlock.isEmpty ():
- self.triggerSetStatusText (_('Query returned no results.'))
+ self.status_message (u_('Query returned no results.'))
else:
- self.triggerSetStatusText (_('Query successful.'))
+ self.status_message (u_('Query successful.'))
return message
@@ -728,7 +1021,9 @@
assert gEnter (4)
- self.endEditing ()
+ if not self.endEditing():
+ return
+
if self.readonly:
return _('Form is readonly')
@@ -1194,7 +1489,7 @@
@return: None
"""
if self._currentBlock.mode == 'query':
- self.triggerSetStatusText(_('You cannot do that in query mode.'))
+ self.status_message(u_('You cannot do that in query mode.'))
return
self._currentBlock.prevRecord()
@@ -1209,7 +1504,7 @@
@return: None
"""
if self._currentBlock.mode == 'query':
- self.triggerSetStatusText(_('You cannot do that in query mode.'))
+ self.status_message(u_('You cannot do that in query mode.'))
return
self._currentBlock.firstRecord()
@@ -1224,7 +1519,7 @@
@return: None
"""
if self._currentBlock.mode == 'query':
- self.triggerSetStatusText(_('You cannot do that in query mode.'))
+ self.status_message(u_('You cannot do that in query mode.'))
return
self._currentBlock.lastRecord()
@@ -1239,7 +1534,7 @@
@return: None
"""
if self._currentBlock.mode == 'query':
- self.triggerSetStatusText(_('You cannot do that in query mode.'))
+ self.status_message(u_('You cannot do that in query mode.'))
return
self._currentBlock.nextRecord()
@@ -1255,7 +1550,7 @@
@return: None
"""
if self._currentBlock.mode == 'query':
- self.triggerSetStatusText(_('You cannot do that in query mode.'))
+ self.status_message(u_('You cannot do that in query mode.'))
return
self._currentBlock.jumpRecord(count)
@@ -1270,253 +1565,3 @@
@return: None
"""
self._insertMode = not self._insertMode
-
-
- #===========================================================================
- # Trigger functions
- #
- # The following functions are only used to implement
- # functions exposed in the trigger namespace.
- #===========================================================================
-
- # -------------------------------------------------------------------------
-
- def triggerCommit(self):
- """
- Causes the form to commit
- """
- event = events.Event('requestCOMMIT',_form=self)
- self._instance.executeCommit(event)
-
- # -------------------------------------------------------------------------
-
- def triggerBeep(self):
- """
- Tells the UI to beep (if possible)
-
- @return: None
- """
- self.dispatchEvent('formBEEP', _form=self)
-
- # -------------------------------------------------------------------------
-
- def triggerShowMessageBox (self, msgtxt, caption='GNUe Message',
- title='Information', kind = 'Info', cancel = False):
- """
- Displays a standard message box.
- @param msgtxt: text to be displayed
- @param caption: caption to be displayed, default='GNUe Message'
- @param title: title of messagebox, default='Information'
- @param kind: 'Question', 'Info', 'Warning', or 'Error', default='Info'
- @param cancel: Flag whether to include a Cancel button, default='False'
- @return: True for <Yes> or <Ok> button, False for <No> button, None for
- <Cancel> button.
- """
- return self._instance.displayMessageBox (msgtxt, kind, cancel, caption,
- title)
-
-
- # -------------------------------------------------------------------------
-
- def triggerMessageBox (self, message, kind=None, title=None, cancel=False):
- """
- This function brings up a message box of a given kind.
- @param message: text to be displayed
- @param kind: 'Question', 'Info', 'Warning', or 'Error'
- @param cancel: Boolean flag indicating wether a cancel button will be
- included or not.
- @return: True for <Yes> or <Ok> button, False for <No> button, None for
- <Cancel> button.
- """
- return self._instance.displayMessageBox (message, kind, cancel, '',
- title)
-
-
- # -------------------------------------------------------------------------
-
- def triggerSetFocus(self, object):
- """
- Switches input focus to a specific widget.
- @param object: the widget that should get the focus
- """
- # add global focus locking
- if self._in_trigger_lock:
- print "Already called by a trigger"
- return
-
- self._in_trigger_lock = True
-
- focus = object._object
- if focus._type == 'GFField':
- try:
- focus = focus._entryList[0]
- except KeyError:
- raise "setFocus failed: GFField is not bound to an GFEntry object."
-
- if not focus._type in ['GFEntry', 'GFButton']:
- raise "setFocus failed: Can just switch to GFEntry objects. " +\
- "You passed a '%s' object." % focus._type
- self.changeFocus(focus, 1)
- self.dispatchEvent('gotoENTRY', object=self._currentEntry, _form=self)
- self._in_trigger_lock = False
-
-
- # -------------------------------------------------------------------------
- def triggerGetCurrentBlockName(self):
- return self._currentBlock.name
-
- # -------------------------------------------------------------------------
-
- def triggerSetStatusText(self, tip=''):
- """
- Displays a custom message on the form's status bar.
- @param tip: message to be displayed
- @return: None
- """
- self._instance.updateStatusBar(tip=tip, form=self)
-
-
- # -------------------------------------------------------------------------
-
- def triggerRunForm(self, fileName, parameters={}):
- """
- Launches a new instance of GNUe-Forms, running a different form.
- @param fileName: the name of the .gfd file to be displayed
- @param parameters: dictionary of parameters to be passed
- to the newly run form
- @return: None
- """
- from GFInstance import GFInstance
- instance = GFInstance(self._instance.manager,
- self._instance.connections,
- self._instance._uimodule,
- 1,
- parameters=parameters)
- instance.addFormFromFile(fileName)
- #instance.addDialogs ()
- instance.activate()
-
- # -------------------------------------------------------------------------
-
- def triggerRunReport(self, reportFile, parameters={}, **parms):
- """
- Launches a new instance of GNUe-Reports, running a new report.
- @param reportFile: the name of the .grd file to be processed
- @param parameters: dictionary of parameters to be passed
- to the newly run report
- @param **params:
- These roughly correspond to the ./gnue-reports options
- destination
- destinationType
- destinationOptions (dict)
- filter
- filterOptions (dict)
- sortoption
- includeStructuralComments
- omitGNUeXML
- @return: None
- """
- from gnue.reports.base.GREngine import GREngine
- from gnue.reports.base import GRFilters, GRExceptions
- rep_engine = GREngine(self._instance.connections)
- rep_engine.processReport(reportFile, parameters=parameters, **parms)
-
-
- # -------------------------------------------------------------------------
-
- def triggerActivateDialog (self, dialogName, parameters={}, modal=0):
- """
- Launches a standard or a custom dialog.
- @param dialogName: name of the dialog to be displayed
- @param parameters: dictionary of parameters used to pass values
- back and forth
- @param modal: whether the dialog should be modal or not
- @return: None
- """
- # Keep this to allow calling of about-box from trigger namespace
- if dialogName == '_about':
- self._instance._uiinstance.showAbout (**parameters)
- else:
- self._instance.activateForm (dialogName, parameters, modal)
-
- # -------------------------------------------------------------------------
- def triggerClose(self):
- """
- Closes this copy of GNUe-Forms.
- @return: None, or 1 if error
- """
- event = events.Event('requestEXIT', _form=self)
- #self._instance.dispatchEvent(event)
- self.dispatchEvent(event)
- if event.__error__:
- return 1
-
- # -------------------------------------------------------------------------
-
- def triggerSetFeature(self, feature, value):
- """
- Sets feature values.
- Features are things like toolbars, menubars and statusbar.
- @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
- 'GUI:STATUSBAR:SUPPRESS'
- @param value: True or False
- @return: None
- """
- if not self._features.has_key(feature):
- raise KeyError, "Trigger attempted to set unknown feature %s" %
feature
- else:
- self._features[feature] = value
-
- # -------------------------------------------------------------------------
-
- def triggerGetFeature(self, feature):
- """
- Gets feature values.
- Features are things like toolbars, menubars and statusbar.
- @param feature: 'GUI:MENUBAR:SUPPRESS' or 'GUI:TOOLBAR:SUPPRESS' or
- 'GUI:STATUSBAR:SUPPRESS'
- @return: Boolean
- """
- try:
- return self._features[feature]
- except KeyError:
- raise KeyError, "Trigger attempted to get unknown feature %s" %
feature
-
-
- # -------------------------------------------------------------------------
-
- def triggerGetAuthenticatedUser(self, connection=None):
- """
- Gets authenticated user.
- """
- return self._instance.connections.getAuthenticatedUser(connection)
-
-
- # -------------------------------------------------------------------------
-
- def triggerSetTitle(self, title):
- """
- Sets and displays the title of the form.
- @param title: new title
- """
- self.title = title
- # code to fire event to update the display goes here
- self.dispatchEvent('setTitle', title=title, _form=self);
-
-
- # -------------------------------------------------------------------------
-
- def triggerSetParameter(self, parameter, value):
- """
- Sets a user parameter.
- @param parameter: the (case-insensitive) name of the parameter to be
set
- @value: new value for parameter
- """
-
- # If _parameters are not yet set, fall back to the parameter
dictionary of
- # the GFInstance. This can only happen in ON-STARTUP triggers.
- if not hasattr (self, '_parameters'):
- self._parameters = self._instance._parameters
-
- # _parameters is a CaselessDict, so case of parameter doesn't matter
- self._parameters [parameter] = value
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2006-06-22 17:10:52 UTC (rev 8508)
+++ trunk/gnue-forms/src/GFInstance.py 2006-06-22 18:35:43 UTC (rev 8509)
@@ -823,7 +823,7 @@
"""
if event._form._currentBlock.mode == 'query':
- event._form.triggerSetStatusText (_('You cannot do that in query mode.'))
+ event._form.status_message (u_('You cannot do that in query mode.'))
return
if not event._form.endEditing ():
@@ -1221,9 +1221,6 @@
def executeCommit (self, event):
- if not event._form.endEditing ():
- return
-
try:
message = event._form.commit ()
if message:
Modified: trunk/gnue-forms/src/uidrivers/wx/PrintForm.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/PrintForm.py 2006-06-22 17:10:52 UTC
(rev 8508)
+++ trunk/gnue-forms/src/uidrivers/wx/PrintForm.py 2006-06-22 18:35:43 UTC
(rev 8509)
@@ -80,7 +80,7 @@
prn = wxPrinter(prd)
printout = FormPrintout(window, title, subtitle,
- form.triggerGetAuthenticatedUser() or 'Anonymous', dest)
+ form._instance.connections.getAuthenticatedUser(None) or 'Anonymous',
dest)
if not prn.Print(driver._gfObjToUIWidget[form].mainWindow, printout):
wxMessageBox(_("There was a problem printing.\nPlease verify your printer
setup and try again."), _("Printing"), wxOK)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8509 - in trunk/gnue-forms/src: . uidrivers/wx,
reinhard <=