add viewer view 09/41409/2
authorMinkyu Kang <mk7.kang@samsung.com>
Mon, 15 Jun 2015 06:55:41 +0000 (15:55 +0900)
committerMinkyu Kang <mk7.kang@samsung.com>
Mon, 15 Jun 2015 08:19:23 +0000 (17:19 +0900)
Change-Id: I9ce1ea071af506ea608b420048480dfc2ed2ce73
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
13 files changed:
CMakeLists.txt
include/define.h [new file with mode: 0644]
include/layout.h [moved from include/layout/menu_layout.h with 84% similarity]
include/layout/menu.h [moved from include/common/define.h with 70% similarity]
include/view.h [moved from include/view/movie_view.h with 79% similarity]
include/view/movie.h [new file with mode: 0644]
include/view/viewer.h [new file with mode: 0644]
res/edc/mediahub.edc
res/edc/view/viewer.edc [new file with mode: 0644]
src/layout/menu_layout.c
src/main.c
src/view/movie_view.c
src/view/viewer.c [new file with mode: 0644]

index a0040fb..5163127 100644 (file)
@@ -49,6 +49,7 @@ ENDIF(NOT DEFINED PACKAGEDIR)
 SET(SRCS
 src/main.c
 src/view/movie_view.c
+src/view/viewer.c
 src/layout/menu_layout.c
 )
 
@@ -63,9 +64,7 @@ ADD_DEFINITIONS("-DLOCALEDIR=\"${LOCALEDIR}\"")
 ADD_DEFINITIONS("-DDOMAIN_NAME=\"${PROJECT_NAME}\"")
 ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGEDIR}\"")
 
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/common)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/view)
-INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include/layout)
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include)
 
 ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 
diff --git a/include/define.h b/include/define.h
new file mode 100644 (file)
index 0000000..5faf611
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __AIR_MEDIAHUB_DEFINE_H__
+#define __AIR_MEDIAHUB_DEFINE_H__
+
+/* views */
+#include "view/movie.h"
+#include "view/viewer.h"
+
+/* layouts */
+#include "layout/menu.h"
+
+/* defines */
+#define STYLE_INVISIBLE "invisible"
+
+#define FONT_REGULAR "TizenSans"
+#define FONT_LIGHT "TizenSans:style=Light"
+#define FONT_BOLD "TizenSans:style=Bold"
+
+#define COLOR_TEXT_TITLE 51 51 51 255
+#define COLOR_TEXT_MENU 104 104 104 255
+#define COLOR_TEXT_INDEX 77 77 77 255
+#define COLOR_TEXT_NORMAL 87 87 87 255
+#define COLOR_TEXT_FOCUS 255 255 255 255
+#define COLOR_TEXT_SELECTED 64 136 211 255
+#define COLOR_TEXT_DISABLED 87 87 87 128
+
+#endif /* __AIR_MEDIAHUB_DEFINE_H__ */
similarity index 84%
rename from include/layout/menu_layout.h
rename to include/layout.h
index edeec12..5b3f2b5 100644 (file)
  * limitations under the License.
  */
 
-#ifndef __AIR_MEDIAHUB_MENU_LAYOUT_H__
-#define __AIR_MEDIAHUB_MENU_LAYOUT_H__
+#ifndef __AIR_MEDIAHUB_LAYOUT_H__
+#define __AIR_MEDIAHUB_LAYOUT_H__
 
+/* menu */
 layout_class *layout_menu_get_lclass(void);
 
-#endif /* __AIR_MEDIAHUB_MENU_LAYOUT_H__ */
+#endif /* __AIR_MEDIAHUB_LAYOUT_H__ */
similarity index 70%
rename from include/common/define.h
rename to include/layout/menu.h
index be85a9d..2232c2e 100644 (file)
  * limitations under the License.
  */
 
-#ifndef __AIR_MEDIAHUB_DEFINE_H__
-#define __AIR_MEDIAHUB_DEFINE_H__
+#ifndef __AIR_MEDIAHUB_LAYOUT_MENU_H__
+#define __AIR_MEDIAHUB_LAYOUT_MENU_H__
 
