Index

Package: Color_Selection

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

gtk-colorsel.png

Classes

Gtk_Color_Selection_Record

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

Ancestors:

Primitive operations:

Get_Current_Alpha
Get_Current_Color
Get_Has_Opacity_Control
Get_Has_Palette
Get_Previous_Alpha
Get_Previous_Color
Glib.Object.Deallocate (Inherited)
Glib.Object.Get_Type (Inherited)
Glib.Object.Notify (Inherited)
Glib.Object.Ref (Inherited)
Glib.Object.Ref_Sink (Inherited)
Glib.Object.Unref (Inherited)
Gtk.Box.Get_Child (Inherited)
Gtk.Box.Get_Homogeneous (Inherited)
Gtk.Box.Get_Orientation (Inherited)
Gtk.Box.Get_Spacing (Inherited)
Gtk.Box.Pack_End (Inherited)
Gtk.Box.Pack_End_Defaults (Inherited)
Gtk.Box.Pack_Start (Inherited)
Gtk.Box.Pack_Start_Defaults (Inherited)
Gtk.Box.Query_Child_Packing (Inherited)
Gtk.Box.Reorder_Child (Inherited)
Gtk.Box.Set_Child_Packing (Inherited)
Gtk.Box.Set_Homogeneous (Inherited)
Gtk.Box.Set_Orientation (Inherited)
Gtk.Box.Set_Spacing (Inherited)
Gtk.Container.Add (Inherited)
Gtk.Container.Check_Resize (Inherited)
Gtk.Container.Child_Get_Property (Inherited)
Gtk.Container.Child_Set_Property (Inherited)
Gtk.Container.Child_Type (Inherited)
Gtk.Container.Forall (Inherited)
Gtk.Container.Foreach (Inherited)
Gtk.Container.Get_Border_Width (Inherited)
Gtk.Container.Get_Children (Inherited)
Gtk.Container.Get_Focus_Chain (Inherited)
Gtk.Container.Get_Focus_Child (Inherited)
Gtk.Container.Get_Focus_Hadjustment (Inherited)
Gtk.Container.Get_Focus_Vadjustment (Inherited)
Gtk.Container.Get_Resize_Mode (Inherited)
Gtk.Container.Propagate_Expose (Inherited)
Gtk.Container.Remove (Inherited)
Gtk.Container.Resize_Children (Inherited)
Gtk.Container.Set_Border_Width (Inherited)
Gtk.Container.Set_Focus_Chain (Inherited)
Gtk.Container.Set_Focus_Child (Inherited)
Gtk.Container.Set_Focus_Hadjustment (Inherited)
Gtk.Container.Set_Focus_Vadjustment (Inherited)
Gtk.Container.Set_Reallocate_Redraws (Inherited)
Gtk.Container.Set_Resize_Mode (Inherited)
Gtk.Container.Unset_Focus_Chain (Inherited)
Gtk.Widget.Activate (Inherited)
Gtk.Widget.Add_Accelerator (Inherited)
Gtk.Widget.Add_Events (Inherited)
Gtk.Widget.Add_Mnemonic_Label (Inherited)
Gtk.Widget.Can_Activate_Accel (Inherited)
Gtk.Widget.Child_Notify (Inherited)
Gtk.Widget.Class_Path (Inherited)
Gtk.Widget.Class_Path_Reversed (Inherited)
Gtk.Widget.Create_Pango_Context (Inherited)
Gtk.Widget.Create_Pango_Layout (Inherited)
Gtk.Widget.Destroy (Inherited)
Gtk.Widget.Draw (Inherited)
Gtk.Widget.Ensure_Style (Inherited)
Gtk.Widget.Error_Bell (Inherited)
Gtk.Widget.Flag_Is_Set (Inherited)
Gtk.Widget.Flags (Inherited)
Gtk.Widget.Freeze_Child_Notify (Inherited)
Gtk.Widget.Get_Allocation_Height (Inherited)
Gtk.Widget.Get_Allocation_Width (Inherited)
Gtk.Widget.Get_Allocation_X (Inherited)
Gtk.Widget.Get_Allocation_Y (Inherited)
Gtk.Widget.Get_Ancestor (Inherited)
Gtk.Widget.Get_Child_Requisition (Inherited)
Gtk.Widget.Get_Child_Visible (Inherited)
Gtk.Widget.Get_Colormap (Inherited)
Gtk.Widget.Get_Composite_Name (Inherited)
Gtk.Widget.Get_Direction (Inherited)
Gtk.Widget.Get_Events (Inherited)
Gtk.Widget.Get_Extension_Events (Inherited)
Gtk.Widget.Get_Has_Tooltip (Inherited)
Gtk.Widget.Get_Name (Inherited)
Gtk.Widget.Get_No_Show_All (Inherited)
Gtk.Widget.Get_Pango_Context (Inherited)
Gtk.Widget.Get_Parent (Inherited)
Gtk.Widget.Get_Parent_Window (Inherited)
Gtk.Widget.Get_Pointer (Inherited)
Gtk.Widget.Get_Root_Window (Inherited)
Gtk.Widget.Get_Size_Request (Inherited)
Gtk.Widget.Get_Snapshot (Inherited)
Gtk.Widget.Get_State (Inherited)
Gtk.Widget.Get_Style (Inherited)
Gtk.Widget.Get_Tooltip_Markup (Inherited)
Gtk.Widget.Get_Tooltip_Text (Inherited)
Gtk.Widget.Get_Tooltip_Window (Inherited)
Gtk.Widget.Get_Toplevel (Inherited)
Gtk.Widget.Get_Visual (Inherited)
Gtk.Widget.Get_Window (Inherited)
Gtk.Widget.Grab_Default (Inherited)
Gtk.Widget.Grab_Focus (Inherited)
Gtk.Widget.Has_Screen (Inherited)
Gtk.Widget.Hide (Inherited)
Gtk.Widget.Hide_All (Inherited)
Gtk.Widget.Input_Shape_Combine_Mask (Inherited)
Gtk.Widget.Intersect (Inherited)
Gtk.Widget.Is_Ancestor (Inherited)
Gtk.Widget.Is_Composited (Inherited)
Gtk.Widget.Is_Focus (Inherited)
Gtk.Widget.Keynav_Failed (Inherited)
Gtk.Widget.List_Mnemonic_Labels (Inherited)
Gtk.Widget.Map (Inherited)
Gtk.Widget.Mnemonic_Activate (Inherited)
Gtk.Widget.Modify_Base (Inherited)
Gtk.Widget.Modify_Bg (Inherited)
Gtk.Widget.Modify_Cursor (Inherited)
Gtk.Widget.Modify_Fg (Inherited)
Gtk.Widget.Modify_Font (Inherited)
Gtk.Widget.Modify_Text (Inherited)
Gtk.Widget.Path (Inherited)
Gtk.Widget.Path_Reversed (Inherited)
Gtk.Widget.Queue_Clear (Inherited)
Gtk.Widget.Queue_Clear_Area (Inherited)
Gtk.Widget.Queue_Draw (Inherited)
Gtk.Widget.Queue_Draw_Area (Inherited)
Gtk.Widget.Queue_Resize (Inherited)
Gtk.Widget.Queue_Resize_No_Redraw (Inherited)
Gtk.Widget.Realize (Inherited)
Gtk.Widget.Region_Intersect (Inherited)
Gtk.Widget.Remove_Accelerator (Inherited)
Gtk.Widget.Remove_Mnemonic_Label (Inherited)
Gtk.Widget.Render_Icon (Inherited)
Gtk.Widget.Reparent (Inherited)
Gtk.Widget.Reset_Rc_Styles (Inherited)
Gtk.Widget.Reset_Shapes (Inherited)
Gtk.Widget.Restore_Default_Style (Inherited)
Gtk.Widget.Send_Expose (Inherited)
Gtk.Widget.Set_Accel_Path (Inherited)
Gtk.Widget.Set_App_Paintable (Inherited)
Gtk.Widget.Set_Child_Visible (Inherited)
Gtk.Widget.Set_Colormap (Inherited)
Gtk.Widget.Set_Composite_Name (Inherited)
Gtk.Widget.Set_Direction (Inherited)
Gtk.Widget.Set_Double_Buffered (Inherited)
Gtk.Widget.Set_Events (Inherited)
Gtk.Widget.Set_Extension_Events (Inherited)
Gtk.Widget.Set_Flags (Inherited)
Gtk.Widget.Set_Has_Tooltip (Inherited)
Gtk.Widget.Set_Name (Inherited)
Gtk.Widget.Set_No_Show_All (Inherited)
Gtk.Widget.Set_Parent (Inherited)
Gtk.Widget.Set_Parent_Window (Inherited)
Gtk.Widget.Set_Redraw_On_Allocate (Inherited)
Gtk.Widget.Set_Scroll_Adjustments (Inherited)
Gtk.Widget.Set_Sensitive (Inherited)
Gtk.Widget.Set_Size_Request (Inherited)
Gtk.Widget.Set_State (Inherited)
Gtk.Widget.Set_Style (Inherited)
Gtk.Widget.Set_Tooltip_Markup (Inherited)
Gtk.Widget.Set_Tooltip_Text (Inherited)
Gtk.Widget.Set_Tooltip_Window (Inherited)
Gtk.Widget.Set_UPosition (Inherited)
Gtk.Widget.Set_USize (Inherited)
Gtk.Widget.Set_Window (Inherited)
Gtk.Widget.Shape_Combine_Mask (Inherited)
Gtk.Widget.Show (Inherited)
Gtk.Widget.Show_All (Inherited)
Gtk.Widget.Show_Now (Inherited)
Gtk.Widget.Size_Allocate (Inherited)
Gtk.Widget.Size_Request (Inherited)
Gtk.Widget.Style_Get_Property (Inherited)
Gtk.Widget.Thaw_Child_Notify (Inherited)
Gtk.Widget.Trigger_Tooltip_Query (Inherited)
Gtk.Widget.Unmap (Inherited)
Gtk.Widget.Unrealize (Inherited)
Gtk.Widget.Unset_Flags (Inherited)
Is_Adjusting
Set_Current_Alpha
Set_Current_Color
Set_Has_Opacity_Control
Set_Has_Palette
Set_Previous_Alpha
Set_Previous_Color
Set_Update_Policy

