fixed plugin image size problem
[framework/uifw/elementary.git] / src / bin / test_config.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 typedef struct _Prof_Data Prof_Data;
8
9 struct _Prof_Data
10 {
11    Evas_Object *rdg;
12    Eina_List   *profiles;
13 };
14
15 static void
16 _bt_clicked_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
17 {
18    Evas_Object *win = (Evas_Object *)(data);
19    Prof_Data *pd = evas_object_data_get(win, "pd");
20    Evas_Object *rd = elm_radio_selected_object_get(pd->rdg);
21    const char *str = elm_object_text_get(rd);
22
23    elm_win_profiles_set(win, &str, 1);
24 }
25
26 static void
27 _win_profile_changed_cb(void *data, Evas_Object *obj __UNUSED__, void *event __UNUSED__)
28 {
29    Evas_Object *win = (Evas_Object *)(data);
30    Prof_Data *pd = evas_object_data_get(win, "pd");
31    const char *profile = elm_win_profile_get(win);
32
33    const char *str;
34    int num, i = 0;
35    Eina_List *l;
36
37    EINA_LIST_FOREACH(pd->profiles, l, str)
38      {
39         if ((str) && (profile) &&
40             (strcmp(str, profile) == 0))
41           {
42              break;
43           }
44         i++;
45      }
46
47    num = eina_list_count(pd->profiles);
48    if (i >= num) i = num - 1;
49    if (i < 0) i = 0;
50
51    elm_radio_value_set(pd->rdg, i);
52 }
53
54 void
55 test_config(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
56 {
57    Prof_Data *pd;
58    Evas_Object *win, *bx, *lb, *bt, *rd, *rdg = NULL;
59    const char *str;
60    const char **plist;
61    Eina_List *profs, *l;
62    int num, i = 0;
63
64    if (!(pd = calloc(1, sizeof(Prof_Data)))) return;
65
66    win = elm_win_util_standard_add("config", "Configuration");
67    elm_win_autodel_set(win, EINA_TRUE);
68    evas_object_data_set(win, "pd", pd);
69
70    bx = elm_box_add(win);
71    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
72    elm_win_resize_object_add(win, bx);
73
74    lb = elm_label_add(win);
75    elm_object_text_set(lb, "<b>List of Profiles</b>");
76    evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
77    elm_box_pack_end(bx, lb);
78    evas_object_show(lb);
79
80    profs = elm_config_profile_list_get();
81    num = eina_list_count(profs);
82    plist = calloc(num, sizeof(char *));
83
84    EINA_LIST_FOREACH(profs, l, str)
85      {
86         rd = elm_radio_add(win);
87         if (!rdg)
88           {
89              rdg = rd;
90              pd->rdg = rdg;
91           }
92         plist[i] = strdup(str);
93         pd->profiles = eina_list_append(pd->profiles,
94                                         eina_stringshare_add(str));
95         elm_radio_state_value_set(rd, i);
96         elm_radio_group_add(rd, rdg);
97         elm_object_text_set(rd, str);
98         evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
99         elm_box_pack_end(bx, rd);
100         evas_object_show(rd);
101         i++;
102      }
103    elm_config_profile_list_free(profs);
104
105    bt = elm_button_add(win);
106    elm_object_text_set(bt, "Change Window Profile");
107    evas_object_smart_callback_add(bt, "clicked", _bt_clicked_cb, win);
108    elm_box_pack_end(bx, bt);
109    evas_object_show(bt);
110
111    elm_win_profiles_set(win, plist, num);
112    evas_object_smart_callback_add(win, "profile,changed", _win_profile_changed_cb, win);
113
114    evas_object_resize(win, 480, 400);
115    evas_object_show(bx);
116    evas_object_show(win);
117
118    free(plist);
119 }
120 #endif