[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8177 - trunk/gnue-forms/src/uidrivers/wx26/widgets
From: |
johannes |
Subject: |
[gnue] r8177 - trunk/gnue-forms/src/uidrivers/wx26/widgets |
Date: |
Fri, 24 Feb 2006 05:50:37 -0600 (CST) |
Author: johannes
Date: 2006-02-24 05:50:37 -0600 (Fri, 24 Feb 2006)
New Revision: 8177
Modified:
trunk/gnue-forms/src/uidrivers/wx26/widgets/box.py
trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
Log:
Further improvents for entry-widgets and dropdowns on MSW and Mac
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/box.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/box.py 2006-02-22 13:06:09 UTC
(rev 8176)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/box.py 2006-02-24 11:50:37 UTC
(rev 8177)
@@ -38,19 +38,14 @@
def _createWidget (self, event, spacer):
- offsX = self._uiDriver.cellWidth / 2
- offsY = self._uiDriver.cellHeight / 2
+ offs = 2
+ pos = (self.itemX + offs, self.itemY + offs)
+ size = (self.itemWidth - offs * 2, self.itemHeight - offs * 2)
- pos = (self.itemX + offsX, self.itemY + offsY)
- size = (self.itemWidth - offsX * 2, self.itemHeight - offsY * 2)
+ return wx.StaticBox (event.container, -1, self._gfObject.label, pos, size)
- newWidget = wx.StaticBox (event.container, wx.ID_ANY, self._gfObject.label,
- pos, size)
- return newWidget
-
-
# =============================================================================
# Configuration data
# =============================================================================
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py 2006-02-22
13:06:09 UTC (rev 8176)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/entry.py 2006-02-24
11:50:37 UTC (rev 8177)
@@ -94,9 +94,13 @@
result = wx.TextCtrl (parent, -1, '', self.__pos, self.__size, xFlags)
result.Bind (wx.EVT_CHAR, self.__keypress)
- result.Bind (wx.EVT_LEFT_UP, self.__leftMouseUp)
result.Bind (wx.EVT_SET_FOCUS, self.__setFocus)
+ # Currently wxMac does *not* recieve a button release event, so we don't
+ # bind it here. Instead we check the insertion point in the keypress event
+ if not 'wxMac' in wx.PlatformInfo:
+ result.Bind (wx.EVT_LEFT_UP, self.__leftMouseUp)
+
return result
@@ -154,9 +158,12 @@
result.Bind (wx.EVT_COMBOBOX, self.__itemSelected)
item.Bind (wx.EVT_CHAR, self.__keypress)
- item.Bind (wx.EVT_LEFT_UP, self.__leftMouseUp)
item.Bind (wx.EVT_SET_FOCUS, self.__setFocus)
+ # On Mac we don't bind the button release event, as it does not get fired
+ if not 'wxMac' in wx.PlatformInfo:
+ item.Bind (wx.EVT_LEFT_UP, self.__leftMouseUp)
+
# On MWS a ComboBox widget does not get an EVT_CHAR event for the left- and
# right-keys. That's why we need to add a EVT_KEY_DOWN-handler here
if 'wxMSW' in wx.PlatformInfo:
@@ -187,13 +194,17 @@
def __setFocus (self, event):
if self._form._currentEntry != self._gfObject:
- self._request ('FOCUS', data = self._gfObject)
+ wx.CallAfter (self._request, 'FOCUS', data = self._gfObject)
# adjust the record number if necessary
- count = self.widgets.index (event.GetEventObject ())
+ lookup = event.GetEventObject ()
+ if 'wxMac' in wx.PlatformInfo and self._gfObject.style == 'dropdown':
+ lookup = lookup.GetParent ()
+
+ count = self.widgets.index (lookup)
adjust = count - self._gfObject._visibleIndex
if adjust:
- self._request ('JUMPRECORD', data = adjust)
+ wx.CallAfter (self._request, 'JUMPRECORD', data = adjust)
event.Skip ()
@@ -205,23 +216,34 @@
def __leftMouseUp (self, event):
widget = event.GetEventObject ()
+ event.Skip ()
+ wx.CallAfter (self.__updateInsertionPoint, widget)
+
+
+ # ---------------------------------------------------------------------------
+ # Make sure the insertion point or selection of a widget is in sync with GF*
+ # ---------------------------------------------------------------------------
+
+ def __updateInsertionPoint (self, widget):
+
if isinstance (widget, wx.TextCtrl):
(left, right) = widget.GetSelection ()
elif isinstance (widget, wx.ComboBox):
- (left, right) = widget.GetMark ()
+ if 'wxMac' in wx.PlatformInfo:
+ (left, right) = widget._entry.GetSelection ()
+ else:
+ (left, right) = widget.GetMark ()
- event.Skip ()
-
if left == right:
self._request ('CURSORMOVE', position = left)
+
else:
self._request ('SELECTWITHMOUSE', position1 = left, position2 = right,
cursor = widget.GetInsertionPoint ())
-
# ---------------------------------------------------------------------------
# Toggle the state of a checkbox
# ---------------------------------------------------------------------------
@@ -251,6 +273,9 @@
def __keypress (self, event):
+ if 'wxMac' in wx.PlatformInfo or 'wxMSW' in wx.PlatformInfo:
+ self.__updateInsertionPoint (event.GetEventObject ())
+
keycode = event.GetKeyCode ()
unikey = event.GetUnicodeKey ()
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8177 - trunk/gnue-forms/src/uidrivers/wx26/widgets,
johannes <=