| | 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 | |
|---|
| 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() |
|---|
| 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 |
|---|