UI Widgets

Graphical User Interface Widgets.

Types

oc_ui_text_box_result

typedef struct oc_ui_text_box_result
{
    bool changed;
    bool accepted;
    oc_str8 text;
    oc_ui_box* box;
} oc_ui_text_box_result;

oc_ui_edit_move

typedef enum oc_ui_edit_move
{
    OC_UI_EDIT_MOVE_NONE = 0,
    OC_UI_EDIT_MOVE_CHAR = 1,
    OC_UI_EDIT_MOVE_WORD = 2,
    OC_UI_EDIT_MOVE_LINE = 3
} oc_ui_edit_move;

Enum Constants

  • OC_UI_EDIT_MOVE_NONE
  • OC_UI_EDIT_MOVE_CHAR
  • OC_UI_EDIT_MOVE_WORD
  • OC_UI_EDIT_MOVE_LINE

oc_ui_text_box_info

typedef struct oc_ui_text_box_info
{
    oc_str8 text;
    oc_str8 defaultText;
    i32 cursor;
    i32 mark;
    oc_ui_edit_move selectionMode;
    i32 wordSelectionInitialCursor;
    i32 wordSelectionInitialMark;
    i32 firstDisplayedChar;
    f64 cursorBlinkStart;
} oc_ui_text_box_info;

oc_ui_select_popup_info

typedef struct oc_ui_select_popup_info
{
    bool changed;
    i32 selectedIndex;
    i32 optionCount;
    oc_str8* options;
    oc_str8 placeholder;
} oc_ui_select_popup_info;

oc_ui_radio_group_info

typedef struct oc_ui_radio_group_info
{
    bool changed;
    i32 selectedIndex;
    i32 optionCount;
    oc_str8* options;
} oc_ui_radio_group_info;

Functions

oc_ui_label

oc_ui_sig oc_ui_label(char* key, char* label);

oc_ui_label_str8

oc_ui_sig oc_ui_label_str8(oc_str8 key, oc_str8 label);

oc_ui_button

oc_ui_sig oc_ui_button(char* key, char* text);

oc_ui_button_str8

oc_ui_sig oc_ui_button_str8(oc_str8 key, oc_str8 text);

oc_ui_checkbox

oc_ui_sig oc_ui_checkbox(char* key, bool* checked);

oc_ui_checkbox_str8

oc_ui_sig oc_ui_checkbox_str8(oc_str8 key, bool* checked);

oc_ui_slider

oc_ui_box* oc_ui_slider(char* name, f32* value);

oc_ui_slider_str8

oc_ui_box* oc_ui_slider_str8(oc_str8 name, f32* value);

oc_ui_tooltip

void oc_ui_tooltip(char* key, char* text);

oc_ui_tooltip_str8

void oc_ui_tooltip_str8(oc_str8 key, oc_str8 text);

oc_ui_menu_bar_begin

void oc_ui_menu_bar_begin(char* key);

oc_ui_menu_bar_begin_str8

void oc_ui_menu_bar_begin_str8(oc_str8 key);

oc_ui_menu_bar_end

void oc_ui_menu_bar_end();

oc_ui_menu_begin

void oc_ui_menu_begin(char* key, char* name);

oc_ui_menu_begin_str8

void oc_ui_menu_begin_str8(oc_str8 key, oc_str8 name);

oc_ui_menu_end

void oc_ui_menu_end();

oc_ui_menu_button

oc_ui_sig oc_ui_menu_button(char* key, char* text);

oc_ui_menu_button_str8

oc_ui_sig oc_ui_menu_button_str8(oc_str8 key, oc_str8 text);

oc_ui_text_box

oc_ui_text_box_result oc_ui_text_box(char* key, oc_arena* arena, oc_ui_text_box_info* info);

oc_ui_text_box_str8

oc_ui_text_box_result oc_ui_text_box_str8(oc_str8 key, oc_arena* arena, oc_ui_text_box_info* info);

oc_ui_select_popup

oc_ui_select_popup_info oc_ui_select_popup(char* key, oc_ui_select_popup_info* info);

oc_ui_select_popup_str8

oc_ui_select_popup_info oc_ui_select_popup_str8(oc_str8 key, oc_ui_select_popup_info* info);

oc_ui_radio_group

oc_ui_radio_group_info oc_ui_radio_group(char* key, oc_ui_radio_group_info* info);

oc_ui_radio_group_str8

oc_ui_radio_group_info oc_ui_radio_group_str8(oc_str8 key, oc_ui_radio_group_info* info);