-#define VIEW_MOVIE "VIEW_MOVIE"
 #define LAYOUT_MENU "LAYOUT_MENU"
 
-#define GRP_MOVIE_VIEW "group.movie_view"
 #define GRP_MENU_LAYOUT "group.menu_layout"
 
 #define PART_MENU_LAYOUT "part.menu_layout"
-#define PART_PLAY_INFO_LAYOUT "part.playinfo_layout"
-#define PART_CONTENT_LAYOUT "part.content_layout"
 
-#define STYLE_INVISIBLE "invisible"
-
-#endif /* __AIR_MEDIAHUB_DEFINE_H__ */
+#endif /* __AIR_MEDIAHUB_LAYOUT_MENU_H__ */
similarity index 79%
rename from include/view/movie_view.h
rename to include/view.h
index 96e6c79..5428cfe 100644 (file)
  * limitations under the License.
  */
 
-#ifndef __AIR_MEDIAHUB_MOVIE_VIEW_H__
-#define __AIR_MEDIAHUB_MOVIE_VIEW_H__
+#ifndef __AIR_MEDIAHUB_VIEW_H__
+#define __AIR_MEDIAHUB_VIEW_H__
 
+/* movie */
 view_class *view_movie_get_vclass(void);
 
-#endif /* __AIR_MEDIAHUB_MOVIE_VIEW_H__ */
+/* viewer */
+view_class *view_viewer_get_vclass(void);
+
+#endif /* __AIR_MEDIAHUB_VIEW_H__ */
diff --git a/include/view/movie.h b/include/view/movie.h
new file mode 100644 (file)
index 0000000..323843b
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __AIR_MEDIAHUB_VIEW_MOVIE_H__
+#define __AIR_MEDIAHUB_VIEW_MOVIE_H__
+
+#define VIEW_MOVIE "VIEW_MOVIE"
+
+#define GRP_MOVIE_VIEW "group.movie_view"
+
+#endif /* __AIR_MEDIAHUB_VIEW_MOVIE_H__ */
diff --git a/include/view/viewer.h b/include/view/viewer.h
new file mode 100644 (file)
index 0000000..b1a46e9
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __AIR_MEDIAHUB_VIEW_VIEWER_H__
+#define __AIR_MEDIAHUB_VIEW_VIEWER_H__
+
+#define VIEW_VIEWER "VIEW_VIEWER"
+
+#define GRP_VIEWER_VIEW "group.viewer_view"
+
+#define PART_VIEWER_CONTENT "part.viewer_content"
+#define PART_VIEWER_TITLE "part.viewer_title"
+#define PART_VIEWER_DATE "part.viewer_date"
+#define PART_VIEWER_PAGE "part.viewer_page"
+#define PART_VIEWER_PROGRESS "part.viewer_progress"
+#define PART_VIEWER_TOTAL "part.viewer_total"
+
+#endif /* __AIR_MEDIAHUB_VIEW_VIEWER_H__ */
index e025f0c..a80e853 100644 (file)
  * limitations under the License.
  */
 
-#include "../../include/common/define.h"
+#include "../../include/define.h"
 
 collections {
        #include "view/movie_view.edc"
+       #include "view/viewer.edc"
        #include "layout/menu_layout.edc"
 }
