Changeset 381

Show
Ignore:
Timestamp:
11/21/02 18:29:30 (6 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

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

    r280 r381  
    106106        return result 
    107107         
     108    def _SetContextVars(self, startphase): 
     109        # Context Var/Node settings 
     110        if startphase and self.settings.get('contextnode', None): 
     111            for name in strtolist(self.settings['contextnode']): 
     112                setattr(self.context, name, weakref.proxy(self)) 
     113        if self.object and self.settings.get('contextvar', None): 
     114            for name in strtolist(self.settings['contextvar']): 
     115                setattr(self.context, name, self.object) 
     116 
     117        # Parent Var/Node settings 
     118        if self.context._NextContext: 
     119            if startphase and self.settings.get('parentnode', None): 
     120                for name in strtolist(self.settings['parentnode']): 
     121                    setattr(self.context._NextContext, name, weakref.proxy(self)) 
     122            if self.object and self.settings.get('parentvar', None): 
     123                for name in strtolist(self.settings['parentvar']): 
     124                    setattr(self.context._NextContext, name, self.object) 
     125 
    108126    def Content(self): 
    109127        return [child[1] for child in self.children if child[0] == ''] 
     
    230248    def _xmlInitStarted(self): 
    231249        self.SkinInitialize() 
    232  
    233         # Context Var/Node settings 
    234         if self.settings.get('contextnode', None): 
    235             for name in strtolist(self.settings['contextnode']): 
    236                 setattr(self.context, name, weakref.proxy(self)) 
    237         if self.settings.get('contextvar', None) and self.object: 
    238             for name in strtolist(self.settings['contextvar']): 
    239                 setattr(self.context, name, self.object) 
    240  
    241         # Parent Var/Node settings 
    242         if self.context._NextContext: 
    243             if self.settings.get('parentnode', None): 
    244                 for name in strtolist(self.settings['parentnode']): 
    245                     setattr(self.context._NextContext, name, weakref.proxy(self)) 
    246             if self.settings.get('parentvar', None) and self.object: 
    247                 for name in strtolist(self.settings['parentvar']): 
    248                     setattr(self.context._NextContext, name, self.object) 
     250        self._SetContextVars(startphase=1) 
     251 
     252        # Freeform Variable settings 
     253        onEvent = self.settings.get(('http://namespaces.runeblade.com/skin', 'onstart'), None) 
     254        if onEvent is not None: 
     255            code = compile(onEvent, 'skin:onstart', 'single') 
     256            exec code in self.globalnamespace, self._GetEvalLocals() 
    249257 
    250258    def _xmlInitComplete(self): 
    251259        # Test this first 
    252260        if self.object: 
    253             # Skin finalize might change it 
    254261            self.SkinFinalize() 
    255262        else: 
    256263            # Skin finalize might change it 
    257264            self.SkinFinalize() 
    258             # Now act on knowing that self.object wasn't set before 
    259             if self.settings.get('contextvar', None): 
    260                 for name in strtolist(self.settings['contextvar']): 
    261                     setattr(self.context, name, self.object) 
    262             if self.settings.get('parentvar', None) and self.object and self.context._NextContext: 
    263                 for name in strtolist(self.settings['parentvar']): 
    264                     setattr(self.context._NextContext, name, self.object) 
    265  
     265            self._SetContextVars(startphase=0) 
     266 
     267        # Freeform Variable settings 
     268        onEvent = self.settings.get(('http://namespaces.runeblade.com/skin', 'oncomplete'), None) 
     269        if onEvent is not None: 
     270            code = compile(onEvent, 'skin:oncomplete', 'single') 
     271            exec code in self.globalnamespace, self._GetEvalLocals() 
     272 
     273        # Unraveling code 
    266274        if int(self.settings.get('unravel', '0')): 
    267275            self.Unravel() 
  • trunk/RBSkinning/RBSkinning/wxPythonSkin/list.py

    r253 r381  
    5858            each = each.replace('\n', '').strip() 
    5959            if each: self.object.Append(each) 
    60         self.object.SetSelection(self.wxEval('selection')) 
     60        if self.object.GetCount() > 0: 
     61            self.object.SetSelection(self.wxEval('selection')) 
    6162 
    6263        self.AddToLayout()