From 89639ecdba994ac3a38ca8f4c120091620e835ed Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Thu, 20 Dec 2007 10:51:33 +0000 Subject: [PATCH] Corrected wxRTTI for wxNotebook so dynamic casting to wxBookCtrlBase works git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@50855 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 2 ++ src/cocoa/notebook.mm | 2 +- src/generic/notebook.cpp | 4 ++-- src/gtk/notebook.cpp | 8 ++++---- src/gtk1/notebook.cpp | 4 ++-- src/mac/carbon/notebmac.cpp | 4 ++-- src/msw/msgdlg.cpp | 8 ++++++++ src/msw/notebook.cpp | 6 +++--- src/os2/notebook.cpp | 4 ++-- src/palmos/notebook.cpp | 6 +++--- src/univ/notebook.cpp | 2 +- 11 files changed, 30 insertions(+), 20 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index d0e4f6b901..9f16059f8c 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -103,6 +103,8 @@ All (GUI): smaller than the minimal size. - Added parameter to wxScrolledWindow XRC handler. - wxRichTextCtrl performance has been improved considerably. +- wxNotebook RTTI corrected, so now wxDynamicCast(notebook, wxBookCtrlBase) + works. All (Unix): diff --git a/src/cocoa/notebook.mm b/src/cocoa/notebook.mm index 7c7d648541..e4479d02c0 100644 --- a/src/cocoa/notebook.mm +++ b/src/cocoa/notebook.mm @@ -134,7 +134,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) // ======================================================================== // wxNotebook // ======================================================================== -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) BEGIN_EVENT_TABLE(wxNotebook, wxNotebookBase) END_EVENT_TABLE() WX_IMPLEMENT_COCOA_OWNER(wxNotebook,NSTabView,NSView,NSView) diff --git a/src/generic/notebook.cpp b/src/generic/notebook.cpp index a77f340b2e..34f063a2cc 100644 --- a/src/generic/notebook.cpp +++ b/src/generic/notebook.cpp @@ -52,7 +52,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange) EVT_SIZE(wxNotebook::OnSize) EVT_PAINT(wxNotebook::OnPaint) @@ -61,7 +61,7 @@ BEGIN_EVENT_TABLE(wxNotebook, wxControl) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) // ============================================================================ diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp index bf86abbf3b..8138d3b3c1 100644 --- a/src/gtk/notebook.cpp +++ b/src/gtk/notebook.cpp @@ -258,9 +258,9 @@ static void wxInsertChildInNotebook( wxNotebook* parent, wxWindow* child ) // wxNotebook //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxBookCtrlBase) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() @@ -402,7 +402,7 @@ int wxNotebook::DoSetSelection( size_t page, int flags ) if ( !(flags & SetSelection_SendEvent) ) { // reconnect to signals - + g_signal_connect (m_widget, "switch_page", G_CALLBACK (gtk_notebook_page_changing_callback), this); @@ -658,7 +658,7 @@ bool wxNotebook::InsertPage( size_t position, /* show the label */ gtk_widget_show( GTK_WIDGET(nb_page->m_label) ); - + if (select && (m_pagesData.GetCount() > 1)) { SetSelection( position ); diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp index ddc1c86ddf..e652a25160 100644 --- a/src/gtk1/notebook.cpp +++ b/src/gtk1/notebook.cpp @@ -287,9 +287,9 @@ static void wxInsertChildInNotebook( wxNotebook* parent, wxWindow* child ) // wxNotebook //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxBookCtrlBase) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() diff --git a/src/mac/carbon/notebmac.cpp b/src/mac/carbon/notebmac.cpp index 2aff7f536b..89370dd30b 100644 --- a/src/mac/carbon/notebmac.cpp +++ b/src/mac/carbon/notebmac.cpp @@ -34,7 +34,7 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange) EVT_SIZE(wxNotebook::OnSize) @@ -42,7 +42,7 @@ BEGIN_EVENT_TABLE(wxNotebook, wxControl) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp index 5312a8ec06..c8166b0898 100644 --- a/src/msw/msgdlg.cpp +++ b/src/msw/msgdlg.cpp @@ -93,6 +93,14 @@ int wxMessageDialog::ShowModal() msStyle |= MB_ICONINFORMATION; else if (wxStyle & wxICON_QUESTION) msStyle |= MB_ICONQUESTION; + else + { + int majorVersion, minorVersion; + wxGetOsVersion(& majorVersion, & minorVersion); + + if ( majorVersion >= 6 ) + msStyle |= MB_ICONINFORMATION; + } if ( wxStyle & wxSTAY_ON_TOP ) msStyle |= MB_TOPMOST; diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp index 15f4125fd8..d5e6e021a0 100644 --- a/src/msw/notebook.cpp +++ b/src/msw/notebook.cpp @@ -175,7 +175,7 @@ wxBEGIN_FLAGS( wxNotebookStyle ) wxEND_FLAGS( wxNotebookStyle ) -IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxControl,"wx/notebook.h") +IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxBookCtrlBase,"wx/notebook.h") IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebookPageInfo, wxObject , "wx/notebook.h" ) wxCOLLECTION_TYPE_INFO( wxNotebookPageInfo * , wxNotebookPageInfoList ) ; @@ -212,7 +212,7 @@ wxEND_HANDLERS_TABLE() wxCONSTRUCTOR_4( wxNotebookPageInfo , wxNotebookPage* , Page , wxString , Text , bool , Selected , int , ImageId ) #else -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookPageInfo, wxObject ) #endif IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) @@ -383,7 +383,7 @@ bool wxNotebook::Create(wxWindow *parent, wxUxThemeEngine::GetIfActive()->SetWindowTheme(GetHwnd(), L"", L""); // correct the background color for the new non-themed control - SetBackgroundColour(GetThemeBackgroundColour()); + SetBackgroundColour(GetThemeBackgroundColour()); } } #endif // wxUSE_UXTHEME diff --git a/src/os2/notebook.cpp b/src/os2/notebook.cpp index 07fda9543e..78f7d0a145 100644 --- a/src/os2/notebook.cpp +++ b/src/os2/notebook.cpp @@ -56,14 +56,14 @@ DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange) EVT_SIZE(wxNotebook::OnSize) EVT_SET_FOCUS(wxNotebook::OnSetFocus) EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) END_EVENT_TABLE() -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) // ============================================================================ diff --git a/src/palmos/notebook.cpp b/src/palmos/notebook.cpp index 2f73ee9e9d..bca31c6f86 100644 --- a/src/palmos/notebook.cpp +++ b/src/palmos/notebook.cpp @@ -41,7 +41,7 @@ WX_DEFINE_LIST( wxNotebookPageInfoList ) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED) DEFINE_EVENT_TYPE(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING) -BEGIN_EVENT_TABLE(wxNotebook, wxControl) +BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase) EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange) EVT_SIZE(wxNotebook::OnSize) @@ -87,7 +87,7 @@ wxBEGIN_FLAGS( wxNotebookStyle ) wxEND_FLAGS( wxNotebookStyle ) -IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxControl,"wx/notebook.h") +IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebook, wxBookCtrlBase,"wx/notebook.h") IMPLEMENT_DYNAMIC_CLASS_XTI(wxNotebookPageInfo, wxObject , "wx/notebook.h" ) wxCOLLECTION_TYPE_INFO( wxNotebookPageInfo * , wxNotebookPageInfoList ) ; @@ -124,7 +124,7 @@ wxEND_HANDLERS_TABLE() wxCONSTRUCTOR_4( wxNotebookPageInfo , wxNotebookPage* , Page , wxString , Text , bool , Selected , int , ImageId ) #else -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookPageInfo, wxObject ) #endif IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) diff --git a/src/univ/notebook.cpp b/src/univ/notebook.cpp index 392f13c4aa..a1c7d867f2 100644 --- a/src/univ/notebook.cpp +++ b/src/univ/notebook.cpp @@ -114,7 +114,7 @@ END_EVENT_TABLE() // implementation // ============================================================================ -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) +IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxBookCtrlBase) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) // ----------------------------------------------------------------------------