View: Draw top area of action menu view 90/45790/1 accepted/tizen/tv/20150813.055013 submit/tizen/20150813.020827
authorHyojung Jo <hj903.jo@samsung.com>
Tue, 11 Aug 2015 09:17:25 +0000 (18:17 +0900)
committerHyojung Jo <hj903.jo@samsung.com>
Tue, 11 Aug 2015 09:17:25 +0000 (18:17 +0900)
Change-Id: I73b01e55337679a9973501bd8968489e0eb35aa5
Signed-off-by: Hyojung Jo <hj903.jo@samsung.com>
include/define.h
res/images/btn_menu_del_dis.png [new file with mode: 0644]
res/images/btn_menu_favorite_nor.png [new file with mode: 0644]
res/images/btn_menu_lock_dis.png [new file with mode: 0644]
res/view/action_menu.edc
res/widget/button.edc
src/view/view_action_menu.c
src/view/view_base.c

index c9779e7547a3d1afd2dc7a0024f04cb92afd0a9e..99bb79fb46d7c4c415a06ede2d81c60d0335fd8c 100644 (file)
@@ -44,6 +44,7 @@
 #define PART_THUMB_TEXT "part.thumb.text"
 #define PART_THUMB_TEXT_BROWSER "part.thumb.text.browser"
 #define PART_INSIDE_LINE "part.inside.line"
+#define PART_TOP_BTN "part.top.button"
 
 /* Style */
 #define STYLE_MENU_BTN "style.menu.button"
@@ -51,6 +52,8 @@
 #define STYLE_OPTION_BTN "style.option.button"
 #define STYLE_SORT_CTXPOPUP "style.sort.ctxpopup"
 #define STYLE_APP "style.app"
+#define STYLE_LIVETV_BTN "style.livetv.button"
+#define STYLE_ACTION_MENU_BTN "style.action.menu.button"
 
 /* Signal */
 #define SIG_FOCUSED "focused"
 #define STR_BROWSER_ID "org.tizen.browser"
 #define STR_BROWSER "Web Browser"
 #define STR_NOT_SUPPORTED "Not Supported"
+#define STR_LIVETV "Live TV"
+#define STR_FAVORITE "Favorite"
+#define STR_LOCK "Lock"
+#define STR_UNINSTALL "Uninstall"
 
 /* Count */
 #define MENU_COUNT 2
 #define SORT_COUNT 3
+#define ACTION_MENU_COUNT 3
 
 /* Size */
 #define SIZE_GRID_WIDTH (212 + 26)
 #define ARROW_ICON_UP_FOC_PNG "btn_option_arrow_foc_up.png"
 #define ARROW_ICON_SEL_PNG "btn_option_arrow_sel.png"
 #define ARROW_ICON_DISABLE_PNG "btn_option_arrow_dis.png"
+#define ACTION_FAV_NOR_PNG IMGDIR"/btn_menu_favorite_nor.png"
+#define ACTION_LOCK_DIS_PNG IMGDIR"/btn_menu_lock_dis.png"
+#define ACTION_UNINSTALL_DIS_PNG IMGDIR"/btn_menu_del_dis.png"
 
 /* Transition */
 #define TRANSITION_FOCUS DECELERATE 0.20
diff --git a/res/images/btn_menu_del_dis.png b/res/images/btn_menu_del_dis.png
new file mode 100644 (file)
index 0000000..88254af
Binary files /dev/null and b/res/images/btn_menu_del_dis.png differ
diff --git a/res/images/btn_menu_favorite_nor.png b/res/images/btn_menu_favorite_nor.png
new file mode 100644 (file)
index 0000000..a472976
Binary files /dev/null and b/res/images/btn_menu_favorite_nor.png differ
diff --git a/res/images/btn_menu_lock_dis.png b/res/images/btn_menu_lock_dis.png
new file mode 100644 (file)
index 0000000..d5827a0
Binary files /dev/null and b/res/images/btn_menu_lock_dis.png differ
index 3c72393553bd71351a9c8656ece7389596c15f2b..0b700f5741aca4b23c457a964fa69410019b277a 100644 (file)
  * limitations under the License.
  */
 
