4f6d70f031d60680035f73ba0df1e731007b8d64
[hooke.git] / hooke / ui / gui / dialog / text.py
1 # Copyright (C) 2010-2012 W. Trevor King <wking@drexel.edu>
2 #
3 # This file is part of Hooke.
4 #
5 # Hooke is free software: you can redistribute it and/or modify it
6 # under the terms of the GNU Lesser General Public License as
7 # published by the Free Software Foundation, either version 3 of the
8 # License, or (at your option) any later version.
9 #
10 # Hooke is distributed in the hope that it will be useful, but WITHOUT
11 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
13 # Public License for more details.
14 #
15 # You should have received a copy of the GNU Lesser General Public
16 # License along with Hooke.  If not, see
17 # <http://www.gnu.org/licenses/>.
18
19 import wx
20
21
22 class MemoDialog(wx.Dialog):
23     """\
24     Dialog for multi-line text editing.
25     """
26     def __init__(self, parent=None, title='', text='', pos=None, size=(500,500)):
27         wx.Dialog.__init__(self, parent, -1, title, style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER)
28
29         sizer = wx.BoxSizer(wx.VERTICAL)
30
31         tc = wx.TextCtrl(self, 11, text, style=wx.TE_MULTILINE)
32         self.tc = tc
33         topsizer.Add(tc,1,wx.EXPAND|wx.ALL,8)
34
35         rowsizer = wx.BoxSizer( wx.HORIZONTAL )
36         rowsizer.Add(wx.Button(self,wx.ID_OK,'Ok'),0,wx.ALIGN_RIGHT|wx.ALIGN_CENTRE_VERTICAL,8)
37         rowsizer.Add((0,0),1,wx.ALIGN_RIGHT|wx.ALIGN_CENTRE_VERTICAL,8)
38         rowsizer.Add(wx.Button(self,wx.ID_CANCEL,'Cancel'),0,wx.ALIGN_RIGHT|wx.ALIGN_CENTRE_VERTICAL,8)
39         topsizer.Add(rowsizer,0,wx.EXPAND|wx.ALL,8)
40
41         self.SetSizer( topsizer )
42         topsizer.Layout()
43
44         self.SetSize( size )
45         if not pos:
46             self.CenterOnScreen()
47         else:
48             self.Move(pos)