xhads/source/ui.ads

99 lines
3.8 KiB
Ada
Raw Normal View History

-- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
--
-- GNU General Public Licence (version 3 or later)
2024-02-15 21:03:09 -05:00
with core;
package ui is
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
type style is (
main,
fairy, dwarf, gnoll, kobold, goblin, imp
2024-02-15 21:03:09 -05:00
);
2024-05-03 07:55:17 -04:00
type enumeration is (
gui_none, gui_button, gui_line, gui_text, gui_icon, gui_sprite, gui_orient
);
2024-05-01 09:15:38 -04:00
------------------------------------------------------------------------------------------
2024-05-03 07:55:17 -04:00
gui_size : constant := 24;
type gui_data is record
kind : enumeration;
text : core.short_string;
number : integer;
image : core.sprite;
end record;
type gui_array is array (0 .. gui_size) of gui_data;
2024-05-01 09:15:38 -04:00
type structure is record
2024-05-03 07:55:17 -04:00
title : core.short_string := "- ";
toggle : core.signal_code := core.signal_space;
show : boolean := false;
center : boolean := false;
resize : boolean := false;
x : integer := 0;
y : integer := 0;
width : integer := 0;
height : integer := 0;
gui_n : natural := 0;
gui_list : gui_array := (others => (gui_none, "- ", 0, (others => 0)));
2024-05-01 09:15:38 -04:00
end record;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
active : style := main;
prioritize : boolean := false;
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------
procedure configure;
2024-05-01 09:15:38 -04:00
procedure synchronize;
procedure write (text : in string; x, y : in integer);
2024-02-15 21:03:09 -05:00
2024-05-01 07:24:10 -04:00
procedure draw_icon (data : in core.sprite; description : in string; x, y : in integer; action : core.pointer := core.idle'access);
procedure draw_overicon (data : in core.sprite; description : in string; x, y : in integer; action : core.pointer := core.idle'access);
2024-02-15 21:03:09 -05:00
2024-05-01 09:15:38 -04:00
procedure draw_text_box (text : in string);
procedure draw_help_box (x, y, width, height : in integer; action : core.pointer := core.idle'access);
2024-05-01 07:24:10 -04:00
procedure draw_frame (description : in string; x, y, width, height : in integer; action : core.pointer := core.idle'access);
2024-02-15 21:03:09 -05:00
2024-02-19 21:52:43 -05:00
procedure draw_title_bar (x, y, width : in integer; title : in string);
procedure draw_fill_bar (x, y, width : in integer; fill : in float);
2024-02-19 21:52:43 -05:00
procedure draw_scroll_bar (x, y, height : in integer; offset : in integer);
2024-02-16 14:58:54 -05:00
2024-04-27 12:34:16 -04:00
procedure draw_menu (x, y, width, height : in integer);
procedure draw_tiny_menu (x, y, width, height : in integer);
2024-05-01 07:24:10 -04:00
procedure draw_icon_menu (description : in string; x, y, width, height : in integer; action : core.pointer := core.idle'access);
2024-02-15 21:03:09 -05:00
procedure draw_state_box (x, y : in integer);
--~procedure add_structure (data : in structure);
procedure add_structure (
title : core.short_string := "- ";
toggle : core.signal_code := core.signal_space;
show : boolean := false;
center : boolean := false;
resize : boolean := false;
x : integer := 0;
y : integer := 0;
width : integer := 0;
height : integer := 0;
gui_n : natural := 0;
gui_list : gui_array := (others => (gui_none, "- ", 0, (others => 0)))
);
2024-04-23 16:19:29 -04:00
procedure add_structure_button (data : in integer; icon : in core.sprite; text : in core.short_string);
2024-05-03 07:55:17 -04:00
2024-02-15 21:03:09 -05:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
end ui;