+group {
+       name, GRP_VIEW_ACTION_MENU;
+       parts {
+               part {
+                       name, "bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 255 255 255 255;
+                               rel1.relative, 1.0 0.0;
+                               min, 500 0;
+                               align, 1.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "view.divider";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 0 0 0 25;
+                               rel1.to, "bg";
+                               rel2 {
+                                       to, "bg";
+                                       relative, 0.0 1.0;
+                               }
+                               min, 1 0;
+                               align, 1.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "padding.livetv.btn";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "bg";
+                               rel2 {
+                                       to, "bg";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 0 118;
+                               align, 0.5 0.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, PART_TOP_BTN;
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "padding.livetv.btn";
+                                       relative, 0.5 0.5;
+                               }
+                               rel2 {
+                                       to, "padding.livetv.btn";
+                                       relative, 0.5 0.5;
+                               }
+                               min, 327 64;
+                               align, 0.5 0.5;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
+                       name, "padding.menu.divider.up";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 224 224 224 255;
+                               rel1 {
+                                       to, "padding.livetv.btn";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2.to, "padding.livetv.btn";
+                               min, 0 1;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, PART_MENU;
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "padding.menu.divider.up";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "padding.menu.divider.up";
+                                       relative, 0.0 1.0;
+                               }
+                               min, 375 124;
+                               align, 0.0 0.0;
+                               fixed, 1 1;
+                       }
+               }
+
+               part {
+                       name, "padding.menu.divider.down";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 224 224 224 255;
+                               rel1 {
+                                       to, PART_MENU;
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, PART_MENU;
+                                       relative, 0.0 1.0;
+                               }
+                               min, 500 1;
+                               align, 0.0 0.0;
+                               fixed, 1 1;
+                       }
+               }
+       }
+}
index f1f75704254876716617b0a129f56e7ce051b6b7..261af9ec65cdb592cd113124bd95ed8724b860f8 100644 (file)
@@ -310,7 +310,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.up";
+                       name, "part.part.inside.line.up";
                        type, RECT;
                        scale, 1;
                        description {
@@ -339,7 +339,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.left";
+                       name, "part.part.inside.line.left";
                        type, RECT;
                        scale, 1;
                        description {
@@ -368,7 +368,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.down";
+                       name, "part.part.inside.line.down";
                        type, RECT;
                        scale, 1;
                        description {
@@ -398,7 +398,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.right";
+                       name, "part.part.inside.line.right";
                        type, RECT;
                        scale, 1;
                        description {
@@ -554,10 +554,10 @@ group {
                                        set_state(PART:"part.bg", "selected", 0.0);
                                        set_state(PART:"elm.text", "selected", 0.0);
                                        set_state(PART:"part.arrow", "selected", 0.0);
-                                       set_state(PART:"part.inside.line.up", "selected", 0.0);
-                                       set_state(PART:"part.inside.line.down", "selected", 0.0);
-                                       set_state(PART:"part.inside.line.left", "selected", 0.0);
-                                       set_state(PART:"part.inside.line.right", "selected", 0.0);
+                                       set_state(PART:"part.part.inside.line.up", "selected", 0.0);
+                                       set_state(PART:"part.part.inside.line.down", "selected", 0.0);
+                                       set_state(PART:"part.part.inside.line.left", "selected", 0.0);
+                                       set_state(PART:"part.part.inside.line.right", "selected", 0.0);
                                } else {
                                        run_program(PROGRAM:"unfocused,anim");
                                }
@@ -570,10 +570,10 @@ group {
                        target, "part.bg";
                        target, "elm.text";
                        target, "part.arrow";
-                       target, "part.inside.line.up";
-                       target, "part.inside.line.down";
-                       target, "part.inside.line.left";
-                       target, "part.inside.line.right";
+                       target, "part.part.inside.line.up";
+                       target, "part.part.inside.line.down";
+                       target, "part.part.inside.line.left";
+                       target, "part.part.inside.line.right";
                        transition, TRANSITION_FOCUS;
                }
 
@@ -583,10 +583,10 @@ group {
                        target, "part.bg";
                        target, "elm.text";
                        target, "part.arrow";
-                       target, "part.inside.line.up";
-                       target, "part.inside.line.down";
-                       target, "part.inside.line.left";
-                       target, "part.inside.line.right";
+                       target, "part.part.inside.line.up";
+                       target, "part.part.inside.line.down";
+                       target, "part.part.inside.line.left";
+                       target, "part.part.inside.line.right";
                        transition, TRANSITION_FOCUS;
                }
 
@@ -599,10 +599,10 @@ group {
                                set_state(PART:"part.bg", "selected", 0.0);
                                set_state(PART:"elm.text", "selected", 0.0);
                                set_state(PART:"part.arrow", "selected", 0.0);
-                               set_state(PART:"part.inside.line.up", "selected", 0.0);
-                               set_state(PART:"part.inside.line.down", "selected", 0.0);
-                               set_state(PART:"part.inside.line.left", "selected", 0.0);
-                               set_state(PART:"part.inside.line.right", "selected", 0.0);
+                               set_state(PART:"part.part.inside.line.up", "selected", 0.0);
+                               set_state(PART:"part.part.inside.line.down", "selected", 0.0);
+                               set_state(PART:"part.part.inside.line.left", "selected", 0.0);
+                               set_state(PART:"part.part.inside.line.right", "selected", 0.0);
                        }
                }
 
@@ -613,10 +613,10 @@ group {
                        script {
                                set_state(PART:"elm.text", "disable", 0.0);
                                set_state(PART:"part.arrow", "disable", 0.0);
-                               set_state(PART:"part.inside.line.up", "disable", 0.0);
-                               set_state(PART:"part.inside.line.down", "disable", 0.0);
-                               set_state(PART:"part.inside.line.left", "disable", 0.0);
-                               set_state(PART:"part.inside.line.right", "disable", 0.0);
+                               set_state(PART:"part.part.inside.line.up", "disable", 0.0);
+                               set_state(PART:"part.part.inside.line.down", "disable", 0.0);
+                               set_state(PART:"part.part.inside.line.left", "disable", 0.0);
+                               set_state(PART:"part.part.inside.line.right", "disable", 0.0);
                        }
                }
        }
@@ -646,7 +646,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.up";
+                       name, "part.part.inside.line.up";
                        type, RECT;
                        scale, 1;
                        description {
@@ -664,7 +664,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.left";
+                       name, "part.part.inside.line.left";
                        type, RECT;
                        scale, 1;
                        description {
@@ -682,7 +682,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.down";
+                       name, "part.part.inside.line.down";
                        type, RECT;
                        scale, 1;
                        description {
@@ -700,7 +700,7 @@ group {
                }
 
                part {
-                       name, "part.inside.line.right";
+                       name, "part.part.inside.line.right";
                        type, RECT;
                        scale, 1;
                        description {
@@ -766,3 +766,300 @@ group {
                }
        }
 }
+
+group {
+       name, "elm/button/base/style.livetv.button";
+       data.item, "focus_highlight" "on";
+       parts {
+               part {
+                       name, "part.bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 0 64;
+                       }
+               }
+
+               part {
+                       name, "padding.text.left";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 20 0;
+                               rel1.to, "part.bg";
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               align, 0.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "padding.text.right";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 20 0;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               rel2.to, "part.bg";
+                               align, 1.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "elm.text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 87 87 87 255;
+                               rel1 {
+                                       to, "padding.text.left";
+                                       relative, 1.0 0.0;
+                               }
+                               rel2 {
+                                       to, "padding.text.right";
+                                       relative, 0.0 1.0;
+                               }
+                               text {
+                                       font, FONT_TIZENSANS_LIGHT;
+                                       size, 28;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+
+               part {
+                       name, "part.inside.line.up";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 194 194 194 255;
+                               rel1.to, "part.bg";
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 0 1;
+                               align, 0.5 0.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, "part.inside.line.left";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 194 194 194 255;
+                               rel1 {
+                                       to, "part.inside.line.up";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               min, 1 0;
+                               align, 0.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "part.inside.line.down";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 194 194 194 255;
+                               rel1 {
+                                       to, "part.inside.line.left";
+                                       relative, 1.0 1.0;
+                               }
+                               rel2.to, "part.bg";
+                               min, 0 1;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, "part.inside.line.right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 194 194 194 255;
+                               rel1 {
+                                       to, "part.inside.line.up";
+                                       relative, 1.0 1.0;
+                               }
+                               rel2 {
+                                       to, "part.inside.line.down";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 1 0;
+                               align, 1.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+       }
+}
+
+group {
+       name, "elm/button/base/style.action.menu.button";
+       data.item, "focus_highlight" "on";
+       parts {
+               part {
+                       name, "part.bg";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               min, 125 124;
+                       }
+               }
+
+               part {
+                       name, "part.divider.right";
+                       type, RECT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 224 224 224 255;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               rel2.to, "part.bg";
+                               min, 1 0;
+                               align, 1.0 0.5;
+                               fixed, 1 0;
+                       }
+               }
+
+               part {
+                       name, "padding.icon1";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1.to, "part.bg";
+                               rel2 {
+                                       to, "part.bg";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 0 14;
+                               align, 0.5 0.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, "padding.icon2";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2.to, "part.bg";
+                               min, 0 50;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, "part.icon.bg";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "padding.icon1";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2 {
+                                       to, "padding.icon2";
+                                       relative, 1.0 0.0;
+                               }
+                               align, 0.5 0.5;
+                       }
+               }
+
+               part {
+                       name, "elm.swallow.content";
+                       type, SWALLOW;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "part.icon.bg";
+                                       relative, 0.5 0.5;
+                               }
+                               rel2 {
+                                       to, "part.icon.bg";
+                                       relative, 0.5 0.5;
+                               }
+                               align, 0.5 0.5;
+                               fixed, 1 1;
+                               min, 60 60;
+                       }
+               }
+
+               part {
+                       name, "padding.text";
+                       type, SPACER;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               rel1 {
+                                       to, "part.bg";
+                                       relative, 0.0 1.0;
+                               }
+                               rel2.to, "part.bg";
+                               min, 0 24;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                       }
+               }
+
+               part {
+                       name, "elm.text";
+                       type, TEXT;
+                       scale, 1;
+                       description {
+                               state, "default" 0.0;
+                               color, 104 104 104 255;
+                               rel1.to, "padding.text";
+                               rel2 {
+                                       to, "padding.text";
+                                       relative, 1.0 0.0;
+                               }
+                               min, 0 20;
+                               align, 0.5 1.0;
+                               fixed, 0 1;
+                               text {
+                                       font, FONT_TIZENSANS_LIGHT;
+                                       size, 20;
+                                       align, 0.5 0.5;
+                               }
+                       }
+               }
+       }
+}
index 4400cf37824b0ef80f05eb4cfa527693bfe842b9..04360ca5f9bd28b8acedf248babf78359d306de6 100644 (file)
 struct _priv {
        Evas_Object *win;
        Evas_Object *base;
+       Evas_Object *menu_btn[ACTION_MENU_COUNT];
 };
 
+const char *str_action[] = {
+       STR_FAVORITE,
+       STR_LOCK,
+       STR_UNINSTALL,
+       NULL
+};
+
+/* 'Lock' and 'Uninstall' is not supported now, so the disable image is used. */
+const char *str_action_png[] = {
+       ACTION_FAV_NOR_PNG,
+       ACTION_LOCK_DIS_PNG,
+       ACTION_UNINSTALL_DIS_PNG,
+       NULL
+};
+
+static bool _draw_top_area(struct _priv *priv)
+{
+       Evas_Object *btn;
+
+       if (!priv || !priv->base) {
+               _ERR("Invalid argument.");
+               return false;
+       }
+
+       btn = utils_add_button(priv->base,
+                       PART_TOP_BTN, STR_LIVETV, STYLE_LIVETV_BTN);
+       if (!btn) {
+               _ERR("Add button failed.");
+               return false;
+       }
+
+       return true;
+}
+
+static bool _draw_menu_area(struct _priv *priv)
+{
+       Evas_Object *box, *btn, *img;
+       int i;
+
+       if (!priv || !priv->base) {
+               _ERR("Invalid argument.");
+               return false;
+       }
+
+       box = utils_add_box(priv->base, PART_MENU, EINA_TRUE, 0, 0);
+       if (!box) {
+               _ERR("Add box failed.");
+               return false;
+       }
+
+       for (i = 0; i < ACTION_MENU_COUNT; i++) {
+               btn = utils_add_button(priv->base, NULL, str_action[i],
+                               STYLE_ACTION_MENU_BTN);
+               if (!btn) {
+                       _ERR("Add button failed.");
+                       evas_object_del(box);
+                       return false;
+               }
+
+               img = elm_image_add(btn);
+               if (!img) {
+                       _ERR("elm_image_add failed.");
+                       evas_object_del(box);
+                       return false;
+               }
+
+               elm_image_file_set(img, str_action_png[i], NULL);
+               evas_object_show(img);
+
+               elm_object_part_content_set(btn, NULL, img);
+
+               elm_box_pack_end(box, btn);
+
+               priv->menu_btn[i] = btn;
+       }
+
+       elm_object_focus_next_object_set(priv->menu_btn[0],
+                       priv->menu_btn[ACTION_MENU_COUNT - 1], ELM_FOCUS_LEFT);
+       elm_object_focus_next_object_set(priv->menu_btn[ACTION_MENU_COUNT - 1],
+                       priv->menu_btn[0], ELM_FOCUS_RIGHT);
+
+       return true;
+}
+
+static bool _draw_bottom_area(struct _priv *priv)
+{
+       if (!priv || !priv->base) {
+               _ERR("Invalid argument.");
+               return false;
+       }
+
+       /* It will be implemented later */
+
+       return true;
+}
+
+static void _draw_view_content(struct _priv *priv)
+{
+       if (!priv) {
+               _ERR("Invalid argument.");
+               return;
+       }
+
+       if (!_draw_top_area(priv)) {
+               _ERR("Draw top area failed.");
+               return;
+       }
+
+       if (!_draw_menu_area(priv)) {
+               _ERR("Draw menu area failed.");
+               return;
+       }
+
+       if (!_draw_bottom_area(priv))
+               _ERR("Draw bottom area failed.");
+}
+
 static Evas_Object *_create(Evas_Object *win, void *data)
 {
        struct _priv *priv;
@@ -49,8 +167,6 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                return NULL;
        }
 
-       /* It should be implemented later. */
-
        priv->win = win;
        priv->base = base;
 
@@ -61,6 +177,8 @@ static Evas_Object *_create(Evas_Object *win, void *data)
                return NULL;
        }
 
+       _draw_view_content(priv);
+
        return base;
 }
 
index 70d19a736cef40c17ebc88a5513185c38604aff2..6cc8342e4286d73cdd1340445ed03b76d2201eec 100644 (file)
@@ -607,6 +607,9 @@ static void _grid_key_down_cb(int id, void *data, Evas *e, Evas_Object *obj,
        if (!strcmp(ev->keyname, KEY_BACK)
                        || !strcmp(ev->keyname, KEY_BACK_REMOTE))
                elm_object_focus_set(priv->focused_menu, EINA_TRUE);
+       else if (!strcmp(ev->keyname, KEY_MENU)
+                       || !strcmp(ev->keyname, KEY_MENU_REMOTE))
+               viewmgr_show_view(VIEW_ACTION_MENU);
 }
 
 static input_handler _menu_input_handler = {
@@ -775,7 +778,7 @@ static Evas_Object *_add_grid(struct _priv *priv)
        return grid;
 }
 
-void _draw_view_content(struct _priv *priv)
+static void _draw_view_content(struct _priv *priv)
 {
        if (!priv) {
                _ERR("Invalid argument.");