diff --git a/res/edc/view/viewer.edc b/res/edc/view/viewer.edc
new file mode 100644 (file)
index 0000000..1a2f0b2
--- /dev/null
@@ -0,0 +1,291 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+group {
+       name: GRP_VIEWER_VIEW;
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 0 0 0 255;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_CONTENT;
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1.to: "bg";
+                               rel2.to: "bg";
+                       }
+               }
+
+               /* TOP */
+               part {
+                       name: "toparea";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 104;
+                               rel2 {
+                                       relative: 1.0 0.0;
+                               }
+                               align: 0.5 0.0;
+                               fixed: 0 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.5 1.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "toparea_bg";
+                       type: RECT;
+                       scale: 1;
+                       clip_to: "toparea";
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 255;
+                               rel1.to: "toparea";
+                               rel2.to: "toparea";
+                       }
+               }
+               part {
+                       name: "padding_title";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 35 0;
+                               rel1 {
+                                       to: "toparea";
+                               }
+                               rel2 {
+                                       to: "toparea";
+                                       relative: 0.0 1.0;
+                               }
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_TITLE;
+                       type: TEXT;
+                       clip_to: "toparea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1600 0;
+                               rel1 {
+                                       to: "padding_title";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "padding_title";
+                               }
+                               text {
+                                       font: FONT_LIGHT;
+                                       size: 42;
+                                       align: 0.0 0.5;
+                               }
+                               color: COLOR_TEXT_TITLE;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_DATE;
+                       type: TEXT;
+                       clip_to: "toparea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 470 0;
+                               rel1 {
+                                       to: "padding_title";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "padding_title";
+                               }
+                               text {
+                                       font: FONT_REGULAR;
+                                       size: 46;
+                                       align: 0.0 0.5;
+                               }
+                               color: COLOR_TEXT_TITLE;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_PAGE;
+                       type: TEXT;
+                       clip_to: "toparea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 470 0;
+                               rel1 {
+                                       to: "toparea";
+                                       relative: 0.5 0.5;
+                               }
+                               rel2 {
+                                       to: "toparea";
+                                       relative: 0.5 0.5;
+                               }
+                               text {
+                                       font: FONT_REGULAR;
+                                       size: 46;
+                                       align: 0.5 0.5;
+                               }
+                               color: COLOR_TEXT_TITLE;
+                               fixed: 1 0;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               /* BOTTOM */
+               part {
+                       name: "bottomarea";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 0 143;
+                               rel1 {
+                                       relative: 0.0 1.0;
+                               }
+                               align: 0.5 1.0;
+                               fixed: 0 1;
+                       }
+                       description {
+                               state: "hide" 0.0;
+                               inherit: "default" 0.0;
+                               align: 0.5 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "bottomarea_bg";
+                       type: RECT;
+                       scale: 1;
+                       clip_to: "bottomarea";
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 255;
+                               rel1.to: "bottomarea";
+                               rel2.to: "bottomarea";
+                       }
+               }
+               part {
+                       name: "controls_bg";
+                       type: RECT;
+                       clip_to: "bottomarea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 900 143;
+                               rel1 {
+                                       to: "bottomarea";
+                                       relative: 0.5 0.5;
+                               }
+                               rel2 {
+                                       to: "bottomarea";
+                                       relative: 0.5 0.5;
+                               }
+                               fixed: 1 1;
+                               align: 0.5 0.5;
+                       }
+               }
+
+               part {
+                       name: "padding_time";
+                       type: SPACER;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 35 0;
+                               rel1 {
+                                       to: "bottomarea";
+                               }
+                               rel2 {
+                                       to: "bottomarea";
+                                       relative: 0.0 1.0;
+                               }
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_PROGRESS;
+                       type: TEXT;
+                       clip_to: "bottomarea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 125 0;
+                               rel1 {
+                                       to: "padding_time";
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: "padding_time";
+                               }
+                               text {
+                                       font: FONT_LIGHT;
+                                       size: 31;
+                                       align: 0.0 0.5;
+                               }
+                               color: COLOR_TEXT_SELECTED;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+               part {
+                       name: PART_VIEWER_TOTAL;
+                       type: TEXT;
+                       clip_to: "bottomarea";
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 150 0;
+                               rel1 {
+                                       to: PART_VIEWER_PROGRESS;
+                                       relative: 1.0 0.0;
+                               }
+                               rel2 {
+                                       to: PART_VIEWER_PROGRESS;
+                               }
+                               text {
+                                       font: FONT_LIGHT;
+                                       size: 31;
+                                       align: 0.0 0.5;
+                               }
+                               color: COLOR_TEXT_INDEX;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                       }
+               }
+       }
+}
index 60563a1..a5c2cb1 100644 (file)
@@ -19,7 +19,6 @@
 #include <layoutmgr.h>
 
 #include "define.h"
