X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fhomebank;a=blobdiff_plain;f=src%2Fhomebank.h;h=b4a683a9c8d646d0cd264e8eb7a5f55e3b853068;hp=745203f06f69e8e4fdac546072eaa5af87d55446;hb=461ad71822d907422deeabce0ffe5e506d0f5e3f;hpb=27f6e3b112df235c8e9afc9911b1f6bce208a001 diff --git a/src/homebank.h b/src/homebank.h index 745203f..b4a683a 100644 --- a/src/homebank.h +++ b/src/homebank.h @@ -1,5 +1,5 @@ /* HomeBank -- Free, easy, personal accounting for everyone. - * Copyright (C) 1995-2014 Maxime DOYEN + * Copyright (C) 1995-2019 Maxime DOYEN * * This file is part of HomeBank. * @@ -17,13 +17,14 @@ * along with this program. If not, see . */ -#ifndef __HOMEBANK_H__ -#define __HOMEBANK_H__ +#ifndef _HOMEBANK_H_ +#define _HOMEBANK_H_ #ifdef HAVE_CONFIG_H #include #endif + #include /* isprint */ #include #include @@ -41,6 +42,7 @@ #include "hb-preferences.h" #include "hb-transaction.h" +#include "hb-currency.h" #include "hb-account.h" #include "hb-archive.h" #include "hb-assign.h" @@ -64,15 +66,22 @@ #define gettext_noop(str) (str) #define N_(str) gettext_noop (str) -/* = = = = = = = = */ /* = = = = = = = = = = = = = = = = */ -/* = = = = = = = = = = = = = = = = = = = = = = = = */ -/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =*/ +/* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = */ #define HB_UNSTABLE FALSE -#define HB_VERSION "4.6.3" -#define FILE_VERSION 0.9 -#define PREF_VERSION 460 +#define HB_UNSTABLE_SHOW FALSE + + +#define HB_VERSION_MAJOR 5 +#define HB_VERSION_MINOR 2 +#define HB_VERSION_MICRO 7 + +#define HB_VERSION "5.2.7" +#define HB_VERSION_NUM (HB_VERSION_MAJOR*10000) + (HB_VERSION_MINOR*100) + HB_VERSION_MICRO + +#define FILE_VERSION 1.3 +#define PREF_VERSION 527 #if HB_UNSTABLE == FALSE #define PROGNAME "HomeBank" @@ -82,6 +91,7 @@ #define HB_DATA_PATH "homebank_unstable" #endif + #ifdef G_OS_WIN32 #define GETTEXT_PACKAGE "homebank" #define LOCALE_DIR "locale" @@ -97,64 +107,159 @@ #define ENABLE_NLS 1 #endif + /* container spacing */ -#define PHI 1.61803399 +#define SPACING_TINY 3 +#define SPACING_SMALL 6 +#define SPACING_POPOVER 10 +#define SPACING_MEDIUM 12 +#define SPACING_LARGE 18 + -#define HB_MAINBOX_SPACING 12 -#define HB_BOX_SPACING 6 +#define HB_DATE_MAX_GAP 7 -#define HB_HSPACE_SPACING 18 /* used to separate dialog block */ -#define HB_TABROW_SPACING 6 -#define HB_TABCOL_SPACING 6 +// those 2 line are duplicated into dateentry +#define HB_MINDATE 693596 //01/01/1900 +#define HB_MAXDATE 803533 //31/12/2200 /* widget minimum width */ #define HB_MINWIDTH_LIST 161 -#define HB_MINWIDTH_COMBO 80 +#define HB_MINHEIGHT_LIST 260 +#define HB_MINWIDTH_SEARCH 240 +#define HB_MINWIDTH_COLUMN 48 + + +/* miscellaneous */ +#define PHI 1.61803399 -/* for transaction dialog */ -#define GTK_RESPONSE_ADD 1 -#define HB_NUMBER_SAMPLE 20457.99 +#define HB_NUMBER_SAMPLE 1234567.89 -enum +typedef enum { - FILETYPE_UNKNOW, + FILETYPE_UNKNOWN, FILETYPE_HOMEBANK, FILETYPE_OFX, FILETYPE_QIF, FILETYPE_CSV_HB, - FILETYPE_AMIGA_HB, +// FILETYPE_AMIGA_HB, NUM_FILETYPE -}; +} HbFileType; + + +/* ---- icon size as defined into gtkiconfactory.c ---- */ +/* GTK_ICON_SIZE_MENU 16 + * GTK_ICON_SIZE_BUTTON 20 + * GTK_ICON_SIZE_SMALL_TOOLBAR 18 + * GTK_ICON_SIZE_LARGE_TOOLBAR 24 (default for toolbar) + * GTK_ICON_SIZE_DND 32 + * GTK_ICON_SIZE_DIALOG 48 + */ -/* -** stock icons -*/ -/* Custom HomeBank named icons */ -#define HB_STOCK_ACCOUNT "hb-account" -#define HB_STOCK_ARCHIVE "hb-archive" -#define HB_STOCK_ASSIGN "hb-assign" -#define HB_STOCK_BUDGET "hb-budget" -#define HB_STOCK_CATEGORY "hb-category" -#define HB_STOCK_PAYEE "hb-payee" -#define HB_STOCK_FILTER "hb-filter" -#define HB_STOCK_OPE_ADD "hb-ope-add" -#define HB_STOCK_OPE_HERIT "hb-ope-herit" -#define HB_STOCK_OPE_EDIT "hb-ope-edit" -#define HB_STOCK_OPE_SHOW "hb-ope-show" -#define HB_STOCK_OPE_DELETE "hb-ope-delete" -#define HB_STOCK_OPE_VALID "hb-ope-valid" -#define HB_STOCK_OPE_REMIND "hb-ope-remind" -#define HB_STOCK_OPE_AUTO "hb-ope-auto" -#define HB_STOCK_REP_STATS "hb-rep-stats" -#define HB_STOCK_REP_TIME "hb-rep-time" -#define HB_STOCK_REP_BALANCE "hb-rep-balance" -#define HB_STOCK_REP_BUDGET "hb-rep-budget" -#define HB_STOCK_REP_CAR "hb-rep-vehicle" +/* -------- named icons (Standard Icon Name) -------- */ + + +//obsolete, as since since gtk3.10 : no more icons for dialogs and menu +#define ICONNAME_SAVE_AS "document-save-as" //obsolete +#define ICONNAME_REVERT "document-revert" //obsolete +#define ICONNAME_PROPERTIES "document-properties" //obsolete +#define ICONNAME_CLOSE "window-close" //obsolete +#define ICONNAME_QUIT "application-exit" //obsolete +#define ICONNAME_HELP "help-browser" //obsolete +#define ICONNAME_ABOUT "help-about" //obsolete +#define ICONNAME_PREFERENCES "preferences-system" //obsolete + + +//#define ICONNAME_FIND "edit-find" //unused +//#define ICONNAME_CLEAR "edit-clear" //unused +//#define ICONNAME_HB_SCHED_SKIP "media-skip-forward" +//#define ICONNAME_HB_SCHED_POST "media-playback-start" + +//in 5.2 no themeable icon to keep a consistent iconset + +#define ICONNAME_WARNING "dialog-warning" +#define ICONNAME_ERROR "dialog-error" +#define ICONNAME_INFO "dialog-information" + + +#define ICONNAME_FOLDER "folder-symbolic" +#define ICONNAME_EMBLEM_OK "emblem-ok-symbolic" +#define ICONNAME_EMBLEM_SYSTEM "emblem-system-symbolic" +#define ICONNAME_WINDOW_CLOSE "window-close-symbolic" +#define ICONNAME_LIST_ADD "list-add-symbolic" +#define ICONNAME_LIST_REMOVE "list-remove-symbolic" +#define ICONNAME_LIST_REMOVE_ALL "list-remove-all-symbolic" +#define ICONNAME_CHANGES_PREVENT "changes-prevent-symbolic" +#define ICONNAME_SYSTEM_SEARCH "system-search-symbolic" + +// custom or gnome not found +#define ICONNAME_HB_BUTTON_MENU "open-menu-symbolic" +#define ICONNAME_HB_BUTTON_COLLAPSE "list-collapse-all-symbolic" +#define ICONNAME_HB_BUTTON_EXPAND "list-expand-all-symbolic" +#define ICONNAME_HB_BUTTON_SPLIT "edit-split-symbolic" +#define ICONNAME_HB_TOGGLE_SIGN "toggle-sign-symbolic" + + +/* -------- named icons (Custom to homebank) -------- */ + + +#define ICONNAME_HB_CURRENCY "hb-currency" +#define ICONNAME_HB_ACCOUNT "hb-account" +#define ICONNAME_HB_ARCHIVE "hb-archive" +#define ICONNAME_HB_ASSIGN "hb-assign" +#define ICONNAME_HB_BUDGET "hb-budget" +#define ICONNAME_HB_CATEGORY "hb-category" +#define ICONNAME_HB_PAYEE "hb-payee" +#define ICONNAME_HB_OPE_SHOW "hb-ope-show" //? "view-register +#define ICONNAME_HB_REP_STATS "hb-rep-stats" +#define ICONNAME_HB_REP_TIME "hb-rep-time" +#define ICONNAME_HB_REP_BALANCE "hb-rep-balance" +#define ICONNAME_HB_REP_BUDGET "hb-rep-budget" +#define ICONNAME_HB_REP_CAR "hb-rep-vehicle" + +#define ICONNAME_HB_VIEW_LIST "hb-view-list" //"view-list-text" +#define ICONNAME_HB_VIEW_BAR "hb-view-bar" //"view-chart-bar" +#define ICONNAME_HB_VIEW_COLUMN "hb-view-column" //"view-chart-column" +#define ICONNAME_HB_VIEW_LINE "hb-view-line" //"view-chart-line" +#define ICONNAME_HB_VIEW_STACK "hb-view-stack" //"view-chart-stack" +#define ICONNAME_HB_VIEW_PIE "hb-view-pie" //"view-chart-pie" +#define ICONNAME_HB_VIEW_DONUT "hb-view-donut" //"view-chart-donut" +#define ICONNAME_HB_SHOW_LEGEND "hb-legend" //"view-legend" +#define ICONNAME_HB_SHOW_RATE "hb-rate" // obsolete ? +#define ICONNAME_HB_REFRESH "hb-view-refresh" //"view-refresh" +#define ICONNAME_HB_FILTER "hb-filter" //"edit-filter" + +#define ICONNAME_HB_FILE_NEW "hb-document-new" //document-new +#define ICONNAME_HB_FILE_OPEN "hb-document-open" //document-open +#define ICONNAME_HB_FILE_SAVE "hb-document-save" //document-save +//#define ICONNAME_PRINT "document-print" +#define ICONNAME_HB_FILE_IMPORT "hb-file-import" //document-import +#define ICONNAME_HB_FILE_EXPORT "hb-file-export" //document-export +#define ICONNAME_HB_FILE_VALID "hb-file-valid" +#define ICONNAME_HB_FILE_INVALID "hb-file-invalid" + +#define ICONNAME_HB_OPE_AUTO "hb-ope-auto" //? +#define ICONNAME_HB_OPE_BUDGET "hb-ope-budget" //? +#define ICONNAME_HB_OPE_ADD "hb-ope-add" //? "edit-add" +#define ICONNAME_HB_OPE_HERIT "hb-ope-herit" //? "edit-clone" +#define ICONNAME_HB_OPE_EDIT "hb-ope-edit" // +#define ICONNAME_HB_OPE_MULTIEDIT "hb-ope-multiedit" // +#define ICONNAME_HB_OPE_DELETE "hb-ope-delete" //? "edit-delete" +#define ICONNAME_CONVERT "hb-ope-convert" // obsolete ? +#define ICONNAME_HB_ASSIGN_RUN "hb-assign-run" + +#define ICONNAME_HB_OPE_NEW "hb-ope-new" +// edit is defined above +#define ICONNAME_HB_OPE_REMIND "hb-ope-remind" +#define ICONNAME_HB_OPE_SIMILAR "hb-ope-similar" + +#define ICONNAME_HB_OPE_CLEARED "hb-ope-cleared" +#define ICONNAME_HB_OPE_RECONCILED "hb-ope-reconciled" +#define ICONNAME_HB_OPE_FUTURE "hb-ope-future" /* @@ -163,52 +268,58 @@ enum struct HomeBank { // hbfile storage - GHashTable *h_cur; //currencies - GHashTable *h_acc; //accounts - GHashTable *h_pay; //payees - GHashTable *h_cat; //categories - GHashTable *h_tag; //tags - GHashTable *h_rul; //assign rules + GHashTable *h_cur; //currencies + GHashTable *h_acc; //accounts + GHashTable *h_pay; //payees + GHashTable *h_cat; //categories + GHashTable *h_tag; //tags + GHashTable *h_rul; //assign rules - GHashTable *h_memo; //memo/description + GHashTable *h_memo; //memo/description - GList *arc_list; //archives - GList *ope_list; //transactions + GList *arc_list; //archives + + //#1419304 we keep the deleted txn to a stack trash + GTrashStack *txn_stk; // hbfile (saved properties) - gchar *owner; - gshort auto_smode; - gshort auto_weekday; - gshort auto_nbdays; + gchar *owner; + gshort auto_smode; + gshort auto_weekday; + gshort auto_nbdays; - guint32 vehicle_category; - //guint32 kcur; // base currency + guint32 vehicle_category; + guint32 kcur; // base currency // hbfile (unsaved properties) - guint changes_count; - gboolean hbfile_is_new; - gchar *xhb_filepath; - gboolean xhb_hasbak; //file has backup (*.xhb~) used for revert menu sensitivity + guint changes_count; + gboolean hbfile_is_new; + gboolean hbfile_is_bak; + gchar *xhb_filepath; + gboolean xhb_hasrevert; //file has backup (*.xhb~) used for revert menu sensitivity + guint64 xhb_timemodified; // really global stuffs - gboolean first_run; - guint32 today; //today's date - gint define_off; //>0 when a stat, account window is opened - gboolean minor; + gboolean first_run; + guint32 today; //today's date + gint define_off; //>0 when a stat, account window is opened + gboolean minor; - GtkWidget *mainwindow; //should be global to access attached window data - GdkPixbuf *lst_pixbuf[NUM_LST_PIXBUF]; - gint lst_pixbuf_maxwidth; + GtkWidget *mainwindow; //should be global to access attached window data + GtkWidget *alltxnwindow; //window to mutex all txn show + GtkIconTheme *icontheme; + //GdkPixbuf *lst_pixbuf[NUM_LST_PIXBUF]; + //gint lst_pixbuf_maxwidth; }; -gint homebank_alienfile_recognize(gchar *filename); + gchar *homebank_filepath_with_extention(gchar *path, gchar *extension); gchar *homebank_filename_without_extention(gchar *path); -void homebank_file_ensure_xhb(void); -void homebank_backup_current_file(gchar *pathname); +void homebank_file_ensure_xhb(gchar *filename); +void homebank_backup_current_file(void); gboolean homebank_util_url_show (const gchar *url); -gboolean homebank_lastopenedfiles_load(void); +gchar *homebank_lastopenedfiles_load(void); gboolean homebank_lastopenedfiles_save(void); @@ -225,7 +336,6 @@ guint32 homebank_app_date_get_julian(void); /* - - - - obsolete things - - - - */ /* - typedef struct _budget Budget; struct _budget @@ -253,7 +363,4 @@ struct _investment }; */ - - - #endif