mirror of
https://github.com/Karaka-Management/cOMS.git
synced 2026-01-11 03:08:41 +00:00
117 lines
3.5 KiB
C++
117 lines
3.5 KiB
C++
#ifndef TOS_UI_ELEMENT_TYPE_H
|
|
#define TOS_UI_ELEMENT_TYPE_H
|
|
|
|
#include <stdio.h>
|
|
#include "../stdlib/Types.h"
|
|
#include "UIButton.h"
|
|
#include "UISelect.h"
|
|
#include "UIInput.h"
|
|
#include "UIText.h"
|
|
#include "UITextarea.h"
|
|
#include "UIImage.h"
|
|
#include "UILink.h"
|
|
#include "UIWindow.h"
|
|
#include "UITable.h"
|
|
#include "UIPanel.h"
|
|
#include "UITab.h"
|
|
#include "UICursor.h"
|
|
|
|
constexpr
|
|
int32 ui_element_type_size(UIElementType e)
|
|
{
|
|
switch (e) {
|
|
case UI_ELEMENT_TYPE_BUTTON:
|
|
return sizeof(UIButton);
|
|
case UI_ELEMENT_TYPE_SELECT:
|
|
return sizeof(UISelect);
|
|
case UI_ELEMENT_TYPE_INPUT:
|
|
return sizeof(UIInput);
|
|
case UI_ELEMENT_TYPE_TEXT:
|
|
return sizeof(UIText);
|
|
case UI_ELEMENT_TYPE_TEXTAREA:
|
|
return sizeof(UITextarea);
|
|
case UI_ELEMENT_TYPE_IMAGE:
|
|
return sizeof(UIImage);
|
|
case UI_ELEMENT_TYPE_LINK:
|
|
return sizeof(UILink);
|
|
case UI_ELEMENT_TYPE_TABLE:
|
|
return sizeof(UITable);
|
|
case UI_ELEMENT_TYPE_VIEW_WINDOW:
|
|
return sizeof(UIWindow);
|
|
case UI_ELEMENT_TYPE_VIEW_PANEL:
|
|
return sizeof(UIPanel);
|
|
case UI_ELEMENT_TYPE_VIEW_TAB:
|
|
return sizeof(UITab);
|
|
case UI_ELEMENT_TYPE_CURSOR:
|
|
return sizeof(UICursor);
|
|
default: {
|
|
UNREACHABLE();
|
|
}
|
|
}
|
|
}
|
|
|
|
constexpr
|
|
int32 ui_element_state_size(UIElementType e)
|
|
{
|
|
switch (e) {
|
|
case UI_ELEMENT_TYPE_BUTTON:
|
|
return sizeof(UIButtonState);
|
|
case UI_ELEMENT_TYPE_SELECT:
|
|
return sizeof(UISelectState);
|
|
case UI_ELEMENT_TYPE_INPUT:
|
|
return sizeof(UIInputState);
|
|
case UI_ELEMENT_TYPE_TEXT:
|
|
return sizeof(UITextState);
|
|
case UI_ELEMENT_TYPE_TEXTAREA:
|
|
return sizeof(UITextareaState);
|
|
case UI_ELEMENT_TYPE_IMAGE:
|
|
return sizeof(UIImageState);
|
|
case UI_ELEMENT_TYPE_LINK:
|
|
return sizeof(UILinkState);
|
|
case UI_ELEMENT_TYPE_TABLE:
|
|
return sizeof(UITableState);
|
|
case UI_ELEMENT_TYPE_VIEW_WINDOW:
|
|
return sizeof(UIWindowState);
|
|
case UI_ELEMENT_TYPE_VIEW_PANEL:
|
|
return sizeof(UIPanelState);
|
|
case UI_ELEMENT_TYPE_VIEW_TAB:
|
|
return sizeof(UITabState);
|
|
case UI_ELEMENT_TYPE_CURSOR:
|
|
return sizeof(UICursorState);
|
|
default: {
|
|
UNREACHABLE();
|
|
}
|
|
}
|
|
}
|
|
|
|
constexpr
|
|
int32 ui_element_type_to_id(const char* str)
|
|
{
|
|
if (str_compare("button", str) == 0) {
|
|
return UI_ELEMENT_TYPE_BUTTON;
|
|
} else if (str_compare("select", str) == 0) {
|
|
return UI_ELEMENT_TYPE_SELECT;
|
|
} else if (str_compare("input", str) == 0) {
|
|
return UI_ELEMENT_TYPE_INPUT;
|
|
} else if (str_compare("textarea", str) == 0) {
|
|
return UI_ELEMENT_TYPE_TEXTAREA;
|
|
} else if (str_compare("image", str) == 0) {
|
|
return UI_ELEMENT_TYPE_IMAGE;
|
|
} else if (str_compare("text", str) == 0) {
|
|
return UI_ELEMENT_TYPE_TEXT;
|
|
} else if (str_compare("link", str) == 0) {
|
|
return UI_ELEMENT_TYPE_LINK;
|
|
} else if (str_compare("table", str) == 0) {
|
|
return UI_ELEMENT_TYPE_TABLE;
|
|
} else if (str_compare("view_window", str) == 0) {
|
|
return UI_ELEMENT_TYPE_VIEW_WINDOW;
|
|
} else if (str_compare("view_panel", str) == 0) {
|
|
return UI_ELEMENT_TYPE_VIEW_PANEL;
|
|
} else if (str_compare("view_tab", str) == 0) {
|
|
return UI_ELEMENT_TYPE_VIEW_TAB;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
#endif |