-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2006 AdaCore --
-- --
-- This library is free software; you can redistribute it and/or --
-- modify it under the terms of the GNU General Public --
-- License as published by the Free Software Foundation; either --
-- version 2 of the License, 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 --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
-- General Public License for more details. --
-- --
-- You should have received a copy of the GNU General Public --
-- License along with this library; if not, write to the --
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330, --
-- Boston, MA 02111-1307, USA. --
-- --
-----------------------------------------------------------------------
--
-- This package contains various functions to draw widget parts on the screen.
-- Whenever possible, you should use these functions instead of directly
-- the ones from Gdk.Drawable, since this package will properly take into
-- account the user's theme and color choice.
--
-- Consider also using directly the function Gtk.Widget.Modify_Font,
-- Gtk.Widget.Modify_Background,... rather than use the lower level Gtk_Style
-- object.
--
-- See Gtk.RC to learn how styles can be defined in external configuration
-- files by the end-user of your application.
--
-- 2.8.17
-- Configuration and Themes
with Glib.Object;
with Glib.Values;
with Gdk.Color; use Gdk.Color;
with Gdk.Font; use Gdk.Font;
with Gdk.GC;
with Gdk.Pixmap;
with Gdk.Rectangle;
with Gdk.Types;
with Gdk.Window;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Object;
with Pango.Font;
with Pango.Layout;
with Interfaces.C.Strings;
package Gtk.Style is
------------
-- Styles --
------------
type Gtk_Style_Record is new Glib.Object.GObject_Record with null record;
type Gtk_Style is access all Gtk_Style_Record'Class;
Null_Style : constant Gtk_Style := null;
type Gtk_Rc_Property_Parser is access function
(Pspec : Glib.Param_Spec;
Rc_String : Interfaces.C.Strings.chars_ptr;
Value : access Glib.Values.GValue) return Gboolean;
pragma Convention (C, Gtk_Rc_Property_Parser);
-- A function used to parse a string into the value of a property.
-- Pspec is the property that is being parsed, Rc_String is the value as
-- read in a gtk configuration file (any string, really), and Value should
-- be set to the value read.
-- See also Gtk.Settings
procedure Gtk_New (Style : out Gtk_Style);
procedure Initialize (Style : access Gtk_Style_Record'Class);
-- Creates or initializes a new style
function Get_Type return Gtk.Gtk_Type;
-- Return the internal value associated with a Gtk_Style.
function Copy (Source : Gtk_Style) return Gtk_Style;
-- Copy a Gtk_Style
function Attach
(Style : Gtk_Style; Window : Gdk.Window.Gdk_Window) return Gtk_Style;
procedure Detach (Style : Gtk_Style);
-- Attaches a style to a window; this process allocates the colors and
-- creates the GC's for the style - it specializes it to a particular
-- visual and colormap. The process may involve the creation of a new style
-- if the style has already been attached to a window with a different
-- style and colormap.
-- It returns either Style or a newly allocated style. If a new one is
-- created, the parameter will be Unref once, and the new one Ref once.
procedure Set_Background
(Style : Gtk_Style;
Window : Gdk.Window.Gdk_Window;
State_Type : Gtk_State_Type);
-- Set the background color of Window to the background color specified
-- by Style.
procedure Apply_Default_Background
(Style : access Gtk_Style_Record;
Window : Gdk.Window.Gdk_Window;
Set_Bg : Boolean;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle;
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Applies the default background from style to the given area in Window
-----------------
-- Properties --
-----------------
-- The style contains a number of properties. Each of these can be set to
-- multiple values simulatenously, that will be applied depending on the
-- widget's current state (highlighted, active, inactive,...)
procedure Set_Background
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
procedure Set_Bg
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color) renames Set_Background;
function Get_Background
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Color.Gdk_Color;
function Get_Bg
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_Color renames Get_Background;
-- Set or get the background color that this style uses in the given state
procedure Set_Background_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
procedure Set_Background
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk_GC) renames Set_Background_GC;
procedure Set_Bg
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Background_GC;
procedure Set_Bg_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Background_GC;
function Get_Background_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.GC.Gdk_GC;
function Get_Bg
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Background_GC;
function Get_Background
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Background_GC;
function Get_Bg_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Background_GC;
-- Set or get the graphic context that the style is using for the
-- background
procedure Set_Foreground
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
procedure Set_Fg
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color) renames Set_Foreground;
function Get_Foreground
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Color.Gdk_Color;
function Get_Fg
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_Color renames Get_Foreground;
-- Set or get the foreground color that the style is using
procedure Set_Foreground_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
procedure Set_Fg_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Foreground_GC;
procedure Set_Foreground
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Foreground_GC;
procedure Set_Fg
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Foreground_GC;
function Get_Foreground_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.GC.Gdk_GC;
function Get_Foreground
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Foreground_GC;
function Get_Fg
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Foreground_GC;
function Get_Fg_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Foreground_GC;
-- Set or get the graphic context used by this style for the foreground
procedure Set_Light
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
function Get_Light
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Color.Gdk_Color;
procedure Set_Light_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
function Get_Light_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.GC.Gdk_GC;
procedure Set_Light
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Light_GC;
function Get_Light
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Light_GC;
-- Set or get the lighter color or graphic context that this style is
-- using. This color is used to draw the shadows around rectangles for
-- instance
procedure Set_Dark
(Style : Gtk_Style;
State_Type : Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
procedure Set_Dark_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
procedure Set_Dark
(Style : Gtk_Style;
State_Type : Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Dark_GC;
function Get_Dark
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk.Color.Gdk_Color;
function Get_Dark_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk.GC.Gdk_GC;
function Get_Dark
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Dark_GC;
-- Set or get the darker color or graphic context that this style is using.
-- This color is used to draw the shadows around rectangles for instance.
procedure Set_Middle
(Style : Gtk_Style;
State_Type : Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
procedure Set_Mid
(Style : Gtk_Style;
State_Type : Gtk_State_Type;
Color : Gdk.Color.Gdk_Color) renames Set_Middle;
function Get_Middle
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk.Color.Gdk_Color;
function Get_Mid
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_Color renames Get_Middle;
procedure Set_Middle_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
function Get_Middle_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC;
procedure Set_Middle
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk_GC) renames Set_Middle_GC;
function Get_Middle
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Middle_GC;
procedure Set_Mid_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk_GC) renames Set_Middle_GC;
function Get_Mid_GC
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Middle_GC;
procedure Set_Mid
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Middle_GC;
function Get_Mid
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Middle_GC;
-- Set or get the middle color. This color should be between the light and
-- dark colors set above.
procedure Set_Text
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
function Get_Text
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Color.Gdk_Color;
procedure Set_Text_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
function Get_Text_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.GC.Gdk_GC;
procedure Set_Text
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Text_GC;
function Get_Text
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Text_GC;
-- Set or get the color to use when drawing text.
procedure Set_Base
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Color : Gdk.Color.Gdk_Color);
function Get_Base
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Color.Gdk_Color;
procedure Set_Base_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC);
function Get_Base_GC
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.GC.Gdk_GC;
procedure Set_Base
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
GC : Gdk.GC.Gdk_GC) renames Set_Base_GC;
function Get_Base
(Style : Gtk_Style;
State_Type : Gtk_State_Type) return Gdk_GC renames Get_Base_GC;
-- Set or get the base color
procedure Set_Black
(Style : Gtk_Style;
Color : Gdk.Color.Gdk_Color);
function Get_Black (Style : Gtk_Style) return Gdk.Color.Gdk_Color;
procedure Set_Black_GC (Style : Gtk_Style; GC : Gdk.GC.Gdk_GC);
function Get_Black_GC (Style : Gtk_Style) return Gdk.GC.Gdk_GC;
procedure Set_Black
(Style : Gtk_Style; GC : Gdk.GC.Gdk_GC) renames Set_Black_GC;
function Get_Black
(Style : Gtk_Style) return Gdk.GC.Gdk_GC renames Get_Black_GC;
-- Set or get the "black" color. It isn't necessarily black, although most
-- themes will want to use black here.
procedure Set_White (Style : Gtk_Style; Color : Gdk.Color.Gdk_Color);
function Get_White (Style : Gtk_Style) return Gdk.Color.Gdk_Color;
procedure Set_White_GC (Style : Gtk_Style; GC : Gdk.GC.Gdk_GC);
function Get_White_GC (Style : Gtk_Style) return Gdk.GC.Gdk_GC;
procedure Set_White
(Style : Gtk_Style; GC : Gdk.GC.Gdk_GC) renames Set_White_GC;
function Get_White
(Style : Gtk_Style) return Gdk.GC.Gdk_GC renames Get_White_GC;
-- Set or get the "white" color. It isn't necessarily white, although most
-- themes will want to use white here.
procedure Set_Font_Description
(Style : Gtk_Style; Desc : Pango.Font.Pango_Font_Description);
function Get_Font_Description
(Style : Gtk_Style) return Pango.Font.Pango_Font_Description;
-- Set or get the font to use for this style
--
function Get_Font (Style : Gtk_Style) return Gdk.Font.Gdk_Font;
pragma Obsolescent ("Use Get_Font_Description"); -- Get_Font
--
procedure Set_Bg_Pixmap
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type;
Pixmap : Gdk.Pixmap.Gdk_Pixmap);
function Get_Bg_Pixmap
(Style : Gtk_Style;
State_Type : Enums.Gtk_State_Type) return Gdk.Pixmap.Gdk_Pixmap;
-- Set or get the pixmap to use for background
function X_Thickness (Style : Gtk_Style) return Gint;
-- Width of the vertical scrollbars and ranges when Style is applied.
-- In fact, this thickness is used for a lot of widgets whose width
-- does not depend on their content, such as rulers,...
function Y_Thickness (Style : Gtk_Style) return Gint;
-- Height of the horizontal scrollbars and ranges when Style is applied.
--------------
-- Painting --
--------------
-- All the subprograms below have similar profiles.
-- Area is always a clipping area. Drawing only takes place within that
-- area, and pixels outside of it are not affected.
-- Detail is a theme-specific detail string. This is generally provided by
-- the application (or rather gtk+ itself) to indicate that the drawing
-- should be slightly different, and Detail describes the exact contact.
-- All drawings are done on Window. Widget is used to draw specific
-- things depending on the widget type.
procedure Draw_Insertion_Cursor
(Widget : access Gtk.Object.Gtk_Object_Record'Class;
Drawable : Gdk_Drawable;
Area : Gdk.Rectangle.Gdk_Rectangle;
Location : Gdk.Rectangle.Gdk_Rectangle;
Is_Primary : Boolean;
Direction : Gtk_Text_Direction;
Draw_Arrow : Boolean);
-- Draws a text caret on Drawable at Location. This is not a style function
-- but merely a convenience function for drawing the standard cursor shape.
-- Is_Primary indicates whether the cursor should be the primary cursor
-- color. Direction is the text direction. Draw_Arrow should be true to
-- draw a directional arrow on the cursor. Should be False unless the
-- cursor is split.
procedure Paint_Handle
(Style : Gtk_Style;
Window : Gdk.Gdk_Window;
State_Type : Gtk.Enums.Gtk_State_Type;
Shadow_Type : Gtk.Enums.Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle;
Widget : access Gtk.Object.Gtk_Object_Record'Class;
Detail : String := "paned";
X, Y, Width, Height : Gint;
Orientation : Gtk.Enums.Gtk_Orientation);
-- Paint the handles as is done in the Gtk_Paned widget (ie a series of
-- small dots in Window, that indicate that Window can be manipulated and
-- resized.
-- If Detail is "paned", only a few dots are painted in the middle of
-- window (aligned either horizontally or vertically depending on
-- Orientation). Any other value for Detail draws points on the whole
-- length of Window.
-- (X, Y, Width, Height) is the area in which the dots should be painted.
-- For the whole window, use (0, 0, -1, -1).
-- Only the area that intersect Area is drawn.
procedure Paint_Arrow
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
Arrow_Type : Gtk_Arrow_Type;
Fill : Boolean;
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws an arrow in the given rectangle on Window using the given
-- parameters. Arrow_Type determines the direction of the arrow.
-- The default theme engine only recognazied "menu_scroll_arrow_up" for
-- Detail.
procedure Paint_Box
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a box on Window with the given parameters.
-- The default theme engine recognizes the following for Detail:
-- "spinbutton_up", "spinbutton_down", "paned", "optionmenu"
procedure Paint_Box_Gap
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint;
Gap_Side : Gtk_Position_Type;
Gap_X : Gint;
Gap_Width : Gint);
-- Draws a box in Window using the given style and state and shadow type,
-- leaving a gap in one side.
procedure Paint_Check
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a check button indicator in the given rectangle on Window with
-- the given parameters. The default theme handles the following values for
-- detail: "cellcheck", "check"
procedure Paint_Diamond
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a diamond in the given rectangle on Window using the given
-- parameters.
procedure Paint_Expander
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Expander_Style : Gtk_Expander_Style);
-- Draws an expander as used in Gtk_Tree_View. X and Y specify the center
-- the expander. The size of the expander is determined by the
-- "expander-size" style property of Widget. (If widget is not specified or
-- doesn't have an "expander-size" property, an unspecified default size
-- will be used, since the caller doesn't have sufficient information to
-- position the expander, this is likely not useful.) The expander is
-- expander_size pixels tall in the collapsed position and expander_size
-- pixels wide in the expanded position.
procedure Paint_Extension
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint;
Gap_Side : Gtk_Position_Type);
-- Draws an extension, i.e. a notebook tab.
procedure Paint_Flat_Box
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a flat box on Window with the given parameters.
procedure Paint_Focus
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a focus indicator around the given rectangle on Window using the
-- given style.
procedure Paint_Hline
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X1 : Gint;
X2 : Gint;
Y : Gint);
-- Draws a horizontal line from (X1, Y) to (X2, Y) in Window
-- using the given style and state.
procedure Paint_Layout
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Use_Text : Boolean;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Layout : Pango.Layout.Pango_Layout);
-- Draws a layout on Window using the given parameters.
procedure Paint_Option
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a radio button indicator in the given rectangle on Window with
-- the given parameters.
procedure Paint_Polygon
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
Points : Gdk.Types.Gdk_Point;
Npoints : Gint;
Fill : Boolean);
-- Draws a polygon on Window with the given parameters.
procedure Paint_Resize_Grip
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
Edge : Gdk.Window.Gdk_Window_Edge;
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a resize grip in the given rectangle on Window using the given
-- parameters.
procedure Paint_Shadow
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws a shadow around the given rectangle in Window using the given
-- style and state and shadow type.
procedure Paint_Shadow_Gap
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint;
Gap_Side : Gtk_Position_Type;
Gap_X : Gint;
Gap_Width : Gint);
-- Draws a shadow around the given rectangle in Window
-- using the given style and state and shadow type, leaving a
-- gap in one side.
procedure Paint_Slider
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint;
Orientation : Gtk_Orientation);
-- Draws a slider in the given rectangle on Window using the given style
-- and orientation.
procedure Paint_Tab
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
-- Draws an option menu tab (i.e. the up and down pointing arrows) in the
-- given rectangle on Window using the given parameters.
procedure Paint_Vline
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Area : Gdk.Rectangle.Gdk_Rectangle := Gdk.Rectangle.Full_Area;
Widget : access Glib.Object.GObject_Record'Class;
Detail : String := "";
Y1 : Gint;
Y2 : Gint;
X : Gint);
-- Draws a vertical line from (X, Y1) to (X, Y2) in Window
-- using the given style and state.
-------------
-- Drawing --
-------------
-- All these procedures are obsolescent, and have been replaced by the
-- Paint_* versions below.
--
procedure Draw_Polygon
(Style : Gtk_Style;
Window : Gdk.Window.Gdk_Window;
State_Type : Enums.Gtk_State_Type;
Shadow_Type : Enums.Gtk_Shadow_Type;
Points : Gdk.Types.Gdk_Points_Array;
Fill : Boolean);
pragma Obsolescent ("Use Paint_Polygon"); -- Draw_Polygon
-- Draws a polygon in Window
procedure Draw_Arrow
(Style : Gtk_Style;
Window : Gdk.Window.Gdk_Window;
State_Type : Enums.Gtk_State_Type;
Shadow_Type : Enums.Gtk_Shadow_Type;
Arrow_Type : Enums.Gtk_Arrow_Type;
Fill : Boolean;
X, Y : Gint;
Width : Gint;
Height : Gint);
pragma Obsolescent ("Use Pain_Arrow"); -- Draw_Arrow
-- Draws an arrow in Window, within the given rectangle
procedure Draw_Shadow
(Style : access Gtk_Style_Record;
Window : Gdk_Window;
State_Type : Gtk_State_Type;
Shadow_Type : Gtk_Shadow_Type;
X : Gint;
Y : Gint;
Width : Gint;
Height : Gint);
pragma Obsolescent; -- Draw_Shadow
-- Draws a shadow around the given rectangle in @window
-- using the given style and state and shadow type.
procedure Draw_String
(Style : Gtk_Style;
Window : Gdk.Window.Gdk_Window;
State_Type : Enums.Gtk_State_Type;
X, Y : Gint;
Str : UTF8_String);
pragma Obsolescent ("Use Paint_String"); -- Draw_String
-- Draws a text on Window
--
-------------
-- Signals --
-------------
--
-- The following new signals are defined for this widget:
--
-- - "realize"
-- procedure Handler (Style : access Gtk_Style_Record'Class);
-- Emitted when the style has been initialized for a particular colormap
-- and depth. Connecting to this signal is probably seldom useful since
-- most of the time applications and widgets only deal with styles that
-- have been already realized.
--
-- - "unrealize"
-- procedure Handler (Style : access Gtk_Style_Record'Class);
-- Emitted when the aspects of the style specific to a particular
-- colormap and depth are being cleaned up. A connection to this signal
-- can be useful if a widget wants to cache objects like a Gdk_GC as
-- object data on Gtk_Style. This signal provides a convenient place to
-- free such cached objects.
--
--
Signal_Realize : constant String := "realize";
Signal_Unrealize : constant String := "unrealize";
private
pragma Import (C, Get_Type, "gtk_style_get_type");
end Gtk.Style;
-- The following subprograms never had a binding, and are now obsolescent:
-- No binding: gtk_draw_box
-- No binding: gtk_draw_box_gap
-- No binding: gtk_draw_check
-- No binding: gtk_draw_diamond
-- No binding: gtk_draw_expander
-- No binding: gtk_draw_extension
-- No binding: gtk_draw_flat_box
-- No binding: gtk_draw_focus
-- No binding: gtk_draw_handle
-- No binding: gtk_draw_hline
-- No binding: gtk_draw_layout
-- No binding: gtk_draw_option
-- No binding: gtk_draw_resize_grip
-- No binding: gtk_draw_shadow_gap
-- No binding: gtk_draw_slider
-- No binding: gtk_draw_tab
-- No binding: gtk_draw_vline
-- No binding: gtk_paint_string
-- No binding: gtk_style_set_font
-- These are obsolescent, and inherited anyway
-- No binding: gtk_style_ref
-- No binding: gtk_style_unref
-- Binding is in gtk-icon_factory.ads
-- No binding: gtk_style_lookup_icon_set
-- No binding: gtk_style_render_icon
-- Borders are currently unused anyway
-- No binding: gtk_border_copy
-- No binding: gtk_border_free
-- No binding: gtk_border_get_type