|
From: Kevin A. <ka...@us...> - 2004-05-04 17:15:51
|
Update of /cvsroot/pythoncard/PythonCard/components In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4638/components Modified Files: button.py checkbox.py choice.py combobox.py gauge.py grid.py htmlwindow.py image.py list.py radiogroup.py slider.py spinner.py staticbox.py staticline.py statictext.py Log Message: switched to new style event binding and dispatch Index: spinner.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/spinner.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** spinner.py 1 May 2004 18:47:48 -0000 1.15 --- spinner.py 4 May 2004 17:15:42 -0000 1.16 *************** *** 8,21 **** from PythonCard import event, widget class SpinnerSpec(widget.WidgetSpec): def __init__(self): ! events = [event.KeyPressEvent, ! event.KeyDownEvent, ! event.KeyUpEvent, ! event.TextEnterEvent, ! event.TextUpdateEvent, ! #event.SpinUpEvent, ! #event.SpinDownEvent ! ] attributes = { 'min' : { 'presence' : 'optional', 'default' : 0 }, --- 8,33 ---- from PythonCard import event, widget + # KEA 2004-05-04 + # dropped TextEnterEvent since I'm not sure it is needed + # use keyPress handler instead + SpinnerEvents = ( + event.KeyPressEvent, + event.KeyDownEvent, + event.KeyUpEvent, + #event.TextEnterEvent, + event.TextUpdateEvent, + ) + class SpinnerSpec(widget.WidgetSpec): def __init__(self): ! events = list(SpinnerEvents) ! ## events = [event.KeyPressEvent, ! ## event.KeyDownEvent, ! ## event.KeyUpEvent, ! ## event.TextEnterEvent, ! ## event.TextUpdateEvent, ! ## #event.SpinUpEvent, ! ## #event.SpinDownEvent ! ## ] attributes = { 'min' : { 'presence' : 'optional', 'default' : 0 }, *************** *** 51,79 **** widget.Widget.__init__( self, aParent, aResource ) ! adapter = SpinnerEventBinding(self) ! adapter.bindEvents() def setRange( self, aMin, aMax ) : self.SetRange( aMin, aMax ) - """ - def _getValue( self ) : - return self.GetValue() - - def _setValue( self, aValue ) : - self.SetValue( aValue ) - - def _getMin( self ) : - return self.GetMin() - """ - def _setMin( self, aMin ) : self.SetRange( aMin, self.GetMax() ) - """ - def _getMax( self ) : - return self.GetMax() - """ - def _setMax( self, aMax ) : self.SetRange( self.GetMin(), aMax ) --- 63,74 ---- widget.Widget.__init__( self, aParent, aResource ) ! self._bindEvents(event.WIDGET_EVENTS + SpinnerEvents) def setRange( self, aMin, aMax ) : self.SetRange( aMin, aMax ) def _setMin( self, aMin ) : self.SetRange( aMin, self.GetMax() ) def _setMax( self, aMax ) : self.SetRange( self.GetMin(), aMax ) *************** *** 84,155 **** - class SpinnerEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.Spinner to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.KeyDownEvent : - wx.EVT_KEY_DOWN( self._component, self._dispatch ) - elif aEventClass is event.KeyUpEvent : - wx.EVT_KEY_UP( self._component, self._dispatch ) - elif aEventClass is event.KeyPressEvent : - wx.EVT_CHAR( self._component, self._dispatch ) - elif aEventClass is event.TextUpdateEvent : - #wx.EVT_SPINCTRL( parent, self._component.GetId(), self._dispatch ) - wx.EVT_TEXT( parent, self._component.GetId(), self._dispatch ) - elif aEventClass is event.TextEnterEvent : - wx.EVT_TEXT_ENTER( parent, self._component.GetId(), self._dispatch ) - """ - elif aEventClass is event.SpinUpEvent : - wx.EVT_SPIN_UP(parent, self._component.GetId(), self._dispatch) - elif aEventClass is event.SpinDownEvent : - wx.EVT_SPIN_DOWN(parent, self._component.GetId(), self._dispatch) - """ - - - def _dispatch( self, aWxEvent ) : - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - - if aWxEvent.GetEventType() == wx.wxEVT_KEY_DOWN : - evt = self._createEvent( event.KeyDownEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_KEY_UP : - evt = self._createEvent( event.KeyUpEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_CHAR : - evt = self._createEvent( event.KeyPressEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_TEXT_ENTER : - evt = self._createEvent( event.TextEnterEvent, aWxEvent ) - """ - if aWxEvent.GetEventType() == wx.wxEVT_SCROLL_LINEUP: - evt = self._createEvent(event.SpinUpEvent, aWxEvent) - if aWxEvent.GetEventType() == wx.wxEVT_SCROLL_LINEDOWN: - evt = self._createEvent(event.SpinDownEvent, aWxEvent) - """ - #if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_SPINCTRL_UPDATED: - # evt = self._createEvent( event.TextUpdateEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_TEXT_UPDATED: - component = self._component - if component._getCommand() is not None: - evt = event.CommandEvent(component._getCommand(), component) - evt.setNativeEvent(aWxEvent) - else: - evt = self._createEvent(event.TextUpdateEvent, aWxEvent) - - if evt is not None : - self._component.notifyEventListeners(evt) - #if not evt.getUsed(): - # aWxEvent.Skip() - - import sys from PythonCard import registry --- 79,82 ---- Index: grid.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/grid.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** grid.py 20 Apr 2004 20:54:39 -0000 1.8 --- grid.py 4 May 2004 17:15:42 -0000 1.9 *************** *** 50,55 **** widget.Widget.__init__(self, aParent, aResource) ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() --- 50,54 ---- widget.Widget.__init__(self, aParent, aResource) ! self._bindEvents(event.WIDGET_EVENTS) Index: slider.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/slider.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** slider.py 1 May 2004 18:47:48 -0000 1.17 --- slider.py 4 May 2004 17:15:42 -0000 1.18 *************** *** 8,14 **** from PythonCard import event, widget class SliderSpec(widget.WidgetSpec): def __init__(self): ! events = [event.SelectEvent] attributes = { 'layout' : { 'presence' : 'optional', 'default' : 'horizontal', 'values' : [ 'horizontal', 'vertical' ] }, --- 8,21 ---- from PythonCard import event, widget + class SliderSelectEvent(event.SelectEvent): + binding = wx.EVT_SLIDER + id = wx.wxEVT_COMMAND_SLIDER_UPDATED + + SliderEvents = (SliderSelectEvent,) + class SliderSpec(widget.WidgetSpec): def __init__(self): ! events = list(SliderEvents) ! ## events = [event.SelectEvent] attributes = { 'layout' : { 'presence' : 'optional', 'default' : 'horizontal', 'values' : [ 'horizontal', 'vertical' ] }, *************** *** 44,49 **** self._layout = aResource.layout ! adapter = SliderEventBinding(self) ! adapter.bindEvents() def __getLayout( self, aString ) : --- 51,55 ---- self._layout = aResource.layout ! self._bindEvents(event.WIDGET_EVENTS + SliderEvents) def __getLayout( self, aString ) : *************** *** 58,80 **** self.SetRange( aMin, aMax ) - """ - def _getValue( self ) : - return self.GetValue() - - def _setValue( self, aValue ) : - self.SetValue( aValue ) - - def _getMin( self ) : - return self.GetMin() - """ - def _setMin( self, aMin ) : self.SetRange( aMin, self.GetMax() ) - """ - def _getMax( self ) : - return self.GetMax() - """ - def _setMax( self, aMax ) : self.SetRange( self.GetMin(), aMax ) --- 64,70 ---- *************** *** 92,129 **** - class SliderEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.Slider to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.SelectEvent : - wx.EVT_SLIDER( parent, self._component.GetId(), self._dispatch ) - - def _dispatch( self, aWxEvent ) : - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - component = self._component - - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_SLIDER_UPDATED: - if component._getCommand() is not None: - evt = event.CommandEvent(component._getCommand(), component) - evt.setNativeEvent(aWxEvent) - else: - evt = self._createEvent(event.SelectEvent, aWxEvent) - - if evt is not None : - self._component.notifyEventListeners( evt ) - - import sys from PythonCard import registry --- 82,85 ---- Index: gauge.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/gauge.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** gauge.py 21 Apr 2004 03:45:00 -0000 1.11 --- gauge.py 4 May 2004 17:15:42 -0000 1.12 *************** *** 44,49 **** self._layout = aResource.layout ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() def __getLayout( self, aString ) : --- 44,48 ---- self._layout = aResource.layout ! self._bindEvents(event.WIDGET_EVENTS) def __getLayout( self, aString ) : Index: checkbox.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/checkbox.py,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** checkbox.py 1 May 2004 18:47:49 -0000 1.17 --- checkbox.py 4 May 2004 17:15:42 -0000 1.18 *************** *** 8,14 **** from PythonCard import event, widget class CheckBoxSpec(widget.WidgetSpec): def __init__(self): ! events = [event.MouseClickEvent ] attributes = { 'label' : { 'presence' : 'mandatory' }, --- 8,21 ---- from PythonCard import event, widget + class CheckBoxMouseClickEvent(event.MouseClickEvent): + binding = wx.EVT_CHECKBOX + id = wx.wxEVT_COMMAND_CHECKBOX_CLICKED + + CheckBoxEvents = (CheckBoxMouseClickEvent,) + class CheckBoxSpec(widget.WidgetSpec): def __init__(self): ! ## events = [event.MouseClickEvent ] ! events = list(CheckBoxEvents) attributes = { 'label' : { 'presence' : 'mandatory' }, *************** *** 16,19 **** --- 23,27 ---- widget.WidgetSpec.__init__(self, 'CheckBox', 'Widget', events, attributes ) + class CheckBox(widget.Widget, wx.CheckBox): """ *************** *** 40,45 **** self.SetValue(True) ! adapter = CheckBoxEventBinding(self) ! adapter.bindEvents() checked = property(wx.CheckBox.GetValue, wx.CheckBox.SetValue) --- 48,52 ---- self.SetValue(True) ! self._bindEvents(event.WIDGET_EVENTS + CheckBoxEvents) checked = property(wx.CheckBox.GetValue, wx.CheckBox.SetValue) *************** *** 47,79 **** - class CheckBoxEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.CheckBox to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.MouseClickEvent : - wx.EVT_CHECKBOX( parent, self._component.GetId(), self._dispatch ) - - def _dispatch( self, aWxEvent ) : - - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_CHECKBOX_CLICKED : - evt = self._createEvent( event.MouseClickEvent, aWxEvent ) - - if evt is not None : - self._component.notifyEventListeners( evt ) - - import sys from PythonCard import registry --- 54,57 ---- Index: staticline.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/staticline.py,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** staticline.py 21 Apr 2004 03:45:00 -0000 1.11 --- staticline.py 4 May 2004 17:15:42 -0000 1.12 *************** *** 41,46 **** self._layout = aResource.layout ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() def __getLayout( self, aString ) : --- 41,45 ---- self._layout = aResource.layout ! self._bindEvents(event.WIDGET_EVENTS) def __getLayout( self, aString ) : *************** *** 52,58 **** raise 'invalid StaticLine.layout value: ', aString - #def _bindEvents( self ) : - # pass - #def _setHelpText( self, aString ) : # pass --- 51,54 ---- Index: radiogroup.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/radiogroup.py,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** radiogroup.py 1 May 2004 18:47:48 -0000 1.23 --- radiogroup.py 4 May 2004 17:15:42 -0000 1.24 *************** *** 9,15 **** from list import ContainerMixin class RadioGroupSpec(widget.WidgetSpec): def __init__(self): ! events = [event.SelectEvent] attributes = { 'label' : { 'presence' : 'optional', 'default' : '' }, --- 9,22 ---- from list import ContainerMixin + class RadioGroupSelectEvent(event.SelectEvent): + binding = wx.EVT_RADIOBOX + id = wx.wxEVT_COMMAND_RADIOBOX_SELECTED + + RadioGroupEvents = (RadioGroupSelectEvent,) + class RadioGroupSpec(widget.WidgetSpec): def __init__(self): ! events = list(RadioGroupEvents) ! ## events = [event.SelectEvent] attributes = { 'label' : { 'presence' : 'optional', 'default' : '' }, *************** *** 54,59 **** self._setStringSelection(aResource.stringSelection) ! adapter = RadioGroupEventBinding(self) ! adapter.bindEvents() def __getLayout(self, aString): --- 61,65 ---- self._setStringSelection(aResource.stringSelection) ! self._bindEvents(event.WIDGET_EVENTS + RadioGroupEvents) def __getLayout(self, aString): *************** *** 93,124 **** - class RadioGroupEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.RadioGroup to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.SelectEvent : - wx.EVT_RADIOBOX( parent, self._component.GetId(), self._dispatch ) - - def _dispatch( self, aWxEvent ) : - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_RADIOBOX_SELECTED : - evt = self._createEvent( event.SelectEvent, aWxEvent ) - - if evt is not None : - self._component.notifyEventListeners( evt ) - - import sys from PythonCard import registry --- 99,102 ---- Index: list.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/list.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** list.py 4 May 2004 05:15:17 -0000 1.24 --- list.py 4 May 2004 17:15:42 -0000 1.25 *************** *** 29,45 **** ! class ListEvent(event.Event, event.CommandTypeEvent): ! def decorate(self, aWxEvent, source): ! aWxEvent = event.Event.decorate(self, aWxEvent, source) ! aWxEvent.selection = aWxEvent.GetSelection() ! aWxEvent.stringSelection = aWxEvent.GetString() ! return aWxEvent ! ! class ListSelectEvent(ListEvent): name = 'select' binding = wx.EVT_LISTBOX id = wx.wxEVT_COMMAND_LISTBOX_SELECTED ! class ListMouseDoubleClickEvent(ListEvent): name = 'mouseDoubleClick' binding = wx.EVT_LISTBOX_DCLICK --- 29,39 ---- ! class ListSelectEvent(event.SelectEvent): name = 'select' binding = wx.EVT_LISTBOX id = wx.wxEVT_COMMAND_LISTBOX_SELECTED ! # can only have one CommandTypeEvent per component ! class ListMouseDoubleClickEvent(event.Event): name = 'mouseDoubleClick' binding = wx.EVT_LISTBOX_DCLICK Index: combobox.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/combobox.py,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** combobox.py 1 May 2004 18:47:48 -0000 1.25 --- combobox.py 4 May 2004 17:15:42 -0000 1.26 *************** *** 11,22 **** from list import ContainerMixin class ComboBoxSpec(widget.WidgetSpec): ! def __init__(self): ! events = [event.SelectEvent, ! event.KeyPressEvent, ! event.KeyDownEvent, ! event.KeyUpEvent, ! event.TextEnterEvent, ! event.TextUpdateEvent] attributes = { 'text' : { 'presence' : 'optional', 'default' : '' }, --- 11,39 ---- from list import ContainerMixin + class ComboBoxSelectEvent(event.SelectEvent): + binding = wx.EVT_COMBOBOX + id = wx.wxEVT_COMMAND_COMBOBOX_SELECTED + + # KEA 2004-05-04 + # dropped TextEnterEvent since I'm not sure it is needed + # use keyPress handler instead + ComboBoxEvents = ( + event.KeyPressEvent, + event.KeyDownEvent, + event.KeyUpEvent, + #event.TextEnterEvent, + event.TextUpdateEvent, + ComboBoxSelectEvent + ) + class ComboBoxSpec(widget.WidgetSpec): ! def __init__(self): ! events = list(ComboBoxEvents) ! ## events = [event.SelectEvent, ! ## event.KeyPressEvent, ! ## event.KeyDownEvent, ! ## event.KeyUpEvent, ! ## event.TextEnterEvent, ! ## event.TextUpdateEvent] attributes = { 'text' : { 'presence' : 'optional', 'default' : '' }, *************** *** 26,29 **** --- 43,47 ---- widget.WidgetSpec.__init__(self, 'ComboBox', 'Widget', events, attributes) + class ComboBox(widget.Widget, wx.ComboBox, ContainerMixin): """ *************** *** 42,46 **** aResource.size, aResource.items, ! style = wx.CB_DROPDOWN | wx.NO_FULL_REPAINT_ON_RESIZE | wx.CLIP_SIBLINGS, name = aResource.name ) --- 60,64 ---- aResource.size, aResource.items, ! style = wx.CB_DROPDOWN | wx.NO_FULL_REPAINT_ON_RESIZE | wx.CLIP_SIBLINGS, name = aResource.name ) *************** *** 55,60 **** self.SetValue(aResource.text) ! adapter = ComboBoxEventBinding(self) ! adapter.bindEvents() def _getItems(self): --- 73,77 ---- self.SetValue(aResource.text) ! self._bindEvents(event.WIDGET_EVENTS + ComboBoxEvents) def _getItems(self): *************** *** 85,138 **** - class ComboBoxEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.ComboBox to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.KeyDownEvent : - wx.EVT_KEY_DOWN( self._component, self._dispatch ) - elif aEventClass is event.KeyUpEvent : - wx.EVT_KEY_UP( self._component, self._dispatch ) - elif aEventClass is event.KeyPressEvent : - wx.EVT_CHAR( self._component, self._dispatch ) - elif aEventClass is event.TextEnterEvent : - wx.EVT_TEXT_ENTER( parent, self._component.GetId(), self._dispatch ) - elif aEventClass is event.TextUpdateEvent : - wx.EVT_TEXT( parent, self._component.GetId(), self._dispatch ) - elif aEventClass is event.SelectEvent : - wx.EVT_COMBOBOX( parent, self._component.GetId(), self._dispatch ) - - def _dispatch( self, aWxEvent ) : - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - - if aWxEvent.GetEventType() == wx.wxEVT_KEY_DOWN : - evt = self._createEvent( event.KeyDownEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_KEY_UP : - evt = self._createEvent( event.KeyUpEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_CHAR : - evt = self._createEvent( event.KeyPressEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_TEXT_ENTER : - evt = self._createEvent( event.TextEnterEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_TEXT_UPDATED : - evt = self._createEvent( event.TextUpdateEvent, aWxEvent ) - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_COMBOBOX_SELECTED : - evt = self._createEvent( event.SelectEvent, aWxEvent ) - - if evt is not None : - self._component.notifyEventListeners( evt ) - if not evt.getUsed(): - aWxEvent.Skip() - - import sys from PythonCard import registry --- 102,105 ---- Index: htmlwindow.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/htmlwindow.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** htmlwindow.py 21 Apr 2004 03:45:00 -0000 1.15 --- htmlwindow.py 4 May 2004 17:15:42 -0000 1.16 *************** *** 42,47 **** self._setText(aResource.text) ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() def setAddressField(self, field): --- 42,46 ---- self._setText(aResource.text) ! self._bindEvents(event.WIDGET_EVENTS) def setAddressField(self, field): Index: staticbox.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/staticbox.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** staticbox.py 21 Apr 2004 03:45:00 -0000 1.10 --- staticbox.py 4 May 2004 17:15:42 -0000 1.11 *************** *** 39,44 **** widget.Widget.__init__( self, aParent, aResource ) ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() """ --- 39,43 ---- widget.Widget.__init__( self, aParent, aResource ) ! self._bindEvents(event.WIDGET_EVENTS) """ Index: button.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/button.py,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** button.py 2 May 2004 19:49:57 -0000 1.29 --- button.py 4 May 2004 17:15:41 -0000 1.30 *************** *** 53,58 **** self._setDefault(self._resource.default) - #adapter = ButtonEventBinding(self) - #adapter.bindEvents() self._bindEvents(event.WIDGET_EVENTS + ButtonEvents) --- 53,56 ---- *************** *** 84,150 **** default = property(_getDefault, _setDefault) label = property(wx.Button.GetLabel, wx.Button.SetLabel) - - - class ButtonEventBinding(event.DefaultEventBinding): - """ - Bind the Events supported by event.Button to wxPython. - """ - def __init__(self, aComponent): - event.DefaultEventBinding.__init__(self, aComponent) - - def bindEvent(self, aEventClass): - parent = self._component._parent - # KEA 2004-04-26 - # test to use new event classes - if aEventClass is event.ButtonMouseClickEvent: - event.ButtonMouseClickEvent.bindFunction(parent, self._component.GetId(), self._dispatch) - - ## if aEventClass is event.MouseClickEvent: - ## wx.EVT_BUTTON(parent, self._component.GetId(), self._dispatch) - - def _dispatch(self, aWxEvent): - component = self._component - - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch(self, aWxEvent): - return - - evt = None - - # KEA 2004-04-26 - # test to use new event classes - # this is a generic loop which because there is only - # one event class in ButtonEvents is a little long-winded - # as soon as we find a match we break out of the loop - # if ButtonEvents was called ComponentSpecificEvents - # or something generic then maybe this loop would be the same for - # all components? - # if we had a mapping of ids to event classes - # then you could just use a try/except block and get the class - # directly from the ButtonEvents list - # eventClass = ButtonEvents[indexToClassMapping(eventType)] - eventType = aWxEvent.GetEventType() - for eventClass in ButtonEvents: - if eventType == eventClass.id: - if eventClass.command: - if component._getCommand() is not None: - evt = event.CommandEvent(component._getCommand(), component) - evt.setNativeEvent(aWxEvent) - else: - evt = self._createEvent(eventClass, aWxEvent) - else: - evt = self._createEvent(eventClass, aWxEvent) - break - ## if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_BUTTON_CLICKED: - ## if component._getCommand() is not None: - ## evt = event.CommandEvent(component._getCommand(), component) - ## evt.setNativeEvent(aWxEvent) - ## else: - ## evt = self._createEvent(event.MouseClickEvent, aWxEvent) - - if evt is not None: - component.notifyEventListeners(evt) - --- 82,85 ---- Index: statictext.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/statictext.py,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** statictext.py 27 Apr 2004 18:14:38 -0000 1.15 --- statictext.py 4 May 2004 17:15:42 -0000 1.16 *************** *** 41,46 **** self._alignment = aResource.alignment ! adapter = event.DefaultEventBinding(self) ! adapter.bindEvents() def __getAlignment( self, aString ) : --- 41,45 ---- self._alignment = aResource.alignment ! self._bindEvents(event.WIDGET_EVENTS) def __getAlignment( self, aString ) : Index: image.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/image.py,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** image.py 2 May 2004 23:20:40 -0000 1.19 --- image.py 4 May 2004 17:15:42 -0000 1.20 *************** *** 63,68 **** wx.EVT_WINDOW_DESTROY(self, self._OnDestroy) - #adapter = event.DefaultEventBinding(self) - #adapter.bindEvents() self._bindEvents(event.WIDGET_EVENTS) --- 63,66 ---- Index: choice.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/components/choice.py,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** choice.py 1 May 2004 18:47:48 -0000 1.18 --- choice.py 4 May 2004 17:15:42 -0000 1.19 *************** *** 9,15 **** from list import ContainerMixin class ChoiceSpec(widget.WidgetSpec): def __init__(self): ! events = [ event.SelectEvent ] attributes = { 'items' : { 'presence' : 'optional', 'default' : [] }, --- 9,22 ---- from list import ContainerMixin + class ChoiceSelectEvent(event.SelectEvent): + binding = wx.EVT_CHOICE + id = wx.wxEVT_COMMAND_CHOICE_SELECTED + + ChoiceEvents = (ChoiceSelectEvent,) + class ChoiceSpec(widget.WidgetSpec): def __init__(self): ! events = list(ChoiceEvents) ! ## events = [ event.SelectEvent ] attributes = { 'items' : { 'presence' : 'optional', 'default' : [] }, *************** *** 17,20 **** --- 24,28 ---- widget.WidgetSpec.__init__(self, 'Choice', 'Widget', events, attributes ) + class Choice(widget.Widget, wx.Choice, ContainerMixin): """ *************** *** 41,46 **** self._setStringSelection(aResource.stringSelection) ! adapter = ChoiceEventBinding(self) ! adapter.bindEvents() def _getItems(self): --- 49,53 ---- self._setStringSelection(aResource.stringSelection) ! self._bindEvents(event.WIDGET_EVENTS + ChoiceEvents) def _getItems(self): *************** *** 63,93 **** - class ChoiceEventBinding( event.DefaultEventBinding ) : - """ - Bind the Events supported by event.Choice to wxPython. - """ - def __init__( self, aComponent ) : - event.DefaultEventBinding.__init__( self, aComponent ) - - def bindEvent( self, aEventClass ) : - parent = self._component._parent - - if aEventClass is event.SelectEvent : - wx.EVT_CHOICE( parent, self._component.GetId(), self._dispatch ) - - def _dispatch( self, aWxEvent ) : - # Call our superclass to dispatch the standard mouse - # events that every widget should get. - if event.DefaultEventBinding._dispatch( self, aWxEvent ) : - return - - evt = None - - if aWxEvent.GetEventType() == wx.wxEVT_COMMAND_CHOICE_SELECTED : - evt = self._createEvent( event.SelectEvent, aWxEvent ) - - if evt is not None : - self._component.notifyEventListeners( evt ) - import sys from PythonCard import registry --- 70,73 ---- |