1 from wxPython
.wx
import *
2 from layoutf
import Layoutf
7 class wxScrolledMessageDialog(wxDialog
):
9 def __init__(self
, parent
, msg
, caption
, pos
= wxDefaultPosition
, size
= (500,300)):
10 wxDialog
.__init
__(self
, parent
, -1, caption
, pos
, size
)
11 text
= wxTextCtrl(self
, -1, msg
, wxDefaultPosition
,
13 wxTE_MULTILINE | wxTE_READONLY
)
14 ok
= wxButton(self
, wxID_OK
, "OK")
15 text
.SetConstraints(Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self
,ok
)))
16 ok
.SetConstraints(Layoutf('b=b5#1;x%w50#1;w!80;h!25', (self
,)))
17 self
.SetAutoLayout(TRUE
)
21 class wxMultipleChoiceDialog(wxDialog
):
23 def __init__(self
, parent
, msg
, title
, lst
, pos
= wxDefaultPosition
, size
= (200,200)):
24 wxDialog
.__init
__(self
, parent
, -1, title
, pos
, size
)
27 for line
in string
.split(msg
,'\n'):
28 height
= height
+ dc
.GetTextExtent(msg
)[1] + 4
29 stat
= wxStaticText(self
, -1, msg
)
30 self
.lbox
= wxListBox(self
, 100, wxDefaultPosition
,
31 wxDefaultSize
, lst
, wxLB_MULTIPLE
)
32 ok
= wxButton(self
, wxID_OK
, "OK")
33 cancel
= wxButton(self
, wxID_CANCEL
, "Cancel")
34 stat
.SetConstraints(Layoutf('t=t10#1;l=l5#1;r=r5#1;h!%d' % (height
,),
36 self
.lbox
.SetConstraints(Layoutf('t=b10#2;l=l5#1;r=r5#1;b=t5#3',
38 ok
.SetConstraints(Layoutf('b=b5#1;x%w25#1;w!80;h!25', (self
,)))
39 cancel
.SetConstraints(Layoutf('b=b5#1;x%w75#1;w!80;h!25', (self
,)))
40 self
.SetAutoLayout(TRUE
)
45 return self
.lbox
.GetSelections()
47 def GetValueString(self
):
48 sel
= self
.lbox
.GetSelections()
51 val
.append(self
.lst
[i
])
55 if __name__
== '__main__':
56 class MyFrame(wxFrame
):
58 wxFrame
.__init
__(self
, NULL
, -1, "hello",
59 wxDefaultPosition
, wxSize(200,200))
60 wxButton(self
, 100, "Multiple Test",wxPoint(0,0))
61 wxButton(self
, 101, "Message Test", wxPoint(0,100))
62 EVT_BUTTON(self
, 100, self
.OnMultipleTest
)
63 EVT_BUTTON(self
, 101, self
.OnMessageTest
)
65 def OnMultipleTest(self
, event
):
66 self
.lst
= [ 'apple', 'pear', 'banana', 'coconut', 'orange',
67 'etc', 'etc..', 'etc...' ]
68 dlg
= wxMultipleChoiceDialog(self
,
69 "Pick some from\n this list\nblabla",
71 if (dlg
.ShowModal() == wxID_OK
):
72 print "Selection:", dlg
.GetValue(), " -> ", dlg
.GetValueString()
74 def OnMessageTest(self
, event
):
76 f
= open(sys
.argv
[0],"r")
78 dlg
= wxScrolledMessageDialog(self
, msg
, "message test")
86 self
.SetTopWindow(frame
)