GnuCash 2.4.99
gnc-date-delta.h
00001 /*
00002  * gnc-datedelta.h -- Date delta widget
00003  *
00004  * Copyright (C) 2000 Free Software Foundation
00005  * All rights reserved.
00006  *
00007  * Author: Dave Peticolas <peticola@cs.ucdavis.edu>
00008  *
00009  * GnuCash is free software; you can redistribute it and/or modify
00010  * it under the terms of the GNU Library General Public License as
00011  * published by the Free Software Foundation; either version 2 of
00012  * the License, or (at your option) any later version.
00013  *
00014  * Gnucash is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00017  * Library General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU General Public License
00020  * along with this program; if not, contact:
00021  *
00022  * Free Software Foundation           Voice:  +1-617-542-5942
00023  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
00024  * Boston, MA  02110-1301,  USA       gnu@gnu.org
00025  *
00026  */
00027 /*
00028   @NOTATION@
00029  */
00030 
00031 #ifndef GNC_DATE_DELTA_H
00032 #define GNC_DATE_DELTA_H
00033 
00034 typedef enum
00035 {
00036     GNC_DATE_DELTA_DAYS,
00037     GNC_DATE_DELTA_WEEKS,
00038     GNC_DATE_DELTA_MONTHS,
00039     GNC_DATE_DELTA_YEARS,
00040     GNC_DATE_DELTA_NUM_UNITS
00041 } GNCDateDeltaUnits;
00042 
00043 typedef enum
00044 {
00045     GNC_DATE_DELTA_PAST,
00046     GNC_DATE_DELTA_FUTURE,
00047     GNC_DATE_DELTA_NUM_POLARITY
00048 } GNCDateDeltaPolarity;
00049 
00050 #define GNC_TYPE_DATE_DELTA           (gnc_date_delta_get_type())
00051 #define GNC_DATE_DELTA(obj)           G_TYPE_CHECK_INSTANCE_CAST (obj, GNC_TYPE_DATE_DELTA , GNCDateDelta)
00052 #define GNC_DATE_DELTA_CLASS(klass)   G_TYPE_CHECK_CLASS_CAST (klass, GNC_TYPE_DATE_DELTA, GNCDateDeltaClass)
00053 #define GNC_IS_DATE_DELTA(obj)        G_TYPE_CHECK_INSTANCE_TYPE (obj, GNC_TYPE_DATE_DELTA)
00054 
00055 typedef struct
00056 {
00057     GtkHBox hbox;
00058 
00059     GtkWidget *value_spin;
00060     GtkWidget *units_combo;
00061     GtkWidget *polarity_combo;
00062 
00063     GNCDateDeltaUnits units;
00064     GNCDateDeltaPolarity polarity;
00065 
00066     gboolean show_polarity;
00067 } GNCDateDelta;
00068 
00069 typedef struct
00070 {
00071     GtkHBoxClass parent_class;
00072     void (*value_changed) (GNCDateDelta *gdd);
00073     void (*units_changed) (GNCDateDelta *gdd);
00074     void (*polarity_changed) (GNCDateDelta *gdd);
00075     void (*delta_changed) (GNCDateDelta *gdd);
00076 } GNCDateDeltaClass;
00077 
00078 GType gnc_date_delta_get_type (void);
00079 
00080 GtkWidget *gnc_date_delta_new (gboolean show_polarity);
00081 
00082 void gnc_date_delta_set_value (GNCDateDelta *gdd, int value);
00083 int  gnc_date_delta_get_value (GNCDateDelta *gdd);
00084 
00085 void gnc_date_delta_set_units (GNCDateDelta *gdd, GNCDateDeltaUnits units);
00086 GNCDateDeltaUnits gnc_date_delta_get_units (GNCDateDelta *gdd);
00087 
00088 void gnc_date_delta_set_polarity (GNCDateDelta *gdd,
00089                                   GNCDateDeltaPolarity polarity);
00090 GNCDateDeltaPolarity gnc_date_delta_get_polarity (GNCDateDelta *gdd);
00091 
00092 void gnc_date_delta_show_polarity (GNCDateDelta *gdd, gboolean show_polarity);
00093 
00094 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines