diff --git a/ChangeLog b/ChangeLog index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index dc42be27bb..bd1b3f2295 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,17 @@ +Mon Sep 23 18:01:52 2002 Owen Taylor + + * gtk/gtknotebook.[ch]: Add gtk_notebook_get_n_pages + (#73229, Havoc Pennington) + + * gtk/gtknotebook.c (gtk_notebook_get_nth_page): Handle + -1 to mean the last page, as we do elsewhere. (#73229) + +Mon Sep 23 17:50:23 2002 Owen Taylor + + * gtk/gtkmenushell.[ch] gtk/gtkentry.c gtk/gtkmenubar.c + gtk/gtkmenuitem.c gtk/gtktextview.c: Make + gtk_menu_shell_select_first() public. (#70373) + Mon Sep 23 16:48:46 2002 Owen Taylor * gdk/gdkkeys.[ch] gdk/x11/gdkkeys-x11.c gdk/x11/gdkevents-x11.c: diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 3900fd67bd..c7c2ad6896 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -4109,7 +4109,8 @@ gtk_notebook_get_current_page (GtkNotebook *notebook) /** * gtk_notebook_get_nth_page: * @notebook: a #GtkNotebook - * @page_num: the index of a page in the noteobok + * @page_num: the index of a page in the noteobok, or -1 + * to get the last page. * * Returns the child widget contained in page number @page_num. * @@ -4121,17 +4122,40 @@ gtk_notebook_get_nth_page (GtkNotebook *notebook, gint page_num) { GtkNotebookPage *page; + GList *list; g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL); - page = g_list_nth_data (notebook->children, page_num); + if (page_num >= 0) + list = g_list_nth (notebook->children, page_num); + else + list = g_list_last (notebook->children); - if (page) - return page->child; + if (list) + { + page = list->data; + return page->child; + } return NULL; } +/** + * gtk_notebook_get_nth_page: + * @notebook: a #GtkNotebook + * + * Gets the number of pages in a notebook. + * + * Return value: the number of pages in the notebook. + **/ +gint +gtk_notebook_get_n_pages (GtkNotebook *notebook) +{ + g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), 0); + + return g_list_length (notebook->children); +} + /** * gtk_notebook_page_num: * @notebook: a #GtkNotebook diff --git a/gtk/gtknotebook.h b/gtk/gtknotebook.h index 7ed5ed0652..e6d0cd8d70 100644 --- a/gtk/gtknotebook.h +++ b/gtk/gtknotebook.h @@ -150,6 +150,7 @@ void gtk_notebook_remove_page (GtkNotebook *notebook, gint gtk_notebook_get_current_page (GtkNotebook *notebook); GtkWidget* gtk_notebook_get_nth_page (GtkNotebook *notebook, gint page_num); +gint gtk_notebook_get_n_pages (GtkNotebook *notebook); gint gtk_notebook_page_num (GtkNotebook *notebook, GtkWidget *child); void gtk_notebook_set_current_page (GtkNotebook *notebook,