Start working on stock split druid.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@3484 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Dave Peticolas
2001-01-16 11:44:05 +00:00
parent 617c56d965
commit 6851daf37f
8 changed files with 439 additions and 9 deletions

View File

@@ -88,6 +88,7 @@ int gnc_choose_radio_option_dialog_parented(gncUIWidget parent,
gboolean gnc_dup_trans_dialog (GtkWidget * parent, time_t *date_p,
const char *num, char **out_num);
void gnc_tax_info_dialog (GtkWidget * parent);
void gnc_stock_split_dialog (Account * initial);
/* Managing the GUI Windows *****************************************/

View File

@@ -22,6 +22,7 @@ libgncgnome_a_SOURCES = \
dialog-utils.c \
druid-commodity.c \
druid-qif-import.c \
druid-stock-split.c \
extensions.c \
file-history.c \
glade-gnc-dialogs.c \

View File

@@ -194,10 +194,11 @@ gnc_ui_qif_import_druid_make(void) {
void
gnc_ui_qif_import_druid_destroy (QIFImportWindow * window) {
if(window) {
gtk_widget_destroy(window->window);
}
if (!window)
return;
gtk_widget_destroy(window->window);
scm_unprotect_object(window->imported_files);
scm_unprotect_object(window->selected_file);
scm_unprotect_object(window->gnc_acct_info);

View File

@@ -0,0 +1,101 @@
/********************************************************************\
* druid-stock-split.c -- stock split druid for GnuCash *
* Copyright (C) 2001 Gnumatic, Inc. *
* Author: Dave Peticolas <dave@krondo.com> *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License as *
* published by the Free Software Foundation; either version 2 of *
* the License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License*
* along with this program; if not, contact: *
* *
* Free Software Foundation Voice: +1-617-542-5942 *
* 59 Temple Place - Suite 330 Fax: +1-617-542-2652 *
* Boston, MA 02111-1307, USA gnu@gnu.org *
\********************************************************************/
#include "config.h"
#include <gnome.h>
#include "Account.h"
#include "account-tree.h"
#include "dialog-utils.h"
#include "glade-gnc-dialogs.h"
#include "glade-support.h"
#include "gnc-component-manager.h"
#include "gnc-ui.h"
#include "messages.h"
#define DRUID_STOCK_SPLIT_CM_CLASS "druid-stock-split"
typedef struct
{
GtkWidget * window;
GtkWidget * account_list;
} StockSplitInfo;
static int
window_destroy_cb (GtkObject *object, gpointer data)
{
StockSplitInfo *info = data;
gnc_unregister_gui_component_by_data (DRUID_STOCK_SPLIT_CM_CLASS, info);
g_free (info);
}
static void
gnc_stock_split_druid_create (StockSplitInfo *info)
{
info->window = create_Stock_Split_Druid ();
gtk_signal_connect (GTK_OBJECT (info->window), "destroy",
GTK_SIGNAL_FUNC (window_destroy_cb), info);
/* account list */
info->account_list = lookup_widget (info->window, "account_clist");
}
static void
close_handler (gpointer user_data)
{
StockSplitInfo *info = user_data;
gtk_widget_destroy (info->window);
}
/********************************************************************\
* gnc_stock_split_dialog *
* opens up a window to record a stock split *
* *
* Args: initial - the initial account to use *
* Return: nothing *
\********************************************************************/
void
gnc_stock_split_dialog (Account * initial)
{
StockSplitInfo *info;
info = g_new0 (StockSplitInfo, 1);
gnc_stock_split_druid_create (info);
gnc_register_gui_component (DRUID_STOCK_SPLIT_CM_CLASS,
NULL, close_handler, info);
gtk_widget_show_all (info->window);
gnc_window_adjust_for_screen (GTK_WINDOW(info->window));
}

View File

@@ -5822,3 +5822,141 @@ create_HTML_Style_Sheet_Dialog (void)
return HTML_Style_Sheet_Dialog;
}
GtkWidget*
create_Stock_Split_Druid (void)
{
GtkWidget *Stock_Split_Druid;
GtkWidget *druid1;
GtkWidget *druidpagestart2;
GdkColor druidpagestart2_bg_color = { 0, 6425, 6425, 28784 };
GdkColor druidpagestart2_textbox_color = { 0, 65535, 65535, 65535 };
GdkColor druidpagestart2_logo_bg_color = { 0, 65535, 65535, 65535 };
GdkColor druidpagestart2_title_color = { 0, 65535, 65535, 65535 };
GtkWidget *druidpagestandard11;
GdkColor druidpagestandard11_bg_color = { 0, 6425, 6425, 28784 };
GdkColor druidpagestandard11_logo_bg_color = { 0, 65535, 65535, 65535 };
GdkColor druidpagestandard11_title_color = { 0, 65535, 65535, 65535 };
GtkWidget *druid_vbox31;
GtkWidget *vbox98;
GtkWidget *label847672;
GtkWidget *hbox86;
GtkWidget *scrolledwindow21;
GtkWidget *account_clist;
GtkWidget *label847673;
GtkWidget *label847674;
GtkWidget *druidpagefinish1;
GdkColor druidpagefinish1_bg_color = { 0, 6425, 6425, 28784 };
GdkColor druidpagefinish1_textbox_color = { 0, 65535, 65535, 65535 };
GdkColor druidpagefinish1_logo_bg_color = { 0, 65535, 65535, 65535 };
GdkColor druidpagefinish1_title_color = { 0, 65535, 65535, 65535 };
Stock_Split_Druid = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_object_set_data (GTK_OBJECT (Stock_Split_Druid), "Stock_Split_Druid", Stock_Split_Druid);
gtk_window_set_title (GTK_WINDOW (Stock_Split_Druid), _("Stock Split"));
druid1 = gnome_druid_new ();
gtk_widget_ref (druid1);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "druid1", druid1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (druid1);
gtk_container_add (GTK_CONTAINER (Stock_Split_Druid), druid1);
druidpagestart2 = gnome_druid_page_start_new ();
gtk_widget_ref (druidpagestart2);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "druidpagestart2", druidpagestart2,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (druidpagestart2);
gnome_druid_append_page (GNOME_DRUID (druid1), GNOME_DRUID_PAGE (druidpagestart2));
gnome_druid_set_page (GNOME_DRUID (druid1), GNOME_DRUID_PAGE (druidpagestart2));
gnome_druid_page_start_set_bg_color (GNOME_DRUID_PAGE_START (druidpagestart2), &druidpagestart2_bg_color);
gnome_druid_page_start_set_textbox_color (GNOME_DRUID_PAGE_START (druidpagestart2), &druidpagestart2_textbox_color);
gnome_druid_page_start_set_logo_bg_color (GNOME_DRUID_PAGE_START (druidpagestart2), &druidpagestart2_logo_bg_color);
gnome_druid_page_start_set_title_color (GNOME_DRUID_PAGE_START (druidpagestart2), &druidpagestart2_title_color);
gnome_druid_page_start_set_text (GNOME_DRUID_PAGE_START (druidpagestart2), _("This wizard will help you record a stock split or stock merger."));
druidpagestandard11 = gnome_druid_page_standard_new_with_vals ("", NULL);
gtk_widget_ref (druidpagestandard11);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "druidpagestandard11", druidpagestandard11,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show_all (druidpagestandard11);
gnome_druid_append_page (GNOME_DRUID (druid1), GNOME_DRUID_PAGE (druidpagestandard11));
gnome_druid_page_standard_set_bg_color (GNOME_DRUID_PAGE_STANDARD (druidpagestandard11), &druidpagestandard11_bg_color);
gnome_druid_page_standard_set_logo_bg_color (GNOME_DRUID_PAGE_STANDARD (druidpagestandard11), &druidpagestandard11_logo_bg_color);
gnome_druid_page_standard_set_title_color (GNOME_DRUID_PAGE_STANDARD (druidpagestandard11), &druidpagestandard11_title_color);
druid_vbox31 = GNOME_DRUID_PAGE_STANDARD (druidpagestandard11)->vbox;
gtk_widget_ref (druid_vbox31);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "druid_vbox31", druid_vbox31,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (druid_vbox31);
vbox98 = gtk_vbox_new (FALSE, 0);
gtk_widget_ref (vbox98);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "vbox98", vbox98,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (vbox98);
gtk_box_pack_start (GTK_BOX (druid_vbox31), vbox98, TRUE, TRUE, 0);
gtk_container_set_border_width (GTK_CONTAINER (vbox98), 5);
label847672 = gtk_label_new (_("Please select the Stock account for which you want to record a stock split or merger."));
gtk_widget_ref (label847672);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "label847672", label847672,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label847672);
gtk_box_pack_start (GTK_BOX (vbox98), label847672, FALSE, FALSE, 0);
hbox86 = gtk_hbox_new (FALSE, 0);
gtk_widget_ref (hbox86);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "hbox86", hbox86,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (hbox86);
gtk_box_pack_start (GTK_BOX (vbox98), hbox86, TRUE, TRUE, 0);
scrolledwindow21 = gtk_scrolled_window_new (NULL, NULL);
gtk_widget_ref (scrolledwindow21);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "scrolledwindow21", scrolledwindow21,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (scrolledwindow21);
gtk_box_pack_start (GTK_BOX (hbox86), scrolledwindow21, FALSE, FALSE, 0);
gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow21), 20);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow21), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
account_clist = gtk_clist_new (2);
gtk_widget_ref (account_clist);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "account_clist", account_clist,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (account_clist);
gtk_container_add (GTK_CONTAINER (scrolledwindow21), account_clist);
gtk_clist_set_column_width (GTK_CLIST (account_clist), 0, 80);
gtk_clist_set_column_width (GTK_CLIST (account_clist), 1, 80);
gtk_clist_column_titles_show (GTK_CLIST (account_clist));
label847673 = gtk_label_new (_("Name"));
gtk_widget_ref (label847673);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "label847673", label847673,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label847673);
gtk_clist_set_column_widget (GTK_CLIST (account_clist), 0, label847673);
label847674 = gtk_label_new (_("Share Balance"));
gtk_widget_ref (label847674);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "label847674", label847674,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (label847674);
gtk_clist_set_column_widget (GTK_CLIST (account_clist), 1, label847674);
druidpagefinish1 = gnome_druid_page_finish_new ();
gtk_widget_ref (druidpagefinish1);
gtk_object_set_data_full (GTK_OBJECT (Stock_Split_Druid), "druidpagefinish1", druidpagefinish1,
(GtkDestroyNotify) gtk_widget_unref);
gtk_widget_show (druidpagefinish1);
gnome_druid_append_page (GNOME_DRUID (druid1), GNOME_DRUID_PAGE (druidpagefinish1));
gnome_druid_page_finish_set_bg_color (GNOME_DRUID_PAGE_FINISH (druidpagefinish1), &druidpagefinish1_bg_color);
gnome_druid_page_finish_set_textbox_color (GNOME_DRUID_PAGE_FINISH (druidpagefinish1), &druidpagefinish1_textbox_color);
gnome_druid_page_finish_set_logo_bg_color (GNOME_DRUID_PAGE_FINISH (druidpagefinish1), &druidpagefinish1_logo_bg_color);
gnome_druid_page_finish_set_title_color (GNOME_DRUID_PAGE_FINISH (druidpagefinish1), &druidpagefinish1_title_color);
gnome_druid_page_finish_set_text (GNOME_DRUID_PAGE_FINISH (druidpagefinish1), _("If you are finished creating the stock split or merger, press `Finish'.\nYou may also press `Back' to review your choices, or `Cancel' to\nquit without making any changes."));
return Stock_Split_Druid;
}

