Merge "Remove code related to Datausage ."
[apps/core/preloaded/settings.git] / setting-common / include / setting-common-draw-widget.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 /**
22  *default group setting-common-draw-widget
23  *common UI code for reuse
24  */
25 #ifndef __SETTING_COMMON_DRAW_WIDGET_H__
26 #define __SETTING_COMMON_DRAW_WIDGET_H__
27 #include <setting-common-data-type.h>   /* including all the data structure */
28 #include <setting-common-general-func.h>        /* including one class of common functions */
29 #include <setting-common-data-slp-setting.h>    /* including another class of common functions */
30
31 #define SETTING_COMMON_DRAW_WIDGET_CONTROLBAR_ITEM_LEN 3
32 #define POPUP_INTERVAL 2.0
33
34 extern const Elm_Genlist_Item_Class itc_seperator;
35 extern const Elm_Genlist_Item_Class itc_bottom_seperator;
36 extern const Elm_Genlist_Item_Class itc_sep_line;
37
38 extern const Elm_Genlist_Item_Class itc_1text;
39 extern const Elm_Genlist_Item_Class itc_1text_1icon_2;
40
41 extern const Elm_Genlist_Item_Class itc_1icon;
42 extern const Elm_Genlist_Item_Class itc_1icon_1text_sub;
43 extern const Elm_Genlist_Item_Class itc_1text_1icon;
44 extern const Elm_Genlist_Item_Class itc_1text_2icon;
45 extern const Elm_Genlist_Item_Class itc_1text_2icon_2;
46
47 extern const Elm_Genlist_Item_Class itc_2text_2;
48 extern const Elm_Genlist_Item_Class itc_2text;
49 extern const Elm_Genlist_Item_Class itc_multiline_2text_1icon;
50 extern const Elm_Genlist_Item_Class itc_2text_1icon_3;
51 extern const Elm_Genlist_Item_Class itc_2text_1icon_6;
52 extern const Elm_Genlist_Item_Class itc_2text_1icon_7;
53
54 extern const Elm_Genlist_Item_Class itc_2text_3_parent;
55 extern const Elm_Genlist_Item_Class itc_2text_3;
56 extern const Elm_Genlist_Item_Class itc_2text_2icon_3;
57
58 extern const Elm_Genlist_Item_Class itc_multiline_text;
59 extern const Elm_Genlist_Item_Class itc_1text_1icon_3_tb;
60 extern const Elm_Genlist_Item_Class itc_cm_1text_1icon_2;
61 extern const Elm_Genlist_Item_Class itc_sel_all;
62 extern const Elm_Genlist_Item_Class itc_bg_1icon;
63 extern const Elm_Genlist_Item_Class itc_group_item;
64
65
66 /**
67  * Do process when clicking radio in subitem of expandable item
68  */
69 extern void setting_sub_list_rd_change(void *data, Evas_Object *obj,
70                                        void *event_info);
71
72 /**
73  * Hide the input pannel
74  */
75 extern void setting_hide_input_pannel_cb(Evas_Object *entry);
76
77 /**
78  * Do process when clicking on subitem of expandable item
79  */
80 extern void setting_sub_list_sel_cb(void *data, Evas_Object *obj,
81                                     void *event_info);
82
83 /**
84  * Do process when clicking on a common genlist item
85  */
86 extern void setting_mouse_up_Gendial_list_radio_cb(void *data,
87                                                    Evas_Object *obj,
88                                                    void *event_info);
89
90 /**
91  * To intialize an Elm_Genlist_Item_Class, according to item style
92  */
93 extern bool setting_create_Gendial_itc(const char *item_style,
94                                        Elm_Genlist_Item_Class *itc);
95
96 /**
97  * Create group style item
98  * @return a pointer to Setting_GenGroupItem_Data
99  */
100 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_group_titleItem(Evas_Object *genlist,
101                                                 const Elm_Genlist_Item_Class *itc,
102                                                 Elm_Object_Item *parent,
103                                                 Elm_Genlist_Item_Type flag,     /* ELM_GENLIST_ITEM_GROUP or ELM_GENLIST_ITEM_NONE */
104                                                 const char *keyStr,
105                                                 setting_call_back_func gl_sel);
106
107 /**
108  * Create separator style item with title
109  * @return a pointer to Setting_GenGroupItem_Data
110  */
111 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_titleItem(
112                                                 Evas_Object *genlist,
113                                                 const Elm_Genlist_Item_Class *itc,
114                                                 const char *keyStr,
115                                                 setting_call_back_func gl_sel);
116
117 /**
118  * Create 1radion-1text style item
119  * @return a pointer to Setting_GenGroupItem_Data
120  */
121 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_1radio(
122                                         Evas_Object *genlist,
123                                         const Elm_Genlist_Item_Class *itc,
124                                         setting_call_back_func gl_sel,
125                                         void *sel_data,
126                                         SWALLOW_Type swallow_type,
127                                         Evas_Object *rgd, int chk_status,
128                                         const char *keyStr,
129                                         setting_call_back_func chk_change_cb);
130 /**
131  * Create 2radion style item
132  * @return a pointer to Setting_GenGroupItem_Data
133  */
134 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_2radio(
135                                         Evas_Object *genlist,
136                                         const Elm_Genlist_Item_Class *itc,
137                                         setting_call_back_func gl_sel,
138                                         void *sel_data,
139                                         SWALLOW_Type swallow_type,
140                                         Evas_Object *rgd, int chk_status,
141                                         const char *keyStr,
142                                         const char *sub_desc,
143                                         setting_call_back_func chk_change_cb);
144
145 /**
146  * Create common style item with menu icon
147  * @return a pointer to Setting_GenGroupItem_Data
148  */
149 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_groupitem(
150                                         Evas_Object *genlist,
151                                         const Elm_Genlist_Item_Class *itc,
152                                         Elm_Object_Item *parent,
153                                         setting_call_back_func gl_sel,
154                                         void *sel_data,
155                                         SWALLOW_Type swallow_type,
156                                         char *l_icon_path,
157                                         char *r_icon_path, int chk_status,
158                                         const char *keyStr, char *sub_desc,
159                                         setting_call_back_func
160                                         chk_change_cb);
161
162 /**
163  * Common function to create a genlist item
164  * @return a pointer to Setting_GenGroupItem_Data
165  */
166 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_def(Evas_Object *
167                                                                    genlist,
168                                                                    const Elm_Genlist_Item_Class *itc,
169                                                                    setting_call_back_func gl_sel,
170                                                                    void *sel_data,
171                                                                    SWALLOW_Type swallow_type,
172                                                                    char *l_icon_path,
173                                                                    char *r_icon_path,
174                                                                    int chk_status,
175                                                                    const char *keyStr,
176                                                                    char *sub_desc,
177                                                                    setting_call_back_func chk_change_cb);
178
179 /**
180  * Create 1entry style item
181  * @return a pointer to Setting_GenGroupItem_Data
182  */
183 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object *genlist,
184                                                                      const Elm_Genlist_Item_Class *itc,
185                                                                      setting_call_back_func gl_sel,
186                                                                      void *sel_data,
187                                                                      SWALLOW_Type swallow_type,
188                                                                      char *l_icon_path,
189                                                                          char *r_icon_path,
190                                                                      int chk_status,
191                                                                      const char *keyStr,
192                                                                          char *sub_desc,
193                                                                      setting_call_back_func chk_change_cb,
194                                                                      Elm_Input_Panel_Layout input_type,
195                                                                      bool isPasswordFlag,
196                                                                      bool isFocusFlag,
197                                                                      int max_char_count,
198                                                                      int max_byte_count,
199                                                                      char *accepted,
200                                                                          char *rejected);
201
202 /**
203  * General function to create a subitem of expandable item
204  *
205  * @return a pointer to Setting_GenGroupItem_Data
206  */
207 extern Setting_GenGroupItem_Data *setting_create_Gendial_exp_sub_field(
208                                         Evas_Object *genlist,
209                                         const Elm_Genlist_Item_Class *itc,
210                                         setting_call_back_func gl_sel,
211                                         void *sel_data,
212                                         Elm_Object_Item *parent,
213                                         SWALLOW_Type swallow_type,
214                                         Evas_Object *rgd, int chk_status,
215                                         const char *keyStr,
216                                         setting_call_back_func
217                                         chk_change_cb);
218
219 /**
220  * General function to create a parent item of expandable item
221  *
222  * @return a pointer to Setting_GenGroupItem_Data
223  */
224 extern Setting_GenGroupItem_Data *setting_create_Gendial_exp_parent_field(
225                                                 Evas_Object *genlist,
226                                                 const Elm_Genlist_Item_Class *itc,
227                                                 setting_call_back_func gl_sel,
228                                                 void *sel_data,
229                                                 SWALLOW_Type swallow_type,
230                                                 const char *keyStr,
231                                                 char *sub_desc);
232
233 /**
234  * To make genlist support expandable style item
235  */
236 extern void setting_enable_expandable_genlist(Evas_Object *genlist, void *data,
237                                               setting_call_back_func gl_exp_cb,
238                                               setting_call_back_func
239                                               gl_smart_cb);
240
241 /**
242 * The API to let an item which with processbar go into "processing"
243 * @return
244 */
245 extern void setting_begin_progress_genlist_item(Setting_GenGroupItem_Data *
246                                                 data_item);
247 /**
248 * The API to let an item which with processbar go into "processed"
249 * @return
250 */
251 extern void setting_finish_progress_genlist_item(Setting_GenGroupItem_Data *
252                                                  data_item);
253
254 /**
255  * To create slider object of a genlist item
256  * @return a slider container object
257  */
258 extern Evas_Object *setting_create_slider(Evas_Object *win_main, Evas *evas,
259                                           const char *l_swallow_path,
260                                           const char *r_swallow_path,
261                                           double value,
262                                           bool indicator,
263                                           double slider_min,
264                                           double slider_max,
265                                           setting_call_back_func
266                                           slider_change_cb,
267                                           setting_call_back_func
268                                           slider_start_change_cb,
269                                           setting_call_back_func
270                                           slider_stop_change_cb, void *cb_data);
271
272 /**
273  * The main implement body of create a certain size icon
274  */
275 extern void create_image_box_add_ex(void *data, Evas_Object *win_main,
276                                     Evas *evas, char *img_path, int img_w,
277                                     int img_h,
278                                     Evas_Object_Event_Cb mouse_down_cb,
279                                     Evas_Object_Event_Cb mouse_up_cb,
280                                     Evas_Object **image_box,
281                                     Evas_Object **img);
282
283 /**
284  * To create a size fixed icon
285  * @return a image container object
286  */
287 extern Evas_Object *create_image_box_add(void *data, Evas_Object *win_main,
288                                          Evas *evas, char *img_path, int img_w,
289                                          int img_h,
290                                          Evas_Object_Event_Cb mouse_down_cb,
291                                          Evas_Object_Event_Cb mouse_up_cb);
292
293 /**
294 * @ To create a size specialized icon
295 * @return a image container object
296 */
297 extern Evas_Object *create_bgimage_box_add(void *data, Evas_Object *win_main,
298                                            Evas *evas, char *img_path,
299                                            int img_w, int img_h,
300                                            Evas_Object_Event_Cb mouse_down_cb,
301                                            Evas_Object_Event_Cb mouse_up_cb);
302
303 /**
304 * @ create a box container
305 *
306 * @param[in] win_main
307 *
308 * @return a box container
309 */
310 extern Evas_Object *setting_create_client_bx(Evas_Object *win_main);
311
312 /**
313 * The API to Create a lable
314 * @return a lable
315 */
316 extern Evas_Object *setting_create_lable(Evas_Object *parent, const char *text,const char *style, const char *align);
317
318 /**
319 * The API to Create an object to show an image
320 * @return an object to show an image
321 */
322 extern Evas_Object *setting_create_image(Evas_Object *parent, const char *img_path);
323
324 /**
325 * The API to Create an object to show anamition image
326 * @return an object to show anamition image
327 */
328 extern Evas_Object *setting_create_gif(Evas_Object *parent, const char **png_list);
329
330 /**
331 * @ create a popup window which contents a progressbar
332 * @return a popup window which contents a progressbar
333 */
334 extern Evas_Object *setting_create_popup_with_progressbar(void *data,
335                                                   Evas_Object *parent,
336                                                   char *progressbar_style,
337                                                   char *title,
338                                                   char *text,
339                                                   setting_call_back_func response_cb,
340                                                   int timeout,
341                                                   bool blocked_flag,
342                                                   bool keygrab_flag);
343 /**
344 * The general API to create a certain popup window with more than one button.
345 * @return a certain popup window
346 */
347 extern Evas_Object *setting_create_popup_with_btn(void *data,
348                                                   Evas_Object *parent,
349                                                   char *title,
350                                                   char *text,
351                                                   setting_call_back_func response_cb,
352                                                   int timeout,
353                                                   int btn_num, ...);
354 /**
355 * The general API to create a certain popup window
356 * @return a certain popup window
357 */
358 extern Evas_Object *setting_create_popup_without_btn(void *data,
359                                                 Evas_Object *parent,
360                                                 char *title,
361                                                 char *text,
362                                                 setting_call_back_func response_cb,
363                                                 int timeout,
364                                                 bool blocked_flag,
365                                                 bool keygrab_flag);
366 /**
367 * The API to create a certain popup window with title
368 * @return a certain popup window with title
369 */
370 extern int setting_create_simple_popup(void *data,
371                                        Evas_Object *parent,
372                                        char *title,
373                                        char *text);
374 /**
375 * The API to create a certain popup window with a gif and some buttons
376 * @return a certain popup window with title
377 */
378 extern Evas_Object *setting_create_popup_with_gif(void *data,
379                                                   Evas_Object *parent,
380                                                   char *title,
381                                                   char *text,
382                                                   const char **png_list,//array end with 'NULL'.
383                                                   setting_call_back_func response_cb,
384                                                   int timeout,
385                                                   int btn_num, ...);
386
387 /**
388 * The API to create a certain popup window with a check
389 * @return a certain popup window with title
390 */
391 extern Evas_Object *setting_create_popup_with_checkview(Evas_Object *parent,
392                                                  char *title,
393                                                  char *check_str,
394                                                  Evas_Object *checkview_content,
395                                                  const char *checkview_style,
396                                                  Evas_Object **check,
397                                                  int timeout);
398
399 /**
400 * The API to create a certain popup window with a image, a check and some buttons
401 * @return a certain popup window with title
402 */
403 extern Evas_Object *setting_create_popup_with_image_check(void *data,
404                                              Evas_Object *parent,
405                                              char *title,
406                                              char *text1,
407                                              char *text2,
408                                              char *icon_path,
409                                              char *check_str,
410                                              Evas_Object **check,
411                                              setting_call_back_func response_cb,
412                                              int timeout,
413                                              int btn_num, ...);
414 /**
415 * Alternate the check object status and its binded vcof value via original vcofn value
416 */
417 extern int setting_draw_onoff_status(Evas_Object *obj,
418                                      setting_bool_slp_list key);
419
420 /**
421 * Set the vconf value via its binded check object.
422 * @return 0: sucess, other: failed
423 */
424 extern int setting_reset_slp_key_by_status(Evas_Object *obj,
425                                            setting_bool_slp_list key);
426
427 /**
428 * Set the status of check object via its binded vconf value.
429 * @return  0: sucess, other: failed
430 */
431 extern int setting_check_onoff_status(Evas_Object *obj,
432                                       setting_bool_slp_list key);
433
434 /**
435 * Set the status of radio group object via its binded vconf value.
436 * @return  0: sucess, other: failed
437 */
438 extern int setting_update_chk_status(Evas_Object *chk,
439                                      setting_int_slp_list type);
440
441 /**
442 * Create a size specilized rectangle object
443 * @return a size specilized rectangle object
444 */
445 extern Evas_Object *setting_create_blank_rect_customize(Evas_Object *layout,
446                                                         int w, int h);
447
448 /**
449 * Create a size fixed rectangle object
450 * @param[in] layout
451 * @return a size fixed rectangle object
452 */
453 extern Evas_Object *setting_create_blank_rect(Evas_Object *layout);
454
455 /**
456 * The API to Create an editfiled object
457 * @return an editfiled object
458 */
459 extern Evas_Object *setting_create_editfiled(Evas_Object *win_main,
460                                              char *title, char *def_str);
461 /**
462 * The API to Create a standard layout
463 * @return a standard layout
464 */
465 extern Evas_Object *setting_create_win_layout(Evas_Object *win_layout,
466                                        Evas_Object *win_obj);
467 /**
468 * The API to Create a naviframe
469 * @return a naviframe
470 */
471 extern Evas_Object *setting_create_navi_bar(Evas_Object *layout);
472
473 /**
474 * The API to Create a button
475 * @return a button
476 */
477 extern Evas_Object *setting_create_button(Evas_Object *parent, const char *btn_str,
478                                    const char *btn_style,
479                                    setting_call_back_func btn_click_cb,
480                                    void *cb_data);
481
482 /**
483 * The API to Create top buttons onto naviframe
484 * @return a naviframe item
485 */
486 extern Elm_Object_Item * setting_create_navi_bar_top_buttons(char *title_str,
487                                          char *lbutton_str,
488                                          char *rbutton_str,
489                                          char *mbutton_str,
490                                          setting_call_back_func lbutton_click_cb,
491                                          setting_call_back_func rbutton_click_cb,
492                                          setting_call_back_func mbutton_click_cb,
493                                          void *cb_data, Evas_Object *eo_view,/*any container obj */
494                                          Evas_Object *navigate_bar );
495
496 /**
497 * Create buttons on the specialized navigation bar
498 * @param[in] eo_view    navigation bar's content
499 * @param[in] controlbar   title obj of navigation bar
500 */
501 extern void
502 setting_create_navi_bar_buttons(char *title_str,
503                                 char *lbutton_str, char *rbutton_str,
504                                 char *mbutton_str,
505                                 setting_call_back_func lbutton_click_cb,
506                                 setting_call_back_func rbutton_click_cb,
507                                 setting_call_back_func mbutton_click_cb,
508                                 void *cb_data, Evas_Object *eo_view,
509                                 Evas_Object *navigate_bar,
510                                 Evas_Object *titleobj);
511
512 /**
513 * The general API to create a layout with navigation bar,
514 *   which contents any evas container object(@param[eo_view]) as its content
515 *
516 * @param[in] eo_view    navigation bar's content
517 * @param[out] titleobj   title obj of navigation bar
518 *
519 * return main layout of UG or App..
520 */
521
522 Evas_Object *setting_create_layout_navi_bar(Evas_Object *win_layout,
523                                             Evas_Object *win_obj,
524                                             char *title_str,
525                                                 char *lbutton_str,
526                                             char *rbutton_str,
527                                             char *mbutton_str,
528                                             setting_call_back_func lbutton_click_cb,
529                                             setting_call_back_func rbutton_click_cb,
530                                             setting_call_back_func mbutton_click_cb,
531                                                 void *cb_data,
532                                             Evas_Object *eo_view,
533                                             Evas_Object **navi_bar,
534                                             Evas_Object **titleobj);
535
536 /**
537 * The API to create a layout with navigation bar,
538 *   which contents a scroller object as its content
539 *
540 * @param[out] scroller   navigation bar's content
541 *
542 * @return a layout with a special navigation bar and at most 2 buttons
543 */
544 extern Evas_Object *setting_create_layout_navi_bar_scroller(Evas_Object * win_layout,
545                                                             Evas_Object * win_obj,
546                                                             char *title_str,
547                                                             char *lbutton_str,
548                                                             char *rbutton_str,
549                                                             setting_call_back_func lbutton_click_cb,
550                                                             setting_call_back_func rbutton_click_cb,
551                                                             void *cb_data,
552                                                             Evas_Object ** scroller,
553                                                             Evas_Object ** navi_bar);
554
555 /**
556 * The API to create a layout with navigation bar,
557 *       which contents a genlist object as its content
558 *
559 * @return a layout with a special navigation bar and at most 2 buttons
560 */
561 extern Evas_Object *setting_create_layout_navi_bar_genlist(Evas_Object * win_layout,
562                                                            Evas_Object * win_obj,
563                                                            char *title_str,
564                                                            char *lbutton_str,
565                                                            char *rbutton_str,
566                                                            setting_call_back_func lbutton_click_cb,
567                                                            setting_call_back_func rbutton_click_cb,
568                                                            void *cb_data,
569                                                            Evas_Object ** genlist,
570                                                            Evas_Object ** navi_bar);
571
572 /**
573 * The general API to push any evas object(@param[in][eo_view]) to the specialized navi_bar,
574 *   which contents at most 3 buttons
575 */
576 extern Elm_Object_Item *setting_push_layout_navi_bar(char *title_str,
577                                          char *lbutton_str, char *rbutton_str,
578                                          char *mbutton_str,
579                                          setting_call_back_func lbutton_click_cb,
580                                          setting_call_back_func rbutton_click_cb,
581                                          setting_call_back_func mbutton_click_cb,
582                                          void *cb_data,
583                                          Evas_Object *eo_view,
584                                          Evas_Object *navi_bar,
585                                          Evas_Object **titleobj);
586
587 /**
588 * The API to push a scroller object(@param[in][scroller]) to the specialized navi_bar,
589 *   which contents at most 2 buttons
590 */
591 extern void setting_push_layout_navi_bar_scroller(Evas_Object *win_main,
592                                                   char *title_str,
593                                                   char *lbutton_str,
594                                                   char *rbutton_str,
595                                                   setting_call_back_func lbutton_click_cb,
596                                                   setting_call_back_func rbutton_click_cb,
597                                                   void *cb_data,
598                                                   Evas_Object **scroller,
599                                                   Evas_Object *navi_bar);
600
601 /**
602 * The API to push a genlist object(@param[in][genlist]) to the specialized navi_bar,
603 *   which contents at most 2 buttons
604 */
605 extern void
606 setting_push_layout_navi_bar_genlist(Evas_Object *win_layout,
607                                      Evas_Object *win_obj,
608                                          char *title_str,
609                                      char *lbutton_str,
610                                          char *rbutton_str,
611                                      setting_call_back_func lbutton_click_cb,
612                                      setting_call_back_func rbutton_click_cb,
613                                      void *cb_data,
614                                          Evas_Object **genlist,
615                                      Evas_Object *navi_bar);
616
617 /**
618 * Create a text box, which cannot be edited
619 * @return a text box, which cannot be edited
620 */
621 extern Evas_Object *setting_create_textbox(Evas_Object *parent,
622                                            const char *content);
623
624 /****done_list****/
625
626 /**
627 * Create selectinfo popup
628 */
629 extern void setting_create_sel_info_popup(Evas_Object *parent,
630                                           Evas_Object **selInfoPop_layout,
631                                           Evas_Object **selInfoPop);
632
633 /**
634 * Check if some item is selected in done-list
635 *
636 * @param[in] list_data
637 * @return
638 */
639 extern bool setting_done_list_is_some_item_selected(Setting_Done_List_Data *
640                                                     list_data);
641
642 /**
643 * Do process when clicking the check object in the done-list item
644 */
645 extern void setting_done_list_Gendial_chk_btn_cb(void *data, Evas_Object *obj,
646                                                  void *event_info);
647
648 /**
649 * The API to create done-list.
650 * @param[in] list_data
651 * @return a done-list
652 */
653 extern Evas_Object *setting_create_done_list(Setting_Done_List_Data *
654                                              list_data);
655
656 /**
657 * Get searchbar text and register redraw_cb by idler.
658 *
659 * @param[in] data
660 * @param[in] search_bar
661 * @param[in] search_text
662 * @param[in] search_idler
663 * @param[in] redraw_cb
664 */
665 extern int setting_searchbar_redraw(void *data,
666                            Evas_Object *search_bar,
667                            char *search_text,
668                            Ecore_Idler **search_idler,
669                            Ecore_Task_Cb redraw_cb);
670
671 /**
672 * Create searchar, register change cb and cancel cb.
673 *
674 * @param[in] data
675 * @param[in] parent
676 * @param[in] change_cb
677 * @param[in] cancel_cb
678 */
679 extern Evas_Object *setting_create_searchbar(void *data, Evas_Object *parent,
680                                          Evas_Smart_Cb change_cb,
681                                          Evas_Smart_Cb cancel_cb);
682
683 #if APPLIED_BACK_KEY_UG
684
685 /**
686 * Get the toppest popup in current evas, cross through all the APP and UGs.
687 *
688 * @param[in] evas
689 *
690 * @return the toppest popup in current evas
691 */
692 extern Evas_Object *get_toppest_popup_window(Evas *evas);
693 #endif
694
695 /**
696 * Make it no effect when clicking on a evas object, such as, layout, genlist
697 *
698 */
699 extern void setting_disable_evas_object(Evas_Object *obj);
700
701 /**
702 * Make it normal acting when clicking on a evas object, such as, layout, genlist
703 *
704 */
705 extern void setting_enable_evas_object(Evas_Object *obj);
706
707 /**
708 * To disable a specialized genlist item
709 *
710 */
711 extern void setting_disable_genlist_item(Elm_Object_Item *item);
712
713 /**
714 * To enable a specialized genlist item
715 *
716 */
717 extern void setting_enable_genlist_item(Elm_Object_Item *item);
718
719 /**
720 * To resize a evas object, such as, icon, button..
721 *
722 */
723 extern void setting_resize_object(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
724
725 /**
726 * To create a bg object
727 *
728 */
729 extern Evas_Object *setting_create_bg(Evas_Object *parent,Evas_Object *win, const char *bg_style);
730
731 /**
732 * To make an object which is operated by setting_dim_evas_object normal color
733 *
734 * @param[in] obj
735 * @param[in] b_transparenct:
736 *       1:the appearence of obj is made up of transparent backgroud color.
737 *       0:the appearence of obj is made up of non transparent color.
738 */
739 extern void setting_undo_dim_evas_object(Evas_Object *obj, bool b_transparenct);
740
741 /**
742 * To make an object dim color
743 *
744 * @param[in] obj
745 * @param[in] b_transparenct:
746 *       1:the appearence of obj is made up of transparent backgroud color.
747 *       0:the appearence of obj is made up of non transparent color.
748 */
749 extern void setting_dim_evas_object(Evas_Object *obj, bool b_transparenct);
750
751 /**
752 * To make an object looks clickable: if pressed, it is dim color;if unpressed, it is normal color;
753 *
754 * @param[in] obj
755 */
756 extern void setting_make_evas_object_clickable(Evas_Object *obj);
757 /**
758 * To create an icon which looks clickable(if pressed, it is dim color;if unpressed, it is normal color)
759 *
760 * @param[in] parent
761 * @param[in] img_path
762 * @param[in] up_cb
763 * @param[in] down_cb
764 * @param[in] move_cb
765 * @param[in] data
766 */
767 extern Evas_Object *setting_create_icon(Evas_Object *parent, const char *img_path,
768                                  Evas_Object_Event_Cb up_cb,
769                                  Evas_Object_Event_Cb down_cb,
770                                  Evas_Object_Event_Cb move_cb,
771                                  void *data);
772 /**
773 * to make sbu-obj the same size as parent-obj.Notice: subobj is the only sub-obj @parent wants to display
774 *
775 * @param[in] parent
776 * @param[in] subobj
777 */
778
779 /**
780 * To create a button which only has a image and looks clickable
781 * (if pressed, it is dim color;if unpressed, it is normal color)
782 * @param[in] parent
783 * @param[in] img_path
784 * @param[in] up_cb
785 * @param[in] down_cb
786 * @param[in] move_cb
787 * @param[in] data
788 */
789 extern Evas_Object *setting_create_image_button(Evas_Object *parent,
790                                         const char *btn_img,
791                                         setting_call_back_func clicked_cb,
792                                         setting_call_back_func unpressed_cb,
793                                         void *data);
794
795 /*
796 * set font_size, color or align(right, left, middle),if need, you
797 * can add </font_siz>, </color> or </align> to controll a segment words; or else
798 * the text will take the same effect until the end of text.
799 */
800 extern char *setting_customize_text(const char *input_str, const int font_size,
801                              const char *color, const char *align);
802
803 /*
804 * To go to top of list in top view of navibar.
805 * @param[in] navibar
806 */
807 extern void setting_go_to_navibar_list_top(Evas_Object *navibar);
808
809 #endif                          /* __SETTING_COMMON_DRAW_WIDGET_H__ */