]> git.saurik.com Git - wxWidgets.git/blame_incremental - wxPython/demo/XmlResource.py
workaround sizing bug on Mac
[wxWidgets.git] / wxPython / demo / XmlResource.py
... / ...
CommitLineData
1
2import wx
3import wx.xrc as xrc
4
5from Main import opj
6
7#----------------------------------------------------------------------
8
9RESFILE = opj("data/resource_wdr.xrc")
10
11class TestPanel(wx.Panel):
12 def __init__(self, parent, log):
13 wx.Panel.__init__(self, parent, -1)
14 self.log = log
15
16 # make the components
17 label = wx.StaticText(self, -1, "The lower panel was built from this XML:")
18 label.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD))
19
20 resourceText = open(RESFILE).read()
21 text = wx.TextCtrl(self, -1, resourceText,
22 style=wx.TE_READONLY|wx.TE_MULTILINE)
23 text.SetInsertionPoint(0)
24
25 line = wx.StaticLine(self, -1)
26
27 # This shows a few different ways to load XML Resources
28 if 0:
29 # XML Resources can be loaded from a file like this:
30 res = xrc.XmlResource(RESFILE)
31
32 elif 1:
33 # or from a Virtual FileSystem:
34 wx.FileSystem_AddHandler(wx.MemoryFSHandler())
35 wx.MemoryFSHandler_AddFile("XRC_Resources/data_file", resourceText)
36 res = xrc.XmlResource("memory:XRC_Resources/data_file")
37
38 else:
39 # or from a string, like this:
40 res = xrc.EmptyXmlResource()
41 res.LoadFromString(resourceText)
42
43
44 # Now create a panel from the resource data
45 panel = res.LoadPanel(self, "MyPanel")
46
47 # and do the layout
48 sizer = wx.BoxSizer(wx.VERTICAL)
49 sizer.Add(label, 0, wx.EXPAND|wx.TOP|wx.LEFT, 5)
50 sizer.Add(text, 1, wx.EXPAND|wx.ALL, 5)
51 sizer.Add(line, 0, wx.EXPAND)
52 sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
53
54 self.SetSizer(sizer)
55 self.SetAutoLayout(True)
56
57
58#----------------------------------------------------------------------
59
60def runTest(frame, nb, log):
61 win = TestPanel(nb, log)
62 return win
63
64#----------------------------------------------------------------------
65
66
67
68overview = """
69"""
70
71
72if __name__ == '__main__':
73 import sys,os
74 import run
75 run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])
76