Added wx.Choicebook

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29215 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2004-09-18 23:51:14 +00:00
parent 7e6581d421
commit 9694b21a4d
4 changed files with 152 additions and 6 deletions

View File

@@ -0,0 +1,80 @@
import wx
#----------------------------------------------------------------------------
pageTexts = [ "Yet",
"Another",
"Way",
"To",
"Select",
"Pages"
]
class TestCB(wx.Choicebook):
def __init__(self, parent, id, log):
wx.Choicebook.__init__(self, parent, id
)
self.log = log
# Now make a bunch of panels for the choice book
count = 1
for txt in pageTexts:
win = wx.Panel(self)
if count == 1:
st = wx.StaticText(win, -1,
"wx.Choicebook is yet another way to switch between 'page' windows",
(10, 10))
else:
st = wx.StaticText(win, -1, "Page: %d" % count, (10,10))
count += 1
self.AddPage(win, txt)
self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGED, self.OnPageChanged)
self.Bind(wx.EVT_CHOICEBOOK_PAGE_CHANGING, self.OnPageChanging)
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 = TestCB(nb, -1, log)
return testWin
#----------------------------------------------------------------------------
overview = """\
<html><body>
<h2>wx.Choicebook</h2>
<p>
This class is a control similar to a notebook control, but uses a
wx.Choice to manage the selection of the pages.
"""
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])

View File

@@ -1,6 +1,4 @@
import sys
import wx import wx
import ColorPanel import ColorPanel

View File

@@ -49,6 +49,7 @@ _treeList = [
('Recent Additions/Updates', [ ('Recent Additions/Updates', [
'StockButtons', 'StockButtons',
'Ticker', 'Ticker',
'Choicebook',
]), ]),
# managed windows == things with a (optional) caption you can close # managed windows == things with a (optional) caption you can close
@@ -89,6 +90,7 @@ _treeList = [
'CheckBox', 'CheckBox',
'CheckListBox', 'CheckListBox',
'Choice', 'Choice',
'Choicebook',
'ComboBox', 'ComboBox',
'Gauge', 'Gauge',
'Grid', 'Grid',

View File

@@ -261,7 +261,7 @@ class NotebookPage(wx.Panel):
wx.Panel.__init__(self, parent, id, pos, size, style, name) wx.Panel.__init__(self, parent, id, pos, size, style, name)
self.child = None self.child = None
EVT_SIZE(self, self.OnSize) EVT_SIZE(self, self.OnSize)
def OnSize(self, evt): def OnSize(self, evt):
if self.child is None: if self.child is None:
children = self.GetChildren() children = self.GetChildren()
@@ -321,7 +321,7 @@ public:
// returns True if we have wxLB_TOP or wxLB_BOTTOM style // returns True if we have wxLB_TOP or wxLB_BOTTOM style
bool IsVertical() const; bool IsVertical() const;
wxListView* GetListView(); wxListView* GetListView();
}; };
@@ -343,6 +343,72 @@ public:
} }
//---------------------------------------------------------------------------
%{
#include <wx/choicebk.h>
%}
/*
* wxChoicebook flags
*/
enum {
wxCHB_DEFAULT,
wxCHB_TOP,
wxCHB_BOTTOM,
wxCHB_LEFT,
wxCHB_RIGHT,
wxCHB_ALIGN_MASK
};
MustHaveApp(wxChoicebook);
class wxChoicebook : public wxBookCtrl
{
public:
%pythonAppend wxChoicebook "self._setOORInfo(self)"
%pythonAppend wxChoicebook() ""
wxChoicebook(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPyEmptyString);
%name(PreChoicebook)wxChoicebook();
// quasi ctor
bool Create(wxWindow *parent,
wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxString& name = wxPyEmptyString);
// returns true if we have wxCHB_TOP or wxCHB_BOTTOM style
bool IsVertical() const { return HasFlag(wxCHB_BOTTOM | wxCHB_TOP); }
virtual bool DeleteAllPages();
};
class wxChoicebookEvent : public wxBookCtrlEvent
{
public:
wxChoicebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
int nSel = -1, int nOldSel = -1);
};
%constant wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED;
%constant wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING;
%pythoncode {
EVT_CHOICEBOOK_PAGE_CHANGED = wx.PyEventBinder( wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, 1 )
EVT_CHOICEBOOK_PAGE_CHANGING = wx.PyEventBinder( wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, 1 )
}
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
%newgroup; %newgroup;
@@ -353,7 +419,7 @@ public:
%pythonAppend wxBookCtrlSizer "self._setOORInfo(self)" %pythonAppend wxBookCtrlSizer "self._setOORInfo(self)"
wxBookCtrlSizer( wxBookCtrl *nb ); wxBookCtrlSizer( wxBookCtrl *nb );
void RecalcSizes(); void RecalcSizes();
wxSize CalcMin(); wxSize CalcMin();
wxBookCtrl *GetControl(); wxBookCtrl *GetControl();
@@ -365,7 +431,7 @@ public:
%pythonAppend wxNotebookSizer "self._setOORInfo(self)" %pythonAppend wxNotebookSizer "self._setOORInfo(self)"
wxNotebookSizer( wxNotebook *nb ); wxNotebookSizer( wxNotebook *nb );
void RecalcSizes(); void RecalcSizes();
wxSize CalcMin(); wxSize CalcMin();
wxNotebook *GetNotebook(); wxNotebook *GetNotebook();