On this page
GtkToolPalette
GtkToolPalette — A tool palette with categories
Functions
Properties
| GtkIconSize | icon-size | Read / Write | 
| gboolean | icon-size-set | Read / Write | 
| GtkToolbarStyle | toolbar-style | Read / Write | 
Types and Values
| struct | GtkToolPalette | 
| struct | GtkToolPaletteClass | 
| enum | GtkToolPaletteDragTargets | 
Object Hierarchy
    GObject
    ╰── GInitiallyUnowned
        ╰── GtkWidget
            ╰── GtkContainer
                ╰── GtkToolPalette
   Implemented Interfaces
GtkToolPalette implements AtkImplementorIface, GtkBuildable, GtkOrientable and GtkScrollable.
Includes
#include <gtk/gtk.h>
   Description
A GtkToolPalette allows you to add GtkToolItems to a palette-like container with different categories and drag and drop support.
A GtkToolPalette is created with a call to gtk_tool_palette_new().
GtkToolItems cannot be added directly to a GtkToolPalette - instead they are added to a GtkToolItemGroup which can than be added to a GtkToolPalette. To add a GtkToolItemGroup to a GtkToolPalette, use gtk_container_add().
The easiest way to use drag and drop with GtkToolPalette is to call gtk_tool_palette_add_drag_dest() with the desired drag source palette and the desired drag target widget . Then gtk_tool_palette_get_drag_item() can be used to get the dragged item in the “drag-data-received” signal handler of the drag target.
GtkWidget *palette, *group;
GtkToolItem *item;
palette = gtk_tool_palette_new ();
group = gtk_tool_item_group_new (_("Test Category"));
gtk_container_add (GTK_CONTAINER (palette), group);
item = gtk_tool_button_new (NULL, _("_Open"));
gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "document-open");
gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
    CSS nodes
GtkToolPalette has a single CSS node named toolpalette.
Functions
gtk_tool_palette_new ()
GtkWidget *
gtk_tool_palette_new (void);
     Creates a new tool palette.
Returns
a new GtkToolPalette
Since: 2.20
gtk_tool_palette_get_exclusive ()
gboolean gtk_tool_palette_get_exclusive (GtkToolPalette *palette,GtkToolItemGroup *group);
Gets whether group is exclusive or not. See gtk_tool_palette_set_exclusive().
Parameters
palette  | 
           ||
group  | 
           a GtkToolItemGroup which is a child of palette  | 
           
Returns
TRUE if group is exclusive
Since: 2.20
gtk_tool_palette_set_exclusive ()
void gtk_tool_palette_set_exclusive (GtkToolPalette *palette,GtkToolItemGroup *group,gboolean exclusive);
Sets whether the group should be exclusive or not. If an exclusive group is expanded all other groups are collapsed.
Parameters
palette  | 
           ||
group  | 
           a GtkToolItemGroup which is a child of palette  | 
           |
exclusive  | 
           whether the group should be exclusive or not  | 
           
Since: 2.20
gtk_tool_palette_get_expand ()
gboolean gtk_tool_palette_get_expand (GtkToolPalette *palette,GtkToolItemGroup *group);
Gets whether group should be given extra space. See gtk_tool_palette_set_expand().
Parameters
palette  | 
           ||
group  | 
           a GtkToolItemGroup which is a child of palette  | 
           
Returns
TRUE if group should be given extra space, FALSE otherwise
Since: 2.20
gtk_tool_palette_set_expand ()
void gtk_tool_palette_set_expand (GtkToolPalette *palette,GtkToolItemGroup *group,gboolean expand);
Sets whether the group should be given extra space.
Parameters
palette  | 
           ||
group  | 
           a GtkToolItemGroup which is a child of palette  | 
           |
expand  | 
           whether the group should be given extra space  | 
           
Since: 2.20
gtk_tool_palette_get_group_position ()
gint gtk_tool_palette_get_group_position (GtkToolPalette *palette,GtkToolItemGroup *group);
Gets the position of group in palette as index. See gtk_tool_palette_set_group_position().
Parameters
palette  | 
           ||
group  | 
           
