[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue common/etc/sample.gnue.conf common/src/GCo...
From: |
Jason Cater |
Subject: |
gnue common/etc/sample.gnue.conf common/src/GCo... |
Date: |
Thu, 31 Jan 2002 00:41:31 -0500 |
CVSROOT: /home/cvs
Module name: gnue
Changes by: Jason Cater <address@hidden> 02/01/31 00:41:31
Modified files:
common/etc : sample.gnue.conf
common/src : GConfig.py
forms/src : GFClient.py GFInstance.py GFKeyMapper.py
UIcurses.py UIwxpython.py
Log message:
removed keystroke event logic out of UI* and into KeyMapper
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/common/etc/sample.gnue.conf.diff?cvsroot=OldCVS&tr1=1.14&tr2=1.15&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/common/src/GConfig.py.diff?cvsroot=OldCVS&tr1=1.8&tr2=1.9&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFClient.py.diff?cvsroot=OldCVS&tr1=1.32&tr2=1.33&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFInstance.py.diff?cvsroot=OldCVS&tr1=1.25&tr2=1.26&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/GFKeyMapper.py.diff?cvsroot=OldCVS&tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/UIcurses.py.diff?cvsroot=OldCVS&tr1=1.12&tr2=1.13&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/forms/src/UIwxpython.py.diff?cvsroot=OldCVS&tr1=1.132&tr2=1.133&r1=text&r2=text
Patches:
Index: gnue/common/etc/sample.gnue.conf
diff -c gnue/common/etc/sample.gnue.conf:1.14
gnue/common/etc/sample.gnue.conf:1.15
*** gnue/common/etc/sample.gnue.conf:1.14 Wed Jan 16 19:10:48 2002
--- gnue/common/etc/sample.gnue.conf Thu Jan 31 00:41:30 2002
***************
*** 112,117 ****
--- 112,158 ----
textPercentage = 100
+ #################################
+ #
+ # Bind keystrokes to events
+ #
+ # Keystrokes can be of the form:
+ # Ctrl-|Alt-|Shift-Keystroke
+ #
+
+ ## Field navigation
+ # key_NextEntry = Tab
+ # key_PrevEntry = Shift-Tab
+ # key_NextBlock = PageDown
+ # key_PrevBlock = PageUp
+
+ ## Record navigation
+ # key_PrevRecord = Up
+ # key_NextRecord = Down
+ # key_JumpRecord = F2
+
+ ## Text editing
+ # key_CursorLeft = Left
+ # key_CursorRight = Right
+ # key_CursorEnd = End
+ # # key_CursorHome = Home
+ # key_Backspace = Backspace
+ # key_ModeToggle = Insert
+ # key_Delete = Delete
+
+ ## Record modifications
+ # key_MarkForDelete = F5
+ # key_Commit = F6
+ # key_EnterQuery = F8
+ # key_ExecQuery = F9
+ # key_Rollback = F11
+ # key_NewRecord = F12
+ #
+ #################################
+
+
+
+
#[designer]
# Automatically log in to needed connections to do schema
AutoConnect = 0
***************
*** 119,126 ****
# Use syntax highlighting in the trigger editor
ColorizeCode = 0
! # When auto-creating entries using drag-and-drop,
! # create labels?
# no = Do not create labels
# left = Create labels to the left of the widget
# above = Create labels above the widget
--- 160,167 ----
# Use syntax highlighting in the trigger editor
ColorizeCode = 0
! # When auto-creating entries using drag-and-drop,
! # create labels?
# no = Do not create labels
# left = Create labels to the left of the widget
# above = Create labels above the widget
***************
*** 128,135 ****
CreateLabelsOnDrop = left
[navigator]
disableSplash = 1
ProcessDir = processes
! #RunFormCommand = gfclient
--- 169,177 ----
CreateLabelsOnDrop = left
+
[navigator]
disableSplash = 1
ProcessDir = processes
! #RunFormCommand = gfclient
Index: gnue/common/src/GConfig.py
diff -c gnue/common/src/GConfig.py:1.8 gnue/common/src/GConfig.py:1.9
*** gnue/common/src/GConfig.py:1.8 Tue Jan 15 17:51:41 2002
--- gnue/common/src/GConfig.py Thu Jan 31 00:41:31 2002
***************
*** 13,19 ****
#
# You should have received a copy of the GNU General Public
# License along with program; see the file COPYING. If not,
! # write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright 2000, 2001 Free Software Foundation
--- 13,19 ----
#
# You should have received a copy of the GNU General Public
# License along with program; see the file COPYING. If not,
! # write to the Free Software Foundation, Inc., 59 Temple Place
# - Suite 330, Boston, MA 02111-1307, USA.
#
# Copyright 2000, 2001 Free Software Foundation
***************
*** 23,41 ****
#
# DESCRIPTION:
# Class that loads the gnue.conf files so gnue apps can get
! # default settings.
#
# NOTES:
#
# HISTORY:
#
! from GConfigParser import *
import os, sys, string
from gnue.common import openResource
import GDebug
import GDataObjects
import GLoginHandler
TRUE = 1
FALSE = 0
--- 23,42 ----
#
# DESCRIPTION:
# Class that loads the gnue.conf files so gnue apps can get
! # default settings.
#
# NOTES:
#
# HISTORY:
#
! from GConfigParser import *
import os, sys, string
from gnue.common import openResource
import GDebug
import GDataObjects
import GLoginHandler
+ import copy
TRUE = 1
FALSE = 0
***************
*** 52,57 ****
--- 53,64 ----
else:
GDebug.printMesg(1,"Returning default value %s for %s" % (varName,
default))
return default
+
+ def getDict():
+ try:
+ return copy.deepcopy(_OPTION.options)
+ except:
+ return {}
class InvalidFormatError (StandardError):
# Raised if the Connections Definition File is
Index: gnue/forms/src/GFClient.py
diff -c gnue/forms/src/GFClient.py:1.32 gnue/forms/src/GFClient.py:1.33
*** gnue/forms/src/GFClient.py:1.32 Tue Nov 20 14:40:12 2001
--- gnue/forms/src/GFClient.py Thu Jan 31 00:41:31 2002
***************
*** 31,38 ****
# make the next/prec methods more generic in the GFForm
# change self._form in here to a list
! import pstats
! import os
import os.path
import sys
import urllib
--- 31,37 ----
# make the next/prec methods more generic in the GFForm
# change self._form in here to a list
! import os, copy
import os.path
import sys
import urllib
***************
*** 40,45 ****
--- 39,45 ----
from gnue.forms.GFInstance import *
from gnue.forms.GFForm import *
from gnue.forms.GFParser import loadForm
+ from gnue.forms import GFKeyMapper
from gnue.common import GDebug
from gnue.common import GConfig, GDataObjects, GConnections
from gnue.common.GClientApp import *
***************
*** 53,59 ****
COMMAND = "gfclient"
NAME = "GNUe Forms"
USAGE = "gfclient [options] file"
! COMMAND_OPTIONS = [
[ 'user_interface', 'u', 'user_interface', 1, 'gui', 'type',
'The currently supported values for <type> are ' \
+'gui, text (unstable), and pytext' ],
--- 53,59 ----
COMMAND = "gfclient"
NAME = "GNUe Forms"
USAGE = "gfclient [options] file"
! COMMAND_OPTIONS = [
[ 'user_interface', 'u', 'user_interface', 1, 'gui', 'type',
'The currently supported values for <type> are ' \
+'gui, text (unstable), and pytext' ],
***************
*** 92,100 ****
try:
if string.split(string.lower(os.path.basename(sys.argv[0])),'.')[0]
!= 'gfclient':
formfile =
os.environ['INSTALL_PREFIX']+'/'+GConfig.get('FormDir')+"/"+os.path.basename(sys.argv[0])+".gfd"
! else:
raise IndexError
! except IndexError:
self.handleStartupError ("No Forms Definition File Specified.")
--- 92,100 ----
try:
if string.split(string.lower(os.path.basename(sys.argv[0])),'.')[0]
!= 'gfclient':
formfile =
os.environ['INSTALL_PREFIX']+'/'+GConfig.get('FormDir')+"/"+os.path.basename(sys.argv[0])+".gfd"
! else:
raise IndexError
! except IndexError:
self.handleStartupError ("No Forms Definition File Specified.")
***************
*** 115,125 ****
--- 115,138 ----
from gnue.forms import UIcurses
self._ui=UIcurses
+ self.loadKeyMappings()
self.runForm(formfile, self.disableSplash)
+ def loadKeyMappings(self):
+ options = GConfig.getDict()
+ mapping = {}
+
+ for key in options.keys():
+ if string.lower(key)[:4] == 'key_':
+ mapping[key] = options[key]
+
+ GFKeyMapper.KeyMapper.loadUserKeyMap(mapping)
+
+
def runFormFromTrigger(self, formFile):
self.runForm(formFile, disableSplash=1)
+
def runForm(self, formFile, disableSplash=0):
try:
Index: gnue/forms/src/GFInstance.py
diff -c gnue/forms/src/GFInstance.py:1.25 gnue/forms/src/GFInstance.py:1.26
*** gnue/forms/src/GFInstance.py:1.25 Mon Jan 7 18:55:24 2002
--- gnue/forms/src/GFInstance.py Thu Jan 31 00:41:31 2002
***************
*** 31,52 ****
# make the next/prec methods more generic in the GFForm
# change self._form in here to a list
- import pstats
import os
- import os.path
import sys
- import urllib
import gnue.common.GConfig
from gnue.forms.GFForm import *
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):
--- 31,49 ----
# make the next/prec methods more generic in the GFForm
# change self._form in here to a list
import os
import sys
import gnue.common.GConfig
from gnue.forms.GFForm import *
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):
***************
*** 54,60 ****
self.connections = connections
self.manager = manager
! self._serial = serial
#self._uimodule = ui.GFUserInterface
self._uimodule = ui
self._disableSplash = disableSplash
--- 51,57 ----
self.connections = connections
self.manager = manager
! self._serial = serial
#self._uimodule = ui.GFUserInterface
self._uimodule = ui
self._disableSplash = disableSplash
***************
*** 67,73 ****
'requestNEXTRECORD' : self.nextRecord,
'requestRECORDNUMBER' : self.jumpRecords,
'requestPAGE' : self.gotoPage,
!
'requestKEYPRESS' : self.keyPress,
'requestREPLACEVALUE' : self.replaceValue,
'requestCURSORLEFT' : self.cursorMove,
--- 64,70 ----
'requestNEXTRECORD' : self.nextRecord,
'requestRECORDNUMBER' : self.jumpRecords,
'requestPAGE' : self.gotoPage,
!
'requestKEYPRESS' : self.keyPress,
'requestREPLACEVALUE' : self.replaceValue,
'requestCURSORLEFT' : self.cursorMove,
***************
*** 81,89 ****
'requestNEWRECORD' : self.newRecord,
'requestMARKFORDELETE' : self.deleteRecord,
!
! 'requestQUERY' : self.requestQuery,
! 'executeQUERY' : self.executeQuery,
'requestCOMMIT' : self.executeCommit,
'requestPRINTOUT' : self.executePrintout,
'requestROLLBACK' : self.executeRollback,
--- 78,86 ----
'requestNEWRECORD' : self.newRecord,
'requestMARKFORDELETE' : self.deleteRecord,
!
! 'requestENTERQUERY' : self.requestQuery,
! 'requestEXECQUERY' : self.executeQuery,
'requestCOMMIT' : self.executeCommit,
'requestPRINTOUT' : self.executePrintout,
'requestROLLBACK' : self.executeRollback,
***************
*** 91,115 ****
'requestABOUT' : self.executeAbout,
'fireTRIGGER' : self.fireTrigger,
! 'requestTOGGLECHKBOX' : self.toggleCheckBox,
}
!
#
# Associate a form object with this instance
#
! def setForm(self, form):
self._form = form
#
# Return this instance's serial number
#
! def getSerialNumber(self):
return self._serial
#
# Return this instance's manager
#
! def getManager(self):
return self.manager
#
--- 88,112 ----
'requestABOUT' : self.executeAbout,
'fireTRIGGER' : self.fireTrigger,
! 'requestTOGGLECHKBOX' : self.toggleCheckBox,
}
!
#
# Associate a form object with this instance
#
! def setForm(self, form):
self._form = form
#
# Return this instance's serial number
#
! def getSerialNumber(self):
return self._serial
#
# Return this instance's manager
#
! def getManager(self):
return self.manager
#
***************
*** 225,231 ****
if message:
messageBox = GFMsgBox(self,message)
messageBox.show()
! return
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
self.updateRecordCounter()
--- 222,228 ----
if message:
messageBox = GFMsgBox(self,message)
messageBox.show()
! return
self.dispatchEvent(GFEvent('gotoENTRY',{'object':self._form._currentEntry}))
self.updateRecordCounter()
***************
*** 269,275 ****
self.updateRecordStatus()
else:
self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
!
#
# executeAbout
--- 266,272 ----
self.updateRecordStatus()
else:
self.dispatchEvent(GFEvent('formALERT','Form is readonly'))
!
#
# executeAbout
Index: gnue/forms/src/GFKeyMapper.py
diff -c gnue/forms/src/GFKeyMapper.py:1.2 gnue/forms/src/GFKeyMapper.py:1.3
*** gnue/forms/src/GFKeyMapper.py:1.2 Sat Jan 19 16:43:24 2002
--- gnue/forms/src/GFKeyMapper.py Thu Jan 31 00:41:31 2002
***************
*** 56,62 ****
#
def setUIKeyMap(self, keyset):
self.__keyTranslations = keyset
! self._translateUserKeyMap
#
# Install a key/event mapping.
--- 56,62 ----
#
def setUIKeyMap(self, keyset):
self.__keyTranslations = keyset
! self._translateUserKeyMap()
#
# Install a key/event mapping.
***************
*** 67,73 ****
#
def setUserKeyMap(self, keymap):
self.__functionMap = keymap
! self._translateUserKeyMap
#
--- 67,73 ----
#
def setUserKeyMap(self, keymap):
self.__functionMap = keymap
! self._translateUserKeyMap()
#
***************
*** 117,123 ****
usermap[(base, shifted, ctrl, meta)] = event
! self.setUserKeyMap(userMap)
#
--- 117,136 ----
usermap[(base, shifted, ctrl, meta)] = event
!
! # Now, load any default keys they forgot to bind
! for key in DefaultMapping.keys():
! if DefaultMapping[key] not in usermap.values() and \
! not usermap.has_key(key):
! usermap[key] = DefaultMapping[key]
!
! # Just in case...
! usermap.update( {
! (vk.TAB, 0, 0, 0) : 'NEXTENTRY',
! (vk.ENTER, 0, 0, 0) : 'NEXTENTRY',
! (vk.RETURN, 0, 0, 0) : 'NEXTENTRY' } )
!
! self.setUserKeyMap(usermap)
#
***************
*** 156,161 ****
--- 169,175 ----
# as it gets called for each keystroke
#
def getEvent(self, basekey, shift=0, ctrl=0, meta=0):
+ ##print "(basekey, shift, ctrl, meta)=(%s,%s,%s,%s)" % (basekey, shift,
ctrl, meta)
try:
return self._translatedUserKeyMap[(basekey, shift, ctrl, meta)]
except KeyError:
***************
*** 165,177 ****
# Used internally to create a quick lookup
# hash for time-sensitive methods.
#
! def _translateUserKeyMap(self, keymap):
! self._quickFunctionMap = {}
for keys in self.__functionMap.keys():
! base, sh, ctrl, meta = keys
! base = self._translatedUserKeyMap[(self.__keyTranslations[base],
sh, ctrl, meta)] = self.__functionMap[keys]
!
--- 179,193 ----
# Used internally to create a quick lookup
# hash for time-sensitive methods.
#
! def _translateUserKeyMap(self):
! self._translatedUserKeyMap = {}
for keys in self.__functionMap.keys():
! try:
! base, sh, ctrl, meta = keys
! self._translatedUserKeyMap[(self.__keyTranslations[base],
sh, ctrl, meta)] = self.__functionMap[keys]
! except KeyError:
! pass
***************
*** 235,241 ****
return key
return None
!
#####################################################################
#
# Default event mappings
--- 251,257 ----
return key
return None
!
#####################################################################
#
# Default event mappings
***************
*** 248,254 ****
(vk.TAB, 0, 0, 0) : 'NEXTENTRY',
(vk.ENTER, 0, 0, 0) : 'NEXTENTRY',
(vk.RETURN, 0, 0, 0) : 'NEXTENTRY',
! (vk.TAB, 1, 0, 0) : 'NEXTENTRY',
(vk.LEFT, 0, 0, 0) : 'CURSORLEFT',
(vk.RIGHT, 0, 0, 0) : 'CURSORRIGHT',
(vk.END, 0, 0, 0) : 'CURSOREND',
--- 264,270 ----
(vk.TAB, 0, 0, 0) : 'NEXTENTRY',
(vk.ENTER, 0, 0, 0) : 'NEXTENTRY',
(vk.RETURN, 0, 0, 0) : 'NEXTENTRY',
! (vk.TAB, 1, 0, 0) : 'PREVENTRY',
(vk.LEFT, 0, 0, 0) : 'CURSORLEFT',
(vk.RIGHT, 0, 0, 0) : 'CURSORRIGHT',
(vk.END, 0, 0, 0) : 'CURSOREND',
***************
*** 258,270 ****
(vk.DELETE, 0, 0, 0) : 'DELETE',
(vk.UP, 0, 0, 0) : 'PREVRECORD',
(vk.DOWN, 0, 0, 0) : 'NEXTRECORD',
(vk.F5, 0, 0, 0) : 'MARKFORDELETE',
(vk.F6, 0, 0, 0) : 'COMMIT',
(vk.F8, 0, 0, 0) : 'ENTERQUERY',
(vk.F9, 0, 0, 0) : 'EXECQUERY',
(vk.F11, 0, 0, 0) : 'ROLLBACK',
(vk.F12, 0, 0, 0) : 'NEWRECORD',
-
}
--- 274,286 ----
(vk.DELETE, 0, 0, 0) : 'DELETE',
(vk.UP, 0, 0, 0) : 'PREVRECORD',
(vk.DOWN, 0, 0, 0) : 'NEXTRECORD',
+ (vk.F2, 0, 0, 0) : 'JUMPRECORD',
(vk.F5, 0, 0, 0) : 'MARKFORDELETE',
(vk.F6, 0, 0, 0) : 'COMMIT',
(vk.F8, 0, 0, 0) : 'ENTERQUERY',
(vk.F9, 0, 0, 0) : 'EXECQUERY',
(vk.F11, 0, 0, 0) : 'ROLLBACK',
(vk.F12, 0, 0, 0) : 'NEWRECORD',
}
Index: gnue/forms/src/UIcurses.py
diff -c gnue/forms/src/UIcurses.py:1.12 gnue/forms/src/UIcurses.py:1.13
*** gnue/forms/src/UIcurses.py:1.12 Mon Jan 21 20:41:55 2002
--- gnue/forms/src/UIcurses.py Thu Jan 31 00:41:31 2002
***************
*** 70,100 ****
self.widgetConstructorFunction['GFForm'] = self._formHandler
self.widgetConstructorFunction['GFPage'] = self.pageHandler
! self.keyEvents = {curses.KEY_PPAGE: GFEvent('requestPREVBLOCK'),
! curses.KEY_NPAGE: GFEvent('requestNEXTBLOCK'),
! curses.KEY_ENTER: GFEvent('requestEXIT'),
! curses.KEY_LEFT: GFEvent('requestCURSORLEFT'),
! curses.KEY_RIGHT: GFEvent('requestCURSORRIGHT'),
! curses.KEY_END: GFEvent('requestCURSOREND'),
! curses.KEY_HOME: GFEvent('requestCURSORHOME'),
! curses.KEY_BACKSPACE: GFEvent('requestBACKSPACE'),
! curses.KEY_DC: GFEvent('requestDELETE'),
! curses.KEY_DOWN: GFEvent('requestNEXTRECORD'),
! curses.KEY_UP: GFEvent('requestPREVRECORD'),
! curses.KEY_F5: GFEvent('requestMARKFORDELETE'),
! curses.KEY_F6: GFEvent('requestCOMMIT'),
! curses.KEY_F8: GFEvent('requestQUERY'),
! curses.KEY_F9: GFEvent('executeQUERY'),
! curses.KEY_F11: GFEvent('requestROLLBACK'),
! curses.KEY_F12: GFEvent('requestNEWRECORD') ,
! # Hacks for odd mismatch of keycodes returns vs
curses.KEY_*
! 9 : GFEvent('requestNEXTENTRY'),
! 127 : GFEvent('requestBACKSPACE'),
! }
self.incommingEvent.update( {'gotoENTRY' : self.switchFocus,
'updateENTRY': self.updateEntry,
! 'gotoPAGE': self.gotoPage,
'uiUPDATESTATUS': self.updateStatus,
'uiNEXTRECORD' : self.adjustMultiView,
'uiPREVRECORD' : self.adjustMultiView,
--- 70,102 ----
self.widgetConstructorFunction['GFForm'] = self._formHandler
self.widgetConstructorFunction['GFPage'] = self.pageHandler
! ##
! ## self.keyEvents = {curses.KEY_PPAGE: GFEvent('requestPREVBLOCK'),
! ## curses.KEY_NPAGE: GFEvent('requestNEXTBLOCK'),
! ## curses.KEY_ENTER: GFEvent('requestEXIT'),
! ## curses.KEY_LEFT: GFEvent('requestCURSORLEFT'),
! ## curses.KEY_RIGHT: GFEvent('requestCURSORRIGHT'),
! ## curses.KEY_END: GFEvent('requestCURSOREND'),
! ## curses.KEY_HOME: GFEvent('requestCURSORHOME'),
! ## curses.KEY_BACKSPACE: GFEvent('requestBACKSPACE'),
! ## curses.KEY_DC: GFEvent('requestDELETE'),
! ## curses.KEY_DOWN: GFEvent('requestNEXTRECORD'),
! ## curses.KEY_UP: GFEvent('requestPREVRECORD'),
! ## curses.KEY_F5:
GFEvent('requestMARKFORDELETE'),
! ## curses.KEY_F6: GFEvent('requestCOMMIT'),
! ## curses.KEY_F8: GFEvent('requestQUERY'),
! ## curses.KEY_F9: GFEvent('requestEXEQUERY'),
! ## curses.KEY_F11: GFEvent('requestROLLBACK'),
! ## curses.KEY_F12: GFEvent('requestNEWRECORD') ,
! ## # Hacks for odd mismatch of keycodes returns vs
curses.KEY_*
! ## 9 : GFEvent('requestNEXTENTRY'),
! ## 127 : GFEvent('requestBACKSPACE'),
! ## }
! ##
self.incommingEvent.update( {'gotoENTRY' : self.switchFocus,
'updateENTRY': self.updateEntry,
! 'gotoPAGE': self.gotoPage,
'uiUPDATESTATUS': self.updateStatus,
'uiNEXTRECORD' : self.adjustMultiView,
'uiPREVRECORD' : self.adjustMultiView,
***************
*** 135,151 ****
self.frame.refresh()
self.ncfield.refresh()
def uiEventTrap(self, event):
! try:
! action = self.keyEvents[event]
! self.dispatchEvent(action)
! except KeyError:
! if (32 <= event <= 126):
! action = GFEvent('requestKEYPRESS',chr(event))
! self.dispatchEvent(action)
! else:
! GDebug.printMesg(3, "Dude! Unsupported Event! %s"% event)
!
#
#
# Handlers used by buildUI to add widgets to the UI
--- 137,178 ----
self.frame.refresh()
self.ncfield.refresh()
+
def uiEventTrap(self, event):
!
! ## try:
! ## action = self.keyEvents[event]
! ## self.dispatchEvent(action)
! ## except KeyError:
! ## if (32 <= event <= 126):
! ## action = GFEvent('requestKEYPRESS',chr(event))
! ## self.dispatchEvent(action)
! ## else:
! ## GDebug.printMesg(3, "Dude! Unsupported Event! %s"% event)
!
!
! # TODO: Find whether Shift, Control, or Alt is down!
! command = GFKeyMapper.KeyMapper.getEvent(
! event, # Key Code,
! 0, # Shift Down?,
! 0, # Control Down?,
! 0) # Alt Down?
!
! if command == 'JUMPRECORD':
! self.promptForRecordNumber()
!
! elif command:
! action = GFEvent('request%s' % command)
!
! else:
! try:
! action = GFEvent('requestKEYPRESS', chr(event),
! code=event)
! except ValueError:
! pass
!
!
!
#
#
# Handlers used by buildUI to add widgets to the UI
***************
*** 166,172 ****
page = NCPage( container, self._form.height, self._form.width )
return page
!
def boxHandler(self):
object = self._currentObject[0]
self.panel.addBox( int(object.height), int(object.width),
--- 193,199 ----
page = NCPage( container, self._form.height, self._form.width )
return page
!
def boxHandler(self):
object = self._currentObject[0]
self.panel.addBox( int(object.height), int(object.width),
***************
*** 243,249 ****
curses.beep()
# need to convert to curses model
#self.statusBar.SetStatusText(event.data,0)
!
def adjustMultiView(self, event):
block = event.data._block._form._currentBlock
--- 270,276 ----
curses.beep()
# need to convert to curses model
#self.statusBar.SetStatusText(event.data,0)
!
def adjustMultiView(self, event):
block = event.data._block._form._currentBlock
***************
*** 364,370 ****
# move the cursor to where it should be on the screen
ncfield.window.move(positiony, positionx)
#ncfield.window.refresh ()
!
curses.doupdate()
def updateStatus(self, event):
--- 391,397 ----
# move the cursor to where it should be on the screen
ncfield.window.move(positiony, positionx)
#ncfield.window.refresh ()
!
curses.doupdate()
def updateStatus(self, event):
***************
*** 404,410 ****
def getLogin(self, event):
lines, cols = self.stdscr.getmaxyx()
!
panel = NCForm( None, lines*2/3, cols*2/3, lines/6, cols/6 )
NCLabel(panel, 2, 2, "Database %s requires login."%event.data[2].dbname,
attr=curses.A_NORMAL)
--- 431,437 ----
def getLogin(self, event):
lines, cols = self.stdscr.getmaxyx()
!
panel = NCForm( None, lines*2/3, cols*2/3, lines/6, cols/6 )
NCLabel(panel, 2, 2, "Database %s requires login."%event.data[2].dbname,
attr=curses.A_NORMAL)
***************
*** 463,468 ****
--- 490,499 ----
panel.erase()
+ # TODO!!!!
+ def promptForRecordNumber(self):
+ pass
+
#
#
***************
*** 936,954 ****
from GFKeyMapper import vk
cursesKeyTranslations = {
! curses.KEY_F1 : vk.F1, curses.KEY_F2 : vk.F2,
! curses.KEY_F3 : vk.F3, curses.KEY_F4 : vk.F4,
! curses.KEY_F5 : vk.F5, curses.KEY_F6 : vk.F6,
! curses.KEY_F7 : vk.F7, curses.KEY_F8 : vk.F8,
! curses.KEY_F9 : vk.F9, curses.KEY_F10 : vk.F10,
! curses.KEY_F11 : vk.F11, curses.KEY_F12 : vk.F12,
! curses.KEY_INSERT : vk.INSERT, curses.KEY_DC : vk.DELETE,
! curses.KEY_HOME : vk.HOME, curses.KEY_END : vk.END,
! curses.KEY_NPAGE : vk.PAGEUP, curses.KEY_NPAGE : vk.PAGEDOWN,
! curses.KEY_UP : vk.UP, curses.KEY_DOWN : vk.DOWN,
! curses.KEY_LEFT : vk.LEFT, curses.KEY_RIGHT : vk.RIGHT,
! curses.KEY_TAB : vk.TAB, curses.KEY_ENTER : vk.ENTER,
! curses.KEY_BACKSPACE : vk.BACKSPACE }
GFKeyMapper.KeyMapper.setUIKeyMap(wxKeyTranslations)
--- 967,985 ----
from GFKeyMapper import vk
cursesKeyTranslations = {
! vk.F1, : curses.KEY_F1, vk.F2 : curses.KEY_F2,
! vk.F3, : curses.KEY_F3, vk.F4 : curses.KEY_F4,
! vk.F5, : curses.KEY_F5, vk.F6 : curses.KEY_F6,
! vk.F7, : curses.KEY_F7, vk.F8 : curses.KEY_F8,
! vk.F9, : curses.KEY_F9, vk.F10 : curses.KEY_F10,
! vk.F11, : curses.KEY_F11, vk.F12 : curses.KEY_F12,
! vk.INSERT, : curses.KEY_INSERT, vk.DELETE : curses.KEY_DC,
! vk.HOME, : curses.KEY_HOME, vk.END : curses.KEY_END,
! vk.PAGEUP, : curses.KEY_NPAGE, vk.PAGEDOWN : curses.KEY_NPAGE,
! vk.UP, : curses.KEY_UP, vk.DOWN : curses.KEY_DOWN,
! vk.LEFT, : curses.KEY_LEFT, vk.RIGHT : curses.KEY_RIGHT,
! vk.TAB, : curses.KEY_TAB, vk.ENTER : curses.KEY_ENTER,
! vk.BACKSPACE : curses.KEY_BACKSPACE }
GFKeyMapper.KeyMapper.setUIKeyMap(wxKeyTranslations)
Index: gnue/forms/src/UIwxpython.py
diff -c gnue/forms/src/UIwxpython.py:1.132 gnue/forms/src/UIwxpython.py:1.133
*** gnue/forms/src/UIwxpython.py:1.132 Tue Jan 22 21:48:53 2002
--- gnue/forms/src/UIwxpython.py Thu Jan 31 00:41:31 2002
***************
*** 138,165 ****
self._disableSplash = disableSplash
GFUserInterfaceBase.__init__(self)
! self.keyEvents = {WXK_PRIOR: GFEvent('requestPREVBLOCK'),
! WXK_NEXT: GFEvent('requestNEXTBLOCK'),
! WXK_TAB: GFEvent('requestNEXTENTRY'),
! WXK_LEFT: GFEvent('requestCURSORLEFT'),
! WXK_RIGHT: GFEvent('requestCURSORRIGHT'),
! WXK_END: GFEvent('requestCURSOREND'),
! WXK_HOME: GFEvent('requestCURSORHOME'),
! WXK_BACK: GFEvent('requestBACKSPACE'),
!
! WXK_INSERT: GFEvent('requestMODETOGGLE'),
! WXK_DELETE: GFEvent('requestDELETE'),
!
! WXK_UP: GFEvent('requestPREVRECORD'),
! WXK_DOWN: GFEvent('requestNEXTRECORD'),
!
! WXK_F5: GFEvent('requestMARKFORDELETE'),
! WXK_F6: GFEvent('requestCOMMIT'),
! WXK_F8: GFEvent('requestQUERY'),
! WXK_F9: GFEvent('executeQUERY'),
! WXK_F11: GFEvent('requestROLLBACK'),
! WXK_F12: GFEvent('requestNEWRECORD'),
! }
self.forms = {}
self.init()
--- 138,165 ----
self._disableSplash = disableSplash
GFUserInterfaceBase.__init__(self)
! ## self.keyEvents = {WXK_PRIOR: GFEvent('requestPREVBLOCK'),
! ## WXK_NEXT: GFEvent('requestNEXTBLOCK'),
! ## WXK_TAB: GFEvent('requestNEXTENTRY'),
! ## WXK_LEFT: GFEvent('requestCURSORLEFT'),
! ## WXK_RIGHT: GFEvent('requestCURSORRIGHT'),
! ## WXK_END: GFEvent('requestCURSOREND'),
! ## WXK_HOME: GFEvent('requestCURSORHOME'),
! ## WXK_BACK: GFEvent('requestBACKSPACE'),
! ##
! ## WXK_INSERT: GFEvent('requestMODETOGGLE'),
! ## WXK_DELETE: GFEvent('requestDELETE'),
! ##
! ## WXK_UP: GFEvent('requestPREVRECORD'),
! ## WXK_DOWN: GFEvent('requestNEXTRECORD'),
! ##
! ## WXK_F5: GFEvent('requestMARKFORDELETE'),
! ## WXK_F6: GFEvent('requestCOMMIT'),
! ## WXK_F8: GFEvent('requestQUERY'),
! ## WXK_F9: GFEvent('requestEXEQUERY'),
! ## WXK_F11: GFEvent('requestROLLBACK'),
! ## WXK_F12: GFEvent('requestNEWRECORD'),
! ## }
self.forms = {}
self.init()
***************
*** 215,221 ****
wxStaticText(parent=self.splash, id=-1, label=str(text),
size=wxSize(swidth,theight),
pos=wxPoint(1,25),style=wxALIGN_CENTRE)
! text = "(c)2000-2001 Free Software Foundation"
twidth,theight = self.splash.GetTextExtent(text)
wxStaticText(self.splash, -1, str(text),
wxPoint(1,50),wxSize(swidth,theight),wxALIGN_CENTRE)
--- 215,221 ----
wxStaticText(parent=self.splash, id=-1, label=str(text),
size=wxSize(swidth,theight),
pos=wxPoint(1,25),style=wxALIGN_CENTRE)
! text = "(c)2000-2002 Free Software Foundation"
twidth,theight = self.splash.GetTextExtent(text)
wxStaticText(self.splash, -1, str(text),
wxPoint(1,50),wxSize(swidth,theight),wxALIGN_CENTRE)
***************
*** 247,253 ****
self.charWidth = maxWidth+maxLeading
self.charHeight = maxHeight+maxDescent
!
self.borderPercentage = (int(GConfig.get('borderPercentage')) / 100.0)
self.textPercentage = (int(GConfig.get('textPercentage')) / 100.0)
--- 247,253 ----
self.charWidth = maxWidth+maxLeading
self.charHeight = maxHeight+maxDescent
!
self.borderPercentage = (int(GConfig.get('borderPercentage')) / 100.0)
self.textPercentage = (int(GConfig.get('textPercentage')) / 100.0)
***************
*** 297,304 ****
dataMenu.Append( 207, "Enter Query
(F8)",GConfig.get('msg_query_prep'))
EVT_MENU(self._wxapp, 207, lambda event, l=self:
l.dispatchEvent(GFEvent('requestQUERY')))
dataMenu.Append( 208, "Execute Query (F9)",
GConfig.get('msg_query'))
! EVT_MENU(self._wxapp, 208, lambda event, l=self:
l.dispatchEvent(GFEvent('executeQUERY')))
!
helpMenu = wxMenu()
helpMenu.Append( 300, "&About...", GConfig.get('msg_help'))
EVT_MENU(self._wxapp, 300, lambda event, l=self:
l.dispatchEvent(GFEvent('requestABOUT')))
--- 297,304 ----
dataMenu.Append( 207, "Enter Query
(F8)",GConfig.get('msg_query_prep'))
EVT_MENU(self._wxapp, 207, lambda event, l=self:
l.dispatchEvent(GFEvent('requestQUERY')))
dataMenu.Append( 208, "Execute Query (F9)",
GConfig.get('msg_query'))
! EVT_MENU(self._wxapp, 208, lambda event, l=self:
l.dispatchEvent(GFEvent('requestEXEQUERY')))
!
helpMenu = wxMenu()
helpMenu.Append( 300, "&About...", GConfig.get('msg_help'))
EVT_MENU(self._wxapp, 300, lambda event, l=self:
l.dispatchEvent(GFEvent('requestABOUT')))
***************
*** 308,314 ****
menuBar.Append( dataMenu, "&Data" )
menuBar.Append( helpMenu, "&Help" )
! self.mainWindow.SetMenuBar( menuBar );
#
# There has got to be better way to call events to ride off the EVT_MENU
--- 308,314 ----
menuBar.Append( dataMenu, "&Data" )
menuBar.Append( helpMenu, "&Help" )
! self.mainWindow.SetMenuBar( menuBar );
#
# There has got to be better way to call events to ride off the EVT_MENU
***************
*** 347,354 ****
# Called by SplashScreen when timer expires
! def onCloseSplash(self):
! # For some reason, a simple Close() doesn't cooperate with
# the modal login box and all hell breaks loose
self.splash.Show(0)
self.splash.Destroy()
--- 347,354 ----
# Called by SplashScreen when timer expires
! def onCloseSplash(self):
! # For some reason, a simple Close() doesn't cooperate with
# the modal login box and all hell breaks loose
self.splash.Show(0)
self.splash.Destroy()
***************
*** 376,382 ****
child = _NOTEBOOK.GetParent()
while child:
child.Fit()
! child = child.GetParent()
self.mainWindow.CenterOnScreen()
--- 376,382 ----
child = _NOTEBOOK.GetParent()
while child:
child.Fit()
! child = child.GetParent()
self.mainWindow.CenterOnScreen()
***************
*** 399,405 ****
#
# _setStatusBar
! #
def _setStatusBar(self,tip, statusValue, insertValue, currentRecord,
maxRecord, currentPage, maxPage):
if tip != None: self.statusBar.SetStatusText(str(tip),0)
--- 399,405 ----
#
# _setStatusBar
! #
def _setStatusBar(self,tip, statusValue, insertValue, currentRecord,
maxRecord, currentPage, maxPage):
if tip != None: self.statusBar.SetStatusText(str(tip),0)
***************
*** 408,414 ****
if insertValue != None:
self.statusBar.SetStatusText(insertValue,2)
!
if currentRecord != None and maxRecord != None:
self.statusBar.SetStatusText(string.strip("%s/%s" %
(currentRecord,maxRecord)),3)
--- 408,414 ----
if insertValue != None:
self.statusBar.SetStatusText(insertValue,2)
!
if currentRecord != None and maxRecord != None:
self.statusBar.SetStatusText(string.strip("%s/%s" %
(currentRecord,maxRecord)),3)
***************
*** 440,446 ****
#############################################################################
#
! # Incomming Event Processors
#
# Processes the incomming events from other objects
#
--- 440,446 ----
#############################################################################
#
! # Incoming Event Processors
#
# Processes the incomming events from other objects
#
***************
*** 465,474 ****
if self.visiblePage.GetId() == _NOTEBOOK.GetPage(count).GetId():
_NOTEBOOK.SetSelection(count)
break
!
self.visiblePage.Show(TRUE)
!
#
# formAlert
#
--- 465,474 ----
if self.visiblePage.GetId() == _NOTEBOOK.GetPage(count).GetId():
_NOTEBOOK.SetSelection(count)
break
!
self.visiblePage.Show(TRUE)
!
#
# formAlert
#
***************
*** 531,558 ****
# really need to be recoded to something more friendly - maybe multiple
event handlers
#
def uiEventTrap(self, event):
action = None
#
# KeyBoard Events
#
if event.GetEventType() == wxEVT_CHAR:
! if event.ShiftDown() == TRUE and event.KeyCode() == WXK_TAB:
! action = GFEvent('requestPREVENTRY')
else:
try:
! action = self.keyEvents[event.KeyCode()]
! except KeyError:
! if event.ControlDown():
! GDebug.printMesg(2, "Control %s" % (chr(event.KeyCode())))
! action = GFEvent('requestHOTKEY',chr(event.KeyCode()))
! elif (32 <= event.KeyCode() <= 126) or (event.KeyCode() ==
WXK_RETURN):
! action = GFEvent('requestKEYPRESS',chr(event.KeyCode()))
! # quick hack for for russian support from Dmitry Sorokin
<address@hidden>
! elif (192 <= event.KeyCode() <= 255):
! action = GFEvent('requestKEYPRESS',chr(event.KeyCode()))
! elif event.KeyCode() == WXK_F2:
! self.promptForRecordNumber()
#
# Mouse Events
--- 531,582 ----
# really need to be recoded to something more friendly - maybe multiple
event handlers
#
def uiEventTrap(self, event):
+
action = None
+
#
# KeyBoard Events
#
if event.GetEventType() == wxEVT_CHAR:
!
! command = GFKeyMapper.KeyMapper.getEvent(
! event.KeyCode(),
! event.ShiftDown(),
! event.ControlDown(),
! event.AltDown())
!
!
! if command == 'JUMPRECORD':
! self.promptForRecordNumber()
!
! elif command:
! action = GFEvent('request%s' % command)
!
else:
try:
! action = GFEvent('requestKEYPRESS', chr(event.KeyCode()),
! code=event.KeyCode())
! except ValueError:
! event.Skip()
+ ##
+ ## if event.ShiftDown() == TRUE and event.KeyCode() == WXK_TAB:
+ ## action = GFEvent('requestPREVENTRY')
+ ## else:
+ ## try:
+ ## action = self.keyEvents[event.KeyCode()]
+ ## except KeyError:
+ ## if event.ControlDown():
+ ## GDebug.printMesg(2, "Control %s" % (chr(event.KeyCode())))
+ ## action = GFEvent('requestHOTKEY',chr(event.KeyCode()))
+ ## elif (32 <= event.KeyCode() <= 126) or (event.KeyCode() ==
WXK_RETURN):
+ ## action = GFEvent('requestKEYPRESS',chr(event.KeyCode()))
+ ## # quick hack for for russian support from Dmitry Sorokin
<address@hidden>
+ ## elif (192 <= event.KeyCode() <= 255):
+ ## action = GFEvent('requestKEYPRESS',chr(event.KeyCode()))
+ ## elif event.KeyCode() == WXK_F2:
+ ## self.promptForRecordNumber()
+ ##
#
# Mouse Events
***************
*** 924,930 ****
if initialize:
EVT_CLOSE(interface.mainWindow,interface.closeTrap)
!
return newWidget
#
--- 948,954 ----
if initialize:
EVT_CLOSE(interface.mainWindow,interface.closeTrap)
!
return newWidget
#
***************
*** 1183,1201 ****
from GFKeyMapper import vk
wxKeyTranslations = {
! WXK_F1 : vk.F1, WXK_F2 : vk.F2,
! WXK_F3 : vk.F3, WXK_F4 : vk.F4,
! WXK_F5 : vk.F5, WXK_F6 : vk.F6,
! WXK_F7 : vk.F7, WXK_F8 : vk.F8,
! WXK_F9 : vk.F9, WXK_F10 : vk.F10,
! WXK_F11 : vk.F11, WXK_F12 : vk.F12,
! WXK_INSERT : vk.INSERT, WXK_DELETE : vk.DELETE,
! WXK_HOME : vk.HOME, WXK_END : vk.END,
! WXK_PRIOR : vk.PAGEUP, WXK_NEXT : vk.PAGEDOWN,
! WXK_UP : vk.UP, WXK_DOWN : vk.DOWN,
! WXK_LEFT : vk.LEFT, WXK_RIGHT : vk.RIGHT,
! WXK_TAB : vk.TAB, #WXK_ENTER : vk.ENTER,
! WXK_RETURN : vk.ENTER, WXK_BACK : vk.BACKSPACE }
GFKeyMapper.KeyMapper.setUIKeyMap(wxKeyTranslations)
--- 1207,1225 ----
from GFKeyMapper import vk
wxKeyTranslations = {
! vk.F1 : WXK_F1, vk.F2 : WXK_F2,
! vk.F3 : WXK_F3, vk.F4 : WXK_F4,
! vk.F5 : WXK_F5, vk.F6 : WXK_F6,
! vk.F7 : WXK_F7, vk.F8 : WXK_F8,
! vk.F9 : WXK_F9, vk.F10 : WXK_F10,
! vk.F11 : WXK_F11, vk.F12 : WXK_F12,
! vk.INSERT : WXK_INSERT, vk.DELETE : WXK_DELETE,
! vk.HOME : WXK_HOME, vk.END : WXK_END,
! vk.PAGEUP : WXK_PRIOR, vk.PAGEDOWN : WXK_NEXT,
! vk.UP : WXK_UP, vk.DOWN : WXK_DOWN,
! vk.LEFT : WXK_LEFT, vk.RIGHT : WXK_RIGHT,
! vk.TAB : WXK_TAB,
! vk.ENTER : WXK_RETURN, vk.BACKSPACE : WXK_BACK }
GFKeyMapper.KeyMapper.setUIKeyMap(wxKeyTranslations)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue common/etc/sample.gnue.conf common/src/GCo...,
Jason Cater <=