Changeset 563

Show
Ignore:
Timestamp:
06/14/03 11:06:03 (5 years ago)
Author:
sholloway
Message:

Extended wxSubObsEvtHandler to extend generic wxEvtHandlers

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBSkinning/RBSkinning/wxPythonSkin/wxSkinObject.py

    r505 r563  
    112112 
    113113    def wxInitialStandardOptions(self): 
     114        if isinstance(self.object, wx.wxEvtHandlerPtr): 
     115            if wxSubObsEvtHandler is not None: 
     116                advanced_events = self.wxEvalCond('subobs_events', 1) 
     117                if advanced_events: 
     118                    evthandler = wxSubObsEvtHandler() 
     119                    evthandler.ReplaceEvtHandlerOf(self.object) 
     120 
    114121        if isinstance(self.object, wx.wxWindowPtr): 
    115122            #assert isinstance(self, wxSkinWindowObject), "%r is not derived from wxSkinWindowObject" % self.__class__.__name__ 
     
    128135 
    129136    def wxInitialStandardWindowOptions(self): 
    130         if wxSubObsEvtHandler is not None: 
    131             advanced_events = self.wxEvalCond('subobs_events', 1) 
    132             if advanced_events: 
    133                 evthandler = wxSubObsEvtHandler() 
    134                 evthandler.ReplaceEvtHandlerOf(self.object) 
    135  
    136                 # vv NOTE: DEBUG vvvvvvvvvvvvv 
    137                 if __debug_window_counts__: 
    138                     _DEBUG_OnCreate(None) 
    139                     evthandler.Connect(-1, -1, wx.wxEVT_DESTROY, _DEBUG_OnDestroy) 
    140                 # ^^ NOTE: DEBUG ^^^^^^^^^^^^^ 
     137        # vv NOTE: DEBUG vvvvvvvvvvvvv 
     138        if __debug_window_counts__: 
     139            _DEBUG_OnCreate(None) 
     140            evthandler.Connect(-1, -1, wx.wxEVT_DESTROY, _DEBUG_OnDestroy) 
     141        # ^^ NOTE: DEBUG ^^^^^^^^^^^^^ 
    141142 
    142143        if 'fgcolor' in self.settings: 
  • trunk/RBSkinning/RBSkinning/wxTools/wxSubObsEvtHandler.py

    r531 r563  
    5151                evt.Skip(False) 
    5252            result = observer(evt, *(args+obsargs)) 
    53             if result is not NotImplemented: 
    54                 # break out since the event was not skipped 
    55                 break 
    56         else: 
     53 
     54        if result is NotImplemented: 
    5755            evt.Skip() 
    5856 
     
    6260    __slots__ = ['_subject_map'] 
    6361 
    64     def ReplaceEvtHandlerOf(self, window): 
    65         window.Connect = self.Connect 
    66         window.Disconnect = self.Disconnect 
    67         window.PushEventHandler(self) 
     62    def ReplaceEvtHandlerOf(self, eventhandler): 
     63        eventhandler.Connect = self.Connect 
     64        eventhandler.Disconnect = self.Disconnect 
     65        # Push event handler 
     66        next = eventhandler.GetNextHandler() 
     67        eventhandler.SetNextHandler(self) 
     68        self.SetNextHandler(next) 
     69        self.SetPreviousHandler(eventhandler) 
    6870 
    6971    def Connect(self, id, lastid, eventType, function, *args, **kw): 
  • trunk/RBSkinning/demo/wxPythonSkin/widgets/menu.py

    r561 r563  
    3636        <menu_bar> 
    3737            <menu ctxvar='behaviormodel.mymenu' text='File'> 
    38                 <menu_item text='New'/> 
     38                <menu_item text='New'> 
     39                    <command_event handler='None, wxFramePtr' type='EVT_MENU' call='ctx.behaviormodel.OnNew' />  
     40                </menu_item> 
    3941                <menu_item text='Open'/> 
    4042                <menu_item text='Save'/> 
     
    7476        print 'OnPopupClose', evt 
    7577 
     78    def OnNew(self, evt): 
     79        print 'OnNew', evt 
     80 
    7681#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    7782#~ Main