GATE
gateui.h File Reference

UI base structures. More...

#include "gate/ui/gate_ui_api.h"
#include "gate/gatetypes.h"
#include "gate/strings.h"
#include "gate/arrays.h"
#include "gate/objects.h"
#include "gate/graphics/colors.h"
#include "gate/inputs.h"

Classes

struct  gate_ui_point
 
struct  gate_ui_size
 
struct  gate_ui_position
 
struct  gate_ui_font
 
struct  gate_ui_host
 
struct  gate_ui_ctrl_class
 
struct  gate_ui_layout_def
 
struct  gate_ui_layout_cell
 
struct  gate_ui_layout
 

Macros

#define GATE_UI_KEY_ALT   GATE_KBD_KEYSTATE_MENU
 
#define GATE_UI_KEY_MENU   GATE_KBD_KEYSTATE_MENU
 
#define GATE_UI_KEY_CTRL   GATE_KBD_KEYSTATE_CTRL
 
#define GATE_UI_KEY_SHIFT   GATE_KBD_KEYSTATE_SHIFT
 
#define GATE_UI_MOUSE_UNKNOWN   0x00
 
#define GATE_UI_MOUSE_LEFT   0x01
 
#define GATE_UI_MOUSE_RIGHT   0x02
 
#define GATE_UI_MOUSE_MIDDLE   0x04
 
#define GATE_UI_MOUSE_SPECIAL1   0x81
 
#define GATE_UI_MOUSE_SPECIAL2   0x82
 
#define GATE_UI_MOUSE_SPECIAL3   0x84
 
#define GATE_UI_MOUSE_SPECIAL4   0x88
 
#define GATE_UI_COLOR_BACKGROUND   0x0001
 
#define GATE_UI_COLOR_WORKSPACE   0x0002
 
#define GATE_UI_COLOR_WINDOW   0x0011
 
#define GATE_UI_COLOR_WINDOWTEXT   0x0012
 
#define GATE_UI_COLOR_WINDOWTEXTDISABLED   0x0013
 
#define GATE_UI_COLOR_DIALOG   0x0014
 
#define GATE_UI_COLOR_DIALOGTEXT   0x0015
 
#define GATE_UI_COLOR_DIALOGTEXTDISABLED   0x0016
 
#define GATE_UI_COLOR_CONTROL   0x0021
 
#define GATE_UI_COLOR_CONTROLTEXT   0x0022
 
#define GATE_UI_COLOR_CONTROLTEXTDISABLED   0x0023
 
#define GATE_UI_COLOR_CONTROLBORDERLIGHT   0x0024
 
#define GATE_UI_COLOR_CONTROLBORDERHILIGHT   0x0025
 
#define GATE_UI_COLOR_CONTROLBORDERSHADOW   0x0026
 
#define GATE_UI_COLOR_CONTROLBORDERDARKSHADOW   0x0027
 
#define GATE_UI_COLOR_MENUBACKGROUND   0x0031
 
#define GATE_UI_COLOR_MENUTEXT   0x0032
 
#define GATE_UI_COLOR_SELECTEDMENUBACKGROUND   0x0033
 
#define GATE_UI_COLOR_SELECTEDMENUTEXT   0x0034
 
#define GATE_UI_COLOR_HOVERMENUBACKGROUND   0x0035
 
#define GATE_UI_COLOR_HOVERMENUTEXT   0x0036
 
#define GATE_UI_COLOR_CONTENTBACKGROUND   0x0041
 
#define GATE_UI_COLOR_CONTENTTEXT   0x0042
 
#define GATE_UI_COLOR_CONTENTTEXTDISABLED   0x0043
 
#define GATE_UI_COLOR_CONTENTSELECTEDBACKGROUND   0x0044
 
#define GATE_UI_COLOR_CONTENTSELECTEDTEXT   0x0045
 
#define GATE_UI_COLOR_CONTENTBORDERLIGHT   0x0046
 
#define GATE_UI_COLOR_CONTENTBORDERHILIGHT   0x0047
 