Types

Gtk_Color_Selection

type Gtk_Color_Selection is access all Gtk_Color_Selection_Record'Class;

Color_Index

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

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

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 (Glib.Properties.Property_Uint)

Current_Alpha_Property       : constant Glib.Properties.Property_Uint;
Current_Color_Property : constant Glib.Properties.Property_Boxed;

Has_Opacity_Control_Property (Glib.Properties.Property_Boolean)

Has_Opacity_Control_Property : constant Glib.Properties.Property_Boolean;
Current_Color_Property : constant Glib.Properties.Property_Boxed;

Has_Palette_Property (Glib.Properties.Property_Boolean)

Has_Palette_Property         : constant Glib.Properties.Property_Boolean;

Signal_Color_Changed (Glib.Signal_Name)

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

Subprograms & Entries

Gtk_New

procedure Gtk_New 
(Widget: out Gtk_Color_Selection);

Initialize

procedure Initialize 
(Widget: access Gtk_Color_Selection_Record'Class);
Creates or initiailizes a new color selection widget.

Get_Type

function Get_Type return Glib.GType;
Return the internal value associated with a Gtk_Color_Selection.

Set_Current_Color

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

Get_Current_Color

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

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

Get_Previous_Color

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

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

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

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

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

Get_Has_Opacity_Control

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

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

Get_Previous_Alpha

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

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

Get_Current_Alpha

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

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

Get_Has_Palette

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

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

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

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

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

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

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.