/* UI_WIDGET.H header included in hcex build. */ #ifndef __UI_WIDGET_H #define __UI_WIDGET_H #pragma once /* ---------- headers */ #include "integer_math.h" #include "real_math.h" /* ---------- constants */ /* ---------- macros */ /* ---------- structures */ /* ---------- prototypes/UI_WIDGET.C */ boolean event_controller_index_compatible_with_widget( struct event_record const *event, struct widget_instance const *widget); void set_ui_plasma_effect_color( real a, real r, real g, real b); void ui_widgets_initialize( void); void ui_widgets_safe_to_load( boolean safe); void ui_widgets_set_fade_value( real value); void ui_widget_debug_show_path( boolean show); int widget_instance_count_children( struct widget_instance *widget); struct widget_instance *widget_instance_get_nth_child( struct widget_instance *widget, int n); void *ui_widget_realloc( void *pointer, word size, char const *file, unsigned long line); void widget_free( void *ptr); boolean ui_widgets_active( void); boolean ui_widgets_active_for_local_player( short local_player_index); void ui_widgets_inhibit_processing( boolean inhibit); void draw_bitmap_in_rect( struct bitmap_data *bitmap, rectangle2d *rect, rectangle2d *bitmap_rect, rectangle2d *clip_rect, pixel32 argb, struct rasterizer_dynamic_screen_geometry_parameters *multitexture_params, boolean no_plasma); struct widget_instance *widget_instance_get_topmost_parent( struct widget_instance *widget); int widget_instance_get_child_index_from_parent( struct widget_instance *widget); void widget_instance_set_visibility_recursive( struct widget_instance *widget, boolean visible); void main_menu_active( boolean active); boolean main_menu_is_active( void); boolean main_menu_screen_is_active( void); void ui_set_next_level( short level); void ui_widget_load_progress_widget( void); boolean filesystem_check_thread_is_active( void); void display_error_when_main_menu_loaded( short error_code); void display_error_deferred( short error_code, short local_player_index, boolean modal, boolean pause_game_time); void display_error_abort_to_dashboard_deferred( short error_code, boolean optional); void ui_start_main_menu_music( void); void ui_stop_main_menu_music( void); boolean ui_main_menu_music_active( void); void ui_widgets_disable_pause_game( long duration_ticks); short remap_sticks_for_local_player( short icon, short local_player_index); real_rgb_color get_ui_rgb_white( void); real_argb_color get_ui_argb_white( void); pixel32 modulate_pixel32_by_real_alpha( pixel32 argb, real alpha); void ui_widget_delete( struct widget_instance *widget); void ui_widgets_close_all( void); void ui_widgets_close_all_for_local_player( short local_player_index); void ui_widgets_delete_history( void); void ui_widgets_pop_stack( short local_player_index); void main_screen_shell_begin_fade( unsigned long fade_duration_milliseconds); void ui_play_audio_feedback_sound( short audio_feedback); void draw_string_and_hack_in_icons( rectangle2d *bounds, rectangle2d *clip, point2d *cursor_reference, short height_adjust, wchar_t const *instring, boolean ignore_icon_color); void ui_widgets_dispose( void); boolean widget_event_function_list_widget_goto_next_item( struct widget_instance *widget, struct event_record *event, boolean *widget_deleted); boolean widget_event_function_list_widget_goto_previous_item( struct widget_instance *widget, struct event_record *event, boolean *widget_deleted); void render_ui_widgets_postgame( short local_player_index, rectangle2d *window_bounds); void render_ui_widgets( short local_player_index, rectangle2d const *window_bounds); struct widget_instance *ui_widget_load_by_name_or_tag( char const *name, long tag_index, struct widget_instance *parent, short local_player_index, long invoking_widget_tag, long focused_child_parent_widget_tag, short focused_child_index); void main_screen_shell_load( void); void network_game_reset_to_pregame_ui( void); void display_error( short error_code, short local_player_index, boolean modal, boolean pause_game_time); void display_error_abort_to_dashboard( short error_code, boolean optional); void display_error_damaged_media( void); void display_errors_deferred_until_cinematic_stop( void); void display_scenario_help( short string_index); void process_ui_widgets( void); /* ---------- globals */ extern short dashboard_abort_error; /* ---------- public code */ #endif // __UI_WIDGET_H