mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
* gncInvoice.[ch]: create gncInvoiceGetTotal(), which currently does
nothing but will eventually return the actual invoice total. * dialog-invoice.c: add a summary bar with the invoice total * invoice.glade: add a summary bar dock at the bottom of the page. Partial fix for bug #96833 git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@7410 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
parent
3ac7f92900
commit
d245d4607b
@ -1,3 +1,10 @@
|
||||
2002-10-27 Derek Atkins <derek@ihtfp.com>
|
||||
* gncInvoice.[ch]: create gncInvoiceGetTotal(), which currently does
|
||||
nothing but will eventually return the actual invoice total.
|
||||
* dialog-invoice.c: add a summary bar with the invoice total
|
||||
* invoice.glade: add a summary bar dock at the bottom of the page.
|
||||
Partial fix for bug #96833
|
||||
|
||||
2002-10-27 Christian Stimming <stimming@tuhh.de>
|
||||
|
||||
* src/import-export/hbci/*.c: add #include config.h for correct
|
||||
|
@ -373,6 +373,13 @@ const char * gncInvoiceGetNotes (GncInvoice *invoice)
|
||||
return invoice->notes;
|
||||
}
|
||||
|
||||
gnc_numeric gncInvoiceGetTotal (GncInvoice *invoice)
|
||||
{
|
||||
gnc_numeric total = { 200, 100 };
|
||||
if (!invoice) return gnc_numeric_zero();
|
||||
return total;
|
||||
}
|
||||
|
||||
static GncOwnerType gncInvoiceGetOwnerType (GncInvoice *invoice)
|
||||
{
|
||||
GncOwner *owner;
|
||||
|
@ -63,6 +63,9 @@ GNCLot * gncInvoiceGetPostedLot (GncInvoice *invoice);
|
||||
Transaction * gncInvoiceGetPostedTxn (GncInvoice *invoice);
|
||||
Account * gncInvoiceGetPostedAcc (GncInvoice *invoice);
|
||||
|
||||
/* return the "total" amount of the invoice */
|
||||
gnc_numeric gncInvoiceGetTotal (GncInvoice *invoice);
|
||||
|
||||
GList * gncInvoiceGetEntries (GncInvoice *invoice);
|
||||
|
||||
/* Post this invoice to an account. Returns the new Transaction
|
||||
|
@ -90,6 +90,10 @@ struct _invoice_window {
|
||||
GtkWidget * print_button;
|
||||
GtkWidget * post_button;
|
||||
|
||||
/* Summary Bar Widgets */
|
||||
GtkWidget * summarybar_dock;
|
||||
GtkWidget * total_label;
|
||||
|
||||
/* Menu Widgets */
|
||||
GtkWidget * menu_print;
|
||||
GtkWidget * menu_cut;
|
||||
@ -171,6 +175,7 @@ void gnc_invoice_window_sort_price_cb (GtkWidget *widget, gpointer data);
|
||||
|
||||
void gnc_invoice_window_toolbar_cb (GtkWidget *widget, gpointer data);
|
||||
void gnc_invoice_window_statusbar_cb (GtkWidget *widget, gpointer data);
|
||||
void gnc_invoice_window_summarybar_cb (GtkWidget *widget, gpointer data);
|
||||
|
||||
#define INV_WIDTH_PREFIX "invoice_reg"
|
||||
#define BILL_WIDTH_PREFIX "bill_reg"
|
||||
@ -787,6 +792,54 @@ void gnc_invoice_window_statusbar_cb (GtkWidget *widget, gpointer data)
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gnc_invoice_window_summarybar_cb (GtkWidget *widget, gpointer data)
|
||||
{
|
||||
InvoiceWindow *iw = data;
|
||||
GtkCheckMenuItem *checkmenu = GTK_CHECK_MENU_ITEM(widget);
|
||||
|
||||
if (checkmenu->active) {
|
||||
gtk_widget_show(iw->summarybar_dock);
|
||||
} else {
|
||||
gtk_widget_hide(iw->summarybar_dock);
|
||||
gtk_widget_queue_resize(iw->summarybar_dock);
|
||||
}
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
add_summary_label (GtkWidget *summarybar, const char *label_str)
|
||||
{
|
||||
GtkWidget *hbox;
|
||||
GtkWidget *label;
|
||||
|
||||
hbox = gtk_hbox_new(FALSE, 2);
|
||||
gtk_box_pack_start (GTK_BOX(summarybar), hbox, FALSE, FALSE, 5);
|
||||
|
||||
label = gtk_label_new (label_str);
|
||||
gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
|
||||
|
||||
label = gtk_label_new ("");
|
||||
gtk_misc_set_alignment (GTK_MISC(label), 1.0, 0.5);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
|
||||
|
||||
return label;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
gnc_invoice_window_create_summary_bar (InvoiceWindow *iw)
|
||||
{
|
||||
GtkWidget *summarybar;
|
||||
|
||||
iw->total_label = NULL;
|
||||
|
||||
summarybar = gtk_hbox_new (FALSE, 4);
|
||||
|
||||
iw->total_label = add_summary_label (summarybar, _("Total:"));
|
||||
|
||||
return summarybar;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
gnc_invoice_window_create_popup_menu (InvoiceWindow *iw)
|
||||
{
|
||||
@ -1148,10 +1201,26 @@ gnc_invoice_window_close_handler (gpointer user_data)
|
||||
static void
|
||||
gnc_invoice_redraw_all_cb (GnucashRegister *g_reg, gpointer data)
|
||||
{
|
||||
// InvoiceWindow *iw = data;
|
||||
InvoiceWindow *iw = data;
|
||||
GncInvoice * invoice;
|
||||
gnc_numeric amount;
|
||||
char string[256];
|
||||
|
||||
if (!iw)
|
||||
return;
|
||||
|
||||
// if (iw)
|
||||
// gnc_invoice_update_window (iw);
|
||||
|
||||
invoice = iw_get_invoice (iw);
|
||||
if (!invoice)
|
||||
return;
|
||||
|
||||
if (iw->total_label) {
|
||||
amount = gncInvoiceGetTotal(invoice);
|
||||
xaccSPrintAmount (string, amount, gnc_default_print_info (TRUE));
|
||||
gtk_label_set_text (GTK_LABEL (iw->total_label), string);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1577,6 +1646,16 @@ gnc_invoice_new_window (GNCBook *bookp, InvoiceDialogType type,
|
||||
/* grab the statusbar */
|
||||
iw->statusbar = glade_xml_get_widget (xml, "status_bar");
|
||||
|
||||
/* grab/build the summarybar */
|
||||
{
|
||||
GtkWidget * summarybar = gnc_invoice_window_create_summary_bar (iw);
|
||||
iw->summarybar_dock = glade_xml_get_widget (xml, "summarybar_dock");
|
||||
if (summarybar) {
|
||||
gtk_widget_show_all (summarybar);
|
||||
gtk_container_add (GTK_CONTAINER (iw->summarybar_dock), summarybar);
|
||||
}
|
||||
}
|
||||
|
||||
hbox = glade_xml_get_widget (xml, "date_opened_hbox");
|
||||
iw->opened_date = gnc_date_edit_new (time(NULL), FALSE, FALSE);
|
||||
gtk_box_pack_start (GTK_BOX(hbox), iw->opened_date, TRUE, TRUE, 0);
|
||||
|
@ -1360,6 +1360,25 @@
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GnomeDockItem</class>
|
||||
<name>summarybar_dock</name>
|
||||
<placement>GNOME_DOCK_BOTTOM</placement>
|
||||
<band>0</band>
|
||||
<position>0</position>
|
||||
<offset>0</offset>
|
||||
<locked>False</locked>
|
||||
<exclusive>False</exclusive>
|
||||
<never_floating>False</never_floating>
|
||||
<never_vertical>False</never_vertical>
|
||||
<never_horizontal>False</never_horizontal>
|
||||
<shadow_type>GTK_SHADOW_OUT</shadow_type>
|
||||
|
||||
<widget>
|
||||
<class>Placeholder</class>
|
||||
</widget>
|
||||
</widget>
|
||||
|
||||
<widget>
|
||||
<class>GtkVBox</class>
|
||||
<child_name>GnomeDock:contents</child_name>
|
||||
|
Loading…
Reference in New Issue
Block a user