|
- -- Copyright (c) 2024 - Ognjen 'xolatile' Milan Robovic
- --
- -- GNU General Public Licence (version 3 or later)
-
- with core;
-
- package ui is
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- type style is (
- main,
- fairy, dwarf, gnoll, kobold, goblin, imp
- );
-
- type enumeration is (
- gui_none, gui_button, gui_line, gui_text, gui_icon, gui_sprite,
- gui_orient
- );
-
- ------------------------------------------------------------------------------------------
-
- type gui_data is record
- kind : enumeration := gui_none;
- text : core.short_string := "-- ";
- info : core.long_string := "-- ";
- number : integer := 0;
- image : core.sprite := (others => 0);
- end record;
-
- empty : gui_data;
-
- type gui_array is array (natural range <>) of gui_data;
-
- type structure is record
- 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 : access gui_array := null;
- end record;
-
- ------------------------------------------------------------------------------------------
-
- style_count : constant natural := style'pos (style'last) + 1;
-
- active : style := main;
- prioritize : boolean := false;
-
- ------------------------------------------------------------------------------------------
-
- procedure configure;
- procedure synchronize;
-
- procedure write (text : in string; x, y : in integer; tint : in core.colour := (others => 255); size : in natural := 0; code : in boolean := false);
-
- procedure draw_icon (data : in core.sprite; text : in string; x, y : in integer; action : core.pointer := core.idle_skip'access);
- procedure draw_overicon (data : in core.sprite; text : in string; x, y : in integer; action : core.pointer := core.idle_skip'access);
-
- procedure draw_sprite (data : in core.sprite; text : in string; x, y, offset : in integer; action : core.pointer := core.idle_skip'access);
-
- procedure draw_text_box (x, y, width, height : in integer);
- procedure draw_help_box (x, y, width, height : in integer; action : core.pointer := core.idle_skip'access);
-
- procedure draw_frame (description : in string; x, y, width, height : in integer; action : core.pointer := core.idle_skip'access);
- procedure draw_button (text, description : in string; icon : in core.sprite; x, y, width, height : in integer; action : core.pointer := core.idle_skip'access);
-
- procedure draw_check_box (x, y : in integer; on : in out boolean; text : in string);
-
- procedure draw_title_bar (x, y, width : in integer; title : in string);
- procedure draw_fill_bar (x, y, width : in integer; fill : in float);
- procedure draw_tiny_fill_bar (x, y, width : in integer; fill : in float; tint : in core.colour);
- procedure draw_scroll_bar (x, y, height : in integer; offset : in integer);
-
- procedure draw_menu (x, y, width, height : in integer);
- procedure draw_tiny_menu (x, y, width, height : in integer);
- procedure draw_icon_menu (x, y, width, height : in integer);
-
- procedure draw_state_box (x, y : in integer);
-
- procedure add_structure (data : in structure);
-
- procedure add_structure_button (icon : in core.sprite; name : in core.short_string; text : in core.long_string := "");
- procedure add_structure_orient;
-
- procedure write_ada_code (text : in core.string_box_data; x, y : in integer);
-
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-
- end ui;
|