X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dcf924a345ea8ffbc1cf6b40b5f75c6005e504c0..b9b3ccd9ea9bf892369a6fa2c8e28e0ceca18527:/src/gtk1/notebook.cpp?ds=sidebyside diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp index 3bb33c9e2e..8d29d5e7e6 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 //----------------------------------------------------------------------------- @@ -220,7 +183,13 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, m_acceptsFocus = TRUE; m_insertCallback = (wxInsertChildFunction)wxInsertChildInNotebook; - PreCreation( parent, id, pos, size, style, name ); + if (!PreCreation( parent, pos, size ) || + !CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) + { + wxFAIL_MSG( _T("wxNoteBook creation failed") ); + return FALSE; + } + m_widget = gtk_notebook_new(); @@ -235,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(); @@ -245,6 +218,19 @@ 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") ); @@ -278,7 +264,7 @@ wxString wxNotebook::GetPageText( int page ) const if (nb_page) return nb_page->m_text; else - return ""; + return _T(""); } int wxNotebook::GetPageImage( int page ) const @@ -515,15 +501,15 @@ bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text, page->m_box = gtk_hbox_new( FALSE, 0 ); gtk_container_border_width( GTK_CONTAINER(page->m_box), 2 ); + gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", + GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); + if (position < 0) gtk_notebook_append_page( notebook, win->m_widget, page->m_box ); else gtk_notebook_insert_page( notebook, win->m_widget, page->m_box, position ); - page->m_page = GTK_NOTEBOOK_PAGE( g_list_last(notebook->children)->data ); - - gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); + page->m_page = (GtkNotebookPage*) g_list_last(notebook->children)->data; /* set the label image */ page->m_image = imageId; @@ -626,4 +612,4 @@ bool wxNotebook::IsOwnGtkWindow( GdkWindow *window ) IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) -#endif \ No newline at end of file +#endif