X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtknotebook.h;h=a0fea568e72b4958f3ea1bba995603179971bd3f;hb=HEAD;hp=c4cbbf3a20bd050c84e150430bdd6d4ac17643ba;hpb=c344b3f905a3681c28d0ac9f9521418e25853dea;p=~andy%2Fgtk diff --git a/gtk/gtknotebook.h b/gtk/gtknotebook.h index c4cbbf3a2..a0fea568e 100644 --- a/gtk/gtknotebook.h +++ b/gtk/gtknotebook.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; c-file-style: "gnu"; tab-width: 8 -*- */ /* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * @@ -12,37 +13,35 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser 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. + * 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/. + * 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_GET_CLASS(obj) (GTK_CHECK_GET_CLASS ((obj), GTK_TYPE_NOTEBOOK, GtkNotebookClass)) +#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)) typedef enum @@ -51,82 +50,99 @@ typedef enum 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; /* The first tab visible (for scrolling notebooks) */ - GList *focus_tab; - - GtkWidget *menu; - GdkWindow *event_window; - - 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; - guint have_visible_child : 1; + + GtkNotebookPrivate *priv; }; struct _GtkNotebookClass { GtkContainerClass parent_class; - + void (* switch_page) (GtkNotebook *notebook, - GtkNotebookPage *page, + GtkWidget *page, guint page_num); /* Action signals for keybindings */ - void (* select_page) (GtkNotebook *notebook, + gboolean (* select_page) (GtkNotebook *notebook, gboolean move_focus); - void (* focus_tab) (GtkNotebook *notebook, + gboolean (* focus_tab) (GtkNotebook *notebook, GtkNotebookTab type); - void (* change_current_page) (GtkNotebook *notebook, + 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) G_GNUC_CONST; +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, @@ -135,12 +151,23 @@ 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_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, @@ -161,21 +188,11 @@ 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); - -#ifndef GTK_DISABLE_DEPRECATED -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); -#endif /* GTK_DISABLE_DEPRECATED */ - 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 * @@ -193,43 +210,41 @@ GtkWidget * gtk_notebook_get_tab_label (GtkNotebook *notebook, void gtk_notebook_set_tab_label (GtkNotebook *notebook, GtkWidget *child, GtkWidget *tab_label); -void gtk_notebook_set_tab_label_text (GtkNotebook *notebook, - GtkWidget *child, - const gchar *tab_text); -G_CONST_RETURN gchar *gtk_notebook_get_tab_label_text (GtkNotebook *notebook, - GtkWidget *child); +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, - const gchar *menu_text); -G_CONST_RETURN gchar *gtk_notebook_get_menu_label_text (GtkNotebook *notebook, +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_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_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); -#ifndef GTK_DISABLE_DEPRECATED -#define gtk_notebook_current_page gtk_notebook_get_current_page -#define gtk_notebook_set_page gtk_notebook_set_current_page -#endif /* GTK_DISABLE_DEPRECATED */ - -#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__ */