root/trunk/RBSkinning/RBSkinning/wxPythonSkin/dockhost.py

Revision 752, 2.9 kB (checked in by sholloway, 5 years ago)

--

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 wxSkinObject import wx, wxSkinObject, wxSkinObjectNoData
28 from RBSkinning.wxTools import wxDockingTools
29
30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 #~ Definitions
32 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34 class wxSkinDockHost(wxDockingTools.wxDockHost):
35     dockcontext = None
36
37     def DockContext(self):
38         return self.dockcontext
39
40 class dockhost(wxSkinObject, wxSkinObjectNoData):
41     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42     #~ Constants / Variables / Etc.
43     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
45     default_settings = wxSkinObject.default_settings.copy()
46     #default_settings['prepend'] = True
47     #default_settings['hideempty'] = False
48     #default_settings['single'] = False
49     #default_settings['rootparent'] = 'self.wxGetParentObject(wx.wxWindowPtr)'
50     #default_settings['rootlayout'] = 'self.wxGetParentObject(wx.wxWindowPtr).GetSizer()'
51     #default_settings['dockcontext'] = ''
52
53     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54     #~ Public
55     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56
57     def SkinInitialize(self):
58         winParent = self.wxGetParentObject(wx.wxWindowPtr)
59         layout = self.wxGetParentObject(wx.wxSizerPtr)
60         kwSettings = self.wxSettingDict(['prepend', 'hideempty', 'rootparent', 'rootlayout'],
61             prepend=True, hideempty=False, rootparent=winParent, rootlayout=winParent.GetSizer())
62
63         self.object = wxSkinDockHost(winParent, layout, **kwSettings)
64
65         single = self.wxEvalCond('single', False)
66         if single:
67             wxDockingTools.wxSingleDockHostAspect.MixinAspect(self.object)
68
69     def SkinFinalize(self):
70         self.wxStandardOptions()
71
72         dockcontext = self.wxEvalCond('dockcontext', None)
73         if dockcontext is not None:
74             self.object.dockcontext = dockcontext
75             try: AddDockHost = dockcontext.AddDockHost
76             except AttributeError: pass
77             else: AddDockHost(weakref.proxy(self.object))
78  
Note: See TracBrowser for help on using the browser.