summaryrefslogtreecommitdiff
path: root/src/fltk-widgets.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-widgets.ads')
-rw-r--r--src/fltk-widgets.ads266
1 files changed, 259 insertions, 7 deletions
diff --git a/src/fltk-widgets.ads b/src/fltk-widgets.ads
index 671cfa0..4c649c0 100644
--- a/src/fltk-widgets.ads
+++ b/src/fltk-widgets.ads
@@ -6,7 +6,7 @@ with
limited with
- FLTK.Widgets.Groups;
+ FLTK.Widgets.Groups.Windows;
private with
@@ -20,9 +20,20 @@ package FLTK.Widgets is
type Widget is new Wrapper with private;
+ type Widget_Reference (Data : not null access Widget'Class) is limited null record
+ with Implicit_Dereference => Data;
+
type Widget_Callback is access procedure
(Item : in out Widget'Class);
+ type Callback_Flag is private;
+ function "+" (Left, Right : in Callback_Flag) return Callback_Flag;
+ Call_Never : constant Callback_Flag;
+ When_Changed : constant Callback_Flag;
+ When_Interact : constant Callback_Flag;
+ When_Release : constant Callback_Flag;
+ When_Enter_Key : constant Callback_Flag;
+
@@ -52,8 +63,9 @@ package FLTK.Widgets is
(This : in Widget)
return Boolean;
- procedure Clear_Active
- (This : in out Widget);
+ procedure Set_Active
+ (This : in out Widget;
+ To : in Boolean);
@@ -62,8 +74,67 @@ package FLTK.Widgets is
(This : in Widget)
return Boolean;
- procedure Clear_Changed
- (This : in out Widget);
+ procedure Set_Changed
+ (This : in out Widget;
+ To : in Boolean);
+
+ function Is_Output_Only
+ (This : in Widget)
+ return Boolean;
+
+ procedure Set_Output_Only
+ (This : in out Widget;
+ To : in Boolean);
+
+ function Is_Visible
+ (This : in Widget)
+ return Boolean;
+
+ function Is_Tree_Visible
+ (This : in Widget)
+ return Boolean;
+
+ procedure Set_Visible
+ (This : in out Widget;
+ To : in Boolean);
+
+
+
+
+ function Has_Visible_Focus
+ (This : in Widget)
+ return Boolean;
+
+ procedure Set_Visible_Focus
+ (This : in out Widget;
+ To : in Boolean);
+
+ function Take_Focus
+ (This : in out Widget)
+ return Boolean;
+
+ function Takes_Events
+ (This : in Widget)
+ return Boolean;
+
+
+
+
+ function Get_Background_Color
+ (This : in Widget)
+ return Color;
+
+ procedure Set_Background_Color
+ (This : in out Widget;
+ To : in Color);
+
+ function Get_Selection_Color
+ (This : in Widget)
+ return Color;
+
+ procedure Set_Selection_Color
+ (This : in out Widget;
+ To : in Color);
@@ -77,6 +148,24 @@ package FLTK.Widgets is
Item : in Widget'Class)
return Boolean;
+ function Inside
+ (This : in Widget;
+ Parent : in Widget'Class)
+ return Boolean;
+
+ function Nearest_Window
+ (This : in Widget)
+ return access FLTK.Widgets.Groups.Windows.Window'Class;
+
+ function Top_Window
+ (This : in Widget)
+ return access FLTK.Widgets.Groups.Windows.Window'Class;
+
+ function Top_Window_Offset
+ (This : in Widget;
+ Offset_X, Offset_Y : out Integer)
+ return access FLTK.Widgets.Groups.Windows.Window'Class;
+
@@ -96,6 +185,17 @@ package FLTK.Widgets is
(This : in out Widget;
Box : in Box_Kind);
+ function Get_Tooltip
+ (This : in Widget)
+ return String;
+
+ procedure Set_Tooltip
+ (This : in out Widget;
+ Text : in String);
+
+
+
+
function Get_Label
(This : in Widget)
return String;
@@ -104,6 +204,14 @@ package FLTK.Widgets is
(This : in out Widget;
Text : in String);
+ function Get_Label_Color
+ (This : in Widget)
+ return Color;
+
+ procedure Set_Label_Color
+ (This : in out Widget;
+ Value : in Color);
+
function Get_Label_Font
(This : in Widget)
return Font_Kind;
@@ -128,6 +236,13 @@ package FLTK.Widgets is
(This : in out Widget;
Label : in Label_Kind);
+ procedure Measure_Label
+ (This : in Widget;
+ W, H : out Integer);
+
+
+
+
function Get_Callback
(This : in Widget)
return Widget_Callback;
@@ -136,6 +251,17 @@ package FLTK.Widgets is
(This : in out Widget;
Func : in Widget_Callback);
+ procedure Do_Callback
+ (This : in out Widget);
+
+ function Get_When
+ (This : in Widget)
+ return Callback_Flag;
+
+ procedure Set_When
+ (This : in out Widget;
+ To : in Callback_Flag);
+
@@ -174,12 +300,38 @@ package FLTK.Widgets is
(This : in out Widget;
Pic : in out FLTK.Images.Image'Class);
+ function Get_Inactive_Image
+ (This : in Widget)
+ return access FLTK.Images.Image'Class;
+
+ procedure Set_Inactive_Image
+ (This : in out Widget;
+ Pic : in out FLTK.Images.Image'Class);
+
+ function Is_Damaged
+ (This : in Widget)
+ return Boolean;
+
+ procedure Set_Damaged
+ (This : in out Widget;
+ To : in Boolean);
+
+ procedure Set_Damaged
+ (This : in out Widget;
+ To : in Boolean;
+ X, Y, W, H : in Integer);
+
procedure Draw
(This : in out Widget) is null;
+ procedure Draw_Label
+ (This : in Widget;
+ X, Y, W, H : in Integer;
+ Align : in Alignment);
+
procedure Redraw
(This : in out Widget);
@@ -197,8 +349,9 @@ private
type Widget is new Wrapper with
record
- Callback : Widget_Callback;
- Current_Image : access FLTK.Images.Image'Class;
+ Callback : Widget_Callback;
+ Current_Image : access FLTK.Images.Image'Class;
+ Inactive_Image : access FLTK.Images.Image'Class;
end record;
overriding procedure Finalize
@@ -207,6 +360,17 @@ private
+ type Callback_Flag is new Interfaces.C.unsigned;
+
+ Call_Never : constant Callback_Flag := 0;
+ When_Changed : constant Callback_Flag := 1;
+ When_Interact : constant Callback_Flag := 2;
+ When_Release : constant Callback_Flag := 4;
+ When_Enter_Key : constant Callback_Flag := 8;
+
+
+
+
-- the user data portion should always be a reference back to the Ada binding
procedure Callback_Hook
(W, U : in System.Address);
@@ -244,5 +408,93 @@ private
pragma Import (C, fl_widget_set_user_data, "fl_widget_set_user_data");
+
+
+ pragma Inline (Activate);
+ pragma Inline (Deactivate);
+ pragma Inline (Is_Active);
+ pragma Inline (Is_Tree_Active);
+ pragma Inline (Set_Active);
+
+
+ pragma Inline (Has_Changed);
+ pragma Inline (Set_Changed);
+ pragma Inline (Is_Output_Only);
+ pragma Inline (Set_Output_Only);
+ pragma Inline (Is_Visible);
+ pragma Inline (Set_Visible);
+
+
+ pragma Inline (Has_Visible_Focus);
+ pragma Inline (Set_Visible_Focus);
+ pragma Inline (Take_Focus);
+ pragma Inline (Takes_Events);
+
+
+ pragma Inline (Get_Background_Color);
+ pragma Inline (Set_Background_Color);
+ pragma Inline (Get_Selection_Color);
+ pragma Inline (Set_Selection_Color);
+
+
+ pragma Inline (Parent);
+ pragma Inline (Contains);
+ pragma Inline (Inside);
+ pragma Inline (Nearest_Window);
+ pragma Inline (Top_Window);
+ pragma Inline (Top_Window_Offset);
+
+
+ pragma Inline (Get_Alignment);
+ pragma Inline (Set_Alignment);
+ pragma Inline (Get_Box);
+ pragma Inline (Set_Box);
+ pragma Inline (Get_Tooltip);
+ pragma Inline (Set_Tooltip);
+
+
+ pragma Inline (Get_Label);
+ pragma Inline (Set_Label);
+ pragma Inline (Get_Label_Color);
+ pragma Inline (Set_Label_Color);
+ pragma Inline (Get_Label_Font);
+ pragma Inline (Set_Label_Font);
+ pragma Inline (Get_Label_Size);
+ pragma Inline (Set_Label_Size);
+ pragma Inline (Get_Label_Type);
+ pragma Inline (Set_Label_Type);
+ pragma Inline (Measure_Label);
+
+
+ pragma Inline (Get_Callback);
+ pragma Inline (Set_Callback);
+ pragma Inline (Do_Callback);
+ pragma Inline (Get_When);
+ pragma Inline (Set_When);
+
+
+ pragma Inline (Get_X);
+ pragma Inline (Get_Y);
+ pragma Inline (Get_W);
+ pragma Inline (Get_H);
+ pragma Inline (Resize);
+ pragma Inline (Reposition);
+
+
+ pragma Inline (Get_Image);
+ pragma Inline (Set_Image);
+ pragma Inline (Get_Inactive_Image);
+ pragma Inline (Set_Inactive_Image);
+
+
+ pragma Inline (Is_Damaged);
+ pragma Inline (Set_Damaged);
+ pragma Inline (Draw);
+ pragma Inline (Draw_Label);
+ pragma Inline (Redraw);
+ pragma Inline (Redraw_Label);
+ pragma Inline (Handle);
+
+
end FLTK.Widgets;