#define GATE_UI_COLOR_CONTENTBORDERSHADOW   0x0048
 
#define GATE_UI_COLOR_CONTENTBORDERDARKSHADOW   0x0049
 
#define GATE_UI_FONT_TYPE_STANDARD   0x0000
 
#define GATE_UI_FONT_TYPE_SANSSERIF   0x0001
 
#define GATE_UI_FONT_TYPE_SERIF   0x0002
 
#define GATE_UI_FONT_TYPE_MONOSPACE   0x0003
 
#define GATE_UI_FLAG_ENABLED   0x0001
 
#define GATE_UI_FLAG_VISIBLE   0x0002
 
#define GATE_UI_FLAG_RESIZABLE   0x0004
 
#define GATE_UI_FLAG_NOPARENT   0x0008
 
#define GATE_UI_LAYOUT_TYPE_AUTO   0
 
#define GATE_UI_LAYOUT_TYPE_PIXEL   1
 
#define GATE_UI_LAYOUT_TYPE_PERCENT   2
 
#define GATE_UI_LAYOUT_TYPE_UNITSCALE   4
 

Typedefs

typedef struct gate_ui_point gate_ui_point_t
 
typedef struct gate_ui_size gate_ui_size_t
 
typedef struct gate_ui_position gate_ui_position_t
 
typedef gate_color_t gate_ui_color_t
 
typedef struct gate_ui_font gate_ui_font_t
 
typedef gate_bool_t(* gate_ui_enum_fontnames_callback_t) (char const *font_name, void *userparam)
 
typedef struct gate_ui_host gate_ui_host_t
 
typedef struct gate_ui_ctrl_class gate_ui_ctrl_t
 
typedef struct gate_ui_layout_def gate_ui_layout_def_t
 
typedef struct gate_ui_layout_cell gate_ui_layout_cell_t
 
typedef struct gate_ui_layout gate_ui_layout_t
 

Functions

GATE_UI_API gate_result_t gate_ui_host_init (gate_ui_host_t *host, gate_uintptr_t apphandle, void *userparam)
 
GATE_UI_API gate_result_t gate_ui_host_uninit (gate_ui_host_t *host)
 
GATE_UI_API gate_result_t gate_ui_host_run (gate_ui_host_t *host)
 
GATE_UI_API gate_result_t gate_ui_host_quit (gate_ui_host_t *host)
 
GATE_UI_API void * gate_ui_host_get_userparam (gate_ui_host_t *host)
 
GATE_UI_API gate_uintptr_t gate_ui_host_get_apphandle (gate_ui_host_t *host)
 
GATE_UI_API gate_uint32_t gate_ui_host_default_line_height (gate_ui_host_t *host)
 
GATE_UI_API gate_uint32_t gate_ui_host_default_control_height (gate_ui_host_t *host, gate_uint32_t line_count)
 
GATE_UI_API gate_result_t gate_ui_host_enum_fonts (gate_ui_host_t *host, gate_ui_enum_fontnames_callback_t callback, void *userparam)
 
GATE_UI_API gate_result_t gate_ui_host_default_font (gate_ui_host_t *host, gate_uint32_t fonttype, gate_ui_font_t *font)
 
GATE_UI_API gate_int32_t gate_ui_host_get_pixels_in_points (gate_ui_host_t *host, gate_real32_t points)
 
GATE_UI_API gate_real32_t gate_ui_host_get_points_in_pixels (gate_ui_host_t *host, gate_int32_t pixels)
 
GATE_UI_API gate_result_t gate_ui_host_default_color (gate_ui_host_t *host, gate_uint32_t colortype, gate_ui_color_t *col)
 
GATE_UI_API gate_result_t gate_ui_host_clipboard_get_text (gate_ui_host_t *host, gate_string_t *text)
 
GATE_UI_API gate_result_t gate_ui_host_clipboard_set_text (gate_ui_host_t *host, gate_string_t const *text)
 
GATE_UI_API gate_result_t gate_ui_host_default_workarea (gate_ui_host_t *host, gate_ui_position_t *area)
 
