summaryrefslogtreecommitdiff
path: root/src/fltk-enums.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-enums.ads')
-rw-r--r--src/fltk-enums.ads146
1 files changed, 146 insertions, 0 deletions
diff --git a/src/fltk-enums.ads b/src/fltk-enums.ads
new file mode 100644
index 0000000..91f7353
--- /dev/null
+++ b/src/fltk-enums.ads
@@ -0,0 +1,146 @@
+
+
+with Interfaces.C;
+private with FLTK.Enum_Values;
+
+
+package FLTK.Enums is
+
+
+ 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,
+ Screen,
+ Screen_Bold,
+ Zapf_Dingbats,
+ Free_Font);
+
+
+ type Label_Kind is
+ (Normal_Label,
+ No_Label,
+ Shadow_Label,
+ Engraved_Label,
+ Embossed_Label,
+ Multi_Label,
+ Icon_Label,
+ Image_Label,
+ Free_Label);
+
+
+ -- type Modifier_Key is private;
+ type Modifier_Key is new Interfaces.Unsigned_8;
+
+ -- type Shortcut_Key is private;
+ type Shortcut_Key is
+ record
+ Modifier : Modifier_Key;
+ Keypress : Character;
+ end record;
+
+ subtype Pressable_Key is Character range Character'Val (32) .. Character'Val (126);
+ function Shortcut (Key : Pressable_Key) return Shortcut_Key;
+ No_Key : constant Shortcut_Key;
+
+
+ function "+" (Left, Right : in Modifier_Key) return Modifier_Key;
+ function "+" (Left : in Modifier_Key; Right : in Pressable_Key) return Shortcut_Key;
+ function "+" (Left : in Modifier_Key; Right : in Shortcut_Key) return Shortcut_Key;
+ Mod_None : constant Modifier_Key;
+ Mod_Shift : constant Modifier_Key;
+ Mod_Ctrl : constant Modifier_Key;
+ Mod_Alt : constant Modifier_Key;
+
+
+ function Key_To_C
+ (Key : Shortcut_Key)
+ return Interfaces.C.unsigned_long;
+
+
+private
+
+
+ -- these values designed to align with FLTK enumeration types
+ Mod_None : constant Modifier_Key := 2#00000000#;
+ Mod_Shift : constant Modifier_Key := 2#00000001#;
+ Mod_Ctrl : constant Modifier_Key := 2#00000100#;
+ Mod_Alt : constant Modifier_Key := 2#00001000#;
+
+
+ No_Key : constant Shortcut_Key :=
+ (Modifier => Mod_None, Keypress => Character'Val (0));
+
+
+end FLTK.Enums;
+