GnuCash 2.4.99
gnc-date-edit.h
00001 /*
00002  * gnc-dateedit.c -- Date editor widget
00003  *
00004  * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
00005  * All rights reserved.
00006  *
00007  * This file was part of the Gnome Library. It was modifed by
00008  * Dave Peticolas <dave@krondo.com> for use in GnuCash.
00009  *
00010  * GnuCash is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU Library General Public License as
00012  * published by the Free Software Foundation; either version 2 of
00013  * the License, or (at your option) any later version.
00014  *
00015  * Gnucash is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Library General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU General Public License
00021  * along with this program; if not, contact:
00022  *
00023  * Free Software Foundation           Voice:  +1-617-542-5942
00024  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652
00025  * Boston, MA  02110-1301,  USA       gnu@gnu.org
00026  * */
00027 /*
00028   @NOTATION@
00029  */
00030 
00031 #ifndef GNC_DATE_EDIT_H
00032 #define GNC_DATE_EDIT_H
00033 
00034 #include <glib.h>
00035 #include <time.h>
00036 #include "gnc-date.h"
00037 
00038 typedef enum
00039 {
00040     GNC_DATE_EDIT_SHOW_TIME             = 1 << 0,
00041     GNC_DATE_EDIT_24_HR                 = 1 << 1,
00042     GNC_DATE_EDIT_WEEK_STARTS_ON_MONDAY = 1 << 2,
00043 } GNCDateEditFlags;
00044 
00045 #define GNC_TYPE_DATE_EDIT          (gnc_date_edit_get_type ())
00046 #define GNC_DATE_EDIT(obj)          G_TYPE_CHECK_INSTANCE_CAST (obj, gnc_date_edit_get_type(), GNCDateEdit)
00047 #define GNC_DATE_EDIT_CLASS(klass)  G_TYPE_CHECK_CLASS_CAST (klass, gnc_date_edit_get_type(), GNCDateEditClass)
00048 #define GNC_IS_DATE_EDIT(obj)       G_TYPE_CHECK_INSTANCE_TYPE (obj, gnc_date_edit_get_type ())
00049 
00059 typedef struct
00060 {
00061     GtkHBox hbox;
00062 
00063     GtkWidget *date_entry;
00064     GtkWidget *date_button;
00065 
00066     GtkWidget *time_entry;
00067     GtkWidget *time_popup;
00068 
00069     GtkWidget *cal_label;
00070     GtkWidget *cal_popup;
00071     GtkWidget *calendar;
00072 
00073     time_t    initial_time;
00074 
00075     int       lower_hour;
00076     int       upper_hour;
00077 
00078     int       flags;
00079 
00080     int       disposed;
00081 
00082     gboolean  popup_in_progress;
00083 } GNCDateEdit;
00084 
00085 typedef struct
00086 {
00087     GtkHBoxClass parent_class;
00088     void (*date_changed) (GNCDateEdit *gde);
00089     void (*time_changed) (GNCDateEdit *gde);
00090 } GNCDateEditClass;
00091 
00092 GType     gnc_date_edit_get_type        (void);
00093 
00094 GtkWidget *gnc_date_edit_new            (time_t the_time,
00095         int show_time, int use_24_format);
00096 GtkWidget *gnc_date_edit_new_ts         (Timespec the_time,
00097         int show_time, int use_24_format);
00098 
00115 GtkWidget *gnc_date_edit_new_glade (gchar *widget_name,
00116                                     gchar *string1, gchar *string2,
00117                                     gint int1, gint int2);
00118 
00119 GtkWidget *gnc_date_edit_new_flags      (time_t the_time,
00120         GNCDateEditFlags flags);
00121 
00122 void      gnc_date_edit_set_gdate       (GNCDateEdit *gde, const GDate *date);
00123 void      gnc_date_edit_set_time        (GNCDateEdit *gde, time_t the_time);
00124 void      gnc_date_edit_set_time_ts     (GNCDateEdit *gde, Timespec the_time);
00125 
00126 void      gnc_date_edit_set_popup_range (GNCDateEdit *gde,
00127         int low_hour, int up_hour);
00128 
00129 void      gnc_date_edit_get_gdate       (GNCDateEdit *gde, GDate *date);
00130 time_t    gnc_date_edit_get_date        (GNCDateEdit *gde);
00131 Timespec  gnc_date_edit_get_date_ts     (GNCDateEdit *gde);
00132 time_t    gnc_date_edit_get_date_end    (GNCDateEdit *gde);
00133 Timespec  gnc_date_edit_get_date_end_ts (GNCDateEdit *gde);
00134 
00135 void      gnc_date_edit_set_flags       (GNCDateEdit *gde,
00136         GNCDateEditFlags flags);
00137 int       gnc_date_edit_get_flags       (GNCDateEdit *gde);
00138 
00139 void      gnc_date_activates_default    (GNCDateEdit *gde, gboolean state);
00140 void      gnc_date_grab_focus           (GNCDateEdit *gde);
00141 
00142 void      gnc_date_make_mnemonic_target (GNCDateEdit *gde, GtkWidget *label);
00143 #endif
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines