1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| #include <stdio.h>
#include <gtk/gtk.h>
#include <glib/gprintf.h>
static void cb_clicked (GtkWidget * p_wid, gpointer p_data)
{
GtkCalendar * p_calendar = p_data;
FILE * p_file = NULL;
guint year = 0;
guint month = 0;
guint day = 0;
g_return_if_fail (p_data != NULL);
gtk_calendar_get_date (p_calendar, & year, & month, & day);
p_file = fopen ("date.txt", "w");
if (p_file != NULL)
{
fprintf (p_file, "%d/%d/%d\n", day, month, year);
fclose (p_file);
}
(void) p_wid;
}
int main (int argc, char **argv)
{
GtkWidget * p_win = NULL;
GtkWidget * p_box = NULL;
GtkWidget * p_calendar = NULL;
GtkWidget * p_btn = NULL;
gtk_init (& argc, & argv);
p_win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (p_win), 200, 200);
gtk_container_set_border_width (GTK_CONTAINER (p_win), 5);
gtk_window_set_position (GTK_WINDOW (p_win), GTK_WIN_POS_CENTER);
p_box = gtk_vbox_new (FALSE, 0);
p_calendar = gtk_calendar_new ();
p_btn = gtk_button_new_from_stock (GTK_STOCK_SAVE);
gtk_container_add (GTK_CONTAINER (p_win), p_box);
gtk_box_pack_start (GTK_BOX (p_box), p_calendar, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (p_box), p_btn, TRUE, TRUE, 0);
g_signal_connect (
G_OBJECT (p_win), "destroy", G_CALLBACK (gtk_main_quit), NULL
);
g_signal_connect (
G_OBJECT (p_btn), "clicked", G_CALLBACK (cb_clicked), (gpointer)p_calendar
);
gtk_widget_show_all (p_win);
gtk_main ();
return 0;
} |
Partager