- //connect all our signals
- g_signal_connect (data.PO_cat[i], "changed", G_CALLBACK (ui_txn_split_dialog_compute), &data);
- data.handler_id[i] = g_signal_connect (G_OBJECT (data.ST_amount[i]), "value-changed", G_CALLBACK (ui_txn_split_dialog_compute), &data);
- if(data.BT_rem[i])
- g_signal_connect (data.BT_rem[i], "clicked", G_CALLBACK (ui_txn_split_dialog_inactiveline), GINT_TO_POINTER(i));
- if(data.BT_add[i])
- g_signal_connect (data.BT_add[i], "clicked", G_CALLBACK (ui_txn_split_dialog_activeline), GINT_TO_POINTER(i));
- }
-
- row++;
- label = gtk_label_new(_("Sum of splits:"));
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_table_attach (GTK_TABLE (table), label, 3, 4, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
- label = gtk_label_new(NULL);
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_misc_set_padding(GTK_MISC(label), 20, 0);
- data.LB_sumsplit = label;
- gtk_table_attach (GTK_TABLE (table), label, 4, 5, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
-
- if( data.splittype == TXN_SPLIT_AMOUNT )
- {
- row++;
- label = gtk_label_new(_("Unassigned:"));
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_table_attach (GTK_TABLE (table), label, 3, 4, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
- label = gtk_label_new(NULL);
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_misc_set_padding(GTK_MISC(label), 20, 0);
- data.LB_remain = label;
- gtk_table_attach (GTK_TABLE (table), label, 4, 5, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
-
- row++;
- widget = gtk_hseparator_new();
- gtk_table_attach (GTK_TABLE (table), widget, 4, 5, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
-
- row++;
- label = gtk_label_new(_("Transaction amount:"));
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_table_attach (GTK_TABLE (table), label, 3, 4, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
- label = gtk_label_new(NULL);
- gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.0);
- gtk_misc_set_padding(GTK_MISC(label), 20, 0);
- data.LB_txnamount = label;
- gtk_table_attach (GTK_TABLE (table), label, 4, 5, row, row+1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0);
- }
-
-
- //setup, init and show dialog
- //ui_cur_manage_dialog_setup(&data);
-
-
- ui_txn_split_dialog_set(&data);
- ui_txn_split_dialog_compute(NULL, &data);
-
-
- //ui_cur_manage_dialog_update(data.LV_cur, NULL);
-
- gtk_window_set_default_size(GTK_WINDOW(dialog), 480, -1);
-
- gtk_widget_show_all (dialog);
-
- //wait for the user
- gint result = gtk_dialog_run (GTK_DIALOG (dialog));
-
- switch (result)
- {
- case GTK_RESPONSE_ACCEPT:
- //do_application_specific_something ();
- ui_txn_split_dialog_get(&data);
- deftransaction_update(parent, NULL);
- break;
- case GTK_RESPONSE_SPLIT_REM:
- da_transaction_splits_free(ope);
- deftransaction_update(parent, NULL);
- break;
- case GTK_RESPONSE_SPLIT_SUM: // sum split and alter txn amount
- ui_txn_split_dialog_get(&data);
- deftransaction_set_amount_from_split(parent, data.sumsplit);
- deftransaction_update(parent, NULL);
- break;
- default:
- //do_nothing_since_dialog_was_cancelled ();
- break;
- }
-
- // debug
- #if MYDEBUG == 1
- {
- guint i;
-
- for(i=0;i<TXN_MAX_SPLIT;i++)
- {
- Split *split = data.ope->splits[i];
- if(data.ope->splits[i] == NULL)
- break;
- g_print(" split %d : %d, %.2f, %s\n", i, split->kcat, split->amount, split->memo);
- }