Tizen release 1.0
[apps/home/settings.git] / setting-common / include / setting-common-draw-widget.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2012 Samsung Electronics Co., Ltd All Rights Reserved 
5  *
6  * This file is part of org.tizen.setting
7  * Written by Hyejin Kim <hyejin0906.kim@samsung.com>
8  *
9  * PROPRIETARY/CONFIDENTIAL
10  * 
11  * This software is the confidential and proprietary information of 
12  * SAMSUNG ELECTRONICS ("Confidential Information"). You shall not
13  * disclose such Confidential Information and shall use it only in
14  * accordance with the terms of the license agreement you entered
15  * into with SAMSUNG ELECTRONICS.
16  *
17  * SAMSUNG make no representations or warranties about the suitability 
18  * of the software, either express or implied, including but not limited
19  * to the implied warranties of merchantability, fitness for a particular
20  * purpose, or non-infringement. SAMSUNG shall not be liable for any
21  * damages suffered by licensee as a result of using, modifying or
22  * distributing this software or its derivatives.
23  *
24  */
25 /**
26  *defgroup setting-common-draw-widget
27  *common UI code for reuse
28  */
29 #ifndef __SETTING_COMMON_DRAW_WIDGET_H__
30 #define __SETTING_COMMON_DRAW_WIDGET_H__
31 #include <setting-common-data-type.h>   /* including all the data structure */
32 #include <setting-common-general-func.h>        /* including one class of common functions */
33 #include <setting-common-data-slp-setting.h>    /* including another class of common functions */
34
35 #define SETTING_COMMON_DRAW_WIDGET_CONTROLBAR_ITEM_LEN 3
36 #define POPUP_INTERVAL 2.0
37
38 /**
39  * Do process when clicking radio in subitem of expandable item
40  */
41 extern void setting_sub_list_rd_change(void *data, Evas_Object *obj,
42                                        void *event_info);
43
44 /**
45  * Hide the input pannel
46  */
47 extern void setting_hide_input_pannel_cb(Evas_Object *entry);
48
49 /**
50  * Do process when clicking on subitem of expandable item
51  */
52 extern void setting_sub_list_sel_cb(void *data, Evas_Object *obj,
53                                     void *event_info);
54
55 /**
56  * Do process when clicking on a common genlist item
57  */
58 extern void setting_mouse_up_Gendial_list_radio_cb(void *data,
59                                                    Evas_Object *obj,
60                                                    void *event_info);
61
62 /**
63  * To intialize an Elm_Genlist_Item_Class, according to item style
64  */
65 extern bool setting_create_Gendial_itc(const char *item_style,
66                                        Elm_Genlist_Item_Class *itc);
67
68 /**
69  * Create group style item
70  * @return a pointer to Setting_GenGroupItem_Data
71  */
72 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_group_titleItem(Evas_Object *genlist,
73                                                 const Elm_Genlist_Item_Class *itc,
74                                                 Elm_Object_Item *parent,
75                                                 Elm_Genlist_Item_Type flag,     /* ELM_GENLIST_ITEM_GROUP or ELM_GENLIST_ITEM_NONE */
76                                                 const char *keyStr,
77                                                 setting_call_back_func gl_sel);
78
79 /**
80  * Create separator style item with title
81  * @return a pointer to Setting_GenGroupItem_Data
82  */
83 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_titleItem(
84                                                 Evas_Object *genlist,
85                                                 const Elm_Genlist_Item_Class *itc,
86                                                 const char *keyStr,
87                                                 setting_call_back_func gl_sel);
88
89 /**
90  * Create 1radion-1text style item
91  * @return a pointer to Setting_GenGroupItem_Data
92  */
93 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_1radio(
94                                         Evas_Object *genlist,
95                                         const Elm_Genlist_Item_Class *itc,
96                                         setting_call_back_func gl_sel,
97                                         void *sel_data,
98                                         SWALLOW_Type swallow_type,
99                                         Evas_Object *rgd, int chk_status,
100                                         const char *keyStr,
101                                         setting_call_back_func chk_change_cb);
102
103 /**
104  * Create common style item with menu icon
105  * @return a pointer to Setting_GenGroupItem_Data
106  */
107 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_groupitem(
108                                         Evas_Object *genlist,
109                                         const Elm_Genlist_Item_Class *itc,
110                                         Elm_Object_Item *parent,
111                                         setting_call_back_func gl_sel,
112                                         void *sel_data,
113                                         SWALLOW_Type swallow_type,
114                                         char *l_icon_path,
115                                         char *r_icon_path, int chk_status,
116                                         const char *keyStr, char *sub_desc,
117                                         setting_call_back_func
118                                         chk_change_cb);
119
120 /**
121  * Common function to create a genlist item
122  * @return a pointer to Setting_GenGroupItem_Data
123  */
124 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_def(Evas_Object *
125                                                                    genlist,
126                                                                    const Elm_Genlist_Item_Class *itc,
127                                                                    setting_call_back_func gl_sel,
128                                                                    void *sel_data,
129                                                                    SWALLOW_Type swallow_type,
130                                                                    char *l_icon_path,
131                                                                    char *r_icon_path,
132                                                                    int chk_status,
133                                                                    const char *keyStr,
134                                                                    char *sub_desc,
135                                                                    setting_call_back_func chk_change_cb);
136
137 /**
138  * Create 1entry style item
139  * @return a pointer to Setting_GenGroupItem_Data
140  */
141 extern Setting_GenGroupItem_Data *setting_create_Gendial_field_entry(Evas_Object *genlist,
142                                                                      const Elm_Genlist_Item_Class *itc,
143                                                                      setting_call_back_func gl_sel,
144                                                                      void *sel_data,
145                                                                      SWALLOW_Type swallow_type,
146                                                                      char *l_icon_path,
147                                                                          char *r_icon_path,
148                                                                      int chk_status,
149                                                                      const char *keyStr,
150                                                                          char *sub_desc,
151                                                                      setting_call_back_func chk_change_cb,
152                                                                      Elm_Input_Panel_Layout input_type,
153                                                                      bool isPasswordFlag,
154                                                                      bool isFocusFlag,
155                                                                      int max_char_count,
156                                                                      int max_byte_count,
157                                                                      char *accepted,
158                                                                          char *rejected);
159
160 /**
161  * General function to create a subitem of expandable item
162  *
163  * @return a pointer to Setting_GenGroupItem_Data
164  */
165 extern Setting_GenGroupItem_Data *setting_create_Gendial_exp_sub_field(
166                                         Evas_Object *genlist,
167                                         const Elm_Genlist_Item_Class *itc,
168                                         setting_call_back_func gl_sel,
169                                         void *sel_data,
170                                         Elm_Object_Item *parent,
171                                         SWALLOW_Type swallow_type,
172                                         Evas_Object *rgd, int chk_status,
173                                         const char *keyStr,
174                                         setting_call_back_func
175                                         chk_change_cb);
176
177 /**
178  * General function to create a parent item of expandable item
179  *
180  * @return a pointer to Setting_GenGroupItem_Data
181  */
182 extern Setting_GenGroupItem_Data *setting_create_Gendial_exp_parent_field(
183                                                 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                                                 const char *keyStr,
189                                                 char *sub_desc);
190
191 /**
192  * To make genlist support expandable style item
193  */
194 extern void setting_enable_expandable_genlist(Evas_Object *genlist, void *data,
195                                               setting_call_back_func gl_exp_cb,
196                                               setting_call_back_func
197                                               gl_smart_cb);
198
199 extern void setting_begin_progress_genlist_item(Setting_GenGroupItem_Data *
200                                                 data_item);
201 extern void setting_finish_progress_genlist_item(Setting_GenGroupItem_Data *
202                                                  data_item);
203
204 /**
205  * To create slider object of a genlist item
206  * @return a slider container object
207  */
208 extern Evas_Object *setting_create_slider(Evas_Object *win_main, Evas *evas,
209                                           const char *l_swallow_path,
210                                           const char *r_swallow_path,
211                                           double value, double slider_min,
212                                           double slider_max,
213                                           setting_call_back_func
214                                           slider_change_cb,
215                                           setting_call_back_func
216                                           slider_start_change_cb,
217                                           setting_call_back_func
218                                           slider_stop_change_cb, void *cb_data);
219
220 /**
221  * The main implement body of create a certain size icon
222  */
223 extern void create_image_box_add_ex(void *data, Evas_Object *win_main,
224                                     Evas *evas, char *img_path, int img_w,
225                                     int img_h,
226                                     Evas_Object_Event_Cb mouse_down_cb,
227                                     Evas_Object_Event_Cb mouse_up_cb,
228                                     Evas_Object **image_box,
229                                     Evas_Object **img);
230
231 /**
232  * To create a size fixed icon
233  * @return a image container object
234  */
235 extern Evas_Object *create_image_box_add(void *data, Evas_Object *win_main,
236                                          Evas *evas, char *img_path, int img_w,
237                                          int img_h,
238                                          Evas_Object_Event_Cb mouse_down_cb,
239                                          Evas_Object_Event_Cb mouse_up_cb);
240
241 /**
242 * @ To create a size specialized icon
243 * @return a image container object
244 */
245 extern Evas_Object *create_bgimage_box_add(void *data, Evas_Object *win_main,
246                                            Evas *evas, char *img_path,
247                                            int img_w, int img_h,
248                                            Evas_Object_Event_Cb mouse_down_cb,
249                                            Evas_Object_Event_Cb mouse_up_cb);
250
251 /**
252 * @ create a box container
253 *
254 * @param[in] win_main
255 *
256 * @return a box container
257 */
258 extern Evas_Object *setting_create_client_bx(Evas_Object *win_main);
259
260 extern Evas_Object *setting_create_image(Evas_Object *parent, const char *img_path);
261 extern Evas_Object *setting_create_gif(Evas_Object *parent, const char **png_list);
262
263 /**
264 * @ create a popup window which contents a progressbar
265 * @return a popup window which contents a progressbar
266 */
267 extern Evas_Object *setting_create_popup_with_progressbar(void *data,
268                                                  Evas_Object *parent,
269                                                  char *progressbar_style,
270                                                  char *progressbar_title,
271                                                  char *progressbar_lable,
272                                                  setting_call_back_func
273                                                  response_cb, int timeout);
274 extern Evas_Object *setting_create_popup_with_btn(void *data, Evas_Object *parent,
275                                   char *content_str, char *title_str,
276                                   setting_call_back_func response_cb,
277                                   int timeout, int btn_num, ...);
278
279 /**
280 * The general API to create a certain popup window
281 * @return a certain popup window
282 */
283 extern Evas_Object *setting_create_popup_without_btn(void *data, Evas_Object *parent,
284                                          char *content_str, char *title_str,
285                                          setting_call_back_func response_cb,
286                                          int timeout);
287
288 /**
289 * The API to create a certain popup window without title
290 * @return a certain popup window without title
291 */
292 extern int setting_create_popup_without_title(void *data, Evas_Object *win_main,
293                                              char *str_text);
294
295 /**
296 * The API to create a certain popup window with title
297 * @return a certain popup window with title
298 */
299 extern int setting_create_popup_with_title(void *data, Evas_Object *win_main,
300                                            char *str_title, char *str_text);
301
302 extern Evas_Object *setting_create_popup_with_gif(void *data, Evas_Object *parent, char *content_str, char *title_str, const char **png_list,   //array end with 'NULL'.
303                                                   setting_call_back_func
304                                                   response_cb, int timeout, int btn_num, ...);
305 extern Evas_Object *setting_create_popup_with_content(void *data, Evas_Object *parent, char *content_str, char *title_str, Evas_Object *content,        //content obj below text
306                                                       int timeout);
307 extern Evas_Object *setting_create_popup_with_check(void *data,
308                                                     Evas_Object *parent,
309                                                     char *content_str,
310                                                     char *title_str,
311                                                     char *check_str,
312                                                     setting_call_back_func
313                                                     response_cb, int timeout,
314                                                     Evas_Object **check, int btn_num, ...);
315
316 /**
317 * Alternate the check object status and its binded vcof value via original vcofn value
318 */
319 extern int setting_draw_onoff_status(Evas_Object *obj,
320                                      setting_bool_slp_list key);
321
322 /**
323 * Set the vconf value via its binded check object.
324 * @return 0: sucess, other: failed
325 */
326 extern int setting_reset_slp_key_by_status(Evas_Object *obj,
327                                            setting_bool_slp_list key);
328
329 /**
330 * Set the status of check object via its binded vconf value.
331 * @return  0: sucess, other: failed
332 */
333 extern int setting_check_onoff_status(Evas_Object *obj,
334                                       setting_bool_slp_list key);
335
336 /**
337 * Set the status of radio group object via its binded vconf value.
338 * @return  0: sucess, other: failed
339 */
340 extern int setting_update_chk_status(Evas_Object *chk,
341                                      setting_int_slp_list type);
342
343 /**
344 * Create a size specilized rectangle object
345 * @return a size specilized rectangle object
346 */
347 extern Evas_Object *setting_create_blank_rect_customize(Evas_Object *layout,
348                                                         int w, int h);
349
350 /**
351 * Create a size fixed rectangle object
352 * @param[in] layout
353 * @return a size fixed rectangle object
354 */
355 extern Evas_Object *setting_create_blank_rect(Evas_Object *layout);
356
357 /**
358 * The API to Create an editfiled object
359 * @return an editfiled object
360 */
361 extern Evas_Object *setting_create_editfiled(Evas_Object *win_main,
362                                              char *title, char *def_str);
363
364 extern Evas_Object *setting_create_win_layout(Evas_Object *win_layout,
365                                        Evas_Object *win_obj);
366
367 extern Evas_Object *setting_create_navi_bar(Evas_Object *layout);
368
369 extern Evas_Object *setting_create_button(Evas_Object *parent, const char *btn_str,
370                                    const char *btn_style,
371                                    setting_call_back_func btn_click_cb,
372                                    void *cb_data);
373
374 extern Elm_Object_Item * setting_create_navi_bar_top_buttons(char *title_str,
375                                          char *lbutton_str,
376                                          char *rbutton_str,
377                                          char *mbutton_str,
378                                          setting_call_back_func lbutton_click_cb,
379                                          setting_call_back_func rbutton_click_cb,
380                                          setting_call_back_func mbutton_click_cb,
381                                          void *cb_data, Evas_Object *eo_view,/*any container obj */
382                                          Evas_Object *navigate_bar );
383
384 /**
385 * Create buttons on the specialized navigation bar
386 * @param[in] eo_view    navigation bar's content
387 * @param[in] controlbar   title obj of navigation bar
388 */
389 extern void
390 setting_create_navi_bar_buttons(char *title_str,
391                                 char *lbutton_str, char *rbutton_str,
392                                 char *mbutton_str,
393                                 setting_call_back_func lbutton_click_cb,
394                                 setting_call_back_func rbutton_click_cb,
395                                 setting_call_back_func mbutton_click_cb,
396                                 void *cb_data, Evas_Object *eo_view,
397                                 Evas_Object *navigate_bar,
398                                 Evas_Object *controlbar);
399
400 /**
401 * The general API to create a layout with navigation bar,
402 *   which contents any evas container object(@param[eo_view]) as its content
403 *
404 * @param[in] eo_view    navigation bar's content
405 * @param[out] titleobj   title obj of navigation bar
406 *
407 * return main layout of UG or App..
408 */
409
410 Evas_Object *setting_create_layout_navi_bar(Evas_Object *win_layout,
411                                             Evas_Object *win_obj,
412                                             char *title_str,
413                                                 char *lbutton_str,
414                                             char *rbutton_str,
415                                             char *mbutton_str,
416                                             setting_call_back_func lbutton_click_cb,
417                                             setting_call_back_func rbutton_click_cb,
418                                             setting_call_back_func mbutton_click_cb,
419                                                 void *cb_data,
420                                             Evas_Object *eo_view,
421                                             Evas_Object **navi_bar,
422                                             Evas_Object **titleobj);
423
424 /**
425 * The API to create a layout with navigation bar,
426 *   which contents a scroller object as its content
427 *
428 * @param[out] scroller   navigation bar's content
429 *
430 * @return a layout with a special navigation bar and at most 2 buttons
431 */
432 extern Evas_Object *setting_create_layout_navi_bar_scroller(Evas_Object * win_layout,
433                                                             Evas_Object * win_obj,
434                                                             char *title_str,
435                                                             char *lbutton_str,
436                                                             char *rbutton_str,
437                                                             setting_call_back_func lbutton_click_cb,
438                                                             setting_call_back_func rbutton_click_cb,
439                                                             void *cb_data,
440                                                             Evas_Object ** scroller,
441                                                             Evas_Object ** navi_bar);
442
443 /**
444 * The API to create a layout with navigation bar,
445 *       which contents a genlist object as its content
446 *
447 * @return a layout with a special navigation bar and at most 2 buttons
448 */
449 extern Evas_Object *setting_create_layout_navi_bar_genlist(Evas_Object * win_layout,
450                                                            Evas_Object * win_obj,
451                                                            char *title_str,
452                                                            char *lbutton_str,
453                                                            char *rbutton_str,
454                                                            setting_call_back_func lbutton_click_cb,
455                                                            setting_call_back_func rbutton_click_cb,
456                                                            void *cb_data,
457                                                            Evas_Object ** genlist,
458                                                            Evas_Object ** navi_bar);
459
460 /**
461 * The general API to push any evas object(@param[in][eo_view]) to the specialized navi_bar,
462 *   which contents at most 3 buttons
463 */
464 extern void setting_push_layout_navi_bar(char *title_str,
465                                          char *lbutton_str, char *rbutton_str,
466                                          char *mbutton_str,
467                                          setting_call_back_func lbutton_click_cb,
468                                          setting_call_back_func rbutton_click_cb,
469                                          setting_call_back_func mbutton_click_cb,
470                                          void *cb_data,
471                                          Evas_Object *eo_view,
472                                          Evas_Object *navi_bar,
473                                          Evas_Object **titleobj);
474
475 /**
476 * The API to push a scroller object(@param[in][scroller]) to the specialized navi_bar,
477 *   which contents at most 2 buttons
478 */
479 extern void setting_push_layout_navi_bar_scroller(Evas_Object *win_main,
480                                                   char *title_str,
481                                                   char *lbutton_str,
482                                                   char *rbutton_str,
483                                                   setting_call_back_func lbutton_click_cb,
484                                                   setting_call_back_func rbutton_click_cb,
485                                                   void *cb_data,
486                                                   Evas_Object **scroller,
487                                                   Evas_Object *navi_bar);
488
489 /**
490 * The API to push a genlist object(@param[in][genlist]) to the specialized navi_bar,
491 *   which contents at most 2 buttons
492 */
493 extern void
494 setting_push_layout_navi_bar_genlist(Evas_Object *win_layout,
495                                      Evas_Object *win_obj,
496                                          char *title_str,
497                                      char *lbutton_str,
498                                          char *rbutton_str,
499                                      setting_call_back_func lbutton_click_cb,
500                                      setting_call_back_func rbutton_click_cb,
501                                      void *cb_data,
502                                          Evas_Object **genlist,
503                                      Evas_Object *navi_bar);
504
505 /**
506 * Create a text box, which cannot be edited
507 * @return a text box, which cannot be edited
508 */
509 extern Evas_Object *setting_create_textbox(Evas_Object *parent,
510                                            const char *content);
511
512 /****done_list****/
513
514 /**
515 * hide selectinfo popup
516 */
517 extern void sel_info_popup_hide_cb(void *data, Evas *e, Evas_Object *obj,
518                                    void *event_info);
519
520 /**
521 * show selectinfo popup
522 */
523 extern void sel_info_popup_show_cb(void *data, Evas *e, Evas_Object *obj,
524                                    void *event_info);
525
526 /**
527 * Create selectinfo popup
528 */
529 extern void setting_create_sel_info_popup(Evas_Object *parent,
530                                           Evas_Object **selInfoPop_layout,
531                                           Evas_Object **selInfoPop);
532
533 /**
534 * Check if some item is selected in done-list
535 *
536 * @param[in] list_data
537 * @return
538 */
539 extern bool setting_done_list_is_some_item_selected(Setting_Done_List_Data *
540                                                     list_data);
541
542 /**
543 * Do process when clicking the check object in the done-list item
544 */
545 extern void setting_done_list_Gendial_chk_btn_cb(void *data, Evas_Object *obj,
546                                                  void *event_info);
547
548 /**
549 * The API to create done-list.
550 * @param[in] list_data
551 * @return a done-list
552 */
553 extern Evas_Object *setting_create_done_list(Setting_Done_List_Data *
554                                              list_data);
555
556 /**
557 * Get searchbar text and register redraw_cb by idler.
558 *
559 * @param[in] data
560 * @param[in] search_bar
561 * @param[in] search_text
562 * @param[in] search_idler
563 * @param[in] redraw_cb
564 */
565 extern int setting_searchbar_redraw(void *data,
566                            Evas_Object *search_bar,
567                            char *search_text,
568                            Ecore_Idler **search_idler,
569                            Ecore_Task_Cb redraw_cb);
570
571 /**
572 * Create searchar, register change cb and cancel cb.
573 *
574 * @param[in] data
575 * @param[in] parent
576 * @param[in] change_cb
577 * @param[in] cancel_cb
578 */
579 extern Evas_Object *setting_create_searchbar(void *data, Evas_Object *parent,
580                                          Evas_Smart_Cb change_cb,
581                                          Evas_Smart_Cb cancel_cb);
582
583 /**
584 * Make it no effect when clicking on a evas object, such as, layout, genlist
585 *
586 */
587 extern void setting_disable_evas_object(Evas_Object *obj);
588
589 /**
590 * Make it normal acting when clicking on a evas object, such as, layout, genlist
591 *
592 */
593 extern void setting_enable_evas_object(Evas_Object *obj);
594
595 /**
596 * To disable a specialized genlist item
597 *
598 */
599 extern void setting_disable_genlist_item(Elm_Object_Item *item);
600
601 /**
602 * To enable a specialized genlist item
603 *
604 */
605 extern void setting_enable_genlist_item(Elm_Object_Item *item);
606
607 /**
608 * To resize a evas object, such as, icon, button..
609 *
610 */
611 extern void setting_resize_object(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
612
613 /**
614 * To create a bg object
615 *
616 */
617 extern Evas_Object *setting_create_bg(Evas_Object *parent,Evas_Object *win, const char *bg_style);
618
619 /**
620 * To make an object which is operated by setting_dim_evas_object normal color
621 *
622 * @param[in] obj
623 * @param[in] b_transparenct:
624 *       1:the appearence of obj is made up of transparent backgroud color.
625 *       0:the appearence of obj is made up of non transparent color.
626 */
627 extern void setting_undo_dim_evas_object(Evas_Object *obj, bool b_transparenct);
628
629 /**
630 * To make an object dim color
631 *
632 * @param[in] obj
633 * @param[in] b_transparenct:
634 *       1:the appearence of obj is made up of transparent backgroud color.
635 *       0:the appearence of obj is made up of non transparent color.
636 */
637 extern void setting_dim_evas_object(Evas_Object *obj, bool b_transparenct);
638
639 /**
640 * To make an object looks clickable: if pressed, it is dim color;if unpressed, it is normal color;
641 *
642 * @param[in] obj
643 */
644 extern void setting_make_evas_object_clickable(Evas_Object *obj);
645 /**
646 * To create an icon which looks clickable(if pressed, it is dim color;if unpressed, it is normal color)
647 *
648 * @param[in] parent
649 * @param[in] img_path
650 * @param[in] up_cb
651 * @param[in] down_cb
652 * @param[in] move_cb
653 * @param[in] data
654 */
655 extern Evas_Object *setting_create_icon(Evas_Object *parent, const char *img_path,
656                                  Evas_Object_Event_Cb up_cb,
657                                  Evas_Object_Event_Cb down_cb,
658                                  Evas_Object_Event_Cb move_cb,
659                                  void *data);
660
661 /**
662 * To create a button which only has a image and looks clickable
663 * (if pressed, it is dim color;if unpressed, it is normal color)
664 * @param[in] parent
665 * @param[in] img_path
666 * @param[in] up_cb
667 * @param[in] down_cb
668 * @param[in] move_cb
669 * @param[in] data
670 */
671 extern Evas_Object *setting_create_image_button(Evas_Object *parent,
672                                         const char *btn_img,
673                                         setting_call_back_func clicked_cb,
674                                         setting_call_back_func unpressed_cb,
675                                         void *data);
676
677 /*
678 * set font_size, color or align(right, left, middle),if need, you
679 * can add </font_siz>, </color> or </align> to controll a segment words; or else
680 * the text will take the same effect until the end of text.
681 */
682 extern char *setting_customize_text(const char *input_str, const int font_size,
683                              const char *color, const char *align);
684
685 #endif                          /* __SETTING_COMMON_DRAW_WIDGET_H__ */