X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1d6fcbcc7088e9c104b3dc5b4704a07f728d55ae..3201a1046ba71ba8e5ef2ed694fde34d12f743f3:/src/generic/toolbkg.cpp?ds=sidebyside diff --git a/src/generic/toolbkg.cpp b/src/generic/toolbkg.cpp index fbfbd0b0bc..1693b3cfe2 100644 --- a/src/generic/toolbkg.cpp +++ b/src/generic/toolbkg.cpp @@ -46,11 +46,8 @@ IMPLEMENT_DYNAMIC_CLASS(wxToolbook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxToolbookEvent, wxNotifyEvent) -#if !WXWIN_COMPATIBILITY_EVENT_TYPES const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING = wxNewEventType(); const wxEventType wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED = wxNewEventType(); -#endif -const int wxID_TOOLBOOKTOOLBAR = wxNewId(); BEGIN_EVENT_TABLE(wxToolbook, wxBookCtrlBase) EVT_SIZE(wxToolbook::OnSize) @@ -90,22 +87,27 @@ bool wxToolbook::Create(wxWindow *parent, wxDefaultValidator, name) ) return false; - int orient = wxTB_HORIZONTAL; - if ( (style & (wxBK_LEFT | wxBK_RIGHT)) != 0) - orient = wxTB_VERTICAL; + int tbFlags = wxTB_TEXT | wxTB_FLAT | wxBORDER_NONE; + if ( (style & (wxBK_LEFT | wxBK_RIGHT)) != 0 ) + tbFlags |= wxTB_VERTICAL; + else + tbFlags |= wxTB_HORIZONTAL; + + if ( style & wxTBK_HORZ_LAYOUT ) + tbFlags |= wxTB_HORZ_LAYOUT; // TODO: make more configurable #if defined(__WXMAC__) && wxUSE_TOOLBAR && wxUSE_BMPBUTTON - if (style & wxBK_BUTTONBAR) + if (style & wxTBK_BUTTONBAR) { m_bookctrl = new wxButtonToolBar ( this, - wxID_TOOLBOOKTOOLBAR, + wxID_ANY, wxDefaultPosition, wxDefaultSize, - orient|wxTB_TEXT|wxTB_FLAT|wxNO_BORDER + tbFlags ); } else @@ -114,10 +116,10 @@ bool wxToolbook::Create(wxWindow *parent, m_bookctrl = new wxToolBar ( this, - wxID_TOOLBOOKTOOLBAR, + wxID_ANY, wxDefaultPosition, wxDefaultSize, - orient|wxTB_TEXT|wxTB_FLAT|wxTB_NODIVIDER|wxNO_BORDER + tbFlags | wxTB_NODIVIDER ); } @@ -245,10 +247,20 @@ int wxToolbook::GetSelection() const return m_selection; } -int wxToolbook::DoSetSelection(size_t n, int flags) +wxBookCtrlBaseEvent* wxToolbook::CreatePageChangingEvent() const +{ + return new wxToolbookEvent(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, m_windowId); +} + +void wxToolbook::MakeChangedEvent(wxBookCtrlBaseEvent &event) +{ + event.SetEventType(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGED); +} + +void wxToolbook::UpdateSelectedPage(size_t newsel) { - wxToolbookEvent event(wxEVT_COMMAND_TOOLBOOK_PAGE_CHANGING, m_windowId); - return wxBookCtrlBase::DoSetSelection(n, flags, event); + m_selection = newsel; + GetToolBar()->ToggleTool(newsel + 1, true); } // Not part of the wxBookctrl API, but must be called in OnIdle or