------------------------------------------------------------------------------
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2014, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
-- Software Foundation; either version 3, or (at your option) any later --
-- version. This library is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- --
-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. --
-- --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception, --
-- version 3.1, as published by the Free Software Foundation. --
-- --
-- You should have received a copy of the GNU General Public License and --
-- a copy of the GCC Runtime Library Exception along with this program; --
-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
-- <http://www.gnu.org/licenses/>. --
-- --
------------------------------------------------------------------------------
-- <description>
-- Gtk.Hsv.Gtk_Hsv is the 'color wheel' part of a complete color selector
-- widget. It allows to select a color by determining its HSV components in an
-- intuitive way. Moving the selection around the outer ring changes the hue,
-- and moving the selection point inside the inner triangle changes value and
-- saturation.
--
-- Gtk.Hsv.Gtk_Hsv has been deprecated together with
-- Gtk.Color_Selection.Gtk_Color_Selection, where it was used.
--
-- </description>
pragma Ada_2005;
pragma Warnings (Off, "*is already use-visible*");
with Glib; use Glib;
with Glib.Object; use Glib.Object;
with Glib.Types; use Glib.Types;
with Gtk.Buildable; use Gtk.Buildable;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Widget; use Gtk.Widget;
package Gtk.Hsv is
type Gtk_Hsv_Record is new Gtk_Widget_Record with null record;
type Gtk_Hsv is access all Gtk_Hsv_Record'Class;
------------------
-- Constructors --
------------------
procedure Gtk_New (Self : out Gtk_Hsv);
procedure Initialize (Self : not null access Gtk_Hsv_Record'Class);
-- Creates a new HSV color selector.
-- Since: gtk+ 2.14
function Gtk_Hsv_New return Gtk_Hsv;
-- Creates a new HSV color selector.
-- Since: gtk+ 2.14
function Get_Type return Glib.GType;
pragma Import (C, Get_Type, "gtk_hsv_get_type");
-------------
-- Methods --
-------------
procedure Get_Color
(Self : not null access Gtk_Hsv_Record;
H : out Gdouble;
S : out Gdouble;
V : out Gdouble);
-- Queries the current color in an HSV color selector. Returned values
-- will be in the [0.0, 1.0] range.
-- Since: gtk+ 2.14
-- "h": Return value for the hue
-- "s": Return value for the saturation
-- "v": Return value for the value
procedure Set_Color
(Self : not null access Gtk_Hsv_Record;
H : Gdouble;
S : Gdouble;
V : Gdouble);
-- Sets the current color in an HSV color selector. Color component values
-- must be in the [0.0, 1.0] range.
-- Since: gtk+ 2.14
-- "h": Hue
-- "s": Saturation
-- "v": Value
procedure Get_Metrics
(Self : not null access Gtk_Hsv_Record;
Size : out Gint;
Ring_Width : out Gint);
-- Queries the size and ring width of an HSV color selector.
-- Since: gtk+ 2.14
-- "size": Return value for the diameter of the hue ring
-- "ring_width": Return value for the width of the hue ring
procedure Set_Metrics
(Self : not null access Gtk_Hsv_Record;
Size : Gint;
Ring_Width : Gint);
-- Sets the size and ring width of an HSV color selector.
-- Since: gtk+ 2.14
-- "size": Diameter for the hue ring
-- "ring_width": Width of the hue ring
function Is_Adjusting
(Self : not null access Gtk_Hsv_Record) return Boolean;
-- An HSV color selector can be said to be adjusting if multiple rapid
-- changes are being made to its value, for example, when the user is
-- adjusting the value with the mouse. This function queries whether the
-- HSV color selector is being adjusted or not.
-- Since: gtk+ 2.14
---------------
-- Functions --
---------------
procedure To_Rgb
(H : Gdouble;
S : Gdouble;
V : Gdouble;
R : out Gdouble;
G : out Gdouble;
B : out Gdouble);
-- Converts a color from HSV space to RGB.
-- Input values must be in the [0.0, 1.0] range; output values will be in
-- the same range.
-- Since: gtk+ 2.14
-- "h": Hue
-- "s": Saturation
-- "v": Value
-- "r": Return value for the red component
-- "g": Return value for the green component
-- "b": Return value for the blue component
-------------
-- Signals --
-------------
type Cb_Gtk_Hsv_Void is not null access procedure (Self : access Gtk_Hsv_Record'Class);
type Cb_GObject_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class);
Signal_Changed : constant Glib.Signal_Name := "changed";
procedure On_Changed
(Self : not null access Gtk_Hsv_Record;
Call : Cb_Gtk_Hsv_Void;
After : Boolean := False);
procedure On_Changed
(Self : not null access Gtk_Hsv_Record;
Call : Cb_GObject_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False);
type Cb_Gtk_Hsv_Gtk_Direction_Type_Void is not null access procedure
(Self : access Gtk_Hsv_Record'Class;
Object : Gtk.Enums.Gtk_Direction_Type);
type Cb_GObject_Gtk_Direction_Type_Void is not null access procedure
(Self : access Glib.Object.GObject_Record'Class;
Object : Gtk.Enums.Gtk_Direction_Type);
Signal_Move : constant Glib.Signal_Name := "move";
procedure On_Move
(Self : not null access Gtk_Hsv_Record;
Call : Cb_Gtk_Hsv_Gtk_Direction_Type_Void;
After : Boolean := False);
procedure On_Move
(Self : not null access Gtk_Hsv_Record;
Call : Cb_GObject_Gtk_Direction_Type_Void;
Slot : not null access Glib.Object.GObject_Record'Class;
After : Boolean := False);
----------------
-- Interfaces --
----------------
-- This class implements several interfaces. See Glib.Types
--
-- - "Buildable"
package Implements_Gtk_Buildable is new Glib.Types.Implements
(Gtk.Buildable.Gtk_Buildable, Gtk_Hsv_Record, Gtk_Hsv);
function "+"
(Widget : access Gtk_Hsv_Record'Class)
return Gtk.Buildable.Gtk_Buildable
renames Implements_Gtk_Buildable.To_Interface;
function "-"
(Interf : Gtk.Buildable.Gtk_Buildable)
return Gtk_Hsv
renames Implements_Gtk_Buildable.To_Object;
end Gtk.Hsv;