commit-gnue
[Top][All Lists]
Advanced

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

gnue/forms/src GFDisplayHandler.py GFEvent.py G...


From: Jason Cater
Subject: gnue/forms/src GFDisplayHandler.py GFEvent.py G...
Date: Thu, 24 Oct 2002 00:39:05 -0400

CVSROOT:        /home/cvs
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/10/24 00:39:02

Modified files:
        forms/src      : GFDisplayHandler.py GFEvent.py GFForm.py 
                         GFInstance.py 
        forms/src/GFObjects: GFBlock.py GFDataSource.py GFMsgBox.py 
        forms/src/uidrivers/_base: UIWidget.py UIdriver.py 
        forms/src/uidrivers/gtk2: UIdriver.py 
        forms/src/uidrivers/nstti: UIdriver.py 
        forms/src/uidrivers/wx: UIdriver.py 

Log message:
        moved references from GFEvent to gnue.common.events

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFDisplayHandler.py.diff?cvsroot=OldCVS&tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFEvent.py.diff?cvsroot=OldCVS&tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFForm.py.diff?cvsroot=OldCVS&tr1=1.187&tr2=1.188&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFInstance.py.diff?cvsroot=OldCVS&tr1=1.59&tr2=1.60&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFObjects/GFBlock.py.diff?cvsroot=OldCVS&tr1=1.53&tr2=1.54&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFObjects/GFDataSource.py.diff?cvsroot=OldCVS&tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFObjects/GFMsgBox.py.diff?cvsroot=OldCVS&tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/_base/UIWidget.py.diff?cvsroot=OldCVS&tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/_base/UIdriver.py.diff?cvsroot=OldCVS&tr1=1.75&tr2=1.76&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/gtk2/UIdriver.py.diff?cvsroot=OldCVS&tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/nstti/UIdriver.py.diff?cvsroot=OldCVS&tr1=1.13&tr2=1.14&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/uidrivers/wx/UIdriver.py.diff?cvsroot=OldCVS&tr1=1.197&tr2=1.198&r1=text&r2=text

Patches:
Index: gnue/forms/src/GFDisplayHandler.py
diff -c gnue/forms/src/GFDisplayHandler.py:1.34 
gnue/forms/src/GFDisplayHandler.py:1.35
*** gnue/forms/src/GFDisplayHandler.py:1.34     Tue Oct 15 11:19:12 2002
--- gnue/forms/src/GFDisplayHandler.py  Thu Oct 24 00:39:02 2002
***************
*** 29,36 ****
  import sys, string, types
  
  from gnue.common.FormatMasks import DateMask, TextMask, NumberMask
! from gnue.common import GDebug
! from GFEvent import *
  
  try:
    from mx.DateTime import DateTime
--- 29,35 ----
  import sys, string, types
  
  from gnue.common.FormatMasks import DateMask, TextMask, NumberMask
! from gnue.common import GDebug, events
  
  try:
    from mx.DateTime import DateTime
***************
*** 54,60 ****
  # You should be using one of the
  # other types based on this one.
  #
! class FieldDisplayHandler(GFEventAware):
  
  
    #####################
--- 53,59 ----
  # You should be using one of the
  # other types based on this one.
  #
! class FieldDisplayHandler(events.EventAware):
  
  
    #####################
***************
*** 88,101 ****
      # TODO: would be the corrected patch line commented out.
      # if (self.handleCR and type(self.display)=='str'):
      if self.handleCR:
!       self.dispatchEvent(GFEvent('updateEntryEditor',
             object = self.entry,
             display=self.display, # string.replace(self.display,'\n','\r\n'),
             cursor=self.cursor + 
len(string.split(self.display[:self.cursor+1],'\n'))-1,
             selection=self.getSelectionArea(),
           ))
      else:
