summaryrefslogtreecommitdiff
path: root/src/fltk-menu_items.ads
diff options
context:
space:
mode:
Diffstat (limited to 'src/fltk-menu_items.ads')
-rw-r--r--src/fltk-menu_items.ads101
1 files changed, 65 insertions, 36 deletions
diff --git a/src/fltk-menu_items.ads b/src/fltk-menu_items.ads
index c2a000c..5c300d3 100644
--- a/src/fltk-menu_items.ads
+++ b/src/fltk-menu_items.ads
@@ -6,6 +6,7 @@
with
+ FLTK.Images,
FLTK.Widgets;
@@ -17,13 +18,15 @@ package FLTK.Menu_Items is
type Menu_Item_Reference (Data : not null access Menu_Item'Class) is limited null record
with Implicit_Dereference => Data;
+ type Menu_Item_Array is array (Positive range <>) of Menu_Item;
+
package Forge is
-- Usually you don't bother with this and just add items
- -- to Menus directly using the Add subprograms in that package.
+ -- to Menus directly using the Add/Insert subprograms in that package.
function Create
(Text : in String;
@@ -38,152 +41,176 @@ package FLTK.Menu_Items is
function Get_Callback
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return FLTK.Widgets.Widget_Callback;
procedure Set_Callback
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
Func : in FLTK.Widgets.Widget_Callback);
procedure Do_Callback
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
Widget : in out FLTK.Widgets.Widget'Class);
function Has_Checkbox
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Boolean;
function Is_Radio
- (Item : in Menu_Item)
+ (This : in Menu_Item)
+ return Boolean;
+
+ function Is_Submenu
+ (This : in Menu_Item)
return Boolean;
function Get_State
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Boolean;
procedure Set_State
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Boolean);
+ procedure Set
+ (This : in out Menu_Item);
+
+ procedure Clear
+ (This : in out Menu_Item);
+
procedure Set_Only
- (Item : in out Menu_Item);
+ (This : in out Menu_Item);
function Get_Label
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return String;
procedure Set_Label
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
+ Text : in String);
+
+ procedure Set_Label
+ (This : in out Menu_Item;
+ Kind : in Label_Kind;
Text : in String);
function Get_Label_Color
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Color;
procedure Set_Label_Color
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Color);
function Get_Label_Font
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Font_Kind;
procedure Set_Label_Font
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Font_Kind);
function Get_Label_Size
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Font_Size;
procedure Set_Label_Size
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Font_Size);
function Get_Label_Type
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Label_Kind;
procedure Set_Label_Type
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Label_Kind);
function Get_Shortcut
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Key_Combo;
procedure Set_Shortcut
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Key_Combo);
function Get_Flags
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Menu_Flag;
procedure Set_Flags
- (Item : in out Menu_Item;
+ (This : in out Menu_Item;
To : in Menu_Flag);
+ function Get_Image
+ (This : in Menu_Item)
+ return access FLTK.Images.Image'Class;
+
+ procedure Set_Image
+ (This : in out Menu_Item;
+ Pict : in out FLTK.Images.Image'Class);
+
+
+
+
procedure Activate
- (Item : in out Menu_Item);
+ (This : in out Menu_Item);
procedure Deactivate
- (Item : in out Menu_Item);
+ (This : in out Menu_Item);
procedure Show
- (Item : in out Menu_Item);
+ (This : in out Menu_Item);
procedure Hide
- (Item : in out Menu_Item);
+ (This : in out Menu_Item);
function Is_Active
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Boolean;
function Is_Visible
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Boolean;
function Is_Active_And_Visible
- (Item : in Menu_Item)
+ (This : in Menu_Item)
return Boolean;
private
- type Menu_Item is new Wrapper with null record;
+ type Menu_Item is new Wrapper with record
+ Current_Image : access FLTK.Images.Image'Class;
+ end record;
overriding procedure Finalize
(This : in out Menu_Item);
-
-
pragma Inline (Get_Callback);
pragma Inline (Set_Callback);
pragma Inline (Do_Callback);
-
pragma Inline (Has_Checkbox);
pragma Inline (Is_Radio);
pragma Inline (Get_State);
pragma Inline (Set_State);
pragma Inline (Set_Only);
-
pragma Inline (Get_Label);
pragma Inline (Set_Label);
pragma Inline (Get_Label_Color);
@@ -195,12 +222,13 @@ private
pragma Inline (Get_Label_Type);
pragma Inline (Set_Label_Type);
-
pragma Inline (Get_Shortcut);
pragma Inline (Set_Shortcut);
pragma Inline (Get_Flags);
pragma Inline (Set_Flags);
+ pragma Inline (Get_Image);
+ pragma Inline (Set_Image);
pragma Inline (Activate);
pragma Inline (Deactivate);
@@ -213,3 +241,4 @@ private
end FLTK.Menu_Items;
+