Gtk.Tool_Palette

Entities

Simple Types

Tagged Types

Access Types

Constants

Subprograms

Generic Instantiations

Description

A Gtk.Tool_Palette.Gtk_Tool_Palette allows you to add Gtk_Tool_Items 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_Items 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 (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);

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

# CSS nodes

GtkToolPalette has a single CSS node named toolpalette.

"+"

function "+"
  (Widget : access Gtk_Tool_Palette_Record'Class)
return Gtk.Buildable.Gtk_Buildable
Parameters
Widget
Return Value

"+"

function "+"
  (Widget : access Gtk_Tool_Palette_Record'Class)
return Gtk.Orientable.Gtk_Orientable
Parameters
Widget
Return Value

"+"

function "+"
  (Widget : access Gtk_Tool_Palette_Record'Class)
return Gtk.Scrollable.Gtk_Scrollable
Parameters
Widget
Return Value

"-"

function "-"
  (Interf : Gtk.Buildable.Gtk_Buildable)
return Gtk_Tool_Palette
Parameters
Interf
Return Value

"-"

function "-"
  (Interf : Gtk.Orientable.Gtk_Orientable)
return Gtk_Tool_Palette
Parameters
Interf
Return Value

"-"

function "-"
  (Interf : Gtk.Scrollable.Gtk_Scrollable)
return Gtk_Tool_Palette
Parameters
Interf
Return Value

Add_Drag_Dest

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)

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. Since: gtk+ 2.20

Parameters
Self
Widget

a Gtk.Widget.Gtk_Widget which should be a drag destination for Palette

Flags

the flags that specify what actions GTK+ should take for drops on that widget

Targets

the Gtk.Tool_Palette.Gtk_Tool_Palette_Drag_Targets which the widget should support

Actions

the Gdk_Drag_Actions which the widget should suppport

Dest_Default_All

Dest_Default_All : constant Gtk_Dest_Defaults := 7;

Dest_Default_Drop

Dest_Default_Drop : constant Gtk_Dest_Defaults := 4;

Dest_Default_Highlight

Dest_Default_Highlight : constant Gtk_Dest_Defaults := 2;

Dest_Default_Motion

Dest_Default_Motion : constant Gtk_Dest_Defaults := 1;

Get_Border

function Get_Border
   (Self   : not null access Gtk_Tool_Palette_Record;
    Border : access Gtk.Style.Gtk_Border) return Boolean
Parameters
Self
Border
Return Value

Get_Drag_Item

function Get_Drag_Item
   (Self      : not null access Gtk_Tool_Palette_Record;
    Selection : Gtk.Selection_Data.Gtk_Selection_Data)
    return Gtk.Widget.Gtk_Widget

Get the dragged item from the selection. This could be a Gtk.Tool_Item.Gtk_Tool_Item or a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group. Since: gtk+ 2.20

Parameters
Self
Selection

a Gtk.Selection_Data.Gtk_Selection_Data

Return Value

the dragged item in selection

Get_Drag_Target_Group

function Get_Drag_Target_Group return Gtk.Target_Entry.Gtk_Target_Entry

Get the target entry for a dragged Gtk.Tool_Item_Group.Gtk_Tool_Item_Group. Since: gtk+ 2.20

Return Value

the Gtk.Target_Entry.Gtk_Target_Entry for a dragged group

Get_Drag_Target_Item

function Get_Drag_Target_Item return Gtk.Target_Entry.Gtk_Target_Entry

Gets the target entry for a dragged Gtk.Tool_Item.Gtk_Tool_Item. Since: gtk+ 2.20

Return Value

the Gtk.Target_Entry.Gtk_Target_Entry for a dragged item.

Get_Drop_Group

function Get_Drop_Group
   (Self : not null access Gtk_Tool_Palette_Record;
    X    : Glib.Gint;
    Y    : Glib.Gint) return Gtk.Tool_Item_Group.Gtk_Tool_Item_Group

Gets the group at position (x, y). Since: gtk+ 2.20

Parameters
Self
X

the x position

Y

the y position

Return Value

the Gtk.Tool_Item_Group.Gtk_Tool_Item_Group at position or null if there is no such group

Get_Drop_Item

function Get_Drop_Item
   (Self : not null access Gtk_Tool_Palette_Record;
    X    : Glib.Gint;
    Y    : Glib.Gint) return Gtk.Tool_Item.Gtk_Tool_Item

Gets the item at position (x, y). See Gtk.Tool_Palette.Get_Drop_Group. Since: gtk+ 2.20

Parameters
Self
X

the x position

Y

the y position

Return Value

the Gtk.Tool_Item.Gtk_Tool_Item at position or null if there is no such item

Get_Exclusive

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

Gets whether Group is exclusive or not. See Gtk.Tool_Palette.Set_Exclusive. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which is a child of palette

Return Value

True if Group is exclusive

Get_Expand

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

Gets whether group should be given extra space. See Gtk.Tool_Palette.Set_Expand. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which is a child of palette

Return Value

True if group should be given extra space, False otherwise

Get_Group_Position

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 Glib.Gint

Gets the position of Group in Palette as index. See Gtk.Tool_Palette.Set_Group_Position. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group

Return Value

the index of group or -1 if Group is not a child of Palette

Get_Hadjustment

function Get_Hadjustment
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Adjustment.Gtk_Adjustment
Parameters
Self
Return Value

Get_Hscroll_Policy

function Get_Hscroll_Policy
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Enums.Gtk_Scrollable_Policy
Parameters
Self
Return Value

Get_Icon_Size

function Get_Icon_Size
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Enums.Gtk_Icon_Size

Gets the size of icons in the tool palette. See Gtk.Tool_Palette.Set_Icon_Size. Since: gtk+ 2.20

Parameters
Self
Return Value

the Gtk.Enums.Gtk_Icon_Size of icons in the tool palette

Get_Orientation

function Get_Orientation
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Enums.Gtk_Orientation
Parameters
Self
Return Value

Get_Style

function Get_Style
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Enums.Gtk_Toolbar_Style

Gets the style (icons, text or both) of items in the tool palette. Since: gtk+ 2.20

Parameters
Self
Return Value

the Gtk.Enums.Gtk_Toolbar_Style of items in the tool palette.

Get_Type

function Get_Type return Glib.GType
Return Value

Get_Vadjustment

function Get_Vadjustment
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Adjustment.Gtk_Adjustment
Parameters
Self
Return Value

Get_Vscroll_Policy

function Get_Vscroll_Policy
   (Self : not null access Gtk_Tool_Palette_Record)
    return Gtk.Enums.Gtk_Scrollable_Policy
Parameters
Self
Return Value

Gtk_Dest_Defaults

type Gtk_Dest_Defaults is mod 2 ** Integer'Size;

The Gtk.Tool_Palette.Gtk_Dest_Defaults enumeration specifies the various types of action that will be taken on behalf of the user for a drag destination site.

Gtk_Dest_Defaults_Properties

package Gtk_Dest_Defaults_Properties is
   new Generic_Internal_Discrete_Property (Gtk_Dest_Defaults);

Gtk_New

procedure Gtk_New (Self : out Gtk_Tool_Palette)

Creates a new tool palette. Since: gtk+ 2.20 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Self

Gtk_Tool_Palette

type Gtk_Tool_Palette is access all Gtk_Tool_Palette_Record'Class;

Gtk_Tool_Palette_Drag_Targets

type Gtk_Tool_Palette_Drag_Targets is mod 2 ** Integer'Size;

Flags used to specify the supported drag targets.

Gtk_Tool_Palette_Drag_Targets_Properties

package Gtk_Tool_Palette_Drag_Targets_Properties is
   new Generic_Internal_Discrete_Property (Gtk_Tool_Palette_Drag_Targets);

Gtk_Tool_Palette_New

function Gtk_Tool_Palette_New return Gtk_Tool_Palette

Creates a new tool palette. Since: gtk+ 2.20

Return Value

Gtk_Tool_Palette_Record

type Gtk_Tool_Palette_Record is new Gtk_Container_Record with null record;

Icon_Size_Property

Icon_Size_Property : constant Gtk.Enums.Property_Gtk_Icon_Size;

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.

Icon_Size_Set_Property

Icon_Size_Set_Property : constant Glib.Properties.Property_Boolean;

Is True if the Gtk.Tool_Palette.Gtk_Tool_Palette:icon-size property has been set.

Implements_Gtk_Buildable

package Implements_Gtk_Buildable is new Glib.Types.Implements
  (Gtk.Buildable.Gtk_Buildable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);

Implements_Gtk_Orientable

package Implements_Gtk_Orientable is new Glib.Types.Implements
  (Gtk.Orientable.Gtk_Orientable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);

Implements_Gtk_Scrollable

package Implements_Gtk_Scrollable is new Glib.Types.Implements
  (Gtk.Scrollable.Gtk_Scrollable, Gtk_Tool_Palette_Record, Gtk_Tool_Palette);

Initialize

procedure Initialize
   (Self : not null access Gtk_Tool_Palette_Record'Class)

Creates a new tool palette. Since: gtk+ 2.20 Initialize does nothing if the object was already created with another call to Initialize* or G_New.

Parameters
Self

Property_Gtk_Dest_Defaults

type Property_Gtk_Dest_Defaults is new Gtk_Dest_Defaults_Properties.Property;

Property_Gtk_Tool_Palette_Drag_Targets

type Property_Gtk_Tool_Palette_Drag_Targets is new Gtk_Tool_Palette_Drag_Targets_Properties.Property;

Set_Drag_Source

procedure Set_Drag_Source
   (Self    : not null access Gtk_Tool_Palette_Record;
    Targets : Gtk_Tool_Palette_Drag_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. Since: gtk+ 2.20

Parameters
Self
Targets

the Gtk.Tool_Palette.Gtk_Tool_Palette_Drag_Targets which the widget should support

Set_Exclusive

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)

Sets whether the group should be exclusive or not. If an exclusive group is expanded all other groups are collapsed. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which is a child of palette

Exclusive

whether the group should be exclusive or not

Set_Expand

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)

Sets whether the group should be given extra space. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which is a child of palette

Expand

whether the group should be given extra space

Set_Group_Position

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 : Glib.Gint)

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. Since: gtk+ 2.20

Parameters
Self
Group

a Gtk.Tool_Item_Group.Gtk_Tool_Item_Group which is a child of palette

Position

a new index for group

Set_Hadjustment

procedure Set_Hadjustment
   (Self        : not null access Gtk_Tool_Palette_Record;
    Hadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class)
Parameters
Self
Hadjustment

Set_Hscroll_Policy

procedure Set_Hscroll_Policy
   (Self   : not null access Gtk_Tool_Palette_Record;
    Policy : Gtk.Enums.Gtk_Scrollable_Policy)
Parameters
Self
Policy

Set_Icon_Size

procedure Set_Icon_Size
   (Self      : not null access Gtk_Tool_Palette_Record;
    Icon_Size : Gtk.Enums.Gtk_Icon_Size)

Sets the size of icons in the tool palette. Since: gtk+ 2.20

Parameters
Self
Icon_Size

the Gtk.Enums.Gtk_Icon_Size that icons in the tool palette shall have

Set_Orientation

procedure Set_Orientation
   (Self        : not null access Gtk_Tool_Palette_Record;
    Orientation : Gtk.Enums.Gtk_Orientation)
Parameters
Self
Orientation

Set_Style

procedure Set_Style
   (Self  : not null access Gtk_Tool_Palette_Record;
    Style : Gtk.Enums.Gtk_Toolbar_Style)

Sets the style (text, icons or both) of items in the tool palette. Since: gtk+ 2.20

Parameters
Self
Style

the Gtk.Enums.Gtk_Toolbar_Style that items in the tool palette shall have

Set_Vadjustment

procedure Set_Vadjustment
   (Self        : not null access Gtk_Tool_Palette_Record;
    Vadjustment : access Gtk.Adjustment.Gtk_Adjustment_Record'Class)
Parameters
Self
Vadjustment

Set_Vscroll_Policy

procedure Set_Vscroll_Policy
   (Self   : not null access Gtk_Tool_Palette_Record;
    Policy : Gtk.Enums.Gtk_Scrollable_Policy)
Parameters
Self
Policy

Tool_Palette_Drag_Groups

Tool_Palette_Drag_Groups : constant Gtk_Tool_Palette_Drag_Targets := 2;

Tool_Palette_Drag_Items

Tool_Palette_Drag_Items : constant Gtk_Tool_Palette_Drag_Targets := 1;

Toolbar_Style_Property

Toolbar_Style_Property : constant Gtk.Enums.Property_Gtk_Toolbar_Style;

The style of items in the tool palette.

Unset_Icon_Size

procedure Unset_Icon_Size
   (Self : not null access Gtk_Tool_Palette_Record)

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. Since: gtk+ 2.20

Parameters
Self

Unset_Style

procedure Unset_Style (Self : not null access Gtk_Tool_Palette_Record)

Unsets a toolbar style set with Gtk.Tool_Palette.Set_Style, so that user preferences will be used to determine the toolbar style. Since: gtk+ 2.20

Parameters
Self