diff options
Diffstat (limited to 'include/ui.hpp')
| -rw-r--r-- | include/ui.hpp | 145 |
1 files changed, 73 insertions, 72 deletions
diff --git a/include/ui.hpp b/include/ui.hpp index 931f302..9304f78 100644 --- a/include/ui.hpp +++ b/include/ui.hpp @@ -20,84 +20,85 @@ #include "administration.hpp" #define STATUS_TEXT_LEN 64 -#define STATUS_DURATION 4.0f -#define STATUS_FLASH_INTERVAL 0.1f -#define STATUS_MAX_FLASHES 2 -#define COLOR_ERROR IM_COL32(235, 64, 52, 255) -#define COLOR_DEFAULT IM_COL32(235, 255, 255, 255) - -typedef enum -{ - UI_INVOICES = 0, - UI_EXPENSES = 1, - UI_CONTACTS = 2, - UI_REPORT_RESULTS = 3, - UI_REPORT_TAX = 4, - UI_PROJECTS = 5, - UI_SETTINGS = 6, - UI_LOG = 7, - - UI_END -} main_state; - -typedef enum -{ - LIST, - EDIT, - CREATE, - VIEW, - VIEW_IMPORT_REQUEST, -} view_state; - -typedef struct -{ - bool visible; - int flash_count; - int color; - char text[STATUS_TEXT_LEN]; - float time; - bool loading; -} ui_status; - -extern ImFont* fontBold; -extern ImFont* fontBig; - -ui_status ui_get_status(); -void ui_set_status_loading(bool loading); -void ui_set_status_error(const char* txt); -void ui_set_status_ex(const char* txt, int color); -void ui_set_status(const char* txt); -void ui_draw_status(); - -void ui_set_state(main_state state); - -void ui_draw_main(); -void ui_draw_contacts(); -void ui_draw_projects(); -void ui_draw_invoices(); -void ui_draw_settings(); -void ui_draw_expenses(); -void ui_draw_earnings(); -void ui_draw_log(); - -void ui_setup_invoices(); -void ui_setup_contacts(); -void ui_setup_projects(); -void ui_setup_settings(); -void ui_setup_expenses(); -void ui_setup_earnings(); - -void ui_destroy_invoices(); -void ui_destroy_settings(); -void ui_destroy_expenses(); -void ui_destroy_earnings(); +namespace ui { + + typedef enum + { + UI_INVOICES = 0, + UI_EXPENSES = 1, + UI_CONTACTS = 2, + UI_REPORT_RESULTS = 3, + UI_REPORT_TAX = 4, + UI_PROJECTS = 5, + UI_SETTINGS = 6, + UI_LOG = 7, + + UI_END + } main_state; + + typedef enum + { + LIST_ALL, + EDIT_EXISTING, + CREATE, + VIEW_EXISTING, + VIEW_IMPORT_REQUEST, + } view_state; + + typedef struct + { + bool visible; + int flash_count; + int color; + char text[STATUS_TEXT_LEN]; + float time; + bool loading; + } status; + + extern ImFont* fontBold; + extern ImFont* fontBig; + + void set_state(main_state state); + + // Status functions. + status get_status(); + void set_status_loading(bool loading); + void set_status_error(const char* txt); + void set_status(const char* txt); + void draw_status(); + + // Draw calls. + void draw_main(); + void draw_contacts(); + void draw_projects(); + void draw_invoices(); + void draw_settings(); + void draw_expenses(); + void draw_earnings(); + void draw_log(); + + // Setup calls. + void setup_invoices(); + void setup_contacts(); + void setup_projects(); + void setup_settings(); + void setup_expenses(); + void setup_earnings(); + + // Destroy calls. + void destroy_invoices(); + void destroy_settings(); + void destroy_expenses(); + void destroy_earnings(); + +} // Custom imgui widgets. namespace ImGui { void InputTextWithError(const char* text, char* buffer, size_t buf_size, bool has_error); - int TextInputWithAutocomplete(const char* hint, char* buffer, size_t buf_size, char** suggestions, int suggestion_count, bool has_error); + int TextInputWithAutocomplete(const char* hint, char* buffer, size_t buf_size, char** suggestions, int suggestion_count, bool has_error); bool FormInvoiceFileSelector(char* text, char* buffer); void FormContactAutocomplete(contact* buffer, bool has_error); |
