diff options
Diffstat (limited to 'body')
-rw-r--r-- | body/c_fl_event.cpp | 8 | ||||
-rw-r--r-- | body/c_fl_event.h | 2 | ||||
-rw-r--r-- | body/c_fl_static.cpp | 12 | ||||
-rw-r--r-- | body/c_fl_static.h | 3 | ||||
-rw-r--r-- | body/fltk-event.adb | 24 | ||||
-rw-r--r-- | body/fltk-menu_items.adb | 6 | ||||
-rw-r--r-- | body/fltk-screen.adb | 4 | ||||
-rw-r--r-- | body/fltk-static.adb | 33 | ||||
-rw-r--r-- | body/fltk-widgets-menus-menu_bars-systemwide.adb | 21 | ||||
-rw-r--r-- | body/fltk-widgets-menus.adb | 20 | ||||
-rw-r--r-- | body/fltk-widgets.adb | 27 | ||||
-rw-r--r-- | body/fltk.adb | 79 |
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 -- |