Written using libutil, my friend's runtime library. Check it out.
(Here's a ittle showcase video)
- Object oriented
- Keybind selector for checkboxes, sliders and dropdowns
- Scrolling on groups and listboxes
- Menu movable by dragging
- Menu resizing by dragging
- DPI scaling
- Built to be easy to modify
- Checkboxes
- Sliders
- Dropdowns
- Multi selectors
- Color pickers
- Buttons
- Listboxs
- Text inputs
static GUI::CForm Form(
DEFAULT_POSITION_X, DEFAULT_POSITION_Y,
DEFAULT_SIZE_X, DEFAULT_SIZE_Y,
L"Form name", ACCENT_COLOR,
DEFAULT_OPENED,
RESIZABLE,
MINIMUM_SIZE_X, MINIMUM_SIZE_Y,
MAXIMUM_SIZE_X, MAXIMUM_SIZE_Y
); const GUI::CTab *Tab = Form.CreateNewTab(L"Tab name"); const GUI::CSubTab *Subtab = Tab->CreateNewSubTab(L"SubTab name"); const GUI::CGroup *Group = Subtab->CreateGroup(L"Group name", HORIZONTAL_SIZE_PERCENT, VERTICAL_SIZE_PERCENT); static bool CheckboxValue;
static GUI::CKeyBind CheckboxKeybind;
Group->AddCheckbox(L"Checkbox name", &CheckboxValue, &CheckboxKeybind);
// no keybind selector.
Group->AddCheckbox(L"Checkbox name", &CheckboxValue, NULL); static float SliderValue;
static GUI::CKeyBind SliderKeybind;
Group->AddSlider(L"Slider name", &SliderValue, &SliderKeybind, SLIDER_MIN_VALUE, SLIDER_MAX_VALUE);
// no keybind selector.
Group->AddSlider(L"Slider name", &SliderValue, NULL, SLIDER_MIN_VALUE, SLIDER_MAX_VALUE); static GUI::CKeyBind DropdownKeybind;
wchar_t *DropdownItems[] = {(L"One"), (L"two"), (L"Three")};
Group->AddDropdown(L"Dropdown name", &Dropdown, &DropdownKeybind, DropdownItems, ITEMS_COUNT);
// no keybind selector.
Group->AddDropdown(L"Dropdown name", &Dropdown, NULL, DropdownItems, ITEMS_COUNT); static bool wan, too, tree;
GUI::CMultiSelectItem MultiSelectItems[] = {{L"One 1", &wan}, {L"two 2", &too}, {L"Three 3", &tree}};
Group->AddMultiSelect(L"Multi select name", MultiSelectItems, ITEMS_COUNT); // example checkbox
Group->AddCheckbox(L"Checkbox name", &CheckboxValue, &CheckboxKeybind);
static Datatypes::Color ColorpickerValue(255, 0, 0);
group->AddColorPicker(&ColorpickerValue); // must be a cdecl function
void __cdecl TestCallback()
{
Tier0::Msg("Callback Hit!\n");
}
Group->AddButton(L"Button name", TestCallback); static int ListboxValue;
wchar_t *ListboxItems[] = {(L"One"), (L"two"), (L"Three")};
Group->AddListbox(L"Listbox name", &ListboxVal, ListboxItems, ITEMS_COUNT, HORIZONTAL_SIZE_PERCENT); static char Buffer[32] = {'\0'};
Group->AddTextInput(L"Text input name", Buffer, BUFFER_SIZE); Form->Destroy()