static void show_book_details (AcctPeriodInfo *info) { QofBook *currbook; char close_date_str[MAX_DATE_LENGTH]; char prev_close_date_str[MAX_DATE_LENGTH]; const char *period_text; char *str; const char *cstr; int ntrans, nacc; ENTER ("info=%p", info); /* Tell user about how the previous book closing went. */ cstr = get_close_status_str (info); gtk_label_set_text (info->close_results, cstr); info->close_status = -1; /* Pull info from widget, push into freq spec */ //gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date); recurrenceListFree(&info->period); gnc_frequency_save_to_recurrence(info->period_menu, &info->period, &info->closing_date); qof_print_date_dmy_buff (close_date_str, MAX_DATE_LENGTH, g_date_get_day(&info->closing_date), g_date_get_month(&info->closing_date), g_date_get_year(&info->closing_date)); currbook = gnc_get_current_book(); ntrans = get_num_xactions_before_date(currbook, gnc_timet_get_day_end_gdate (&info->closing_date)); nacc = gnc_account_n_descendants (gnc_book_get_root_account (currbook)); /* Display the book info */ period_text = _("You have asked for a book to be created. This book " "will contain all transactions up to midnight %s " "(for a total of %d transactions spread over %d accounts). " "Click on 'Forward' to create this book. " "Click on 'Back' to adjust the dates."); str = g_strdup_printf (period_text, close_date_str, ntrans, nacc); gtk_label_set_text (info->book_details, str); g_free (str); /* Weird bug fix ! */ gtk_widget_show (GTK_WIDGET (info->book_details)); /* Create default settings for the title, notes fields */ qof_print_date_dmy_buff (prev_close_date_str, MAX_DATE_LENGTH, g_date_get_day(&info->prev_closing_date), g_date_get_month(&info->prev_closing_date), g_date_get_year(&info->prev_closing_date)); str = g_strdup_printf (_("Period %s - %s"), prev_close_date_str, close_date_str); gtk_entry_set_text (info->book_title, str); xxxgtk_textview_set_text (info->book_notes, str); g_free (str); }
static void gnc_date_cell_set_value_internal (BasicCell *_cell, const char *str) { DateCell *cell = (DateCell *) _cell; PopBox *box = cell->cell.gui_private; char buff[DATE_BUF]; gnc_parse_date (&(box->date), str); qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, box->date.tm_mday, box->date.tm_mon + 1, box->date.tm_year + 1900); gnc_basic_cell_set_value_internal (_cell, buff); if (!box->date_picker) return; block_picker_signals (cell); gnc_date_picker_set_date (box->date_picker, box->date.tm_mday, box->date.tm_mon, box->date.tm_year + 1900); unblock_picker_signals (cell); }
void gnc_date_cell_commit (DateCell *cell) { PopBox *box = cell->cell.gui_private; char buff[DATE_BUF]; if (!cell) return; gnc_parse_date (&(box->date), cell->cell.value); qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, box->date.tm_mday, box->date.tm_mon + 1, box->date.tm_year + 1900); gnc_basic_cell_set_value_internal (&cell->cell, buff); if (!box->date_picker) return; block_picker_signals (cell); gnc_date_picker_set_date (box->date_picker, box->date.tm_mday, box->date.tm_mon, box->date.tm_year + 1900); unblock_picker_signals (cell); }
void gnc_date_cell_set_value_secs (DateCell *cell, time64 secs) { PopBox *box = cell->cell.gui_private; char buff[DATE_BUF]; gnc_localtime_r (&secs, &(box->date)); qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, box->date.tm_mday, box->date.tm_mon + 1, box->date.tm_year + 1900); gnc_basic_cell_set_value_internal (&cell->cell, buff); if (!box->date_picker) return; block_picker_signals (cell); gnc_date_picker_set_date (box->date_picker, box->date.tm_mday, box->date.tm_mon, box->date.tm_year + 1900); unblock_picker_signals (cell); }
void gnc_date_cell_set_value (DateCell *cell, int day, int mon, int year) { PopBox *box = cell->cell.gui_private; struct tm dada; char buff[DATE_BUF]; dada.tm_mday = day; dada.tm_mon = mon - 1; dada.tm_year = year - 1900; gnc_tm_set_day_start(&dada); gnc_mktime (&dada); box->date.tm_mday = dada.tm_mday; box->date.tm_mon = dada.tm_mon; box->date.tm_year = dada.tm_year; qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, dada.tm_mday, dada.tm_mon + 1, dada.tm_year + 1900); gnc_basic_cell_set_value_internal (&cell->cell, buff); if (!box->date_picker) return; block_picker_signals (cell); gnc_date_picker_set_date (box->date_picker, day, mon - 1, year); unblock_picker_signals (cell); }
size_t qof_print_gdate( char *buf, size_t len, const GDate *gd ) { return qof_print_date_dmy_buff( buf, len, g_date_get_day(gd), g_date_get_month(gd), g_date_get_year(gd) ); }
static void gnc_date_cell_print_date (DateCell *cell, char *buff) { PopBox *box = cell->cell.gui_private; qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, box->date.tm_mday, box->date.tm_mon + 1, box->date.tm_year + 1900); }
size_t qof_print_gdate( char *buf, size_t len, const GDate *gd ) { GDate date; g_date_clear (&date, 1); date = *gd; return qof_print_date_dmy_buff( buf, len, g_date_get_day(&date), g_date_get_month(&date), g_date_get_year(&date) ); }
size_t qof_print_date_buff (char * buff, size_t len, time64 t) { struct tm theTime; time64 bt = t; size_t actual; if (!buff) return 0 ; if (!gnc_localtime_r(&bt, &theTime)) return 0; actual = qof_print_date_dmy_buff (buff, len, theTime.tm_mday, theTime.tm_mon + 1, theTime.tm_year + 1900); return actual; }
static void date_selected_cb (GNCDatePicker *gdp, gpointer data) { DateCell *cell = data; PopBox *box = cell->cell.gui_private; guint day, month, year; char buffer[DATE_BUF]; gtk_calendar_get_date (gdp->calendar, &year, &month, &day); qof_print_date_dmy_buff (buffer, MAX_DATE_LENGTH, day, month + 1, year); box->in_date_select = TRUE; gnucash_sheet_modify_current_cell (box->sheet, buffer); box->in_date_select = FALSE; }
static gboolean gnc_date_cell_direct_update (BasicCell *bcell, int *cursor_position, int *start_selection, int *end_selection, void *gui_data) { DateCell *cell = (DateCell *) bcell; PopBox *box = cell->cell.gui_private; GdkEventKey *event = gui_data; char buff[DATE_BUF]; if (!gnc_handle_date_accelerator (event, &(box->date), bcell->value)) return FALSE; qof_print_date_dmy_buff (buff, MAX_DATE_LENGTH, box->date.tm_mday, box->date.tm_mon + 1, box->date.tm_year + 1900); gnc_basic_cell_set_value_internal (&cell->cell, buff); *start_selection = 0; *end_selection = -1; if (!box->date_picker) return TRUE; block_picker_signals (cell); gnc_date_picker_set_date (box->date_picker, box->date.tm_mday, box->date.tm_mon, box->date.tm_year + 1900); unblock_picker_signals (cell); return TRUE; }
static void gnc_date_edit_set_time_internal (GNCDateEdit *gde, time64 the_time) { char buffer [40]; struct tm *mytm = gnc_localtime (&the_time); g_return_if_fail(mytm != NULL); /* Update the date text. */ 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); /* Update the calendar. */ if (!gde->in_selected_handler) { gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), 1); gtk_calendar_select_month(GTK_CALENDAR (gde->calendar), mytm->tm_mon, 1900 + mytm->tm_year); gtk_calendar_select_day(GTK_CALENDAR (gde->calendar), mytm->tm_mday); } /* Set the time of day. */ if (gde->flags & GNC_DATE_EDIT_24_HR) qof_strftime (buffer, sizeof (buffer), "%H:%M", mytm); else qof_strftime (buffer, sizeof (buffer), "%I:%M %p", mytm); gtk_entry_set_text(GTK_ENTRY(gde->time_entry), buffer); gnc_tm_free (mytm); g_signal_emit (gde, date_edit_signals [DATE_CHANGED], 0); g_signal_emit (gde, date_edit_signals [TIME_CHANGED], 0); }
void ap_assistant_book_prepare (GtkAssistant *assistant, gpointer user_data) { QofBook *currbook; char close_date_str[MAX_DATE_LENGTH]; char prev_close_date_str[MAX_DATE_LENGTH]; const char *period_text; char *str; const char *cstr; int ntrans, nacc; GtkTextBuffer *buffer; AcctPeriodInfo *info = user_data; ENTER ("info=%p", info); /* Tell user about how the previous book closing went. */ cstr = get_close_status_str (info); gtk_label_set_text (GTK_LABEL(info->close_results), cstr); info->close_status = -1; /* Pull info from widget, push into freq spec */ //gnc_frequency_save_state (info->period_menu, info->period, &info->closing_date); recurrenceListFree(&info->period); gnc_frequency_save_to_recurrence(info->period_menu, &info->period, &info->closing_date); qof_print_date_dmy_buff (close_date_str, MAX_DATE_LENGTH, g_date_get_day(&info->closing_date), g_date_get_month(&info->closing_date), g_date_get_year(&info->closing_date)); currbook = gnc_get_current_book(); ntrans = get_num_xactions_before_date(currbook, gnc_time64_get_day_end_gdate (&info->closing_date)); nacc = gnc_account_n_descendants (gnc_book_get_root_account (currbook)); /* Display the book info */ period_text = /* Translators: Run the assistent in your language to see GTK's translation of the button labels. */ _("You have asked for a book to be created. This book " "will contain all transactions up to midnight %s " "(for a total of %d transactions spread over %d accounts).\n\n " "Amend the Title and Notes or Click on \"Next\" to proceed.\n " "Click on \"Back\" to adjust the dates or \"Cancel\"."); str = g_strdup_printf (period_text, close_date_str, ntrans, nacc); gtk_label_set_text (GTK_LABEL(info->book_details), str); g_free (str); gtk_widget_show (GTK_WIDGET (info->book_details)); /* Create default settings for the title, notes fields */ qof_print_date_dmy_buff (prev_close_date_str, MAX_DATE_LENGTH, g_date_get_day(&info->prev_closing_date), g_date_get_month(&info->prev_closing_date), g_date_get_year(&info->prev_closing_date)); str = g_strdup_printf (_("Period %s - %s"), prev_close_date_str, close_date_str); gtk_entry_set_text (GTK_ENTRY(info->book_title), str); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(info->book_notes)); gtk_text_buffer_set_text(buffer, str, -1); g_free (str); }