* src/gnome/dialog-commodities.c: more work

* src/engine/gnc-commodity.c (gnc_commodity_table_remove): new func

	* src/engine/gnc-commodity.h: add ASX namespace

	* src/gnome/dialog-commodity.c (gnc_ui_edit_commodity_modal): new
	func. unfinished. rename some functions to reflect that it's also
	an editing dialog now.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3934 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas 2001-04-11 09:34:07 +00:00
parent a4a83ec781
commit 287fbee535
10 changed files with 336 additions and 100 deletions

View File

@ -1,3 +1,15 @@
2001-04-11 Dave Peticolas <dave@krondo.com>
* src/gnome/dialog-commodities.c: more work
* src/engine/gnc-commodity.c (gnc_commodity_table_remove): new func
* src/engine/gnc-commodity.h: add ASX namespace
* src/gnome/dialog-commodity.c (gnc_ui_edit_commodity_modal): new
func. unfinished. rename some functions to reflect that it's also
an editing dialog now.
2001-04-11 Robert Graham Merkel <rgmerk@mira.net>
* src/scm/report/transaction-report.scm (render-month-subheading):

View File

@ -435,6 +435,30 @@ gnc_commodity_table_insert(gnc_commodity_table * table,
return comm;
}
/********************************************************************
* gnc_commodity_table_remove
* remove a commodity from the table.
********************************************************************/
void
gnc_commodity_table_remove(gnc_commodity_table * table,
gnc_commodity * comm)
{
gnc_commodity_namespace * nsp;
gnc_commodity *c;
if (!table) return;
if (!comm) return;
c = gnc_commodity_table_lookup (table, comm->namespace, comm->mnemonic);
if (c != comm) return;
nsp = g_hash_table_lookup (table->table, comm->namespace);
if (!nsp) return;
g_hash_table_remove (nsp->table, comm->mnemonic);
}
/********************************************************************
* gnc_commodity_table_has_namespace
* see if any commodities in the namespace exist

View File

@ -36,6 +36,7 @@ typedef struct _gnc_commodity_table gnc_commodity_table;
#define GNC_COMMODITY_NS_EUREX "EUREX"
#define GNC_COMMODITY_NS_MUTUAL "FUND"
#define GNC_COMMODITY_NS_AMEX "AMEX"
#define GNC_COMMODITY_NS_ASX "ASX"
/* gnc_commodity functions */
gnc_commodity * gnc_commodity_new(const char * fullname,
@ -77,9 +78,12 @@ gnc_commodity * gnc_commodity_table_find_full(const gnc_commodity_table * t,
const char * fullname);
gnc_commodity * gnc_commodity_table_insert(gnc_commodity_table * table,
gnc_commodity * comm);
void gnc_commodity_table_remove(gnc_commodity_table * table,
gnc_commodity * comm);
int gnc_commodity_table_has_namespace(const gnc_commodity_table * t,
const char * namespace);
guint gnc_commodity_table_get_size(gnc_commodity_table* tbl);
guint gnc_commodity_table_get_number_of_namespaces(gnc_commodity_table* tbl);

View File

@ -50,6 +50,8 @@ typedef struct
GtkWidget * edit_button;
GtkWidget * remove_button;
gboolean show_currencies;
gnc_commodity *commodity;
gboolean new;
} CommoditiesDialog;
@ -106,6 +108,10 @@ gnc_load_namespace (gpointer data, gpointer user_data)
GList *commodities;
GList *node;
if (!cd->show_currencies &&
safe_strcmp (namespace, GNC_COMMODITY_NS_ISO) == 0)
return;
ct = gnc_engine_commodities ();
commodities = gnc_commodity_table_get_commodities (ct, namespace);
@ -134,7 +140,23 @@ gnc_load_namespace (gpointer data, gpointer user_data)
g_list_free (commodities);
}
static guint
static void
gnc_commodities_set_sensitives (CommoditiesDialog *cd)
{
gboolean sensitive;
if (cd->commodity &&
safe_strcmp (gnc_commodity_get_namespace (cd->commodity),
GNC_COMMODITY_NS_ISO) != 0)
sensitive = TRUE;
else
sensitive = FALSE;
gtk_widget_set_sensitive (cd->edit_button, sensitive);
gtk_widget_set_sensitive (cd->remove_button, sensitive);
}
static void
gnc_commodities_load_commodities (CommoditiesDialog *cd)
{
gnc_commodity_table *ct;
@ -169,14 +191,9 @@ gnc_commodities_load_commodities (CommoditiesDialog *cd)
gtk_clist_moveto (GTK_CLIST (cd->commodity_list),
new_row, 0, 0.5, 0.0);
size = gnc_commodity_table_get_size (ct);
gtk_widget_set_sensitive (cd->edit_button, size != 0);
gtk_widget_set_sensitive (cd->remove_button, size != 0);
g_list_free (namespaces);
return size;
gnc_commodities_set_sensitives (cd);
}
static void
@ -209,18 +226,84 @@ edit_clicked (GtkWidget *widget, gpointer data)
static void
remove_clicked (GtkWidget *widget, gpointer data)
{
GList *node;
GList *accounts;
gboolean do_delete;
gboolean can_delete;
CommoditiesDialog *cd = data;
const char *message = _("Are you sure you want to delete the\n"
"current commodity?");
if (!cd->commodity)
return;
accounts = xaccGroupGetSubAccounts (gncGetCurrentGroup ());
can_delete = TRUE;
do_delete = FALSE;
for (node = accounts; node; node = node->next)
{
Account *account = node->data;
if (cd->commodity == xaccAccountGetCurrency (account))
{
can_delete = FALSE;
break;
}
if (cd->commodity == xaccAccountGetSecurity (account))
{
can_delete = FALSE;
break;
}
}
if (!can_delete)
{
const char *message = _("That commodity is currently used by\n"
"at least one of your accounts. You may\n"
"not delete it.");
gnc_warning_dialog_parented (cd->dialog, message);
}
else
{
const char *message = _("Are you sure you want to delete the\n"
"current commodity?");
do_delete = gnc_verify_dialog_parented (cd->dialog, message, TRUE);
}
if (do_delete)
{
gnc_commodity_table *ct = gnc_engine_commodities ();
gnc_commodity_table_remove (ct, cd->commodity);
gnc_commodity_destroy (cd->commodity);
cd->commodity = NULL;
gnc_commodities_load_commodities (cd);
}
g_list_free (accounts);
}
static void
add_clicked (GtkWidget *widget, gpointer data)
{
CommoditiesDialog *cd = data;
gnc_commodity *commodity;
const char *namespace;
if (cd->commodity)
namespace = gnc_commodity_get_namespace (cd->commodity);
else
namespace = NULL;
commodity = gnc_ui_new_commodity_modal (namespace, cd->dialog);
if (commodity)
{
cd->commodity = commodity;
gnc_commodities_load_commodities (cd);
}
}
static void
@ -232,10 +315,7 @@ select_commodity_cb (GtkCList *clist, gint row, gint col,
cd->commodity = gtk_clist_get_row_data (clist, row);
cd->new = FALSE;
gtk_widget_set_sensitive (cd->edit_button,
cd->commodity != NULL);
gtk_widget_set_sensitive (cd->remove_button,
cd->commodity != NULL);
gnc_commodities_set_sensitives (cd);
}
static void
@ -247,8 +327,7 @@ unselect_commodity_cb (GtkCTree *ctre, gint row, gint col,
cd->commodity = NULL;
cd->new = FALSE;
gtk_widget_set_sensitive (cd->edit_button, FALSE);
gtk_widget_set_sensitive (cd->remove_button, FALSE);
gnc_commodities_set_sensitives (cd);
}
static void
@ -277,6 +356,16 @@ commodities_set_min_widths (CommoditiesDialog *cd)
}
}
static void
show_currencies_toggled (GtkToggleButton *toggle, gpointer data)
{
CommoditiesDialog *cd = data;
cd->show_currencies = gtk_toggle_button_get_active (toggle);
gnc_commodities_load_commodities (cd);
}
static void
gnc_commodities_dialog_create (GtkWidget * parent, CommoditiesDialog *cd)
{
@ -332,6 +421,11 @@ gnc_commodities_dialog_create (GtkWidget * parent, CommoditiesDialog *cd)
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (add_clicked), cd);
button = lookup_widget (dialog, "show_currencies_button");
gtk_signal_connect (GTK_OBJECT (button), "toggled",
GTK_SIGNAL_FUNC (show_currencies_toggled), cd);
}
gnc_commodities_load_commodities (cd);

