1 /* GtkToolPalette -- A tool palette with categories and DnD support 2 * Copyright (C) 2008 Openismus GmbH 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 * 17 * Authors: 18 * Mathias Hasselmann 19 */ 20 21 #ifndef __GTK_TOOL_ITEM_GROUP_H__ 22 #define __GTK_TOOL_ITEM_GROUP_H__ 23 24 #if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) 25 #error "Only <gtk/gtk.h> can be included directly." 26 #endif 27 28 #include <gtk/gtkcontainer.h> 29 #include <gtk/gtktoolitem.h> 30 31 G_BEGIN_DECLS 32 33 #define GTK_TYPE_TOOL_ITEM_GROUP (gtk_tool_item_group_get_type ()) 34 #define GTK_TOOL_ITEM_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_TOOL_ITEM_GROUP, GtkToolItemGroup)) 35 #define GTK_TOOL_ITEM_GROUP_CLASS(cls) (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_TOOL_ITEM_GROUP, GtkToolItemGroupClass)) 36 #define GTK_IS_TOOL_ITEM_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_TOOL_ITEM_GROUP)) 37 #define GTK_IS_TOOL_ITEM_GROUP_CLASS(obj) (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_TOOL_ITEM_GROUP)) 38 #define GTK_TOOL_ITEM_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOOL_ITEM_GROUP, GtkToolItemGroupClass)) 39 40 typedef struct _GtkToolItemGroup GtkToolItemGroup; 41 typedef struct _GtkToolItemGroupClass GtkToolItemGroupClass; 42 typedef struct _GtkToolItemGroupPrivate GtkToolItemGroupPrivate; 43 44 /** 45 * GtkToolItemGroup: 46 * 47 * This should not be accessed directly. Use the accessor functions below. 48 */ 49 struct _GtkToolItemGroup 50 { 51 GtkContainer parent_instance; 52 GtkToolItemGroupPrivate *priv; 53 }; 54 55 /** 56 * GtkToolItemGroupClass: 57 * @parent_class: The parent class. 58 */ 59 struct _GtkToolItemGroupClass 60 { 61 GtkContainerClass parent_class; 62 63 /*< private >*/ 64 65 /* Padding for future expansion */ 66 void (*_gtk_reserved1) (void); 67 void (*_gtk_reserved2) (void); 68 void (*_gtk_reserved3) (void); 69 void (*_gtk_reserved4) (void); 70 }; 71 72 GDK_AVAILABLE_IN_ALL 73 GType gtk_tool_item_group_get_type (void) G_GNUC_CONST; 74 GDK_AVAILABLE_IN_ALL 75 GtkWidget* gtk_tool_item_group_new (const gchar *label); 76 77 GDK_AVAILABLE_IN_ALL 78 void gtk_tool_item_group_set_label (GtkToolItemGroup *group, 79 const gchar *label); 80 GDK_AVAILABLE_IN_ALL 81 void gtk_tool_item_group_set_label_widget (GtkToolItemGroup *group, 82 GtkWidget *label_widget); 83 GDK_AVAILABLE_IN_ALL 84 void gtk_tool_item_group_set_collapsed (GtkToolItemGroup *group, 85 gboolean collapsed); 86 GDK_AVAILABLE_IN_ALL 87 void gtk_tool_item_group_set_ellipsize (GtkToolItemGroup *group, 88 PangoEllipsizeMode ellipsize); 89 GDK_AVAILABLE_IN_ALL 90 void gtk_tool_item_group_set_header_relief (GtkToolItemGroup *group, 91 GtkReliefStyle style); 92 93 GDK_AVAILABLE_IN_ALL 94 const gchar * gtk_tool_item_group_get_label (GtkToolItemGroup *group); 95 GDK_AVAILABLE_IN_ALL 96 GtkWidget *gtk_tool_item_group_get_label_widget (GtkToolItemGroup *group); 97 GDK_AVAILABLE_IN_ALL 98 gboolean gtk_tool_item_group_get_collapsed (GtkToolItemGroup *group); 99 GDK_AVAILABLE_IN_ALL 100 PangoEllipsizeMode gtk_tool_item_group_get_ellipsize (GtkToolItemGroup *group); 101 GDK_AVAILABLE_IN_ALL 102 GtkReliefStyle gtk_tool_item_group_get_header_relief (GtkToolItemGroup *group); 103 104 GDK_AVAILABLE_IN_ALL 105 void gtk_tool_item_group_insert (GtkToolItemGroup *group, 106 GtkToolItem *item, 107 gint position); 108 GDK_AVAILABLE_IN_ALL 109 void gtk_tool_item_group_set_item_position (GtkToolItemGroup *group, 110 GtkToolItem *item, 111 gint position); 112 GDK_AVAILABLE_IN_ALL 113 gint gtk_tool_item_group_get_item_position (GtkToolItemGroup *group, 114 GtkToolItem *item); 115 116 GDK_AVAILABLE_IN_ALL 117 guint gtk_tool_item_group_get_n_items (GtkToolItemGroup *group); 118 GDK_AVAILABLE_IN_ALL 119 GtkToolItem* gtk_tool_item_group_get_nth_item (GtkToolItemGroup *group, 120 guint index); 121 GDK_AVAILABLE_IN_ALL 122 GtkToolItem* gtk_tool_item_group_get_drop_item (GtkToolItemGroup *group, 123 gint x, 124 gint y); 125 126 G_END_DECLS 127 128 #endif /* __GTK_TOOL_ITEM_GROUP_H__ */ 129