54
54
static void repbalance_sensitive(GtkWidget *widget, gpointer user_data);
55
55
static void repbalance_compute(GtkWidget *widget, gpointer user_data);
57
static gchar *repbalance_compute_title(gint intvl);
57
59
static GtkWidget *lst_repbal_create(void);
58
60
static void lst_repbal_set_cur(GtkTreeView *treeview, guint32 kcur);
61
static GString *lst_repbal_to_string(GtkTreeView *treeview, gchar *title, gboolean isclipboard);
92
95
repbalance_sensitive(data->window, NULL);
95
99
static void repbalance_action_print(GtkToolButton *toolbutton, gpointer user_data)
97
101
struct repbalance_data *data = user_data;
101
gtk_chart_print(GTK_CHART(data->RE_chart), GTK_WINDOW(data->window), NULL, NULL);
105
tmpintvl = hbtk_combo_box_get_active_id(GTK_COMBO_BOX_TEXT(data->CY_intvl));
106
page = gtk_notebook_get_current_page(GTK_NOTEBOOK(data->GR_result));
108
name = g_strdup_printf("hb-repbalance_%s.csv", hbtk_get_label(CYA_REPORT_INTVL, tmpintvl) );
114
title = repbalance_compute_title(tmpintvl);
116
node = lst_repbal_to_string(GTK_TREE_VIEW(data->LV_report), title, TRUE);
118
hb_print_listview(GTK_WINDOW(data->window), node->str, NULL, title, name);
120
g_string_free(node, TRUE);
125
gtk_chart_print(GTK_CHART(data->RE_chart), GTK_WINDOW(data->window), NULL, name);
231
268
//gtk_action_set_sensitive(action, sensitive);
233
270
visible = page == 0 ? FALSE : TRUE;
234
hb_widget_visible (data->BT_print, visible);
272
//hb_widget_visible (data->BT_print, visible);
235
273
hb_widget_visible(data->LB_zoomx, visible);
236
274
hb_widget_visible(data->RG_zoomx, visible);
742
780
gtk_tree_view_columns_autosize (GTK_TREE_VIEW(data->LV_report));
744
782
/* update bar chart */
745
gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, LST_OVER_BALANCE, LST_OVER_BALANCE, NULL, NULL);
783
gchar *title = repbalance_compute_title(tmpintvl);
784
gtk_chart_set_datas_total(GTK_CHART(data->RE_chart), model, LST_OVER_BALANCE, LST_OVER_BALANCE, title, NULL);
746
785
//gtk_chart_set_line_datas(GTK_CHART(data->RE_chart), model, LST_OVER_BALANCE, LST_OVER_DATE);
750
789
g_free(data->tmp_expense);
955
993
struct repbalance_data *data;
956
994
struct WinGeometry *wg;
957
GtkWidget *window, *mainvbox, *hbox, *vbox, *notebook, *sw;
995
GtkWidget *window, *mainvbox, *hbox, *vbox, *notebook, *scrollwin;
958
996
GtkWidget *label, *widget, *table, *treebox, *treeview;
986
1024
//window contents
987
1025
mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
988
gtk_container_add (GTK_CONTAINER (window), mainvbox);
1026
gtk_window_set_child(GTK_WINDOW(window), mainvbox);
990
1028
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
991
1029
gtk_box_pack_start (GTK_BOX (mainvbox), hbox, TRUE, TRUE, 0);
995
1033
gtk_widget_set_hexpand (GTK_WIDGET(table), FALSE);
996
1034
gtk_box_pack_start (GTK_BOX (hbox), table, FALSE, FALSE, 0);
998
gtk_container_set_border_width (GTK_CONTAINER (table), SPACING_SMALL);
1036
hb_widget_set_margin(GTK_WIDGET(table), SPACING_SMALL);
999
1037
gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
1000
1038
gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
1099
sw = gtk_scrolled_window_new(NULL,NULL);
1101
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1102
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (sw), GTK_SHADOW_ETCHED_IN);
1103
gtk_widget_set_margin_bottom (sw, SPACING_LARGE);
1104
widget = ui_acc_listview_new(TRUE);
1105
data->LV_acc = widget;
1106
gtk_widget_set_vexpand (widget, TRUE);
1107
gtk_widget_set_size_request(data->LV_acc, HB_MINWIDTH_LIST, -1);
1108
gtk_container_add(GTK_CONTAINER(sw), data->LV_acc);
1109
gtk_grid_attach (GTK_GRID (table), sw, 1, row, 2, 1);
1137
scrollwin = gtk_scrolled_window_new(NULL,NULL);
1138
data->SW_acc = scrollwin;
1139
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1140
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
1141
gtk_widget_set_margin_bottom (scrollwin, SPACING_LARGE);
1142
treeview = ui_acc_listview_new(TRUE);
1143
data->LV_acc = treeview;
1144
gtk_widget_set_vexpand (treeview, TRUE);
1145
gtk_widget_set_size_request(treeview, HB_MINWIDTH_LIST, -1);
1146
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview);
1147
gtk_grid_attach (GTK_GRID (table), scrollwin, 1, row, 2, 1);
1112
1150
//part: info + report
1124
1162
hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
1125
gtk_container_set_border_width (GTK_CONTAINER(hbox), SPACING_SMALL);
1163
hb_widget_set_margin(GTK_WIDGET(hbox), SPACING_SMALL);
1126
1164
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
1128
1166
widget = make_label(NULL, 0.5, 0.5);
1147
1185
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
1148
1186
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, NULL);
1150
widget = gtk_scrolled_window_new (NULL, NULL);
1151
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_ETCHED_IN);
1152
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1188
scrollwin = gtk_scrolled_window_new (NULL, NULL);
1189
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
1190
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1154
1192
treeview = lst_repbal_create();
1155
1193
data->LV_report = treeview;
1156
gtk_container_add (GTK_CONTAINER(widget), treeview);
1194
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview);
1157
1195
//gtk_notebook_append_page(GTK_NOTEBOOK(notebook), widget, NULL);
1158
gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 0);
1196
gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
1161
widget = gtk_scrolled_window_new (NULL, NULL);
1162
data->GR_detail = widget;
1163
//gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW (widget), GTK_CORNER_TOP_RIGHT);
1164
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_ETCHED_IN);
1165
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1199
scrollwin = gtk_scrolled_window_new (NULL, NULL);
1200
data->GR_detail = scrollwin;
1201
//gtk_scrolled_window_set_placement(GTK_SCROLLED_WINDOW (scrollwin), GTK_CORNER_TOP_RIGHT);
1202
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
1203
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
1166
1204
treeview = create_list_transaction(LIST_TXN_TYPE_DETAIL, PREFS->lst_det_columns);
1167
1205
data->LV_detail = treeview;
1168
gtk_container_add (GTK_CONTAINER(widget), treeview);
1206
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW(scrollwin), treeview);
1170
gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 0);
1208
gtk_box_pack_start (GTK_BOX (vbox), scrollwin, TRUE, TRUE, 0);
1172
1210
list_txn_set_save_column_width(GTK_TREE_VIEW(treeview), TRUE);
1209
1247
** ============================================================================
1250
static GString *lst_repbal_to_string(GtkTreeView *treeview, gchar *title, gboolean isclipboard)
1253
GtkTreeModel *model;
1256
char strbuf[G_ASCII_DTOSTR_BUF_SIZE];
1259
node = g_string_new(NULL);
1261
sep = (isclipboard == TRUE) ? '\t' : ';';
1264
g_string_append (node, _("Date") );
1265
g_string_append_c (node, sep );
1266
g_string_append (node, _("Expense") );
1267
g_string_append_c (node, sep );
1268
g_string_append (node, _("Income") );
1269
g_string_append_c (node, sep );
1270
g_string_append (node, _("Balance") );
1272
g_string_append (node, "\n" );
1276
model = gtk_tree_view_get_model(treeview);
1277
valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter);
1281
gdouble expense, income, balance;
1283
gtk_tree_model_get (model, &iter,
1284
LST_OVER_DATESTR, &intvlname,
1285
LST_OVER_EXPENSE, &expense,
1286
LST_OVER_INCOME , &income,
1287
LST_OVER_BALANCE, &balance,
1290
g_string_append (node, intvlname );
1291
g_string_append_c (node, sep );
1293
g_snprintf(strbuf, sizeof (strbuf), "%.2f", expense);
1294
g_string_append (node, strbuf );
1295
g_string_append_c (node, sep );
1297
g_snprintf(strbuf, sizeof (strbuf), "%.2f", income);
1298
g_string_append (node, strbuf );
1299
g_string_append_c (node, sep );
1301
g_snprintf(strbuf, sizeof (strbuf), "%.2f", balance);
1302
g_string_append (node, strbuf );
1304
g_string_append (node, "\n" );
1308
valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(model), &iter);
1311
//DB( g_print("text is:\n%s", node->str) );
1213
1317
static void lst_repbal_cell_data_function_date (GtkTreeViewColumn *col, GtkCellRenderer *renderer, GtkTreeModel *model, GtkTreeIter *iter, gpointer user_data)