GATE_UI_API gate_result_t gate_ui_host_total_workarea (gate_ui_host_t *host, gate_ui_position_t *area)
 
GATE_UI_API gate_result_t gate_ui_host_execute (gate_ui_host_t *host, gate_runnable_t *code)
 
GATE_UI_API void * gate_ui_ctrl_get_userparam (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_ui_host_tgate_ui_ctrl_get_host (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_ui_ctrl_tgate_ui_ctrl_get_parent (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_result_t gate_ui_ctrl_init (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_result_t gate_ui_ctrl_destroy (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_bool_t gate_ui_ctrl_is_created (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_bool_t gate_ui_ctrl_is_enabled (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_bool_t gate_ui_ctrl_is_visible (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_bool_t gate_ui_ctrl_is_focused (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_position (gate_ui_ctrl_t *ctrl, gate_ui_position_t *position)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_size (gate_ui_ctrl_t *ctrl, gate_ui_size_t *size)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_children (gate_ui_ctrl_t *ctrl, gate_array_t *children)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_text (gate_ui_ctrl_t *ctrl, gate_string_t *text)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_text_length (gate_ui_ctrl_t *ctrl, gate_uint32_t *length)
 
GATE_UI_API gate_result_t gate_ui_ctrl_get_state (gate_ui_ctrl_t *ctrl, gate_int32_t *state)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_enabled (gate_ui_ctrl_t *ctrl, gate_bool_t enabledstate)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_visible (gate_ui_ctrl_t *ctrl, gate_bool_t visibility)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_focus (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_position (gate_ui_ctrl_t *ctrl, gate_ui_point_t const *position, gate_ui_size_t const *size)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_text (gate_ui_ctrl_t *ctrl, gate_string_t const *text)
 
GATE_UI_API gate_result_t gate_ui_ctrl_set_state (gate_ui_ctrl_t *ctrl, gate_int32_t state)
 
GATE_UI_API gate_result_t gate_ui_ctrl_refresh (gate_ui_ctrl_t *ctrl)
 
GATE_UI_API gate_result_t gate_ui_layout_create (gate_ui_layout_t *layout)
 
GATE_UI_API gate_result_t gate_ui_layout_clear (gate_ui_layout_t *layout)
 
GATE_UI_API gate_result_t gate_ui_layout_add_column (gate_ui_layout_t *layout, gate_uint32_t type, gate_real32_t value)
 
GATE_UI_API gate_result_t gate_ui_layout_add_row (gate_ui_layout_t *layout, gate_uint32_t type, gate_real32_t value)
 
GATE_UI_API gate_uint32_t gate_ui_layout_get_rows (gate_ui_layout_t *layout)
 
GATE_UI_API gate_uint32_t gate_ui_layout_get_columns (gate_ui_layout_t *layout)
 
GATE_UI_API gate_result_t gate_ui_layout_set_control (gate_ui_layout_t *layout, gate_ui_ctrl_t *ctrl, gate_uint32_t row, gate_uint32_t col, gate_uint32_t rowspan, gate_uint32_t colspan)
 
GATE_UI_API gate_result_t gate_ui_layout_destroy (gate_ui_layout_t *layout)
 
GATE_UI_API gate_result_t gate_ui_layout_apply (gate_ui_layout_t const *layout, gate_uint32_t unitLength, gate_ui_position_t const *pose)
 

Detailed Description

UI base structures.

Macro Definition Documentation

◆ GATE_UI_FLAG_ENABLED

#define GATE_UI_FLAG_ENABLED   0x0001

control can receive input (mouse/keyboard)

◆ GATE_UI_FLAG_NOPARENT

#define GATE_UI_FLAG_NOPARENT   0x0008

control is not attached to parent

◆ GATE_UI_FLAG_RESIZABLE

#define GATE_UI_FLAG_RESIZABLE   0x0004

control can be resized

◆ GATE_UI_FLAG_VISIBLE

#define GATE_UI_FLAG_VISIBLE   0x0002

control is visible (if parent is visible)