-#include "menu_layout.h"
 
 struct _priv {
        Evas_Object *base;
index 1e25021..9fd990e 100644 (file)
@@ -20,7 +20,7 @@
 #include <viewmgr.h>
 
 #include "define.h"
-#include "movie_view.h"
+#include "view.h"
 
 #define MEDIAHUB_WIN_TITLE "Media Hub"
 
@@ -74,6 +74,7 @@ static bool _create(void *data)
        }
 
        viewmgr_add_view(view_movie_get_vclass(), NULL);
+       viewmgr_add_view(view_viewer_get_vclass(), NULL);
 
        elm_win_focus_highlight_enabled_set(win, EINA_TRUE);
        elm_win_focus_highlight_style_set(win, STYLE_INVISIBLE);
@@ -95,6 +96,7 @@ static void _terminate(void *data)
        ad = data;
 
        viewmgr_remove_view(VIEW_MOVIE);
+       viewmgr_remove_view(VIEW_VIEWER);
 
        viewmgr_destroy();
 
index 2f8f74f..4e82af6 100644 (file)
@@ -20,8 +20,7 @@
 #include <layoutmgr.h>
 
 #include "define.h"
-#include "movie_view.h"
-#include "menu_layout.h"
+#include "layout.h"
 
 struct _priv {
        Evas_Object *win;
diff --git a/src/view/viewer.c b/src/view/viewer.c
new file mode 100644 (file)
index 0000000..656ae4d
--- /dev/null
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <Elementary.h>
+#include <app_debug.h>
+#include <viewmgr.h>
+#include <layoutmgr.h>
+
+#include "define.h"
+
+struct _priv {
+       Evas_Object *win;
+       Evas_Object *base;
+};
+
+static Evas_Object *_create(Evas_Object *win, void *data)
+{
+       struct _priv *priv;
+       Evas_Object *base;
+
+       if (!win) {
+               _ERR("failed to get win object");
+               return NULL;
+       }
+
+       priv = calloc(1, sizeof(*priv));
+       if (!priv) {
+               _ERR("failed to allocate priv");
+               return NULL;
+       }
+
+       base = elm_layout_add(win);
+       if (!base) {
+               _ERR("failed to create base object");
+               free(priv);
+               return NULL;
+       }
+
+       elm_layout_file_set(base, EDJEFILE, GRP_VIEWER_VIEW);
+
+       evas_object_size_hint_weight_set(base,
+                       EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_win_resize_object_add(win, base);
+
+       priv->win = win;
+       priv->base = base;
+
+       viewmgr_set_view_data(VIEW_VIEWER, priv);
+
+       return base;
+}
+
+static void _show(void *view_data)
+{
+       struct _priv *priv;
+
+       if (!view_data) {
+               _ERR("failed to get view data");
+               return;
+       }
+
+       priv = view_data;
+
+       evas_object_show(priv->base);
+}
+
+static void _hide(void *view_data)
+{
+       struct _priv *priv;
+
+       if (!view_data) {
+               _ERR("failed to get view data");
+               return;
+       }
+
+       priv = view_data;
+
+       evas_object_hide(priv->base);
+}
+
+static void _destroy(void *view_data)
+{
+       struct _priv *priv;
+
+       if (!view_data) {
+               _ERR("failed to get view data");
+               return;
+       }
+
+       priv = view_data;
+
+       evas_object_del(priv->base);
+
+       free(priv);
+}
+
+static view_class _vclass = {
+       .view_id = VIEW_VIEWER,
+       .create = _create,
+       .show = _show,
+       .hide = _hide,
+       .destroy = _destroy,
+};
+
+view_class *view_viewer_get_vclass(void)
+{
+       return &_vclass;
+}