[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5151 - in trunk/gnue-forms/src: . uidrivers/wx/widgets
From: |
btami |
Subject: |
r5151 - in trunk/gnue-forms/src: . uidrivers/wx/widgets |
Date: |
Tue, 24 Feb 2004 05:30:44 -0600 (CST) |
Author: btami
Date: 2004-02-24 05:30:43 -0600 (Tue, 24 Feb 2004)
New Revision: 5151
Modified:
trunk/gnue-forms/src/GFDisplayHandler.py
trunk/gnue-forms/src/GFInstance.py
trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
Log:
*xw dropdown now works
*cleaned up GFDisplayHandler
(by Kmetyko Gabor, alias kilo)
Modified: trunk/gnue-forms/src/GFDisplayHandler.py
===================================================================
--- trunk/gnue-forms/src/GFDisplayHandler.py 2004-02-24 09:42:48 UTC (rev
5150)
+++ trunk/gnue-forms/src/GFDisplayHandler.py 2004-02-24 11:30:43 UTC (rev
5151)
@@ -39,14 +39,14 @@
import Image
except ImportError:
Image = None
-
+
try:
from mx.DateTime import DateTime
except ImportError:
print """
This GNUe tool requires mxDateTime to be installed
- You can find the mxDateTime at
+ You can find the mxDateTime at
http://www.lemburg.com/files/python/mxDateTime.html
@@ -71,7 +71,7 @@
#
def setValue(self, value):
- self.modified = 0
+ self.modified = False
self.value = value
self._buildDisplay()
@@ -107,7 +107,7 @@
def isPending(self):
return self.modified
-
+
#####################
#
# Editing methods
@@ -118,6 +118,9 @@
# called when a widget first gets focus
#
def beginEdit(self, event):
+ """
+ Called when a widget first gets focus.
+ """
self.editing = True
self.modified = False
@@ -136,6 +139,9 @@
# when enter is hit
#
def endEdit(self, event):
+ """
+ Called when a widget loses focus or when ENTER is hit.
+ """
if not self.editing:
return
@@ -259,7 +265,7 @@
self.selection2 = event.end_pos
self.cursor = event.position
self.delete(event)
-
+
# Delete backwards one character
def backspace(self, event):
@@ -277,7 +283,7 @@
event.text = ""
self.addText(event)
-
+
# Delete forward one character
def delete(self, event):
event.overstrike = True
@@ -366,8 +372,8 @@
else:
event.position = self.selection2
self.moveCursor(event, True)
-
-
+
+
# Select the entire text of the entry and move
# the cursor to the end
def selectAll(self, event):
@@ -535,21 +541,21 @@
## FieldDisplayHandler.__init__(self, entry, eventHandler,
## TextMask.TextMask(displayMask, inputMask, formatMask))
FieldDisplayHandler.__init__(self, entry, eventHandler, None)
-
+
def _buildDisplayHelper(self, value, editing):
if value == None:
return ""
else:
return "*" * len(str(value))
- # These are no-no's for password-type fields
+ # These are no-no's for password-type fields
def clipboardCopy(self, event):
pass
def clipboardCut(self, event):
pass
-
+
#############################################################################
#
# Handler for Numeric types
@@ -572,10 +578,10 @@
# TODO: Replace with format mask
def _buildDisplayHelper(self, val, editing):
- try:
+ try:
if val in (None,""):
return ""
- except TypeError:
+ except TypeError:
pass
if editing and type(val) == types.StringType:
@@ -708,17 +714,18 @@
# My events...
self.subevents.registerEventListeners( {
- 'requestREPLACEVALUE' : self.replaceText } )
+ 'requestREPLACEVALUE' : self.replaceText,
+ 'requestCOMBODROPPED' : self.beginEdit } )
def beginEdit(self, event):
if not self._loadedAllowedValues and not
hasattr(self.field,'_allowedValues'):
self.field.allowedValues()
- self._loadedAllowedValues = 1
+ self._loadedAllowedValues = True
- self.editing = 1
- self.modified = 0
+ self.editing = True
+ self.modified = False
# TODO: Replace with formatter
self.setValue(self.field.getValue())
@@ -740,19 +747,15 @@
# TODO: Replace with format mask
def _buildDisplayHelper(self, value, editing):
- self._dropdownIndex = 0
if value in (None,""):
return ""
if editing:
- i = 0
val = string.lower(value)
for disp in self.field._allowedValuesDescr:
- if disp[:len(val)] == val:
+ if string.lower(disp[:len(val)]) == val:
display =
self.field._allowedValues[self.field._allowedValuesReverse[disp]]
- self._dropdownIndex = i
return str(display)
-
return str(value)
if self.field._allowedValues.has_key(str(value)):
@@ -780,7 +783,6 @@
# if it does then we'll need to pull
# the logic from FieldDisplayHandler.endEdit
# and add here. - jamest
-
def _buildValue(self):
Modified: trunk/gnue-forms/src/GFInstance.py
===================================================================
--- trunk/gnue-forms/src/GFInstance.py 2004-02-24 09:42:48 UTC (rev 5150)
+++ trunk/gnue-forms/src/GFInstance.py 2004-02-24 11:30:43 UTC (rev 5151)
@@ -124,6 +124,7 @@
'endEDITMODE' : self.proxyEntryEvent,
'requestINSERTAT' : self.proxyEntryEvent,
'requestDELETERANGE' : self.proxyEntryEvent,
+ 'requestCOMBODROPPED' : self.proxyEntryEvent,
# Selection/clipboard events (proxied)
'requestSELECTWITHMOUSE' : self.proxyEntryEvent,
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2004-02-24 09:42:48 UTC
(rev 5150)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2004-02-24 11:30:43 UTC
(rev 5151)
@@ -55,11 +55,13 @@
newWidget = wxComboBox(event.container, -1, "",defaultPoint,
wxSize(self.itemWidth,self.itemHeight),
- choices, wxCB_DROPDOWN,) # |wxWANTS_CHARS,)
+ choices, wxCB_DROPDOWN,) #|wxWANTS_CHARS,)
if event.initialize:
newWidget._origAllowedValues = object._field._allowedValues
newWidget.SetValue("")
EVT_COMBOBOX(newWidget, newWidget.GetId(), self.comboHandler)
+ EVT_TEXT(newWidget, newWidget.GetId(), self.comboHandler)
+ self.comboDropped = False # True if the combobox is dropped and the
list is visible
elif style == 'label':
@@ -90,35 +92,57 @@
newWidget = wxTextCtrl(event.container, -1, value, defaultPoint,
defaultSize, styles)
self._eventHandler = event.eventHandler
if event.initialize:
- _setDefaultEventHandlers(newWidget, event.eventHandler,
event.initialize,self._uiDriver)
+ _setDefaultEventHandlers(newWidget, event.eventHandler,
event.initialize, self._uiDriver)
return newWidget
def comboHandler(self, event):
+ """
+ Handles combobox
+ When combobox list is dropped, we call beginEdit, via event
requestCOMBODROPPED
+ When a value is selected from the list, we call replaceText, via event
requestREPLACEVALUE
+ """
action = None
- if event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED:
+ eventType = event.GetEventType()
+
+ if eventType == wxEVT_COMMAND_COMBOBOX_SELECTED: #combobox dropped
+ if self.comboDropped == False:
+ self.comboDropped = True
+
+ object = _eventObjTowxWindow(event)
+ gfObject = self._uiDriver._IdToGFObj[object.GetId()]
+ uiObject = self._uiDriver._IdToUIObj[object.GetId()]
+ uiObject._eventHandler('requestFOCUS',gfObject,_form=gfObject._form)
+ #action = events.Event('requestCOMBODROPPED', _form=gfObject._form)
+
+ elif eventType == wxEVT_COMMAND_TEXT_UPDATED or eventType ==
wxEVT_COMMAND_TEXT_ENTER: #value selected from list
+ self.comboDropped = False
+
object = _eventObjTowxWindow(event)
- id = object.GetId()
-
+ gfObject = self._uiDriver._IdToGFObj[object.GetId()]
selection = event.GetSelection()
- gfObject = self._uiDriver._IdToGFObj[id]
- eventdata = [gfObject, event.GetString()]
action = events.Event('requestREPLACEVALUE',object=gfObject,
index=selection, text=event.GetString(),
_form=gfObject._form)
self._eventHandler(action)
+ event.Skip()
+
def checkboxHandler(self,event):
+ """
+ Handles checkbox toggling if checkbox is clicked.
+ """
action = None
if event.GetEventType() == wxEVT_COMMAND_CHECKBOX_CLICKED:
object = _eventObjTowxWindow(event)
id = object.GetId()
-
+
gfObject = self._uiDriver._IdToGFObj[id]
eventdata = [gfObject, event.GetString()]
action = events.Event('requestTOGGLECHKBOX', _form=gfObject._form)
self._eventHandler(action)
+
configuration = {
'baseClass' : UIEntry,
'provides' : 'GFEntry',
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5151 - in trunk/gnue-forms/src: . uidrivers/wx/widgets,
btami <=