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