-bool wxNotebook::AddPage(wxWindow* win, const wxString& text,
- bool bSelect, int imageId)
-{
- wxCHECK_MSG( m_widget != NULL, FALSE, "invalid notebook" );
+ if ( position == GetPageCount() )
+ m_pagesData.Append( nb_page );
+ else
+ m_pagesData.Insert( position, nb_page );
+
+ m_pages.Insert(win, position);
+
+ // set the label image and text
+ // this must be done before adding the page, as GetPageText
+ // and GetPageImage will otherwise return wrong values in
+ // the page-changed event that results from inserting the
+ // first page.
+ nb_page->m_image = imageId;
+ nb_page->m_text = wxStripMenuCodes(text);
+
+ nb_page->m_box = gtk_hbox_new( FALSE, 1 );
+ gtk_container_set_border_width((GtkContainer*)nb_page->m_box, 2);
+
+ g_signal_connect (win->m_widget, "size_allocate",
+ G_CALLBACK (gtk_page_size_callback), win);
+
+ gint idx = gtk_notebook_insert_page(notebook, win->m_widget,
+ nb_page->m_box, position);
+
+ nb_page->m_page = (GtkNotebookPage *)gtk_notebook_get_nth_page(notebook, idx);