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
31G_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
40typedef struct _GtkToolItemGroup GtkToolItemGroup;
41typedef struct _GtkToolItemGroupClass GtkToolItemGroupClass;
42typedef struct _GtkToolItemGroupPrivate GtkToolItemGroupPrivate;
43
44/**
45 * GtkToolItemGroup:
46 *
47 * This should not be accessed directly. Use the accessor functions below.
48 */
49struct _GtkToolItemGroup
50{
51 GtkContainer parent_instance;
52 GtkToolItemGroupPrivate *priv;
53};
54
55/**
56 * GtkToolItemGroupClass:
57 * @parent_class: The parent class.
58 */
59struct _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
72GDK_AVAILABLE_IN_ALL
73GType gtk_tool_item_group_get_type (void) G_GNUC_CONST;
74GDK_AVAILABLE_IN_ALL
75GtkWidget* gtk_tool_item_group_new (const gchar *label);
76
77GDK_AVAILABLE_IN_ALL
78void gtk_tool_item_group_set_label (GtkToolItemGroup *group,
79 const gchar *label);
80GDK_AVAILABLE_IN_ALL
81void gtk_tool_item_group_set_label_widget (GtkToolItemGroup *group,
82 GtkWidget *label_widget);
83GDK_AVAILABLE_IN_ALL
84void gtk_tool_item_group_set_collapsed (GtkToolItemGroup *group,
85 gboolean collapsed);
86GDK_AVAILABLE_IN_ALL
87void gtk_tool_item_group_set_ellipsize (GtkToolItemGroup *group,
88 PangoEllipsizeMode ellipsize);
89GDK_AVAILABLE_IN_ALL
90void gtk_tool_item_group_set_header_relief (GtkToolItemGroup *group,
91 GtkReliefStyle style);
92
93GDK_AVAILABLE_IN_ALL
94const gchar * gtk_tool_item_group_get_label (GtkToolItemGroup *group);
95GDK_AVAILABLE_IN_ALL
96GtkWidget *gtk_tool_item_group_get_label_widget (GtkToolItemGroup *group);
97GDK_AVAILABLE_IN_ALL
98gboolean gtk_tool_item_group_get_collapsed (GtkToolItemGroup *group);
99GDK_AVAILABLE_IN_ALL
100PangoEllipsizeMode gtk_tool_item_group_get_ellipsize (GtkToolItemGroup *group);
101GDK_AVAILABLE_IN_ALL
102GtkReliefStyle gtk_tool_item_group_get_header_relief (GtkToolItemGroup *group);
103
104GDK_AVAILABLE_IN_ALL
105void gtk_tool_item_group_insert (GtkToolItemGroup *group,
106 GtkToolItem *item,
107 gint position);
108GDK_AVAILABLE_IN_ALL
109void gtk_tool_item_group_set_item_position (GtkToolItemGroup *group,
110 GtkToolItem *item,
111 gint position);
112GDK_AVAILABLE_IN_ALL
113gint gtk_tool_item_group_get_item_position (GtkToolItemGroup *group,
114 GtkToolItem *item);
115
116GDK_AVAILABLE_IN_ALL
117guint gtk_tool_item_group_get_n_items (GtkToolItemGroup *group);
118GDK_AVAILABLE_IN_ALL
119GtkToolItem* gtk_tool_item_group_get_nth_item (GtkToolItemGroup *group,
120 guint index);
121GDK_AVAILABLE_IN_ALL
122GtkToolItem* gtk_tool_item_group_get_drop_item (GtkToolItemGroup *group,
123 gint x,
124 gint y);
125
126G_END_DECLS
127
128#endif /* __GTK_TOOL_ITEM_GROUP_H__ */
129