!       self.dispatchEvent(GFEvent('updateEntryEditor',
             object = self.entry,
             display=self.display,
             cursor=self.cursor,
--- 87,100 ----
      # TODO: would be the corrected patch line commented out.
      # if (self.handleCR and type(self.display)=='str'):
      if self.handleCR:
!       self.dispatchEvent(events.Event('updateEntryEditor',
             object = self.entry,
             display=self.display, # string.replace(self.display,'\n','\r\n'),
             cursor=self.cursor + 
len(string.split(self.display[:self.cursor+1],'\n'))-1,
             selection=self.getSelectionArea(),
           ))
      else:
!       self.dispatchEvent(events.Event('updateEntryEditor',
             object = self.entry,
             display=self.display,
             cursor=self.cursor,
***************
*** 164,170 ****
          self._buildDisplay()
  
        else:
!         self.dispatchEvent(GFEvent('formALERT',
            _("Invalid input: '%s'" % self.work)))
  
  
--- 163,169 ----
          self._buildDisplay()
  
        else:
!         self.dispatchEvent(events.Event('formALERT',
            _("Invalid input: '%s'" % self.work)))
  
  
***************
*** 382,388 ****
    def clipboardCopy(self, event):
      if self.selection1 != None:
        sel1, sel2 = self.getSelectionArea()
!       self.dispatchEvent(GFEvent('setClipboard',
                 text=self.display[sel1:sel2]))
  
      event.refreshDisplay = 0
--- 381,387 ----
    def clipboardCopy(self, event):
      if self.selection1 != None:
        sel1, sel2 = self.getSelectionArea()
!       self.dispatchEvent(events.Event('setClipboard',
                 text=self.display[sel1:sel2]))
  
      event.refreshDisplay = 0
***************
*** 390,401 ****
  
    def clipboardCut(self, event):
      self.clipboardCopy(event)
!     edevent = GFEvent("requestKEYPRESS", text="")
      self.dispatchEvent(edevent)
  
  
    def clipboardPaste(self, event):
!     event.text = self.dispatchEvent(GFEvent('getClipboard'))
      if event.text != None:
        self.addText(event)
  
--- 389,400 ----
  
    def clipboardCut(self, event):
      self.clipboardCopy(event)
!     edevent = events.Event("requestKEYPRESS", text="")
      self.dispatchEvent(edevent)
  
  
    def clipboardPaste(self, event):
!     event.text = self.dispatchEvent(events.Event('getClipboard'))
      if event.text != None:
        self.addText(event)
  
***************
*** 405,411 ****
    # Internal methods
    #
    def __init__(self, entry, eventHandler, formatter=None):
!     GFEventAware.__init__(self, eventHandler)
  
      self.entry = entry            # Our entry
      self.editing = 0              # In editing mode??
--- 404,410 ----
    # Internal methods
    #
    def __init__(self, entry, eventHandler, formatter=None):
!     events.EventAware.__init__(self, eventHandler)
  
      self.entry = entry            # Our entry
      self.editing = 0              # In editing mode??
***************
*** 425,431 ****
      # Needs to be set by the child classes
      self.formatter = formatter
  
!     self.subevents = GFEventController()
      self.subevents.registerEventListeners( {
  
                   # "Entry" events
--- 424,430 ----
      # Needs to be set by the child classes
      self.formatter = formatter
  
!     self.subevents = events.EventController()
      self.subevents.registerEventListeners( {
  
                   # "Entry" events
***************
*** 882,888 ****
  
  
    def clipboardPaste(self, event):
!     event.text = self.dispatchEvent(GFEvent('getClipboard'))
      if event.text != None:
        self.addText(event)
  
--- 881,887 ----
  
  
    def clipboardPaste(self, event):
!     event.text = self.dispatchEvent(events.Event('getClipboard'))
      if event.text != None:
        self.addText(event)
  
Index: gnue/forms/src/GFEvent.py
diff -c gnue/forms/src/GFEvent.py:1.24 gnue/forms/src/GFEvent.py:1.25
*** gnue/forms/src/GFEvent.py:1.24      Mon Oct  7 17:29:37 2002
--- gnue/forms/src/GFEvent.py   Thu Oct 24 00:39:02 2002
***************
*** 19,25 ****
  # Copyright 2000-2002 Free Software Foundation
  #
  # FILE:
! # GFEvent.py
  #
  # DESCRIPTION:
  # Basic event passed between the GFForm, GFView, and GFController objects
--- 19,25 ----
  # Copyright 2000-2002 Free Software Foundation
  #
  # FILE:
! # events.Event.py
  #
  # DESCRIPTION:
  # Basic event passed between the GFForm, GFView, and GFController objects
***************
*** 28,34 ****
  # This can be eliminated in favor of gnue.common.events
  #
  
! from gnue.common.events import Event as GFEvent
! from gnue.common.events import EventAware as GFEventAware
! from gnue.common.events import EventController as GFEventController
  
--- 28,109 ----
  # This can be eliminated in favor of gnue.common.events
  #
  
! 
! class _EventGenerator:
!   def __init__(self):
!     self.__lastitem = 0
! 
!   def __getitem__(self, index):
!     self.__lastitem = max(self.__lastitem,index)
!     return index
! 
!   def __call__(self):
!     self.__lastitem += 1
!     return self.__lastitem
! 
! ##
! ## ALL VALID FORM EVENTS
! ##
! 
! (   beginEDITMODE,
!     beginWAIT,
!     endEDITMODE,
!     endWAIT,
!     exitApplication,
!     fireTRIGGER,
!     formALERT,
!     getCLIPBOARD,
!     gotoENTRY,
!     gotoPAGE,
!     msgBoxUI,
!     onRecordTouched,
!     preCommit,
!     preDelete,
!     preInsert,
!     preUpdate,
!     requestABOUT,
!     requestBACKSPACE,
!     requestCOMMIT,
!     requestCOPY,
!     requestCURSOREND,
!     requestCURSORHOME,
!     requestCURSORLEFT,
!     requestCURSORMOVE,
!     requestCURSORRIGHT,
!     requestCUT,
!     requestDELETE,
!     requestENTERQUERY,
!     requestEXECQUERY,
!     requestEXIT,
!     requestFIRSTRECORD,
!     requestFOCUS,
!     requestJUMPRECORD,
!     requestKEYPRESS,
!     requestLASTRECORD,
!     requestMARKFORDELETE,
!     requestMODETOGGLE,
!     requestNEWRECORD,
!     requestNEXTBLOCK,
!     requestNEXTENTRY,
!     requestNEXTRECORD,
!     requestPAGE,
!     requestPASTE,
!     requestPREVBLOCK,
!     requestPREVENTRY,
!     requestPREVRECORD,
!     requestPRINTOUT,
!     requestRECORDNUMBER,
!     requestREPLACEVALUE,
!     requestROLLBACK,
!     requestSELECTALL,
!     requestSELECTLEFT,
!     requestSELECTRIGHT,
!     requestSELECTTOEND,
!     requestSELECTTOHOME,
!     requestTOGGLECHKBOX,
!     setCLIPBOARD,
!     uiABOUT,
!     uiUPDATESTATUS,
!     updateENTRY,
!     updateEntryEditor  ) = _EventGenerator()[:]
  
Index: gnue/forms/src/GFForm.py
diff -c gnue/forms/src/GFForm.py:1.187 gnue/forms/src/GFForm.py:1.188
*** gnue/forms/src/GFForm.py:1.187      Wed Oct 23 22:11:54 2002
--- gnue/forms/src/GFForm.py    Thu Oct 24 00:39:02 2002
***************
*** 33,42 ****
  import traceback
  
  from gnue.common import GDebug, GConnections
  from gnue.common.FileUtils import openResource
  from GFObjects import *
! from GFEvent import *
! from gnue.common.       GDataObjects import ConnectionError as DBError
  from gnue.common.GRootObj import GRootObj
  #from GFTriggerError import *
  from gnue.common.GTrigger import TriggerError
--- 33,42 ----
  import traceback
  
  from gnue.common import GDebug, GConnections
+ from gnue.common import events
  from gnue.common.FileUtils import openResource
  from GFObjects import *
! from gnue.common.GDataObjects import ConnectionError as DBError
  from gnue.common.GRootObj import GRootObj
  #from GFTriggerError import *
  from gnue.common.GTrigger import TriggerError
***************
*** 48,54 ****
  # Defines which objects are "Tab Stops"
  TabStops = ('GFEntry','GFButton')
  
! class GFForm(GFObj, GRootObj, GFEventAware):
    def __init__(self, parent=None, app=None):
      GRootObj.__init__(self, 'form')
      GFObj.__init__(self, parent)
--- 48,54 ----
  # Defines which objects are "Tab Stops"
  TabStops = ('GFEntry','GFButton')
  
! class GFForm(GFObj, GRootObj, events.EventAware):
    def __init__(self, parent=None, app=None):
      GRootObj.__init__(self, 'form')
      GFObj.__init__(self, parent)
***************
*** 139,145 ****
    def primaryInit(self):
  
      # Initialize our events system
!     GFEventAware.__init__(self, self._app.eventController)
  
  
      # TODO: Look at moving this into GParser
--- 139,145 ----
    def primaryInit(self):
  
      # Initialize our events system
!     events.EventAware.__init__(self, self._app.eventController)
  
  
      # TODO: Look at moving this into GParser
***************
*** 240,246 ****
  
      try:
        if self._currentEntry:
!         event = GFEvent('endEDITMODE', None)
          self._app.dispatchEvent(event)
          if event.__error__:
            return 1
--- 240,246 ----
  
      try:
        if self._currentEntry:
!         event = events.Event('endEDITMODE', None)
          self._app.dispatchEvent(event)
          if event.__error__:
            return 1
***************
*** 272,284 ****
        self._currentPage = self._currentBlock._page
  
        if pageChange:
!         self.dispatchEvent(GFEvent('gotoPAGE',self._currentPage));
  
        if blockChange:
          self.refreshDisplay(self._currentBlock)
  
!       self.dispatchEvent(GFEvent('updateENTRY', oldEntry))
!       self.dispatchEvent(GFEvent('updateENTRY', self._currentEntry))
  
        if fireFocusTriggers:
          if pageChange:
--- 272,284 ----
        self._currentPage = self._currentBlock._page
  
        if pageChange:
!         self.dispatchEvent(events.Event('gotoPAGE',self._currentPage));
  
        if blockChange:
          self.refreshDisplay(self._currentBlock)
  
!       self.dispatchEvent(events.Event('updateENTRY', oldEntry))
!       self.dispatchEvent(events.Event('updateENTRY', self._currentEntry))
  
        if fireFocusTriggers:
          if pageChange:
***************
*** 381,387 ****
  
  
    def updateUIEntry(self,entry):
!     self._app.dispatchEvent(GFEvent('updateENTRY',entry));
  
    #
    # Incomming Event handlers
--- 381,387 ----
  
  
    def updateUIEntry(self,entry):
!     self._app.dispatchEvent(events.Event('updateENTRY',entry));
  
    #
    # Incomming Event handlers
***************
*** 421,427 ****
      return message
  
    def executeQuery(self):
!     self._app.dispatchEvent(GFEvent('beginWAIT',None));
  
      message = None
      try:
--- 421,427 ----
      return message
  
    def executeQuery(self):
!     self._app.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
      try:
***************
*** 431,440 ****
        self.rollback(1)
        message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0], 
sys.exc_info()[1])
  
!     self._app.dispatchEvent(GFEvent('endWAIT',None));
  
    def commit(self):
!     self._app.dispatchEvent(GFEvent('beginWAIT',None));
  
      message = None
  
--- 431,440 ----
        self.rollback(1)
        message = _("Database query error:\n%s\n%s ") % (sys.exc_info()[0], 
sys.exc_info()[1])
  
!     self._app.dispatchEvent(events.Event('endWAIT',None));
  
    def commit(self):
!     self._app.dispatchEvent(events.Event('beginWAIT',None));
  
      message = None
  
***************
*** 445,451 ****
            self.processTrigger('Pre-Commit')
          except TriggerError:
            GDebug.printMesg(1, "Trigger form Pre-Commit threw a TriggerError!")
!           self._app.dispatchEvent(GFEvent('endWAIT',None));
            return _("Form trigger returned error")
  
          for block in self._blockList:
--- 445,451 ----
            self.processTrigger('Pre-Commit')
          except TriggerError:
            GDebug.printMesg(1, "Trigger form Pre-Commit threw a TriggerError!")
!           self._app.dispatchEvent(events.Event('endWAIT',None));
            return _("Form trigger returned error")
  
          for block in self._blockList:
***************
*** 458,464 ****
              block.processCommit()
            except TriggerError:
              GDebug.printMesg(1, "Trigger block Pre-Commit threw a 
TriggerError!")
!             self._app.dispatchEvent(GFEvent('endWAIT',None));
              return _("Block trigger returned error")
            block.processTrigger('Post-Commit')
  
--- 458,464 ----
              block.processCommit()
            except TriggerError:
              GDebug.printMesg(1, "Trigger block Pre-Commit threw a 
TriggerError!")
!             self._app.dispatchEvent(events.Event('endWAIT',None));
              return _("Block trigger returned error")
            block.processTrigger('Post-Commit')
  
***************
*** 467,473 ****
  
        else:
          message = _('Form is readonly')
!         self._app.dispatchEvent(GFEvent('endWAIT',None));
          return message
  
        self.processTrigger('Post-Commit')
--- 467,473 ----
  
        else:
          message = _('Form is readonly')
!         self._app.dispatchEvent(events.Event('endWAIT',None));
          return message
  
        self.processTrigger('Post-Commit')
***************
*** 481,487 ****
        traceback.print_exc(file=sys.stdout)
        print '-'*60
  
!     self._app.dispatchEvent(GFEvent('endWAIT',None));
  
      return message
  
--- 481,487 ----
        traceback.print_exc(file=sys.stdout)
        print '-'*60
  
!     self._app.dispatchEvent(events.Event('endWAIT',None));
  
      return message
  
***************
*** 492,498 ****
       author = self.getOption('author') or "Unknown"
       description = self.getOption('description') or "Unknown"
  
!      
self.dispatchEvent(GFEvent('uiABOUT',[version,name,formversion,author,description]))
  
    def rollback(self, recover=0):
      self.endEditing()
--- 492,498 ----
       author = self.getOption('author') or "Unknown"
       description = self.getOption('description') or "Unknown"
  
!      
self.dispatchEvent(events.Event('uiABOUT',[version,name,formversion,author,description]))
  
    def rollback(self, recover=0):
      self.endEditing()
***************
*** 593,599 ****
  
    def __refreshDisplay(self, object):
      if object._type == 'GFEntry':
!       self.dispatchEvent(GFEvent('updateENTRY',object))
  
  
  
--- 593,599 ----
  
    def __refreshDisplay(self, object):
      if object._type == 'GFEntry':
!       self.dispatchEvent(events.Event('updateENTRY',object))
  
  
  
***************
*** 642,648 ****
    # mode and save it's value to the virtual form
    #
    def endEditing(self):
!     event = GFEvent('endEDITMODE',None)
      self.dispatchEvent(event)
      return not event.__error__
  
--- 642,648 ----
    # mode and save it's value to the virtual form
    #
    def endEditing(self):
!     event = events.Event('endEDITMODE',None)
      self.dispatchEvent(event)
      return not event.__error__
  
***************
*** 687,700 ****
    def triggerSetFocus(self,object):
  #    print _("If i was working then %s would now have focus") % object._object
      self.changeFocus(object._object,1)
!     self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._currentEntry}))
  
    def triggerSetStatusText(self,tip=''):
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
  
    # Close this form.
    def close(self):
!     event = GFEvent('requestEXIT')
      self._app.dispatchEvent(event)
      if event.__error__:
        return 1
--- 687,700 ----
    def triggerSetFocus(self,object):
  #    print _("If i was working then %s would now have focus") % object._object
      self.changeFocus(object._object,1)
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._currentEntry}))
  
    def triggerSetStatusText(self,tip=''):
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
  
    # Close this form.
    def close(self):
!     event = events.Event('requestEXIT')
      self._app.dispatchEvent(event)
      if event.__error__:
        return 1
Index: gnue/forms/src/GFInstance.py
diff -c gnue/forms/src/GFInstance.py:1.59 gnue/forms/src/GFInstance.py:1.60
*** gnue/forms/src/GFInstance.py:1.59   Wed Oct 23 22:30:41 2002
--- gnue/forms/src/GFInstance.py        Thu Oct 24 00:39:02 2002
***************
*** 37,55 ****
  from gnue.forms.GFParser import loadForm
  from gnue.forms import VERSION
  from gnue.common import GDebug, GDataObjects
  
  from gnue.common.GClientApp import *
  
! class GFInstance(GFEventAware):
    #
    # Initialize the class
    #
    def __init__(self, manager, serial, connections, ui, disableSplash=0,
                 parameters={}):
  
!     self.eventController = GFEventController()
  
!     GFEventAware.__init__(self, self.eventController)
  
      self.connections = connections
      self.manager = manager
--- 37,56 ----
  from gnue.forms.GFParser import loadForm
  from gnue.forms import VERSION
  from gnue.common import GDebug, GDataObjects
+ from gnue.common import events
  
  from gnue.common.GClientApp import *
  
! class GFInstance(events.EventAware):
    #
    # Initialize the class
    #
    def __init__(self, manager, serial, connections, ui, disableSplash=0,
                 parameters={}):
  
!     self.eventController = events.EventController()
  
!     events.EventAware.__init__(self, self.eventController)
  
      self.connections = connections
      self.manager = manager
***************
*** 190,196 ****
        messageBox = GFMsgBox(self, message)
        messageBox.show()
        return
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordStatus()
      self.updateTip()
  
--- 191,197 ----
        messageBox = GFMsgBox(self, message)
        messageBox.show()
        return
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordStatus()
      self.updateTip()
  
***************
*** 204,210 ****
      if not self._form.endEditing():
        return
      self._form.previousEntry()
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordStatus()
      self.updateTip()
  
--- 205,211 ----
      if not self._form.endEditing():
        return
      self._form.previousEntry()
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordStatus()
      self.updateTip()
  
***************
*** 218,224 ****
      if not self._form.endEditing():
        return
      self._form.nextBlock()
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
  
      self.updateStatus()
  
--- 219,225 ----
      if not self._form.endEditing():
        return
      self._form.nextBlock()
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
  
      self.updateStatus()
  
***************
*** 232,238 ****
      if not self._form.endEditing():
        return
      self._form.previousBlock()
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    #
--- 233,239 ----
      if not self._form.endEditing():
        return
      self._form.previousBlock()
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    #
***************
*** 245,251 ****
        return
      print "GFInstance: Changing pages"
      self._form.findAndChangeFocus(self._form._pageList[event.data])
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    #
--- 246,252 ----
        return
      print "GFInstance: Changing pages"
      self._form.findAndChangeFocus(self._form._pageList[event.data])
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    #
***************
*** 256,262 ****
    # repeated code.
    #
    def _entryUpdated(self):
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordCounter()
      self.updateRecordStatus()
    
--- 257,263 ----
    # repeated code.
    #
    def _entryUpdated(self):
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateRecordCounter()
      self.updateRecordStatus()
    
***************
*** 368,374 ****
        message.show()
      else:
        self._form.processTrigger('On-Exit')
!       self.dispatchEvent(GFEvent('exitApplication',_('Current data is 
saved')))
  
      return
  
--- 369,375 ----
        message.show()
      else:
        self._form.processTrigger('On-Exit')
!       self.dispatchEvent(events.Event('exitApplication',_('Current data is 
saved')))
  
      return
  
***************
*** 379,387 ****
    #
    def deleteRecord(self, event):
      if self._form.readonly:
!       self.dispatchEvent(GFEvent('formALERT',_('Form is readonly')))
      elif self._form._currentBlock.restrictDelete:
!       self.dispatchEvent(GFEvent('formALERT',_('Block does not allow 
delete')));
      else:
        self._form.deleteRecord()
        self.updateRecordStatus()
--- 380,388 ----
    #
    def deleteRecord(self, event):
      if self._form.readonly:
!       self.dispatchEvent(events.Event('formALERT',_('Form is readonly')))
      elif self._form._currentBlock.restrictDelete:
!       self.dispatchEvent(events.Event('formALERT',_('Block does not allow 
delete')));
      else:
        self._form.deleteRecord()
        self.updateRecordStatus()
***************
*** 395,403 ****
      if not self._form.endEditing():
        return
      if self._form.readonly:
!       self.dispatchEvent(GFEvent('formALERT',_('Form is readonly')))
      elif self._form._currentBlock.restrictInsert:
!       self.dispatchEvent(GFEvent('formALERT',_('Block does not allow 
insert')));
      else:
        self._form.newRecord()
        self._entryUpdated()
--- 396,404 ----
      if not self._form.endEditing():
        return
      if self._form.readonly:
!       self.dispatchEvent(events.Event('formALERT',_('Form is readonly')))
      elif self._form._currentBlock.restrictInsert:
!       self.dispatchEvent(events.Event('formALERT',_('Block does not allow 
insert')));
      else:
        self._form.newRecord()
        self._entryUpdated()
***************
*** 414,420 ****
      formversion = self._form.getOption('version') or "Unknown"
      author = self._form.getOption('author') or "Unknown"
      description = self._form.getOption('description') or "Unknown"
!     
self.dispatchEvent(GFEvent('uiABOUT',[version,name,formversion,author,description]))
  
    #
    # toggleInsertMode(self):
--- 415,421 ----
      formversion = self._form.getOption('version') or "Unknown"
      author = self._form.getOption('author') or "Unknown"
      description = self._form.getOption('description') or "Unknown"
!     
self.dispatchEvent(events.Event('uiABOUT',[version,name,formversion,author,description]))
  
    #
    # toggleInsertMode(self):
***************
*** 451,465 ****
    # Routines to update parts of the UI's status bar
    #
    def updateInsertMode(self):
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,self._form._insertMode,None,None,None,None]))
  
    def updateRecordCounter(self):
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,self._form._currentBlock._currentRecord+1,self._form._currentBlock._recordCount,None,None]))
  
    def updatePageCounter(self):
      maxPages = len(self._form._pageList)
      count = self._form._pageList.index(self._form._currentPage)
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,None,None,None,None,count+1,maxPages]))
  
    def updateTip(self):
      tip = ''
--- 452,466 ----
    # Routines to update parts of the UI's status bar
    #
    def updateInsertMode(self):
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,self._form._insertMode,None,None,None,None]))
  
    def updateRecordCounter(self):
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,self._form._currentBlock._currentRecord+1,self._form._currentBlock._recordCount,None,None]))
  
    def updatePageCounter(self):
      maxPages = len(self._form._pageList)
      count = self._form._pageList.index(self._form._currentPage)
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,None,None,None,None,count+1,maxPages]))
  
    def updateTip(self):
      tip = ''
***************
*** 469,475 ****
        else:
          tip = ''
  
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
  
    def updateRecordStatus(self):
      if self._form._currentBlock.mode == 'query':
--- 470,476 ----
        else:
          tip = ''
  
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[tip,None,None,None,None,None,None]))
  
    def updateRecordStatus(self):
      if self._form._currentBlock.mode == 'query':