View File

@@ -21,3 +21,4 @@ GtkWidget* create_New_Style_Sheet_Dialog (void);
GtkWidget* create_Tax_Information_Dialog (void);
GtkWidget* create_Duplicate_Transaction_Dialog (void);
GtkWidget* create_HTML_Style_Sheet_Dialog (void);
GtkWidget* create_Stock_Split_Druid (void);

View File

@@ -8542,4 +8542,171 @@ words.
</widget>
</widget>
<widget>
<class>GtkWindow</class>
<name>Stock Split Druid</name>
<title>Stock Split</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<widget>
<class>GnomeDruid</class>
<name>druid1</name>
<widget>
<class>GnomeDruidPageStart</class>
<name>druidpagestart2</name>
<title></title>
<text>This wizard will help you record a stock split or stock merger.</text>
<title_color>255,255,255</title_color>
<text_color>0,0,0</text_color>
<background_color>25,25,112</background_color>
<logo_background_color>255,255,255</logo_background_color>
<textbox_color>255,255,255</textbox_color>
</widget>
<widget>
<class>GnomeDruidPageStandard</class>
<name>druidpagestandard11</name>
<title></title>
<title_color>255,255,255</title_color>
<background_color>25,25,112</background_color>
<logo_background_color>255,255,255</logo_background_color>
<widget>
<class>GtkVBox</class>
<child_name>GnomeDruidPageStandard:vbox</child_name>
<name>druid-vbox31</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkVBox</class>
<name>vbox98</name>
<border_width>5</border_width>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>GtkLabel</class>
<name>label847672</name>
<label>Please select the Stock account for which you want to record a stock split or merger.</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
<widget>
<class>GtkHBox</class>
<name>hbox86</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<padding>0</padding>
<expand>True</expand>
<fill>True</fill>
</child>
<widget>
<class>Placeholder</class>
</widget>
<widget>
<class>GtkScrolledWindow</class>
<name>scrolledwindow21</name>
<border_width>20</border_width>
<hscrollbar_policy>GTK_POLICY_AUTOMATIC</hscrollbar_policy>
<vscrollbar_policy>GTK_POLICY_AUTOMATIC</vscrollbar_policy>
<hupdate_policy>GTK_UPDATE_CONTINUOUS</hupdate_policy>
<vupdate_policy>GTK_UPDATE_CONTINUOUS</vupdate_policy>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
<widget>
<class>GtkCList</class>
<name>account_clist</name>
<can_focus>True</can_focus>
<columns>2</columns>
<column_widths>80,80</column_widths>
<selection_mode>GTK_SELECTION_SINGLE</selection_mode>
<show_titles>True</show_titles>
<shadow_type>GTK_SHADOW_IN</shadow_type>
<widget>
<class>GtkLabel</class>
<child_name>CList:title</child_name>
<name>label847673</name>
<label>Name</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
<widget>
<class>GtkLabel</class>
<child_name>CList:title</child_name>
<name>label847674</name>
<label>Share Balance</label>
<justify>GTK_JUSTIFY_CENTER</justify>
<wrap>False</wrap>
<xalign>0.5</xalign>
<yalign>0.5</yalign>
<xpad>0</xpad>
<ypad>0</ypad>
</widget>
</widget>
</widget>
<widget>
<class>Placeholder</class>
</widget>
</widget>
</widget>
</widget>
</widget>
<widget>
<class>GnomeDruidPageFinish</class>
<name>druidpagefinish1</name>
<title></title>
<text>If you are finished creating the stock split or merger, press `Finish'.
You may also press `Back' to review your choices, or `Cancel' to
quit without making any changes.</text>
<background_color>25,25,112</background_color>
<logo_background_color>255,255,255</logo_background_color>
<textbox_color>255,255,255</textbox_color>
<text_color>0,0,0</text_color>
<title_color>255,255,255</title_color>
</widget>
</widget>
</widget>
</GTK-Interface>

