diff options
Diffstat (limited to 'src/fltk.ads')
-rw-r--r-- | src/fltk.ads | 449 |
1 files changed, 0 insertions, 449 deletions
diff --git a/src/fltk.ads b/src/fltk.ads deleted file mode 100644 index d71b399..0000000 --- a/src/fltk.ads +++ /dev/null @@ -1,449 +0,0 @@ - - -with - - Ada.Finalization; - -private with - - Interfaces.C, - System; - - -package FLTK is - - - -- Ugly implementation detail, never use this. - -- This is necessary so things like Text_Buffers and - -- Widgets can talk to each other behind the binding. - type Wrapper is new Ada.Finalization.Limited_Controlled with private; - -- with Type_Invariant => Is_Valid (Wrapper); - - function Is_Valid - (Object : in Wrapper) - return Boolean; - - - - - type Color is new Natural; - type Color_Component is mod 256; - No_Color : constant Color; - - - - - type Alignment is private; - Align_Center : constant Alignment; - Align_Top : constant Alignment; - Align_Bottom : constant Alignment; - Align_Left : constant Alignment; - Align_Right : constant Alignment; - - - - - type Keypress is private; - subtype Pressable_Key is Character range Character'Val (32) .. Character'Val (126); - function Press (Key : in Pressable_Key) return Keypress; - Enter_Key : constant Keypress; - Keypad_Enter_Key : constant Keypress; - Backspace_Key : constant Keypress; - Insert_Key : constant Keypress; - Delete_Key : constant Keypress; - Home_Key : constant Keypress; - End_Key : constant Keypress; - Page_Down_Key : constant Keypress; - Page_Up_Key : constant Keypress; - Down_Key : constant Keypress; - Left_Key : constant Keypress; - Right_Key : constant Keypress; - Up_Key : constant Keypress; - Escape_Key : constant Keypress; - - type Mouse_Button is (No_Button, Left_Button, Middle_Button, Right_Button); - - type Key_Combo is private; - function Press (Key : in Pressable_Key) return Key_Combo; - function Press (Key : in Keypress) return Key_Combo; - function Press (Key : in Mouse_Button) return Key_Combo; - No_Key : constant Key_Combo; - - type Modifier is private; - function "+" (Left, Right : in Modifier) return Modifier; - function "+" (Left : in Modifier; Right : in Pressable_Key) return Key_Combo; - function "+" (Left : in Modifier; Right : in Keypress) return Key_Combo; - function "+" (Left : in Modifier; Right : in Mouse_Button) return Key_Combo; - function "+" (Left : in Modifier; Right : in Key_Combo) return Key_Combo; - Mod_None : constant Modifier; - Mod_Shift : constant Modifier; - Mod_Ctrl : constant Modifier; - Mod_Alt : constant Modifier; - - - - - type Box_Kind is - (No_Box, - Flat_Box, - Up_Box, - Down_Box, - Up_Frame, - Down_Frame, - Thin_Up_Box, - Thin_Down_Box, - Thin_Up_Frame, - Thin_Down_Frame, - Engraved_Box, - Embossed_Box, - Engraved_Frame, - Embossed_Frame, - Border_Box, - Shadow_Box, - Border_Frame, - Shadow_Frame, - Rounded_Box, - RShadow_Box, - Rounded_Frame, - RFlat_Box, - Round_Up_Box, - Round_Down_Box, - Diamond_Up_Box, - Diamond_Down_Box, - Oval_Box, - OShadow_Box, - Oval_Frame, - OFlat_Box, - Plastic_Up_Box, - Plastic_Down_Box, - Plastic_Up_Frame, - Plastic_Down_Frame, - Plastic_Thin_Up_Box, - Plastic_Thin_Down_Box, - Plastic_Round_Up_Box, - Plastic_Round_Down_Box, - Gtk_Up_Box, - Gtk_Down_Box, - Gtk_Up_Frame, - Gtk_Down_Frame, - Gtk_Thin_Up_Box, - Gtk_Thin_Down_Box, - Gtk_Thin_Up_Frame, - Gtk_Thin_Down_Frame, - Gtk_Round_Up_Box, - Gtk_Round_Down_Box, - Gleam_Up_Box, - Gleam_Down_Box, - Gleam_Up_Frame, - Gleam_Down_Frame, - Gleam_Thin_Up_Box, - Gleam_Thin_Down_Box, - Gleam_Round_Up_Box, - Gleam_Round_Down_Box, - Free_Box); - - - - - type Font_Kind is - (Helvetica, - Helvetica_Bold, - Helvetica_Italic, - Helvetica_Bold_Italic, - Courier, - Courier_Bold, - Courier_Italic, - Courier_Bold_Italic, - Times, - Times_Bold, - Times_Italic, - Times_Bold_Italic, - Symbol, - Monospace, - Monospace_Bold, - Zapf_Dingbats, - Free_Font); - - type Font_Size is new Natural; - Normal_Size : constant Font_Size := 14; - - type Font_Size_Array is array (Positive range <>) of Font_Size; - - - - - type Label_Kind is - (Normal_Label, - No_Label, - Shadow_Label, - Engraved_Label, - Embossed_Label, - Multi_Label, - Icon_Label, - Image_Label, - Free_Label); - - - - - type Event_Kind is - (No_Event, - Push, - Release, - Enter, - Leave, - Drag, - Focus, - Unfocus, - Keydown, - Keyup, - Close, - Move, - Shortcut, - Deactivate, - Activate, - Hide, - Show, - Paste, - Selection_Clear, - Mouse_Wheel, - DnD_Enter, - DnD_Drag, - DnD_Leave, - DnD_Release, - Screen_Config_Changed, - Fullscreen); - - type Event_Outcome is (Not_Handled, Handled); - - - - - type Menu_Flag is private; - function "+" (Left, Right : in Menu_Flag) return Menu_Flag; - Flag_Normal : constant Menu_Flag; - Flag_Inactive : constant Menu_Flag; - Flag_Toggle : constant Menu_Flag; - Flag_Value : constant Menu_Flag; - Flag_Radio : constant Menu_Flag; - Flag_Invisible : constant Menu_Flag; - Flag_Submenu : constant Menu_Flag; - Flag_Divider : constant Menu_Flag; - - - - - type Version_Number is new Natural; - - - - - function ABI_Check - (ABI_Ver : in Version_Number) - return Boolean; - - function ABI_Version - return Version_Number; - - function API_Version - return Version_Number; - - function Version - return Version_Number; - - - - - procedure Awake; - - procedure Lock; - - procedure Unlock; - - - - - function Is_Damaged - return Boolean; - - procedure Set_Damaged - (To : in Boolean); - - procedure Flush; - - procedure Redraw; - - - - - function Check - return Boolean; - - function Ready - return Boolean; - - function Wait - return Integer; - - function Wait - (Seconds : in Long_Float) - return Integer; - - function Run - return Integer; - - -private - - - pragma Linker_Options ("-lfltk"); - pragma Linker_Options ("-lfltk_images"); - - - - - type Wrapper is new Ada.Finalization.Limited_Controlled with - record - Void_Ptr : System.Address; - Needs_Dealloc : Boolean := True; - end record; - - overriding procedure Initialize - (This : in out Wrapper); - - - - - No_Color : constant Color := 0; - - - - - type Alignment is new Interfaces.Unsigned_16; - Align_Center : constant Alignment := 0; - Align_Top : constant Alignment := 1; - Align_Bottom : constant Alignment := 2; - Align_Left : constant Alignment := 4; - Align_Right : constant Alignment := 8; - - - - - type Keypress is new Interfaces.Unsigned_16; - type Modifier is new Interfaces.Unsigned_16; - type Key_Combo is - record - Modcode : Modifier; - Keycode : Keypress; - Mousecode : Mouse_Button; - end record; - - function To_C - (Key : in Key_Combo) - return Interfaces.C.unsigned_long; - - function To_Ada - (Key : in Interfaces.C.unsigned_long) - return Key_Combo; - - function To_C - (Key : in Keypress) - return Interfaces.C.unsigned_long; - - function To_Ada - (Key : in Interfaces.C.unsigned_long) - return Keypress; - - function To_C - (Modi : in Modifier) - return Interfaces.C.unsigned_long; - - function To_Ada - (Modi : in Interfaces.C.unsigned_long) - return Modifier; - - function To_C - (Button : in Mouse_Button) - return Interfaces.C.unsigned_long; - - function To_Ada - (Button : in Interfaces.C.unsigned_long) - return Mouse_Button; - - -- these values designed to align with FLTK enumeration types - Mod_None : constant Modifier := 2#00000000#; - Mod_Shift : constant Modifier := 2#00000001#; - Mod_Ctrl : constant Modifier := 2#00000100#; - Mod_Alt : constant Modifier := 2#00001000#; - - No_Key : constant Key_Combo := (Modcode => Mod_None, Keycode => 0, Mousecode => No_Button); - - -- these values correspond to constants defined in FLTK Enumerations.H - Enter_Key : constant Keypress := 16#ff0d#; - Keypad_Enter_Key : constant Keypress := 16#ff8d#; - Backspace_Key : constant Keypress := 16#ff08#; - Insert_Key : constant Keypress := 16#ff63#; - Delete_Key : constant Keypress := 16#ffff#; - Home_Key : constant Keypress := 16#ff50#; - End_Key : constant Keypress := 16#ff57#; - Page_Down_Key : constant Keypress := 16#ff56#; - Page_Up_Key : constant Keypress := 16#ff55#; - Down_Key : constant Keypress := 16#ff54#; - Left_Key : constant Keypress := 16#ff51#; - Right_Key : constant Keypress := 16#ff53#; - Up_Key : constant Keypress := 16#ff52#; - Escape_Key : constant Keypress := 16#ff1b#; - - - - - type Menu_Flag is new Interfaces.Unsigned_8; - Flag_Normal : constant Menu_Flag := 2#00000000#; - Flag_Inactive : constant Menu_Flag := 2#00000001#; - Flag_Toggle : constant Menu_Flag := 2#00000010#; - Flag_Value : constant Menu_Flag := 2#00000100#; - Flag_Radio : constant Menu_Flag := 2#00001000#; - Flag_Invisible : constant Menu_Flag := 2#00010000#; - -- Flag_Submenu_Pointer unlikely to be used - Flag_Submenu : constant Menu_Flag := 2#01000000#; - Flag_Divider : constant Menu_Flag := 2#10000000#; - - - - - pragma Import (C, Awake, "fl_awake"); - pragma Import (C, Lock, "fl_lock"); - pragma Import (C, Unlock, "fl_unlock"); - - - pragma Import (C, Flush, "fl_flush"); - pragma Import (C, Redraw, "fl_redraw"); - - - - - pragma Inline (ABI_Check); - pragma Inline (ABI_Version); - pragma Inline (API_Version); - pragma Inline (Version); - - - pragma Inline (Awake); - pragma Inline (Lock); - pragma Inline (Unlock); - - - pragma Inline (Is_Damaged); - pragma Inline (Set_Damaged); - pragma Inline (Flush); - pragma Inline (Redraw); - - - pragma Inline (Check); - pragma Inline (Ready); - pragma Inline (Wait); - pragma Inline (Run); - - -end FLTK; - |