misc hacking

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8863 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Linas Vepstas 2003-07-13 04:16:51 +00:00
parent 3c92f24d57
commit 6c4b3c40b7
2 changed files with 105 additions and 54 deletions

View File

@ -28,13 +28,16 @@
#include <libgnomeui/gnome-window-icon.h>
#include "FreqSpec.h"
#include "Query.h"
#include "Transaction.h"
#include "dialog-utils.h"
#include "druid-acct-period.h"
#include "druid-utils.h"
#include "global-options.h"
#include "qofbook.h"
#include "gnc-component-manager.h"
#include "gnc-frequency.h"
#include "gnc-ui-util.h"
#include "messages.h"
#include "qofbook.h"
#define DRUID_ACCT_PERIOD_CM_CLASS "druid-acct-period"
@ -45,10 +48,14 @@ typedef struct
{
GtkWidget * window;
GtkWidget * druid;
GtkOptionMenu *period_menu;
GnomeDateEdit *closing_date_edit;
GNCFrequency *period_menu;
// GnomeDateEdit *closing_date_edit;
GtkLabel * earliest_date;
time_t earliest;
GDate *start_date;
FreqSpec *period;
} AcctPeriodInfo;
@ -60,6 +67,9 @@ ap_window_destroy_cb (GtkObject *object, gpointer data)
gnc_unregister_gui_component_by_data (DRUID_ACCT_PERIOD_CM_CLASS, info);
// gnc_frequency_destory ??
xaccFreqSpecFree (info->period);
g_free (info->start_date);
g_free (info);
}
@ -86,27 +96,53 @@ ap_changed (GtkWidget *widget,
gpointer arg1,
gpointer user_data)
{
AcctPeriodInfo *info = user_data;
// AcctPeriodInfo *info = user_data;
time_t closing_date = 0;
GtkMenuItem *item;
GtkMenuItem *item = NULL;
/*
closing_date = gnome_date_edit_get_date (info->closing_date_edit);
*/
item = GTK_MENU_ITEM (gtk_menu_get_active (GTK_MENU(info->period_menu->menu)));
// item = GTK_MENU_ITEM (gtk_menu_get_active (GTK_MENU(info->period_menu->menu)));
printf ("something changed, time=%ld item=%p\n", closing_date, item);
}
/* =============================================================== */
/* Find the earliest date occuring in the book. Do this by making
* a query and sorting by date.
*/
static time_t
get_earliest_in_book (QofBook *book)
{
QofQuery *q;
GSList *p1, *p2;
time_t earliest;
q = qof_query_create_for(GNC_ID_SPLIT);
qof_query_set_max_results(q, 5);
p1 = g_slist_prepend (NULL, TRANS_DATE_POSTED);
p1 = g_slist_prepend (p1, SPLIT_TRANS);
p2 = g_slist_prepend (NULL, QUERY_DEFAULT_SORT);
qof_query_set_sort_order (q, p1, p2, NULL);
qof_query_set_sort_increasing (q, TRUE, TRUE, TRUE);
earliest = xaccQueryGetEarliestDateFound (q);
return earliest;
}
/* =============================================================== */
static void
ap_druid_create (AcctPeriodInfo *info)
{
GladeXML *xml;
GtkWidget *page;
GtkWidget *w, *page;
xml = gnc_glade_xml_new ("acctperiod.glade", "Acct Period Druid");
@ -114,13 +150,30 @@ ap_druid_create (AcctPeriodInfo *info)
info->druid = glade_xml_get_widget (xml, "acct_period_druid");
info->period_menu =
GTK_OPTION_MENU (glade_xml_get_widget (xml, "period menu"));
info->closing_date_edit =
GNOME_DATE_EDIT (glade_xml_get_widget (xml, "closing date edit"));
/* Set up the freq spec widget */
info->earliest = get_earliest_in_book (gnc_get_current_book());
printf ("the earliest is %ld %s\n", info->earliest, ctime (&info->earliest));
info->start_date = g_date_new_dmy(5,5,1988);
info->period = xaccFreqSpecMalloc( gnc_get_current_book() );
xaccFreqSpecSetMonthly (info->period, info->start_date, 12);
xaccFreqSpecSetUIType (info->period, UIFREQ_YEARLY);
info->period_menu = GNC_FREQUENCY (
gnc_frequency_new (info->period, info->start_date));
w = glade_xml_get_widget (xml, "period box");
gtk_box_pack_start (GTK_BOX (w), GTK_WIDGET (info->period_menu),
TRUE, TRUE, 0);
printf ("postbox\n");
// info->closing_date_edit =
// GNOME_DATE_EDIT (glade_xml_get_widget (xml, "closing date edit"));
info->earliest_date =
GTK_LABEL (glade_xml_get_widget (xml, "earliest trans label"));
// "closing date box"
/* generic finished/close/abort signals */
gtk_signal_connect (GTK_OBJECT (info->window), "destroy",
GTK_SIGNAL_FUNC (ap_window_destroy_cb), info);
@ -132,16 +185,15 @@ ap_druid_create (AcctPeriodInfo *info)
gtk_signal_connect (GTK_OBJECT (page), "finish",
GTK_SIGNAL_FUNC (ap_finish), info);
printf ("presig\n");
/* User changes the accouting period or date signals */
// XXX doesn't work ...
gtk_signal_connect (GTK_OBJECT (info->period_menu), "clicked",
gtk_signal_connect (GTK_OBJECT (info->period_menu), "changed",
GTK_SIGNAL_FUNC (ap_changed), info);
gtk_signal_connect (GTK_OBJECT (info->period_menu->menu), "selection_done",
GTK_SIGNAL_FUNC (ap_changed), info);
printf ("postsig\n");
/*
gtk_signal_connect (GTK_OBJECT (info->closing_date_edit), "date_changed",
GTK_SIGNAL_FUNC (ap_changed), info);
*/
}

View File

@ -106,33 +106,6 @@ it is still under development.</text>
</child>
</widget>
<widget>
<class>GtkOptionMenu</class>
<name>period menu</name>
<can_focus>True</can_focus>
<items>Weekly
Monthly
Quarterly
Bi-annual
Annual
</items>
<initial_choice>0</initial_choice>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
</child>
</widget>
<widget>
<class>GtkLabel</class>
<name>label847716</name>
@ -160,13 +133,35 @@ Annual
</widget>
<widget>
<class>GnomeDateEdit</class>
<name>closing date edit</name>
<show_time>False</show_time>
<use_24_format>True</use_24_format>
<week_start_monday>False</week_start_monday>
<lower_hour>7</lower_hour>
<upper_hour>19</upper_hour>
<class>GtkHBox</class>
<name>period box</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
<top_attach>0</top_attach>
<bottom_attach>1</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>True</yfill>
</child>
<widget>
<class>Placeholder</class>
</widget>
</widget>
<widget>
<class>GtkHBox</class>
<name>closing date box</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<child>
<left_attach>1</left_attach>
<right_attach>2</right_attach>
@ -174,13 +169,17 @@ Annual
<bottom_attach>2</bottom_attach>
<xpad>0</xpad>
<ypad>0</ypad>
<xexpand>True</xexpand>
<xexpand>False</xexpand>
<yexpand>False</yexpand>
<xshrink>False</xshrink>
<yshrink>False</yshrink>
<xfill>True</xfill>
<yfill>False</yfill>
<yfill>True</yfill>
</child>
<widget>
<class>Placeholder</class>
</widget>
</widget>
</widget>