View File

@ -45,7 +45,7 @@ struct _selectcommoditywindow {
void * callback_data;
};
struct _newcommoditywindow {
struct _commoditywindow {
GtkWidget * dialog;
GtkWidget * fullname_entry;
GtkWidget * mnemonic_entry;
@ -55,6 +55,8 @@ struct _newcommoditywindow {
gnc_commodity_callback callback;
void * callback_data;
gnc_commodity *edit_commodity;
};
@ -62,10 +64,10 @@ static SelectCommodityWindow *
gnc_ui_select_commodity_create(const gnc_commodity * orig_sel,
gnc_commodity_callback callback,
void * callback_data);
static NewCommodityWindow *
gnc_ui_new_commodity_create(const char * selected_namespace,
gnc_commodity_callback callback,
void * callback_data);
static CommodityWindow *
gnc_ui_commodity_create(const char * selected_namespace,
gnc_commodity_callback callback,
void * callback_data);
static void
@ -329,6 +331,7 @@ gnc_ui_update_namespace_picker(GtkWidget * combobox,
namespaces = g_list_prepend (namespaces, GNC_COMMODITY_NS_NYSE);
namespaces = g_list_prepend (namespaces, GNC_COMMODITY_NS_EUREX);
namespaces = g_list_prepend (namespaces, GNC_COMMODITY_NS_MUTUAL);
namespaces = g_list_prepend (namespaces, GNC_COMMODITY_NS_ASX);
namespaces = g_list_prepend (namespaces, GNC_COMMODITY_NS_AMEX);
}
@ -402,9 +405,9 @@ gnc_ui_namespace_picker_ns (GtkWidget *combobox)
}
static gint
new_commodity_close (GnomeDialog *dialog, gpointer data)
commodity_close (GnomeDialog *dialog, gpointer data)
{
NewCommodityWindow *ncw = data;
CommodityWindow *ncw = data;
g_free(ncw);
@ -417,14 +420,16 @@ new_commodity_close (GnomeDialog *dialog, gpointer data)
* gnc_ui_new_commodity_create()
********************************************************************/
static NewCommodityWindow *
static CommodityWindow *
gnc_ui_new_commodity_create(const char * selected_namespace,
gnc_commodity_callback callback,
void * callback_data) {
NewCommodityWindow * retval = g_new0(NewCommodityWindow, 1);
CommodityWindow * retval = g_new0(CommodityWindow, 1);
char *namespace;
retval->dialog = create_New_Commodity_Dialog();
retval->dialog = create_Commodity_Dialog();
retval->edit_commodity = NULL;
retval->fullname_entry =
gtk_object_get_data(GTK_OBJECT(retval->dialog), "fullname_entry");
@ -440,11 +445,11 @@ gnc_ui_new_commodity_create(const char * selected_namespace,
retval->callback = callback;
retval->callback_data = callback_data;
gtk_object_set_data(GTK_OBJECT(retval->dialog), "new_commodity_struct",
gtk_object_set_data(GTK_OBJECT(retval->dialog), "commodity_struct",
(gpointer)retval);
gtk_signal_connect (GTK_OBJECT(retval->dialog), "close",
GTK_SIGNAL_FUNC(new_commodity_close), retval);
GTK_SIGNAL_FUNC(commodity_close), retval);
namespace = gnc_ui_update_namespace_picker(retval->namespace_combo,
selected_namespace,
@ -454,6 +459,24 @@ gnc_ui_new_commodity_create(const char * selected_namespace,
return retval;
}
/********************************************************************
* gnc_ui_edit_commodity_create()
********************************************************************/
static CommodityWindow *
gnc_ui_edit_commodity_create(gnc_commodity *commodity,
gnc_commodity_callback callback,
void * callback_data) {
CommodityWindow *retval;
g_return_val_if_fail (commodity != NULL, NULL);
retval = gnc_ui_new_commodity_create (NULL, callback, callback_data);
retval->edit_commodity = commodity;
return retval;
}
static void
new_modal_callback(const gnc_commodity * arg, void * data) {
@ -469,7 +492,7 @@ gnc_ui_new_commodity_modal(const char * selected_namespace,
GtkWidget * parent) {
gnc_commodity * retval = NULL;
NewCommodityWindow * win =
CommodityWindow * win =
gnc_ui_new_commodity_create(selected_namespace, &new_modal_callback,
&retval);
if(parent) {
@ -482,13 +505,34 @@ gnc_ui_new_commodity_modal(const char * selected_namespace,
return retval;
}
/********************************************************************
* gnc_ui_edit_commodity_modal()
********************************************************************/
gboolean
gnc_ui_edit_commodity_modal(gnc_commodity *commodity,
GtkWidget * parent)
{
gnc_commodity * retval = NULL;
CommodityWindow * win =
gnc_ui_edit_commodity_create(commodity, &new_modal_callback, &retval);
if(parent) {
gnome_dialog_set_parent(GNOME_DIALOG(win->dialog), GTK_WINDOW(parent));
}
gtk_window_set_modal(GTK_WINDOW(win->dialog), TRUE);
gtk_widget_show (win->dialog);
gtk_main();
return (retval != NULL);
}
/********************************************************************
* gnc_ui_new_commodity_destroy()
* gnc_ui_commodity_destroy()
********************************************************************/
void
gnc_ui_new_commodity_destroy(NewCommodityWindow * w) {
gnc_ui_commodity_destroy(CommodityWindow * w) {
if(w) {
gnome_dialog_close(GNOME_DIALOG(w->dialog));
}
@ -496,15 +540,15 @@ gnc_ui_new_commodity_destroy(NewCommodityWindow * w) {
/********************************************************************
* gnc_ui_new_commodity_ok_cb()
* gnc_ui_commodity_ok_cb()
********************************************************************/
void
gnc_ui_new_commodity_ok_cb(GtkButton * button,
gpointer user_data) {
gnc_ui_commodity_ok_cb(GtkButton * button,
gpointer user_data) {
GtkWidget * dialog = GTK_WIDGET(user_data);
NewCommodityWindow * w =
gtk_object_get_data(GTK_OBJECT(dialog), "new_commodity_struct");
CommodityWindow * w =
gtk_object_get_data(GTK_OBJECT(dialog), "commodity_struct");
char * fullname = gtk_entry_get_text(GTK_ENTRY(w->fullname_entry));
const char * namespace = gnc_ui_namespace_picker_ns (w->namespace_combo);
@ -548,7 +592,7 @@ gnc_ui_new_commodity_ok_cb(GtkButton * button,
}
/* close the dialog */
gnc_ui_new_commodity_destroy(w);
gnc_ui_commodity_destroy(w);
}
else {
gnc_warning_dialog_parented(dialog,
@ -560,12 +604,12 @@ gnc_ui_new_commodity_ok_cb(GtkButton * button,
/********************************************************************
* gnc_ui_new_commodity_new_cb()
* gnc_ui_commodity_help_cb()
********************************************************************/
void
gnc_ui_new_commodity_help_cb(GtkButton * button,
gpointer user_data) {
gnc_ui_commodity_help_cb(GtkButton * button,
gpointer user_data) {
/* GtkWidget * dialog = GTK_WIDGET(user_data); */
helpWindow(NULL, _("Help"), HH_COMMODITY);
@ -573,19 +617,19 @@ gnc_ui_new_commodity_help_cb(GtkButton * button,
/********************************************************************
* gnc_ui_new_commodity_cancel_cb()
* gnc_ui_commodity_cancel_cb()
********************************************************************/
void
gnc_ui_new_commodity_cancel_cb(GtkButton * button,
gpointer user_data) {
gnc_ui_commodity_cancel_cb(GtkButton * button,
gpointer user_data) {
GtkWidget * dialog = GTK_WIDGET(user_data);
NewCommodityWindow * w =
gtk_object_get_data(GTK_OBJECT(dialog), "new_commodity_struct");
CommodityWindow * w =
gtk_object_get_data(GTK_OBJECT(dialog), "commodity_struct");
if (w->callback) {
(w->callback)(NULL, w->callback_data);
}
gnc_ui_new_commodity_destroy(w);
gnc_ui_commodity_destroy(w);
}

View File

@ -30,13 +30,13 @@
#include "gnc-engine.h"
typedef struct _selectcommoditywindow SelectCommodityWindow;
typedef struct _newcommoditywindow NewCommodityWindow;
typedef struct _commoditywindow CommodityWindow;
typedef void (* gnc_commodity_callback)(const gnc_commodity *, void * data);
void gnc_ui_select_commodity_destroy(SelectCommodityWindow * w);
void gnc_ui_new_commodity_destroy(NewCommodityWindow * w);
void gnc_ui_commodity_destroy(CommodityWindow * w);
gnc_commodity *
gnc_ui_select_commodity_modal(gnc_commodity * orig_sel,
@ -46,6 +46,10 @@ gnc_commodity *
gnc_ui_new_commodity_modal(const char * default_namespace,
GtkWidget * parent);
gboolean
gnc_ui_edit_commodity_modal(gnc_commodity *commodity,
GtkWidget * parent);
char * gnc_ui_update_namespace_picker(GtkWidget * combobox,
const char * sel,
gboolean include_iso,

View File

@ -247,3 +247,27 @@ gnc_edit_column_view_move_down_cb (GtkButton *button,
void
gnc_column_view_edit_size_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_new_commodity_ok_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_new_commodity_cancel_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_new_commodity_help_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_commodity_ok_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_commodity_cancel_cb (GtkButton *button,
gpointer user_data);
void
gnc_ui_commodity_help_cb (GtkButton *button,
gpointer user_data);

View File

@ -3171,9 +3171,9 @@ create_Commodity_Selector_Dialog (void)
}
GtkWidget*
create_New_Commodity_Dialog (void)
create_Commodity_Dialog (void)
{
GtkWidget *New_Commodity_Dialog;
GtkWidget *Commodity_Dialog;
GtkWidget *dialog_vbox13;
GtkWidget *hbox63;
GtkWidget *vbox77;
@ -3200,31 +3200,31 @@ create_New_Commodity_Dialog (void)
tooltips = gtk_tooltips_new ();
New_Commodity_Dialog = gnome_dialog_new (_("New Currency/Security"), NULL);
gtk_object_set_data (GTK_OBJECT (New_Commodity_Dialog), "New_Commodity_Dialog", New_Commodity_Dialog);
gtk_window_set_policy (GTK_WINDOW (New_Commodity_Dialog), TRUE, TRUE, FALSE);
Commodity_Dialog = gnome_dialog_new (_("New Currency/Security"), NULL);
gtk_object_set_data (GTK_OBJECT (Commodity_Dialog), "Commodity_Dialog", Commodity_Dialog);
gtk_window_set_policy (GTK_WINDOW (Commodity_Dialog), TRUE, TRUE, FALSE);
dialog_vbox13 = GNOME_DIALOG (New_Commodity_Dialog)->vbox;
gtk_object_set_data (GTK_OBJECT (New_Commodity_Dialog), "dialog_vbox13", dialog_vbox13);
dialog_vbox13 = GNOME_DIALOG (Commodity_Dialog)->vbox;
gtk_object_set_data (GTK_OBJECT (Commodity_Dialog), "dialog_vbox13", dialog_vbox13);
gtk_widget_show (dialog_vbox13);
hbox63 = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (hbox63);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "hbox63", hbox63,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "hbox63", hbox63,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (hbox63);
gtk_box_pack_start (GTK_BOX (dialog_vbox13), hbox63, TRUE, TRUE, 0);
vbox77 = gtk_vbox_new (TRUE, 0);
gtk_widget_ref (vbox77);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "vbox77", vbox77,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "vbox77", vbox77,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (vbox77);
gtk_box_pack_start (GTK_BOX (hbox63), vbox77, TRUE, TRUE, 2);
label809 = gtk_label_new (_("Full name:"));
gtk_widget_ref (label809);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label809", label809,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label809", label809,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label809);
gtk_box_pack_start (GTK_BOX (vbox77), label809, FALSE, FALSE, 0);
@ -3232,7 +3232,7 @@ create_New_Commodity_Dialog (void)
label810 = gtk_label_new (_("Symbol/abbreviation:"));
gtk_widget_ref (label810);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label810", label810,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label810", label810,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label810);
gtk_box_pack_start (GTK_BOX (vbox77), label810, FALSE, FALSE, 0);
@ -3240,7 +3240,7 @@ create_New_Commodity_Dialog (void)
label812 = gtk_label_new (_("Type:"));
gtk_widget_ref (label812);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label812", label812,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label812", label812,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label812);
gtk_box_pack_start (GTK_BOX (vbox77), label812, FALSE, FALSE, 0);
@ -3248,7 +3248,7 @@ create_New_Commodity_Dialog (void)
label811 = gtk_label_new (_("CUSIP or other code:"));
gtk_widget_ref (label811);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label811", label811,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label811", label811,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label811);
gtk_box_pack_start (GTK_BOX (vbox77), label811, FALSE, FALSE, 0);
@ -3256,7 +3256,7 @@ create_New_Commodity_Dialog (void)
label813 = gtk_label_new (_("Fraction traded:"));
gtk_widget_ref (label813);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label813", label813,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label813", label813,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label813);
gtk_box_pack_start (GTK_BOX (vbox77), label813, FALSE, FALSE, 0);
@ -3264,14 +3264,14 @@ create_New_Commodity_Dialog (void)
vbox78 = gtk_vbox_new (TRUE, 0);
gtk_widget_ref (vbox78);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "vbox78", vbox78,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "vbox78", vbox78,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (vbox78);
gtk_box_pack_start (GTK_BOX (hbox63), vbox78, TRUE, TRUE, 2);
fullname_entry = gtk_entry_new ();
gtk_widget_ref (fullname_entry);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "fullname_entry", fullname_entry,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "fullname_entry", fullname_entry,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (fullname_entry);
gtk_box_pack_start (GTK_BOX (vbox78), fullname_entry, FALSE, FALSE, 0);
@ -3279,7 +3279,7 @@ create_New_Commodity_Dialog (void)
mnemonic_entry = gtk_entry_new ();
gtk_widget_ref (mnemonic_entry);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "mnemonic_entry", mnemonic_entry,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "mnemonic_entry", mnemonic_entry,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (mnemonic_entry);
gtk_box_pack_start (GTK_BOX (vbox78), mnemonic_entry, FALSE, FALSE, 0);
@ -3287,20 +3287,21 @@ create_New_Commodity_Dialog (void)
namespace_combo = gtk_combo_new ();
gtk_widget_ref (namespace_combo);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "namespace_combo", namespace_combo,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "namespace_combo", namespace_combo,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (namespace_combo);
gtk_box_pack_start (GTK_BOX (vbox78), namespace_combo, FALSE, FALSE, 0);
namespace_entry = GTK_COMBO (namespace_combo)->entry;
gtk_widget_ref (namespace_entry);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "namespace_entry", namespace_entry,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "namespace_entry", namespace_entry,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (namespace_entry);
gtk_tooltips_set_tip (tooltips, namespace_entry, _("Enter the type of commodity. For stocks, this is often an exchange on which the stock is traded. You can choose an existing type from the list or enter a new type with the keyboard."), NULL);
code_entry = gtk_entry_new ();
gtk_widget_ref (code_entry);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "code_entry", code_entry,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "code_entry", code_entry,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (code_entry);
gtk_box_pack_start (GTK_BOX (vbox78), code_entry, FALSE, FALSE, 0);
@ -3308,14 +3309,14 @@ create_New_Commodity_Dialog (void)
hbox64 = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (hbox64);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "hbox64", hbox64,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "hbox64", hbox64,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (hbox64);
gtk_box_pack_start (GTK_BOX (vbox78), hbox64, FALSE, FALSE, 0);
label814 = gtk_label_new (_("1 /"));
gtk_widget_ref (label814);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "label814", label814,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "label814", label814,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label814);
gtk_box_pack_start (GTK_BOX (hbox64), label814, FALSE, FALSE, 4);
@ -3323,55 +3324,55 @@ create_New_Commodity_Dialog (void)
fraction_spinbutton_adj = gtk_adjustment_new (10000, 1, 1e+08, 1, 100, 100);
fraction_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (fraction_spinbutton_adj), 1, 0);
gtk_widget_ref (fraction_spinbutton);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "fraction_spinbutton", fraction_spinbutton,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "fraction_spinbutton", fraction_spinbutton,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (fraction_spinbutton);
gtk_box_pack_start (GTK_BOX (hbox64), fraction_spinbutton, TRUE, TRUE, 0);
gtk_tooltips_set_tip (tooltips, fraction_spinbutton, _("Enter the smallest fraction of the commodity which can be traded. For stocks which can only be traded in whole numbers, enter 1."), NULL);
dialog_action_area13 = GNOME_DIALOG (New_Commodity_Dialog)->action_area;
gtk_object_set_data (GTK_OBJECT (New_Commodity_Dialog), "dialog_action_area13", dialog_action_area13);
dialog_action_area13 = GNOME_DIALOG (Commodity_Dialog)->action_area;
gtk_object_set_data (GTK_OBJECT (Commodity_Dialog), "dialog_action_area13", dialog_action_area13);
gtk_widget_show (dialog_action_area13);
gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area13), GTK_BUTTONBOX_SPREAD);
gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area13), 8);
gnome_dialog_append_button (GNOME_DIALOG (New_Commodity_Dialog), GNOME_STOCK_BUTTON_OK);
button66 = GTK_WIDGET (g_list_last (GNOME_DIALOG (New_Commodity_Dialog)->buttons)->data);
gnome_dialog_append_button (GNOME_DIALOG (Commodity_Dialog), GNOME_STOCK_BUTTON_OK);
button66 = GTK_WIDGET (g_list_last (GNOME_DIALOG (Commodity_Dialog)->buttons)->data);
gtk_widget_ref (button66);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "button66", button66,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "button66", button66,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (button66);
GTK_WIDGET_SET_FLAGS (button66, GTK_CAN_DEFAULT);
gnome_dialog_append_button (GNOME_DIALOG (New_Commodity_Dialog), GNOME_STOCK_BUTTON_CANCEL);
button67 = GTK_WIDGET (g_list_last (GNOME_DIALOG (New_Commodity_Dialog)->buttons)->data);
gnome_dialog_append_button (GNOME_DIALOG (Commodity_Dialog), GNOME_STOCK_BUTTON_CANCEL);
button67 = GTK_WIDGET (g_list_last (GNOME_DIALOG (Commodity_Dialog)->buttons)->data);
gtk_widget_ref (button67);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "button67", button67,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "button67", button67,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (button67);
GTK_WIDGET_SET_FLAGS (button67, GTK_CAN_DEFAULT);
gnome_dialog_append_button (GNOME_DIALOG (New_Commodity_Dialog), GNOME_STOCK_BUTTON_HELP);
button68 = GTK_WIDGET (g_list_last (GNOME_DIALOG (New_Commodity_Dialog)->buttons)->data);
gnome_dialog_append_button (GNOME_DIALOG (Commodity_Dialog), GNOME_STOCK_BUTTON_HELP);
button68 = GTK_WIDGET (g_list_last (GNOME_DIALOG (Commodity_Dialog)->buttons)->data);
gtk_widget_ref (button68);
gtk_object_set_data_full (GTK_OBJECT (New_Commodity_Dialog), "button68", button68,
gtk_object_set_data_full (GTK_OBJECT (Commodity_Dialog), "button68", button68,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (button68);
GTK_WIDGET_SET_FLAGS (button68, GTK_CAN_DEFAULT);
gtk_signal_connect (GTK_OBJECT (button66), "clicked",
GTK_SIGNAL_FUNC (gnc_ui_new_commodity_ok_cb),
New_Commodity_Dialog);
GTK_SIGNAL_FUNC (gnc_ui_commodity_ok_cb),
Commodity_Dialog);
gtk_signal_connect (GTK_OBJECT (button67), "clicked",
GTK_SIGNAL_FUNC (gnc_ui_new_commodity_cancel_cb),
New_Commodity_Dialog);
GTK_SIGNAL_FUNC (gnc_ui_commodity_cancel_cb),
Commodity_Dialog);
gtk_signal_connect (GTK_OBJECT (button68), "clicked",
GTK_SIGNAL_FUNC (gnc_ui_new_commodity_help_cb),
New_Commodity_Dialog);
GTK_SIGNAL_FUNC (gnc_ui_commodity_help_cb),
Commodity_Dialog);
gtk_object_set_data (GTK_OBJECT (New_Commodity_Dialog), "tooltips", tooltips);
gtk_object_set_data (GTK_OBJECT (Commodity_Dialog), "tooltips", tooltips);
return New_Commodity_Dialog;
return Commodity_Dialog;
}
GtkWidget*
@ -7666,6 +7667,7 @@ create_Commodities_Dialog (void)
GtkWidget *hbox107;
GtkWidget *frame51;
GtkWidget *vbox128;
GtkWidget *show_currencies_button;
GtkWidget *scrolledwindow33;
GtkWidget *commodity_list;
GtkWidget *label8477426;
@ -7713,12 +7715,21 @@ create_Commodities_Dialog (void)
gtk_widget_show (vbox128);
gtk_container_add (GTK_CONTAINER (frame51), vbox128);
show_currencies_button = gtk_check_button_new_with_label (_("Show National Currencies"));
gtk_widget_ref (show_currencies_button);
gtk_object_set_data_full (GTK_OBJECT (Commodities_Dialog), "show_currencies_button", show_currencies_button,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (show_currencies_button);
gtk_box_pack_start (GTK_BOX (vbox128), show_currencies_button, FALSE, FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (show_currencies_button), 3);
scrolledwindow33 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_ref (scrolledwindow33);
gtk_object_set_data_full (GTK_OBJECT (Commodities_Dialog), "scrolledwindow33", scrolledwindow33,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (scrolledwindow33);
gtk_box_pack_start (GTK_BOX (vbox128), scrolledwindow33, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow33), 3);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow33), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
commodity_list = gtk_clist_new (5);
@ -7775,6 +7786,7 @@ create_Commodities_Dialog (void)
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (hbuttonbox7);
gtk_box_pack_start (GTK_BOX (vbox128), hbuttonbox7, FALSE, FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox7), 3);
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox7), GTK_BUTTONBOX_SPREAD);
add_button = gtk_button_new_with_label (_("Add"));

View File

@ -9,7 +9,7 @@ GtkWidget* create_Budget_Dialog (void);
GtkWidget* create_Financial_Calculator_Dialog (void);
GtkWidget* create_Amortization_Schedule_Dialog (void);
GtkWidget* create_Commodity_Selector_Dialog (void);
GtkWidget* create_New_Commodity_Dialog (void);
GtkWidget* create_Commodity_Dialog (void);
GtkWidget* create_Account_Dialog (void);
GtkWidget* create_New_Commodity_Format_Druid (void);
GtkWidget* create_QIF_Import_Druid (void);

View File

@ -4605,7 +4605,7 @@ Daily (365)
<widget>
<class>GnomeDialog</class>
<name>New Commodity Dialog</name>
<name>Commodity Dialog</name>
<title>New Currency/Security</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
@ -4652,9 +4652,9 @@ Daily (365)
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
<handler>gnc_ui_new_commodity_ok_cb</handler>
<data>New_Commodity_Dialog</data>
<last_modification_time>Tue, 08 Aug 2000 17:10:45 GMT</last_modification_time>
<handler>gnc_ui_commodity_ok_cb</handler>
<data>Commodity_Dialog</data>
<last_modification_time>Wed, 11 Apr 2001 09:03:12 GMT</last_modification_time>
</signal>
<stock_button>GNOME_STOCK_BUTTON_OK</stock_button>
</widget>
@ -4666,9 +4666,9 @@ Daily (365)
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
<handler>gnc_ui_new_commodity_cancel_cb</handler>
<data>New_Commodity_Dialog</data>
<last_modification_time>Tue, 08 Aug 2000 17:11:18 GMT</last_modification_time>
<handler>gnc_ui_commodity_cancel_cb</handler>
<data>Commodity_Dialog</data>
<last_modification_time>Wed, 11 Apr 2001 09:03:18 GMT</last_modification_time>
</signal>
<stock_button>GNOME_STOCK_BUTTON_CANCEL</stock_button>
</widget>
@ -4680,9 +4680,9 @@ Daily (365)
<can_focus>True</can_focus>
<signal>
<name>clicked</name>
<handler>gnc_ui_new_commodity_help_cb</handler>
<data>New_Commodity_Dialog</data>
<last_modification_time>Tue, 08 Aug 2000 17:12:03 GMT</last_modification_time>
<handler>gnc_ui_commodity_help_cb</handler>
<data>Commodity_Dialog</data>
<last_modification_time>Wed, 11 Apr 2001 09:03:24 GMT</last_modification_time>
</signal>
<stock_button>GNOME_STOCK_BUTTON_HELP</stock_button>
</widget>
@ -4858,6 +4858,7 @@ Daily (365)
<class>GtkEntry</class>
<child_name>GtkCombo:entry</child_name>
<name>namespace_entry</name>
<tooltip>Enter the type of commodity. For stocks, this is often an exchange on which the stock is traded. You can choose an existing type from the list or enter a new type with the keyboard.</tooltip>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
@ -11444,9 +11445,25 @@ Unknown
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<widget>
<class>GtkCheckButton</class>
<name>show_currencies_button</name>
<border_width>3</border_width>
<can_focus>True</can_focus>
<label>Show National Currencies</label>
<active>False</active>
<draw_indicator>True</draw_indicator>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkScrolledWindow</class>
<name>scrolledwindow33</name>
<border_width>3</border_width>
<hscrollbar_policy>GTK_POLICY_NEVER</hscrollbar_policy>
<vscrollbar_policy>GTK_POLICY_ALWAYS</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
@ -11537,6 +11554,7 @@ Unknown
<widget>
<class>GtkHButtonBox</class>
<name>hbuttonbox7</name>
<border_width>3</border_width>
<layout_style>GTK_BUTTONBOX_SPREAD</layout_style>
<spacing>30</spacing>
<child_min_width>85</child_min_width>