+++ /dev/null
-from wxPython.wx import *
-from layoutf import Layoutf
-import string
-
-
-
-class wxScrolledMessageDialog(wxDialog):
-
- def __init__(self, parent, msg, caption, pos = None, size = None):
- if not pos:
- pos = wxDefaultPosition
- if not size:
- size = wxSize(500,300)
- wxDialog.__init__(self, parent, -1, caption, pos, size)
- text = wxTextCtrl(self, -1, msg, wxDefaultPosition,
- wxDefaultSize,
- wxTE_MULTILINE | wxTE_READONLY)
- ok = wxButton(self, wxID_OK, "OK")
- text.SetConstraints(Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self,ok)))
- ok.SetConstraints(Layoutf('b=b5#1;x%w50#1;w!80;h!25', (self,)))
- self.SetAutoLayout(TRUE)
- self.Layout()
-
-
-class wxMultipleChoiceDialog(wxDialog):
-
- def __init__(self, parent, msg, title, lst, pos = None, size = None):
- if not pos:
- pos = wxDefaultPosition
- if not size:
- size = wxSize(200,200)
- wxDialog.__init__(self, parent, -1, title, pos, size)
- dc = wxClientDC(self)
- height = 0
- for line in string.split(msg,'\n'):
- height = height + dc.GetTextExtent(msg)[1] + 4
- stat = wxStaticText(self, -1, msg)
- self.lbox = wxListBox(self, 100, wxDefaultPosition,
- wxDefaultSize, lst, wxLB_MULTIPLE)
- ok = wxButton(self, wxID_OK, "OK")
- cancel = wxButton(self, wxID_CANCEL, "Cancel")
- stat.SetConstraints(Layoutf('t=t10#1;l=l5#1;r=r5#1;h!%d' % (height,),
- (self,)))
- self.lbox.SetConstraints(Layoutf('t=b10#2;l=l5#1;r=r5#1;b=t5#3',
- (self, stat, ok)))
- ok.SetConstraints(Layoutf('b=b5#1;x%w25#1;w!80;h!25', (self,)))
- cancel.SetConstraints(Layoutf('b=b5#1;x%w75#1;w!80;h!25', (self,)))
- self.SetAutoLayout(TRUE)
- self.lst = lst
- self.Layout()
-
- def OnSize(self, event):
- self.Layout()
-
- def GetValue(self):
- return self.lbox.GetSelections()
-
- def GetValueString(self):
- sel = self.lbox.GetSelections()
- val = []
- for i in sel:
- val.append(self.lst[i])
- return tuple(val)
-
-if __name__ == '__main__':
- class MyFrame(wxFrame):
- def __init__(self):
- wxFrame.__init__(self, NULL, -1, "hello",
- wxDefaultPosition, wxSize(200,200))
- wxButton(self, 100, "Multiple Test",wxPoint(0,0))
- wxButton(self, 101, "Message Test", wxPoint(0,100))
- EVT_BUTTON(self, 100, self.OnMultipleTest)
- EVT_BUTTON(self, 101, self.OnMessageTest)
-
- def OnMultipleTest(self, event):
- self.lst = [ 'apple', 'pear', 'banana', 'coconut', 'orange',
- 'etc', 'etc..', 'etc...' ]
- dlg = wxMultipleChoiceDialog(self,
- "Pick some from\n this list\nblabla",
- "m.s.d.", self.lst)
- if (dlg.ShowModal() == wxID_OK):
- print "Selection:", dlg.GetValue(), " -> ", dlg.GetValueString()
-
- def OnMessageTest(self, event):
- import sys;
- f = open(sys.argv[0],"r")
- msg = f.read()
- dlg = wxScrolledMessageDialog(self, msg, "message test")
- dlg.ShowModal()
-
-
- class MyApp(wxApp):
- def OnInit(self):
- frame = MyFrame()
- frame.Show(TRUE)
- self.SetTopWindow(frame)
- return TRUE
-
- app = MyApp(0)
- app.MainLoop()
-
-
-
-
-
-
-