## Documentation

Table of Contents
Class Inheritance Tree
Widget Screenshots
Package groups

## Index

Package: Color_Selection

- Goto spec source

# Description

    package Gtk.Color_Selection is

A Gtk_Color_Selection widget is a complex dialog that allows the user to select a color based either on its (Red, Green, Blue) or its (Hue, Saturation, Value).

An additional field is provided to select the opacity of the color (this is usually called the alpha channel).

See Gtk.Color_Selection_Dialog for a version of this widget that comes with its own dialog.

See Gtk.Extra.Color_Combo for a different way to select colors.

Binding from C File version 2.8.17

<testgtk>create_color_selection.adb</testgtk>

### Screenshot

# Classes

### Gtk_Color_Selection_Record

- Goto declaration in source
- Goto full declaration in source

    type Gtk_Color_Selection_Record is new Gtk.Box.Gtk_Box_Record with private;

#### Ancestors:

Gtk.Box.Gtk_Box_Record
Gtk.Container.Gtk_Container_Record
Gtk.Widget.Gtk_Widget_Record
Glib.Object.GObject_Record

#### Primitive operations:

Get_Color

- To API doc
- To spec

Get_Current_Alpha

- To API doc
- To spec

Get_Current_Color

- To API doc
- To spec

Get_Has_Opacity_Control

- To API doc
- To spec

Get_Has_Palette

- To API doc
- To spec

Get_Previous_Alpha

- To API doc
- To spec

Get_Previous_Color

- To API doc
- To spec

Glib.Object.Deallocate

- To API doc
- To spec

(Inherited)
Glib.Object.Get_Type

- To API doc
- To spec

(Inherited)
Glib.Object.Notify

- To API doc
- To spec

(Inherited)
Glib.Object.Ref

- To API doc
- To spec

(Inherited)
Glib.Object.Ref_Sink

- To API doc
- To spec

(Inherited)
Glib.Object.Unref

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Child

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Homogeneous

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Orientation

- To API doc
- To spec

(Inherited)
Gtk.Box.Get_Spacing

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_End

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_End_Defaults

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_Start

- To API doc
- To spec

(Inherited)
Gtk.Box.Pack_Start_Defaults

- To API doc
- To spec

(Inherited)
Gtk.Box.Query_Child_Packing

- To API doc
- To spec

(Inherited)
Gtk.Box.Reorder_Child

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Child_Packing

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Homogeneous

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Orientation

- To API doc
- To spec

(Inherited)
Gtk.Box.Set_Spacing

- To API doc
- To spec

(Inherited)
Gtk.Container.Add

- To API doc
- To spec

(Inherited)
Gtk.Container.Check_Resize

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Set_Property

- To API doc
- To spec

(Inherited)
Gtk.Container.Child_Type

- To API doc
- To spec

(Inherited)
Gtk.Container.Forall

- To API doc
- To spec

(Inherited)
Gtk.Container.Foreach

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Get_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Propagate_Expose

- To API doc
- To spec

(Inherited)
Gtk.Container.Remove

- To API doc
- To spec

(Inherited)
Gtk.Container.Resize_Children

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Border_Width

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Child

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Hadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Focus_Vadjustment

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Reallocate_Redraws

- To API doc
- To spec

(Inherited)
Gtk.Container.Set_Resize_Mode

- To API doc
- To spec

(Inherited)
Gtk.Container.Unset_Focus_Chain

- To API doc
- To spec

(Inherited)
Gtk.Widget.Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Add_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Can_Activate_Accel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Class_Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Create_Pango_Layout

- To API doc
- To spec

(Inherited)
Gtk.Widget.Destroy

- To API doc
- To spec

(Inherited)
Gtk.Widget.Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Ensure_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Error_Bell

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flag_Is_Set

- To API doc
- To spec

(Inherited)
Gtk.Widget.Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Freeze_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Height

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Width

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_X

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Allocation_Y

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Requisition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pango_Context

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Pointer

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Root_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Snapshot

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Toplevel

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Visual

- To API doc
- To spec

(Inherited)
Gtk.Widget.Get_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Default

- To API doc
- To spec

(Inherited)
Gtk.Widget.Grab_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Has_Screen

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide

- To API doc
- To spec

(Inherited)
Gtk.Widget.Hide_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Input_Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Ancestor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Composited

- To API doc
- To spec

(Inherited)
Gtk.Widget.Is_Focus

- To API doc
- To spec

(Inherited)
Gtk.Widget.Keynav_Failed

- To API doc
- To spec

(Inherited)
Gtk.Widget.List_Mnemonic_Labels

- To API doc
- To spec

(Inherited)
Gtk.Widget.Map

- To API doc
- To spec

(Inherited)
Gtk.Widget.Mnemonic_Activate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Base

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Bg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Cursor

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Fg

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Font

- To API doc
- To spec

(Inherited)
Gtk.Widget.Modify_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Path_Reversed

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Clear_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Draw_Area

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Queue_Resize_No_Redraw

