6#include "dcon_generated.hpp"
7#include "unordered_dense.h"
35static_assert(
sizeof(
xy_pair) == 4);
67static_assert(
sizeof(gfx_object) == 10);
116static_assert(
sizeof(text_base_data) == 8);
156static_assert(
sizeof(button_data) ==
sizeof(text_base_data) + 8);
187static_assert(
sizeof(text_data) ==
sizeof(text_base_data) + 4);
302 static_assert(
sizeof(internal_data) == 16);
325static_assert(
sizeof(element_data) == 32);
388 return !(*
this == o);
399 return ankerl::unordered_dense::detail::wyhash::hash(&sv,
sizeof(sv));
427 std::unique_ptr<element_base>
root;
438 ankerl::unordered_dense::map<dcon::text_key, element_target, hash_text_key>
defs_by_name;
521 return +[](
sys::state&, dcon::gui_def_id) {
return std::make_unique<T>(); };
tagged_vector< element_data, dcon::gui_def_id > gui
std::vector< window_extension > extensions
tagged_vector< gfx_object, dcon::gfx_object_id > gfx
static constexpr dcon::texture_id small_tiles_dialog
static constexpr dcon::texture_id tiles_dialog
tagged_vector< dcon::text_key, dcon::texture_id > textures
static constexpr dcon::texture_id transparency
constexpr ui_hook_fn hook()
int32_t ui_height(sys::state const &state)
std::unique_ptr< element_base >(*)(sys::state &, dcon::gui_def_id) ui_hook_fn
constexpr int32_t text_background_bit_offset
void make_size_from_graphics(sys::state &state, ui::element_data &dat)
constexpr int32_t checkbox_bit_offset
xy_pair child_relative_location(sys::state &state, element_base const &parent, element_base const &child)
int32_t ui_width(sys::state const &state)
xy_pair get_absolute_location(sys::state &state, element_base const &node)
@ position_sensitive_tooltip
constexpr int32_t button_scripting_bit_offset
constexpr int32_t rotation_bit_offset
constexpr int32_t orientation_bit_offset
void create_in_game_windows(sys::state &state)
xy_pair child_relative_non_mirror_location(sys::state &state, element_base const &parent, element_base const &child)
constexpr int32_t clicksound_bit_offset
std::unique_ptr< element_base > make_element(sys::state &state, std::string_view name)
void populate_definitions_map(sys::state &state)
void load_text_gui_definitions(sys::state &state, parsers::building_gfx_context &context, parsers::error_handler &err)
std::unique_ptr< element_base > make_element_immediate(sys::state &state, dcon::gui_def_id id)
void show_main_menu_nation_picker(sys::state &state)
void show_main_menu_nation_basic(sys::state &state)
xy_pair get_absolute_non_mirror_location(sys::state &state, element_base const &node)
@ horizontal_progress_bar
bool operator==(chat_message const &o) const
chat_message(const chat_message &)=default
chat_message(chat_message &&)=default
bool operator!=(chat_message const &o) const
chat_message & operator=(const chat_message &)=default
chat_message & operator=(chat_message &&)=default
static constexpr uint8_t rotation_mask
element_type get_element_type() const
orientation get_orientation() const
static constexpr uint8_t ex_is_top_level
static constexpr uint8_t orientation_mask
static constexpr uint8_t type_mask
bool is_top_level() const
rotation get_rotation() const
union ui::element_data::internal_data data
dcon::gui_def_id definition
object_type get_object_type() const
dcon::texture_id primary_texture_handle
static constexpr uint8_t has_click_sound
static constexpr uint8_t always_transparent
static constexpr uint8_t type_mask
bool is_vertically_flipped() const
static constexpr uint8_t flip_v
bool is_always_transparent() const
static constexpr uint8_t do_transparency_check
bool is_partially_transparent() const
auto operator()(dcon::text_key sv) const noexcept -> uint64_t
dcon::gfx_object_id gfx_object
static constexpr uint8_t is_mask_mask
static constexpr uint8_t frame_mask
dcon::gfx_object_id background_image
element_base * under_mouse
xy_pair relative_location
alignment image_alignment
sys::macro_builder_template main_template
element_base * r_ledger_window
std::unique_ptr< element_base > army_group_selector_root
element_base * map_rr_legend
element_base * msg_log_window
element_base * technology_subwindow
element_base * military_subwindow
element_base * menubar_window
element_base * map_rec_legend
std::unique_ptr< element_base > end_screen
std::chrono::time_point< std::chrono::steady_clock > last_render_time
uint8_t chat_messages_index
element_base * search_window
std::unique_ptr< element_base > nation_picker
element_base * multi_unit_selection_window
std::array< chat_message, 32 > chat_messages
element_base * last_tooltip
element_base * trade_subwindow
std::unique_ptr< grid_box > unit_details_box
element_base * unit_window_army
std::vector< sys::macro_builder_template > templates
std::unique_ptr< element_base > province_details_root
std::unique_ptr< element_base > army_group_deselector_root
element_base * map_nav_legend
element_base * fps_counter
std::unique_ptr< tool_tip > tooltip
std::unique_ptr< element_base > rgos_root
std::vector< std::unique_ptr< element_base > > endof_landcombat_windows
std::unique_ptr< element_base > select_states_legend
xy_pair relative_mouse_location
element_base * topbar_subwindow
element_base * change_leader_window
element_base * r_chat_window
dcon::gfx_object_id load_screens_gfx_id[8]
element_base * unit_window_navy
unit_details_window< dcon::army_id > * army_status_window
unit_details_window< dcon::navy_id > * navy_status_window
ankerl::unordered_dense::map< dcon::text_key, element_target, hash_text_key > defs_by_name
std::unique_ptr< element_base > root
element_base * edit_target
element_base * map_civ_level_legend
element_base * left_mouse_hold_target
std::vector< std::unique_ptr< element_base > > endof_navalcombat_windows
element_base * r_main_menu
element_base * request_window
element_base * request_topbar_listbox
element_base * province_window
element_base * army_group_window_land
element_base * build_unit_window
element_base * msg_filters_window
element_base * map_col_legend
bool scrollbar_continuous_movement
element_base * map_rank_legend
sys::macro_builder_template current_template
element_base * tl_chat_list
element_base * population_subwindow
std::vector< dcon::technology_id > tech_queue
dcon::gfx_object_id bg_gfx_id
element_base * politics_subwindow
element_base * main_menu_win
element_base * mouse_sensitive_target
element_base * map_dip_legend
element_base * diplomacy_subwindow
std::unique_ptr< element_base > military_root
element_base * army_combat_window
element_base * build_province_unit_window
element_base * drag_target
element_base * under_mouse
element_base * msg_window
element_base * scroll_target
element_base * map_gradient_legend
element_base * console_window_r
std::unique_ptr< element_base > units_root
element_base * production_subwindow
alignment get_alignment() const
static constexpr uint16_t alignment_mask
static constexpr uint8_t is_edit_mask
static constexpr uint8_t is_fixed_size_mask
bool is_fixed_size() const
text_background get_text_background() const
static constexpr uint8_t is_instant_mask
static constexpr uint8_t background_mask
dcon::gui_def_id first_child
bool is_fullscreen() const
static constexpr uint8_t is_fullscreen_mask
static constexpr uint8_t is_moveable_mask
static constexpr uint8_t is_dialog_mask
text_base_data text_common
overlapping_data overlapping