f16743be9490bc2db6d895b4627c4191d24a0d63
[framework/uifw/elementary.git] / src / examples / calendar_example_02.c
1 /**
2  * Elementary's <b>calendar widget</b> example, demonstrates how to modify
3  * layout strings, using functions to set weekdays names and to format
4  * month and year label.
5  *
6  * See stdout/stderr for output. Compile with:
7  *
8  * @verbatim
9  * gcc -g `pkg-config --cflags --libs elementary` calendar_example_02.c -o calendar_example_02
10  * @endverbatim
11  */
12
13 #include <Elementary.h>
14 #ifdef HAVE_CONFIG_H
15 # include "elementary_config.h"
16 #else
17 # define __UNUSED__
18 #endif
19
20 static char *
21 _format_month_year(struct tm *stime)
22 {
23    char buf[32];
24    /* abbreviates month and year */
25    if (!strftime(buf, sizeof(buf), "%b %y", stime)) return NULL;
26    return strdup(buf);
27 }
28
29 EAPI_MAIN int
30 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
31 {
32    Evas_Object *win, *bg, *cal;
33    const char *weekdays[] =
34      {
35         "S", "M", "T", "W", "T", "F", "S"
36      };
37
38    win = elm_win_add(NULL, "calendar", ELM_WIN_BASIC);
39    elm_win_title_set(win, "Calendar Layout Formatting Example");
40    elm_win_autodel_set(win, EINA_TRUE);
41
42    bg = elm_bg_add(win);
43    elm_win_resize_object_add(win, bg);
44    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
45    evas_object_show(bg);
46
47    cal = elm_calendar_add(win);
48    elm_win_resize_object_add(win, cal);
49    evas_object_size_hint_weight_set(cal, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
50
51    elm_calendar_format_function_set(cal, _format_month_year);
52    elm_calendar_weekdays_names_set(cal, weekdays);
53
54    evas_object_show(cal);
55
56    evas_object_show(win);
57
58    elm_run();
59    return 0;
60 }
61 ELM_MAIN()