Returns
the index of group or -1 if group is not a child of palette
Since: 2.20
gtk_tool_palette_set_group_position ()
void gtk_tool_palette_set_group_position (GtkToolPalette *palette,GtkToolItemGroup *group,gint position);
Sets the position of the group as an index of the tool palette. If position is 0 the group will become the first child, if position is -1 it will become the last child.
Parameters
palette  | 
           ||
group  | 
           a GtkToolItemGroup which is a child of palette  | 
           |
position  | 
           a new index for group  | 
           
Since: 2.20
gtk_tool_palette_get_icon_size ()
GtkIconSize
gtk_tool_palette_get_icon_size (GtkToolPalette *palette);
     Gets the size of icons in the tool palette. See gtk_tool_palette_set_icon_size().
Parameters
palette  | 
           
Since: 2.20
gtk_tool_palette_set_icon_size ()
void gtk_tool_palette_set_icon_size (GtkToolPalette *palette,GtkIconSize icon_size);
Sets the size of icons in the tool palette.
Parameters
palette  | 
           ||
icon_size  | 
           the GtkIconSize that icons in the tool palette shall have.  | 
           [type int] | 
Since: 2.20
gtk_tool_palette_unset_icon_size ()
void
gtk_tool_palette_unset_icon_size (GtkToolPalette *palette);
     Unsets the tool palette icon size set with gtk_tool_palette_set_icon_size(), so that user preferences will be used to determine the icon size.
Parameters
palette  | 
           
Since: 2.20
gtk_tool_palette_get_style ()
GtkToolbarStyle
gtk_tool_palette_get_style (GtkToolPalette *palette);
     Gets the style (icons, text or both) of items in the tool palette.
Parameters
palette  | 
           
Returns
the GtkToolbarStyle of items in the tool palette.
Since: 2.20
gtk_tool_palette_set_style ()
void gtk_tool_palette_set_style (GtkToolPalette *palette,GtkToolbarStyle style);
Sets the style (text, icons or both) of items in the tool palette.
Parameters
palette  | 
           ||
style  | 
           the GtkToolbarStyle that items in the tool palette shall have  | 
           
Since: 2.20
gtk_tool_palette_unset_style ()
void
gtk_tool_palette_unset_style (GtkToolPalette *palette);
     Unsets a toolbar style set with gtk_tool_palette_set_style(), so that user preferences will be used to determine the toolbar style.
Parameters
palette  | 
           
Since: 2.20
gtk_tool_palette_add_drag_dest ()
void gtk_tool_palette_add_drag_dest (GtkToolPalette *palette,GtkWidget *widget,GtkDestDefaults flags,GtkToolPaletteDragTargets targets,GdkDragAction actions);
Sets palette as drag source (see gtk_tool_palette_set_drag_source()) and sets widget as a drag destination for drags from palette . See gtk_drag_dest_set().
Parameters
palette  | 
           ||
widget  | 
           a GtkWidget which should be a drag destination for   | 
           |
flags  | 
           the flags that specify what actions GTK+ should take for drops on that widget  | 
           |
targets  | 
           the GtkToolPaletteDragTargets which the widget should support  | 
           |
actions  | 
           the GdkDragActions which the widget should suppport  | 
           
Since: 2.20
gtk_tool_palette_get_drag_item ()
GtkWidget * gtk_tool_palette_get_drag_item (GtkToolPalette *palette,const GtkSelectionData *selection);
Get the dragged item from the selection. This could be a GtkToolItem or a GtkToolItemGroup.
Parameters
palette  | 
           ||
selection  | 
           
Returns
the dragged item in selection.
[transfer none]
Since: 2.20
gtk_tool_palette_get_drag_target_group ()
const GtkTargetEntry *
gtk_tool_palette_get_drag_target_group
                               (void);
     Get the target entry for a dragged GtkToolItemGroup.
Since: 2.20
gtk_tool_palette_get_drag_target_item ()
const GtkTargetEntry *
gtk_tool_palette_get_drag_target_item (void);
     Gets the target entry for a dragged GtkToolItem.
