root/trunk/RBSkinning/RBSkinning/wxPythonSkin/layout_flexgrid.py

Revision 479, 2.3 kB (checked in by sholloway, 6 years ago)

Finished up the docking tools
Cleaned up a rarely seen bug in the layouts when resizing
Added the docking test harness as the first RBSkinning demo :)

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 layout import wx, layout
27
28 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
29 #~ Class
30 #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31
32 class layout_flexgrid(layout):
33     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34     #~ Constants / Variables / Etc.
35     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
36
37     default_settings = layout.default_settings.copy()
38     default_settings.update({
39         'rows': '0',
40         'cols': '2',
41         'vgap': '0',
42         'hgap': '0',
43         'expandrows': '[]',
44         'expandcols': '[-1]',
45         })
46
47     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
48     #~ Public
49     #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
50
51     def SkinInitialize(self):
52         self.winParent = self.wxGetParentObject((wx.wxWindowPtr, layout))
53         if not isinstance(self.winParent, wx.wxWindowPtr): self.winParent = None
54
55         # Create the layout sizer
56         kwSettings = self.wxSettingDict(['rows', 'cols', 'vgap', 'hgap'], [])
57         self.object = wx.wxFlexGridSizer(**kwSettings)
58         self.wxInitialStandardOptions()
59
60         for row in self.wxEval('expandrows'):
61             if row < 0: row = kwSettings['rows'] + row
62             self.object.AddGrowableRow(row)
63
64         for col in self.wxEval('expandcols'):
65             if col < 0: col = kwSettings['cols'] + col
66             self.object.AddGrowableCol(col)
67
68         self.PushContext()
69
Note: See TracBrowser for help on using the browser.