/* HomeBank -- Free, easy, personal accounting for everyone.
- * Copyright (C) 1995-2014 Maxime DOYEN
+ * Copyright (C) 1995-2016 Maxime DOYEN
*
* This file is part of HomeBank.
*
#include "homebank.h"
#include "hb-account.h"
#include "ui-account.h"
+#include "ui-currency.h"
#define MYDEBUG 0
if( (ctx->insert_type == ACC_LST_INSERT_REPORT) && (acc->flags & AF_NOREPORT) ) return;
if( (acc->key == ctx->except_key) ) return;
if( (acc->imported == TRUE) ) return;
-
+
+ //todo check this
+ if( (ctx->kcur > 0 ) && (acc->kcur != ctx->kcur) ) return;
+
DB( g_print (" -> append %s\n", acc->name) );
ctx.except_key = except_key;
ctx.kcur = 0;
ctx.insert_type = insert_type;
-/* Account *acc = da_acc_get(except_key);
+ Account *acc = da_acc_get(except_key);
if(acc != NULL)
- ctx.kcur = acc->kcur;*/
+ ctx.kcur = acc->kcur;
gtk_list_store_clear (GTK_LIST_STORE(model));
g_hash_table_foreach(hash, (GHFunc)ui_acc_comboboxentry_populate_ghfunc, &ctx);
if(label)
gtk_label_set_mnemonic_widget (GTK_LABEL(label), comboboxentry);
- gtk_widget_set_size_request(comboboxentry, HB_MINWIDTH_COMBO, -1);
+ gtk_widget_set_size_request(comboboxentry, HB_MINWIDTH_LIST, -1);
return comboboxentry;
}
treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
g_object_unref(store);
- //gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (treeview), TRUE);
-
// column 1: toggle
if( withtoggle == TRUE )
{
// column 2: name
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_pack_start(column, renderer, TRUE);
gtk_tree_view_column_set_cell_data_func(column, renderer, ui_acc_listview_name_cell_data_function, GINT_TO_POINTER(LST_DEFACC_DATAS), NULL);
+ gtk_tree_view_column_set_resizable(column, TRUE);
gtk_tree_view_append_column (GTK_TREE_VIEW(treeview), column);
// treeviewattribute
}
}
break;
-
- //todo: for stock account
//case FIELD_TYPE:
// item->type = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_type));
break;
case FIELD_MINIMUM:
- value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_minimum));
+ value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_overdraft));
item->minimum = value;
break;
dialog = gtk_dialog_new_with_buttons (title,
GTK_WINDOW (parentwindow),
0,
- GTK_STOCK_CANCEL,
+ _("_Cancel"),
GTK_RESPONSE_REJECT,
- GTK_STOCK_OK,
+ _("_OK"),
GTK_RESPONSE_ACCEPT,
NULL);
content = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
- mainvbox = gtk_vbox_new (FALSE, 0);
+ mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_box_pack_start (GTK_BOX (content), mainvbox, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER (mainvbox), HB_BOX_SPACING);
+ gtk_container_set_border_width (GTK_CONTAINER (mainvbox), SPACING_SMALL);
getwidget = gtk_entry_new();
gtk_box_pack_start (GTK_BOX (mainvbox), getwidget, TRUE, TRUE, 0);
item->type = gtk_combo_box_get_active(GTK_COMBO_BOX(data->CY_type));
- //account_set_currency(item, ui_cur_combobox_get_key(GTK_COMBO_BOX(data->CY_curr)) );
+ account_set_currency(item, ui_cur_combobox_get_key(GTK_COMBO_BOX(data->CY_curr)) );
g_free(item->bankname);
item->bankname = g_strdup(gtk_entry_get_text(GTK_ENTRY(data->ST_bank)));
g_free(item->number);
item->number = g_strdup(gtk_entry_get_text(GTK_ENTRY(data->ST_number)));
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->TB_notes));
+ GtkTextIter siter, eiter;
+ gchar *notes;
+
+ gtk_text_buffer_get_iter_at_offset (buffer, &siter, 0);
+ gtk_text_buffer_get_end_iter(buffer, &eiter);
+ notes = gtk_text_buffer_get_text(buffer, &siter, &eiter, FALSE);
+ if(notes != NULL)
+ item->notes = g_strdup(notes);
+
item->flags &= ~(AF_CLOSED);
bool = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(data->CM_closed));
if(bool) item->flags |= AF_CLOSED;
value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_initial));
item->initial = value;
- gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_minimum));
- value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_minimum));
+ gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_overdraft));
+ value = gtk_spin_button_get_value(GTK_SPIN_BUTTON(data->ST_overdraft));
item->minimum = value;
gtk_spin_button_update(GTK_SPIN_BUTTON(data->ST_cheque1));
gtk_combo_box_set_active(GTK_COMBO_BOX(data->CY_type), item->type );
- //ui_cur_combobox_set_active(GTK_COMBO_BOX(data->CY_curr), item->kcur);
+ ui_cur_combobox_set_active(GTK_COMBO_BOX(data->CY_curr), item->kcur);
if(item->bankname != NULL)
gtk_entry_set_text(GTK_ENTRY(data->ST_bank), item->bankname);
else
gtk_entry_set_text(GTK_ENTRY(data->ST_number), "");
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (data->TB_notes));
+ GtkTextIter iter;
+
+ gtk_text_buffer_set_text (buffer, "", 0);
+ gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0);
+ if(item->notes != NULL)
+ gtk_text_buffer_insert (buffer, &iter, item->notes, -1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_nobudget), item->flags & AF_NOBUDGET);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_nosummary), item->flags & AF_NOSUMMARY);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(data->CM_closed), item->flags & AF_CLOSED);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_initial), item->initial);
- gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_minimum), item->minimum);
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_overdraft), item->minimum);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_cheque1), item->cheque1);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(data->ST_cheque2), item->cheque2);
GtkTreeIter iter;
gboolean selected, sensitive;
guint32 key;
-//todo: for stock account
//gboolean is_new;
DB( g_print("\n(ui_acc_manage_update)\n") );
}
} */
- //todo: for stock account
//todo: lock type if oldpos!=0
/*
if( selected )
*/
sensitive = (selected == TRUE) ? TRUE : FALSE;
- gtk_widget_set_sensitive(data->CY_type, sensitive);
- //gtk_widget_set_sensitive(data->CY_curr, sensitive);
- gtk_widget_set_sensitive(data->ST_number, sensitive);
- gtk_widget_set_sensitive(data->ST_bank, sensitive);
- gtk_widget_set_sensitive(data->CM_nobudget, sensitive);
- gtk_widget_set_sensitive(data->CM_nosummary, sensitive);
- gtk_widget_set_sensitive(data->CM_noreport, sensitive);
- gtk_widget_set_sensitive(data->CM_closed, sensitive);
- gtk_widget_set_sensitive(data->ST_initial, sensitive);
- gtk_widget_set_sensitive(data->ST_minimum, sensitive);
- gtk_widget_set_sensitive(data->ST_cheque1, sensitive);
- gtk_widget_set_sensitive(data->ST_cheque2, sensitive);
-
-
- //sensitive = (data->action == 0) ? TRUE : FALSE;
- //gtk_widget_set_sensitive(data->LV_acc, sensitive);
- //gtk_widget_set_sensitive(data->BT_new, sensitive);
+ gtk_widget_set_sensitive(data->notebook, sensitive);
sensitive = (selected == TRUE && data->action == 0) ? TRUE : FALSE;
//gtk_widget_set_sensitive(data->BT_mod, sensitive);
{
item = da_acc_malloc();
item->name = name; //g_strdup_printf( _("(account %d)"), da_acc_length()+1);
- //item->kcur = GLOBALS->kcur;
+ item->kcur = GLOBALS->kcur;
da_acc_append(item);
ui_acc_listview_add(GTK_TREE_VIEW(data->LV_acc), item);
}
/*
-** remove the selected account to our treeview and temp GList
+** delete the selected account to our treeview and temp GList
*/
-static void ui_acc_manage_remove(GtkWidget *widget, gpointer user_data)
+static void ui_acc_manage_delete(GtkWidget *widget, gpointer user_data)
{
struct ui_acc_manage_data *data;
-//Account *item;
+Account *item;
guint32 key;
-gboolean do_remove;
+gint result;
data = g_object_get_data(G_OBJECT(gtk_widget_get_ancestor(widget, GTK_TYPE_WINDOW)), "inst_data");
DB( g_print("\n(ui_acc_manage_remove) (data=%x)\n", (guint)data) );
- do_remove = TRUE;
key = ui_acc_listview_get_selected_key(GTK_TREE_VIEW(data->LV_acc));
if( key > 0 )
{
+ item = da_acc_get(key);
+
if( account_is_used(key) == TRUE )
- {
- //item = da_acc_get(key);
- do_remove = FALSE;
- ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_INFO,
- _("Remove not allowed"),
- _("This account is used and cannot be removed.")
+ {
+ gchar *title;
+
+ title = g_strdup_printf (
+ _("Cannot delete account '%s'"), item->name);
+
+ ui_dialog_msg_infoerror(GTK_WINDOW(data->window), GTK_MESSAGE_ERROR,
+ title,
+ _("This account contains transactions and/or is part of internal transfers.")
);
-
- }
- if( do_remove )
- {
- da_acc_remove(key);
- ui_acc_listview_remove_selected(GTK_TREE_VIEW(data->LV_acc));
- data->change++;
+ g_free(title);
}
- }
-}
+ else
+ {
+ gchar *title;
+ gchar *secondtext;
+ title = g_strdup_printf (
+ _("Are you sure you want to permanently delete '%s'?"), item->name);
+ secondtext = _("If you delete an account, it will be permanently lost.");
+
+ result = ui_dialog_msg_confirm_alert(
+ GTK_WINDOW(data->window),
+ title,
+ secondtext,
+ _("_Delete")
+ );
+ g_free(title);
+ if( result == GTK_RESPONSE_OK )
+ {
+ da_acc_remove(key);
+ ui_acc_listview_remove_selected(GTK_TREE_VIEW(data->LV_acc));
+ data->change++;
+ }
+
+ }
+ }
+}
/*
data->lastkey = 0;
ui_acc_listview_populate(data->LV_acc, ACC_LST_INSERT_NORMAL);
- //ui_cur_combobox_populate(data->CY_curr, GLOBALS->h_cur);
+ ui_cur_combobox_populate(GTK_COMBO_BOX(data->CY_curr), GLOBALS->h_cur);
//populate_view_acc(data->LV_acc, GLOBALS->acc_list, TRUE);
}
GtkWidget *ui_acc_manage_dialog (void)
{
struct ui_acc_manage_data data;
-GtkWidget *dialog, *content, *mainbox, *scrollwin, *notebook, *alignment;
+GtkWidget *dialog, *content, *mainbox, *vbox, *scrollwin, *notebook;
+GtkWidget *content_grid, *group_grid;
GtkWidget *table, *label, *widget, *hpaned;
-gint row;
+gint w, h, row;
dialog = gtk_dialog_new_with_buttons (_("Manage Accounts"),
GTK_WINDOW(GLOBALS->mainwindow),
0,
- GTK_STOCK_CLOSE,
+ _("_Close"),
GTK_RESPONSE_ACCEPT,
NULL);
data.window = dialog;
//set the dialog icon
- //homebank_window_set_icon_from_file(GTK_WINDOW (dialog), "account.svg");
- gtk_window_set_icon_name(GTK_WINDOW (dialog), HB_STOCK_ACCOUNT);
+ gtk_window_set_icon_name(GTK_WINDOW (dialog), ICONNAME_HB_ACCOUNT);
+
+ //set a nice dialog size
+ gtk_window_get_size(GTK_WINDOW(GLOBALS->mainwindow), &w, &h);
+ gtk_window_set_default_size (GTK_WINDOW(dialog), -1, h/PHI);
//store our dialog private data
g_object_set_data(G_OBJECT(dialog), "inst_data", (gpointer)&data);
//window contents
content = gtk_dialog_get_content_area(GTK_DIALOG (dialog));
- mainbox = gtk_hbox_new (FALSE, HB_BOX_SPACING);
+ mainbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
gtk_box_pack_start (GTK_BOX (content), mainbox, TRUE, TRUE, 0);
- gtk_container_set_border_width (GTK_CONTAINER(mainbox), HB_MAINBOX_SPACING);
+ gtk_container_set_border_width (GTK_CONTAINER(mainbox), SPACING_MEDIUM);
- hpaned = gtk_hpaned_new();
+ hpaned = gtk_paned_new(GTK_ORIENTATION_HORIZONTAL);
gtk_box_pack_start (GTK_BOX (mainbox), hpaned, TRUE, TRUE, 0);
+ // set paned position
+ //w = w/PHI;
+ //gtk_paned_set_position(GTK_PANED(hpaned), w - (w/PHI));
+
/* left area */
- table = gtk_table_new (2, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), HB_TABROW_SPACING);
- gtk_table_set_col_spacings (GTK_TABLE (table), HB_TABCOL_SPACING);
- gtk_paned_pack1 (GTK_PANED(hpaned), table, FALSE, FALSE);
+ vbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, SPACING_SMALL);
+ //gtk_box_pack_start (GTK_BOX (mainbox), vbox, FALSE, FALSE, 0);
+ gtk_widget_set_margin_right(vbox, SPACING_TINY);
+ gtk_paned_pack1 (GTK_PANED(hpaned), vbox, FALSE, FALSE);
+
+ table = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (table), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (table), SPACING_MEDIUM);
+ gtk_box_pack_start (GTK_BOX (vbox), table, TRUE, TRUE, 0);
row = 0;
scrollwin = gtk_scrolled_window_new(NULL,NULL);
gtk_widget_set_size_request(data.LV_acc, HB_MINWIDTH_LIST, -1);
gtk_container_add(GTK_CONTAINER(scrollwin), data.LV_acc);
gtk_widget_set_tooltip_text(data.LV_acc, _("Drag & drop to change the order\nDouble-click to rename"));
- gtk_table_attach_defaults (GTK_TABLE (table), scrollwin, 0, 2, row, row+1);
+ gtk_widget_set_vexpand (scrollwin, TRUE);
+ gtk_widget_set_hexpand (scrollwin, TRUE);
+ gtk_grid_attach (GTK_GRID(table), scrollwin, 0, row, 2, 1);
- // tools buttons
row++;
- widget = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ widget = gtk_button_new_with_mnemonic(_("_Add"));
data.BT_add = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 0, 1, row, row+1, (GtkAttachOptions) (GTK_FILL|GTK_EXPAND), (GtkAttachOptions) (0), 0, 0);
- widget = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
- data.BT_rem = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL|GTK_EXPAND), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID(table), widget, 0, row, 1, 1);
+
+ widget = gtk_button_new_with_mnemonic(_("_Delete"));
+ data.BT_rem = widget;
+ gtk_grid_attach (GTK_GRID(table), widget, 1, row, 1, 1);
/* right area */
notebook = gtk_notebook_new();
+ data.notebook = notebook;
//gtk_box_pack_start (GTK_BOX (mainbox), notebook, TRUE, TRUE, 0);
+ gtk_widget_set_margin_left(notebook, SPACING_TINY);
gtk_paned_pack2 (GTK_PANED(hpaned), notebook, FALSE, FALSE);
-
- /* page general */
- table = gtk_table_new (8, 3, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), HB_TABROW_SPACING);
- gtk_table_set_col_spacings (GTK_TABLE (table), HB_TABCOL_SPACING);
- gtk_container_set_border_width (GTK_CONTAINER(table), HB_MAINBOX_SPACING);
- // gtk_alignment_new(xalign, yalign, xscale, yscale)
- alignment = gtk_alignment_new(0.5, 0, 1.0, 0.0);
- gtk_container_add(GTK_CONTAINER(alignment), table);
+
+ /* page :: General */
+ content_grid = gtk_grid_new();
+ gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE);
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL);
+ gtk_container_set_border_width (GTK_CONTAINER(content_grid), SPACING_MEDIUM);
label = gtk_label_new(_("General"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), alignment, label);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content_grid, label);
- row = 0;
- label = make_label(_("Account"), 0.0, 0.5);
- gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 3, row, row+1);
+ // group :: Account
+ group_grid = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
+ gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1);
- row++;
- label = make_label(_("_Type:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ label = make_label_group(_("Account"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1);
+
+ row = 1;
+ label = make_label_widget(_("_Type:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_cycle(label, CYA_ACC_TYPE);
data.CY_type = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
- /*
row++;
- label = make_label(_("_Currency:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ label = make_label_widget(_("_Currency:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = ui_cur_combobox_new(label);
data.CY_curr = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
- */
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
row++;
- label = make_label (_("Start _balance:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+ label = make_label_widget(_("Start _balance:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_amount(label);
data.ST_initial = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
//TODO: notes
-
+ row++;
+ label = make_label_widget(_("Notes:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
+ widget = gtk_text_view_new ();
+ scrollwin = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_set_size_request (scrollwin, -1, 48);
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwin), GTK_SHADOW_ETCHED_IN);
+ gtk_container_add (GTK_CONTAINER (scrollwin), widget);
+ gtk_widget_set_hexpand (scrollwin, TRUE);
+ gtk_widget_set_vexpand (scrollwin, TRUE);
+ data.TB_notes = widget;
+ gtk_grid_attach (GTK_GRID (group_grid), scrollwin, 2, row, 1, 1);
+
row++;
widget = gtk_check_button_new_with_mnemonic (_("this account was _closed"));
data.CM_closed = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
- row++;
- label = make_label(_("Current check number"), 0.0, 0.5);
- gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 3, row, row+1);
-
- row++;
- label = make_label(_("Checkbook _1:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ // group :: Current check number
+ group_grid = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
+ gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 1, 1, 1);
+
+ label = make_label_group(_("Current check number"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1);
+
+ row = 1;
+ label = make_label_widget(_("Checkbook _1:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_long (label);
data.ST_cheque1 = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
row++;
- label = make_label(_("Checkbook _2:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ label = make_label_widget(_("Checkbook _2:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_long (label);
data.ST_cheque2 = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
-
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
- /* page options */
- table = gtk_table_new (9, 3, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), HB_TABROW_SPACING);
- gtk_table_set_col_spacings (GTK_TABLE (table), HB_TABCOL_SPACING);
- gtk_container_set_border_width (GTK_CONTAINER(table), HB_MAINBOX_SPACING);
- // gtk_alignment_new(xalign, yalign, xscale, yscale)
- alignment = gtk_alignment_new(0.5, 0, 1.0, 0.0);
- gtk_container_add(GTK_CONTAINER(alignment), table);
+
+ /* page :: Options */
+ content_grid = gtk_grid_new();
+ gtk_grid_set_row_spacing (GTK_GRID (content_grid), SPACING_LARGE);
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(content_grid), GTK_ORIENTATION_VERTICAL);
+ gtk_container_set_border_width (GTK_CONTAINER(content_grid), SPACING_MEDIUM);
label = gtk_label_new(_("Options"));
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), alignment, label);
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), content_grid, label);
-
- row = 0;
- label = make_label(_("Institution"), 0.0, 0.5);
- gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 3, row, row+1);
+ // group :: Institution
+ group_grid = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
+ gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 0, 1, 1);
- row++;
- label = make_label(_("_Name:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1,(GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ label = make_label_group(_("Institution"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1);
+
+ row = 1;
+ label = make_label_widget(_("_Name:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_string(label);
data.ST_bank = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_hexpand(widget, TRUE);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1);
row++;
- label = make_label(_("N_umber:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ label = make_label_widget(_("N_umber:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_string(label);
data.ST_number = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_hexpand(widget, TRUE);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 2, 1);
- row++;
- label = make_label(_("Limits"), 0.0, 0.5);
- gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 3, row, row+1);
+ // group :: Limits
+ group_grid = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
+ gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 1, 1, 1);
+ label = make_label_group(_("Balance limits"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 3, 1);
+
//TODO: warning/absolute minimum balance
- row++;
- label = make_label (_("_Min. balance:"), 0.0, 0.5);
- gtk_table_attach (GTK_TABLE (table), label, 1, 2, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ row = 1;
+ label = make_label_widget(_("_Overdraft at:"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 1, row, 1, 1);
widget = make_amount(label);
- data.ST_minimum = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 2, 3, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ data.ST_overdraft = widget;
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 2, row, 1, 1);
- row++;
- label = make_label(_("Report exclusion"), 0.0, 0.5);
- gimp_label_set_attributes(GTK_LABEL(label), PANGO_ATTR_WEIGHT, PANGO_WEIGHT_BOLD, -1);
- gtk_table_attach_defaults (GTK_TABLE (table), label, 0, 3, row, row+1);
+ // group :: Report exclusion
+ group_grid = gtk_grid_new ();
+ gtk_grid_set_row_spacing (GTK_GRID (group_grid), SPACING_SMALL);
+ gtk_grid_set_column_spacing (GTK_GRID (group_grid), SPACING_MEDIUM);
+ gtk_grid_attach (GTK_GRID (content_grid), group_grid, 0, 2, 1, 1);
- row++;
+ label = make_label_group(_("Report exclusion"));
+ gtk_grid_attach (GTK_GRID (group_grid), label, 0, 0, 2, 1);
+
+ row = 1;
widget = gtk_check_button_new_with_mnemonic (_("exclude from account _summary"));
data.CM_nosummary = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1);
row++;
widget = gtk_check_button_new_with_mnemonic (_("exclude from the _budget"));
data.CM_nobudget = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1);
row++;
widget = gtk_check_button_new_with_mnemonic (_("exclude from any _reports"));
data.CM_noreport = widget;
- gtk_table_attach (GTK_TABLE (table), widget, 1, 3, row, row+1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0);
+ gtk_grid_attach (GTK_GRID (group_grid), widget, 1, row, 1, 1);
//connect all our signals
g_signal_connect (GTK_TREE_VIEW(data.LV_acc), "row-activated", G_CALLBACK (ui_acc_manage_rowactivated), GINT_TO_POINTER(2));
g_signal_connect (G_OBJECT (data.BT_add), "clicked", G_CALLBACK (ui_acc_manage_add), NULL);
- g_signal_connect (G_OBJECT (data.BT_rem), "clicked", G_CALLBACK (ui_acc_manage_remove), NULL);
+ g_signal_connect (G_OBJECT (data.BT_rem), "clicked", G_CALLBACK (ui_acc_manage_delete), NULL);
//setup, init and show window
ui_acc_manage_setup(&data);
ui_acc_manage_update(data.LV_acc, NULL);
-// gtk_window_set_default_size (GTK_WINDOW (window), 640, 480);
-
gtk_widget_show_all (dialog);
//wait for the user