Since: 2.20
gtk_tool_palette_get_drop_group ()
GtkToolItemGroup * gtk_tool_palette_get_drop_group (GtkToolPalette *palette,gint x,gint y);
Gets the group at position (x, y).
Parameters
palette  | 
           ||
x  | 
           the x position  | 
           |
y  | 
           the y position  | 
           
Returns
the GtkToolItemGroup at position or NULL if there is no such group.
[nullable][transfer none]
Since: 2.20
gtk_tool_palette_get_drop_item ()
GtkToolItem * gtk_tool_palette_get_drop_item (GtkToolPalette *palette,gint x,gint y);
Gets the item at position (x, y). See gtk_tool_palette_get_drop_group().
Parameters
palette  | 
           ||
x  | 
           the x position  | 
           |
y  | 
           the y position  | 
           
Since: 2.20
gtk_tool_palette_set_drag_source ()
void gtk_tool_palette_set_drag_source (GtkToolPalette *palette,GtkToolPaletteDragTargets targets);
Sets the tool palette as a drag source. Enables all groups and items in the tool palette as drag sources on button 1 and button 3 press with copy and move actions. See gtk_drag_source_set().
Parameters
palette  | 
           ||
targets  | 
           the GtkToolPaletteDragTargets which the widget should support  | 
           
Since: 2.20
gtk_tool_palette_get_hadjustment ()
GtkAdjustment *
gtk_tool_palette_get_hadjustment (GtkToolPalette *palette);
     gtk_tool_palette_get_hadjustment has been deprecated since version 3.0 and should not be used in newly-written code.
Gets the horizontal adjustment of the tool palette.
Parameters
palette  | 
           
Returns
the horizontal adjustment of palette .
[transfer none]
Since: 2.20
gtk_tool_palette_get_vadjustment ()
GtkAdjustment *
gtk_tool_palette_get_vadjustment (GtkToolPalette *palette);
     gtk_tool_palette_get_vadjustment has been deprecated since version 3.0 and should not be used in newly-written code.
Gets the vertical adjustment of the tool palette.
Parameters
palette  | 
           
Returns
the vertical adjustment of palette .
[transfer none]
Since: 2.20
Types and Values
struct GtkToolPalette
struct GtkToolPalette;
     This should not be accessed directly. Use the accessor functions below.
struct GtkToolPaletteClass
struct GtkToolPaletteClass {
  GtkContainerClass parent_class;
};
     Members
enum GtkToolPaletteDragTargets
Flags used to specify the supported drag targets.
Members
GTK_TOOL_PALETTE_DRAG_ITEMS  | 
           Support drag of items.  | 
           |
GTK_TOOL_PALETTE_DRAG_GROUPS  | 
           Support drag of groups.  | 
           
Property Details
The “icon-size” property
       “icon-size”                GtkIconSize
     The size of the icons in a tool palette. When this property is set, it overrides the default setting.
This should only be used for special-purpose tool palettes, normal application tool palettes should respect the user preferences for the size of icons.
Owner: GtkToolPalette
Flags: Read / Write
Default value: GTK_ICON_SIZE_SMALL_TOOLBAR
Since: 2.20
The “icon-size-set” property
       “icon-size-set”            gboolean
     Is TRUE if the “icon-size” property has been set.
Owner: GtkToolPalette
Flags: Read / Write
Default value: FALSE
Since: 2.20
The “toolbar-style” property
       “toolbar-style”            GtkToolbarStyle
     The style of items in the tool palette.
Owner: GtkToolPalette
Flags: Read / Write
Default value: GTK_TOOLBAR_ICONS
Since: 2.20
Child Property Details
The “exclusive” child property
       “exclusive”                gboolean
     Whether the item group should be the only one that is expanded at a given time.
Owner: GtkToolPalette
Flags: Read / Write
Default value: FALSE
Since: 2.20
The “expand” child property
       “expand”                   gboolean
     Whether the item group should receive extra space when the palette grows. at a given time.
Owner: GtkToolPalette
Flags: Read / Write
Default value: FALSE
Since: 2.20
© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
 https://developer.gnome.org/gtk3/3.24/GtkToolPalette.html