[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5775 - in trunk/gnue-forms: samples/zipcode src src/uidrivers/wx/widget
From: |
jamest |
Subject: |
r5775 - in trunk/gnue-forms: samples/zipcode src src/uidrivers/wx/widgets |
Date: |
Mon, 3 May 2004 18:47:02 -0500 (CDT) |
Author: jamest
Date: 2004-05-03 18:47:00 -0500 (Mon, 03 May 2004)
New Revision: 5775
Modified:
trunk/gnue-forms/samples/zipcode/states.gfd
trunk/gnue-forms/src/GFConfig.py
trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
Log:
added new config option dropdownMode which defaults to auto
mode can be either windows or gtk1 as it appears that gtk2
handles dropdown events differently than gtk1. auto is fairly
dumb at the moment. Setting it to windows mode on win32 and gtk1
mode on everything else.
Modified: trunk/gnue-forms/samples/zipcode/states.gfd
===================================================================
--- trunk/gnue-forms/samples/zipcode/states.gfd 2004-05-03 21:56:39 UTC (rev
5774)
+++ trunk/gnue-forms/samples/zipcode/states.gfd 2004-05-03 23:47:00 UTC (rev
5775)
@@ -38,6 +38,7 @@
<label name="Label_5" rows="1" text="Zip" c:x="27" c:y="9"/>
<entry block="cities" field="zip" c:width="10" c:x="27" c:y="10"/>
<entry block="cities" field="zop" hidden="" c:width="1" c:x="27"
c:y="1"/>
+ <entry block="blkstate" field="entdesc" rows="1" c:width="30" c:x="7"
c:y="12"/>
</page>
</layout>
</form>
Modified: trunk/gnue-forms/src/GFConfig.py
===================================================================
--- trunk/gnue-forms/src/GFConfig.py 2004-05-03 21:56:39 UTC (rev 5774)
+++ trunk/gnue-forms/src/GFConfig.py 2004-05-03 23:47:00 UTC (rev 5775)
@@ -360,6 +360,13 @@
'Typecast' : GTypecast.text,
'Default' : 'wx' },
+ { 'Name' : 'dropdownMode',
+ 'Type' : 'Setting',
+ 'Comment' : 'The style of dropdown handler to use. Possible values:
auto, windows, gtk1',
+ 'Description': 'The style of dropdown handler to use. Possible values:
auto, windows, gtk1',
+ 'Typecast' : GTypecast.text,
+ 'Default' : 'auto' },
+
#
# Do not alter below here unless you really, really want to (and you know
what you are doing)
#
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2004-05-03 21:56:39 UTC
(rev 5774)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2004-05-03 23:47:00 UTC
(rev 5775)
@@ -29,6 +29,7 @@
from wxPython.wx import *
from gnue.common import events
from types import UnicodeType
+import sys
from gnue.forms.uidrivers.wx.widgets._base import UIHelper
from gnue.forms.uidrivers.wx.common import _eventObjTowxWindow, wxEncode,
wxDecode
@@ -43,6 +44,7 @@
"""
A wxPython-based UI driver for GNUe Forms
"""
+
def _createWidget(self, event, spacer):
"""
Creates a single instance of a data entry widget
@@ -55,11 +57,18 @@
defaultSize = wxSize(self.itemWidth,self.itemHeight+1)
if style == 'dropdown':
+ if gConfigForms('dropdownMode') == 'auto':
+ if sys.platform == "win32":
+ self.dropdownMode = 'windows'
+ self.comboHandler = self._windowsComboHandler
+ else:
+ self.dropdownMode = 'gtk1'
+ self.comboHandler = self._gtk1ComboHandler
+
if event.initialize:
choices = []
for val in object._field.allowedValues()[1]:
- choices.append(wxEncode(val))
-
+ choices.append(wxEncode(val))
else:
choices = [""]
@@ -76,8 +85,8 @@
EVT_TEXT(event.container, newWidget_Id, self.comboHandler)
EVT_TEXT_ENTER(event.container, newWidget_Id, self.comboHandler)
self.comboDropped = True # True if the combobox is dropped and the
list is visible.
- # For some strange reason it is best to initialize it True as if
- # the list would be dropped down at startup, though it is not...
+ # For some strange reason it is best to
initialize it True as if
+ # the list would be dropped down at
startup, though it is not...
elif style == 'label':
@@ -111,17 +120,18 @@
_setDefaultEventHandlers(newWidget, event.eventHandler,
event.initialize, self._uiDriver)
return newWidget
- def comboHandler(self, event):
+ def _WindowsComboHandler(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
- eventType = event.GetEventType()
-
+ eventType = event.GetEventType()
if self.comboDropped == True:
- if eventType in [wxEVT_COMMAND_COMBOBOX_SELECTED,
wxEVT_COMMAND_TEXT_UPDATED, wxEVT_COMMAND_TEXT_ENTER]:
+ if eventType in [wxEVT_COMMAND_COMBOBOX_SELECTED,
+ wxEVT_COMMAND_TEXT_UPDATED,
+ wxEVT_COMMAND_TEXT_ENTER]:
self.comboDropped = False
object = _eventObjTowxWindow(event)
@@ -132,7 +142,8 @@
index=selection,
text=wxDecode(event.GetString()),
_form=gfObject._form)
else:
- if eventType in
[wxEVT_COMMAND_COMBOBOX_SELECTED,wxEVT_COMMAND_TEXT_ENTER]:
+ if eventType in [wxEVT_COMMAND_COMBOBOX_SELECTED,
+ wxEVT_COMMAND_TEXT_ENTER]:
self.comboDropped = True
object = _eventObjTowxWindow(event)
@@ -144,7 +155,31 @@
self._eventHandler(action)
#event.Skip() #Is it needed here?
+
+ def _gtk1ComboHandler(self, event):
+ """
+ Handles combobox for gtk1 style wx. Unlike the windows handler opening a
combobox
+ doesn't cause a wxEVT_COMMAND_COMBOBOX_SELECTED event so the widget gets
confused.
+ """
+ action = None
+ eventType = event.GetEventType()
+ #print "Mode: ", self.dropdownMode
+ #print "Selected: %s\nUpdated: %s\nTextEnter: %s\nEventType %s -
DropDown Open? %s " % (wxEVT_COMMAND_COMBOBOX_SELECTED,
wxEVT_COMMAND_TEXT_UPDATED,
wxEVT_COMMAND_TEXT_ENTER,eventType,self.comboDropped)
+
+ if eventType in [wxEVT_COMMAND_COMBOBOX_SELECTED,
+ wxEVT_COMMAND_TEXT_ENTER]:
+ object = _eventObjTowxWindow(event)
+ gfObject = self._uiDriver._IdToGFObj[object.GetId()]
+ selection = event.GetSelection()
+ action = events.Event('requestREPLACEVALUE',object=gfObject,
+ index=selection, text=wxDecode(event.GetString()),
+ _form=gfObject._form)
+
+ self._eventHandler(action)
+ #event.Skip() #Is it needed here?
+
+
def checkboxHandler(self,event):
"""
Handles checkbox toggling if checkbox is clicked.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5775 - in trunk/gnue-forms: samples/zipcode src src/uidrivers/wx/widgets,
jamest <=