File: gtk-ruler.ads

package info (click to toggle)
libgtkada2 2.8.1-6lenny3
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 13,496 kB
  • ctags: 3,886
  • sloc: ada: 103,189; ansic: 45,411; perl: 5,500; sh: 2,812; makefile: 1,169; xml: 19
file content (145 lines) | stat: -rw-r--r-- 5,894 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
-----------------------------------------------------------------------
--               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.                                       --
--                                                                   --
-----------------------------------------------------------------------

--  <description>
--  This widget is generally put on the sides of a drawing area to help the
--  user measure distances. It indicates the current position of the mouse
--  cursor within the drawing area, and can be graduated in multiple units.
--  </description>
--  <c_version>2.8.17</c_version>
--  <group>Drawing</group>
--  <testgtk>create_rulers.adb</testgtk>
--  <screenshot>gtk-rulers</screenshot>

with Glib.Properties;
with Gtk.Enums;       use Gtk.Enums;
with Gtk.Widget;

package Gtk.Ruler is

   type Gtk_Ruler_Record is new Gtk.Widget.Gtk_Widget_Record with private;
   subtype Gtk_Hruler_Record is Gtk_Ruler_Record;
   subtype Gtk_Vruler_Record is Gtk_Ruler_Record;

   type Gtk_Ruler is access all Gtk_Ruler_Record'Class;
   subtype Gtk_Hruler is Gtk_Ruler;
   subtype Gtk_Vruler is Gtk_Ruler;

   procedure Gtk_New_Hruler (Ruler : out Gtk_Ruler);
   procedure Initialize_Hruler (Ruler : access Gtk_Ruler_Record'Class);
   --  Creates or initializes a new horizontal ruler

   procedure Gtk_New_Vruler (Ruler : out Gtk_Ruler);
   procedure Initialize_Vruler (Ruler : access Gtk_Ruler_Record'Class);
   --  Creates or initializes a new vertical ruler

   function Get_Type        return Gtk.Gtk_Type;
   function Hruler_Get_Type return Gtk.Gtk_Type;
   function Vruler_Get_Type return Gtk.Gtk_Type;
   --  Return the internal value associated with a Gtk_Ruler.

   procedure Set_Metric
     (Ruler  : access Gtk_Ruler_Record;
      Metric : Gtk_Metric_Type);
   function Get_Metric
     (Ruler  : access Gtk_Ruler_Record) return Gtk_Metric_Type;
   --  Set or get the units used for a Gtk_Ruler. See Set_Metric.

   procedure Set_Range
     (Ruler    : access Gtk_Ruler_Record;
      Lower    : Gdouble;
      Upper    : Gdouble;
      Position : Gdouble;
      Max_Size : Gdouble);
   procedure Get_Range
     (Ruler    : access Gtk_Ruler_Record;
      Lower    : out Gdouble;
      Upper    : out Gdouble;
      Position : out Gdouble;
      Max_Size : out Gdouble);
   --  Retrieve values indicating the range and current position of a Ruler.
   --  See Set_Range.
   --  Lower: Lower limit of the ruler.
   --  Upper: Upper limit of the ruler.
   --  Position: Current position of the mark on the ruler.
   --  Max_Size: Maximum size of the ruler used when calculating the space to
   --            leave for the text.

   procedure Draw_Ticks (Ruler : access Gtk_Ruler_Record);
   procedure Draw_Pos (Ruler : access Gtk_Ruler_Record);
   --  ???

   ----------------
   -- Properties --
   ----------------

   --  <properties>
   --  The following properties are defined for this widget. See
   --  Glib.Properties for more information on properties.
   --
   --  Name:  Lower_Property
   --  Type:  Double
   --  Descr: Lower limit of ruler
   --
   --  Name:  Max_Size_Property
   --  Type:  Double
   --  Descr: Maximum size of the ruler
   --
   --  Name:  Metric_Property
   --  Type:  Enum
   --  Descr: The metric used for the ruler
   --
   --  Name:  Position_Property
   --  Type:  Double
   --  Descr: Position of mark on the ruler
   --
   --  Name:  Upper_Property
   --  Type:  Double
   --  Descr: Upper limit of ruler
   --
   --  </properties>

   Lower_Property    : constant Glib.Properties.Property_Double;
   Max_Size_Property : constant Glib.Properties.Property_Double;
   Metric_Property   : constant Gtk.Enums.Property_Metric_Type;
   Position_Property : constant Glib.Properties.Property_Double;
   Upper_Property    : constant Glib.Properties.Property_Double;

private
   type Gtk_Ruler_Record is new Gtk.Widget.Gtk_Widget_Record with null record;

   Lower_Property : constant Glib.Properties.Property_Double :=
     Glib.Properties.Build ("lower");
   Max_Size_Property : constant Glib.Properties.Property_Double :=
     Glib.Properties.Build ("max-size");
   Metric_Property   : constant Gtk.Enums.Property_Metric_Type :=
     Gtk.Enums.Build ("metric");
   Position_Property : constant Glib.Properties.Property_Double :=
     Glib.Properties.Build ("position");
   Upper_Property : constant Glib.Properties.Property_Double :=
     Glib.Properties.Build ("upper");

   pragma Import (C, Get_Type, "gtk_ruler_get_type");
   pragma Import (C, Vruler_Get_Type, "gtk_vruler_get_type");
   pragma Import (C, Hruler_Get_Type, "gtk_hruler_get_type");
end Gtk.Ruler;