GnuCash 2.4.99
reconcile-list.h
00001 /********************************************************************\
00002  * reconcile-list.h -- GNOME reconcile list functions               *
00003  * Copyright (C) 1998,1999 Linas Vepstas                            *
00004  * Copyright (C) 2003 Derek Atkins <derek@ihtfp.com>                *
00005  *                                                                  *
00006  * This program is free software; you can redistribute it and/or    *
00007  * modify it under the terms of the GNU General Public License as   *
00008  * published by the Free Software Foundation; either version 2 of   *
00009  * the License, or (at your option) any later version.              *
00010  *                                                                  *
00011  * This program is distributed in the hope that it will be useful,  *
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
00014  * GNU General Public License for more details.                     *
00015  *                                                                  *
00016  * You should have received a copy of the GNU General Public License*
00017  * along with this program; if not, contact:                        *
00018  *                                                                  *
00019  * Free Software Foundation           Voice:  +1-617-542-5942       *
00020  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
00021  * Boston, MA  02110-1301,  USA       gnu@gnu.org                   *
00022 \********************************************************************/
00023 
00024 #ifndef GNC_RECONCILE_LIST_H
00025 #define GNC_RECONCILE_LIST_H
00026 
00027 #include "gnc-query-list.h"
00028 #include "qof.h"
00029 
00030 G_BEGIN_DECLS
00031 
00032 #define GNC_TYPE_RECONCILE_LIST         (gnc_reconcile_list_get_type ())
00033 #define GNC_RECONCILE_LIST(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_RECONCILE_LIST, GNCReconcileList))
00034 #define GNC_RECONCILE_LIST_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_RECONCILE_LIST, GNCReconcileListClass))
00035 #define GNC_IS_RECONCILE_LIST(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_RECONCILE_LIST))
00036 #define GNC_IS_RECONCILE_LIST_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_RECONCILE_LIST))
00037 
00038 typedef struct GNCReconcileList GNCReconcileList;
00039 
00040 typedef enum
00041 {
00042     RECLIST_DEBIT,
00043     RECLIST_CREDIT
00044 } GNCReconcileListType;
00045 
00046 struct GNCReconcileList
00047 {
00048     GNCQueryList qlist;
00049 
00050     GHashTable *reconciled;
00051     Account *account;
00052     GList *column_list;
00053 
00054     time_t statement_date;
00055 
00056     GNCReconcileList *sibling;
00057     GNCReconcileListType list_type;
00058     gboolean no_toggle;
00059 };
00060 
00061 typedef struct
00062 {
00063     GtkCListClass parent_class;
00064 
00065     void (*toggle_reconciled)  (GNCReconcileList *list,
00066                                 Split            *split);
00067     void (*double_click_split) (GNCReconcileList *list,
00068                                 Split            *split);
00069 } GNCReconcileListClass;
00070 
00071 #define GCONF_RECONCILE_SECTION "dialogs/reconcile"
00072 
00073 /***********************************************************
00074  *                public functions                         *
00075  ***********************************************************/
00076 
00077 GType gnc_reconcile_list_get_type (void);
00078 
00079 GtkWidget * gnc_reconcile_list_new (Account * account,
00080                                     GNCReconcileListType type,
00081                                     time_t date);
00082 
00083 gint gnc_reconcile_list_get_needed_height(GNCReconcileList *list,
00084         gint num_rows);
00085 
00086 gint gnc_reconcile_list_get_num_splits(GNCReconcileList *list);
00087 
00088 Split * gnc_reconcile_list_get_current_split(GNCReconcileList *list);
00089 
00090 void gnc_reconcile_list_refresh (GNCReconcileList *list);
00091 
00092 gnc_numeric gnc_reconcile_list_reconciled_balance(GNCReconcileList *list);
00093 
00094 void gnc_reconcile_list_commit (GNCReconcileList *list, time_t date);
00095 
00096 void gnc_reconcile_list_postpone (GNCReconcileList *list);
00097 
00098 void gnc_reconcile_list_unselect_all(GNCReconcileList *list);
00099 
00100 gboolean gnc_reconcile_list_changed(GNCReconcileList *list);
00101 
00102 G_END_DECLS
00103 
00104 #endif /* RECONCILE_LIST_H */
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines