X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtknotebook.h;h=4240338595f33ea6d803baad9d77ac07742daa4a;hb=8d36170b8d742d226d9eec5f195ab71c38c6d1ef;hp=9bc478c02a3c0ba47b8c513702580f2b280e2a03;hpb=4ebc61c067af80a3cd24f1cfd79ec6b6be80e350;p=~andy%2Fgtk diff --git a/gtk/gtknotebook.h b/gtk/gtknotebook.h index 9bc478c02..424033859 100644 --- a/gtk/gtknotebook.h +++ b/gtk/gtknotebook.h @@ -1,126 +1,136 @@ +/* -*- 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 + * 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. */ + +/* + * 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/. + */ + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + #ifndef __GTK_NOTEBOOK_H__ #define __GTK_NOTEBOOK_H__ -#include #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 { 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 (*_gtk_reserved1) (void); }; +typedef GtkNotebook* (*GtkNotebookWindowCreationFunc) (GtkNotebook *source, + GtkWidget *page, + gint x, + gint y, + gpointer data); + /*********************************************************** * 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,39 +139,51 @@ void gtk_notebook_remove_page (GtkNotebook *notebook, gint page_num); /*********************************************************** - * query, set current NoteebookPage * + * Tabs drag and drop * ***********************************************************/ -gint gtk_notebook_get_current_page (GtkNotebook *notebook); -GtkWidget * gtk_notebook_nth_page (GtkNotebook *notebook, - gint page_num); -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); +void gtk_notebook_set_window_creation_hook (GtkNotebookWindowCreationFunc func, + gpointer data, + GDestroyNotify destroy); +void gtk_notebook_set_group (GtkNotebook *notebook, + gpointer group); +gpointer gtk_notebook_get_group (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, + 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 * @@ -182,6 +204,8 @@ void gtk_notebook_set_tab_label (GtkNotebook *notebook, 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); GtkWidget * gtk_notebook_get_menu_label (GtkNotebook *notebook, GtkWidget *child); void gtk_notebook_set_menu_label (GtkNotebook *notebook, @@ -190,23 +214,28 @@ void gtk_notebook_set_menu_label (GtkNotebook *notebook, void gtk_notebook_set_menu_label_text (GtkNotebook *notebook, GtkWidget *child, const 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); +G_CONST_RETURN 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__ */