View File

@@ -665,9 +665,15 @@ gnc_ui_mainWindow_reconcile(GtkWidget *widget, gpointer data)
}
static void
gnc_ui_mainWindow_transfer(GtkWidget *widget, gpointer data)
gnc_ui_mainWindow_transfer (GtkWidget *widget, gpointer data)
{
gnc_xfer_dialog(gnc_get_ui_data(), gnc_get_current_account());
gnc_xfer_dialog (gnc_get_ui_data (), gnc_get_current_account ());
}
static void
gnc_ui_mainWindow_stock_split (GtkWidget *widget, gpointer data)
{
gnc_stock_split_dialog (gnc_get_current_account ());
}
static void
@@ -1227,6 +1233,14 @@ gnc_main_create_menus(GnomeApp *app, GtkWidget *account_tree,
GNOME_APP_PIXMAP_NONE, NULL,
't', GDK_CONTROL_MASK, NULL
},
{
GNOME_APP_UI_ITEM,
N_("Stock S_plit..."),
N_("Record a stock split or a stock merger"),
gnc_ui_mainWindow_stock_split, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, 0, NULL
},
GNOMEUIINFO_SEPARATOR,
{
GNOME_APP_UI_ITEM,
@@ -1246,6 +1260,7 @@ gnc_main_create_menus(GnomeApp *app, GtkWidget *account_tree,
},
GNOMEUIINFO_SEPARATOR,
GNOMEUIINFO_SUBTREE(N_("_Scrub"), scrubmenu),
GNOMEUIINFO_SEPARATOR,
{
GNOME_APP_UI_ITEM,
N_("Tax Information"),
@@ -1269,12 +1284,19 @@ gnc_main_create_menus(GnomeApp *app, GtkWidget *account_tree,
},
{
GNOME_APP_UI_ITEM,
N_("_Financial Calculator"),
N_("Financial _Calculator"),
N_("Use the financial calculator"),
gnc_ui_mainWindow_fincalc_cb, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, 0, NULL
},
{ GNOME_APP_UI_ITEM,
N_("_Find Transactions"),
N_("Find transactions with a search"),
gnc_ui_find_transactions_cb, NULL, NULL,
GNOME_APP_PIXMAP_NONE, NULL,
0, 0, NULL
},
GNOMEUIINFO_END
};
@@ -1324,7 +1346,6 @@ gnc_main_create_menus(GnomeApp *app, GtkWidget *account_tree,
list = g_list_prepend(list, accountsmenu[1].widget);
list = g_list_prepend(list, accountsmenu[2].widget);
list = g_list_prepend(list, accountsmenu[4].widget);
list = g_list_prepend(list, accountsmenu[6].widget);
list = g_list_prepend(list, accountsmenu[9].widget);
gnc_mainwin_account_tree_attach_popup
@@ -1337,7 +1358,6 @@ gnc_main_create_menus(GnomeApp *app, GtkWidget *account_tree,
list = g_list_prepend(list, accountsmenu[1].widget);
list = g_list_prepend(list, accountsmenu[2].widget);
list = g_list_prepend(list, accountsmenu[4].widget);
list = g_list_prepend(list, accountsmenu[6].widget);
list = g_list_prepend(list, accountsmenu[9].widget);
main_info->account_sensitives = list;