summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/administration.cpp11
-rw-r--r--src/administration.hpp70
-rw-r--r--src/config.hpp13
-rw-r--r--src/locales.cpp (renamed from src/locales/locales.cpp)0
-rw-r--r--src/locales/locales.hpp21
-rw-r--r--src/main.cpp4
-rw-r--r--src/strops.cpp18
-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.hpp15
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