root/trunk/RBSkinning/RBSkinning/wxPythonSkin/layout_algorithm.py

Revision 603, 2.5 kB (checked in by sholloway, 6 years ago)

*** empty log message ***

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 weakref
27 from RBFoundation.BindCallable import BindCallable
28 from wxSkinObject import wx, wxSkinObject, wxSkinWindowCollectorObject, wxSkinObjectNoData
29
30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 #~ Class
32 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34 class wxLayoutAlgorithmSizerAdaptor(wx.wxPySizer):
35     def __init__(self, callback):
36         wx.wxPySizer.__init__(self)
37         self.OnRecalcSizes = BindCallable(callback)
38
39     def RecalcSizes(self):
40         self.OnRecalcSizes()
41
42 class layout_algorithm(wxSkinObject, wxSkinWindowCollectorObject, wxSkinObjectNoData):
43     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44     #~ Constants / Variables / Etc.
45     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46
47     default_settings = wxSkinObject.default_settings.copy()
48
49     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50     #~ Public
51     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52
53     def SkinInitialize(self):
54         self.object = wx.wxLayoutAlgorithm()
55         self.object.sizer = wxLayoutAlgorithmSizerAdaptor(self.OnLayout)
56
57         self.context.layout_algorithm = weakref.proxy(self)
58         self.wxInitialStandardOptions()
59         self.PushContext()
60
61         self.childWindow = None
62         self.winParent = self.wxGetParentObject(wx.wxWindowPtr)
63         self.winParent.SetSizer(self.object.sizer)
64
65     def SkinFinalize(self):
66         self.wxFinalStandardOptions()
67
68     def wxAddChildWindow(self, ChildNode):
69         self.childWindow = ChildNode.object
70        
71     def OnLayout(self, evt=None):
72         self.object.LayoutWindow(self.winParent, self.childWindow)
73
Note: See TracBrowser for help on using the browser.