[Gnucash-changes] r13094 - gnucash/trunk/src/gnome-utils - gnc_date_edit_set_gdate(): A GDate setter for GNCDateEdit is useful, too.

Chris Shoemaker chris at cvs.gnucash.org
Sat Feb 4 11:29:01 EST 2006


Author: chris
Date: 2006-02-04 11:29:00 -0500 (Sat, 04 Feb 2006)
New Revision: 13094
Trac: http://svn.gnucash.org/trac/changeset/13094

Modified:
   gnucash/trunk/src/gnome-utils/gnc-date-edit.c
   gnucash/trunk/src/gnome-utils/gnc-date-edit.h
Log:
   gnc_date_edit_set_gdate(): A GDate setter for GNCDateEdit is useful, too. 


Modified: gnucash/trunk/src/gnome-utils/gnc-date-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-edit.c	2006-02-04 15:17:51 UTC (rev 13093)
+++ gnucash/trunk/src/gnome-utils/gnc-date-edit.c	2006-02-04 16:29:00 UTC (rev 13094)
@@ -491,6 +491,26 @@
                                                     callback_data);
 }
 
+static void
+gnc_date_edit_set_time_tm (GNCDateEdit *gde, struct tm *mytm) 
+{
+	char buffer [40];
+
+	/* Set the date */
+	qof_print_date_dmy_buff (buffer, 40,
+                   mytm->tm_mday,
+                   mytm->tm_mon + 1,
+                   1900 + mytm->tm_year);
+	gtk_entry_set_text (GTK_ENTRY (gde->date_entry), buffer);
+
+	/* Set the time */
+	if (gde->flags & GNC_DATE_EDIT_24_HR)
+		strftime (buffer, sizeof (buffer), "%H:%M", mytm);
+	else
+		strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
+	gtk_entry_set_text (GTK_ENTRY (gde->time_entry), buffer);
+}
+
 /**
  * gnc_date_edit_set_time:
  * @gde: the GNCDateEdit widget
@@ -503,7 +523,6 @@
 gnc_date_edit_set_time (GNCDateEdit *gde, time_t the_time)
 {
 	struct tm *mytm;
-	char buffer [40];
 
 	g_return_if_fail (gde != NULL);
         g_return_if_fail (GNC_IS_DATE_EDIT (gde));
@@ -513,20 +532,21 @@
 	gde->initial_time = the_time;
 
 	mytm = localtime (&the_time);
+	gnc_date_edit_set_time_tm(gde, mytm);
+}
 
-	/* Set the date */
-	qof_print_date_dmy_buff (buffer, 40,
-                   mytm->tm_mday,
-                   mytm->tm_mon + 1,
-                   1900 + mytm->tm_year);
-	gtk_entry_set_text (GTK_ENTRY (gde->date_entry), buffer);
-
-	/* Set the time */
-	if (gde->flags & GNC_DATE_EDIT_24_HR)
-		strftime (buffer, sizeof (buffer), "%H:%M", mytm);
-	else
-		strftime (buffer, sizeof (buffer), "%I:%M %p", mytm);
-	gtk_entry_set_text (GTK_ENTRY (gde->time_entry), buffer);
+void
+gnc_date_edit_set_gdate (GNCDateEdit *gde, const GDate *date)
+{
+        struct tm mytm;
+        time_t t;
+        
+        g_return_if_fail(gde && GNC_IS_DATE_EDIT(gde) && 
+                         date && g_date_valid(date));
+        g_date_to_struct_tm(date, &mytm);
+        t = mktime(&mytm);
+        if (t != (time_t)(-1))
+                gnc_date_edit_set_time(gde, t);
 }
 
 void

Modified: gnucash/trunk/src/gnome-utils/gnc-date-edit.h
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-edit.h	2006-02-04 15:17:51 UTC (rev 13093)
+++ gnucash/trunk/src/gnome-utils/gnc-date-edit.h	2006-02-04 16:29:00 UTC (rev 13094)
@@ -115,6 +115,7 @@
 GtkWidget *gnc_date_edit_new_flags      (time_t the_time,
                                          GNCDateEditFlags flags);
 
+void      gnc_date_edit_set_gdate       (GNCDateEdit *gde, const GDate *date);
 void      gnc_date_edit_set_time        (GNCDateEdit *gde, time_t the_time);
 void      gnc_date_edit_set_time_ts     (GNCDateEdit *gde, Timespec the_time);
 



More information about the gnucash-changes mailing list