X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4dcaf11a7b5189be78e52e1412febd7689a959f8..80810ca399477ce4736bda433996db6a65bbcbd8:/src/gtk1/notebook.cpp diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp index 6cac1f9135..7dae078001 100644 --- a/src/gtk1/notebook.cpp +++ b/src/gtk1/notebook.cpp @@ -127,43 +127,6 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* if (win->GetAutoLayout()) win->Layout(); } -//----------------------------------------------------------------------------- -// "key_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - - if (!notebook->m_hasVMT) return FALSE; - - /* this code makes jumping down from the handles of the notebooks - to the actual items in the visible notebook page possible with - the down-arrow key */ - - if (gdk_event->keyval != GDK_Down) return FALSE; - - if (notebook != notebook->FindFocus()) return FALSE; - - if (notebook->m_pages.GetCount() == 0) return FALSE; - - wxNode *node = notebook->m_pages.Nth( notebook->GetSelection() ); - - if (!node) return FALSE; - - wxNotebookPage *page = (wxNotebookPage*) node->Data(); - - // don't let others the key event - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" ); - - page->m_client->SetFocus(); - - return TRUE; -} - //----------------------------------------------------------------------------- // InsertChild callback for wxNotebook //----------------------------------------------------------------------------- @@ -223,7 +186,7 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, if (!PreCreation( parent, pos, size ) || !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) { - wxFAIL_MSG( _T("wxNoteBook creation failed") ); + wxFAIL_MSG( wxT("wxNoteBook creation failed") ); return FALSE; } @@ -231,7 +194,7 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, m_widget = gtk_notebook_new(); #ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxNotebook::m_widget"), name ); + debug_focus_in( m_widget, wxT("wxNotebook::m_widget"), name ); #endif gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); @@ -241,8 +204,12 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, m_parent->DoAddChild( this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "key_press_event", - GTK_SIGNAL_FUNC(gtk_notebook_key_press_callback), (gpointer)this ); + if(m_windowStyle & wxNB_RIGHT) + gtk_notebook_set_tab_pos( GTK_NOTEBOOK(m_widget), GTK_POS_RIGHT ); + if(m_windowStyle & wxNB_LEFT) + gtk_notebook_set_tab_pos( GTK_NOTEBOOK(m_widget), GTK_POS_LEFT ); + if(m_windowStyle & wxNB_BOTTOM) + gtk_notebook_set_tab_pos( GTK_NOTEBOOK(m_widget), GTK_POS_BOTTOM ); PostCreation(); @@ -251,9 +218,22 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, return TRUE; } +void wxNotebook::SetFocus() +{ + if (m_pages.GetCount() == 0) return; + + wxNode *node = m_pages.Nth( GetSelection() ); + + if (!node) return; + + wxNotebookPage *page = (wxNotebookPage*) node->Data(); + + page->m_client->SetFocus(); +} + int wxNotebook::GetSelection() const { - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") ); GList *pages = GTK_NOTEBOOK(m_widget)->children; @@ -278,18 +258,18 @@ int wxNotebook::GetRowCount() const wxString wxNotebook::GetPageText( int page ) const { - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid notebook") ); wxNotebookPage* nb_page = GetNotebookPage(page); if (nb_page) return nb_page->m_text; else - return ""; + return wxT(""); } int wxNotebook::GetPageImage( int page ) const { - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") ); wxNotebookPage* nb_page = GetNotebookPage(page); if (nb_page) @@ -300,9 +280,9 @@ int wxNotebook::GetPageImage( int page ) const wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const { - wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, wxT("invalid notebook") ); - wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, _T("invalid notebook index") ); + wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, wxT("invalid notebook index") ); wxNode *node = m_pages.Nth( page ); @@ -311,9 +291,9 @@ wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const int wxNotebook::SetSelection( int page ) { - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid notebook") ); - wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, _T("invalid notebook index") ); + wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, wxT("invalid notebook index") ); int selOld = GetSelection(); @@ -324,7 +304,7 @@ int wxNotebook::SetSelection( int page ) void wxNotebook::AdvanceSelection( bool forward ) { - wxCHECK_RET( m_widget != NULL, _T("invalid notebook") ); + wxCHECK_RET( m_widget != NULL, wxT("invalid notebook") ); int sel = GetSelection(); int max = GetPageCount(); @@ -342,11 +322,11 @@ void wxNotebook::SetImageList( wxImageList* imageList ) bool wxNotebook::SetPageText( int page, const wxString &text ) { - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") ); wxNotebookPage* nb_page = GetNotebookPage(page); - wxCHECK_MSG( nb_page, FALSE, _T("SetPageText: invalid page index") ); + wxCHECK_MSG( nb_page, FALSE, wxT("SetPageText: invalid page index") ); nb_page->m_text = text; @@ -442,22 +422,22 @@ bool wxNotebook::SetPageImage( int page, int image ) void wxNotebook::SetPageSize( const wxSize &WXUNUSED(size) ) { - wxFAIL_MSG( _T("wxNotebook::SetPageSize not implemented") ); + wxFAIL_MSG( wxT("wxNotebook::SetPageSize not implemented") ); } void wxNotebook::SetPadding( const wxSize &WXUNUSED(padding) ) { - wxFAIL_MSG( _T("wxNotebook::SetPadding not implemented") ); + wxFAIL_MSG( wxT("wxNotebook::SetPadding not implemented") ); } void wxNotebook::SetTabSize(const wxSize& WXUNUSED(sz)) { - wxFAIL_MSG( _T("wxNotebook::SetTabSize not implemented") ); + wxFAIL_MSG( wxT("wxNotebook::SetTabSize not implemented") ); } bool wxNotebook::DeleteAllPages() { - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") ); while (m_pages.GetCount() > 0) DeletePage( m_pages.GetCount()-1 ); @@ -498,10 +478,10 @@ bool wxNotebook::RemovePage( int page ) bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text, bool select, int imageId ) { - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") ); wxCHECK_MSG( win->GetParent() == this, FALSE, - _T("Can't add a page whose parent is not the notebook!") ); + wxT("Can't add a page whose parent is not the notebook!") ); /* don't receive switch page during addition */ gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), @@ -555,7 +535,7 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text, /* set the label text */ page->m_text = text; - if (page->m_text.IsEmpty()) page->m_text = _T(""); + if (page->m_text.IsEmpty()) page->m_text = wxT(""); page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) ); gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 ); @@ -593,7 +573,7 @@ void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) wxWindow *wxNotebook::GetPage( int page ) const { - wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, _T("invalid notebook") ); + wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, wxT("invalid notebook") ); wxNotebookPage* nb_page = GetNotebookPage(page); if (!nb_page) @@ -632,4 +612,4 @@ bool wxNotebook::IsOwnGtkWindow( GdkWindow *window ) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) -#endif \ No newline at end of file +#endif