X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fhomebank;a=blobdiff_plain;f=src%2Flist_upcoming.c;fp=src%2Flist_upcoming.c;h=0000000000000000000000000000000000000000;hp=786b212914639612a52237ca9759f2eec6e23a64;hb=a6c6b0df5492c2160ed97e3a376bdb2fe7c5ebc4;hpb=cd13d9691c46c2b2d6d459e9e6a76bed1c21b7a6 diff --git a/src/list_upcoming.c b/src/list_upcoming.c deleted file mode 100644 index 786b212..0000000 --- a/src/list_upcoming.c +++ /dev/null @@ -1,491 +0,0 @@ -/* HomeBank -- Free, easy, personal accounting for everyone. - * Copyright (C) 1995-2018 Maxime DOYEN - * - * This file is part of HomeBank. - * - * HomeBank is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * HomeBank is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - -#include "homebank.h" - -#include "list_upcoming.h" - -/****************************************************************************/ -/* Debug macros */ -/****************************************************************************/ -#define MYDEBUG 0 - -#if MYDEBUG -#define DB(x) (x); -#else -#define DB(x); -#endif - -/* our global datas */ -extern struct HomeBank *GLOBALS; -extern struct Preferences *PREFS; - - -static void -sched_lateicon_cell_data_function (GtkTreeViewColumn *col, - GtkCellRenderer *renderer, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer user_data) -{ -gchar *iconname = NULL; -gint nblate; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_NB_LATE, &nblate, - -1); - - iconname = ( nblate > 0 ) ? ICONNAME_WARNING : NULL; - - g_object_set(renderer, "icon-name", iconname, NULL); -} - - -/* -** remaining cell function -*/ -static void sched_latetext_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -gchar *markuptxt; -gchar *color; -gint nblate; -//gint weight; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - LST_DSPUPC_NB_LATE, &nblate, - -1); - - if(arc && nblate > 0) - { - markuptxt = g_strdup_printf(nblate < 10 ? "%d" : "+10", nblate); - - color = NULL; - //weight = PANGO_WEIGHT_NORMAL; - - if(nblate > 0 && PREFS->custom_colors == TRUE) - { - color = PREFS->color_warn; - } - - g_object_set(renderer, - //"weight", weight, - "foreground", color, - "text", markuptxt, - NULL); - - g_free(markuptxt); - } - else - g_object_set(renderer, "text", NULL, NULL); - -} - -/* -** remaining cell function -*/ - -/*static void remaining_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -gchar *markuptxt; -guint remaining; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - LST_DSPUPC_REMAINING, &remaining, - -1); - - if(arc && remaining > 0) - { - markuptxt = g_strdup_printf("%d", remaining); - g_object_set(renderer, "markup", markuptxt, NULL); - g_free(markuptxt); - } - else - g_object_set(renderer, "text", NULL, NULL); - -}*/ - - -/* -** date cell function -*/ -static void date_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -gchar buffer[256]; -GDate *date; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - -1); - - if(arc) - { - date = g_date_new_julian (arc->nextdate); - g_date_strftime (buffer, 256-1, PREFS->date_format, date); - g_date_free(date); - - //g_snprintf(buf, sizeof(buf), "%d", ope->ope_Date); - - g_object_set(renderer, "text", buffer, NULL); - - } - else - g_object_set(renderer, "text", NULL, NULL); - -} - -/* -** payee cell function -*/ -static void payee_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -Payee *pay; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - -1); - - if(arc) - { - - pay = da_pay_get(arc->kpay); - - if(pay != NULL) - g_object_set(renderer, "text", pay->name, NULL); - } - else - g_object_set(renderer, "text", NULL, NULL); - -} - -/* -** memo cell function -*/ -static void memo_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -gchar *memo; -gint weight; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - LST_DSPUPC_MEMO, &memo, - -1); - - weight = arc == NULL ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; - - g_object_set(renderer, "weight", weight, "text", memo, NULL); - - //leak - g_free(memo); - -} - - -/* -** amount cell function -*/ -static void amount_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Archive *arc; -gdouble expense, income, amount; -gchar buf[G_ASCII_DTOSTR_BUF_SIZE]; -gint column = GPOINTER_TO_INT(user_data); -Account *acc; -gchar *color; -gint weight; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_DATAS, &arc, - LST_DSPUPC_ACCOUNT, &acc, - LST_DSPUPC_EXPENSE, &expense, - LST_DSPUPC_INCOME, &income, - -1); - - amount = column == -1 ? expense : income; - - if( amount != 0.0) - { - if( acc != NULL ) - hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, acc->kcur, GLOBALS->minor); - else - hb_strfmon(buf, G_ASCII_DTOSTR_BUF_SIZE-1, amount, GLOBALS->kcur, GLOBALS->minor); - - color = get_normal_color_amount(amount); - - weight = arc == NULL ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL; - - g_object_set(renderer, - "weight", weight, - "foreground", color, - "text", buf, - NULL); - } - else - { - g_object_set(renderer, "text", NULL, NULL); - } - -} - -/* -** account cell function -*/ -static void account_cell_data_function (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data) -{ -Account *acc; -gchar *name = NULL; - - gtk_tree_model_get(model, iter, - LST_DSPUPC_ACCOUNT, &acc, - -1); - /* 1378836 display acc or dstacc */ - if( acc != NULL ) - { - name = acc->name; - } - - g_object_set(renderer, "text", name, NULL); - -} - - -static -gboolean list_account_selectionfunc( -GtkTreeSelection *selection, GtkTreeModel *model, GtkTreePath *path, gboolean path_currently_selected, gpointer data) -{ -GtkTreeIter iter; -Archive *arc; - - if(gtk_tree_model_get_iter(model, &iter, path)) - { - gtk_tree_model_get(model, &iter, - LST_DSPUPC_DATAS, &arc, - -1); - - if( arc == NULL ) - return FALSE; - } - - return TRUE; -} - - -static void list_upcoming_destroy(GtkTreeView *treeview, gpointer user_data) -{ -GtkTreeViewColumn *column; - - DB( g_print ("\n[list_upcoming] destroy\n") ); - - //todo: unsafe to use direct column index - column = gtk_tree_view_get_column(treeview, 2); - if( column ) - { - PREFS->pnl_upc_col_pay_width = gtk_tree_view_column_get_width(column); - } - - column = gtk_tree_view_get_column(treeview, 3); - if( column ) - { - PREFS->pnl_upc_col_mem_width = gtk_tree_view_column_get_width(column); - } - -} - - -GtkWidget *create_list_upcoming(void) -{ -GtkListStore *store; -GtkWidget *view; -GtkCellRenderer *renderer; -GtkTreeViewColumn *column; - - DB( g_print ("\n[list_upcoming] create\n") ); - - /* create list store */ - store = gtk_list_store_new( - NUM_LST_DSPUPC, - G_TYPE_POINTER, - G_TYPE_BOOLEAN, /* payee */ - G_TYPE_STRING, /* memo */ - G_TYPE_DOUBLE, /* expense */ - G_TYPE_DOUBLE, /* income */ - G_TYPE_POINTER, /* account */ - G_TYPE_BOOLEAN, /* next on */ - G_TYPE_INT, /* remaining */ - G_TYPE_INT /* nb late */ - ); - - //treeview - view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store)); - g_object_unref(store); - - gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), PREFS->grid_lines); - //gtk_tree_view_set_search_column (GTK_TREE_VIEW (treeview), - // COLUMN_DESCRIPTION); - - gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), GTK_SELECTION_SINGLE); - - /* column : Late */ - column = gtk_tree_view_column_new(); - //TRANSLATORS: title of list column to inform the scheduled transaction is Late - gtk_tree_view_column_set_title(column, _("Late")); - - renderer = gtk_cell_renderer_pixbuf_new (); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, sched_lateicon_cell_data_function, NULL, NULL); - - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, "xalign", 1.0, NULL); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, sched_latetext_cell_data_function, NULL, NULL); - - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPUPC_NB_LATE); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - /* column : Remaining */ - /*column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("In")); - - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, "xalign", 1.0, NULL); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, remaining_cell_data_function, NULL, NULL); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPUPC_REMAINING); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - */ - - /* column: Next on */ - renderer = gtk_cell_renderer_text_new (); - - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Next date")); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, date_cell_data_function, NULL, NULL); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPUPC_DATE); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - /* column: Payee */ - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, - "ellipsize", PANGO_ELLIPSIZE_END, - "ellipsize-set", TRUE, - NULL); - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Payee")); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, payee_cell_data_function, NULL, NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - //gtk_tree_view_column_add_attribute(column, renderer, "text", 1); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST/2); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_pay_width); - - /* column: Memo */ - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, - "ellipsize", PANGO_ELLIPSIZE_END, - "ellipsize-set", TRUE, - NULL); - - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Memo")); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, memo_cell_data_function, NULL, NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - //gtk_tree_view_column_add_attribute(column, renderer, "text", 2); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST/2); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - gtk_tree_view_column_set_fixed_width(column, PREFS->pnl_upc_col_mem_width); - - /* column: Amount */ - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Expense")); - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, "xalign", 1.0, NULL); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, amount_cell_data_function, GINT_TO_POINTER(-1), NULL); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - /* column: Amount */ - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Income")); - renderer = gtk_cell_renderer_text_new (); - g_object_set(renderer, "xalign", 1.0, NULL); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, amount_cell_data_function, GINT_TO_POINTER(1), NULL); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPACC_NAME); - gtk_tree_view_column_set_alignment (column, 0.5); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - /* column: Account */ - renderer = gtk_cell_renderer_text_new (); - /*g_object_set(renderer, - "ellipsize", PANGO_ELLIPSIZE_END, - "ellipsize-set", TRUE, - NULL);*/ - - column = gtk_tree_view_column_new(); - gtk_tree_view_column_set_title(column, _("Account")); - gtk_tree_view_column_pack_start(column, renderer, TRUE); - gtk_tree_view_column_set_cell_data_func(column, renderer, account_cell_data_function, NULL, NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - //gtk_tree_view_column_set_sort_column_id (column, LST_DSPOPE_DATE); - gtk_tree_view_column_set_alignment (column, 0.5); - //gtk_tree_view_column_set_min_width(column, HB_MINWIDTH_LIST); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - - - - - /* column: empty */ - column = gtk_tree_view_column_new(); - gtk_tree_view_append_column (GTK_TREE_VIEW(view), column); - - gtk_tree_selection_set_select_function(gtk_tree_view_get_selection(GTK_TREE_VIEW(view)), list_account_selectionfunc, NULL, NULL); - - - /* set initial sort order */ - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(store), LST_DSPUPC_REMAINING, GTK_SORT_ASCENDING); - - - g_signal_connect (view, "destroy", G_CALLBACK (list_upcoming_destroy), NULL); - - - return(view); -} -