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:
80
wxPython/demo/Choicebook.py
Normal file
80
wxPython/demo/Choicebook.py
Normal 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:])
|
||||
|
||||
|
||||
|
@@ -1,6 +1,4 @@
|
||||
|
||||
import sys
|
||||
|
||||
import wx
|
||||
|
||||
import ColorPanel
|
||||
|
@@ -49,6 +49,7 @@ _treeList = [
|
||||
('Recent Additions/Updates', [
|
||||
'StockButtons',
|
||||
'Ticker',
|
||||
'Choicebook',
|
||||
]),
|
||||
|
||||
# managed windows == things with a (optional) caption you can close
|
||||
@@ -89,6 +90,7 @@ _treeList = [
|
||||
'CheckBox',
|
||||
'CheckListBox',
|
||||
'Choice',
|
||||
'Choicebook',
|
||||
'ComboBox',
|
||||
'Gauge',
|
||||
'Grid',
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user