X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtknotebook.h;h=a0fea568e72b4958f3ea1bba995603179971bd3f;hb=a41b73fbc71f613e4ca90ae8b9dd3bd317d026d6;hp=5531722d2b5a388e3c8c6e8988506629c6d15493;hpb=98e22a43ab25649842fde09ac0bc0e764c9a9dca;p=~andy%2Fgtk diff --git a/gtk/gtknotebook.h b/gtk/gtknotebook.h index 5531722d2..a0fea568e 100644 --- a/gtk/gtknotebook.h +++ b/gtk/gtknotebook.h @@ -1,126 +1,148 @@ +/* -*- Mode: C; c-file-style: "gnu"; tab-width: 8 -*- */ /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public + * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. + * Lesser General Public License for more details. * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . */ + +/* + * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS + * file for a list of people on the GTK+ Team. See the ChangeLog + * files for a list of changes. These files are distributed with + * GTK+ at ftp://ftp.gtk.org/pub/gtk/. + */ + #ifndef __GTK_NOTEBOOK_H__ #define __GTK_NOTEBOOK_H__ -#include -#include +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif +#include -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +G_BEGIN_DECLS #define GTK_TYPE_NOTEBOOK (gtk_notebook_get_type ()) -#define GTK_NOTEBOOK(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_NOTEBOOK, GtkNotebook)) -#define GTK_NOTEBOOK_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_NOTEBOOK, GtkNotebookClass)) -#define GTK_IS_NOTEBOOK(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_NOTEBOOK)) -#define GTK_IS_NOTEBOOK_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_NOTEBOOK)) +#define GTK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_NOTEBOOK, GtkNotebook)) +#define GTK_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_NOTEBOOK, GtkNotebookClass)) +#define GTK_IS_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK)) +#define GTK_IS_NOTEBOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_NOTEBOOK)) +#define GTK_NOTEBOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_NOTEBOOK, GtkNotebookClass)) -#define GTK_NOTEBOOK_PAGE(_glist_) ((GtkNotebookPage *)((GList *)(_glist_))->data) +typedef enum +{ + GTK_NOTEBOOK_TAB_FIRST, + GTK_NOTEBOOK_TAB_LAST +} GtkNotebookTab; -typedef struct _GtkNotebook GtkNotebook; -typedef struct _GtkNotebookClass GtkNotebookClass; -typedef struct _GtkNotebookPage GtkNotebookPage; +typedef struct _GtkNotebook GtkNotebook; +typedef struct _GtkNotebookPrivate GtkNotebookPrivate; +typedef struct _GtkNotebookClass GtkNotebookClass; struct _GtkNotebook { + /*< private >*/ GtkContainer container; - - GtkNotebookPage *cur_page; - GList *children; - GList *first_tab; - GList *focus_tab; - - GtkWidget *menu; - GdkWindow *panel; - - guint32 timer; - - guint16 tab_hborder; - guint16 tab_vborder; - - guint show_tabs : 1; - guint homogeneous : 1; - guint show_border : 1; - guint tab_pos : 2; - guint scrollable : 1; - guint in_child : 2; - guint click_child : 2; - guint button : 2; - guint need_timer : 1; - guint child_has_focus : 1; + + GtkNotebookPrivate *priv; }; struct _GtkNotebookClass { GtkContainerClass parent_class; - + void (* switch_page) (GtkNotebook *notebook, - GtkNotebookPage *page, + GtkWidget *page, guint page_num); -}; -struct _GtkNotebookPage -{ - GtkWidget *child; - GtkWidget *tab_label; - GtkWidget *menu_label; - - guint default_menu : 1; - guint default_tab : 1; - guint expand : 1; - guint fill : 1; - guint pack : 1; - - GtkRequisition requisition; - GtkAllocation allocation; + /* Action signals for keybindings */ + gboolean (* select_page) (GtkNotebook *notebook, + gboolean move_focus); + gboolean (* focus_tab) (GtkNotebook *notebook, + GtkNotebookTab type); + gboolean (* change_current_page) (GtkNotebook *notebook, + gint offset); + void (* move_focus_out) (GtkNotebook *notebook, + GtkDirectionType direction); + gboolean (* reorder_tab) (GtkNotebook *notebook, + GtkDirectionType direction, + gboolean move_to_last); + + /* More vfuncs */ + gint (* insert_page) (GtkNotebook *notebook, + GtkWidget *child, + GtkWidget *tab_label, + GtkWidget *menu_label, + gint position); + + GtkNotebook * (* create_window) (GtkNotebook *notebook, + GtkWidget *page, + gint x, + gint y); + + void (* page_reordered) (GtkNotebook *notebook, + GtkWidget *child, + guint page_num); + + void (* page_removed) (GtkNotebook *notebook, + GtkWidget *child, + guint page_num); + + void (* page_added) (GtkNotebook *notebook, + GtkWidget *child, + guint page_num); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); + void (*_gtk_reserved5) (void); + void (*_gtk_reserved6) (void); + void (*_gtk_reserved7) (void); + void (*_gtk_reserved8) (void); }; /*********************************************************** * Creation, insertion, deletion * ***********************************************************/ -GtkType gtk_notebook_get_type (void); +GType gtk_notebook_get_type (void) G_GNUC_CONST; GtkWidget * gtk_notebook_new (void); -void gtk_notebook_append_page (GtkNotebook *notebook, +gint gtk_notebook_append_page (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label); -void gtk_notebook_append_page_menu (GtkNotebook *notebook, +gint gtk_notebook_append_page_menu (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label, GtkWidget *menu_label); -void gtk_notebook_prepend_page (GtkNotebook *notebook, +gint gtk_notebook_prepend_page (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label); -void gtk_notebook_prepend_page_menu (GtkNotebook *notebook, +gint gtk_notebook_prepend_page_menu (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label, GtkWidget *menu_label); -void gtk_notebook_insert_page (GtkNotebook *notebook, +gint gtk_notebook_insert_page (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label, gint position); -void gtk_notebook_insert_page_menu (GtkNotebook *notebook, +gint gtk_notebook_insert_page_menu (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label, GtkWidget *menu_label, @@ -129,37 +151,48 @@ void gtk_notebook_remove_page (GtkNotebook *notebook, gint page_num); /*********************************************************** - * query, set current NoteebookPage * + * Tabs drag and drop * + ***********************************************************/ + +void gtk_notebook_set_group_name (GtkNotebook *notebook, + const gchar *group_name); +const gchar *gtk_notebook_get_group_name (GtkNotebook *notebook); + + + +/*********************************************************** + * query, set current NotebookPage * ***********************************************************/ -gint gtk_notebook_current_page (GtkNotebook *notebook); -gint gtk_notebook_page_num (GtkNotebook *notebook, - GtkWidget *child); -void gtk_notebook_set_page (GtkNotebook *notebook, - gint page_num); -void gtk_notebook_next_page (GtkNotebook *notebook); -void gtk_notebook_prev_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, + gint page_num); +void gtk_notebook_next_page (GtkNotebook *notebook); +void gtk_notebook_prev_page (GtkNotebook *notebook); /*********************************************************** * set Notebook, NotebookTab style * ***********************************************************/ -void gtk_notebook_set_show_border (GtkNotebook *notebook, - gboolean show_border); -void gtk_notebook_set_show_tabs (GtkNotebook *notebook, - gboolean show_tabs); -void gtk_notebook_set_tab_pos (GtkNotebook *notebook, - GtkPositionType pos); -void gtk_notebook_set_homogeneous_tabs (GtkNotebook *notebook, - gboolean homogeneous); -void gtk_notebook_set_tab_border (GtkNotebook *notebook, - guint border_width); -void gtk_notebook_set_tab_hborder (GtkNotebook *notebook, - guint tab_hborder); -void gtk_notebook_set_tab_vborder (GtkNotebook *notebook, - guint tab_vborder); -void gtk_notebook_set_scrollable (GtkNotebook *notebook, - gboolean scrollable); +void gtk_notebook_set_show_border (GtkNotebook *notebook, + gboolean show_border); +gboolean gtk_notebook_get_show_border (GtkNotebook *notebook); +void gtk_notebook_set_show_tabs (GtkNotebook *notebook, + gboolean show_tabs); +gboolean gtk_notebook_get_show_tabs (GtkNotebook *notebook); +void gtk_notebook_set_tab_pos (GtkNotebook *notebook, + GtkPositionType pos); +GtkPositionType gtk_notebook_get_tab_pos (GtkNotebook *notebook); +void gtk_notebook_set_scrollable (GtkNotebook *notebook, + gboolean scrollable); +gboolean gtk_notebook_get_scrollable (GtkNotebook *notebook); +guint16 gtk_notebook_get_tab_hborder (GtkNotebook *notebook); +guint16 gtk_notebook_get_tab_vborder (GtkNotebook *notebook); /*********************************************************** * enable/disable PopupMenu * @@ -172,39 +205,46 @@ void gtk_notebook_popup_disable (GtkNotebook *notebook); * query/set NotebookPage Properties * ***********************************************************/ -GtkWidget * gtk_notebook_query_tab_label (GtkNotebook *notebook, +GtkWidget * gtk_notebook_get_tab_label (GtkNotebook *notebook, GtkWidget *child); void gtk_notebook_set_tab_label (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label); -void gtk_notebook_set_tab_label_text (GtkNotebook *notebook, - GtkWidget *child, - gchar *tab_text); -GtkWidget * gtk_notebook_query_menu_label (GtkNotebook *notebook, +void gtk_notebook_set_tab_label_text (GtkNotebook *notebook, + GtkWidget *child, + const gchar *tab_text); +const gchar * gtk_notebook_get_tab_label_text (GtkNotebook *notebook, + GtkWidget *child); +GtkWidget * gtk_notebook_get_menu_label (GtkNotebook *notebook, GtkWidget *child); void gtk_notebook_set_menu_label (GtkNotebook *notebook, GtkWidget *child, GtkWidget *menu_label); -void gtk_notebook_set_menu_label_text (GtkNotebook *notebook, - GtkWidget *child, - gchar *menu_text); -void gtk_notebook_query_tab_label_packing (GtkNotebook *notebook, - GtkWidget *child, - gboolean *expand, - gboolean *fill, - GtkPackType *pack_type); -void gtk_notebook_set_tab_label_packing (GtkNotebook *notebook, - GtkWidget *child, - gboolean expand, - gboolean fill, - GtkPackType pack_type); +void gtk_notebook_set_menu_label_text (GtkNotebook *notebook, + GtkWidget *child, + const gchar *menu_text); +const gchar * gtk_notebook_get_menu_label_text (GtkNotebook *notebook, + GtkWidget *child); void gtk_notebook_reorder_child (GtkNotebook *notebook, GtkWidget *child, gint position); +gboolean gtk_notebook_get_tab_reorderable (GtkNotebook *notebook, + GtkWidget *child); +void gtk_notebook_set_tab_reorderable (GtkNotebook *notebook, + GtkWidget *child, + gboolean reorderable); +gboolean gtk_notebook_get_tab_detachable (GtkNotebook *notebook, + GtkWidget *child); +void gtk_notebook_set_tab_detachable (GtkNotebook *notebook, + GtkWidget *child, + gboolean detachable); -#ifdef __cplusplus -} -#endif /* __cplusplus */ +GtkWidget* gtk_notebook_get_action_widget (GtkNotebook *notebook, + GtkPackType pack_type); +void gtk_notebook_set_action_widget (GtkNotebook *notebook, + GtkWidget *widget, + GtkPackType pack_type); +G_END_DECLS #endif /* __GTK_NOTEBOOK_H__ */