- To API doc
- To spec

(Inherited)
Gtk.Widget.Realize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Region_Intersect

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Accelerator

- To API doc
- To spec

(Inherited)
Gtk.Widget.Remove_Mnemonic_Label

- To API doc
- To spec

(Inherited)
Gtk.Widget.Render_Icon

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reparent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Rc_Styles

- To API doc
- To spec

(Inherited)
Gtk.Widget.Reset_Shapes

- To API doc
- To spec

(Inherited)
Gtk.Widget.Restore_Default_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Send_Expose

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Accel_Path

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_App_Paintable

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Child_Visible

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Colormap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Composite_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Direction

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Double_Buffered

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Extension_Events

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Flags

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Has_Tooltip

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Name

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_No_Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Parent_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Redraw_On_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Scroll_Adjustments

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Sensitive

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_State

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Style

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Markup

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Text

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Tooltip_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_UPosition

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_USize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Set_Window

- To API doc
- To spec

(Inherited)
Gtk.Widget.Shape_Combine_Mask

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_All

- To API doc
- To spec

(Inherited)
Gtk.Widget.Show_Now

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Allocate

- To API doc
- To spec

(Inherited)
Gtk.Widget.Size_Request

- To API doc
- To spec

(Inherited)
Gtk.Widget.Style_Get_Property

- To API doc
- To spec

(Inherited)
Gtk.Widget.Thaw_Child_Notify

- To API doc
- To spec

(Inherited)
Gtk.Widget.Trigger_Tooltip_Query

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unmap

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unrealize

- To API doc
- To spec

(Inherited)
Gtk.Widget.Unset_Flags

- To API doc
- To spec

(Inherited)
Is_Adjusting

- To API doc
- To spec

Set_Color

- To API doc
- To spec

Set_Current_Alpha

- To API doc
- To spec

Set_Current_Color

- To API doc
- To spec

Set_Has_Opacity_Control

- To API doc
- To spec

Set_Has_Palette

- To API doc
- To spec

Set_Previous_Alpha

- To API doc
- To spec

Set_Previous_Color

- To API doc
- To spec

Set_Update_Policy

- To API doc
- To spec

# Types

### Gtk_Color_Selection

- Goto declaration in source

    type Gtk_Color_Selection is access all Gtk_Color_Selection_Record'Class;

### Color_Index

- Goto declaration in source

    type Color_Index is (Red, Green, Blue, Opacity);

Used as an index to the table used to set and get the currently selected color.

### Color_Array

- Goto declaration in source

    type Color_Array is array (Color_Index) of Gdouble;

Array that indicates the currently selected color. All the values are between 0.0 and 1.0 (a percentage value). They should be converted to absolute values before using them to create a new color, with the following piece of code: Absolute := To_Absolute (Color_Array (Index))

### Gtk_Color_Selection_Change_Palette_With_Screen_Func

- Goto declaration in source

    type Gtk_Color_Selection_Change_Palette_With_Screen_Func is access
         procedure (Screen : Gdk.Gdk_Screen;
                    Colors : Gdk.Color.Gdk_Color_Array);

This function should save the new palette contents, and update the Gtk_Settings property "gtk-color-palette" so all Gtk_Color_Selection widgets will be modified, including the current one. For instance, you would do: Set_String_Property (Get_Default, Gtk_Color_Palette, Palette_To_String (Colors), "Foo");

# Constants & Global variables

### Current_Alpha_Property

- Goto declaration in source

(Glib.Properties.Property_Uint)

    Current_Alpha_Property       : constant Glib.Properties.Property_Uint;

Current_Color_Property : constant Glib.Properties.Property_Boxed;

### Has_Opacity_Control_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Has_Opacity_Control_Property : constant Glib.Properties.Property_Boolean;

Current_Color_Property : constant Glib.Properties.Property_Boxed;

### Has_Palette_Property

- Goto declaration in source

(Glib.Properties.Property_Boolean)

    Has_Palette_Property         : constant Glib.Properties.Property_Boolean;

### Signal_Color_Changed

- Goto declaration in source

(Glib.Signal_Name)

    Signal_Color_Changed : constant Glib.Signal_Name := "color_changed";

# Subprograms & Entries

### Gtk_New

- Goto spec in source

    procedure Gtk_New (Widget: out Gtk_Color_Selection);

### Initialize

