diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/administration.cpp | 11 | ||||
| -rw-r--r-- | src/administration.hpp | 70 | ||||
| -rw-r--r-- | src/config.hpp | 13 | ||||
| -rw-r--r-- | src/locales.cpp (renamed from src/locales/locales.cpp) | 0 | ||||
| -rw-r--r-- | src/locales/locales.hpp | 21 | ||||
| -rw-r--r-- | src/main.cpp | 4 | ||||
| -rw-r--r-- | src/strops.cpp | 18 | ||||
| -rw-r--r-- | src/ui/helpers.cpp (renamed from src/views/views.cpp) | 4 | ||||
| -rw-r--r-- | src/ui/ui_contacts.cpp (renamed from src/views/contacts.cpp) | 17 | ||||
| -rw-r--r-- | src/ui/ui_main.cpp (renamed from src/views/dashboard.cpp) | 12 | ||||
| -rw-r--r-- | src/ui/ui_projects.cpp (renamed from src/views/projects.cpp) | 14 | ||||
| -rw-r--r-- | src/views/views.hpp | 15 |
12 files changed, 51 insertions, 148 deletions
diff --git a/src/administration.cpp b/src/administration.cpp index 9362b8d..fb8bd21 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -3,6 +3,7 @@ #include <assert.h> #include <time.h> +#include "strops.hpp" #include "administration.hpp" administration g_administration; @@ -11,7 +12,7 @@ void administration_create() { list_init(&g_administration.contacts); list_init(&g_administration.projects); - strncpy(g_administration.path, "[unsaved project]", sizeof(g_administration.path)); // @localize + strops_copy(g_administration.path, "[unsaved project]", sizeof(g_administration.path)); // @localize } void administration_destroy() @@ -140,10 +141,12 @@ char* administration_project_get_status_string(project data) { switch(data.state) { - case project_state::RUNNING: return "project.state.running"; break; - case project_state::PAUSED: return "project.state.paused"; break; - case project_state::CANCELLED: return "project.state.cancelled"; break; + case project_state::RUNNING: return "project.state.running"; + case project_state::PAUSED: return "project.state.paused"; + case project_state::CANCELLED: return "project.state.cancelled"; + default: assert(0); break; } + return ""; } bool administration_create_project(project data) diff --git a/src/administration.hpp b/src/administration.hpp deleted file mode 100644 index 9506246..0000000 --- a/src/administration.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#pragma once - -#include "config.hpp" -#include "simclist.h" - -typedef struct -{ - char id[16]; - char name[64]; - char address1[128]; - char address2[128]; - char country[128]; - char taxid[32]; - char businessid[32]; - char email[64]; - char phone_number[16]; - char bank_account[32]; -} contact; - -typedef enum -{ - RUNNING, - PAUSED, - CANCELLED, -} project_state; - -typedef struct -{ - char id[16]; - char description[64]; - project_state state; - time_t start_date; - time_t end_date; -} project; - -typedef struct -{ - contact company_info; - s32 next_id; - char path[4096]; - char program_version[10]; - char country_code[2]; - list_t contacts; - list_t projects; - // invoices - char ai_service[16]; - char ai_key[32]; - char email_service[16]; - char email_key[32]; -} administration; - -void administration_create(); -void administration_destroy(); - -char* administration_get_file_path(); -s32 administration_create_id(); - -bool administration_remove_contact(contact data); -bool administration_create_contact(contact data); -bool administration_update_contact(contact data); -u32 administration_get_contact_count(); -u32 administration_get_contacts(u32 page_index, u32 page_size, contact* buffer); - -void administration_cancel_project(project data); -bool administration_remove_project(project data); -bool administration_create_project(project data); -bool administration_update_project(project data); -char* administration_project_get_status_string(project data); -u32 administration_get_project_count(); -u32 administration_get_projects(u32 page_index, u32 page_size, project* buffer);
\ No newline at end of file diff --git a/src/config.hpp b/src/config.hpp deleted file mode 100644 index 3279e2e..0000000 --- a/src/config.hpp +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once - -#include "stdint.h" - -#define s8 int8_t -#define s16 int16_t -#define s32 int32_t -#define s64 int64_t - -#define u8 uint8_t -#define u16 uint16_t -#define u32 uint32_t -#define u64 uint64_t
\ No newline at end of file diff --git a/src/locales/locales.cpp b/src/locales.cpp index 6ec1233..6ec1233 100644 --- a/src/locales/locales.cpp +++ b/src/locales.cpp diff --git a/src/locales/locales.hpp b/src/locales/locales.hpp deleted file mode 100644 index 78bb682..0000000 --- a/src/locales/locales.hpp +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include <stdio.h> -#include <string.h> - -typedef struct { - const char* key; - const char* value; -} locale_entry; - -typedef struct { - const char* lang_code; - locale_entry* entries; - int entry_count; -} locale_map; - -extern locale_entry en_locales[]; -extern const int en_locale_count; - -void set_locale(const char key[2]); -const char* localize(const char* key);
\ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 3f6cf03..c1eb694 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,7 +4,7 @@ #include <d3d11.h> #include <tchar.h> -#include "views/views.hpp" +#include "ui.hpp" #include "administration.hpp" // Data @@ -128,7 +128,7 @@ int main() ImGui_ImplWin32_NewFrame(); ImGui::NewFrame(); - views_draw_dashboard(); + ui_draw_main(); // Rendering ImGui::Render(); diff --git a/src/strops.cpp b/src/strops.cpp new file mode 100644 index 0000000..42042cb --- /dev/null +++ b/src/strops.cpp @@ -0,0 +1,18 @@ +#include <string.h> + +#include "strops.hpp" + +size_t strops_copy(char *dst, const char *src, size_t size) +{ + size_t srclen; + size --; + srclen = strlen(src); + + if (srclen > size) + srclen = size; + + memcpy(dst, src, srclen); + dst[srclen] = '\0'; + + return (srclen); +}
\ No newline at end of file diff --git a/src/views/views.cpp b/src/ui/helpers.cpp index 47eff34..74876c0 100644 --- a/src/views/views.cpp +++ b/src/ui/helpers.cpp @@ -1,6 +1,6 @@ -#include "views.hpp" +#include "ui.hpp" #include "imgui.h" -#include "../locales/locales.hpp" +#include "locales.hpp" void view_draw_required_tag() { diff --git a/src/views/contacts.cpp b/src/ui/ui_contacts.cpp index 31f95e3..3115a77 100644 --- a/src/views/contacts.cpp +++ b/src/ui/ui_contacts.cpp @@ -1,9 +1,10 @@ #include <stdio.h> -#include "views.hpp" +#include "strops.hpp" +#include "ui.hpp" #include "imgui.h" -#include "../administration.hpp" -#include "../locales/locales.hpp" +#include "administration.hpp" +#include "locales.hpp" static view_state current_view_state = LIST; static contact selected_for_removal; @@ -70,7 +71,7 @@ static void draw_contact_form() ImGui::EndCombo(); } if (selected_country) { - strncpy(active_contact.country, selected_country, IM_ARRAYSIZE(active_contact.country)); + strops_copy(active_contact.country, selected_country, IM_ARRAYSIZE(active_contact.country)); } ImGui::SameLine();view_draw_required_tag(); @@ -172,7 +173,7 @@ static void draw_contact_list() ImGui::TableSetColumnIndex(3); char btn_name[20]; - sprintf(btn_name, "%s##%d", localize("form.view"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.view"), i); if (ImGui::Button(btn_name)) { active_contact = c; current_view_state = view_state::VIEW; @@ -180,7 +181,7 @@ static void draw_contact_list() ImGui::SameLine(); - sprintf(btn_name, "%s##%d", localize("form.change"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.change"), i); if (ImGui::Button(btn_name)) { active_contact = c; current_view_state = view_state::EDIT; @@ -189,7 +190,7 @@ static void draw_contact_list() ImGui::SameLine(); // TODO check to make sure no invoices are connected to this contact. - sprintf(btn_name, "%s##%d", localize("form.delete"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.delete"), i); if (ImGui::Button(btn_name)) { selected_for_removal = c; ImGui::OpenPopup("ConfirmDeletePopup"); @@ -215,7 +216,7 @@ static void draw_contact_list() } } -void views_draw_contacts() +void ui_draw_contacts() { switch(current_view_state) { diff --git a/src/views/dashboard.cpp b/src/ui/ui_main.cpp index dcfd002..f6661b8 100644 --- a/src/views/dashboard.cpp +++ b/src/ui/ui_main.cpp @@ -1,7 +1,7 @@ -#include "views.hpp" +#include "ui.hpp" #include "imgui.h" -#include "../administration.hpp" -#include "../locales/locales.hpp" +#include "administration.hpp" +#include "locales.hpp" typedef enum { @@ -19,13 +19,13 @@ static dashboard_view_state dashboard_state = dashboard_view_state::INVOICES; void (*drawcalls[dashboard_view_state::END])(void) = { 0, 0, - views_draw_contacts, + ui_draw_contacts, 0, 0, - views_draw_projects, + ui_draw_projects, }; -void views_draw_dashboard() +void ui_draw_main() { // @localize if (ImGui::BeginMainMenuBar()) diff --git a/src/views/projects.cpp b/src/ui/ui_projects.cpp index 14f99c9..9490254 100644 --- a/src/views/projects.cpp +++ b/src/ui/ui_projects.cpp @@ -1,9 +1,9 @@ #include <stdio.h> -#include "views.hpp" +#include "ui.hpp" #include "imgui.h" -#include "../administration.hpp" -#include "../locales/locales.hpp" +#include "administration.hpp" +#include "locales.hpp" static view_state current_view_state = LIST; static project selected_for_cancellation; @@ -118,7 +118,7 @@ static void draw_project_list() ImGui::TableSetColumnIndex(3); char btn_name[20]; - sprintf(btn_name, "%s##%d", localize("form.view"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.view"), i); if (ImGui::Button(btn_name)) { active_project = c; current_view_state = view_state::VIEW; @@ -127,14 +127,14 @@ static void draw_project_list() if (c.state == project_state::RUNNING) { ImGui::SameLine(); - sprintf(btn_name, "%s##%d", localize("form.change"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.change"), i); if (ImGui::Button(btn_name)) { active_project = c; current_view_state = view_state::EDIT; } ImGui::SameLine(); - sprintf(btn_name, "%s##%d", localize("form.cancel"), i); + snprintf(btn_name, sizeof(btn_name), "%s##%d", localize("form.cancel"), i); if (ImGui::Button(btn_name)) { selected_for_cancellation = c; ImGui::OpenPopup("ConfirmCancelProject"); @@ -161,7 +161,7 @@ static void draw_project_list() } } -void views_draw_projects() +void ui_draw_projects() { switch(current_view_state) { diff --git a/src/views/views.hpp b/src/views/views.hpp deleted file mode 100644 index f47bf3a..0000000 --- a/src/views/views.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -typedef enum -{ - LIST, - EDIT, - CREATE, - VIEW, -} view_state; - -void view_draw_required_tag(); - -void views_draw_dashboard(); -void views_draw_contacts(); -void views_draw_projects();
\ No newline at end of file |
