|
GnuCash 2.4.99
|
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
1.7.4