#----------------------------------------------------------------------------
-from wxPython import *
+from wxPython.wx import *
import time
def __init__(self, parent, log):
self.log = log
wxDialog.__init__(self, parent, -1, "Test Simple Controls",
- wxPyDefaultPosition, wxSize(350, 350))
+ wxDefaultPosition, wxSize(350, 400))
- sampleList = ['zero', 'one', 'two', 'three', 'four', 'five',
- 'six', 'seven', 'eight']
+ sampleList = ["zero", "one", "two", "three", "four", "five",
+ "six", "seven", "eight", "nine", "ten"]
y_pos = 5
delta = 25
EVT_CHECKBOX(self, 20, self.EvtCheckBox)
y_pos = y_pos + delta
- rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(80, y_pos), wxPyDefaultSize,
- sampleList, 3, wxRA_HORIZONTAL| wxNO_BORDER)
+ rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(80, y_pos), wxDefaultSize,
+ sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER)
EVT_RADIOBOX(self, 30, self.EvtRadioBox)
- width, height = rb.GetSize()
+ width, height = rb.GetSizeTuple()
y_pos = y_pos + height + 5
wxStaticText(self, -1, "wxChoice", wxPoint(5, y_pos), wxSize(75, 20))
- wxChoice(self, 40, wxPoint(80, y_pos), wxSize(95, 20), #wxPyDefaultSize,
+ wxChoice(self, 40, wxPoint(80, y_pos), wxSize(95, 20), #wxDefaultSize,
sampleList)
EVT_CHOICE(self, 40, self.EvtChoice)
y_pos = y_pos + delta
wxStaticText(self, -1, "wxComboBox", wxPoint(5, y_pos), wxSize(75, 18))
- wxComboBox(self, 50, "default value", wxPoint(80, y_pos), wxSize(95, 20),
+ wxComboBox(self, 50, "default value", wxPoint(80, y_pos), wxSize(95, -1),
sampleList, wxCB_DROPDOWN)
EVT_COMBOBOX(self, 50, self.EvtComboBox)
y_pos = y_pos + delta
wxStaticText(self, -1, "wxListBox", wxPoint(5, y_pos), wxSize(75, 18))
- lb = wxListBox(self, 60, wxPoint(80, y_pos), wxPyDefaultSize,
+ lb = wxListBox(self, 60, wxPoint(80, y_pos), wxSize(95, 80),
sampleList, wxLB_SINGLE)
EVT_LISTBOX(self, 60, self.EvtListBox)
EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick)
lb.SetSelection(0)
- width, height = lb.GetSize()
+ width, height = lb.GetSizeTuple()
y_pos = y_pos + height + 5
y_pos = y_pos + 15
- wxButton(self, wxID_OK, ' OK ', wxPoint(80, y_pos), wxPyDefaultSize).SetDefault()
+ wxButton(self, wxID_OK, ' OK ', wxPoint(80, y_pos), wxDefaultSize).SetDefault()
wxButton(self, wxID_CANCEL, ' Cancel ', wxPoint(140, y_pos))
class TestLayoutConstraints(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, 'Test Layout Constraints',
- wxPyDefaultPosition, wxSize(500, 300))
+ wxDefaultPosition, wxSize(500, 300))
self.SetAutoLayout(true)
EVT_BUTTON(self, 100, self.OnButton)
- self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+ self.panelA = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelA.SetBackgroundColour(wxBLUE)
lc = wxLayoutConstraints()
lc.right.PercentOf(self, wxRight, 50)
self.panelA.SetConstraints(lc)
- self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+ self.panelB = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelB.SetBackgroundColour(wxRED)
lc = wxLayoutConstraints()
lc.left.RightOf(self.panelA, 10)
self.panelB.SetConstraints(lc)
- self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+ self.panelC = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelC.SetBackgroundColour(wxWHITE)
lc = wxLayoutConstraints()
lc.width.AsIs ()
b.SetConstraints(lc);
- self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize,
+ self.panelD = wxWindow(self.panelC, -1, wxDefaultPosition, wxDefaultSize,
wxSIMPLE_BORDER)
self.panelD.SetBackgroundColour(wxGREEN)
wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN)
class TestGrid(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test Grid',
- wxPyDefaultPosition, wxSize(500, 300))
+ wxDefaultPosition, wxSize(500, 300))
self.log = log
grid = wxGrid(self, -1)
class ColoredPanel(wxWindow):
def __init__(self, parent, color):
wxWindow.__init__(self, parent, -1,
- wxPyDefaultPosition, wxPyDefaultSize, wxRAISED_BORDER)
+ wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER)
self.SetBackgroundColour(color)
class TestNotebookWindow(wxFrame):
def __init__(self, parent, log):
- wxFrame.__init__(self, parent, -1, 'Test wxNotebook',
- wxPyDefaultPosition, wxPyDefaultSize)
+ wxFrame.__init__(self, parent, -1, 'Test wxNotebook')
- nb = wxNotebook(self, -1)
+ nb = wxNotebook(self, -1, wxPoint(0,0), self.GetClientSize())
win = ColoredPanel(nb, wxBLUE)
nb.AddPage(win, "Blue")
win = TestTreeCtrlPanel(nb, log)
nb.AddPage(win, "TreeCtrl")
+ win = TestListCtrlPanel(nb, log)
+ nb.AddPage(win, "ListCtrl")
+
win = ColoredPanel(nb, wxRED)
nb.AddPage(win, "Red")
win = ColoredPanel(nb, wxNamedColour('INDIAN RED'))
nb.AddPage(win, "INDIAN RED")
-
nb.SetSelection(0)
- self.SetSize(wxSize(350, 300)) # force a redraw so the notebook will draw
+ self.SetSize(wxSize(350, 300))
def OnCloseWindow(self, event):
class TestSplitterWindow(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, 'Test wxSplitterWindow',
- wxPyDefaultPosition, wxSize(500, 300))
+ wxDefaultPosition, wxSize(500, 300))
splitter = wxSplitterWindow(self, -1)
# figure out how tall to make it.
dc = wxClientDC(self)
dc.SetFont(self.GetFont())
- (w,h, d,e) = dc.GetTextExtent('X')
+ (w,h) = dc.GetTextExtent('X')
h = int(h * 1.8)
self.SetSize(wxSize(100, h))
# reposition the checkbox
def OnSize(self, event):
rect = self.GetFieldRect(1)
+ print "%s, %s" % (rect.x, rect.y)
self.cb.SetPosition(wxPoint(rect.x+2, rect.y+2))
self.cb.SetSize(wxSize(rect.width-4, rect.height-4))
class TestCustomStatusBar(wxFrame):
def __init__(self, parent):
wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar',
- wxPyDefaultPosition, wxSize(500, 300))
- wxWindow(self, -1)
+ wxDefaultPosition, wxSize(500, 300))
+ wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
self.sb = CustomStatusBar(self)
self.SetStatusBar(self.sb)
class TestToolBar(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test ToolBar',
- wxPyDefaultPosition, wxSize(500, 300))
+ wxDefaultPosition, wxSize(500, 300))
self.log = log
- wxWindow(self, -1)
+ wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE"))
- tb = self.CreateToolBar()
- #tb = wxToolBar(self, -1, wxPyDefaultPosition, wxPyDefaultSize,
+ tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER)
+ #tb = wxToolBar(self, -1, wxDefaultPosition, wxDefaultSize,
# wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT)
#self.SetToolBar(tb)
+ self.CreateStatusBar()
+
tb.AddTool(10, wxNoRefBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP),
- NULL, false, -1, -1, "New")
+ wxNullBitmap, false, -1, -1, "New", "Long help for 'New'")
EVT_TOOL(self, 10, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick)
tb.AddTool(20, wxNoRefBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP),
- NULL, false, -1, -1, "Open")
+ wxNullBitmap, false, -1, -1, "Open")
EVT_TOOL(self, 20, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick)
tb.AddSeparator()
tb.AddTool(30, wxNoRefBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP),
- NULL, false, -1, -1, "Copy")
+ wxNullBitmap, false, -1, -1, "Copy")
EVT_TOOL(self, 30, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick)
tb.AddTool(40, wxNoRefBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP),
- NULL, false, -1, -1, "Paste")
+ wxNullBitmap, false, -1, -1, "Paste")
EVT_TOOL(self, 40, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick)
tb.AddSeparator()
tb.AddTool(50, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP),
- NULL, true, -1, -1, "Toggle this")
+ wxNullBitmap, true, -1, -1, "Toggle this")
EVT_TOOL(self, 50, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 50, self.OnToolRClick)
def OnSize(self, event):
- w,h = self.GetClientSize()
+ w,h = self.GetClientSizeTuple()
self.tree.SetDimensions(0, 0, w, h)
class TestTreeCtrl(wxFrame):
def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test TreeCtrl',
- wxPyDefaultPosition, wxSize(250, 300))
+ wxDefaultPosition, wxSize(250, 300))
p = TestTreeCtrlPanel(self, log)
+#---------------------------------------------------------------------------
+
+class TestListCtrlPanel(wxPanel):
+ def __init__(self, parent, log):
+ wxPanel.__init__(self, parent, -1)
+
+ self.log = log
+ tID = 1101
+
+ self.il = wxImageList(16, 16)
+ idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP))
+
+ self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize,
+ wxLC_REPORT|wxSUNKEN_BORDER)
+ self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL)
+
+ #self.list.SetToolTip(wxToolTip("This is a ToolTip!"))
+ #wxToolTip_Enable(true)
+
+ self.list.InsertColumn(0, "Column 0")
+ self.list.InsertColumn(1, "Column 1")
+ self.list.InsertColumn(2, "One More Column (2)")
+ for x in range(50):
+ self.list.InsertImageStringItem(x, "This is item %d" % x, idx1)
+ self.list.SetStringItem(x, 1, "Col 1, item %d" % x)
+ self.list.SetStringItem(x, 2, "item %d in column 2" % x)
+
+ self.list.SetColumnWidth(0, wxLIST_AUTOSIZE)
+ self.list.SetColumnWidth(1, wxLIST_AUTOSIZE)
+ self.list.SetColumnWidth(2, wxLIST_AUTOSIZE)
+
+
+ def OnSize(self, event):
+ w,h = self.GetClientSizeTuple()
+ self.list.SetDimensions(0, 0, w, h)
+
+
+
+
+class TestListCtrl(wxFrame):
+ def __init__(self, parent, log):
+ wxFrame.__init__(self, parent, -1, 'Test ListCtrl',
+ wxDefaultPosition, wxSize(250, 300))
+
+ p = TestListCtrlPanel(self, log)
+
+
+#---------------------------------------------------------------------------
+
+class TestSashWindow(wxMDIParentFrame):
+ NEW_WINDOW = 5000
+ TOGGLE_WINDOW = 5001
+ QUIT = 5002
+ ID_WINDOW_TOP = 5100
+ ID_WINDOW_LEFT1 = 5101
+ ID_WINDOW_LEFT2 = 5102
+ ID_WINDOW_BOTTOM = 5103
+
+
+ def __init__(self, parent, log):
+ wxMDIParentFrame.__init__(self, parent, -1, 'Test Sash Window',
+ wxDefaultPosition, wxSize(250, 300))
+
+ self.log = log
+ menu = wxMenu()
+ menu.Append(self.NEW_WINDOW, "&New Window")
+ menu.Append(self.TOGGLE_WINDOW, "&Toggle window")
+ menu.Append(self.QUIT, "E&xit")
+
+ menubar = wxMenuBar()
+ menubar.Append(menu, "&File")
+
+ self.SetMenuBar(menubar)
+ self.CreateStatusBar()
+
+ EVT_MENU(self, self.NEW_WINDOW, self.OnNewWindow)
+ EVT_MENU(self, self.TOGGLE_WINDOW, self.OnToggleWindow)
+ EVT_MENU(self, self.QUIT, self.OnQuit)
+
+ EVT_SASH_DRAGGED_RANGE(self, self.ID_WINDOW_TOP,
+ self.ID_WINDOW_BOTTOM, self.OnSashDrag)
+
+
+ # Create some layout windows
+ # A window like a toolbar
+ win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, wxDefaultPosition,
+ wxSize(200, 30), wxNO_BORDER|wxSW_3D)
+ win.SetDefaultSize(wxSize(1000, 30))
+ win.SetOrientation(wxLAYOUT_HORIZONTAL)
+ win.SetAlignment(wxLAYOUT_TOP)
+ win.SetBackgroundColour(wxColour(255, 0, 0))
+ win.SetSashVisible(wxSASH_BOTTOM, true)
+
+ self.topWindow = win
+
+
+ # A window like a statusbar
+ win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM,
+ wxDefaultPosition, wxSize(200, 30),
+ wxNO_BORDER|wxSW_3D)
+ win.SetDefaultSize(wxSize(1000, 30))
+ win.SetOrientation(wxLAYOUT_HORIZONTAL)
+ win.SetAlignment(wxLAYOUT_BOTTOM)
+ win.SetBackgroundColour(wxColour(0, 0, 255))
+ win.SetSashVisible(wxSASH_TOP, true)
+
+ self.bottomWindow = win
+
+
+ # A window to the left of the client window
+ win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1,
+ wxDefaultPosition, wxSize(200, 30),
+ wxNO_BORDER|wxSW_3D)
+ win.SetDefaultSize(wxSize(120, 1000))
+ win.SetOrientation(wxLAYOUT_VERTICAL)
+ win.SetAlignment(wxLAYOUT_LEFT)
+ win.SetBackgroundColour(wxColour(0, 255, 0))
+ win.SetSashVisible(wxSASH_RIGHT, TRUE)
+ win.SetExtraBorderSize(10)
+
+ textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize,
+ wxTE_MULTILINE|wxSUNKEN_BORDER)
+ textWindow.SetValue("A help window")
+
+ self.leftWindow1 = win
+
+
+ # Another window to the left of the client window
+ win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2,
+ wxDefaultPosition, wxSize(200, 30),
+ wxNO_BORDER|wxSW_3D)
+ win.SetDefaultSize(wxSize(120, 1000))
+ win.SetOrientation(wxLAYOUT_VERTICAL)
+ win.SetAlignment(wxLAYOUT_LEFT)
+ win.SetBackgroundColour(wxColour(0, 255, 255))
+ win.SetSashVisible(wxSASH_RIGHT, TRUE)
+
+ self.leftWindow2 = win
+
+
+ def OnNewWindow(self, event):
+ pass
+
+ def OnToggleWindow(self, event):
+ pass
+
+ def OnQuit(self, event):
+ self.Close(true)
+
+ def OnSashDrag(self, event):
+ if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE:
+ return
+
+ eID = event.GetId()
+ if eID == self.ID_WINDOW_TOP:
+ self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
+
+ elif eID == self.ID_WINDOW_LEFT1:
+ self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
+
+
+ elif eID == self.ID_WINDOW_LEFT2:
+ self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000))
+
+ elif eID == self.ID_WINDOW_BOTTOM:
+ self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height))
+
+ wxLayoutAlgorithm().LayoutMDIFrame(self)
+
+ # Leaves bits of itself behind sometimes
+ self.GetClientWindow().Refresh()
+
+
+ def OnSize(self, event):
+ wxLayoutAlgorithm().LayoutMDIFrame(self)
+
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
class AppFrame(wxFrame):
def __init__(self, parent, id, title):
- wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition,
+ wxFrame.__init__(self, parent, id, title, wxDefaultPosition,
wxSize(420, 200))
if wxPlatform == '__WXMSW__':
self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
self.mainmenu.Append(menu, '&Tests')
self.SetMenuBar(self.mainmenu)
- self.log = wxTextCtrl(self, -1, '', wxPyDefaultPosition, wxPyDefaultSize,
+ self.log = wxTextCtrl(self, -1, '', wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE|wxTE_READONLY)
self.log.WriteText('Test 4:\n')
(w, self.charHeight) = self.log.GetTextExtent('X')
menu.Append(mID, 'T&ree Control')
EVT_MENU(self, mID, self.OnTestTreeCtrl)
+ mID = NewId()
+ menu.Append(mID, '&List Control')
+ EVT_MENU(self, mID, self.OnTestListCtrl)
+
+ mID = NewId()
+ menu.Append(mID, 'S&ash Window and Layout Algorithm')
+ EVT_MENU(self, mID, self.OnTestSashWindow)
+
return menu
def WriteText(self, str):
self.log.WriteText(str)
if wxPlatform == '__WXMSW__':
- w, h = self.log.GetClientSize()
+ w, h = self.log.GetClientSizeTuple()
numLines = h/self.charHeight
x, y = self.log.PositionToXY(self.log.GetLastPosition())
self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1))
def OnTestPageSetupDlg(self, event):
- data = wxPageSetupData()
+ data = wxPageSetupDialogData()
data.SetMarginTopLeft(wxPoint(50,50))
data.SetMarginBottomRight(wxPoint(50,50))
dlg = wxPageSetupDialog(self, data)
dlg.Destroy()
def OnTestPrintDlg(self, event):
- data = wxPrintData()
+ data = wxPrintDialogData()
data.EnablePrintToFile(true)
data.EnablePageNumbers(true)
data.EnableSelection(true)
win = TestTreeCtrl(self, self)
win.Show(true)
+ def OnTestListCtrl(self, event):
+ win = TestListCtrl(self, self)
+ win.Show(true)
+
+ def OnTestSashWindow(self, event):
+ win = TestSashWindow(self, self)
+ win.Show(true)
#---------------------------------------------------------------------------
#----------------------------------------------------------------------------
#
# $Log$
+# Revision 1.17 1999/08/05 05:06:50 RD
+# Some minor tweaks
+#
+# Revision 1.16 1999/04/30 03:29:54 RD
+#
+# wxPython 2.0b9, first phase (win32)
+# Added gobs of stuff, see wxPython/README.txt for details
+#
+# Revision 1.15.2.1 1999/03/16 06:05:50 RD
+#
+# wxPython 2.0b7
+#
+# Revision 1.15 1999/03/05 07:23:42 RD
+#
+# Minor wxPython changes for wxWin 2.0
+#
+# Revision 1.14 1999/02/27 04:20:50 RD
+#
+# minor tweaks for testing
+#
+# Revision 1.13 1999/02/20 09:04:44 RD
+# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a
+# window handle. If you can get the window handle into the python code,
+# it should just work... More news on this later.
+#
+# Added wxImageList, wxToolTip.
+#
+# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the
+# wxRegConfig class.
+#
+# As usual, some bug fixes, tweaks, etc.
+#
+# Revision 1.12 1999/01/30 07:31:33 RD
+#
+# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc.
+#
+# Various cleanup, tweaks, minor additions, etc. to maintain
+# compatibility with the current wxWindows.
+#
+# Revision 1.11 1999/01/29 16:17:59 HH
+# In test4's toolbar sample, changed NULL to wxNullBitmap to prevent SIGSEVS
+# with wxGTK. The sample works now.
+#
+# Revision 1.10 1998/12/16 22:12:47 RD
+#
+# Tweaks needed to be able to build wxPython with wxGTK.
+#
+# Revision 1.9 1998/12/15 20:44:35 RD
+# Changed the import semantics from "from wxPython import *" to "from
+# wxPython.wx import *" This is for people who are worried about
+# namespace pollution, they can use "from wxPython import wx" and then
+# prefix all the wxPython identifiers with "wx."
+#
+# Added wxTaskbarIcon for wxMSW.
+#
+# Made the events work for wxGrid.
+#
+# Added wxConfig.
+#
+# Added wxMiniFrame for wxGTK, (untested.)
+#
+# Changed many of the args and return values that were pointers to gdi
+# objects to references to reflect changes in the wxWindows API.
+#
+# Other assorted fixes and additions.
+#
# Revision 1.8 1998/11/25 08:47:11 RD
+#
# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon
# Added events for wxGrid
# Other various fixes and additions