package Gtk_Dest_Defaults_Properties is new Generic_Internal_Discrete_Property (Gtk_Dest_Defaults);
package Gtk_Tool_Palette_Drag_Targets_Properties is new Generic_Internal_Discrete_Property (Gtk_Tool_Palette_Drag_Targets);
package Implements_Gtk_Buildable is new Glib.Types.Implements (Gtk.Buildable.Gtk_Buildable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);
package Implements_Gtk_Orientable is new Glib.Types.Implements (Gtk.Orientable.Gtk_Orientable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);
package Implements_Gtk_Scrollable is new Glib.Types.Implements (Gtk.Scrollable.Gtk_Scrollable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);
type Gtk_Tool_Palette_Record is new Gtk_Container_Record with null record;
type Gtk_Tool_Palette is access all Gtk_Tool_Palette_Record'Class;
type Property_Gtk_Dest_Defaults is new Gtk_Dest_Defaults_Properties.Property;
type Property_Gtk_Tool_Palette_Drag_Targets is new Gtk_Tool_Palette_Drag_Targets_Properties.Property;
Dest_Default_Motion : constant Gtk_Dest_Defaults := 1;
Dest_Default_Highlight : constant Gtk_Dest_Defaults := 2;
Dest_Default_Drop : constant Gtk_Dest_Defaults := 4;
Dest_Default_All : constant Gtk_Dest_Defaults := 7;
Tool_Palette_Drag_Items : constant Gtk_Tool_Palette_Drag_Targets := 1;
Tool_Palette_Drag_Groups : constant Gtk_Tool_Palette_Drag_Targets := 2;
Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size;
Icon_Size_Set_Property : constant Glib.Properties.Property_Boolean;
Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style;
procedure Gtk_New
( | Self | : out Gtk_Tool_Palette); |
procedure Initialize
( | Self | : not null access Gtk_Tool_Palette_Record'Class); |
function Gtk_Tool_Palette_New return Gtk_Tool_Palette;
function Get_Type return Glib.GType;
procedure Add_Drag_Dest
( | Self | : not null access Gtk_Tool_Palette_Record; |
Widget | : not null access Gtk.Widget.Gtk_Widget_Record'Class; | |
Flags | : Gtk_Dest_Defaults; | |
Targets | : Gtk_Tool_Palette_Drag_Targets; | |
Actions | : Gdk.Drag_Contexts.Gdk_Drag_Action); |
function Get_Drag_Item
( | Self | : not null access Gtk_Tool_Palette_Record; |
Selection | : Gtk.Selection_Data.Gtk_Selection_Data) return Gtk.Widget.Gtk_Widget; |
function Get_Drop_Group
( | Self | : not null access Gtk_Tool_Palette_Record; |
X | : Gint; | |
Y | : Gint) return Gtk.Tool_Item_Group.Gtk_Tool_Item_Group; |
function Get_Drop_Item
( | Self | : not null access Gtk_Tool_Palette_Record; |
X | : Gint; | |
Y | : Gint) return Gtk.Tool_Item.Gtk_Tool_Item; |
function Get_Exclusive
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class) return Boolean; |
procedure Set_Exclusive
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class; | |
Exclusive | : Boolean); |
function Get_Expand
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class) return Boolean; |
procedure Set_Expand
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class; | |
Expand | : Boolean); |
function Get_Group_Position
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class) return Gint; |
procedure Set_Group_Position
( | Self | : not null access Gtk_Tool_Palette_Record; |
Group | : not null access Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record'Class; | |
Position | : Gint); |
function Get_Icon_Size
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Enums.Gtk_Icon_Size; |
procedure Set_Icon_Size
( | Self | : not null access Gtk_Tool_Palette_Record; |
Icon_Size | : Gtk.Enums.Gtk_Icon_Size); |
function Get_Style
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Enums.Gtk_Toolbar_Style; |
procedure Set_Style
( | Self | : not null access Gtk_Tool_Palette_Record; |
Style | : Gtk.Enums.Gtk_Toolbar_Style); |
procedure Set_Drag_Source
( | Self | : not null access Gtk_Tool_Palette_Record; |
Targets | : Gtk_Tool_Palette_Drag_Targets); |
procedure Unset_Icon_Size
( | Self | : not null access Gtk_Tool_Palette_Record); |
procedure Unset_Style
( | Self | : not null access Gtk_Tool_Palette_Record); |
function Get_Orientation
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Enums.Gtk_Orientation; |
procedure Set_Orientation
( | Self | : not null access Gtk_Tool_Palette_Record; |
Orientation | : Gtk.Enums.Gtk_Orientation); |
function Get_Hadjustment
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Adjustment.Gtk_Adjustment; |
procedure Set_Hadjustment
( | Self | : not null access Gtk_Tool_Palette_Record; |
Hadjustment | : access Gtk.Adjustment.Gtk_Adjustment_Record'Class); |
function Get_Hscroll_Policy
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Enums.Gtk_Scrollable_Policy; |
procedure Set_Hscroll_Policy
( | Self | : not null access Gtk_Tool_Palette_Record; |
Policy | : Gtk.Enums.Gtk_Scrollable_Policy); |
function Get_Vadjustment
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Adjustment.Gtk_Adjustment; |
procedure Set_Vadjustment
( | Self | : not null access Gtk_Tool_Palette_Record; |
Vadjustment | : access Gtk.Adjustment.Gtk_Adjustment_Record'Class); |
function Get_Vscroll_Policy
( | Self | : not null access Gtk_Tool_Palette_Record) return Gtk.Enums.Gtk_Scrollable_Policy; |
procedure Set_Vscroll_Policy
( | Self | : not null access Gtk_Tool_Palette_Record; |
Policy | : Gtk.Enums.Gtk_Scrollable_Policy); |
function Get_Drag_Target_Group return Gtk.Target_Entry.Gtk_Target_Entry;
function Get_Drag_Target_Item return Gtk.Target_Entry.Gtk_Target_Entry;
function "+"
( | Widget | : access Gtk_Tool_Palette_Record'Class) return Gtk.Buildable.Gtk_Buildable renames Implements_Gtk_Buildable.To_Interface; |
function "-"
( | Interf | : Gtk.Buildable.Gtk_Buildable) return Gtk_Tool_Palette renames Implements_Gtk_Buildable.To_Object; |
function "+"
( | Widget | : access Gtk_Tool_Palette_Record'Class) return Gtk.Orientable.Gtk_Orientable renames Implements_Gtk_Orientable.To_Interface; |
function "-"
( | Interf | : Gtk.Orientable.Gtk_Orientable) return Gtk_Tool_Palette renames Implements_Gtk_Orientable.To_Object; |
function "+"
( | Widget | : access Gtk_Tool_Palette_Record'Class) return Gtk.Scrollable.Gtk_Scrollable renames Implements_Gtk_Scrollable.To_Interface; |
function "-"
( | Interf | : Gtk.Scrollable.Gtk_Scrollable) return Gtk_Tool_Palette renames Implements_Gtk_Scrollable.To_Object; |
A Gtk.Tool_Palette.Gtk_Tool_Palette allows you to add Gtk.Tool_Item.Gtk_Tool_Item<!-- -->s to a palette-like container with different categories and drag and drop support.
A Gtk.Tool_Palette.Gtk_Tool_Palette is created with a call to Gtk.Tool_Palette.Gtk_New.
Gtk.Tool_Item.Gtk_Tool_Item<!-- -->s cannot be added directly to a Gtk.Tool_Palette.Gtk_Tool_Palette - instead they are added to a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which can than be added to a Gtk.Tool_Palette.Gtk_Tool_Palette. To add a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group to a Gtk.Tool_Palette.Gtk_Tool_Palette, use Gtk.Container.Add. |[ 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 Gtk.Tool_Palette.Gtk_Tool_Palette 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 Gtk.Widget.Gtk_Widget::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); ]|