2
# Purpose: XML handlers for wx.lib classes
3
# Author: Roman Rolinsky <rolinsky@femagsoft.com>
9
import wx.lib.foldpanelbar as fpb
10
from wx.lib.ticker_xrc import wxTickerXmlHandler
12
from wx.tools.XRCed.globals import TRACE
14
class FoldPanelBarXmlHandler(xrc.XmlResourceHandler):
16
xrc.XmlResourceHandler.__init__(self)
18
self.AddWindowStyles()
20
self.AddStyle('FPB_DEFAULT_STYLE', fpb.FPB_DEFAULT_STYLE)
21
self.AddStyle('FPB_SINGLE_FOLD', fpb.FPB_SINGLE_FOLD)
22
self.AddStyle('FPB_COLLAPSE_TO_BOTTOM', fpb.FPB_COLLAPSE_TO_BOTTOM)
23
self.AddStyle('FPB_EXCLUSIVE_FOLD', fpb.FPB_EXCLUSIVE_FOLD)
24
self.AddStyle('FPB_HORIZONTAL', fpb.FPB_HORIZONTAL)
25
self.AddStyle('FPB_VERTICAL', fpb.FPB_VERTICAL)
26
self._isInside = False
28
def CanHandle(self,node):
29
return not self._isInside and self.IsOfClass(node, 'wx.lib.foldpanelbar.FoldPanelBar') or \
30
self._isInside and self.IsOfClass(node, 'foldpanel')
32
# Process XML parameters and create the object
33
def DoCreateResource(self):
34
TRACE('DoCreateResource: %s', self.GetClass())
35
if self.GetClass() == 'foldpanel':
36
n = self.GetParamNode('object')
38
old_ins = self._isInside
39
self._isInside = False
41
item = self.CreateResFromNode(n, bar, None)
42
self._isInside = old_ins
45
item = bar.AddFoldPanel(self.GetText('label'),
46
collapsed=self.GetBool('collapsed'))
47
bar.AddFoldPanelWindow(item, wnd)
50
w = fpb.FoldPanelBar(self.GetParentAsWindow(),
55
self.GetStyle('exstyle'))
58
old_ins = self._isInside
60
self.CreateChildren(w, True)
61
self._isInside = old_ins