gtktoolpalette.h 7.3 KB
Newer Older
Johannes Schmid's avatar
Johannes Schmid committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
/* GtkToolPalette -- A tool palette with categories and DnD support
 * Copyright (C) 2008  Openismus GmbH
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 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
 * 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * Authors:
 *      Mathias Hasselmann
 */

22 23 24 25
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
#error "Only <gtk/gtk.h> can be included directly."
#endif

Johannes Schmid's avatar
Johannes Schmid committed
26 27 28 29 30 31 32 33 34
#ifndef __GTK_TOOL_PALETTE_H__
#define __GTK_TOOL_PALETTE_H__

#include <gtk/gtkcontainer.h>
#include <gtk/gtkdnd.h>
#include <gtk/gtktoolitem.h>

G_BEGIN_DECLS

35 36 37 38 39 40
#define GTK_TYPE_TOOL_PALETTE           (gtk_tool_palette_get_type ())
#define GTK_TOOL_PALETTE(obj)           (G_TYPE_CHECK_INSTANCE_CAST (obj, GTK_TYPE_TOOL_PALETTE, GtkToolPalette))
#define GTK_TOOL_PALETTE_CLASS(cls)     (G_TYPE_CHECK_CLASS_CAST (cls, GTK_TYPE_TOOL_PALETTE, GtkToolPaletteClass))
#define GTK_IS_TOOL_PALETTE(obj)        (G_TYPE_CHECK_INSTANCE_TYPE (obj, GTK_TYPE_TOOL_PALETTE))
#define GTK_IS_TOOL_PALETTE_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE (obj, GTK_TYPE_TOOL_PALETTE))
#define GTK_TOOL_PALETTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOOL_PALETTE, GtkToolPaletteClass))
Johannes Schmid's avatar
Johannes Schmid committed
41 42 43 44 45 46 47 48 49 50

typedef struct _GtkToolPalette           GtkToolPalette;
typedef struct _GtkToolPaletteClass      GtkToolPaletteClass;
typedef struct _GtkToolPalettePrivate    GtkToolPalettePrivate;

/**
 * GtkToolPaletteDragTargets:
 * @GTK_TOOL_PALETTE_DRAG_ITEMS: Support drag of items.
 * @GTK_TOOL_PALETTE_DRAG_GROUPS: Support drag of groups.
 *
51
 * Flags used to specify the supported drag targets.
Johannes Schmid's avatar
Johannes Schmid committed
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
 */
typedef enum /*< flags >*/
{
  GTK_TOOL_PALETTE_DRAG_ITEMS = (1 << 0),
  GTK_TOOL_PALETTE_DRAG_GROUPS = (1 << 1)
}
GtkToolPaletteDragTargets;

/**
 * GtkToolPalette:
 *
 * This should not be accessed directly. Use the accessor functions below.
 */
struct _GtkToolPalette
{
  GtkContainer parent_instance;
  GtkToolPalettePrivate *priv;
};

struct _GtkToolPaletteClass
{
  GtkContainerClass parent_class;

75 76 77 78 79
  /* Padding for future expansion */
  void (*_gtk_reserved1) (void);
  void (*_gtk_reserved2) (void);
  void (*_gtk_reserved3) (void);
  void (*_gtk_reserved4) (void);
Johannes Schmid's avatar
Johannes Schmid committed
80 81 82 83 84 85
};

GType                          gtk_tool_palette_get_type              (void) G_GNUC_CONST;
GtkWidget*                     gtk_tool_palette_new                   (void);

void                           gtk_tool_palette_set_group_position    (GtkToolPalette            *palette,
86
                                                                       GtkToolItemGroup          *group,
Johannes Schmid's avatar
Johannes Schmid committed
87 88
                                                                       gint                       position);
void                           gtk_tool_palette_set_exclusive         (GtkToolPalette            *palette,
89
                                                                       GtkToolItemGroup          *group,
Johannes Schmid's avatar
Johannes Schmid committed
90 91
                                                                       gboolean                   exclusive);
void                           gtk_tool_palette_set_expand            (GtkToolPalette            *palette,
92
                                                                       GtkToolItemGroup          *group,
Johannes Schmid's avatar
Johannes Schmid committed
93 94 95
                                                                       gboolean                   expand);

gint                           gtk_tool_palette_get_group_position    (GtkToolPalette            *palette,
96
                                                                       GtkToolItemGroup          *group);
Johannes Schmid's avatar
Johannes Schmid committed
97
gboolean                       gtk_tool_palette_get_exclusive         (GtkToolPalette            *palette,
98
                                                                       GtkToolItemGroup          *group);
Johannes Schmid's avatar
Johannes Schmid committed
99
gboolean                       gtk_tool_palette_get_expand            (GtkToolPalette            *palette,
100
                                                                       GtkToolItemGroup          *group);
Johannes Schmid's avatar
Johannes Schmid committed
101 102 103

void                           gtk_tool_palette_set_icon_size         (GtkToolPalette            *palette,
                                                                       GtkIconSize                icon_size);
104
void                           gtk_tool_palette_unset_icon_size       (GtkToolPalette            *palette);
Johannes Schmid's avatar
Johannes Schmid committed
105 106
void                           gtk_tool_palette_set_style             (GtkToolPalette            *palette,
                                                                       GtkToolbarStyle            style);
107
void                           gtk_tool_palette_unset_style           (GtkToolPalette            *palette);
Johannes Schmid's avatar
Johannes Schmid committed
108 109 110 111 112 113 114

GtkIconSize                    gtk_tool_palette_get_icon_size         (GtkToolPalette            *palette);
GtkToolbarStyle                gtk_tool_palette_get_style             (GtkToolPalette            *palette);

GtkToolItem*                   gtk_tool_palette_get_drop_item         (GtkToolPalette            *palette,
                                                                       gint                       x,
                                                                       gint                       y);
115
GtkToolItemGroup*              gtk_tool_palette_get_drop_group        (GtkToolPalette            *palette,
Johannes Schmid's avatar
Johannes Schmid committed
116 117 118 119 120 121 122 123 124 125 126 127 128
                                                                       gint                       x,
                                                                       gint                       y);
GtkWidget*                     gtk_tool_palette_get_drag_item         (GtkToolPalette            *palette,
                                                                       const GtkSelectionData    *selection);

void                           gtk_tool_palette_set_drag_source       (GtkToolPalette            *palette,
                                                                       GtkToolPaletteDragTargets  targets);
void                           gtk_tool_palette_add_drag_dest         (GtkToolPalette            *palette,
                                                                       GtkWidget                 *widget,
                                                                       GtkDestDefaults            flags,
                                                                       GtkToolPaletteDragTargets  targets,
                                                                       GdkDragAction              actions);

129 130
#ifndef GTK_DISABLE_DEPRECATED

Johannes Schmid's avatar
Johannes Schmid committed
131 132 133
GtkAdjustment*                 gtk_tool_palette_get_hadjustment       (GtkToolPalette            *palette);
GtkAdjustment*                 gtk_tool_palette_get_vadjustment       (GtkToolPalette            *palette);

134 135
#endif

136 137
const GtkTargetEntry*          gtk_tool_palette_get_drag_target_item  (void) G_GNUC_CONST;
const GtkTargetEntry*          gtk_tool_palette_get_drag_target_group (void) G_GNUC_CONST;
Johannes Schmid's avatar
Johannes Schmid committed
138 139 140 141


G_END_DECLS

142
#endif /* __GTK_TOOL_PALETTE_H__ */