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 wx
|
||||||
|
|
||||||
import ColorPanel
|
import ColorPanel
|
||||||
|
@@ -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',
|
||||||
|
@@ -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();
|
||||||
|
Reference in New Issue
Block a user