root/trunk/RBSkinning/RBSkinning/xmlPython/for_.py

Revision 535, 2.0 kB (checked in by sholloway, 6 years ago)

Fixed bugs created by SkinComplete? being added in addition to SkinFinalize?

Line 
1 #!/usr/bin/env python
2 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 ##~ License
4 ##~
5 ##- The RuneBlade Foundation library is intended to ease some
6 ##- aspects of writing intricate Jabber, XML, and User Interface (wxPython, etc.)
7 ##- applications, while providing the flexibility to modularly change the
8 ##- architecture. Enjoy.
9 ##~
10 ##~ Copyright (C) 2002  TechGame Networks, LLC.
11 ##~
12 ##~ This library is free software; you can redistribute it and/or
13 ##~ modify it under the terms of the BSD style License as found in the
14 ##~ LICENSE file included with this distribution.
15 ##~
16 ##~ TechGame Networks, LLC can be reached at:
17 ##~ 3578 E. Hartsel Drive #211
18 ##~ Colorado Springs, Colorado, USA, 80920
19 ##~
20 ##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21
22 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23 #~ Imports
24 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
25
26 from PyConditionalSkinObject import PyConditionalSkinObject
27 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28 #~ Definitions
29 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30
31 class for_(PyConditionalSkinObject):
32     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33     #~ Constants / Variables / Etc.
34     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35
36     default_settings = PyConditionalSkinObject.default_settings.copy()
37     default_settings['collection'] = '[]'
38     default_settings['each'] = 'each'
39     default_settings['unravelnode'] = '1'
40
41     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42     #~ Public Methods
43     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
45     def SkinInitialize(self):
46         if self.parent():
47             self.parent().PushContext(force=1)
48         self.object = self.EvalLocal(self.settings['collection'])
49         self.StoreChildren(self.object and 1 or 0)
50
51     def SkinComplete(self):
52         name = self.settings['each']
53         for each in self.object:
54             setattr(self.context, name, each)
55             self.RestoreChildren()
56         if self.parent():
57             self.parent().PopContext()
Note: See TracBrowser for help on using the browser.