-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2003 ACT-Europe --
-- --
-- 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. --
-- --
-- As a special exception, if other files instantiate generics from --
-- this unit, or you link this unit with other files to produce an --
-- executable, this unit does not by itself cause the resulting --
-- executable to be covered by the GNU General Public License. This --
-- exception does not however invalidate any other reasons why the --
-- executable file might be covered by the GNU Public License. --
-----------------------------------------------------------------------
--
-- The progress bar provides a convenient way of displaying a state of
-- completion for typically lengthy tasks.
--
-- 1.3.11
with Glib.Properties;
with Gtk.Enums; use Gtk.Enums;
with Gtk.Progress;
package Gtk.Progress_Bar is
type Gtk_Progress_Bar_Orientation is
(Progress_Left_To_Right,
Progress_Right_To_Left,
Progress_Bottom_To_Top,
Progress_Top_To_Bottom);
pragma Convention (C, Gtk_Progress_Bar_Orientation);
type Gtk_Progress_Bar_Record is new
Gtk.Progress.Gtk_Progress_Record with private;
type Gtk_Progress_Bar is access all Gtk_Progress_Bar_Record'Class;
procedure Gtk_New (Progress_Bar : out Gtk_Progress_Bar);
-- Create a new progress bar.
function Get_Type return Gtk.Gtk_Type;
-- Return the internal value associated with a Gtk_Progress_Bar.
procedure Initialize (Progress_Bar : access Gtk_Progress_Bar_Record'Class);
-- Internal initialization function.
-- See the section "Creating your own widgets" in the documentation.
procedure Pulse (Progress_Bar : access Gtk_Progress_Bar_Record);
-- Indicate that some progress is made, but you don't know how much.
-- Causes the progress bar to enter "activity mode," where a block
-- bounces back and forth. Each call to Pulse causes the block to move by
-- a little bit (the amount of movement per pulse is determined by
-- Set_Pulse_Step).
procedure Set_Text
(Progress_Bar : access Gtk_Progress_Bar_Record; Text : UTF8_String);
-- Causes the given Text to appear superimposed on the progress bar.
-- Text: a UTF-8 string.
procedure Set_Fraction
(Progress_Bar : access Gtk_Progress_Bar_Record;
Fraction : Gdouble);
-- Cause the progress bar to "fill in" the given fraction of the bar.
-- The fraction should be between 0.0 and 1.0, inclusive.
procedure Set_Pulse_Step
(Progress_Bar : access Gtk_Progress_Bar_Record;
Step : Gdouble);
-- Set the fraction of total progress bar length to move the
-- bouncing block for each call to Pulse.
procedure Set_Orientation
(Progress_Bar : access Gtk_Progress_Bar_Record;
Orientation : Gtk_Progress_Bar_Orientation);
-- Cause the progress bar to switch to a different orientation
-- (left-to-right, right-to-left, top-to-bottom, or bottom-to-top).
function Get_Text
(Progress_Bar : access Gtk_Progress_Bar_Record) return UTF8_String;
-- Retrieve the text displayed superimposed on the progress bar.
function Get_Fraction
(Progress_Bar : access Gtk_Progress_Bar_Record) return Gdouble;
-- Return the current fraction of the task that's been completed.
function Get_Pulse_Step
(Progress_Bar : access Gtk_Progress_Bar_Record) return Gdouble;
-- Return the pulse step set with Set_Pulse_Step.
function Get_Orientation
(Progress_Bar : access Gtk_Progress_Bar_Record)
return Gtk_Progress_Bar_Orientation;
-- Return the current progress bar orientation.
----------------
-- Properties --
----------------
--
-- The following properties are defined for this widget. See
-- Glib.Properties for more information on properties.
--
-- - Name: Orientation_Property
-- Type: Gtk_Orientation
-- Flags: read-write
-- Descr: Orientation and growth of the progress bar
-- See also: Set_Orientation and Get_Orientation
--
-- - Name: Discrete_Blocks_Property
-- Type: Guint
-- Flags: read-write
-- Descr: The number of discrete blocks in a progress bar (when shown
-- in the discrete Style)
-- See also:
--
-- - Name: Fraction_Property
-- Type: Gdouble
-- Flags: read-write
-- Descr: The fraction of total work that has been completed
-- See also: Set_Fraction and Get_Fraction
--
-- - Name: Pulse_Step_Property
-- Type: Gdouble
-- Flags: read-write
-- Descr: The fraction of total progress to move the bouncing block when
-- pulsed
-- See also: Set_Pulse_Step and Get_Pulse_Step
--
-- - Name: Text_Property
-- Type: UTF8_String
-- Flags: read-write
-- Descr: Text to be displayed in the progress bar
-- See also: Set_Text and Get_Text
--
--
Orientation_Property : constant Gtk.Enums.Property_Gtk_Orientation;
Discrete_Blocks_Property : constant Glib.Properties.Property_Uint;
Fraction_Property : constant Glib.Properties.Property_Double;
Pulse_Step_Property : constant Glib.Properties.Property_Double;
Text_Property : constant Glib.Properties.Property_String;
private
type Gtk_Progress_Bar_Record is new Gtk.Progress.Gtk_Progress_Record
with null record;
Orientation_Property : constant Gtk.Enums.Property_Gtk_Orientation :=
Gtk.Enums.Build ("orientation");
Discrete_Blocks_Property : constant Glib.Properties.Property_Uint :=
Glib.Properties.Build ("discrete_blocks");
Fraction_Property : constant Glib.Properties.Property_Double :=
Glib.Properties.Build ("fraction");
Pulse_Step_Property : constant Glib.Properties.Property_Double :=
Glib.Properties.Build ("pulse_step");
Text_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("text");
pragma Import (C, Get_Type, "gtk_progress_bar_get_type");
end Gtk.Progress_Bar;