diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/administration.hpp | 23 | ||||
| -rw-r--r-- | include/administration_reader.hpp | 3 | ||||
| -rw-r--r-- | include/administration_writer.hpp | 11 | ||||
| -rw-r--r-- | include/config.hpp | 1 |
4 files changed, 30 insertions, 8 deletions
diff --git a/include/administration.hpp b/include/administration.hpp index 9df4335..b971e2c 100644 --- a/include/administration.hpp +++ b/include/administration.hpp @@ -307,6 +307,15 @@ typedef struct quarterly_report quarters[MAX_LEN_INCOME_STATEMENT_REPORT_QUARTERS]; } income_statement; +// Administration callback functions. +typedef void (*data_changed_event)(); +typedef void (*data_deleted_event)(char id[MAX_LEN_ID]); +typedef void (*invoice_changed_event)(invoice* invoice); +typedef void (*contact_changed_event)(contact* contact); +typedef void (*taxbracket_changed_event)(country_tax_bracket* bracket); +typedef void (*costcenter_changed_event)(cost_center* cost_center); +typedef void (*project_changed_event)(project* project); + typedef struct { contact company_info; // Company info used for invoices. User cannot create invoices when this is empty/invalid. @@ -333,9 +342,19 @@ void administration_create(); void administration_destroy(); void administration_create_empty(char* save_file); +// Callback functions. +// ======================= +void administration_set_data_changed_event_callback(data_changed_event ev); +void administration_set_data_deleted_event_callback(data_deleted_event ev); +void administration_set_invoice_changed_event_callback(invoice_changed_event ev); +void administration_set_contact_changed_event_callback(contact_changed_event ev); +void administration_set_taxbracket_changed_event_callback(taxbracket_changed_event ev); +void administration_set_costcenter_changed_event_callback(costcenter_changed_event ev); +void administration_set_project_changed_event_callback(project_changed_event ev); + // Other functions. // ======================= -administration* administration_get(); +administration* administration_get(); // TODO get rid of this and make indivual getters and setters char* administration_file_path_get(); contact administration_company_info_get(); void administration_company_info_set(contact data); @@ -343,7 +362,7 @@ void administration_create_income_statement(income_statement* statement); char* administration_get_currency_symbol_from_currency(char* code); char* administration_get_default_currency(); bool administration_can_create_invoices(); -bool administration_is_loaded(); +bool administration_has_save_path(); // Contact functions. // ======================= diff --git a/include/administration_reader.hpp b/include/administration_reader.hpp new file mode 100644 index 0000000..528cc40 --- /dev/null +++ b/include/administration_reader.hpp @@ -0,0 +1,3 @@ +#pragma once + +bool administration_reader_open_new();
\ No newline at end of file diff --git a/include/administration_writer.hpp b/include/administration_writer.hpp index fa5f0db..317739f 100644 --- a/include/administration_writer.hpp +++ b/include/administration_writer.hpp @@ -4,18 +4,17 @@ #define ADMIN_FILE_INFO "info.xml" +// Setup functions. bool administration_writer_create(); void administration_writer_destroy(); +bool administration_writer_start_new(); + +// Individual entity writing. bool administration_writer_delete_entry(char* id); -bool administration_writer_save_project_blocking(project project); -bool administration_writer_save_cost_center_blocking(cost_center cost); -bool administration_writer_save_tax_bracket_blocking(country_tax_bracket bracket); -bool administration_writer_save_contact_blocking(contact c); -bool administration_writer_save_invoice_blocking(invoice inv); +// Archiving functions. bool administration_writer_save_all_administration_info_blocking(); bool administration_writer_save_all_tax_brackets_blocking(); bool administration_writer_save_all_cost_centers_blocking(); - bool administration_writer_save_all_async();
\ No newline at end of file diff --git a/include/config.hpp b/include/config.hpp index 88fd041..a0f11c0 100644 --- a/include/config.hpp +++ b/include/config.hpp @@ -1,5 +1,6 @@ #pragma once +// major.minor.patch #define PROGRAM_VERSION "0.1.0" #include "stdint.h" |
