summaryrefslogtreecommitdiff
path: root/body
diff options
context:
space:
mode:
Diffstat (limited to 'body')
-rw-r--r--body/c_fl_event.cpp8
-rw-r--r--body/c_fl_event.h2
-rw-r--r--body/c_fl_static.cpp12
-rw-r--r--body/c_fl_static.h3
-rw-r--r--body/fltk-event.adb24
-rw-r--r--body/fltk-menu_items.adb6
-rw-r--r--body/fltk-screen.adb4
-rw-r--r--body/fltk-static.adb33
-rw-r--r--body/fltk-widgets-menus-menu_bars-systemwide.adb21
-rw-r--r--body/fltk-widgets-menus.adb20
-rw-r--r--body/fltk-widgets.adb27
-rw-r--r--body/fltk.adb79
12 files changed, 137 insertions, 102 deletions
diff --git a/body/c_fl_event.cpp b/body/c_fl_event.cpp
index 59a22df..d8760af 100644
--- a/body/c_fl_event.cpp
+++ b/body/c_fl_event.cpp
@@ -59,6 +59,14 @@ void fl_event_set_focus(void * w) {
Fl::focus(static_cast<Fl_Widget*>(w));
}
+int fl_event_get_visible_focus() {
+ return Fl::visible_focus();
+}
+
+void fl_event_set_visible_focus(int f) {
+ Fl::visible_focus(f);
+}
+
diff --git a/body/c_fl_event.h b/body/c_fl_event.h
index cc1f930..34daf2b 100644
--- a/body/c_fl_event.h
+++ b/body/c_fl_event.h
@@ -21,6 +21,8 @@ extern "C" void * fl_event_get_belowmouse();
extern "C" void fl_event_set_belowmouse(void * w);
extern "C" void * fl_event_get_focus();
extern "C" void fl_event_set_focus(void * w);
+extern "C" int fl_event_get_visible_focus();
+extern "C" void fl_event_set_visible_focus(int f);
extern "C" int fl_event_compose(int &d);
diff --git a/body/c_fl_static.cpp b/body/c_fl_static.cpp
index ad4cfe9..0b45115 100644
--- a/body/c_fl_static.cpp
+++ b/body/c_fl_static.cpp
@@ -219,14 +219,6 @@ void fl_static_disable_im() {
Fl::disable_im();
}
-int fl_static_get_visible_focus() {
- return Fl::visible_focus();
-}
-
-void fl_static_set_visible_focus(int f) {
- Fl::visible_focus(f);
-}
-
@@ -257,10 +249,6 @@ void * fl_static_readqueue() {
return Fl::readqueue();
}
-void fl_static_do_widget_deletion() {
- Fl::do_widget_deletion();
-}
-
diff --git a/body/c_fl_static.h b/body/c_fl_static.h
index 692750b..2622544 100644
--- a/body/c_fl_static.h
+++ b/body/c_fl_static.h
@@ -75,8 +75,6 @@ extern "C" void fl_static_set_dnd_text_ops(int t);
extern "C" void fl_static_enable_im();
extern "C" void fl_static_disable_im();
-extern "C" int fl_static_get_visible_focus();
-extern "C" void fl_static_set_visible_focus(int f);
extern "C" void fl_static_default_atclose(void * w);
@@ -87,7 +85,6 @@ extern "C" void * fl_static_modal();
extern "C" void * fl_static_readqueue();
-extern "C" void fl_static_do_widget_deletion();
extern "C" const char * fl_static_get_scheme();
diff --git a/body/fltk-event.adb b/body/fltk-event.adb
index 8c3db1f..2c96792 100644
--- a/body/fltk-event.adb
+++ b/body/fltk-event.adb
@@ -92,6 +92,16 @@ package body FLTK.Event is
pragma Import (C, fl_event_set_focus, "fl_event_set_focus");
pragma Inline (fl_event_set_focus);
+ function fl_event_get_visible_focus
+ return Interfaces.C.int;
+ pragma Import (C, fl_event_get_visible_focus, "fl_event_get_visible_focus");
+ pragma Inline (fl_event_get_visible_focus);
+
+ procedure fl_event_set_visible_focus
+ (T : in Interfaces.C.int);
+ pragma Import (C, fl_event_set_visible_focus, "fl_event_set_visible_focus");
+ pragma Inline (fl_event_set_visible_focus);
+
@@ -477,6 +487,20 @@ package body FLTK.Event is
end Set_Focus;
+ function Has_Visible_Focus
+ return Boolean is
+ begin
+ return fl_event_get_visible_focus /= 0;
+ end Has_Visible_Focus;
+
+
+ procedure Set_Visible_Focus
+ (To : in Boolean) is
+ begin
+ fl_event_set_visible_focus (Boolean'Pos (To));
+ end Set_Visible_Focus;
+
+
-- Multikey --
diff --git a/body/fltk-menu_items.adb b/body/fltk-menu_items.adb
index 4ab9f7f..7ee4d61 100644
--- a/body/fltk-menu_items.adb
+++ b/body/fltk-menu_items.adb
@@ -298,7 +298,7 @@ package body FLTK.Menu_Items is
(Interfaces.C.To_C (Text),
Callback_Convert.To_Address (Action),
To_C (Shortcut),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
end return;
end Create;
@@ -552,7 +552,7 @@ package body FLTK.Menu_Items is
(This : in Menu_Item)
return Menu_Flag is
begin
- return Menu_Flag (fl_menu_item_get_flags (This.Void_Ptr));
+ return Cint_To_MFlag (fl_menu_item_get_flags (This.Void_Ptr));
end Get_Flags;
@@ -560,7 +560,7 @@ package body FLTK.Menu_Items is
(This : in out Menu_Item;
To : in Menu_Flag) is
begin
- fl_menu_item_set_flags (This.Void_Ptr, Interfaces.C.int (To));
+ fl_menu_item_set_flags (This.Void_Ptr, MFlag_To_Cint (To));
end Set_Flags;
diff --git a/body/fltk-screen.adb b/body/fltk-screen.adb
index 54618fe..89f7413 100644
--- a/body/fltk-screen.adb
+++ b/body/fltk-screen.adb
@@ -139,11 +139,11 @@ package body FLTK.Screen is
-- Environment --
- procedure Set_Display_Var
+ procedure Set_Display_String
(Value : in String) is
begin
fl_screen_display (Interfaces.C.To_C (Value));
- end Set_Display_Var;
+ end Set_Display_String;
diff --git a/body/fltk-static.adb b/body/fltk-static.adb
index 59a3aa2..bd64a9e 100644
--- a/body/fltk-static.adb
+++ b/body/fltk-static.adb
@@ -310,21 +310,6 @@ package body FLTK.Static is
- -- Input Focus --
-
- function fl_static_get_visible_focus
- return Interfaces.C.int;
- pragma Import (C, fl_static_get_visible_focus, "fl_static_get_visible_focus");
- pragma Inline (fl_static_get_visible_focus);
-
- procedure fl_static_set_visible_focus
- (T : in Interfaces.C.int);
- pragma Import (C, fl_static_set_visible_focus, "fl_static_set_visible_focus");
- pragma Inline (fl_static_set_visible_focus);
-
-
-
-
-- Windows --
procedure fl_static_default_atclose
@@ -951,24 +936,6 @@ package body FLTK.Static is
- -- Input Focus --
-
- function Has_Visible_Focus
- return Boolean is
- begin
- return fl_static_get_visible_focus /= 0;
- end Has_Visible_Focus;
-
-
- procedure Set_Visible_Focus
- (To : in Boolean) is
- begin
- fl_static_set_visible_focus (Boolean'Pos (To));
- end Set_Visible_Focus;
-
-
-
-
-- Windows --
procedure Default_Window_Close
diff --git a/body/fltk-widgets-menus-menu_bars-systemwide.adb b/body/fltk-widgets-menus-menu_bars-systemwide.adb
index e96772e..c09ef93 100644
--- a/body/fltk-widgets-menus-menu_bars-systemwide.adb
+++ b/body/fltk-widgets-menus-menu_bars-systemwide.adb
@@ -340,7 +340,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Add;
@@ -359,7 +359,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -378,7 +378,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Add;
@@ -397,7 +397,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -418,7 +418,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Insert;
@@ -439,7 +439,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -460,7 +460,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Insert;
@@ -481,7 +481,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -593,7 +593,8 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
Place : in Index)
return Menu_Flag is
begin
- return Menu_Flag (fl_sys_menu_bar_get_mode (This.Void_Ptr, Interfaces.C.int (Place) - 1));
+ return Cint_To_MFlag
+ (fl_sys_menu_bar_get_mode (This.Void_Ptr, Interfaces.C.int (Place) - 1));
end Get_Flags;
@@ -605,7 +606,7 @@ package body FLTK.Widgets.Menus.Menu_Bars.Systemwide is
fl_sys_menu_bar_set_mode
(This.Void_Ptr,
Interfaces.C.int (Place) - 1,
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
end Set_Flags;
diff --git a/body/fltk-widgets-menus.adb b/body/fltk-widgets-menus.adb
index 3344efd..ede63a3 100644
--- a/body/fltk-widgets-menus.adb
+++ b/body/fltk-widgets-menus.adb
@@ -598,7 +598,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Add;
@@ -617,7 +617,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -636,7 +636,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Add;
@@ -655,7 +655,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -676,7 +676,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Insert;
@@ -697,7 +697,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -718,7 +718,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
end Insert;
@@ -739,7 +739,7 @@ package body FLTK.Widgets.Menus is
Interfaces.C.To_C (Text),
Interfaces.C.To_C (Shortcut),
Callback_Convert.To_Address (Action),
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
begin
This.Adjust_Item_Store;
return Index (Added_Spot + 1);
@@ -1186,7 +1186,7 @@ package body FLTK.Widgets.Menus is
Place : in Index)
return Menu_Flag is
begin
- return Menu_Flag (fl_menu_get_mode (This.Void_Ptr, Interfaces.C.int (Place) - 1));
+ return Cint_To_MFlag (fl_menu_get_mode (This.Void_Ptr, Interfaces.C.int (Place) - 1));
end Get_Flags;
@@ -1198,7 +1198,7 @@ package body FLTK.Widgets.Menus is
fl_menu_set_mode
(This.Void_Ptr,
Interfaces.C.int (Place) - 1,
- Interfaces.C.int (Flags));
+ MFlag_To_Cint (Flags));
end Set_Flags;
diff --git a/body/fltk-widgets.adb b/body/fltk-widgets.adb
index 8bc5c86..f5ae433 100644
--- a/body/fltk-widgets.adb
+++ b/body/fltk-widgets.adb
@@ -26,33 +26,6 @@ package body FLTK.Widgets is
package Chk renames Ada.Assertions;
- function "+"
- (Left, Right : in Callback_Flag)
- return Callback_Flag is
- begin
- return
- (Changed => Left.Changed or Right.Changed,
- Interact => Left.Interact or Right.Interact,
- Release => Left.Release or Right.Release,
- Enter_Key => Left.Enter_Key or Right.Enter_Key);
- end "+";
-
-
- function "+"
- (Left, Right : in Damage_Mask)
- return Damage_Mask is
- begin
- return
- (Child => Left.Child or Right.Child,
- Expose => Left.Expose or Right.Expose,
- Scroll => Left.Scroll or Right.Scroll,
- Overlay => Left.Overlay or Right.Overlay,
- User_1 => Left.User_1 or Right.User_1,
- User_2 => Left.User_2 or Right.User_2,
- Full => Left.Full or Right.Full);
- end "+";
-
-
package Group_Convert is new
System.Address_To_Access_Conversions (FLTK.Widgets.Groups.Group'Class);
diff --git a/body/fltk.adb b/body/fltk.adb
index cebf1a9..48023f2 100644
--- a/body/fltk.adb
+++ b/body/fltk.adb
@@ -339,7 +339,7 @@ package body FLTK is
(Left, Right : in Alignment)
return Alignment is
begin
- return Left and (not Right);
+ return Left and not Right;
end "-";
@@ -581,16 +581,91 @@ package body FLTK is
+ -- Callback Flags --
+
+ type Callback_Bitmask is mod 2 ** Interfaces.C.unsigned_char'Size;
+
+ function CFlag_To_Bits is new
+ Ada.Unchecked_Conversion (Callback_Flag, Callback_Bitmask);
+
+ function Bits_To_CFlag is new
+ Ada.Unchecked_Conversion (Callback_Bitmask, Callback_Flag);
+
+
+ function "+"
+ (Left, Right : in Callback_Flag)
+ return Callback_Flag is
+ begin
+ return Bits_To_CFlag (CFlag_To_Bits (Left) or CFlag_To_Bits (Right));
+ end "+";
+
+
+ function "-"
+ (Left, Right : in Callback_Flag)
+ return Callback_Flag is
+ begin
+ return Bits_To_CFlag (CFlag_To_Bits (Left) and not CFlag_To_Bits (Right));
+ end "-";
+
+
+
+
-- Menu Flags --
+ type Menu_Bitmask is mod 2 ** Interfaces.C.int'Size;
+
+ function MFlag_To_Bits is new
+ Ada.Unchecked_Conversion (Menu_Flag, Menu_Bitmask);
+
+ function Bits_To_MFlag is new
+ Ada.Unchecked_Conversion (Menu_Bitmask, Menu_Flag);
+
+
function "+"
(Left, Right : in Menu_Flag)
return Menu_Flag is
begin
- return Left or Right;
+ return Bits_To_MFlag (MFlag_To_Bits (Left) or MFlag_To_Bits (Right));
+ end "+";
+
+
+ function "-"
+ (Left, Right : in Menu_Flag)
+ return Menu_Flag is
+ begin
+ return Bits_To_MFlag (MFlag_To_Bits (Left) and not MFlag_To_Bits (Right));
+ end "-";
+
+
+
+
+ -- Damage Bits --
+
+ type Damage_Bitmask is mod 2 ** Interfaces.C.unsigned_char'Size;
+
+ function Damage_To_Bits is new
+ Ada.Unchecked_Conversion (Damage_Mask, Damage_Bitmask);
+
+ function Bits_To_Damage is new
+ Ada.Unchecked_Conversion (Damage_Bitmask, Damage_Mask);
+
+
+ function "+"
+ (Left, Right : in Damage_Mask)
+ return Damage_Mask is
+ begin
+ return Bits_To_Damage (Damage_To_Bits (Left) or Damage_To_Bits (Right));
end "+";
+ function "-"
+ (Left, Right : in Damage_Mask)
+ return Damage_Mask is
+ begin
+ return Bits_To_Damage (Damage_To_Bits (Left) and not Damage_To_Bits (Right));
+ end "-";
+
+
-- Versioning --