package upload
[framework/uifw/elementary.git] / src / bin / test_colorselector.c
1 #ifdef HAVE_CONFIG_H
2 # include "elementary_config.h"
3 #endif
4 #include <Elementary.h>
5 #ifndef ELM_LIB_QUICKLAUNCH
6
7 static void
8 _colorselector_clicked_cb(void *data, Evas_Object *obj,
9                           void *event_info __UNUSED__)
10 {
11    Evas_Object *re = data;
12    int r, g, b, a;
13
14    elm_colorselector_color_get(obj, &r, &g, &b, &a);
15    printf("Current Color [r=%d g=%d b=%d a=%d]\n",r, g, b, a);
16
17    /* Fix Alpha pre multiplication by edje */
18    r = (r * a) / 255;
19    g = (g * a) / 255;
20    b = (b * a) / 255;
21
22    evas_object_color_set(re, r, g, b, a);
23 }
24
25 static void
26 _colorpalette_clicked_cb(void *data, Evas_Object *obj __UNUSED__,
27                          void *event_info)
28 {
29    int r = 0, g = 0, b = 0 ,a = 0;
30    Elm_Object_Item *color_it = (Elm_Object_Item *) event_info;
31    elm_colorselector_palette_item_color_get(color_it, &r, &g, &b, &a);
32    evas_object_color_set((Evas_Object *) data, r, g, b , a);
33 }
34
35 static void
36 _colorpalette_longpressed_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
37                              void *event_info)
38 {
39    int r = 0,g = 0,b = 0 ,a = 0;
40    Elm_Object_Item *color_it = (Elm_Object_Item *) event_info;
41    elm_colorselector_palette_item_color_get(color_it, &r, &g, &b, &a);
42    printf("\ncolor = %d-%d-%d-%d\n", r, g, b, a);
43 }
44
45 static void
46 _palette_cb(void *data, Evas_Object *obj __UNUSED__,
47             void *event_info __UNUSED__)
48 {
49    Evas_Object *cs = data;
50    Evas_Object *win = evas_object_data_get(cs, "win");
51    elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_PALETTE);
52    evas_object_resize(win, 320, 300);
53 }
54
55 static void
56 _components_cb(void *data, Evas_Object *obj __UNUSED__,
57                void *event_info __UNUSED__)
58 {
59    Evas_Object *cs = data;
60    Evas_Object *win = evas_object_data_get(cs, "win");
61    elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_COMPONENTS);
62    evas_object_resize(win, 320, 455);
63 }
64
65 static void
66 _both_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
67 {
68    Evas_Object *cs = data;
69    Evas_Object *win = evas_object_data_get(cs, "win");
70    elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_BOTH);
71    evas_object_resize(win, 320, 550);
72 }
73
74 static void
75 _picker_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
76 {
77    Evas_Object *cs = data;
78    Evas_Object *win = evas_object_data_get(cs, "win");
79    elm_colorselector_mode_set(cs, ELM_COLORSELECTOR_PICKER);
80    evas_object_resize(win, 320, 430);
81 }
82
83 void
84 test_colorselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
85                    void *event_info __UNUSED__)
86 {
87    Evas_Object *win, *bx, *bx2, *cs, *fr, *re, *bt;
88    int r, g, b, a;
89
90    win = elm_win_util_standard_add("colorselector", "ColorSelector");
91    elm_win_autodel_set(win, EINA_TRUE);
92
93    bx = elm_box_add(win);
94    evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
95    elm_win_resize_object_add(win, bx);
96    evas_object_show(bx);
97
98    fr = elm_frame_add(bx);
99    evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0);
100    evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
101    elm_object_text_set(fr, "Color View");
102    elm_box_pack_end(bx, fr);
103    evas_object_show(fr);
104
105    re = evas_object_rectangle_add(evas_object_evas_get(win));
106    evas_object_size_hint_min_set(re, 1, 100);
107    evas_object_show(re);
108    elm_object_content_set(fr, re);
109
110    fr = elm_frame_add(bx);
111    evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
112    evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL);
113    elm_object_text_set(fr, "Color Selector");
114    elm_box_pack_end(bx, fr);
115    evas_object_show(fr);
116
117    cs = elm_colorselector_add(fr);
118    elm_colorselector_palette_color_add(cs, 255, 90, 18, 255);
119    elm_colorselector_palette_color_add(cs, 255, 213, 0, 255);
120    elm_colorselector_palette_color_add(cs, 146, 255, 11, 255);
121    elm_colorselector_palette_color_add(cs, 9, 186, 10, 255);
122    elm_colorselector_palette_color_add(cs, 86, 201, 242, 255);
123    elm_colorselector_palette_color_add(cs, 18, 83, 128, 255);
124    elm_colorselector_palette_color_add(cs, 140, 53, 238, 255);
125    elm_colorselector_palette_color_add(cs, 255, 145, 145, 255);
126    elm_colorselector_palette_color_add(cs, 255, 59, 119, 255);
127    elm_colorselector_palette_color_add(cs, 133, 100, 69, 255);
128    elm_colorselector_palette_color_add(cs, 255, 255, 119, 255);
129    elm_colorselector_palette_color_add(cs, 133, 100, 255, 255);
130
131    a = 180;
132    r = 255;
133    g = 160;
134    b = 132;
135
136    elm_colorselector_color_set(cs, r, g, b, a);
137    evas_object_size_hint_weight_set(cs, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
138    evas_object_size_hint_align_set(cs, EVAS_HINT_FILL, EVAS_HINT_FILL);
139    elm_object_content_set(fr, cs);
140    evas_object_show(cs);
141    evas_object_smart_callback_add(cs, "changed", _colorselector_clicked_cb, re);
142    evas_object_smart_callback_add(cs, "color,item,selected",
143                                   _colorpalette_clicked_cb, re);
144    evas_object_smart_callback_add(cs, "color,item,longpressed",
145                                   _colorpalette_longpressed_cb, re);
146    evas_object_data_set(cs, "win", win);
147
148    elm_colorselector_color_get(cs, &r, &g, &b, &a);
149    /* Fix Alpha pre multiplication by edje */
150    r = (r * a) / 255;
151    g = (g * a) / 255;
152    b = (b * a) / 255;
153    evas_object_color_set(re, r, g, b, a);
154
155    bx2 = elm_box_add(bx);
156    elm_box_horizontal_set(bx2, EINA_TRUE);
157    evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, 0);
158    evas_object_size_hint_align_set(bx2, EVAS_HINT_FILL, EVAS_HINT_FILL);
159    evas_object_show(bx2);
160    elm_box_pack_end(bx, bx2);
161
162    bt = elm_button_add(bx2);
163    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
164    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
165    evas_object_smart_callback_add(bt, "clicked", _palette_cb, cs);
166    elm_object_text_set(bt, "Palette");
167    evas_object_show(bt);
168    elm_box_pack_end(bx2, bt);
169
170    bt = elm_button_add(bx2);
171    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
172    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
173    evas_object_smart_callback_add(bt, "clicked", _components_cb, cs);
174    elm_object_text_set(bt, "Components");
175    evas_object_show(bt);
176    elm_box_pack_end(bx2, bt);
177
178    bt = elm_button_add(bx2);
179    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
180    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
181    evas_object_smart_callback_add(bt, "clicked", _both_cb, cs);
182    elm_object_text_set(bt, "Both");
183    evas_object_show(bt);
184    elm_box_pack_end(bx2, bt);
185
186    bt = elm_button_add(bx2);
187    evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
188    evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
189    evas_object_smart_callback_add(bt, "clicked", _picker_cb, cs);
190    elm_object_text_set(bt, "Picker");
191    evas_object_show(bt);
192    elm_box_pack_end(bx2, bt);
193
194    evas_object_resize(win, 320, 550);
195    evas_object_show(win);
196 }
197 #endif