From: Robin Dunn Date: Wed, 1 Oct 2003 23:28:31 +0000 (+0000) Subject: Added listbook demo and also some other demo tweaks X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/2f0f3b0fd63ba9e0b1dfa5fb8954bc659d91f122 Added listbook demo and also some other demo tweaks git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24047 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/demo/GridSimple.py b/wxPython/demo/GridSimple.py index 267867c434..97c0c6ef5d 100644 --- a/wxPython/demo/GridSimple.py +++ b/wxPython/demo/GridSimple.py @@ -36,6 +36,8 @@ class SimpleGrid(wxGrid): ##, wxGridAutoEditMixin): self.SetCellValue(6, 3, "You can veto editing this cell") + #self.SetRowLabelSize(0) + #self.SetColLabelSize(0) # attribute objects let you keep a set of formatting values # in one spot, and reuse them if needed diff --git a/wxPython/demo/Main.py b/wxPython/demo/Main.py index 99592b884a..589f2d39f3 100644 --- a/wxPython/demo/Main.py +++ b/wxPython/demo/Main.py @@ -18,6 +18,7 @@ import wx.html import images +##wx.Trap() #--------------------------------------------------------------------------- @@ -26,6 +27,7 @@ _treeList = [ # new stuff ('Recent Additions', [ 'wxVListBox', + 'wxListbook', ]), # managed windows == things with a (optional) caption you can close @@ -73,6 +75,7 @@ _treeList = [ 'wxGenericDirCtrl', 'wxGrid', 'wxGrid_MegaExample', + 'wxListbook', 'wxListBox', 'wxListCtrl', 'wxListCtrl_virtual', @@ -328,8 +331,8 @@ class wxPythonDemo(wx.Frame): splitter2 = wx.SplitterWindow(splitter, -1) def EmptyHandler(evt): pass - wx.EVT_ERASE_BACKGROUND(splitter, EmptyHandler) - wx.EVT_ERASE_BACKGROUND(splitter2, EmptyHandler) + #wx.EVT_ERASE_BACKGROUND(splitter, EmptyHandler) + #wx.EVT_ERASE_BACKGROUND(splitter2, EmptyHandler) # Prevent TreeCtrl from displaying all items after destruction when True self.dying = False @@ -460,13 +463,21 @@ class wxPythonDemo(wx.Frame): # add the windows to the splitter and split it. - splitter2.SplitHorizontally(self.nb, self.log, 450) + splitter2.SplitHorizontally(self.nb, self.log, -120) splitter.SplitVertically(self.tree, splitter2, 180) splitter.SetMinimumPaneSize(20) splitter2.SetMinimumPaneSize(20) + # Make the splitter on the right expand the top wind when resized + def SplitterOnSize(evt): + splitter = evt.GetEventObject() + sz = splitter.GetSize() + splitter.SetSashPosition(sz.height - 120, False) + evt.Skip() + wx.EVT_SIZE(splitter2, SplitterOnSize) + # select initial items self.nb.SetSelection(0) diff --git a/wxPython/demo/simple.py b/wxPython/demo/simple.py index 07a750c639..810828af50 100644 --- a/wxPython/demo/simple.py +++ b/wxPython/demo/simple.py @@ -24,26 +24,33 @@ class MyFrame(wx.Frame): panel = wx.Panel(self, -1) text = wx.StaticText(panel, -1, "Hello World!") - text.SetFont(wx.Font(12, wx.SWISS, wx.NORMAL, wx.BOLD)) + text.SetFont(wx.Font(14, wx.SWISS, wx.NORMAL, wx.BOLD)) text.SetSize(text.GetBestSize()) btn = wx.Button(panel, -1, "Close") btn.SetDefault() + btn2 = wx.Button(panel, -1, "Just for fun...") + sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(text, 0, wx.ALL, 10) sizer.Add(btn, 0, wx.ALL, 10) + sizer.Add(btn2, 0, wx.ALL, 10) panel.SetSizer(sizer) panel.SetAutoLayout(True) panel.Layout() wx.EVT_BUTTON(self, btn.GetId(), self.OnButton) - + wx.EVT_BUTTON(self, btn2.GetId(), self.OnFunButton) def OnButton(self, evt): """Event handler for the button click.""" print "OnButton" self.Close() + def OnFunButton(self, evt): + """Event handler for the button click.""" + print "Having fun yet?" + app = wx.PySimpleApp() frame = MyFrame(None, "Simple wxPython App") diff --git a/wxPython/demo/wxDialog.py b/wxPython/demo/wxDialog.py index 615539add3..5a86a0ca0f 100644 --- a/wxPython/demo/wxDialog.py +++ b/wxPython/demo/wxDialog.py @@ -18,7 +18,7 @@ class TestDialog(wxDialog): style=wxDEFAULT_DIALOG_STYLE): # Instead of calling wxDialog.__init__ we precreate the dialog - # so we can set an extra style that must be set before + # object so we can set an extra style that must be set before # creation, and then we create the GUI dialog using the Create # method. pre = wxPreDialog() @@ -29,6 +29,8 @@ class TestDialog(wxDialog): # object into the real wrapper of the dialog (instead of pre) # as far as the wxPython extension is concerned. self.this = pre.this + self.thisown = pre.thisown + pre.thisown = 0 # Now continue with the normal construction of the dialog @@ -102,7 +104,7 @@ def runTest(frame, nb, log): log.WriteText("You pressed OK\n") else: log.WriteText("You pressed Cancel\n") - + win.Destroy() #--------------------------------------------------------------------------- diff --git a/wxPython/demo/wxListbook.py b/wxPython/demo/wxListbook.py new file mode 100644 index 0000000000..c8b7958a82 --- /dev/null +++ b/wxPython/demo/wxListbook.py @@ -0,0 +1,133 @@ + +from wxPython.wx import * + +import ColorPanel +import GridSimple +import wxListCtrl +import wxScrolledWindow +import images + +import sys + +#---------------------------------------------------------------------------- + +class TestLB(wxListbook): + def __init__(self, parent, id, log): + wxListbook.__init__(self, parent, id, style= + wxLB_DEFAULT + #wxLB_TOP + #wxLB_BOTTOM + #wxLB_LEFT + #wxLB_RIGHT + ) + self.log = log + + win = self.makeColorPanel(wxBLUE) + self.AddPage(win, "Blue") + st = wxStaticText(win.win, -1, + "You can put nearly any type of window here,\n" + "and if the platform supports it then the\n" + "tabs can be on any side of the notebook.", + wxPoint(10, 10)) + st.SetForegroundColour(wxWHITE) + st.SetBackgroundColour(wxBLUE) + + # Show how to put an image on one of the notebook tabs, + # first make the image list: + il = wxImageList(16, 16) + idx1 = il.Add(images.getSmilesBitmap()) + self.AssignImageList(il) + + # now put an image on the first tab we just created: + self.SetPageImage(0, idx1) + + + win = self.makeColorPanel(wxRED) + self.AddPage(win, "Red") + + win = wxScrolledWindow.MyCanvas(self) + self.AddPage(win, 'ScrolledWindow') + + win = self.makeColorPanel(wxGREEN) + self.AddPage(win, "Green") + + win = GridSimple.SimpleGrid(self, log) + self.AddPage(win, "Grid") + + win = wxListCtrl.TestListCtrlPanel(self, log) + self.AddPage(win, 'List') + + win = self.makeColorPanel(wxCYAN) + self.AddPage(win, "Cyan") + +## win = self.makeColorPanel(wxWHITE) +## self.AddPage(win, "White") + +## win = self.makeColorPanel(wxBLACK) +## self.AddPage(win, "Black") + + win = self.makeColorPanel(wxNamedColour('MIDNIGHT BLUE')) + self.AddPage(win, "MIDNIGHT BLUE") + + win = self.makeColorPanel(wxNamedColour('INDIAN RED')) + self.AddPage(win, "INDIAN RED") + + EVT_LISTBOOK_PAGE_CHANGED(self, self.GetId(), self.OnPageChanged) + EVT_LISTBOOK_PAGE_CHANGING(self, self.GetId(), self.OnPageChanging) + + + def makeColorPanel(self, color): + p = wxPanel(self, -1) + win = ColorPanel.ColoredPanel(p, color) + p.win = win + def OnCPSize(evt, win=win): + win.SetSize(evt.GetSize()) + EVT_SIZE(p, OnCPSize) + return p + + + def OnPageChanged(self, event): + old = event.GetOldSelection() + new = event.GetSelection() + sel = self.GetSelection() + self.log.write('OnPageChanged, old:%d, new:%d, sel:%d\n' % (old, new, sel)) + event.Skip() + + def OnPageChanging(self, event): + old = event.GetOldSelection() + new = event.GetSelection() + sel = self.GetSelection() + self.log.write('OnPageChanging, old:%d, new:%d, sel:%d\n' % (old, new, sel)) + event.Skip() + +#---------------------------------------------------------------------------- + +def runTest(frame, nb, log): + testWin = TestLB(nb, -1, log) + return testWin + +#---------------------------------------------------------------------------- + + + + +overview = """\ + +

wxListbook

+

+This class is a control similar to a notebook control, but with a +wxListCtrl instead of a set of tabs. + +""" + + + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])]) + + + + +