gtkToolPaletteNew(show = TRUE)
gtkToolPaletteGetExclusive(object, group)
gtkToolPaletteSetExclusive(object, group, exclusive)
gtkToolPaletteGetExpand(object, group)
gtkToolPaletteSetExpand(object, group, expand)
gtkToolPaletteGetGroupPosition(object, group)
gtkToolPaletteSetGroupPosition(object, group, position)
gtkToolPaletteGetIconSize(object)
gtkToolPaletteSetIconSize(object, icon.size)
gtkToolPaletteUnsetIconSize(object)
gtkToolPaletteGetStyle(object)
gtkToolPaletteSetStyle(object, style)
gtkToolPaletteUnsetStyle(object)
gtkToolPaletteAddDragDest(object, widget, flags, targets, actions)
gtkToolPaletteGetDragItem(object, selection)
gtkToolPaletteGetDragTargetGroup()
gtkToolPaletteGetDragTargetItem()
gtkToolPaletteGetDropGroup(object, x, y)
gtkToolPaletteGetDropItem(object, x, y)
gtkToolPaletteSetDragSource(object, targets)
gtkToolPaletteGetHadjustment(object)
gtkToolPaletteGetVadjustment(object)
gtkToolPalette(show = TRUE)
GtkBuildable
and GtkOrientable
.GtkToolPalette
allows you to add GtkToolItem
s to a palette-like
container with different categories and drag and drop support.
A GtkToolPalette
is created with a call to gtkToolPaletteNew
.
GtkToolItem
s 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 gtkContainerAdd
.
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_from_stock (GTK_STOCK_OK);
gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
The easiest way to use drag and drop with GtkToolPalette
is to call
gtkToolPaletteAddDragDest
with the desired drag source palette
and the desired drag target widget
. Then gtkToolPaletteGetDragItem
can be used to get the dragged item in the
/ * Get the dragged item * / palette = gtk_widget_get_ancestor (gtk_drag_get_source_widget (context), GTK_TYPE_TOOL_PALETTE); if (palette != NULL) item = gtk_tool_palette_get_drag_item (GTK_TOOL_PALETTE (palette), selection);
/ * Do something with item * / }
GtkWidget *target, palette;
palette = gtk_tool_palette_new (); target = gtk_drawing_area_new ();
g_signal_connect (G_OBJECT (target), "drag-data-received", G_CALLBACK (passive_canvas_drag_data_received), NULL); gtk_tool_palette_add_drag_dest (GTK_TOOL_PALETTE (palette), target, GTK_DEST_DEFAULT_ALL, GTK_TOOL_PALETTE_DRAG_ITEMS, GDK_ACTION_COPY);
gtkToolPalette
is the equivalent of gtkToolPaletteNew
.