root/trunk/RBSkinning/RBSkinning/dotSkin/subgraph.py

Revision 284, 1.6 kB (checked in by sholloway, 6 years ago)

Changed the interface of SkinContext? in order to be more flexable
Fixed some naming and comparison problems in WeakBind?
Fixed some itereation issues in DOT Skinning
Added an invisible DOT skin element
Added a LazyProperty? that calls ClassFactory? to instantiate a variable on the first reference.
Added a hash method to WeakBind?

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 import graph
27
28 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 #~ Class Initialization
30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31
32 class subgraph(graph.graph):
33     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34     #~ Constants / Variables / Etc.
35     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36
37     _DOTStartFormat = 'subgraph %s {'
38
39     def SkinInitialize(self):
40         pass
41
42     def _toDOT(self, joinstr='\n', close=1):
43         if close:
44             return graph.graph._toDOT(self, joinstr, close)
45         else:
46             name = self.settings.get('name', '')
47             if not name: name = joinclean('\n', self.Content())
48             result = ':'.join(['"%s"' % x.replace('"', "'") for x in name.split(':')])
49             return result
Note: See TracBrowser for help on using the browser.