- Goto spec in source

    procedure Initialize (Widget: access Gtk_Color_Selection_Record'Class);

Creates or initiailizes a new color selection widget.

### Get_Type

- Goto spec in source
- Goto body in source

    function Get_Type return Glib.GType;

Return the internal value associated with a Gtk_Color_Selection.

### Set_Current_Color

- Goto spec in source

    procedure Set_Current_Color (Colorsel: access Gtk_Color_Selection_Record;Color: Gdk.Color.Gdk_Color);

### Get_Current_Color

- Goto spec in source

    procedure Get_Current_Color (Colorsel: access Gtk_Color_Selection_Record;Color: out Gdk.Color.Gdk_Color);

Set the current color of the Colorsel. When called for the first time, the original color will the set to Color as well.

### Set_Previous_Color

- Goto spec in source

    procedure Set_Previous_Color (Colorsel: access Gtk_Color_Selection_Record;Color: Gdk.Color.Gdk_Color);

### Get_Previous_Color

- Goto spec in source

    procedure Get_Previous_Color (Colorsel: access Gtk_Color_Selection_Record;Color: out Gdk.Color.Gdk_Color);

Set the previous color. This procedure should not be called without analysis, as it might seem confusing to see that color change. Calling Set_Current_Color for the first time will also set this color.

### Is_Adjusting

- Goto spec in source

    function Is_Adjusting (Colorsel: access Gtk_Color_Selection_Record) return Boolean;

Get the current state of the Colorsel. Return TRue if the user is currently dragging a color around, False if the selection has stopped.

### To_Absolute

- Goto spec in source

    function To_Absolute (Color: Gdouble) return Gushort;

Convert from a percentage value as returned by Get_Color to an absolute value as can be used with Gdk_Color.

### To_Percent

- Goto spec in source

    function To_Percent (Color: Gushort) return Gdouble;

Convert from an absolute value as used in Gdk_Color to a percentage value as used in Set_Color.

### Set_Has_Opacity_Control

- Goto spec in source

    procedure Set_Has_Opacity_Control (Colorsel: access Gtk_Color_Selection_Record;Has_Opacity: Boolean);

### Get_Has_Opacity_Control

- Goto spec in source

    function Get_Has_Opacity_Control (Colorsel: access Gtk_Color_Selection_Record) return Boolean;

Set the Colorsel to use or not use opacity. An additional field is displayed to select the opacity if needed.

### Set_Previous_Alpha

- Goto spec in source

    procedure Set_Previous_Alpha (Colorsel: access Gtk_Color_Selection_Record;Alpha: Guint16);

### Get_Previous_Alpha

- Goto spec in source

    function Get_Previous_Alpha (Colorsel: access Gtk_Color_Selection_Record) return Guint16;

Set the previous opacity to Alpha. This procedure should not be called without analysis, as it might seem confusing to see that value change.

### Set_Current_Alpha

- Goto spec in source

    procedure Set_Current_Alpha (Colorsel: access Gtk_Color_Selection_Record;Alpha: Guint16);

### Get_Current_Alpha

- Goto spec in source

    function Get_Current_Alpha (Colorsel: access Gtk_Color_Selection_Record) return Guint16;

Set the current opacity to be Alpha. When called for the first time, the original opacity will be set too.

### Set_Has_Palette

- Goto spec in source

    procedure Set_Has_Palette (Colorsel: access Gtk_Color_Selection_Record;Has_Palette: Boolean);

### Get_Has_Palette

- Goto spec in source

    function Get_Has_Palette (Colorsel: access Gtk_Color_Selection_Record) return Boolean;

If Has_Palette is True, then set the Colorsel to show the palette. Hide the palette otherwise.

### Palette_From_String

- Goto spec in source

    function Palette_From_String (Str: String) return Gdk.Color.Gdk_Color_Array;

Parses a color palette string; this string is a colon-separated list of color names readable by Gdk.Color.Parse. An empty array is returned if Str couldn't be parsed

### Palette_To_String

- Goto spec in source

    function Palette_To_String (Colors: Gdk.Color.Gdk_Color_Array) return String;

Encodes a palette as a string, useful for persistent storage.

### Set_Change_Palette_With_Screen_Hook

- Goto spec in source

    function Set_Change_Palette_With_Screen_Hook (Func: Gtk_Color_Selection_Change_Palette_With_Screen_Func) return Gtk_Color_Selection_Change_Palette_With_Screen_Func;

Installs a global function to be called whenever the user tries to modify the palette in a color selection. Return value: the previous change palette hook (that was replaced).

### Set_Update_Policy

- Goto spec in source

    procedure Set_Update_Policy (Colorsel: access Gtk_Color_Selection_Record;Policy: Enums.Gtk_Update_Type);

Set_Update_Policy Set the behavior of the scales used to select a value (red, green,...) Set Policy to Update_Continuous if you want to update the color continuously as the slider is mode, Update_Discontinuous to update the color only when the mouse is released and Update_Delayed to update when the mouse is released or has been motionless for a while.

### Set_Color

- Goto spec in source

    procedure Set_Color (Colorsel: access Gtk_Color_Selection_Record;Color: Color_Array);

Set_Color Modify the current color. Note that Color is an array of percentages, between 0.0 and 1.0, not absolute values.

### Get_Color

- Goto spec in source

    procedure Get_Color (Colorsel: access Gtk_Color_Selection_Record;Color: out Color_Array);

Get_Color Get the current color. Note that Color is an array of percentages, between 0.0 and 1.0, not absolute values.