Learn R Programming

RGtk2 (version 2.20.1)

GtkToolPalette: GtkToolPalette

Description

A tool palette with categories

Arguments

Methods and Functions

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)

Hierarchy

GObject +----GInitiallyUnowned +----GtkObject +----GtkWidget +----GtkContainer +----GtkToolPalette

Interfaces

GtkToolPalette implements AtkImplementorIface, GtkBuildable and GtkOrientable.

Detailed 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 gtkToolPaletteNew. 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 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 "drag-data-received" signal handler of the drag target. static void passive_canvas_drag_data_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection, guint info, guint time, gpointer data) { GtkWidget *palette; GtkWidget *item;

/ * 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);

Convenient Construction

gtkToolPalette is the equivalent of gtkToolPaletteNew.

References

http://library.gnome.org/devel//gtk/GtkToolPalette.html