***************
*** 481,487 ****
      else:
        status = 'saved'
  
!     
self.dispatchEvent(GFEvent('uiUPDATESTATUS',[None,status,None,None,None,None,None]))
  
    def updateStatus(self):
      self.updateTip()
--- 482,488 ----
      else:
        status = 'saved'
  
!     
self.dispatchEvent(events.Event('uiUPDATESTATUS',[None,status,None,None,None,None,None]))
  
    def updateStatus(self):
      self.updateTip()
***************
*** 513,519 ****
          messageBox.show()
          return
  
!       
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
        self.updateRecordStatus()
        self.updateTip()
  
--- 514,520 ----
          messageBox.show()
          return
  
!       
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
        self.updateRecordStatus()
        self.updateTip()
  
***************
*** 531,537 ****
        return
  
      self._form.refreshDisplay(self._form)
!     
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    def executeCommit(self, event):
--- 532,538 ----
        return
  
      self._form.refreshDisplay(self._form)
!     
self.dispatchEvent(events.Event('gotoENTRY',{'object':self._form._currentEntry}))
      self.updateStatus()
  
    def executeCommit(self, event):
***************
*** 612,619 ****
      if not currentEntry:
        raise  _('There are no navigable widgets in this form.  Unable to 
display.')
  
!     self.dispatchEvent(GFEvent('gotoENTRY',{'object':currentEntry}))
!     self.dispatchEvent(GFEvent('updateENTRY',currentEntry))
      self._form.refreshDisplay(self._form)
      self.updateStatus()
      self._ui = ui
--- 613,620 ----
      if not currentEntry:
        raise  _('There are no navigable widgets in this form.  Unable to 
display.')
  
!     self.dispatchEvent(events.Event('gotoENTRY',{'object':currentEntry}))
!     self.dispatchEvent(events.Event('updateENTRY',currentEntry))
      self._form.refreshDisplay(self._form)
      self.updateStatus()
      self._ui = ui
Index: gnue/forms/src/GFObjects/GFBlock.py
diff -c gnue/forms/src/GFObjects/GFBlock.py:1.53 
gnue/forms/src/GFObjects/GFBlock.py:1.54
*** gnue/forms/src/GFObjects/GFBlock.py:1.53    Tue Sep 17 20:27:50 2002
--- gnue/forms/src/GFObjects/GFBlock.py Thu Oct 24 00:39:02 2002
***************
*** 28,39 ****
  # HISTORY:
  #
  
- from gnue.forms.GFEvent import *
  from gnue.forms.GFObjects.GFDataSource import GFDataSource
  
  from gnue.common import GDebug
  from gnue.common import GConditions
  from GFContainer import GFContainer
  
  import string
  
--- 28,39 ----
  # HISTORY:
  #
  
  from gnue.forms.GFObjects.GFDataSource import GFDataSource
  
  from gnue.common import GDebug
  from gnue.common import GConditions
  from GFContainer import GFContainer
+ from gnue.common import events
  
  import string
  
***************
*** 46,52 ****
  # GFBlock
  #
  #
! class GFBlock(GFContainer, GFEventAware):
    def __init__(self, parent=None):
      GFContainer.__init__(self, parent, 'GFBlock')
  
--- 46,52 ----
  # GFBlock
  #
  #
! class GFBlock(GFContainer, events.EventAware):
    def __init__(self, parent=None):
      GFContainer.__init__(self, parent, 'GFBlock')
  
***************
*** 119,125 ****
      form._blockList.append(self)
  
      # Initialize our events system
!     GFEventAware.__init__(self, self._form._app.eventController)
  
      # Get all focusable items, ordered correctly
      self._focusOrder = self.getFocusOrder()
--- 119,125 ----
      form._blockList.append(self)
  
      # Initialize our events system
!     events.EventAware.__init__(self, self._form._app.eventController)
  
      # Get all focusable items, ordered correctly
      self._focusOrder = self.getFocusOrder()
Index: gnue/forms/src/GFObjects/GFDataSource.py
diff -c gnue/forms/src/GFObjects/GFDataSource.py:1.16 
gnue/forms/src/GFObjects/GFDataSource.py:1.17
*** gnue/forms/src/GFObjects/GFDataSource.py:1.16       Tue May  7 21:23:37 2002
--- gnue/forms/src/GFObjects/GFDataSource.py    Thu Oct 24 00:39:02 2002
***************
*** 31,37 ****
  #
  
  from gnue.common.GDataSource import GDataSource
! from gnue.forms.GFEvent import GFEvent
  
  ############################################################
  # GFDataSource
--- 31,37 ----
  #
  
  from gnue.common.GDataSource import GDataSource
! from gnue.common import events
  
  ############################################################
  # GFDataSource
***************
*** 49,71 ****
    #
  
    def _beforeCommitInsert(self, record):
!     self._form.dispatchEvent(GFEvent('preInsert', record=record))
!     self._form.dispatchEvent(GFEvent('preCommit', record=record))
  
    def _beforeCommitUpdate(self, record):
!     self._form.dispatchEvent(GFEvent('preUpdate', record=record))
!     self._form.dispatchEvent(GFEvent('preCommit', record=record))
  
    def _beforeCommitDelete(self, record):
!     self._form.dispatchEvent(GFEvent('preDelete', record=record))
!     self._form.dispatchEvent(GFEvent('preCommit', record=record))
  
    def _onModification(self, record):
      try:
        record.__firstModification
      except NameError:
        record.__firstModification = 1
!       self._form.dispatchEvent(GFEvent('onRecordTouched', record))
  
    def _onNewRecordQueried(self, record):
      return 1
--- 49,71 ----
    #
  
    def _beforeCommitInsert(self, record):
!     self._form.dispatchEvent(events.Event('preInsert', record=record))
!     self._form.dispatchEvent(events.Event('preCommit', record=record))
  
    def _beforeCommitUpdate(self, record):
!     self._form.dispatchEvent(events.Event('preUpdate', record=record))
!     self._form.dispatchEvent(events.Event('preCommit', record=record))
  
    def _beforeCommitDelete(self, record):
!     self._form.dispatchEvent(events.Event('preDelete', record=record))
!     self._form.dispatchEvent(events.Event('preCommit', record=record))
  
    def _onModification(self, record):
      try:
        record.__firstModification
      except NameError:
        record.__firstModification = 1
!       self._form.dispatchEvent(events.Event('onRecordTouched', record))
  
    def _onNewRecordQueried(self, record):
      return 1
Index: gnue/forms/src/GFObjects/GFMsgBox.py
diff -c gnue/forms/src/GFObjects/GFMsgBox.py:1.3 
gnue/forms/src/GFObjects/GFMsgBox.py:1.4
*** gnue/forms/src/GFObjects/GFMsgBox.py:1.3    Mon Oct  8 08:38:14 2001
--- gnue/forms/src/GFObjects/GFMsgBox.py        Thu Oct 24 00:39:02 2002
***************
*** 31,37 ****
  # Copyright (c) 2000 Free Software Foundation
  #
  
! from gnue.forms.GFEvent import *
  
  ############################################################
  # GFMsgBox
--- 31,37 ----
  # Copyright (c) 2000 Free Software Foundation
  #
  
! from gnue.common import events
  
  ############################################################
  # GFMsgBox
***************
*** 45,51 ****
      self._parent = parent
  
    def show(self):
!     self._parent.dispatchEvent( GFEvent( 'msgBoxUI', self) )
  
  
  
--- 45,51 ----
      self._parent = parent
  
    def show(self):
!     self._parent.dispatchEvent( events.Event( 'msgBoxUI', self) )
  
  
  
Index: gnue/forms/src/uidrivers/_base/UIWidget.py
diff -c gnue/forms/src/uidrivers/_base/UIWidget.py:1.5 
gnue/forms/src/uidrivers/_base/UIWidget.py:1.6
*** gnue/forms/src/uidrivers/_base/UIWidget.py:1.5      Fri Sep 20 02:20:00 2002
--- gnue/forms/src/uidrivers/_base/UIWidget.py  Thu Oct 24 00:39:02 2002
***************
*** 30,36 ****
  #
  
  #from GFForm import *
! #from GFEvent import *
  #from gnue.common.GObjects import *
  
  class UIWidget:
--- 30,36 ----
  #
  
  #from GFForm import *
! #from gnue.common import events
  #from gnue.common.GObjects import *
  
  class UIWidget:
Index: gnue/forms/src/uidrivers/_base/UIdriver.py
diff -c gnue/forms/src/uidrivers/_base/UIdriver.py:1.75 
gnue/forms/src/uidrivers/_base/UIdriver.py:1.76
*** gnue/forms/src/uidrivers/_base/UIdriver.py:1.75     Wed Oct 23 23:08:22 2002
--- gnue/forms/src/uidrivers/_base/UIdriver.py  Thu Oct 24 00:39:02 2002
***************
*** 29,35 ****
  #
  
  from gnue.forms.GFForm import *
! from gnue.forms.GFEvent import *
  from gnue.common.GObjects import *
  
  # Used in updating the status bar
--- 29,35 ----
  #
  
  from gnue.forms.GFForm import *
! from gnue.common import events
  from gnue.common.GObjects import *
  
  # Used in updating the status bar
***************
*** 71,79 ****
  # Convience class to be inheritance by other GFUserInterface's
  # Provides basic functionality.
  #
! class GFUserInterfaceBase(GFEventAware):
    def __init__(self, eventHandler):
!     GFEventAware.__init__(self, eventHandler)
      #
      # Events I monitor...
      #
--- 71,79 ----
  # Convience class to be inheritance by other GFUserInterface's
  # Provides basic functionality.
  #
! class GFUserInterfaceBase(events.EventAware):
    def __init__(self, eventHandler):
!     events.EventAware.__init__(self, eventHandler)
      #
      # Events I monitor...
      #
***************
*** 125,131 ****
  
    def _stdHandler(self):
      object = self._currentObject[0]
!     event = self._updateCreateEvent(GFEvent('CreateUIWidget',None,
                     object=object,
                     container=self.currentWidget[0],
                     textWidth=self.textWidth,
--- 125,131 ----
  
    def _stdHandler(self):
      object = self._currentObject[0]
!     event = self._updateCreateEvent(events.Event('CreateUIWidget',None,
                     object=object,
                     container=self.currentWidget[0],
                     textWidth=self.textWidth,
***************
*** 275,281 ****
        index = formObject._visibleIndex
        self._formToUIWidget[formObject].indexedFocus(index)
  
!     self.dispatchEvent(GFEvent('beginEDITMODE', formObject))
  
  
    #
--- 275,281 ----
        index = formObject._visibleIndex
        self._formToUIWidget[formObject].indexedFocus(index)
  
!     self.dispatchEvent(events.Event('beginEDITMODE', formObject))
  
  
    #
Index: gnue/forms/src/uidrivers/gtk2/UIdriver.py
diff -c gnue/forms/src/uidrivers/gtk2/UIdriver.py:1.11 
gnue/forms/src/uidrivers/gtk2/UIdriver.py:1.12
*** gnue/forms/src/uidrivers/gtk2/UIdriver.py:1.11      Wed Oct 23 23:08:22 2002
--- gnue/forms/src/uidrivers/gtk2/UIdriver.py   Thu Oct 24 00:39:02 2002
***************
*** 63,69 ****
  
  
  from gnue.forms.GFForm import *
! from gnue.forms.GFEvent import *
  from gnue.forms import GFKeyMapper
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
--- 63,69 ----
  
  
  from gnue.forms.GFForm import *
! from gnue.common import events
  from gnue.forms import GFKeyMapper
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
***************
*** 224,262 ****
  
  
  
!     #$print self.dispatchEvent(GFEvent('requestCOMMIT'))
      
  
  
      #$FILE MENU..............
      menu_items = (
      (_("/_File"),            None,         None,        0, '<Branch>' ),
!     (_("/File/Save"),    'F6', lambda window, userdata, widget, 
l=self:l.dispatchEvent(GFEvent('requestCOMMIT')), 0, 
'<StockItem>','SAVE_CHANGES'),
!     (_("/File/Clear Form"), 'F11', lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestROLLBACK')),0,'<StockItem>','CLEAR_FORM' ),
!     (_("/File/Print"),       None, lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestPRINTOUT')), 0, None),
      (_("/File/Exit"),       None, lambda window,userdata,widget,l=self: 
l.menuExitEvent(), 0 , '<StockItem>','EXIT_FORM'),
  
      (_("/_Edit"),   None,None ,0, '<Branch>'),
!     (_("/_Edit/Cut"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestCUT')),0,'<StockItem>',gtk.STOCK_CUT),
!     (_("/_Edit/Copy"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestCOPY')),0,'<StockItem>',gtk.STOCK_COPY),
!     (_("/_Edit/Paste"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestPASTE')),0,'<StockItem>',gtk.STOCK_PASTE),
  
      (_("/_Data"),                  None, None,        0, '<Branch>'),
!     (_("/_Data/First Record"), '<Shft>Up',lambda window, userdata, widget, 
l=self: 
l.dispatchEvent(GFEvent('requestFIRSTRECORD')),0,'<StockItem>','FIRST_RECORD'),
!     (_("/_Data/Previous Record"),'Up', lambda window, userdata, widget, 
l=self: l.dispatchEvent(GFEvent('requestPREVRECORD')), 
0,'<StockItem>','PREVIOUS_RECORD'),
!     (_("/_Data/Next Record"),'Down', lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestNEXTRECORD')), 0, '<StockItem>','NEXT_RECORD'),
!     (_("/_Data/Last Record"),'<Shft>Down',lambda window, userdata, widget, 
l=self: l.dispatchEvent(GFEvent('requestLASTRECORD')), 0, 
'<StockItem>','LAST_RECORD'),
      (_("/_Data/Jump to Record ..."),'F2', lambda 
window,userdata,widget:_PROMPTFORRECORD(), 0, '<StockItem>','JUMP_TO_RECORD'),
!     (_("/_Data/New Record"),'F12', lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestNEWRECORD')),0,None),
!     (_("/_Data/Mark Record For Delete"),'F5',lambda window, userdata, widget, 
l=self: l.dispatchEvent(GFEvent('requestMARKFORDELETE')), 0, None),
!     (_("/_Data/Next Block"),'Page_Down',lambda window, userdata, widget, 
l=self: l.dispatchEvent(GFEvent('requestNEXTBLOCK')), 0,None),
!     (_("/_Data/Previous Block"),  'Page_Up', lambda window, userdata, widget, 
l=self: l.dispatchEvent(GFEvent('requestPREVBLOCK')), 0, None),
!     (_("/_Data/Enter Query"), 'F8', lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestENTERQUERY')), 0, None),
!     (_("/_Data/Execute Query"),'F9',lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestEXECQUERY')), 0, '<StockItem>','EXECUTE_QUERY'),
  
  
      (_("/_Help"),       None, None, 0, '<Branch>'),
!     (_("/Help/_About"), None,  lambda window, userdata, widget, l=self: 
l.dispatchEvent(GFEvent('requestABOUT')), 0, ''),
      )
  
      #$print "after menu"
--- 224,262 ----
  
  
  
!     #$print self.dispatchEvent(events.Event('requestCOMMIT'))
      
  
  
      #$FILE MENU..............
      menu_items = (
      (_("/_File"),            None,         None,        0, '<Branch>' ),
!     (_("/File/Save"),    'F6', lambda window, userdata, widget, 
l=self:l.dispatchEvent(events.Event('requestCOMMIT')), 0, 
'<StockItem>','SAVE_CHANGES'),
!     (_("/File/Clear Form"), 'F11', lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestROLLBACK')),0,'<StockItem>','CLEAR_FORM' ),
!     (_("/File/Print"),       None, lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestPRINTOUT')), 0, None),
      (_("/File/Exit"),       None, lambda window,userdata,widget,l=self: 
l.menuExitEvent(), 0 , '<StockItem>','EXIT_FORM'),
  
      (_("/_Edit"),   None,None ,0, '<Branch>'),
!     (_("/_Edit/Cut"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestCUT')),0,'<StockItem>',gtk.STOCK_CUT),
!     (_("/_Edit/Copy"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestCOPY')),0,'<StockItem>',gtk.STOCK_COPY),
!     (_("/_Edit/Paste"),None,lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestPASTE')),0,'<StockItem>',gtk.STOCK_PASTE),
  
      (_("/_Data"),                  None, None,        0, '<Branch>'),
!     (_("/_Data/First Record"), '<Shft>Up',lambda window, userdata, widget, 
l=self: 
l.dispatchEvent(events.Event('requestFIRSTRECORD')),0,'<StockItem>','FIRST_RECORD'),
!     (_("/_Data/Previous Record"),'Up', lambda window, userdata, widget, 
l=self: l.dispatchEvent(events.Event('requestPREVRECORD')), 
0,'<StockItem>','PREVIOUS_RECORD'),
!     (_("/_Data/Next Record"),'Down', lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestNEXTRECORD')), 0, 
'<StockItem>','NEXT_RECORD'),
!     (_("/_Data/Last Record"),'<Shft>Down',lambda window, userdata, widget, 
l=self: l.dispatchEvent(events.Event('requestLASTRECORD')), 0, 
'<StockItem>','LAST_RECORD'),
      (_("/_Data/Jump to Record ..."),'F2', lambda 
window,userdata,widget:_PROMPTFORRECORD(), 0, '<StockItem>','JUMP_TO_RECORD'),
!     (_("/_Data/New Record"),'F12', lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestNEWRECORD')),0,None),
!     (_("/_Data/Mark Record For Delete"),'F5',lambda window, userdata, widget, 
l=self: l.dispatchEvent(events.Event('requestMARKFORDELETE')), 0, None),
!     (_("/_Data/Next Block"),'Page_Down',lambda window, userdata, widget, 
l=self: l.dispatchEvent(events.Event('requestNEXTBLOCK')), 0,None),
!     (_("/_Data/Previous Block"),  'Page_Up', lambda window, userdata, widget, 
l=self: l.dispatchEvent(events.Event('requestPREVBLOCK')), 0, None),
!     (_("/_Data/Enter Query"), 'F8', lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestENTERQUERY')), 0, None),
!     (_("/_Data/Execute Query"),'F9',lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestEXECQUERY')), 0, 
'<StockItem>','EXECUTE_QUERY'),
  
  
      (_("/_Help"),       None, None, 0, '<Branch>'),
!     (_("/Help/_About"), None,  lambda window, userdata, widget, l=self: 
l.dispatchEvent(events.Event('requestABOUT')), 0, ''),
      )
  
      #$print "after menu"
***************
*** 430,436 ****
      toolbar.insert_stock( 'SAVE_CHANGES',
                          _("Save all changes to database"),
                           None,
!                          lambda button,window, 
l=self:l.dispatchEvent(GFEvent('requestCOMMIT')),
                           self.mainWindow,
                           -1)
  
--- 430,436 ----
      toolbar.insert_stock( 'SAVE_CHANGES',
                          _("Save all changes to database"),
                           None,
!                          lambda button,window, 
l=self:l.dispatchEvent(events.Event('requestCOMMIT')),
                           self.mainWindow,
                           -1)
  
***************
*** 438,474 ****
      toolbar.insert_stock('INSERT_RECORD',
                           _("insert a new record"),
                           None,
!                          lambda button,window, l=self: 
l.dispatchEvent(GFEvent('requestNEWRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('DELETE_RECORD',
                           _("delete record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestMARKFORDELETE')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('FIRST_RECORD',
                           _("first record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestFIRSTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('PREVIOUS_RECORD',
                           _("previous record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestPREVRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('NEXT_RECORD',
                           _("next record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestNEXTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('LAST_RECORD',
                           _("last record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestLASTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('JUMP_TO_RECORD',
--- 438,474 ----
      toolbar.insert_stock('INSERT_RECORD',
                           _("insert a new record"),
                           None,
!                          lambda button,window, l=self: 
l.dispatchEvent(events.Event('requestNEWRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('DELETE_RECORD',
                           _("delete record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestMARKFORDELETE')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('FIRST_RECORD',
                           _("first record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestFIRSTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('PREVIOUS_RECORD',
                           _("previous record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestPREVRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('NEXT_RECORD',
                           _("next record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestNEXTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('LAST_RECORD',
                           _("last record"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestLASTRECORD')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('JUMP_TO_RECORD',
***************
*** 480,498 ****
      toolbar.insert_stock('PREPARE_QUERY',
                           _("prepare a query"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestENTERQUERY')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('EXECUTE_QUERY',
                           _("execute query"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(GFEvent('requestEXECQUERY')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('CLEAR_FORM',
                           _("clear data"),
                           None ,
!                          lambda 
button,window,l=self:l.dispatchEvent(GFEvent('requestROLLBACK')),
                           self.mainWindow,
                           -1)
  
--- 480,498 ----
      toolbar.insert_stock('PREPARE_QUERY',
                           _("prepare a query"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestENTERQUERY')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('EXECUTE_QUERY',
                           _("execute query"),
                           None,
!                          lambda button,window,l=self: 
l.dispatchEvent(events.Event('requestEXECQUERY')),
                           self.mainWindow,
                           -1)
      toolbar.insert_stock('CLEAR_FORM',
                           _("clear data"),
                           None ,
!                          lambda 
button,window,l=self:l.dispatchEvent(events.Event('requestROLLBACK')),
                           self.mainWindow,
                           -1)
  
***************
*** 745,751 ****
    # trigger the closeTrap method
    #
    def windowExitEvent(self,*args):
!    self.dispatchEvent(GFEvent('requestEXIT'))
     return gtk.TRUE
  
    #
--- 745,751 ----
    # trigger the closeTrap method
    #
    def windowExitEvent(self,*args):
!    self.dispatchEvent(events.Event('requestEXIT'))
     return gtk.TRUE
  
    #
***************
*** 755,761 ****
    # trigger the closeTrap method
    #
    def menuExitEvent(self):
!    self.dispatchEvent(GFEvent('requestEXIT'))
  
  
    #
--- 755,761 ----
    # trigger the closeTrap method
    #
    def menuExitEvent(self):
!    self.dispatchEvent(events.Event('requestEXIT'))
  
  
    #
***************
*** 778,784 ****
  
      response=dlg.run()
      if response==gtk.RESPONSE_OK: 
!       action = self.dispatchEvent(GFEvent('requestRECORDNUMBER', 
entry.get_text()))
      else:
        action = None
  
--- 778,784 ----
  
      response=dlg.run()
      if response==gtk.RESPONSE_OK: 
!       action = self.dispatchEvent(events.Event('requestRECORDNUMBER', 
entry.get_text()))
      else:
        action = None
  
***************
*** 986,992 ****
    def buttonHandler(self,event,newWidget):
      action = None
      gfObject  = _WidgetToGFObj[newWidget]
!     action = GFEvent('fireTRIGGER',gfObject.trigger)
  
      if action:
        _EVENTPROCESSOR(action)
--- 986,992 ----
    def buttonHandler(self,event,newWidget):
      action = None
      gfObject  = _WidgetToGFObj[newWidget]
!     action = events.Event('fireTRIGGER',gfObject.trigger)
  
      if action:
        _EVENTPROCESSOR(action)
***************
*** 1093,1099 ****
  
      gfObject = _WidgetToGFObj[combo]
      eventdata = [gfObject, selected_text]
!     action = GFEvent('requestREPLACEVALUE',object=gfObject,index=selection,
                             text=selected_text)
      _EVENTPROCESSOR(action)
      #$ to ensure default handler does not get called after this
--- 1093,1099 ----
  
      gfObject = _WidgetToGFObj[combo]
      eventdata = [gfObject, selected_text]
!     action = 
events.Event('requestREPLACEVALUE',object=gfObject,index=selection,
                             text=selected_text)
      _EVENTPROCESSOR(action)
      #$ to ensure default handler does not get called after this
***************
*** 1107,1113 ****
      #$print "buttonstatus"
      #$print buttonStatus
      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))
!     _EVENTPROCESSOR(GFEvent('requestTOGGLECHKBOX',buttonStatus))
      return 1
  
  
--- 1107,1113 ----
      #$print "buttonstatus"
      #$print buttonStatus
      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))
!     _EVENTPROCESSOR(events.Event('requestTOGGLECHKBOX',buttonStatus))
      return 1
  
  
***************
*** 1159,1165 ****
      #$count=count+1     
  
      if _LOOPTRAP == 0:
!       action = GFEvent('requestPAGE',pagenumber)
        _EVENTPROCESSOR(action)
  
  
--- 1159,1165 ----
      #$count=count+1     
  
      if _LOOPTRAP == 0:
!       action = events.Event('requestPAGE',pagenumber)
        _EVENTPROCESSOR(action)
  
  
***************
*** 1263,1271 ****
  
    gfObject = _WidgetToGFObj[main_widget]
    count    = _WidgetToUIObj[main_widget].widgets.index(main_widget)
!   _EVENTPROCESSOR(GFEvent('requestFOCUS',gfObject))
!   _EVENTPROCESSOR(GFEvent('requestJUMPRECORD',count - gfObject._visibleIndex))
!   _EVENTPROCESSOR(GFEvent('requestCURSORMOVE',position=0))
  
    #$ do not allow the default handler to be called
    return 1
--- 1263,1271 ----
  
    gfObject = _WidgetToGFObj[main_widget]
    count    = _WidgetToUIObj[main_widget].widgets.index(main_widget)
!   _EVENTPROCESSOR(events.Event('requestFOCUS',gfObject))
!   _EVENTPROCESSOR(events.Event('requestJUMPRECORD',count - 
gfObject._visibleIndex))
!   _EVENTPROCESSOR(events.Event('requestCURSORMOVE',position=0))
  
    #$ do not allow the default handler to be called
    return 1
***************
*** 1314,1325 ****
      action = _PROMPTFORRECORD()
  
    elif command == 'NEWLINE':
!     action = GFEvent('requestKEYPRESS', '\n',
                    text='\n',
                    code=10)
  
    elif command:
!     action = GFEvent('request%s' % command)
  
    else:
      try:
--- 1314,1325 ----
      action = _PROMPTFORRECORD()
  
    elif command == 'NEWLINE':
!     action = events.Event('requestKEYPRESS', '\n',
                    text='\n',
                    code=10)
  
    elif command:
!     action = events.Event('request%s' % command)
  
    else:
      try:
***************
*** 1331,1337 ****
               international_string == "\n" or 128 <= keycode <= 255)) \
           or \
           (len(international_string) > 1): #$ if it is multibyte, send it too
!         action = GFEvent('requestKEYPRESS', international_string,
                        text=international_string,
                        code=keycode)
      except ValueError:
--- 1331,1337 ----
               international_string == "\n" or 128 <= keycode <= 255)) \
           or \
           (len(international_string) > 1): #$ if it is multibyte, send it too
!         action = events.Event('requestKEYPRESS', international_string,
                        text=international_string,
                        code=keycode)
      except ValueError:
Index: gnue/forms/src/uidrivers/nstti/UIdriver.py
diff -c gnue/forms/src/uidrivers/nstti/UIdriver.py:1.13 
gnue/forms/src/uidrivers/nstti/UIdriver.py:1.14
*** gnue/forms/src/uidrivers/nstti/UIdriver.py:1.13     Wed Oct 23 23:08:22 2002
--- gnue/forms/src/uidrivers/nstti/UIdriver.py  Thu Oct 24 00:39:02 2002
***************
*** 31,37 ****
  import curses
  
  from gnue.forms.GFForm import *
! from gnue.forms.GFEvent import *
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
  
--- 31,37 ----
  import curses
  
  from gnue.forms.GFForm import *
! from gnue.common import events
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
  
***************
*** 407,413 ****
      pass
  ##     object = _eventObjTowxWindow(event)
  ##     if event.CanVeto():
! ##       self.dispatchEvent(GFEvent('requestEXIT'))
  ##     else:
  ##       object.Destroy()
  
--- 407,413 ----
      pass
  ##     object = _eventObjTowxWindow(event)
  ##     if event.CanVeto():
! ##       self.dispatchEvent(events.Event('requestEXIT'))
  ##     else:
  ##       object.Destroy()
  
***************
*** 548,554 ****
  ##       id = object.GetId()
  ##       gfObject     = _IdToGFObj[id]
  
!      _EVENTPROCESSOR(GFEvent('fireTRIGGER',self.__trigger))
  
  ##     if action:
  ##       _EVENTPROCESSOR(action)
--- 548,554 ----
  ##       id = object.GetId()
  ##       gfObject     = _IdToGFObj[id]
  
!      _EVENTPROCESSOR(events.Event('fireTRIGGER',self.__trigger))
  
  ##     if action:
  ##       _EVENTPROCESSOR(action)
***************
*** 734,742 ****
  ##     gfObject     = _IdToGFObj[id]
  ##     screenWidget = _IdToWxObj[id]
  ##     count        = _IdToUIObj[id].widgets.index(screenWidget)
! ##     self._eventProcessor(GFEvent('requestFOCUS',gfObject))
! ##     self._eventProcessor(GFEvent('requestJUMPRECORD',count - 
gfObject._visibleIndex))
! ##     
self._eventProcessor(GFEvent('requestCURSORMOVE',position=cursorPosition))
  
  ##     event.Skip()
  
--- 734,742 ----
  ##     gfObject     = _IdToGFObj[id]
  ##     screenWidget = _IdToWxObj[id]
  ##     count        = _IdToUIObj[id].widgets.index(screenWidget)
! ##     self._eventProcessor(events.Event('requestFOCUS',gfObject))
! ##     self._eventProcessor(events.Event('requestJUMPRECORD',count - 
gfObject._visibleIndex))
! ##     
self._eventProcessor(events.Event('requestCURSORMOVE',position=cursorPosition))
  
  ##     event.Skip()
  
***************
*** 764,777 ****
        #  self.promptForRecordNumber()
  
      if command:
!       action = GFEvent('request%s' % command)
  
      else:
        try:
          GDebug.printMesg(1,'Keystroke=(%s,%s)' % (keystroke, chr(keystroke)))
          if 32 <= keystroke <= 255 and chr(keystroke) in string.printable:
            GDebug.printMesg(1,'Keystroke is printable')
!           action = GFEvent('requestKEYPRESS', chr(keystroke),
                           text=chr(keystroke),
                           code=keystroke)
        except ValueError:
--- 764,777 ----
        #  self.promptForRecordNumber()
  
      if command:
!       action = events.Event('request%s' % command)
  
      else:
        try:
          GDebug.printMesg(1,'Keystroke=(%s,%s)' % (keystroke, chr(keystroke)))
          if 32 <= keystroke <= 255 and chr(keystroke) in string.printable:
            GDebug.printMesg(1,'Keystroke is printable')
!           action = events.Event('requestKEYPRESS', chr(keystroke),
                           text=chr(keystroke),
                           code=keystroke)
        except ValueError:
Index: gnue/forms/src/uidrivers/wx/UIdriver.py
diff -c gnue/forms/src/uidrivers/wx/UIdriver.py:1.197 
gnue/forms/src/uidrivers/wx/UIdriver.py:1.198
*** gnue/forms/src/uidrivers/wx/UIdriver.py:1.197       Wed Oct 23 23:08:23 2002
--- gnue/forms/src/uidrivers/wx/UIdriver.py     Thu Oct 24 00:39:02 2002
***************
*** 31,37 ****
  from wxPython.wx import *
  from wxPython.lib.splashscreen import SplashScreen
  from gnue.forms.GFForm import *
! from gnue.forms.GFEvent import *
  from gnue.forms import GFKeyMapper
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
--- 31,37 ----
  from wxPython.wx import *
  from wxPython.lib.splashscreen import SplashScreen
  from gnue.forms.GFForm import *
! from gnue.common import events
  from gnue.forms import GFKeyMapper
  from gnue.forms.uidrivers._base.UIdriver import *
  from gnue.forms.uidrivers._base.UIWidget import *
***************
*** 390,396 ****
      menu.Append(id, text, help)
      if event:
        EVT_MENU(self._wxapp, id,
!         lambda event, l=self, e=event: l.dispatchEvent(GFEvent(e)))
        self.__eventMenuMapping[event] = id
      return id
  
--- 390,396 ----
      menu.Append(id, text, help)
      if event:
        EVT_MENU(self._wxapp, id,
!         lambda event, l=self, e=event: l.dispatchEvent(events.Event(e)))
        self.__eventMenuMapping[event] = id
      return id
  
***************
*** 565,571 ****
      dlg = wxTextEntryDialog(self.mainWindow, _('Enter record number to jump 
to'),
                                                          _('Which record?'))
      if dlg.ShowModal() == wxID_OK:
!       action = self.dispatchEvent(GFEvent('requestRECORDNUMBER', 
dlg.GetValue()))
      else:
        action = None
  
--- 565,571 ----
      dlg = wxTextEntryDialog(self.mainWindow, _('Enter record number to jump 
to'),
                                                          _('Which record?'))
      if dlg.ShowModal() == wxID_OK:
!       action = self.dispatchEvent(events.Event('requestRECORDNUMBER', 
dlg.GetValue()))
      else:
        action = None
  
***************
*** 582,588 ****
    def closeTrap(self,event):
      object = _eventObjTowxWindow(event)
      if event.CanVeto():
!       self.dispatchEvent(GFEvent('requestEXIT'))
      else:
        object.Destroy()
  
--- 582,588 ----
    def closeTrap(self,event):
      object = _eventObjTowxWindow(event)
      if event.CanVeto():
!       self.dispatchEvent(events.Event('requestEXIT'))
      else:
        object.Destroy()
  
***************
*** 774,780 ****
  
        id = object.GetId()
        gfObject     = _IdToGFObj[id]
!       action = GFEvent('fireTRIGGER',gfObject.trigger)
        self._eventHandler(action)
  
  
--- 774,780 ----
  
        id = object.GetId()
        gfObject     = _IdToGFObj[id]
!       action = events.Event('fireTRIGGER',gfObject.trigger)
        self._eventHandler(action)
  
  
***************
*** 867,873 ****
  
        gfObject     = _IdToGFObj[id]
        eventdata = [gfObject, event.GetString()]
!       action = GFEvent('requestREPLACEVALUE',object=gfObject,
                                index=selection, text=event.GetString())
      self._eventHandler(action)
  
--- 867,873 ----
  
        gfObject     = _IdToGFObj[id]
        eventdata = [gfObject, event.GetString()]
!       action = events.Event('requestREPLACEVALUE',object=gfObject,
                                index=selection, text=event.GetString())
      self._eventHandler(action)
  
***************
*** 880,889 ****
        #for key in self._formToUI.keys():
        #  for count in range(len(self._formToUI[key])):
        #    if self._formToUI[key][count].GetId() == object.GetId():
!       #      self.dispatchEvent(GFEvent('requestFOCUS',key))
        #      eventdata = [key, object.GetValue()]
!       #      self.dispatchEvent(GFEvent('requestJUMPRECORD',count - 
key._visibleIndex))
!       #      self.dispatchEvent(GFEvent('requestTOGGLECHKBOX',eventdata))
        #      break
  
        #if action:
--- 880,889 ----
        #for key in self._formToUI.keys():
        #  for count in range(len(self._formToUI[key])):
        #    if self._formToUI[key][count].GetId() == object.GetId():
!       #      self.dispatchEvent(events.Event('requestFOCUS',key))
        #      eventdata = [key, object.GetValue()]
!       #      self.dispatchEvent(events.Event('requestJUMPRECORD',count - 
key._visibleIndex))
!       #      self.dispatchEvent(events.Event('requestTOGGLECHKBOX',eventdata))
        #      break
  
        #if action:
***************
*** 932,938 ****
        action = None
  
        if self.__ui.__notebookLoopTrap == 0:
!         action = GFEvent('requestPAGE',event.GetSelection())
          self.__ui.__notebookLoopTrap = 1
        else:
          self.__ui.__notebookLoopTrap = 0
--- 932,938 ----
        action = None
  
        if self.__ui.__notebookLoopTrap == 0:
!         action = events.Event('requestPAGE',event.GetSelection())
          self.__ui.__notebookLoopTrap = 1
        else:
          self.__ui.__notebookLoopTrap = 0
***************
*** 1039,1049 ****
      gfObject     = _IdToGFObj[id]
      screenWidget = _IdToWxObj[id]
      count        = _IdToUIObj[id].widgets.index(screenWidget)
!     self._eventProcessor(GFEvent('requestFOCUS',gfObject))
!     self._eventProcessor(GFEvent('requestJUMPRECORD',count - 
gfObject._visibleIndex))
!     self._eventProcessor(GFEvent('requestCURSORMOVE',position=cursorPosition))
  #    if gfObject._type == 'GFButton':
! #      self._eventProcessor(GFEvent('fireTRIGGER',gfObject.trigger))
  
      event.Skip()
  
--- 1039,1049 ----
      gfObject     = _IdToGFObj[id]
      screenWidget = _IdToWxObj[id]
      count        = _IdToUIObj[id].widgets.index(screenWidget)
!     self._eventProcessor(events.Event('requestFOCUS',gfObject))
!     self._eventProcessor(events.Event('requestJUMPRECORD',count - 
gfObject._visibleIndex))
!     
self._eventProcessor(events.Event('requestCURSORMOVE',position=cursorPosition))
  #    if gfObject._type == 'GFButton':
! #      self._eventProcessor(events.Event('fireTRIGGER',gfObject.trigger))
  
      event.Skip()
  
***************
*** 1096,1115 ****
        action = _PROMPTFORRECORD()
  
      elif command == 'NEWLINE':
!       action = GFEvent('requestKEYPRESS', '\n',
                       text='\n',
                       code=10)
  
      elif command:
!       action = GFEvent('request%s' % command)
  
      elif object._type == 'GFButton':
!       action = GFEvent('fireTRIGGER',object.trigger)
  
      elif object.style == 'checkbox' and object._type == 'GFEntry':
        # <space> <=> <click>
        if keycode == 32:
!           action = GFEvent('requestTOGGLECHKBOX')
        else:
            # maybe some background error message here
            pass
--- 1096,1115 ----
        action = _PROMPTFORRECORD()
  
      elif command == 'NEWLINE':
!       action = events.Event('requestKEYPRESS', '\n',
                       text='\n',
                       code=10)
  
      elif command:
!       action = events.Event('request%s' % command)
  
      elif object._type == 'GFButton':
!       action = events.Event('fireTRIGGER',object.trigger)
  
      elif object.style == 'checkbox' and object._type == 'GFEntry':
        # <space> <=> <click>
        if keycode == 32:
!           action = events.Event('requestTOGGLECHKBOX')
        else:
            # maybe some background error message here
            pass
***************
*** 1118,1124 ****
          char = chr(keycode)
          if char in string.printable or char == "\n" or \
             128 <= keycode <= 255:
!           action = GFEvent('requestKEYPRESS', char,
                           text=char,
                           code=keycode)
        except ValueError:
--- 1118,1124 ----
          char = chr(keycode)
          if char in string.printable or char == "\n" or \
             128 <= keycode <= 255:
!           action = events.Event('requestKEYPRESS', char,
                           text=char,
                           code=keycode)
        except ValueError:




reply via email to

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