X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtktoolbar.h;h=deb50e4ffff101de83f5ee716b946775e9df4ddf;hb=ea043cab5718304d9b6170afa2d3f959fc99c718;hp=92ce69eb60bad6b274d8a5fd6b689192aaf532ac;hpb=279e878bddb61086f813385dc94fd04a5465473a;p=~andy%2Fgtk diff --git a/gtk/gtktoolbar.h b/gtk/gtktoolbar.h index 92ce69eb6..deb50e4ff 100644 --- a/gtk/gtktoolbar.h +++ b/gtk/gtktoolbar.h @@ -2,58 +2,51 @@ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * GtkToolbar copyright (C) Federico Mena * + * Copyright (C) 2002 Anders Carlsson + * Copyright (C) 2002 James Henstridge + * Copyright (C) 2003 Soeren Sandmann + * * 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-1999. See the AUTHORS + * 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_TOOLBAR_H__ #define __GTK_TOOLBAR_H__ -#include -#include -#include -#include -#include -#include - +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ +#include +#include +G_BEGIN_DECLS -#define GTK_TOOLBAR(obj) GTK_CHECK_CAST (obj, gtk_toolbar_get_type (), GtkToolbar) -#define GTK_TOOLBAR_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_toolbar_get_type (), GtkToolbarClass) -#define GTK_IS_TOOLBAR(obj) GTK_CHECK_TYPE (obj, gtk_toolbar_get_type ()) -typedef enum -{ - GTK_TOOLBAR_CHILD_SPACE, - GTK_TOOLBAR_CHILD_BUTTON, - GTK_TOOLBAR_CHILD_TOGGLEBUTTON, - GTK_TOOLBAR_CHILD_RADIOBUTTON, - GTK_TOOLBAR_CHILD_WIDGET -} GtkToolbarChildType; +#define GTK_TYPE_TOOLBAR (gtk_toolbar_get_type ()) +#define GTK_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOOLBAR, GtkToolbar)) +#define GTK_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TOOLBAR, GtkToolbarClass)) +#define GTK_IS_TOOLBAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TOOLBAR)) +#define GTK_IS_TOOLBAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TOOLBAR)) +#define GTK_TOOLBAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOOLBAR, GtkToolbarClass)) typedef enum { @@ -61,146 +54,82 @@ typedef enum GTK_TOOLBAR_SPACE_LINE } GtkToolbarSpaceStyle; -typedef struct _GtkToolbarChild GtkToolbarChild; -typedef struct _GtkToolbar GtkToolbar; -typedef struct _GtkToolbarClass GtkToolbarClass; - -struct _GtkToolbarChild -{ - GtkToolbarChildType type; - GtkWidget *widget; - GtkWidget *icon; - GtkWidget *label; -}; +typedef struct _GtkToolbar GtkToolbar; +typedef struct _GtkToolbarPrivate GtkToolbarPrivate; +typedef struct _GtkToolbarClass GtkToolbarClass; struct _GtkToolbar { GtkContainer container; - gint num_children; - GList *children; - GtkOrientation orientation; - GtkToolbarStyle style; - gint space_size; /* big optional space between buttons */ - GtkToolbarSpaceStyle space_style; - - GtkTooltips *tooltips; - - gint button_maxw; - gint button_maxh; - GtkReliefStyle relief; + GtkToolbarPrivate *priv; }; struct _GtkToolbarClass { GtkContainerClass parent_class; - void (* orientation_changed) (GtkToolbar *toolbar, - GtkOrientation orientation); - void (* style_changed) (GtkToolbar *toolbar, - GtkToolbarStyle style); + /* signals */ + void (* orientation_changed) (GtkToolbar *toolbar, + GtkOrientation orientation); + void (* style_changed) (GtkToolbar *toolbar, + GtkToolbarStyle style); + gboolean (* popup_context_menu) (GtkToolbar *toolbar, + gint x, + gint y, + gint button_number); + + /* Padding for future expansion */ + void (*_gtk_reserved1) (void); + void (*_gtk_reserved2) (void); + void (*_gtk_reserved3) (void); + void (*_gtk_reserved4) (void); }; +GType gtk_toolbar_get_type (void) G_GNUC_CONST; +GtkWidget * gtk_toolbar_new (void); + +void gtk_toolbar_insert (GtkToolbar *toolbar, + GtkToolItem *item, + gint pos); + +gint gtk_toolbar_get_item_index (GtkToolbar *toolbar, + GtkToolItem *item); +gint gtk_toolbar_get_n_items (GtkToolbar *toolbar); +GtkToolItem * gtk_toolbar_get_nth_item (GtkToolbar *toolbar, + gint n); + +gboolean gtk_toolbar_get_show_arrow (GtkToolbar *toolbar); +void gtk_toolbar_set_show_arrow (GtkToolbar *toolbar, + gboolean show_arrow); + +GtkToolbarStyle gtk_toolbar_get_style (GtkToolbar *toolbar); +void gtk_toolbar_set_style (GtkToolbar *toolbar, + GtkToolbarStyle style); +void gtk_toolbar_unset_style (GtkToolbar *toolbar); + +GtkIconSize gtk_toolbar_get_icon_size (GtkToolbar *toolbar); +void gtk_toolbar_set_icon_size (GtkToolbar *toolbar, + GtkIconSize icon_size); +void gtk_toolbar_unset_icon_size (GtkToolbar *toolbar); + +GtkReliefStyle gtk_toolbar_get_relief_style (GtkToolbar *toolbar); +gint gtk_toolbar_get_drop_index (GtkToolbar *toolbar, + gint x, + gint y); +void gtk_toolbar_set_drop_highlight_item (GtkToolbar *toolbar, + GtkToolItem *tool_item, + gint index_); + + +/* internal functions */ +gchar * _gtk_toolbar_elide_underscores (const gchar *original); +void _gtk_toolbar_paint_space_line (GtkWidget *widget, + GtkToolbar *toolbar, + cairo_t *cr); +gint _gtk_toolbar_get_default_space_size (void); + -guint gtk_toolbar_get_type (void); -GtkWidget *gtk_toolbar_new (GtkOrientation orientation, - GtkToolbarStyle style); - -/* Simple button items */ -GtkWidget *gtk_toolbar_append_item (GtkToolbar *toolbar, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data); -GtkWidget *gtk_toolbar_prepend_item (GtkToolbar *toolbar, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data); -GtkWidget *gtk_toolbar_insert_item (GtkToolbar *toolbar, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data, - gint position); - -/* Space Items */ -void gtk_toolbar_append_space (GtkToolbar *toolbar); -void gtk_toolbar_prepend_space (GtkToolbar *toolbar); -void gtk_toolbar_insert_space (GtkToolbar *toolbar, - gint position); - -/* Any element type */ -GtkWidget *gtk_toolbar_append_element (GtkToolbar *toolbar, - GtkToolbarChildType type, - GtkWidget *widget, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data); - -GtkWidget *gtk_toolbar_prepend_element (GtkToolbar *toolbar, - GtkToolbarChildType type, - GtkWidget *widget, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data); - -GtkWidget *gtk_toolbar_insert_element (GtkToolbar *toolbar, - GtkToolbarChildType type, - GtkWidget *widget, - const char *text, - const char *tooltip_text, - const char *tooltip_private_text, - GtkWidget *icon, - GtkSignalFunc callback, - gpointer user_data, - gint position); - -/* Generic Widgets */ -void gtk_toolbar_append_widget (GtkToolbar *toolbar, - GtkWidget *widget, - const char *tooltip_text, - const char *tooltip_private_text); -void gtk_toolbar_prepend_widget (GtkToolbar *toolbar, - GtkWidget *widget, - const char *tooltip_text, - const char *tooltip_private_text); -void gtk_toolbar_insert_widget (GtkToolbar *toolbar, - GtkWidget *widget, - const char *tooltip_text, - const char *tooltip_private_text, - gint position); - -/* Style functions */ -void gtk_toolbar_set_orientation (GtkToolbar *toolbar, - GtkOrientation orientation); -void gtk_toolbar_set_style (GtkToolbar *toolbar, - GtkToolbarStyle style); -void gtk_toolbar_set_space_size (GtkToolbar *toolbar, - gint space_size); -void gtk_toolbar_set_space_style (GtkToolbar *toolbar, - GtkToolbarSpaceStyle space_style); -void gtk_toolbar_set_tooltips (GtkToolbar *toolbar, - gint enable); -void gtk_toolbar_set_button_relief (GtkToolbar *toolbar, - GtkReliefStyle relief); -GtkReliefStyle gtk_toolbar_get_button_relief (GtkToolbar *toolbar); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ +G_END_DECLS #endif /* __GTK_TOOLBAR_H__ */