initial upload
authorJisung Ahn <jcastle.ahn@samsung.com>
Tue, 21 Aug 2012 12:33:06 +0000 (21:33 +0900)
committerJisung Ahn <jcastle.ahn@samsung.com>
Tue, 21 Aug 2012 12:48:17 +0000 (21:48 +0900)
Change-Id: Ie9df15e2a3ce6a47e65f48aa0cfb43c2622b74d7

138 files changed:
CMakeLists.txt
NOTICE [changed mode: 0644->0755]
common/CMakeLists.txt
common/NOTICE [deleted file]
common/include/debug.h
common/include/ivug-debug.h
common/include/ivug-mouse-event.h
common/include/statistics.h
common/src/debug.c
common/src/ivug-mouse-event.c
common/src/statistics.c
debian/changelog [deleted file]
debian/compat [deleted file]
debian/control [deleted file]
debian/libug-image-viewer-efl.install.in [deleted file]
debian/libug-image-viewer-efl.postinst [deleted file]
debian/rules [deleted file]
main/CMakeLists.txt
main/NOTICE [deleted file]
main/layout/genlist/genlist_group_index.edc
main/layout/genlist/genlist_macro.edc
main/layout/genlist/genlist_size.edc
main/layout/genlist/genlist_styles.edc
main/layout/genlist/genlist_textblock_styles.edc
main/layout/genlist/ivug-genlist.edc
main/layout/images/T01_btn_cancel.png [deleted file]
main/layout/images/T01_btn_cancel_press.png [deleted file]
main/layout/images/T01_btn_ok.png [deleted file]
main/layout/images/T01_btn_ok_dim.png [deleted file]
main/layout/images/T01_btn_ok_press.png [deleted file]
main/layout/images/gray-theme/00_winset_btn_prev.png [deleted file]
main/layout/images/gray-theme/I01_control_top_bg.png [deleted file]
main/layout/images/gray-theme/T01_Option_header_bt.png [deleted file]
main/layout/images/gray-theme/T01_Option_header_bt_dim.png [deleted file]
main/layout/images/gray-theme/T01_Option_header_bt_press.png [deleted file]
main/layout/images/gray-theme/T01_btn_prev.png [deleted file]
main/layout/images/gray-theme/T01_control_top_arrow.png [deleted file]
main/layout/images/gray-theme/T01_control_top_bg.png [deleted file]
main/layout/images/gray-theme/T01_title_btn.png [deleted file]
main/layout/images/gray-theme/T01_title_btn_press.png [deleted file]
main/layout/images/gray-theme/T01_toolbar_bg.png [deleted file]
main/layout/images/gray-theme/T01_toolbar_press.png [deleted file]
main/layout/images/gray-theme/magnifier.png [deleted file]
main/layout/images/gray-theme/magnifier_line.png [deleted file]
main/layout/images/gray-theme/magnifier_noarrow.png [deleted file]
main/layout/images/gray-theme/magnifier_noarrow_line.png [deleted file]
main/layout/images/gray-theme/reader_handler_down.png [deleted file]
main/layout/images/gray-theme/reader_handler_up.png [deleted file]
main/layout/images/gray-theme/reader_longtap_blue.png [deleted file]
main/layout/ivug-base.edc
main/layout/ivug-button.edc [deleted file]
main/layout/ivug-details.edc
main/layout/ivug-effect.edc
main/layout/ivug-icons.edc
main/layout/ivug-main.edc
main/layout/ivug-naviframe.edc
main/layout/ivug-selectioninfo.edc
main/layout/ivug-setas.edc
main/layout/ivug-slider.edc
main/layout/ivug-toolbar.edc [deleted file]
main/res/images/01_Control icon/T01_controlbar_icon_info.png [deleted file]
main/res/images/T01_Nocontents_broken.png [deleted file]
main/res/po/CMakeLists.txt
main/res/po/POTFILES.in
main/res/po/de_DE.po
main/res/po/el_GR.po
main/res/po/en.po
main/res/po/es_ES.po
main/res/po/fr_FR.po
main/res/po/it_IT.po
main/res/po/ja_JP.po
main/res/po/ko_KR.po
main/res/po/nl_NL.po
main/res/po/pt_PT.po
main/res/po/ru_RU.po
main/res/po/tr_TR.po
main/res/po/zh_CN.po
main/res/po/zh_HK.po
main/res/po/zh_TW.po
main/src/common/ivug-common.h [deleted file]
main/src/common/ivug-config.c [deleted file]
main/src/common/ivug-config.h [deleted file]
main/src/common/ivug-datatypes.h [deleted file]
main/src/common/ivug-define.h [deleted file]
main/src/common/ivug-string.h [deleted file]
main/src/control/ivug-ext-ug.c [deleted file]
main/src/control/ivug-ext-ug.h [deleted file]
main/src/control/ivug-main.c [deleted file]
main/src/control/ivug-main.h [deleted file]
main/src/control/ivug-parameter.c
main/src/control/ivug-parameter.h
main/src/control/ivug-uuid.c [deleted file]
main/src/control/ivug-uuid.h [deleted file]
main/src/data/ivug-data-filter.c [deleted file]
main/src/data/ivug-data-filter.h [deleted file]
main/src/data/ivug-data-list.c [deleted file]
main/src/data/ivug-data-list.h [deleted file]
main/src/data/ivug-data-priv.h [deleted file]
main/src/data/ivug-data-shuffle.c [deleted file]
main/src/data/ivug-data-shuffle.h [deleted file]
main/src/data/ivug-data.c [deleted file]
main/src/data/ivug-data.h [deleted file]
main/src/data/ivug-mediadata.c [deleted file]
main/src/data/ivug-mediadata.h [deleted file]
main/src/effect/include/ivug-anim.h [deleted file]
main/src/effect/include/ivug-effect.h [deleted file]
main/src/effect/ivug-anim.c [deleted file]
main/src/effect/ivug-effect.c [deleted file]
main/src/effect/ivug-slide.c [deleted file]
main/src/effect/template.c [deleted file]
main/src/ug-image-viewer.c
main/src/ug-image-viewer.h
main/src/util/ivug-file-info.c [deleted file]
main/src/util/ivug-file-info.h [deleted file]
main/src/util/ivug-listpopup.c [deleted file]
main/src/util/ivug-listpopup.h [deleted file]
main/src/util/ivug-util.c [deleted file]
main/src/util/ivug-util.h [deleted file]
main/src/util/ivug-widget.c [deleted file]
main/src/util/ivug-widget.h [deleted file]
main/src/view/ivug-detail-info.c [deleted file]
main/src/view/ivug-detail-info.h [deleted file]
main/src/view/ivug-details-view.c
main/src/view/ivug-details-view.h [deleted file]
main/src/view/ivug-main-view.c [deleted file]
main/src/view/ivug-main-view.h [deleted file]
main/src/view/ivug-popup.c [deleted file]
main/src/view/ivug-popup.h [deleted file]
main/src/view/ivug-setas-view.c
main/src/view/ivug-setas-view.h [deleted file]
main/src/view/ivug-slider-item.c [deleted file]
main/src/view/ivug-slider-item.h [deleted file]
main/src/view/ivug-slider-mouse.c [deleted file]
main/src/view/ivug-slider-priv.h [deleted file]
main/src/view/ivug-slider-slideshow.c [deleted file]
main/src/view/ivug-slider.c [deleted file]
main/src/view/ivug-slider.h [deleted file]
packaging/ug-image-viewer-efl.spec

index 8a20194..9b7858c 100755 (executable)
@@ -1,10 +1,52 @@
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
-SET(CMAKE_SOURCE_COMMON_DIR "${CMAKE_SOURCE_DIR}/common")
-SET(CMAKE_SOURCE_WIDGET_DIR "${CMAKE_SOURCE_DIR}/widget")
-SET(CMAKE_SOURCE_MAIN_DIR      "${CMAKE_SOURCE_DIR}/main")
+SET(IVUG_PACKAGE_NAME "ug-image-viewer-efl")
 
-ADD_SUBDIRECTORY(common)
-ADD_SUBDIRECTORY(main)
+# BUILD_TC can have TRUE or FALSE
+SET(BUILD_TC FALSE)
+
+IF("${ARCH}" STREQUAL "arm")
+       ADD_DEFINITIONS("-DTARGET")
+ENDIF("${ARCH}" STREQUAL "arm")
+
+ADD_DEFINITIONS("-DDATADIR=\"${CMAKE_DATA_DIR}\"")
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DPACKAGE=\"${IVUG_PACKAGE_NAME}\"")
+
+SET(IVUG_SOURCE_COMMON_DIR             "${CMAKE_SOURCE_DIR}/common")
+SET(IVUG_SOURCE_WIDGET_DIR             "${CMAKE_SOURCE_DIR}/widget")
+SET(IVUG_SOURCE_MAIN_DIR               "${CMAKE_SOURCE_DIR}/main")
+SET(IVUG_SOURCE_MEDIA_DIR              "${CMAKE_SOURCE_DIR}/medialist")
+SET(IVUG_SOURCE_SLIDESHOW_DIR  "${CMAKE_SOURCE_DIR}/slideshow")
+SET(IVUG_SOURCE_FEATURE_DIR    "${CMAKE_SOURCE_DIR}/feature")
 
+FUNCTION (BUILD_EDJ _in _out _base _dir)
+       ADD_CUSTOM_TARGET(${_out}
+                       COMMAND
+                               edje_cc -id ${_base}/${_dir}
+                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out}
+                       DEPENDS
+                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
+       )
+       ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
+       INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${IVUG_PACKAGE_NAME})
+ENDFUNCTION (BUILD_EDJ)
+
+INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${IVUG_PACKAGE_NAME})
+
+#CONFIGURE_FILE(${IVUG_PACKAGE_NAME}.desktop.in ${CMAKE_BINARY_DIR}/${IVUG_PACKAGE_NAME}.desktop)
+#INSTALL(FILES ${CMAKE_BINARY_DIR}/${IVUG_PACKAGE_NAME}.desktop DESTINATION /opt/share/applications)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/res/manifest/${IVUG_PACKAGE_NAME}.xml DESTINATION /opt/share/packages)
+
+ADD_SUBDIRECTORY(main)
+ADD_SUBDIRECTORY(common)
+ADD_SUBDIRECTORY(medialist)
+ADD_SUBDIRECTORY(widget)
+ADD_SUBDIRECTORY(slideshow)
+ADD_SUBDIRECTORY(feature)
 
+IF (BUILD_TC)
+       ADD_SUBDIRECTORY(TC)
+ENDIF()
diff --git a/NOTICE b/NOTICE
old mode 100644 (file)
new mode 100755 (executable)
index fca8475..f51ffea 100755 (executable)
@@ -8,33 +8,55 @@ SET(SRCS
        src/ivug-mouse-event.c
        src/debug.c
        src/statistics.c
+       src/ivug-uuid.c
+       src/ivug-util.c
+       src/ivug-drm.c
+       src/ivug-file-info.c
+       src/ivug-callback.c
+       src/ivug-config.c
+       src/ivug-message.c
+       src/ivug-exif.c
+       src/ivug-db.c
 )
 
 INCLUDE_DIRECTORIES(
-       ${CMAKE_CURRENT_SOURCE_DIR}
-       ${CMAKE_CURRENT_SOURCE_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include
+       include
+       src
 )
 
+MESSAGE("Checking " ${PROJECT_NAME}\r)
+
 INCLUDE(FindPkgConfig)
-pkg_check_modules(commonpkgs REQUIRED
+pkg_check_modules(${PROJECT_NAME}_pkgs REQUIRED
        elementary
        evas
-       ui-gadget
+       ecore-evas
+       ecore-file
+       efreet-mime
        dlog
+       drm-client
+       libexif
+       vconf
+       capi-system-power
+       capi-media-metadata-extractor
+       capi-content-mime-type
+       capi-content-media-content
 )
 
-FOREACH(flag ${commonpkgs_CFLAGS})
+FOREACH(flag ${${PROJECT_NAME}_pkgs_CFLAGS})
        SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
 ENDFOREACH(flag)
 
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
-SET(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS})
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}")
 
 ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
 SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES SOVERSION ${VERSION} )
-TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${commonpkgs_LDFLAGS} -lm )
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${${PROJECT_NAME}_pkgs_LDFLAGS})
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION lib)
 
diff --git a/common/NOTICE b/common/NOTICE
deleted file mode 100755 (executable)
index ded3804..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
\ No newline at end of file
index 4f6bf64..daa8583 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #ifndef __ELM_MYPHOTOCAM_DEBUG_H__
 #define __ELM_MYPHOTOCAM_DEBUG_H__
@@ -97,6 +96,8 @@ enum
 extern "C" {
 #endif
 
+#undef DISABLE_LOG
+
 // Time analyzer
 #define DEFINE_PERFORM_TIME(aa) long aa = 0; struct timeval tv
 
@@ -122,7 +123,19 @@ typedef struct {
        unsigned long time;
 } debug_msg_type;
 
-void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
+void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
+
+#ifdef DISABLE_LOG
+
+#define __MSG_FATAL(level, szCat,  ...)
+#define __MSG_ERROR(level, szCat,  ...)
+#define __MSG_WARN(level, szCat, ...)
+#define __MSG_HIGH(level, szCat, ...)
+#define __MSG_MED(level, szCat,  ...)
+#define __MSG_LOW(level, szCat,  ...)
+#define __MSG_DEBUG(level, szCat,  ...)
+
+#else          // DISABLE_LOG
 
 /* coverity[+kill] */
 #define __MSG_FATAL(level, szCat,  ...)        \
@@ -136,7 +149,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_FATAL,                                  \
                                "FATAL", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
@@ -151,7 +164,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_ERROR,                                  \
                                "ERROR", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
@@ -167,7 +180,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_WARN,                                   \
                                "WARN", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
@@ -182,7 +195,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_HIGH,                                   \
                                "HIGH", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
@@ -197,7 +210,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_MED,                                    \
                                "MED", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
@@ -213,10 +226,27 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...);
                                DBG_MSG_LOW,                                    \
                                "LOW", \
                        };                                                                      \
-                       _custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
                } \
        } while(0)
 
+#define __MSG_DBG(level, szCat,  ...)  \
+                       do { \
+                               if ((level) & DBG_MSG_BIT_CUST13) \
+                               { \
+                                       static debug_msg_type msg______unique______name___ = {          \
+                                               __FILE__,                                                       \
+                                               __LINE__,                                                       \
+                                               szCat,                                                          \
+                                               DBG_MSG_BIT_CUST13,                                     \
+                                               "DBG", \
+                                       };                                                                      \
+                                       __custom_debug_msg(&msg______unique______name___, ##__VA_ARGS__); \
+                               } \
+                       } while(0)
+
+
+#endif                 // DISABLE_LOG
 
 #define ASSERT(level, szCat, expr) \
        do { \
index fae7537..94621ce 100755 (executable)
@@ -1,27 +1,57 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #ifndef _IVUG_DEBUG_H_
 #define _IVUG_DEBUG_H_
 
 #include <dlog.h>
+#include "statistics.h"
 
 #define IVUG_LOG_OUTPUT_DLOG
 
+#define PERF_TIME
+
+#define LVL0 (0)
+#define LVL1 (1)
+#define LVL2 (2)
+#define LVL3 (3)
+#define LVL4 (4)
+#define LVL5 (5)
+#define LVL6 (6)
+#define LVL7 (7)
+
+#ifdef PERF_TIME
+
+// accum item handling
+#define PERF_CHECK_BEGIN(lvl, name)            iv_ta_accum_item_begin(lvl, name,false,__FILE__,__LINE__)
+#define PERF_CHECK_END(lvl, name)              iv_ta_accum_item_end(lvl, name,false,__FILE__,__LINE__)
+
+// Print out
+#define PERF_SHOW_RESULT(fp)           iv_ta_accum_show_result_fp(fp)
+
+#else
+
+#define PERF_CHECK_BEGIN(lvl, name)
+#define PERF_CHECK_END(lvl, name)
+
+// Print out
+#define PERF_SHOW_RESULT(fp)
+
+#endif         // PERF_TIME
+
 enum {
        IVUG_MSG_COLOR_DEFAULT  = 0,
        IVUG_MSG_COLOR_BLACK    = 30,
@@ -34,6 +64,7 @@ enum {
        IVUG_MSG_COLOR_WHITE            = 37,
 };
 
+
 #ifdef IVUG_LOG_OUTPUT_DLOG
 
 #undef LOG_TAG
@@ -48,8 +79,8 @@ enum {
 #define IVUG_DEBUG_MSG(fmt, arg...)                    fprintf(stdout, "[D: %s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
 #define IVUG_DEBUG_WARNING(fmt, arg...)                fprintf(stdout, "[W: %s : %05d]" fmt "\n", __func__, __LINE__, ##arg)
 #define IVUG_DEBUG_ERROR(fmt, arg...)          fprintf(stdout, "[E: %s : %05d]" fmt "\n", __func__, __LINE__ , ##arg)
-#define IVUG_DEBUG_CRITICAL(fmt, arg...)               fprintf(stdout, "[E: %s : %05d]" fmt "\n", __func__, __LINE__ , ##arg)
-#define IVUG_DEBUG_PRINT(fmt,arg...)                   fprintf(stdout, "[%s : %05d] >>> leave \n", __func__, __LINE__ , ##arg)
+#define IVUG_DEBUG_CRITICAL(fmt, arg...)       fprintf(stdout, "[E: %s : %05d]" fmt "\n", __func__, __LINE__ , ##arg)
+#define IVUG_DEBUG_PRINT(fmt,arg...)           fprintf(stdout, "[%s : %05d] >>> leave \n", __func__, __LINE__ , ##arg)
 
 #endif //IVUG_LOG_OUTPUT_DLOG
 
@@ -204,18 +235,29 @@ enum {
 #define MSG_SLIST_MED(...)             __MSG_MED(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__)
 #define MSG_SLIST_LOW(...)             __MSG_LOW(LVL_SLIST_ITEM, SLIST_ITEM_SZ, ##__VA_ARGS__)
 
-
 #define IV_ASSERT(expr) ASSERT(DBG_MSG_LVL_ALL, "IV-COMMON", expr)
 
+#define MSG_ASSERT(expr) ASSERT(DBG_MSG_LVL_ALL, LOG_CAT, expr)
+
+#define MSG_FATAL(...)         __MSG_FATAL(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_WARN(...)  __MSG_ERROR(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_ERROR(...)         __MSG_WARN(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_HIGH(...)  __MSG_HIGH(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_MED(...)   __MSG_MED(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_LOW(...)   __MSG_LOW(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+#define MSG_DEBUG(...) __MSG_DBG(LOG_LVL, LOG_CAT, ##__VA_ARGS__)
+
+//expr check statements.
+// Will deprecated
 
 #define IVUG_FUNC_ENTER()                                      MSG_IVUG_HIGH("ENTER %s(L%d)", __func__, __LINE__)
 #define IVUG_FUNC_LEAVE()                                      MSG_IVUG_HIGH("LEAVE %s(L%d)", __func__, __LINE__)
 
-//expr check statements
+
 #define ivug_ret_if(expr) \
        do { \
                if(expr) { \
-                       MSG_IMAGEVIEW_WARN("[%s] Return", #expr );\
+                       MSG_IVUG_ERROR("[%s] Return", #expr );\
                        return; \
                } \
        } while (0)
@@ -223,7 +265,7 @@ enum {
 #define ivug_retv_if(expr, val) \
        do { \
                if(expr) { \
-                       MSG_IMAGEVIEW_WARN("[%s] Return value %d", #expr, val );\
+                       MSG_IVUG_ERROR("[%s] Return value %d", #expr, val );\
                        return (val); \
                } \
        } while (0)
@@ -231,7 +273,7 @@ enum {
 #define ivug_retm_if(expr, fmt, args...) \
        do { \
                if(expr) { \
-                       MSG_IMAGEVIEW_WARN("[%s] Return, message "fmt, #expr, ##args );\
+                       MSG_IVUG_ERROR("[%s] Return, message "fmt, #expr, ##args );\
                        return; \
                } \
        } while (0)
@@ -239,12 +281,30 @@ enum {
 #define ivug_retvm_if(expr, val, fmt, args...) \
        do { \
                if(expr) { \
-                       MSG_IMAGEVIEW_WARN("[%s] Return value, message "fmt, #expr, ##args );\
+                       MSG_IVUG_ERROR("[%s] Return value, message "fmt, #expr, ##args );\
                        return (val); \
                } \
        } while (0)
 
 
+// Use this instead of ivug_ret_if
+
+#define IV_RET_IF(expr, fmt, args...) \
+                       do { \
+                               if(expr) { \
+                                       MSG_IVUG_FATAL("[%s] Return, message "fmt, #expr, ##args );\
+                                       return; \
+                               } \
+                       } while (0)
+
+#define IV_RETV_IF(expr, val, fmt, args...) \
+                       do { \
+                               if(expr) { \
+                                       MSG_IVUG_FATAL("[%s] Return value, message "fmt, #expr, ##args );\
+                                       return (val); \
+                               } \
+                       } while (0)
+
 #include "debug.h"
 
 
index 40ecc5a..cc2832a 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #pragma once
 
@@ -36,13 +35,25 @@ typedef struct {
        void (*onMouseUp)(Evas_Object *obj, MouseEvent *up, void *data);
        void (*onMouseMove)(Evas_Object *obj, MouseEvent *prev, MouseEvent *cur, void *data);
 
+       void (*onPinchStart)(Evas_Object *obj, MouseEvent *center, int dist, void *data);
+       void (*onPinchMove)(Evas_Object *obj, MouseEvent *center, int dist, void *data);
+       void (*onPinchEnd)(Evas_Object *obj, MouseEvent *end, void *data);              // Is it really needed????
+
 } mouse_callback_t;
 
 typedef void *Ivug_Event_Handle;
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 Ivug_Event_Handle
 ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client_data, const char *alias /* for debugging*/);
 
 void ivug_mouse_event_del(Ivug_Event_Handle handle);
 
+#ifdef __cplusplus
+}
+#endif
+
 
index 3ef8df9..fa455de 100755 (executable)
@@ -1,71 +1,40 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __ELM_MYPHOTOCAM_STATISTICS_H__
-#define __ELM_MYPHOTOCAM_STATISTICS_H__
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+
+#ifndef __STATISTICS_H__
+#define __STATISTICS_H__
 
 #include <stdbool.h>
 #include <stdio.h>
 
-#define PERF_TIME
-
-#define LVL1 "  "
-#define LVL2 "    "
-#define LVL3 "      "
-#define LVL4 "        "
-#define LVL5 "          "
-#define LVL6 "            "
-
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-int mm_ta_accum_item_begin(const char* name, bool show, const char* filename, int line);
-int mm_ta_accum_item_end(const char* name, bool show, const char* filename, int line);
-void mm_ta_accum_show_result_fp(FILE *fp);
-
-int PERF_INIT();
-int PERF_DEINIT();
-
-#ifdef PERF_TIME
-
-// accum item handling
-#define PERF_CHECK_BEGIN(name)         mm_ta_accum_item_begin(name,false,__FILE__,__LINE__)
-#define PERF_CHECK_END(name)                   mm_ta_accum_item_end(name,false,__FILE__,__LINE__)
-
-// Print out
-#define PERF_SHOW_RESULT(fp)           mm_ta_accum_show_result_fp(fp)
-
-#else
-
-#define PERF_CHECK_BEGIN(name)
-#define PERF_CHECK_END(name)
-
-// Print out
-#define PERF_SHOW_RESULT(fp)
-
+int iv_ta_accum_item_begin(int lvl, const char* name, bool show, const char* filename, int line);
+int iv_ta_accum_item_end(int lvl, const char* name, bool show, const char* filename, int line);
+void iv_ta_accum_show_result_fp(FILE *fp);
 
-#endif         // PERF_TIME
+int IV_PERF_INIT();
+int IV_PERF_DEINIT();
 
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif /* __ELM_MYPHOTOCAM_STATISTICS_H__ */
+#endif /* __STATISTICS_H__ */
 
index 800d69a..2dc7e7c 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <stdio.h>
 #include <stdarg.h>
@@ -102,30 +101,16 @@ static unsigned long get_sys_elapsed_time(void)
        return  ((current_time.tv_sec * 1E3 + current_time.tv_usec / 1E3) - (init_time.tv_sec * 1E3 + init_time.tv_usec / 1E3));
 }
 
-char *get_fmt_string__inline (const char *msg, va_list va)
-{
-#define MAX_CHAR_PER_LINE ( 1024 )
-
-       static char szPrint[MAX_CHAR_PER_LINE];
-
-       vsnprintf(szPrint, 1024, msg, va);
-
-       return szPrint;
-}
-
-
 void _custom_debug_init()
 {
        get_sys_elapsed_time();
 }
 
-
 void _custom_debug_deinit()
 {
 
 }
 
-
 void
 _custom_err_trace_write( const char *func_name, int line_num, const char *fmt, ... )
 {
@@ -240,7 +225,7 @@ DBG_MSG_CUST13      = 14,
 
 
 
-void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...)
+void __custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...)
 {
        va_list va;
 
@@ -270,7 +255,7 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...)
        if ( _DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_CONSOLE )
        {
 
-               printf(_DEBUG_PREFIX"%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , debug_msg->szcategory, level );
+               printf(_DEBUG_PREFIX"%s[F:%-16.16s L:%5d][%s:%s] ", time_string , pFileName, debug_msg->nline , debug_msg->szcategory, level );
                vprintf(msg, va);
                printf("\n");
        }
@@ -291,6 +276,14 @@ void _custom_debug_msg(debug_msg_type *debug_msg, const char *msg, ...)
 //             vprint_log(prio,_DEBUG_MODULE, msg, va);
        }
 
+#if 0
+       if ( _DEBUG_OUTPUT_DIRECTION & _DEBUG_OUTPUT_DIRECTION_FILE )
+       {
+               fprintf(_DEBUG_PREFIX"%s[F:%-16.16s L:%5d][%s:%s] ",time_string , pFileName, debug_msg->nline , szCategory[debug_msg->category], level );
+               vprintf(msg, va);
+               fprintf("\n");
+       }
+#endif
        va_end(va);
 
 \r      if ( G_UNLIKELY(debug_msg->msg_level == DBG_MSG_FATAL) )
index db3e52c..e58240a 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <Elementary.h>
 #include <stdbool.h>
@@ -32,12 +31,16 @@ typedef enum {
        MOUSE_DOWN_UNKNWON,
        MOUSE_DOWN_NONE,
        MOUSE_DOWN_1,
-       MOUSE_DOWN_ERROR,       // Error
+       MOUSE_DOWN_2,
+       MOUSE_DOWN_3,
+       MOUSE_DOWN_4,           // Invalid state.
 } MouseState;
 
 
+
 #define INVALID_DEVICE_ID (-1)
-#define NUM_MAX_BUTTON (1)
+#define MULTI_INDEX (9)
+#define NUM_MAX_BUTTON (3)
 
 typedef struct _mouse_data_t{
        void *pClientData;
@@ -56,8 +59,12 @@ typedef struct _mouse_data_t{
 
        unsigned int prev_dist;
 
-       MouseEvent center;
+       int multi_min_idx;                      // multi min index is different in each target. Temp solution
 
+       bool bSendPinchStart;
+
+       MouseEvent center;
+       int pinch_dist;
 // For debugging purpose, later will be removed.
        char alias[100];                //
 } mouse_data_t;
@@ -67,6 +74,15 @@ typedef struct _mouse_data_t{
 #define __UNUSED__ __attribute__((unused))
 #endif
 
+static unsigned int _get_distance(int prevX, int prevY, int X, int Y)
+{
+#include <math.h>
+       int dx = prevX - X;
+       int dy = prevY - Y;
+
+       return sqrt(dx*dx + dy*dy);
+}
+
 static void _on_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
 {
        if ( data == NULL )
@@ -116,6 +132,55 @@ static void _on_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj,
 
                MSG_MOUSE_MED("Func:%s Device=%d XY(%d,%d)", "_on_mouse_down", pressed, ev->x , ev->y );
        }
+       else if ( pData->m_state == MOUSE_DOWN_2 )
+       {
+               MouseEvent *other = NULL;
+
+               if ( pData->bDown[ (pressed + 1) % NUM_MAX_BUTTON] == true )
+               {
+                       other = &pData->event[(pressed + 1) % NUM_MAX_BUTTON];
+               }
+
+               if ( pData->bDown[(pressed + 2) % NUM_MAX_BUTTON] == true )
+               {
+                       if ( other != NULL )
+                       {
+                               MSG_MOUSE_ERROR("Error!!!");
+                       }
+                       other = &pData->event[(pressed + 2) % NUM_MAX_BUTTON];
+               }
+
+               if ( other == NULL )
+               {
+                       MSG_MOUSE_ERROR("[%s] Error! Pressed(%d,%d,%d)",  pData->alias,
+                               pData->bDown[0],
+                               pData->bDown[1],
+                               pData->bDown[2]);
+
+                       return ;                // Fix for B/S
+               }
+
+               int centerX = ( other->x + ev->x ) / 2;
+               int centerY = ( other->y + ev->y ) / 2;
+
+               int dist = _get_distance(other->x, other->y, ev->x, ev->y);
+
+               MSG_MOUSE_HIGH("[%s] Callback PinchStart : Dev=%d OtherDev=%d Center(%d,%d) Dist=%d", pData->alias, ev->device, other->device, centerX, centerY, dist);
+
+               if ( pData->cb.onPinchStart )
+               {
+                       pData->center.x = centerX;
+                       pData->center.y = centerY;
+                       pData->center.timestamp = ev->timestamp;
+                       pData->pinch_dist = dist;
+
+                       (pData->cb.onPinchStart)(pData->obj, &pData->center, dist, pData->pClientData);
+               }
+
+               pData->prev_dist = dist;
+
+               MSG_MOUSE_HIGH("[%s] Two fingure is clicked. Distance=%d", pData->alias, pData->prev_dist);
+       }
        else
        {
                MSG_MOUSE_WARN("[%s] Ignore third finger! State=%d Dev=%d bPressed(%d,%d,%d)", pData->alias, pData->m_state, ev->device,
@@ -189,7 +254,17 @@ static void _on_mouse_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj, vo
 
        pData->bDown[pressed] = false;
 
-       if ( pData->m_state == MOUSE_DOWN_NONE )
+       if ( pData->m_state == MOUSE_DOWN_1 )
+       {
+               MSG_MOUSE_HIGH("[%s] Callback Pinch End", pData->alias);
+
+               if ( pData->cb.onPinchEnd )
+               {
+                       pData->bSendPinchStart = false;
+                       (pData->cb.onPinchEnd)(pData->obj, ev, pData->pClientData);
+               }
+       }
+       else if ( pData->m_state == MOUSE_DOWN_NONE )
        {
                MSG_MOUSE_HIGH("[%s] Callback Mouse Up : Dev=%d (%d,%d)", pData->alias, ev->device, ev->x, ev->y);
 
@@ -248,25 +323,83 @@ static void _on_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj,
 
        switch ( pData->m_state )
        {
-               case MOUSE_DOWN_1:
+       case MOUSE_DOWN_3:
+               // Ignore Mouse Event when all 3 buttons is pressed.
+               return ;
+       case MOUSE_DOWN_2:
+       {
+               MouseEvent *other = NULL;
+
+               if ( pData->bDown[ (pressed + 1) % NUM_MAX_BUTTON] == true )
                {
-                       MSG_MOUSE_MED("Func:%s. Device=%d Old(%d,%d) Cur(%d,%d)", __FUNCTION__, pressed,
-                                       pData->event[pressed].x, pData->event[pressed].y,
-                                       ev->x , ev->y);
+                       other = &pData->event[(pressed + 1) % NUM_MAX_BUTTON];
+               }
 
-                       if ( pData->cb.onMouseMove )
+               if ( pData->bDown[(pressed + 2) % NUM_MAX_BUTTON] == true )
+               {
+                       if ( other != NULL )
                        {
-                               MSG_MOUSE_MED("[%s] Callback Mouse Move : (%d,%d)",  pData->alias, ev->x, ev->y);
-                               (pData->cb.onMouseMove)(pData->obj, &pData->event[pressed], ev, pData->pClientData);
+                               MSG_MOUSE_ERROR("Debug me!!!");
                        }
+                       other = &pData->event[(pressed + 2) % NUM_MAX_BUTTON];
+               }
+
+               if ( other == NULL )
+               {
+                       MSG_MOUSE_ERROR("[%s] Error! Pressed(%d,%d,%d)", pData->alias,
+                               pData->bDown[0],
+                               pData->bDown[1],
+                               pData->bDown[2]);
+
+                       // TODO : Recover.
+                       return;
+               }
 
-                       pData->event[pressed] = *ev;
+               int centerX = ( other->x + ev->x ) / 2;
+               int centerY = ( other->y + ev->y ) / 2;
 
-                       break;
+               int dist = _get_distance(other->x, other->y, ev->x, ev->y);
+
+               if ( pData->cb.onPinchMove )
+               {
+                       MSG_MOUSE_MED("Callback Pinch : (%d,%d) dDistance=%d", centerX, centerY, dist - pData->prev_dist);
+
+                       pData->center.x = centerX;
+                       pData->center.y = centerY;
+                       pData->center.timestamp = ev->timestamp;
+                       pData->pinch_dist = dist;
+
+                       (pData->cb.onPinchMove)(pData->obj, &pData->center, pData->pinch_dist , pData->pClientData);
+               }
+
+               pData->prev_dist = dist;
+
+               MSG_MOUSE_LOW("Pinch zoom. Pos1(%d,%d) Pos2(%d,%d) Delta=%d", other->x, other->y, ev->x, ev->y, pData->prev_dist);
+
+               pData->event[pressed] = *ev;
+
+               return ;
+       }
+       break;
+       case MOUSE_DOWN_1:
+       {
+               MSG_MOUSE_MED("Func:%s. Device=%d Old(%d,%d) Cur(%d,%d)", __FUNCTION__, pressed,
+                               pData->event[pressed].x, pData->event[pressed].y,
+                               ev->x , ev->y);
+
+               if ( pData->cb.onMouseMove )
+               {
+                       MSG_MOUSE_MED("[%s] Callback Mouse Move : (%d,%d)",  pData->alias, ev->x, ev->y);
+                       (pData->cb.onMouseMove)(pData->obj, &pData->event[pressed], ev, pData->pClientData);
                }
-               default:
-                       MSG_MOUSE_ERROR("[%s] Something wrong. state=%d", pData->alias, pData->m_state);
-                       break;
+
+               pData->event[pressed] = *ev;
+
+               break;
+       }
+       default:
+               MSG_MOUSE_ERROR("[%s] Something wrong. state=%d", pData->alias, pData->m_state);
+               break;
 
        }
 
@@ -333,6 +466,102 @@ static void _proxy_on_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object
 
 }
 
+static void _proxy_on_mouse_multi_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Multi_Down *ev = event_info;
+       mouse_data_t *pData = data;
+
+       MouseEvent event;
+
+       if ( pData->multi_min_idx == INVALID_DEVICE_ID)
+       {
+               MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device);
+               pData->multi_min_idx = ev->device -1;           // Index start from 0. so -1 is needed
+       }
+
+       event.device = ev->device - pData->multi_min_idx;       // ev->device is 10(for second), 11(3rd), 12(4th) finger
+       event.timestamp = ev->timestamp;
+       event.x = ev->canvas.x;
+       event.y = ev->canvas.y;
+       event.button_flags = 0;
+       event.event_flags = ev->event_flags;
+
+
+       if(event.device >= NUM_MAX_BUTTON)
+       {
+               MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx);
+               return;
+       }
+
+       MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device);
+
+       _on_mouse_down(data, NULL, obj, (void *)&event);
+}
+
+static void _proxy_on_mouse_multi_up(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Multi_Up *ev = event_info;
+       mouse_data_t *pData = data;
+
+       MouseEvent event;
+
+       if ( pData->multi_min_idx == INVALID_DEVICE_ID)
+       {
+               // Sometimes Multi up came ealry
+               MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device);
+               pData->multi_min_idx = ev->device -1;           // Index start from 0. so -1 is needed
+       }
+
+       event.device = ev->device - pData->multi_min_idx;
+       event.timestamp = ev->timestamp;
+       event.x = ev->canvas.x;
+       event.y = ev->canvas.y;
+       event.button_flags = 0;
+       event.event_flags = ev->event_flags;
+
+       if(event.device >= NUM_MAX_BUTTON)
+       {
+               MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx);
+               return;
+       }
+
+       MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device);
+
+       _on_mouse_up(data, NULL, obj, (void *)&event);
+
+}
+
+static void _proxy_on_mouse_multi_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
+{
+       Evas_Event_Multi_Move *ev = event_info;
+       mouse_data_t *pData = data;
+
+       MouseEvent event;
+
+       if ( pData->multi_min_idx == INVALID_DEVICE_ID)
+       {
+               // Mouse Move come faster than Mouse down
+               MSG_MOUSE_HIGH("[%s] Min Device Index=%d", pData->alias, ev->device);
+               pData->multi_min_idx = ev->device -1;
+       }
+
+       event.device = ev->device - pData->multi_min_idx;
+       event.timestamp = ev->timestamp;
+       event.x = ev->cur.canvas.x;
+       event.y = ev->cur.canvas.y;
+       event.button_flags = 0;
+       event.event_flags = ev->event_flags;
+
+       if(event.device >= NUM_MAX_BUTTON)
+       {
+               MSG_MOUSE_FATAL("[%s] Invalid Device. Dev=%d Min=%d", pData->alias, event.device, pData->multi_min_idx);
+               return;
+       }
+
+       MSG_MOUSE_MED("%s Dev=%d", __func__, ev->device);
+
+       _on_mouse_move(data, NULL, obj, (void *)&event);
+}
 
 Ivug_Event_Handle
 ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client_data, const char *alias)
@@ -345,6 +574,7 @@ ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client
        pData->obj = obj;
        pData->pClientData = client_data;
        pData->m_state = MOUSE_DOWN_NONE;
+       pData->multi_min_idx = INVALID_DEVICE_ID;
        strncpy(pData->alias, alias, sizeof(pData->alias));
 
        memcpy(&pData->cb, pCallback, sizeof(mouse_callback_t));
@@ -352,6 +582,9 @@ ivug_mouse_event_add(Evas_Object *obj, mouse_callback_t *pCallback, void *client
        evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_DOWN, _proxy_on_mouse_down, pData);
        evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_UP, _proxy_on_mouse_up,  pData);
        evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MOUSE_MOVE, _proxy_on_mouse_move, pData);
+       evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_DOWN, _proxy_on_mouse_multi_down, pData);
+       evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_UP, _proxy_on_mouse_multi_up, pData);
+       evas_object_event_callback_add(pData->obj, EVAS_CALLBACK_MULTI_MOVE, _proxy_on_mouse_multi_move, pData);
 
        MSG_MOUSE_HIGH("Mouse Event Handler Add : Alias(%s) 0x%08x for Object(0x%08x)", alias, pData, obj);
 
@@ -366,6 +599,9 @@ void ivug_mouse_event_del(Ivug_Event_Handle handle)
        evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_DOWN, _proxy_on_mouse_down);
        evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_UP, _proxy_on_mouse_up);
        evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MOUSE_MOVE, _proxy_on_mouse_move);
+       evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_DOWN, _proxy_on_mouse_multi_down);
+       evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_UP, _proxy_on_mouse_multi_up);
+       evas_object_event_callback_del(pData->obj, EVAS_CALLBACK_MULTI_MOVE, _proxy_on_mouse_multi_move);
 
        MSG_MOUSE_HIGH("Mouse Event Handler Remove : 0x%08x", pData);
 
index 5eaa56e..9b8284b 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <sys/time.h>  // gettimeofday
 
 #define EXPORT_API
 #endif
 
+#ifdef _WIN32
+#include <time.h>
+#include <Windows.h>
+
+#pragma comment(lib,"Ws2_32.lib")
+
+#define _CRT_SECURE_NO_WARNINGS
+#define _CRT_NONSTDC_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE
+
+#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS)
+  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000Ui64
+#else
+  #define DELTA_EPOCH_IN_MICROSECS  11644473600000000ULL
+#endif
+
+struct timezone
+{
+  int  tz_minuteswest; /* minutes W of Greenwich */
+  int  tz_dsttime;     /* type of dst correction */
+};
+
+int gettimeofday(struct timeval *tv, struct timezone *tz)
+{
+  FILETIME ft;
+  unsigned __int64 tmpres = 0;
+  static int tzflag;
+
+  if (NULL != tv)
+  {
+    GetSystemTimeAsFileTime(&ft);
+
+    tmpres |= ft.dwHighDateTime;
+    tmpres <<= 32;
+    tmpres |= ft.dwLowDateTime;
+
+    /*converting file time to unix epoch*/
+    tmpres /= 10;  /*convert into microseconds*/
+    tmpres -= DELTA_EPOCH_IN_MICROSECS;
+    tv->tv_sec = (long)(tmpres / 1000000UL);
+    tv->tv_usec = (long)(tmpres % 1000000UL);
+  }
+
+  if (NULL != tz)
+  {
+    if (!tzflag)
+    {
+      _tzset();
+      tzflag++;
+    }
+    tz->tz_minuteswest = _timezone / 60;
+    tz->tz_dsttime = _daylight;
+  }
+
+  return 0;
+}
+
+#else
 #include <sys/time.h>
 #include <sys/utsname.h>
 #include <sys/resource.h>
 #include <unistd.h>
+#endif
+
 
 #include <stdarg.h>
 #include "statistics.h"
 #define MM_TA_MAX_ACCUM                        100
 
 
-typedef struct _mm_ta_accum_item
+typedef struct _iv_ta_accum_item
 {
        unsigned long long elapsed_accum;
        unsigned long num_calls;
@@ -56,11 +115,12 @@ typedef struct _mm_ta_accum_item
        unsigned long long last_end;
 
        char* name;
+       int lvl;
 
        unsigned long long timestamp;
        int on_estimate;
        int num_unpair;
-} mm_ta_accum_item;
+} iv_ta_accum_item;
 
 
 static void PrintLog(const char *file, int line, const char *msg, ...)
@@ -79,24 +139,24 @@ static void PrintLog(const char *file, int line, const char *msg, ...)
 
 // internal func.
 static void __free_accums(void);
-static int __get_accum_index(const char* name);
+static int __get_accum_index(int lvl, const char* name);
 
 
 // global var.
-static mm_ta_accum_item ** g_accums = NULL;
+static iv_ta_accum_item ** g_accums = NULL;
 static int g_accum_index = 0;
 static int g_accum_longest_name = 0;
 static unsigned long long g_accum_first_time = MAX_UINT64;     // jmlee
 
 
-int PERF_INIT(void)
+int IV_PERF_INIT(void)
 {
        if (g_accums)
        {
                return 0;
        }
 
-       g_accums = (mm_ta_accum_item **) malloc ( MM_TA_MAX_ACCUM * sizeof(mm_ta_accum_item *) );
+       g_accums = (iv_ta_accum_item **) malloc ( MM_TA_MAX_ACCUM * sizeof(iv_ta_accum_item *) );
        if(!g_accums)
        {
                assert(0);
@@ -108,7 +168,7 @@ int PERF_INIT(void)
        return 0;
 }
 
-int PERF_DEINIT(void)
+int IV_PERF_DEINIT(void)
 {
        if ( ! g_accums )
        {
@@ -123,7 +183,7 @@ int PERF_DEINIT(void)
 }
 
 
-static int __get_accum_index(const char* name)
+static int __get_accum_index(int lvl, const char* name)
 {
        int i;
 
@@ -132,7 +192,7 @@ static int __get_accum_index(const char* name)
        // find index
        for ( i = 0; i < g_accum_index; i++ )
        {
-               if ( strcmp( name, g_accums[i]->name ) == 0 )
+               if ( (lvl == g_accums[i]->lvl) && (strcmp( name, g_accums[i]->name ) == 0) )
                        return i;
        }
 
@@ -168,9 +228,9 @@ static void __free_accums(void)
 
 
 
-int mm_ta_accum_item_begin(const char* name, bool show, const char* filename, int line)
+int iv_ta_accum_item_begin(int lvl, const char* name, bool show, const char* filename, int line)
 {
-       mm_ta_accum_item * accum = NULL;
+       iv_ta_accum_item * accum = NULL;
        int index = 0;
        int name_len = 0;
        struct timeval t;
@@ -184,14 +244,14 @@ int mm_ta_accum_item_begin(const char* name, bool show, const char* filename, in
        if ( !name )
                return -1;
 
-       name_len = strlen(name);
+       name_len = strlen(name) + (lvl * 2);
        if( name_len == 0 )
                return -1;
 
        // if 'name' is new one. create new item.
-       if ( (index = __get_accum_index(name)) == -1 )
+       if ( (index = __get_accum_index(lvl, name)) == -1 )
        {
-               accum = ( mm_ta_accum_item * ) malloc( sizeof( mm_ta_accum_item ) );
+               accum = ( iv_ta_accum_item * ) malloc( sizeof( iv_ta_accum_item ) );
                if ( !accum )
                {
                        assert(0);
@@ -199,10 +259,11 @@ int mm_ta_accum_item_begin(const char* name, bool show, const char* filename, in
                }
 
                // clear first.
-               memset( accum, 0, sizeof (mm_ta_accum_item) );
+               memset( accum, 0, sizeof (iv_ta_accum_item) );
                accum->elapsed_min = MAX_UINT64;
 
                accum->name = strdup(name);
+               accum->lvl = lvl;
                // add it to list.
                g_accums[g_accum_index] = accum;
                g_accum_index++;
@@ -248,9 +309,9 @@ int mm_ta_accum_item_begin(const char* name, bool show, const char* filename, in
        return 0;
 }
 
-int mm_ta_accum_item_end(const char* name, bool show, const char* filename, int line)
+int iv_ta_accum_item_end(int lvl, const char* name, bool show, const char* filename, int line)
 {
-       mm_ta_accum_item * accum = NULL;
+       iv_ta_accum_item * accum = NULL;
        unsigned long long tval = 0LL;
        int index = 0;
        struct timeval  t;
@@ -268,7 +329,7 @@ int mm_ta_accum_item_end(const char* name, bool show, const char* filename, int
                return -1;
 
        // varify the 'name' is already exist.
-       if ( (index = __get_accum_index(name)) == -1 )
+       if ( (index = __get_accum_index(lvl, name)) == -1 )
        {
                MyPrintf("[%s] is not added before!\n", name);
                return -1;
@@ -291,6 +352,13 @@ int mm_ta_accum_item_end(const char* name, bool show, const char* filename, int
        // update last_end
        accum->last_end = tval;
 
+#if 0
+       if ( accum->first_start > accum->last_end )
+       {
+               MyPrintf("Invalied timestamp:%s. Start:%lu End=%lu\n", accum->name, accum->first_start , accum->last_end);
+       }
+#endif
+
        // make get elapsed time.
        tval = tval - accum->timestamp;
 
@@ -310,9 +378,6 @@ int mm_ta_accum_item_end(const char* name, bool show, const char* filename, int
 
 void __print_some_info(FILE* fp)
 {
-       if (!fp)
-               return;
-
        // General infomation
        {
                time_t t_val;
@@ -366,28 +431,29 @@ void __print_some_info(FILE* fp)
                }
        }
 
-       fprintf(fp, "g_accum_first_time = %llu\n", g_accum_first_time);
+       fprintf(fp, "g_accum_first_time = %llu", g_accum_first_time);
 
        fprintf(fp, "\n\n");
 
 }
 
 
-void mm_ta_accum_show_result_fp(FILE *fp)
+void iv_ta_accum_show_result_fp(FILE *fp)
 {
        int i = 0;
        char format[256];
 
-//     __print_some_info(fp);
+       __print_some_info(fp);
 
+       fprintf(fp, "\n\n");
 
        fprintf(fp, "============================ BEGIN RESULT ACCUM (usec) ====================\n");
 
-       snprintf(format, (size_t)sizeof(format), "[Idx] %%-%ds %%10s %%6s %%10s %%10s %%10s %%4s \n", g_accum_longest_name);
+       snprintf(format, (size_t)sizeof(format), "[Idx] [Lvl] %%-%ds %%10s %%10s %%6s %%10s %%10s %%4s \n", g_accum_longest_name);
 
-       fprintf(fp, format, "Name", "avg", "hit", "total", "min", "max", "pair");
+       fprintf(fp, format, "Name", "avg", "total", "hit", "min", "max", "pair");
 
-       snprintf(format, (size_t)sizeof(format), "[%%3d] %%-%ds %%10llu %%6lu %%10llu %%10llu %%10llu %%4s \n", g_accum_longest_name);
+       snprintf(format, (size_t)sizeof(format), "[%%3d] [%%3d] %%-%ds %%10llu %%10llu %%6lu %%10llu %%10llu %%4s \n", g_accum_longest_name);
 
        for ( i = 0; i < g_accum_index; i++ )
        {
@@ -395,13 +461,23 @@ void mm_ta_accum_show_result_fp(FILE *fp)
                if (g_accums[i]->num_calls == 0)
                        g_accums[i]->num_calls = 1;
 
+               static char space[256];
+
+               int j;
+               for ( j = 0; j < g_accums[i]->lvl * 2; j++)
+               {
+                       space[j] = '_';
+               }
+               space[g_accums[i]->lvl*2] = '\0';
+
                fprintf(fp,
                        format,
                        i,
-                       g_accums[i]->name,
+                       g_accums[i]->lvl,
+                       strcat(space, g_accums[i]->name),
                        (g_accums[i]->elapsed_accum == 0)?0:(g_accums[i]->elapsed_accum / g_accums[i]->num_calls),  // Fix it! : devide by zero.
-                       g_accums[i]->num_calls,
                        g_accums[i]->elapsed_accum,
+                       g_accums[i]->num_calls,
                        g_accums[i]->elapsed_min,
                        g_accums[i]->elapsed_max,
                        g_accums[i]->num_unpair == 1 ? "F" : "T" );
@@ -409,13 +485,23 @@ void mm_ta_accum_show_result_fp(FILE *fp)
 
        fprintf(fp, "============================ END RESULT ACCUM  ============================\n");
 
-       if ( fp != stdout && fp != stderr )
-       {
-               fclose(fp);
-       }
 }
 
 
+#define _CONSTRUCTOR __attribute__ ((constructor))
+#define _DESTRUCTOR __attribute__ ((destructor))
+
+static void _CONSTRUCTOR _DLLInit(void)
+{
+       IV_PERF_INIT();
+}
+
+static void _DESTRUCTOR _DLLExit(void)
+{
+       IV_PERF_DEINIT();
+
+}
+
 
 #ifdef STANDALONE
 int main(int argc, char* argv[])
@@ -423,7 +509,7 @@ int main(int argc, char* argv[])
        int a = 0, b = 0;
 
 
-       PERF_CHECK_BEGIN("Test 1");
+       PERF_CHECK_BEGIN(LVL1, "Test 1");
 
        for ( a = 0 ; a < 10; a++)
        {
@@ -431,7 +517,7 @@ int main(int argc, char* argv[])
                usleep(1*10E6);
        }
 
-       PERF_CHECK_END("Test 1");
+       PERF_CHECK_END(LVL1, "Test 1");
 
        printf("Test 111\n");
        return 0;
diff --git a/debian/changelog b/debian/changelog
deleted file mode 100755 (executable)
index eec177b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-ug-image-viewer-efl (1.4-14) unstable; urgency=low
-
-   * Initial version
-   * Git: pkgs/u/ug-image-viewer-efl.git
-   * Tag: ug-image-viewer-efl_1.4.14
-
- -- Jisung Ahn <jcastle.ahn@samsung.com>  Wed, 07 Dec 2011 15:01:09 +0900
-
diff --git a/debian/compat b/debian/compat
deleted file mode 100755 (executable)
index 7ed6ff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-5
diff --git a/debian/control b/debian/control
deleted file mode 100755 (executable)
index f274e0e..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-Source: ug-image-viewer-efl
-Section: misc
-Priority: extra
-Maintainer:  Li Suxia <suxia.li@samsung.com>, Tang Feng <feng.tang@samsung.com>, Hyunwoo Kim <hw4444.kim@samsung.com>, Jisung Ahn <jcastle.ahn@samsung.com>, Sangjin Han <sjhan.han@samsung.com>
-Uploaders: Tang Feng <feng.tang@samsung.com>, Hyunwoo Kim <hw4444.kim@samsung.com>
-Build-Depends: debhelper (>= 5),
- libelm-dev,
- libedje-dev,
- libevas-dev,
- libecore-dev,
- libslp-utilx-dev,
- libmedia-service-dev,
- libui-gadget-dev,
- libaul-1-dev,
- libmm-utility-dev,
- libexif-dev,
- libefreet-dev,
- execstack,
- libmm-fileinfo-dev,
- libicu-dev,
- dlog-dev,
- libmm-common-dev,
- libappcore-efl-dev,
- libslp-pm-dev,
- libappsvc-dev,
- libvconf-dev,
- libvconf-keys-dev,
-Standards-Version: 0.1.0
-
-Package: libug-image-viewer-efl
-Section: misc
-Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}
-Description: Image Viewer UI Gadget v1.0
-
-Package: libug-image-viewer-efl-dbg
-Section: debug
-Architecture: any
-Depends: ${misc:Depends}, libug-image-viewer-efl (= ${Source-Version})
-Description: Image Viewer UI Gadget(unstripped)
-
-
diff --git a/debian/libug-image-viewer-efl.install.in b/debian/libug-image-viewer-efl.install.in
deleted file mode 100755 (executable)
index 1709ce6..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-@PREFIX@/lib/*
-@PREFIX@/res/*
-@DATADIR@
diff --git a/debian/libug-image-viewer-efl.postinst b/debian/libug-image-viewer-efl.postinst
deleted file mode 100755 (executable)
index fb2a4cf..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-# Create a directory to store image-viewer pictures and stuffs.
-
-if [ ${USER} == "root" ]
-then
-    chown 5000:5000 /opt/data/ug-image-viewer-efl
-fi
-
diff --git a/debian/rules b/debian/rules
deleted file mode 100755 (executable)
index ed0233c..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-# export DH_VERBOSE=1
-
-CFLAGS +=  -Wall -Wextra -g -fpie -fPIC -O0 -Wno-unused-parameter -Wno-missing-field-initializers -finstrument-functions
-CXXFLAGS +=  -Wall -Wextra -g -fpie -fPIC -O0 -Wno-unused-parameter -Wno-missing-field-initializers -finstrument-functions
-LDFLAGS +=  -Wl,-zdefs
-
-PREFIX ?= /opt/ug
-DATADIR ?= /opt/data
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-       CFLAGS += -O0
-       CXXFLAGS += -O0
-else
-       CFLAGS += -O2
-       CXXFLAGS += -O2
-endif
-
-LDFLAGS += -Wl,--rpath,/usr/lib -Wl,--as-needed -Wl,--hash-style=both -pie
-
-configure: configure-stamp
-configure-stamp:
-       dh_testdir
-       # Add here commands to configure the package.
-       CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" cmake . -DCMAKE_INSTALL_PREFIX=$(PREFIX) -DCMAKE_DATA_DIR=$(DATADIR)
-
-       touch configure-stamp
-
-build: build-stamp
-
-build-stamp: configure-stamp
-       dh_testdir
-
-       # Add here commands to compile the package.
-       $(MAKE)
-       #docbook-to-man debian/wavplayer.sgml > wavplayer.1
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               cat $$f > $${f%.in}; \
-               sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \
-               sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \
-       done
-
-
-       touch $@
-
-clean:
-       dh_testdir
-       dh_testroot
-       rm -f build-stamp configure-stamp
-
-       # Add here commands to clean up after the build process.
-       -$(MAKE) clean
-       rm -rf CMakeCache.txt
-       rm -rf CMakeFiles
-       rm -rf cmake_install.cmake
-       rm -rf Makefile
-       rm -rf install_manifest.txt
-       rm -rf *.so
-       rm -rf *.desktop
-       find -name CMakeFiles | xargs rm -rf
-       find -name cmake_install.cmake | xargs rm -rf
-       find -name Makefile | xargs rm -rf
-       find -name "*.cmake" | xargs rm -rf
-       find -name "*.edj" | xargs rm -rf
-
-       for f in `find $(CURDIR)/debian/ -name "*.in"`; do \
-               rm -f $${f%.in}; \
-       done
-
-       dh_clean
-
-
-install: build
-       dh_testdir
-       dh_testroot
-       dh_clean -k
-       dh_installdirs
-
-       # Add here commands to install the package into debian/wavplayer.
-       $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
-
-       execstack -c $(CURDIR)/debian/tmp/opt/ug/lib/libug-image-viewer-efl.so.0.1.0
-
-# Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: build install
-       dh_testdir
-       dh_testroot
-
-#      dh_installchangelogs
-#      dh_installdocs
-       dh_installexamples
-       dh_install --sourcedir=debian/tmp --list-missing
-#      dh_installmenu
-#      dh_installdebconf
-#      dh_installlogrotate
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installmime
-#      dh_python
-#      dh_installinit
-#      dh_installcron
-#      dh_installinfo
-       dh_installman
-       dh_link
-       dh_strip --dbg-package=libug-image-viewer-efl-dbg
-       dh_compress
-       dh_fixperms
-#      dh_perl
-       dh_makeshlibs
-       dh_installdeb
-       dh_shlibdeps
-       dh_gencontrol
-       dh_md5sums
-       dh_builddeb
-
-binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install configure
-
-
index 776e475..252c54c 100755 (executable)
@@ -13,61 +13,56 @@ SET(SRCS
 # Entry point
        src/ug-image-viewer.c
 
-# Common
-       src/common/ivug-config.c
-
 # View related
-       src/view/ivug-main-view.c
-       src/view/ivug-setas-view.c
-       src/view/ivug-detail-info.c
+       src/view/ivug-main-view.cpp
+       src/view/ivug-main-view-toolbar.cpp
+       src/view/ivug-main-view-menu.cpp
+
+       src/view/ivug-name-view.c
        src/view/ivug-details-view.c
-       src/view/ivug-popup.c
-       src/view/ivug-slider.c
-       src/view/ivug-slider-item.c
-       src/view/ivug-slider-slideshow.c
-       src/view/ivug-slider-mouse.c
+       src/view/ivug-crop-view.cpp
+
+# SetAs View
+       src/view/ivug-setas-view.c
+       src/view/ivug-setas-view-wallpaper.cpp
+       src/view/ivug-setas-view-callerid.cpp
+
+# Slider
+       src/slider/ivug-slider.cpp
+       src/slider/ivug-slider-item.cpp
+       src/slider/ivug-slider-mouse.cpp
 
 # Control related
-       src/control/ivug-uuid.c
        src/control/ivug-parameter.c
-       src/control/ivug-ext-ug.c
-       src/control/ivug-main.c
-
-# Helper files
-       src/util/ivug-util.c
-       src/util/ivug-file-info.c
-       src/util/ivug-widget.c
-       src/util/ivug-listpopup.c
-
-# Data & List management
-       src/data/ivug-data.c
-       src/data/ivug-data-list.c
-       src/data/ivug-data-shuffle.c
-       src/data/ivug-mediadata.c
-       src/data/ivug-data-filter.c
-
-# Effect files
-       src/effect/ivug-effect.c
-       src/effect/ivug-slide.c
-       src/effect/ivug-anim.c
+       src/control/ivug-context.c
+       src/control/ivug-filter.c
+       src/control/ivug-detail-info.c
+       src/control/ivug-setas.cpp
+       src/control/ivug-crop-ug.cpp
+       src/control/ivug-widget.c
+       src/control/ivug-selectioninfo.c
+       src/control/ivug-popup.c
 )
 
 # message("System = ${CMAKE_SYSTEM_VERSION}")
 
 INCLUDE_DIRECTORIES(
-       ${CMAKE_CURRENT_SOURCE_DIR}
-       ${CMAKE_SOURCE_WIDGET_DIR}/include
-       ${CMAKE_SOURCE_COMMON_DIR}/include
+       ${CMAKE_SOURCE_DIR}/include
+       ${IVUG_SOURCE_WIDGET_DIR}/include
+       ${IVUG_SOURCE_COMMON_DIR}/include
+       ${IVUG_SOURCE_MEDIA_DIR}/include
        src
-       src/common
-       src/view
-       src/util
+       src/include
        src/control
-       src/widget
-       src/data
-       src/effect/include
+       ${IVUG_SOURCE_FEATURE_DIR}/include
+       ${IVUG_SOURCE_SLIDESHOW_DIR}/include
+
+# Below include directory should be removed for make module more indepentatly
+       ${IVUG_SOURCE_SLIDESHOW_DIR}/src/effect/include
 )
 
+MESSAGE("Checking " ${PROJECT_NAME}\r)
+
 INCLUDE(FindPkgConfig)
 pkg_check_modules(pkgs REQUIRED
        elementary
@@ -78,27 +73,18 @@ pkg_check_modules(pkgs REQUIRED
        ecore
        ecore-file
        ecore-imf
-       ecore-input
        ecore-x
+       ecore-input
        ecore-evas
-       efreet-mime
        utilX
-       ui-gadget
-       libmedia-service
-       aul
-       libexif
-       appcore-efl
-       appcore-common
-       bundle
-       mm-fileinfo
+       ui-gadget-1
+       drm-client
        icu-i18n
-       icu-io
-       icu-le
-       icu-lx
-       icu-uc
-       pmapi
-       appsvc
+       glib-2.0
        vconf
+       capi-appfw-application
+       capi-appfw-app-manager
+       capi-system-runtime-info
 )
 
 
@@ -106,28 +92,26 @@ FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
 
-if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm")
-       pkg_check_modules(armpkgs REQUIRED
-       )
-
-       FOREACH(flag ${armpkgs_CFLAGS})
-               SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-       ENDFOREACH(flag)
-
-endif()
+#if("${CMAKE_SYSTEM_VERSION}" STREQUAL "arm")
+#      pkg_check_modules(armpkgs REQUIRED
+#      )
+#
+#      FOREACH(flag ${armpkgs_CFLAGS})
+#              SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+#      ENDFOREACH(flag)
+#
+#endif()
 
 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
 SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
 
-#message("CFLAGS="${CMAKE_C_FLAGS})
-#message("CXXFLAGS="${CMAKE_CXX_FLAGS})
-#message("LDFLAGS="${LDFLAGS})
+message("CFLAGS="${CMAKE_C_FLAGS})
+message("CXXFLAGS="${CMAKE_CXX_FLAGS})
+message("LDFLAGS="${LDFLAGS})
+message("LDFLAGS1="${pkgs_LDFLAGS})
 
-ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
 ADD_DEFINITIONS("-DUG_MODULE_API=__attribute__ \(\(visibility\(\"default\"\)\)\)")
 ADD_DEFINITIONS("-DPACKAGE=\"${PROJECT_NAME}\"")
-ADD_DEFINITIONS("-DDATADIR=\"${CMAKE_DATA_DIR}\"")
-#ADD_DEFINITIONS("-D_USE_MEDIAINFO_STRINGID_")
 
 #ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
 ADD_LIBRARY(${PROJECT_NAME} SHARED ${SRCS})
@@ -138,39 +122,32 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_P
 
 TARGET_LINK_LIBRARIES(${PROJECT_NAME}
        ${pkgs_LDFLAGS} ${armpkgs_LDFLAGS}
-       -ldl
-       ivug_common
+       "-ldl"
+       ivug_common ivug_widget ivug_medialist ivug_slideshow
 )
 
 INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
 
-FUNCTION (BUILD_EDJ _in _out _base _dir)
-       ADD_CUSTOM_TARGET(${_out}
-                       COMMAND
-                               edje_cc -id ${_base}/${_dir}
-                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
-                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out}
-                       DEPENDS
-                               ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_in}
-       )
-       ADD_DEPENDENCIES(${PROJECT_NAME} ${_out})
-       INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${_base}/${_out} DESTINATION ${CMAKE_INSTALL_PREFIX}/res/edje/${PROJECT_NAME})
-ENDFUNCTION (BUILD_EDJ)
-
+SET(THEME_FOLDER images/theme)
+SET(THEME white)
 
 # Build edc files
-BUILD_EDJ(ivug-base.edc                        ivug-base.edj                   layout  images)
-BUILD_EDJ(ivug-main.edc                        ivug-main.edj                   layout  images)
-BUILD_EDJ(ivug-icons.edc                       ivug-icons.edj                  layout  icons)
-BUILD_EDJ(ivug-setas.edc                       ivug-setas.edj                  layout  images)
-BUILD_EDJ(ivug-naviframe.edc           ivug-naviframe.edj              layout  images/gray-theme)
-BUILD_EDJ(ivug-toolbar.edc                     ivug-toolbar.edj                layout  images/gray-theme)
-BUILD_EDJ(ivug-button.edc                      ivug-button.edj                 layout  images/gray-theme)
-BUILD_EDJ(ivug-effect.edc                      ivug-effect.edj                 layout  images)
-BUILD_EDJ(ivug-slider.edc                      ivug-slider.edj                 layout  icons)
-BUILD_EDJ(ivug-details.edc                     ivug-details.edj                layout  images)
-BUILD_EDJ(ivug-selectioninfo.edc       ivug-selectioninfo.edj  layout  images)
-BUILD_EDJ(ivug-genlist.edc                     ivug-genlist.edj                layout/genlist  images/gray-theme)
+BUILD_EDJ(ivug-base.edc                        ivug-base.edj                   layout          images)
+BUILD_EDJ(ivug-main.edc                        ivug-main.edj                   layout          images)
+BUILD_EDJ(ivug-effect.edc                      ivug-effect.edj                 layout          images)
+BUILD_EDJ(ivug-details.edc                     ivug-details.edj                layout          images)
+BUILD_EDJ(ivug-selectioninfo.edc       ivug-selectioninfo.edj  layout          images)
+BUILD_EDJ(ivug-popup.edc                       ivug-popup.edj                  layout          images)
+BUILD_EDJ(ivug-crop-view.edc           ivug-crop-view.edj              layout          crop-view)
+BUILD_EDJ(ivug-icons.edc                       ivug-icons.edj                  layout          icons)
+BUILD_EDJ(ivug-slider.edc                      ivug-slider.edj                 layout          icons)
+BUILD_EDJ(ivug-gengrid.edc                     ivug-gengrid.edj                layout          gengrid)
+
+BUILD_EDJ(ivug-setas.edc                       ivug-setas.edj                  layout          ${THEME_FOLDER}/${THEME})
+BUILD_EDJ(ivug-naviframe.edc           ivug-naviframe.edj              layout          ${THEME_FOLDER}/${THEME})
+BUILD_EDJ(ivug-name-view.edc           ivug-name-view.edj              layout          ${THEME_FOLDER}/${THEME})
+BUILD_EDJ(ivug-genlist.edc                     ivug-genlist.edj                layout/genlist  ../${THEME_FOLDER}/${THEME})
+
 
 # Install image files.
 INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/res/images/ DESTINATION ${CMAKE_INSTALL_PREFIX}/res/images/${PROJECT_NAME})
@@ -180,3 +157,5 @@ INSTALL(DIRECTORY DESTINATION ${CMAKE_DATA_DIR}/${PROJECT_NAME})
 
 # i18n
 ADD_SUBDIRECTORY(res/po)
+
+
diff --git a/main/NOTICE b/main/NOTICE
deleted file mode 100755 (executable)
index ded3804..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
\ No newline at end of file
index 2891049..fe95b95 100755 (executable)
@@ -1,22 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 240 240 240 255
-#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 15 15 15 255
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
      part { name: "base_event";\
@@ -88,6 +84,7 @@
                   size: GENLIST_FONT_32_INC;
                   min: 1 1;
                   align: 0.0 0.5;
+                  text_class: "slp_medium";
                }
             }
          }
index 879d0f2..55ab855 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #define GENLIST_PART_BASE( param_item_height ) \
          part { name: "base"; \
                        size: 24;  \
                        min: 1 1;  \
                        align: 0.5 0.5;  \
+                       text_class: "slp_roman"; \
                 }      \
          }  \
    }
index 73c285a..30cbb6a 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 /* hd_inc */
 
index 4eeeca9..fd0b4c9 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 group { name: "elm/genlist/item/ivug/2text.2/default";
       alias: "elm/genlist/item_odd/ivug/2text.2/default";
@@ -59,6 +58,7 @@ group { name: "elm/genlist/item/ivug/2text.2/default";
                   size: GENLIST_FONT_20_INC;
                   min: 0 1;
                   align: 0.0 0.5;
+                  text_class: "slp_roman";
                }
             }
             description { state: "selected" 0.0;
@@ -90,6 +90,7 @@ group { name: "elm/genlist/item/ivug/2text.2/default";
                   size: GENLIST_FONT_28_INC;
                   min: 0 1;
                   align: 0.0 0.5;
+                  text_class: "slp_medium";
                }
             }
             description { state: "selected" 0.0;
@@ -140,6 +141,162 @@ group { name: "elm/genlist/item/ivug/2text.2/default";
       }
    }
 
+  group { name: "elm/genlist/item_compress/ivug/multiline/2text.1icon/default";
+      alias: "elm/genlist/item_compress_odd/ivug/multiline/2text.1icon/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text.1 elm.text.2";
+      data.item: "contents" "elm.icon";
+      parts {
+         part { name: "base";
+            type: RECT;
+            repeat_events: 1;
+            description { state: "default" 0.0;
+               color: GENLIST_PART_BG_COLOR_INC;
+            }
+         }
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_TOP( GENLIST_PADDING_8_INC )
+         GENLIST_PART_PADDING_BOTTOM( GENLIST_PADDING_8_INC )
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_10_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_10_INC )
+         part { name: "elm.text.1";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 GENLIST_SIZE_26_INC;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.icon.left";
+                  to_y: "elm.padding.top";
+               }
+               align: 0.0 0.0;
+               color: 160 160 160 255; //GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Roman";
+                  size: GENLIST_FONT_32_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+                  text_class: "list_item";
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+         }
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.top";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.right";
+                  to_y: "elm.padding.bottom";
+               }
+               align: 1.0 0.5;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         part { name: "elm.padding.icon.left";
+            clip_to: "disclip";
+            type: RECT;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: GENLIST_PADDING_16_INC 0;
+               fixed: 1 0;
+               rel1.to_x: "elm.icon";
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.icon";
+               }
+               align: 1.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.text.2";
+            clip_to: "disclip";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "elm.padding.left";
+                  to_y: "elm.text.1";
+               }
+               rel2 {
+                  relative: 0.0 0.0;
+                  to_x: "elm.padding.icon.left";
+                  to_y: "elm.padding.bottom";
+               }
+               text {
+                  style: "genlist_textblock_sub_style";
+                  min: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               text.style: "genlist_textblock_sub_selected_style";
+            }
+         }
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         // signal: elm,state,%s,active
+         //   a "check" item named %s went active
+         // signal: elm,state,%s,passive
+         //   a "check" item named %s went passive
+         // default is passive
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text.1";
+            target: "elm.text.2";
+            transition: LINEAR 0.1;
+         }
+         program { name: "go_disabled";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disclip";
+         }
+         program { name: "go_enabled";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disclip";
+         }
+      }
+   }
+
    group { name: "elm/genlist/item_compress/ivug/multiline/2text/default";
       alias: "elm/genlist/item_compress_odd/ivug/multiline/2text/default";
       alias: "elm/genlist/item_compress/ivug/multiline.2text/default";
@@ -186,6 +343,7 @@ group { name: "elm/genlist/item/ivug/2text.2/default";
                   size: GENLIST_FONT_32_INC;
                   min: 0 1;
                   align: 0.0 0.5;
+                  text_class: "list_item";
                }
             }
             description { state: "selected" 0.0;
@@ -210,14 +368,14 @@ group { name: "elm/genlist/item/ivug/2text.2/default";
                   to_y: "elm.padding.bottom";
                }
                text {
-                  style: "genlist_textblock_flexible_style";
+                  style: "genlist_textblock_sub_style";
                   min: 0 1;
                   align: 0.0 0.5;
                }
             }
             description { state: "selected" 0.0;
                inherit: "default" 0.0;
-               text.style: "genlist_textblock_flexible_selected_style";
+               text.style: "genlist_textblock_sub_selected_style";
             }
          }
          GENLIST_PART_DISCLIP
index 02ac574..cec6f45 100755 (executable)
@@ -1,35 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-/* hd_inc */
-#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#3F8DAD"
-
-#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC "#646464FF"
-#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC "#959595FF"
-#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#959595FF"
-#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC "#F9F9F9FF"//"#688998FF"
-#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
-#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#929292FF"
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #define TEXTBLOCK_TAG \
           tag:  "br" "\n";\
@@ -40,7 +23,7 @@
 
  styles {
        style { name: "text_style"; // TODO: remove this later
-          base: "font=SLP:style=Roman font_size=28 color=#000000 wrap=char ellipsis=1.0";
+          base: "font=SLP:style=Roman font_size=28 color=#000000 wrap=char ellipsis=1.0 text_class=slp_roman";
           tag:  "br" "\n";
           tag:  "ps" "ps";
           tag:  "tab" "\t";
           tag:  "match" "+ color=#E58616FF";
        }
        style { name: "genlist_default_textblock_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" text_class=slp_roman ellipsis=1.0";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_default_textblock_selected_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_44_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=slp_roman ellipsis=1.0";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_sub_textblock_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_LIST_SUB_TEXT_STYLE_COLOR_INC" text_class=slp_medium ellipsis=1.0";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_sub_textblock_selected_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=list_item ellipsis=1.0";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" text_class=slp_medium ellipsis=1.0";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_multiline_textblock_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC" wrap=char text_class=slp_medium";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_multiline_textblock_selected_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=slp_medium";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_STYLE_COLOR_INC" wrap=char text_class=slp_roman";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_selected_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_42_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=slp_roman";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_sub_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_STYLE_COLOR_INC" wrap=char text_class=slp_medium";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_sub_selected_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=slp_medium";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_flexible_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC" wrap=char text_class=list_item";// fixed by ivug
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_STYLE_COLOR_INC" wrap=char text_class=slp_roman";//fixed by ivug
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_flexible_selected_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_48_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_48_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=slp_roman";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_flexible_sub_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_STYLE_COLOR_INC" wrap=char text_class=slp_roman";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_flexible_sub_selected_style";
-          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=list_item";
+          base: "font=SLP:style=Roman font_size="GENLIST_FONT_STYLE_36_INC" color="GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC" wrap=char text_class=slp_roman";
           TEXTBLOCK_TAG
        }
        style { name: "genlist_textblock_help_style";
-          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC" wrap=mixed text_class=list_item";
+          base: "font=SLP:style=Medium font_size="GENLIST_FONT_STYLE_32_INC" color="GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC" wrap=mixed text_class=slp_medium";
           TEXTBLOCK_TAG
        }
 }
index f9d527b..3dd35f2 100755 (executable)
@@ -1,33 +1,20 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-#define GENLIST_PART_BG_COLOR_INC 0 0 0 0
-
-#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 249 249 249 255
-#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
-
-#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 100 100 100 255
-
-#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 64
-
-/* 1.0 */
-#define GENLIST_PART_LIST_BG_COLOR_INC 0 0 0 0
-#define GENLIST_PART_LIST_LINE_COLOR_INC 68 68 68 0
-#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+
+#include "../ivug-theme.edc"
 
 collections {
 
diff --git a/main/layout/images/T01_btn_cancel.png b/main/layout/images/T01_btn_cancel.png
deleted file mode 100755 (executable)
index 051ff04..0000000
Binary files a/main/layout/images/T01_btn_cancel.png and /dev/null differ
diff --git a/main/layout/images/T01_btn_cancel_press.png b/main/layout/images/T01_btn_cancel_press.png
deleted file mode 100755 (executable)
index 32f7e76..0000000
Binary files a/main/layout/images/T01_btn_cancel_press.png and /dev/null differ
diff --git a/main/layout/images/T01_btn_ok.png b/main/layout/images/T01_btn_ok.png
deleted file mode 100755 (executable)
index adb15aa..0000000
Binary files a/main/layout/images/T01_btn_ok.png and /dev/null differ
diff --git a/main/layout/images/T01_btn_ok_dim.png b/main/layout/images/T01_btn_ok_dim.png
deleted file mode 100755 (executable)
index 9cc983b..0000000
Binary files a/main/layout/images/T01_btn_ok_dim.png and /dev/null differ
diff --git a/main/layout/images/T01_btn_ok_press.png b/main/layout/images/T01_btn_ok_press.png
deleted file mode 100755 (executable)
index 4a59cfd..0000000
Binary files a/main/layout/images/T01_btn_ok_press.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/00_winset_btn_prev.png b/main/layout/images/gray-theme/00_winset_btn_prev.png
deleted file mode 100755 (executable)
index 15b43b0..0000000
Binary files a/main/layout/images/gray-theme/00_winset_btn_prev.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/I01_control_top_bg.png b/main/layout/images/gray-theme/I01_control_top_bg.png
deleted file mode 100755 (executable)
index 287ef80..0000000
Binary files a/main/layout/images/gray-theme/I01_control_top_bg.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_Option_header_bt.png b/main/layout/images/gray-theme/T01_Option_header_bt.png
deleted file mode 100755 (executable)
index 3c6987f..0000000
Binary files a/main/layout/images/gray-theme/T01_Option_header_bt.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_Option_header_bt_dim.png b/main/layout/images/gray-theme/T01_Option_header_bt_dim.png
deleted file mode 100755 (executable)
index 501d9e8..0000000
Binary files a/main/layout/images/gray-theme/T01_Option_header_bt_dim.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_Option_header_bt_press.png b/main/layout/images/gray-theme/T01_Option_header_bt_press.png
deleted file mode 100755 (executable)
index 978107c..0000000
Binary files a/main/layout/images/gray-theme/T01_Option_header_bt_press.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_btn_prev.png b/main/layout/images/gray-theme/T01_btn_prev.png
deleted file mode 100755 (executable)
index ccaf337..0000000
Binary files a/main/layout/images/gray-theme/T01_btn_prev.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_control_top_arrow.png b/main/layout/images/gray-theme/T01_control_top_arrow.png
deleted file mode 100755 (executable)
index 3f2ee50..0000000
Binary files a/main/layout/images/gray-theme/T01_control_top_arrow.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_control_top_bg.png b/main/layout/images/gray-theme/T01_control_top_bg.png
deleted file mode 100755 (executable)
index e7b5045..0000000
Binary files a/main/layout/images/gray-theme/T01_control_top_bg.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_title_btn.png b/main/layout/images/gray-theme/T01_title_btn.png
deleted file mode 100755 (executable)
index 20c31f1..0000000
Binary files a/main/layout/images/gray-theme/T01_title_btn.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_title_btn_press.png b/main/layout/images/gray-theme/T01_title_btn_press.png
deleted file mode 100755 (executable)
index 49861ed..0000000
Binary files a/main/layout/images/gray-theme/T01_title_btn_press.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_toolbar_bg.png b/main/layout/images/gray-theme/T01_toolbar_bg.png
deleted file mode 100755 (executable)
index e02c6c6..0000000
Binary files a/main/layout/images/gray-theme/T01_toolbar_bg.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/T01_toolbar_press.png b/main/layout/images/gray-theme/T01_toolbar_press.png
deleted file mode 100755 (executable)
index 703cc05..0000000
Binary files a/main/layout/images/gray-theme/T01_toolbar_press.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/magnifier.png b/main/layout/images/gray-theme/magnifier.png
deleted file mode 100755 (executable)
index 4ae3188..0000000
Binary files a/main/layout/images/gray-theme/magnifier.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/magnifier_line.png b/main/layout/images/gray-theme/magnifier_line.png
deleted file mode 100755 (executable)
index c4dd14c..0000000
Binary files a/main/layout/images/gray-theme/magnifier_line.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/magnifier_noarrow.png b/main/layout/images/gray-theme/magnifier_noarrow.png
deleted file mode 100755 (executable)
index 7cbd2a7..0000000
Binary files a/main/layout/images/gray-theme/magnifier_noarrow.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/magnifier_noarrow_line.png b/main/layout/images/gray-theme/magnifier_noarrow_line.png
deleted file mode 100755 (executable)
index fcfdb10..0000000
Binary files a/main/layout/images/gray-theme/magnifier_noarrow_line.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/reader_handler_down.png b/main/layout/images/gray-theme/reader_handler_down.png
deleted file mode 100755 (executable)
index 8e95761..0000000
Binary files a/main/layout/images/gray-theme/reader_handler_down.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/reader_handler_up.png b/main/layout/images/gray-theme/reader_handler_up.png
deleted file mode 100755 (executable)
index 172e2a3..0000000
Binary files a/main/layout/images/gray-theme/reader_handler_up.png and /dev/null differ
diff --git a/main/layout/images/gray-theme/reader_longtap_blue.png b/main/layout/images/gray-theme/reader_longtap_blue.png
deleted file mode 100755 (executable)
index 16df225..0000000
Binary files a/main/layout/images/gray-theme/reader_longtap_blue.png and /dev/null differ
index fae85c6..3c2ec3e 100755 (executable)
@@ -1,47 +1,34 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 collections {
        group {
                name: "ivug_base";
                parts {
                        part {
-                               name: "indication";
-                               type: RECT;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1 { relative: 0.0 0.0; }
-                                       rel2 { relative: 1.0 0.0; }
-                                       min: 0 0;
-                                       fixed: 0 1;
-                                       align: 0.5 0.0;
-                                       visible: 0;
-                               }
-                       }
-
-                       part {
                                name: "clip";
                                type: RECT;
                                scale: 1;
+                               mouse_events: 0;
                                description {
                                        state: "default" 0.0;
-                                       rel1 { relative: 0.0 1.0;  to_y: "indication";}
+                                       visible: 1;
+                                       rel1 { relative: 0.0 0.0; }
                                        rel2 { relative: 1.0 1.0; }
+                                       color: 255 255 255 255;
                                }
                        }
                        part {
@@ -52,6 +39,8 @@ collections {
                                scale: 1;
                                clip_to: "clip";
                                description {
+                                       state: "default" 0.0;
+                                       visible: 1;
                                        rel1.to: "clip";
                                        rel2.to: "clip";
                                }
diff --git a/main/layout/ivug-button.edc b/main/layout/ivug-button.edc
deleted file mode 100755 (executable)
index 19fb76d..0000000
+++ /dev/null
@@ -1,1332 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-#define BUTTON_STATE_ENABLED  0
-#define BUTTON_STATE_DISABLED 1
-
-#define NAVIBAR_PREV_BUTTON_LEFT_SEPARATOR_COLOR_INC 3 3 3 255
-#define NAVIBAR_PREV_BUTTON_RIGHT_SEPARATOR_COLOR_INC 52 52 52 255
-
-/* Default black themem text color
-#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 78 73 69 255
-*/
-#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 255 255 255 255
-#define BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC 255 255 255 255
-#define BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC 255 255 255 255
-#define BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC 185 185 185 255
-
-#define BUTTON_TEXT_STYLE1_BG_MIN_INC 100 74
-#define BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC 148 74
-#define BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC 74 74
-#define BUTTON_TEXT_STYLE1_BG_BORDER_INC 5 5 5 5
-#define BUTTON_TEXT_STYLE1_PADDING_MIN_INC 5 5
-#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
-#define BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
-#define BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC 38 38
-#define BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC 38 38
-#define BUTTON_TEXT_STYLE1_FONT_SIZE_INC 28
-
-#define BUTTON_NAVIBAR_FUNCTION_BUTTON_TEXT_DISABLED_COLOR_INC 160 151 145 255
-
-#define BUTTON_NAVIBAR_CENTER_BG_NORMAL_MIN_W_INC 36
-#define BUTTON_NAVIBAR_CENTER_BG_NORMAL_MIN_H_INC 74
-#define BUTTON_NAVIBAR_CENTER_BG_NORMAL_BORDER_INC 5 5 5 5
-
-#define BUTTON_NAVIBAR_CENTER_PADDING_MIN_MAX_INC 16 2
-#define BUTTON_NAVIBAR_CENTER_ICON_RECT_VISIBLE_MIN_SIZE 36 36
-#define BUTTON_NAVIBAR_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC 6 0
-
-#define BUTTON_NAVIBAR_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC 6 0
-
-#define BUTTON_NAVIBAR_BACK_BUTTON_BUTTON_IMAGE_MIN_INC 106 40
-#define BUTTON_NAVIBAR_BACK_BUTTON_BG_MIN_MAX_INC 36 32
-
-#define BUTTON_NAVIBAR_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC 36 36
-#define BUTTON_NAVIBAR_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC 38 38
-
-#define BUTTON_NAVIBAR_CENTER_TEXT_FONT_SIZE_INC 32
-
-#define NAVIBAR_TITLE_RIGHT_SEPARATOR_COLOR_INC 69 87 94 0
-#define NAVIBAR_TITLE_LEFT_SEPARATOR_COLOR_INC 0 15 30 0
-
-
-#define        IV_EDC_IMAGE_OPTION_HEADER_BT                   "T01_Option_header_bt.png"
-#define        IV_EDC_IMAGE_OPTION_HEADER_BT_DIM               "T01_Option_header_bt_dim.png"
-#define        IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS             "T01_Option_header_bt_press.png"
-
-#define        IV_EDC_IMAGE_NAVIFRAME_MORE_BT                  "T01_title_btn.png"
-#define        IV_EDC_IMAGE_NAVIFRAME_MORE_BT_DIM              "T01_title_btn.png"
-#define        IV_EDC_IMAGE_NAVIFRAME_MORE_BT_PRESS    "T01_title_btn_press.png"
-
-#define        IV_EDC_IMAGE_BTN_PREV                   "T01_btn_prev.png"
-#define        IV_EDC_IMAGE_BTN_PREV_PRESS             "00_winset_btn_prev.png" /* TODO: Replace with T01_XXX image */
-
-#define        IV_EDC_OPTION_HEADER_BT_TEXT_COLOR_INC          255 255 255 255
-
-#define BUTTON_MULTILINE_TEXT_FONT_SIZE_INC 32 /* */
-
-collections {
-
-///////////////////////////////////////////////////////////////////////////////////////
-          group { name: "elm/button/base/style1";
-                 alias: "elm/button/base/text_only/style1";
-                 alias: "elm/button/base/center";
-                 alias: "elm/button/base/icon_and_text/center";
-                 alias: "elm/button/base/nocontents/search_button";
-                 alias: "elm/button/base/naviframe/title/default";
-                 images {
-                        image: IV_EDC_IMAGE_NAVIFRAME_MORE_BT COMP;
-                        image: IV_EDC_IMAGE_NAVIFRAME_MORE_BT_DIM COMP;
-                        image: IV_EDC_IMAGE_NAVIFRAME_MORE_BT_PRESS COMP;
-                 }
-                 script {
-                        public button_state = BUTTON_STATE_ENABLED;
-                 }
-                 parts {
-                        part { name: "button_image";
-                               scale: 1;
-                               description { state: "default" 0.0;
-                                  image {
-                                         normal: IV_EDC_IMAGE_NAVIFRAME_MORE_BT;
-                                         border: BUTTON_TEXT_STYLE1_BG_BORDER_INC;
-                                         border_scale: 1;
-                                  }
-                               }
-                               description { state: "clicked" 0.0;
-                                  inherit: "default" 0.0;
-                                  image {
-                                         normal: IV_EDC_IMAGE_NAVIFRAME_MORE_BT_PRESS;
-                                  }
-                               }
-                               description { state: "disabled" 0.0;
-                                  inherit: "default" 0.0;
-                                  image {
-                                         normal: IV_EDC_IMAGE_NAVIFRAME_MORE_BT_DIM;
-                                  }
-                               }
-                               description { state: "focused" 0.0;
-                                  inherit: "default" 0.0;
-                                  image {
-                                         normal: IV_EDC_IMAGE_NAVIFRAME_MORE_BT_PRESS;
-                                  }
-                               }
-                        }
-                        part { name: "padding_left_top";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0;
-                                  align: 0.0 0.0;
-                                  rel2 {
-                                         relative: 0.0 0.0;
-                                  }
-                                  min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC;
-                                  fixed: 1 1;
-                                  visible: 0;
-                               }
-                        }
-                        part { name: "bg";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0;
-                                  min: BUTTON_TEXT_STYLE1_BG_MIN_INC;
-                                  visible: 0;
-                               }
-                               description { state: "visible" 0.0;
-                                  inherit: "default" 0.0;
-                                  min: BUTTON_TEXT_STYLE1_VISIBLE_BG_MIN_INC;
-                               }
-                               description { state: "icononly" 0.0;
-                                  inherit: "default" 0.0;
-                                  min: BUTTON_TEXT_STYLE1_ICONONLY_BG_MIN_INC;
-                               }
-                        }
-                        part { name: "padding_right_bottom";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0;
-                                  align: 1.0 1.0;
-                                  rel1 {
-                                         relative: 1.0 1.0;
-                                  }
-                                  min: BUTTON_TEXT_STYLE1_PADDING_MIN_INC;
-                                  fixed: 1 1;
-                                  visible: 0;
-                               }
-                        }
-                        part { name: "icon_rect";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0;
-                                  visible: 0;
-                                  min: 0 0;
-                                  fixed: 1 0;
-                                  rel1 {
-                                         relative: 1.0 1.0;
-                                         to: "padding_left_top";
-                                  }
-                                  rel2 {
-                                         relative: 1.0 0.0;
-                                         to_x: "padding_left_top";
-                                         to_y: "padding_right_bottom";
-                                  }
-                                  align: 0.0 0.5;
-                               }
-                               description { state: "visible" 0.0;
-                                  visible: 0;
-                                  min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC;
-                                  max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_RECT_MIN_MAX_INC;
-                                  fixed: 1 0;
-                                  rel1 {
-                                         relative: 1.0 1.0;
-                                         to: "padding_left_top";
-                                  }
-                                  rel2 {
-                                  relative: 1.0 0.0;
-                                         to_x: "padding_left_top";
-                                         to_y: "padding_right_bottom";
-                                  }
-                                  align: 0.0 0.5;
-                               }
-                               description { state: "icononly" 0.0;
-                                  inherit: "default" 0.0;
-                               }
-                        }
-                        part { name: "padding_after_icon";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0; //when only icon or no icon is there
-                                  align: 0.0 0.0;
-                                  rel1 {
-                                         relative: 1.0 0.0;
-                                         to: "icon_rect";
-                                  }
-                                  rel2 {
-                                         to: "icon_rect";
-                                  }
-                                  fixed: 1 0;
-                                  min: 0 0;
-                                  visible: 0;
-                               }
-                               description { state: "visible" 0.0;
-                                  visible: 0;
-                                  align: 0.0 0.0;
-                                  rel1 {
-                                         relative: 1.0 0.0;
-                                         to: "icon_rect";
-                                  }
-                                  rel2 {
-                                         to: "icon_rect";
-                                  }
-                                  fixed: 1 0;
-                                  min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC;
-                               }
-                               description { state: "icononly" 0.0;
-                                  inherit: "default" 0.0;
-                               }
-                        }
-                        part { name: "padding_before_text";
-                               type: RECT;
-                               scale: 1;
-                               mouse_events: 0;
-                               description { state: "default" 0.0; //when only icon or no icon is there
-                                  align: 1.0 0.5;
-                                  rel1 {
-                                         relative: 0.0 1.0;
-                                         to_x: "elm.text";
-                                         to_y: "padding_left_top";
-                                  }
-                                  rel2 {
-                                         relative: 0.0 0.0;
-                                         to_x: "elm.text";
-                                         to_y: "padding_right_bottom";
-                                  }
-                                  fixed: 1 0;
-                                  min: BUTTON_TEXT_STYLE1_VISIBLE_PADDING_ICON_TEXT_MIN_INC;
-                                  visible: 0;
-                               }
-                        }
-                        part { name: "elm.swallow.content";
-                               type: SWALLOW;
-                               scale: 1;
-                               clip_to: "clipper";
-                               description { state: "default" 0.0;
-                                  visible: 0;
-                                  align: 0.0 0.5;
-                                  rel1 {
-                                         relative: 1.0 1.0;
-                                         to: "padding_left_top";
-                                  }
-                                  rel2 {
-                                         relative: 1.0 0.0;
-                                         to_x: "padding_left_top";
-                                         to_y: "padding_right_bottom";
-                                  }
-                                  fixed: 1 0;
-                               }
-                               description { state: "visible" 0.0;
-                                  fixed: 1 0;
-                                  min: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC;
-                                  max: BUTTON_TEXT_STYLE1_VISIBLE_ICON_MIN_MAX_INC;
-                                  align: 1.0 0.5;
-                                  rel1 {
-                                         relative: 0.0 1.0;
-                                         to_x: "padding_before_text";
-                                         to_y: "padding_left_top";
-                                  }
-                                  rel2 {
-                                         relative: 0.0 0.0;
-                                         to_x: "padding_before_text";
-                                         to_y: "padding_right_bottom";
-                                  }
-                               }
-                               description { state: "icononly" 0.0;
-                                  min: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC;
-                                  max: BUTTON_TEXT_STYLE1_ICONONLY_ICON_MIN_MAX_INC;
-                                  align: 0.5 0.5;
-                               }
-                        }
-                        part { name: "elm.text";
-                               type: TEXT;
-                               mouse_events: 0;
-                               scale: 1;
-                               clip_to: "clipper";
-                               description { state: "default" 0.0;
-                                  visible: 0;
-                                  rel1 {
-                                         relative: 1.0 1.0;
-                                         to_x: "padding_after_icon";
-                                         to_y: "padding_left_top";
-                                  }
-                                  rel2 {
-                                         relative: 0.0 0.0;
-                                         to: "padding_right_bottom";
-                                  }
-                                  color: BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC;
-                                  text {
-                                         font: "HelveticaNeue:style=Medium";
-                                         size: BUTTON_TEXT_STYLE1_FONT_SIZE_INC;
-                                         min: 0 0;
-                                         max: 1 0;
-                                  }
-                               }
-                               description { state: "visible" 0.0;
-                                  inherit: "default" 0.0;
-                                  visible: 1;
-                               }
-                               description { state: "clicked" 0.0;
-                                  inherit: "default" 0.0;
-                                  visible: 1;
-                                  color: BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC;
-                               }
-                               description { state: "disabled" 0.0;
-                                  inherit: "default" 0.0;
-                                  color: 0 0 0 128;
-                               }
-                               description { state: "disabled_visible" 0.0;
-                                  inherit: "default" 0.0;
-                                  color: BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC;
-                                  visible: 1;
-                               }
-                               description { state: "focused" 0.0;
-                                  inherit: "default" 0.0;
-                                  visible: 1;
-                                  color: BUTTON_TEXT_STYLE1_FOCUSED_COLOR_INC;
-                               }
-                        }
-                        part { name: "over2";
-                               type: RECT;
-                               repeat_events: 1;
-                               ignore_flags: ON_HOLD;
-                               description { state: "default" 0.0;
-                                  color: 0 0 0 0;
-                               }
-                        }
-                        part { name: "over3";
-                               type: RECT;
-                               repeat_events: 1;
-                               description { state: "default" 0.0;
-                                  color: 0 0 0 0;
-                               }
-                        }
-                        part { name: "clipper";
-                               type: RECT;
-                               description { state: "default" 0.0;
-                                  color: 255 255 255 255;
-                               }
-                        }
-                        part { name: "disabler";
-                               type: RECT;
-                               description { state: "default" 0.0;
-                                  color: 0 0 0 0;
-                                  visible: 0;
-                               }
-                               description { state: "disabled" 0.0;
-                                  inherit: "default" 0.0;
-                                  visible: 1;
-                               }
-                        }
-                 }
-                 programs {
-                        program { name: "button_click";
-                               signal: "mouse,down,1";
-                               source: "over2";
-                               action: SIGNAL_EMIT "elm,action,press" "";
-                               after: "button_click_anim";
-                        }
-                        program { name: "button_click_anim";
-                               action: STATE_SET "clicked" 0.0;
-                               target: "button_image";
-                               after: "text_clicked";
-                        }
-                        program { name: "text_clicked";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.text", st, 30, vl);
-                                  if (!strcmp(st, "visible"))
-                                        set_state(PART:"elm.text", "clicked", 0.0);
-                               }
-                        }
-                        program { name: "button_unpress";
-                               action: SIGNAL_EMIT "elm,action,unpress" "";
-                        }
-                        program { name: "button_mouseout_clicked";
-                               signal: "mouse,up,1";
-                               source: "over3";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.swallow.content", st, 30, vl);
-                                  if (strcmp(st, "icononly"))
-                                        {
-                                               emit("elm,action,default,text,set", "");
-                                               set_state(PART:"elm.text", "visible", 0.0);
-                                        }
-                                  if (get_int(button_state) != BUTTON_STATE_DISABLED)
-                                        set_state(PART:"button_image", "default", 0.0);
-                               }
-                               after: button_unpress;
-                        }
-                        program { name: "button_unclick3";
-                               signal: "mouse,clicked,1";
-                               source: "over2";
-                               action: SIGNAL_EMIT "elm,action,click" "";
-                        }
-                        program { name: "text_show";
-                               signal: "elm,state,text,visible";
-                               source: "elm";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.swallow.content", st, 30, vl);
-                                  if (!strcmp(st, "icononly"))
-                                        {
-                                               set_state(PART:"elm.swallow.content", "visible", 0.0);
-                                               set_state(PART:"icon_rect", "visible", 0.0);
-                                               set_state(PART:"padding_after_icon", "visible", 0.0);
-                                               set_state(PART:"bg", "visible", 0.0);
-                                        }
-                                  if (get_int(button_state) != BUTTON_STATE_DISABLED)
-                                        set_state(PART:"elm.text", "visible", 0.0);
-                                  else
-                                        set_state(PART:"elm.text", "disabled_visible", 0.0);
-                               }
-                        }
-                        program { name: "text_hide";
-                               signal: "elm,state,text,hidden";
-                               source: "elm";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.swallow.content", st, 30, vl);
-                                  if (!strcmp(st, "visible"))
-                                        {
-                                               set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                                               set_state(PART:"icon_rect", "icononly", 0.0);
-                                               set_state(PART:"padding_after_icon", "icononly", 0.0);
-                                               set_state(PART:"bg", "icononly", 0.0);
-                                        }
-                                  set_state(PART:"elm.text", "default", 0.0);
-                               }
-                        }
-                        program { name: "icon_show";
-                               signal: "elm,state,icon,visible";
-                               source: "elm";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.text", st, 30, vl);
-                                  if (!strcmp(st, "visible"))
-                                        {
-                                               set_state(PART:"elm.swallow.content", "visible", 0.0);
-                                               set_state(PART:"icon_rect", "visible", 0.0);
-                                               set_state(PART:"padding_after_icon", "visible", 0.0);
-                                               set_state(PART:"bg", "visible", 0.0);
-                                        }
-                                  else
-                                        {
-                                               set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                                               set_state(PART:"icon_rect", "icononly", 0.0);
-                                               set_state(PART:"padding_after_icon", "icononly", 0.0);
-                                               set_state(PART:"bg", "icononly", 0.0);
-                                        }
-                               }
-                        }
-                        program { name: "icon_hide";
-                               signal: "elm,state,icon,hidden";
-                               source: "elm";
-                               action: STATE_SET "default" 0.0;
-                               target: "elm.swallow.content";
-                               target: "padding_after_icon";
-                               target: "icon_rect";
-                               target: "bg";
-                        }
-                        program { name: "disable";
-                               signal: "elm,state,disabled";
-                               source: "elm";
-                               action: STATE_SET "disabled" 0.0;
-                               target: "button_image";
-                               target: "disabler";
-                               after: "disable_text";
-                        }
-                        program { name: "disable_text";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.text", st, 30, vl);
-                                  if (!strcmp(st, "visible"))
-                                        set_state(PART:"elm.text", "disabled_visible", 0.0);
-                                  else
-                                        set_state(PART:"elm.text", "disabled", 0.0);
-                                  set_int(button_state, BUTTON_STATE_DISABLED);
-                               }
-                        }
-                        program { name: "enable";
-                               signal: "elm,state,enabled";
-                               source: "elm";
-                               action: STATE_SET "default" 0.0;
-                               target: "button_image";
-                               target: "disabler";
-                               after: "enable_text";
-                        }
-                        program { name: "enable_text";
-                               script {
-                                  new st[31];
-                                  new Float:vl;
-                                  get_state(PART:"elm.text", st, 30, vl);
-                                  if (!strcmp(st, "disabled_visible"))
-                                        set_state(PART:"elm.text", "visible", 0.0);
-                                  else
-                                        set_state(PART:"elm.text", "default", 0.0);
-                                  set_int(button_state, BUTTON_STATE_ENABLED);
-                               }
-                        }
-                        program { name: "focused";
-                               //signal: "elm,action,focus";
-                               //source: "elm";
-                               action: STATE_SET "focused" 0.0;
-                               target: "button_image";
-                               target: "elm.text";
-                        }
-                        program { name: "unfocused";
-                               //signal: "elm,action,unfocus";
-                               //source: "elm";
-                               action: STATE_SET "default" 0.0;
-                               target: "button_image";
-                               after: "unfocus_text";
-                        }
-                        program { name: "unfocus_text";
-                               action: STATE_SET "visible" 0.0;
-                               target: "elm.text";
-                        }
-                 }
-          }
-
-///////////////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/button/base/naviframe_control/default";
-       alias: "elm/button/base/naviframe_control/center";
-       /* TODO: Remove this alias later */
-       alias: "elm/button/base/navigationbar_control/center";
-      script {
-         public button_state = BUTTON_STATE_ENABLED;
-      }
-      images.image: IV_EDC_IMAGE_OPTION_HEADER_BT COMP;
-      images.image: IV_EDC_IMAGE_OPTION_HEADER_BT_DIM COMP;
-      images.image: IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS COMP;
-      parts {
-         part { name: "button_image";
-            type: IMAGE;
-            mouse_events: 1;
-            scale: 1;
-            description { state: "default" 0.0;
-               min: BUTTON_NAVIBAR_CENTER_BG_NORMAL_MIN_W_INC BUTTON_NAVIBAR_CENTER_BG_NORMAL_MIN_H_INC;
-               rel1.offset: 0 0;
-               rel2.offset: -1 -1;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT;
-               image.border: BUTTON_NAVIBAR_CENTER_BG_NORMAL_BORDER_INC;
-               color: IV_EDC_OPTION_HEADER_BT_TEXT_COLOR_INC;
-            }
-            description { state: "disabled" 0.0;
-               inherit: "default" 0.0;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT; /*FIXME*/
-            }
-            description { state: "clicked" 0.0;
-               inherit: "default" 0.0;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS;
-            }
-         }
-         part {
-            name: "padding_left_top";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               align: 0.0 0.0;
-               rel1.relative: 0.0 0.0;
-               rel2.relative: 0.0 0.0;
-               min: BUTTON_NAVIBAR_CENTER_PADDING_MIN_MAX_INC;
-               fixed: 1 1;
-               visible: 0;
-            }
-         }
-         part {
-            name: "padding_right_bottom";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               align: 1.0 1.0;
-               rel1.relative: 1.0 1.0;
-               rel2.relative: 1.0 1.0;
-               min: BUTTON_NAVIBAR_CENTER_PADDING_MIN_MAX_INC;
-               fixed: 1 1;
-               visible: 0;
-            }
-         }
-         part {
-            name: "icon_rect";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               visible: 1;
-               min: 0 0;
-               fixed: 1 0;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; }
-               align: 0.0 0.5;
-               color: 0 0 0 0;
-            }
-            description { state: "visible" 0.0;
-               visible: 1;
-               min: BUTTON_NAVIBAR_CENTER_ICON_RECT_VISIBLE_MIN_SIZE;
-               fixed: 1 0;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; }
-               align: 0.0 0.5;
-               color: 0 0 0 0;
-            }
-            description { state: "icononly" 0.0;
-               inherit: "default" 0.0;
-            }
-         }
-         part {
-            name: "padding_after_icon";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0; //when only icon or no icon is there
-               align: 0.0 0.0;
-               rel1 { relative: 1.0 0.0; to: "icon_rect"; }
-               rel2 { relative: 1.0 1.0; to: "icon_rect"; }
-               fixed: 1 0;
-               min: 0 0;
-               color: 0 0 0 0;
-            }
-            description { state: "visible" 0.0;
-               visible: 1;
-               align: 0.0 0.0;
-               rel1 { relative: 1.0 0.0; to: "icon_rect"; }
-               rel2 { relative: 1.0 1.0; to: "icon_rect"; }
-               fixed: 1 0;
-               min: BUTTON_NAVIBAR_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC;
-               color: 0 0 0 0;
-            }
-            description { state: "icononly" 0.0;
-               inherit: "default" 0.0;
-            }
-         }
-         part {
-            name: "padding_before_text";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0; //when only icon or no icon is there
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 1.0; to_x: "elm.text"; to_y: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to_x: "elm.text"; to_y: "padding_right_bottom"; }
-               fixed: 1 0;
-               min: BUTTON_NAVIBAR_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "elm.swallow.content";
-            type: SWALLOW;
-            scale: 1;
-            clip_to: "clipper";
-            description { state: "default" 0.0;
-               visible: 0;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; }
-               fixed: 1 0;
-            }
-            description { state: "visible" 0.0;
-               fixed: 1 0;
-               visible: 1;
-               min: BUTTON_NAVIBAR_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC;
-               max: BUTTON_NAVIBAR_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 1.0; to_x: "padding_before_text"; to_y: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to_x: "padding_before_text"; to_y: "padding_right_bottom"; }
-               aspect: 1.0 1.0;
-               aspect_preference: VERTICAL;
-            }
-            description { state: "icononly" 0.0;
-               visible: 1;
-               min: BUTTON_NAVIBAR_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC;
-               max: BUTTON_NAVIBAR_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; }
-               align: 0.5 0.5;
-               aspect: 1.0 1.0;
-               aspect_preference: VERTICAL;
-            }
-         }
-         part { name: "elm.text";
-            type: TEXT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "clipper";
-            description { state: "default" 0.0;
-               visible: 0;
-               rel1 { relative: 1.0 1.0; to_x: "padding_after_icon"; to_y: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; }
-               align: 0.5 0.5;
-               color: 255 255 255 255;
-               text {
-                  font: "HelveticaNeue:style=Medium";
-                  size: BUTTON_NAVIBAR_CENTER_TEXT_FONT_SIZE_INC;
-                  min: 0 0;
-                  max: 1 0;
-                  align: 0.5 0.5;
-               }
-            }
-            description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-            }
-            description { state: "clicked" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               min: 0 0;
-            }
-            description { state: "focused" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               min: 0 0;
-               color: 255 255 255 255;
-            }
-         }
-         part { name: "over2";
-            type: RECT;
-            mouse_events: 1;
-            repeat_events: 1;
-            ignore_flags: ON_HOLD;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "over3";
-            type: RECT;
-            mouse_events: 1;
-            repeat_events: 1;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "clipper";
-            type: RECT;
-            description { state: "default" 0.0;
-               color: 255 255 255 255;
-            }
-            description { state: "disabled" 0.0;
-               color: 255 255 255 127;
-            }
-         }
-         part { name: "disabler";
-            type: RECT;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-               visible: 0;
-            }
-            description { state: "disabled" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-            }
-         }
-      }
-      programs {
-         program { name: "button_click";
-            signal: "mouse,down,1";
-            source: "over2";
-            action: SIGNAL_EMIT "elm,action,press" "";
-            after: "button_click_anim";
-         }
-         program { name: "button_click_anim";
-            action: STATE_SET "clicked" 0.0;
-            target: "button_image";
-            after: "text_clicked";
-         }
-         program { name: "text_clicked";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "visible"))
-                  set_state(PART:"elm.text", "clicked", 0.0);
-            }
-         }
-         program { name: "button_unpress";
-            action: SIGNAL_EMIT "elm,action,unpress" "";
-         }
-         program { name: "button_mouseout_clicked";
-            signal: "mouse,up,1";
-            source: "over3";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (strcmp(st, "icononly"))
-                 {
-                    emit("elm,action,default,text,set", "");
-                    set_state(PART:"elm.text", "visible", 0.0);
-                 }
-               if(get_int(button_state) != BUTTON_STATE_DISABLED)
-                  set_state(PART:"button_image", "default", 0.0);
-            }
-            after: button_unpress;
-         }
-         program { name: "button_unclick3";
-            signal: "mouse,clicked,1";
-            source: "over2";
-            action: SIGNAL_EMIT "elm,action,click" "";
-         }
-         program { name: "text_show";
-            signal: "elm,state,text,visible";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (!strcmp(st, "icononly"))
-               {
-                  set_state(PART:"elm.swallow.content", "visible", 0.0);
-                  set_state(PART:"icon_rect", "visible", 0.0);
-                  set_state(PART:"padding_after_icon", "visible", 0.0);
-               }
-               set_state(PART:"elm.text", "visible", 0.0);
-            }
-         }
-         program { name: "text_hide";
-            signal: "elm,state,text,hidden";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (!strcmp(st, "visible"))
-               {
-                  set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                  set_state(PART:"icon_rect", "icononly", 0.0);
-                  set_state(PART:"padding_after_icon", "icononly", 0.0);
-               }
-               set_state(PART:"elm.text", "default", 0.0);
-            }
-         }
-         program { name: "icon_show";
-            signal: "elm,state,icon,visible";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "visible"))
-               {
-                  set_state(PART:"elm.swallow.content", "visible", 0.0);
-                  set_state(PART:"icon_rect", "visible", 0.0);
-                  set_state(PART:"padding_after_icon", "visible", 0.0);
-               }
-               else
-               {
-                  set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                  set_state(PART:"icon_rect", "icononly", 0.0);
-                  set_state(PART:"padding_after_icon", "icononly", 0.0);
-               }
-            }
-         }
-         program { name: "icon_hide";
-            signal: "elm,state,icon,hidden";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "elm.swallow.content";
-            target: "icon_rect";
-            target: "padding_after_icon";
-         }
-         program { name: "disable";
-            signal: "elm,state,disabled";
-            source: "elm";
-            action: STATE_SET "disabled" 0.0;
-            target: "button_image";
-            target: "clipper";
-            target: "disabler";
-            after: "disable_text";
-         }
-         program { name: "disable_text";
-            script {
-               set_int(button_state, BUTTON_STATE_DISABLED);
-               set_state(PART:"elm.text", "visible", 0.0);
-            }
-         }
-         program { name: "enable";
-            signal: "elm,state,enabled";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-            target: "clipper";
-            target: "disabler";
-            after: "enable_text";
-         }
-         program { name: "enable_text";
-            script {
-               set_int(button_state, BUTTON_STATE_ENABLED);
-               set_state(PART:"elm.text", "visible", 0.0);
-            }
-         }
-         program { name: "focused";
-            action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
-         }
-         program { name: "unfocused";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
-         }
-      }
-   }
-
-///////////////////////////////////////////////////////////////////////////////////////
-   group { name: "elm/button/base/multiline";
-      alias: "elm/button/base/text_only/multiline";
-      images {
-         image: IV_EDC_IMAGE_OPTION_HEADER_BT COMP;
-         image: IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS COMP;
-         image: IV_EDC_IMAGE_OPTION_HEADER_BT_DIM COMP;
-      }
-      script {
-         public button_state = BUTTON_STATE_ENABLED;
-      }
-      styles{
-         style { name: "btn_multiline_style";
-            base: "font=HelveticaNeue:style=Medium font_size="BUTTON_MULTILINE_TEXT_FONT_SIZE_INC" align=center color=#ffffff wrap=mixed";
-            tag: "br" "\n";
-            tag: "ps" "ps";
-            tag: "tab" "\t";
-         }
-      }
-      parts {
-         part { name: "button_image";
-            mouse_events: 1;
-            scale: 1;
-            description { state: "default" 0.0;
-               min: 10 46;
-               image {
-                  normal: IV_EDC_IMAGE_OPTION_HEADER_BT;
-                  border: 4 4 3 3;
-                  border_scale: 1;
-               }
-            }
-            description { state: "clicked" 0.0;
-               inherit: "default" 0.0;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS;
-            }
-            description { state: "disabled" 0.0;
-               inherit: "default" 0.0;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT_DIM;
-            }
-            description { state: "focused" 0.0;
-               inherit: "default" 0.0;
-               image.normal: IV_EDC_IMAGE_OPTION_HEADER_BT_PRESS;
-            }
-         }
-         part {
-            name: "padding_left_top";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               align: 0.0 0.0;
-               rel1.relative: 0.0 0.0;
-               rel2.relative: 0.0 0.0;
-               min: 2 2;
-               fixed: 1 1;
-               visible: 0;
-            }
-         }
-         part {
-            name: "padding_right_bottom";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               align: 1.0 1.0;
-               rel1.relative: 1.0 1.0;
-               rel2.relative: 1.0 1.0;
-               min: 2 2;
-               fixed: 1 1;
-               visible: 0;
-            }
-         }
-         part {
-            name: "icon_rect";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0;
-               visible: 1;
-               min: 0 40;
-               fixed: 1 0;
-               rel1 { relative: 0.0 1.0; to_x: "elm.swallow.content"; to_y: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "elm.swallow.content"; to_y: "padding_right_bottom"; }
-               align: 0.0 0.5;
-               color: 0 0 0 0;
-            }
-         }
-         part {
-            name: "padding_icon_text";
-            type: RECT;
-            scale: 1;
-            mouse_events: 0;
-            description { state: "default" 0.0; //when only icon or no icon is there
-               align: 0.0 0.0;
-               rel1 { relative: 1.0 0.0; to: "icon_rect"; }
-               rel2 { relative: 1.0 1.0; to: "icon_rect"; }
-               fixed: 1 0;
-               min: 0 0;
-               color: 0 0 0 0;
-            }
-            description { state: "icononly" 0.0;
-               inherit: "default" 0.0;
-            }
-            description { state: "visible" 0.0; //when icon is visible
-               align: 0.0 0.0;
-               rel1 { relative: 1.0 0.0; to: "icon_rect"; }
-               rel2 { relative: 1.0 1.0; to: "icon_rect"; }
-               fixed: 1 0;
-               min: 5 0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "elm.swallow.content";
-            type: SWALLOW;
-            scale: 1;
-            description { state: "default" 0.0;
-               visible: 0;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; }
-               fixed: 1 0;
-            }
-            description { state: "visible" 0.0;
-               fixed: 1 0;
-               visible: 1;
-               align: 0.0 0.5;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 1.0 0.0; to_x: "padding_left_top"; to_y: "padding_right_bottom"; }
-               aspect: 1.0 1.0;
-               aspect_preference: VERTICAL;
-            }
-            description { state: "icononly" 0.0;
-               visible: 1;
-               min: 40 40;
-               rel1 { relative: 1.0 1.0; to: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; }
-               align: 0.5 0.5;
-               aspect: 1.0 1.0;
-               aspect_preference: VERTICAL;
-            }
-         }
-         part { name: "elm.text";
-            type: TEXTBLOCK;
-            mouse_events: 0;
-            scale: 1;
-            description { state: "default" 0.0;
-               visible: 0;
-               rel1 { relative: 1.0 1.0; to_x: "padding_icon_text"; to_y: "padding_left_top"; }
-               rel2 { relative: 0.0 0.0; to: "padding_right_bottom"; }
-               align: 0.5 0.5;
-               color: BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC;
-               text {
-                  style: "btn_multiline_style";
-                  min: 0 0;
-                  max: 0 1;
-               }
-            }
-            description { state: "visible" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               min: 80 0;
-            }
-            description { state: "clicked" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               min: 0 0;
-               color: BUTTON_TEXT_STYLE1_PRESSED_COLOR_INC;
-            }
-            description { state: "disabled" 0.0;
-               inherit: "default" 0.0;
-               color: 0 0 0 128;
-            }
-            description { state: "disabled_visible" 0.0;
-               inherit: "default" 0.0;
-               color: BUTTON_NAVIBAR_FUNCTION_BUTTON_TEXT_DISABLED_COLOR_INC;
-               visible: 1;
-               min: 80 0;
-            }
-            description { state: "focused" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-               min: 0 0;
-               color: BUTTON_TEXT_STYLE1_DISABLED_COLOR_INC;
-            }
-         }
-         part { name: "over2";
-            type: RECT;
-            mouse_events: 1;
-            repeat_events: 1;
-            ignore_flags: ON_HOLD;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "over3";
-            type: RECT;
-            mouse_events: 1;
-            repeat_events: 1;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-            }
-         }
-         part { name: "disabler";
-            type: RECT;
-            description { state: "default" 0.0;
-               color: 0 0 0 0;
-               visible: 0;
-            }
-            description { state: "disabled" 0.0;
-               inherit: "default" 0.0;
-               visible: 1;
-            }
-         }
-      }
-      programs {
-         program { name: "button_click";
-            signal: "mouse,down,1";
-            source: "over2";
-            action: SIGNAL_EMIT "elm,action,press" "";
-            after: "button_click_anim";
-         }
-         program { name: "button_click_anim";
-            action: STATE_SET "clicked" 0.0;
-            target: "button_image";
-            after: "text_clicked";
-         }
-         program { name: "text_clicked";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "visible"))
-                  set_state(PART:"elm.text", "clicked", 0.0);
-            }
-         }
-         program { name: "button_unpress";
-            action: SIGNAL_EMIT "elm,action,unpress" "";
-         }
-         program { name: "button_mouseout_clicked";
-            signal: "mouse,up,1";
-            source: "over3";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (strcmp(st, "icononly"))
-               {
-                  emit("elm,action,default,text,set", "");
-                  set_state(PART:"elm.text", "visible", 0.0);
-               }
-               if(get_int(button_state) != BUTTON_STATE_DISABLED)
-                  set_state(PART:"button_image", "default", 0.0);
-            }
-            after: button_unpress;
-         }
-         program { name: "button_unclick3";
-            signal: "mouse,clicked,1";
-            source: "over2";
-            action: SIGNAL_EMIT "elm,action,click" "";
-         }
-         program { name: "text_show";
-            signal: "elm,state,text,visible";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (!strcmp(st, "icononly"))
-               {
-                  set_state(PART:"elm.swallow.content", "visible", 0.0);
-                  set_state(PART:"padding_icon_text", "visible", 0.0);
-               }
-               if(get_int(button_state) != BUTTON_STATE_DISABLED)
-                 set_state(PART:"elm.text", "visible", 0.0);
-               else
-                 set_state(PART:"elm.text", "disabled_visible", 0.0);
-            }
-         }
-         program { name: "text_hide";
-            signal: "elm,state,text,hidden";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.swallow.content", st, 30, vl);
-               if (!strcmp(st, "visible"))
-               {
-                  set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                  set_state(PART:"padding_icon_text", "icononly", 0.0);
-               }
-               set_state(PART:"elm.text", "default", 0.0);
-            }
-         }
-         program { name: "icon_show";
-            signal: "elm,state,icon,visible";
-            source: "elm";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "visible"))
-               {
-                  set_state(PART:"elm.swallow.content", "visible", 0.0);
-                  set_state(PART:"padding_icon_text", "visible", 0.0);
-               }
-               else
-               {
-                  set_state(PART:"elm.swallow.content", "icononly", 0.0);
-                  set_state(PART:"padding_icon_text", "icononly", 0.0);
-               }
-            }
-         }
-         program { name: "icon_hide";
-            signal: "elm,state,icon,hidden";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "elm.swallow.content";
-            target: "padding_icon_text";
-         }
-         program { name: "disable";
-            signal: "elm,state,disabled";
-            source: "elm";
-            action: STATE_SET "disabled" 0.0;
-            target: "button_image";
-            target: "disabler";
-            after: "disable_text";
-         }
-         program { name: "disable_text";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "visible"))
-                  set_state(PART:"elm.text", "disabled_visible", 0.0);
-               else
-                  set_state(PART:"elm.text", "disabled", 0.0);
-               set_int(button_state, BUTTON_STATE_DISABLED);
-            }
-         }
-         program { name: "enable";
-            signal: "elm,state,enabled";
-            source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-            target: "disabler";
-            after: "enable_text";
-         }
-         program { name: "enable_text";
-            script {
-               new st[31];
-               new Float:vl;
-               get_state(PART:"elm.text", st, 30, vl);
-               if (!strcmp(st, "disabled_visible"))
-                  set_state(PART:"elm.text", "visible", 0.0);
-               else
-                  set_state(PART:"elm.text", "default", 0.0);
-               set_int(button_state, BUTTON_STATE_ENABLED);
-            }
-         }
-         program { name: "focused";
-            //signal: "elm,action,focus";
-            //source: "elm";
-            action: STATE_SET "focused" 0.0;
-            target: "button_image";
-            target: "elm.text";
-         }
-         program { name: "unfocused";
-            //signal: "elm,action,unfocus";
-            //source: "elm";
-            action: STATE_SET "default" 0.0;
-            target: "button_image";
-            after: "unfocus_text";
-         }
-         program { name: "unfocus_text";
-            action: STATE_SET "visible" 0.0;
-            target: "elm.text";
-         }
-      }
-   }
-
-}
index 4c38245..fbba4d7 100755 (executable)
@@ -1,18 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 
 /*
@@ -25,6 +25,9 @@
 #define BTN_THUMB_PLAY_W_INC 64
 #define BTN_THUMB_PLAY_H_INC 64
 
+#define CONTROLBAR_LARGE_HEIGHT_INC            122
+#define CONTROLBAR_LARGE_LANDSCAPE_H           108
+
 #define BTN_THUMB_PLAY         "T01_btn_thumbnail_play.png"
 
 collections {
@@ -50,7 +53,7 @@ collections {
                        }
 
                        part {
-                               name: "detailsview.genlist";
+                               name: "details_view.genlist";
                                type: SWALLOW;
                                repeat_events : 0;
                                mouse_events : 1;
@@ -60,11 +63,8 @@ collections {
                                        visible: 1;
                                        rel1 { relative: 0.0 0.0; }
                                        rel2 { relative: 1.0 1.0; }
-//                                     rel2 { relative: 1.0 0.0; to_y: "detailsview.ctrlbar";}
-//                                     rel2 { relative: 0.0 0.0; to_x: "detailsview.thumb"; to_y: "detailsview.ctrlbar";}
                                }
                        }
-
                }
        }       // end of group
 }      // end of collections
index 519f1da..7a19e6a 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 collections {
        group {
index 95fff2d..38b1169 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #define DEFINE_ICON(_name, _fname)        \
 images { image: _fname COMP; }                   \
@@ -46,15 +45,18 @@ collections { group { name: _name;                    \
 
 
 #define BTN_PLAY_VIDEO                 "T01_btn_play.png"
+#define BTN_PAUSED_VIDEO               "T01_btn_paused.png"
 
 DEFINE_ICON("btn.video.play",                  BTN_PLAY_VIDEO)
+DEFINE_ICON("btn.video.paused",                        BTN_PAUSED_VIDEO)
 
 #define HEADER_ICON_PATH               "01_Header icon"
 
 #define HEADER_ICON_DONE               "01_header_icon_done.png"
 #define HEADER_ICON_CANCEL     "01_header_icon_cancel.png"
-#define HEADER_ICON_OTHERS     "01_header_icon_others.png"
+#define HEADER_ICON_ADD                "01_header_icon_add.png"
 
 DEFINE_ICON("navi.icon.done",          HEADER_ICON_PATH"/"HEADER_ICON_DONE)
 DEFINE_ICON("navi.icon.cancel",                HEADER_ICON_PATH"/"HEADER_ICON_CANCEL)
-DEFINE_ICON("navi.icon.others",                HEADER_ICON_PATH"/"HEADER_ICON_OTHERS)
+DEFINE_ICON("navi.icon.add",                   HEADER_ICON_PATH"/"HEADER_ICON_ADD)
+
index 1b8e803..76264ea 100755 (executable)
@@ -1,27 +1,26 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 
 // main view
 
-#define LAYOUT_INDICATOR_HEIGHT_INC 50
-#define LAYOUT_INDICATOR_COLOR 92 92 92 255            // Same as Naviframe
+#include "ivug-theme.edc"
 
 #define NAVI_VIEW_HEIGHT       120
-#define CTRL_VIEW_HEIGHT       95
+#define CTRL_VIEW_HEIGHT       114
 
 collections {
 group {
@@ -72,7 +71,7 @@ group {
                                state: "default" 0.0;
                                align: 0.5 0.0;
                                visible: 1;
-                               rel1 { relative: 0.0 0.0;}
+                               rel1 { relative: 0.0 0.0; }
                                rel2 { relative: 1.0 1.0;}
                        }
 
@@ -83,14 +82,27 @@ group {
                        }
                }
 
+               part { name: "mainview.area";
+                       type: SWALLOW;
+                       scale: 1;
+                       mouse_events: 0;
+                       repeat_events : 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.5 0.5;
+                               visible: 1;
+                               rel1 { relative: 0.0 0.0; offset: 0 LAYOUT_INDICATOR_HEIGHT_INC;}
+                               rel2 { relative: 1.0 1.0;}
+                       }
+               }
        }
 
        programs {
            program {
-               name: "main_view_click";
-               signal: "mouse,down,1";
-               source: "mainview";
-               action: SIGNAL_EMIT "elm,action,press" "";
+                       name: "main_view_click";
+                       signal: "mouse,down,1";
+                       source: "mainview";
+                       action: SIGNAL_EMIT "elm,action,press" "";
            }
            program {
                name: "hide_menu";
@@ -111,21 +123,18 @@ group {
                after: "show_end";
            }
            program {
-                       name: "show_end";
-                       action: SIGNAL_EMIT "menu,show,finished" "edc";
+               name: "show_end";
+               action: SIGNAL_EMIT "menu,show,finished" "edc";
            }
            program {
-                       name: "hide_end";
-                       action: SIGNAL_EMIT "menu,hide,finished" "edc";
+               name: "hide_end";
+               action: SIGNAL_EMIT "menu,hide,finished" "edc";
            }
 
        }
 
 }
 
-#define EMPTY_VIEW_HEIGHT      (720-LAYOUT_INDICATOR_HEIGHT_INC-NAVI_VIEW_HEIGHT-CTRL_VIEW_HEIGHT)
-//#define EMPTY_VIEW_HEIGHT    1000
-
 group {
                name: "navi_content";
                parts {
@@ -133,7 +142,8 @@ group {
                                name: "base";
                                type: RECT;
                                scale: 1;
-                               repeat_events: 1;
+                               mouse_events: 1;
+                               repeat_events: 0;
                                description {
                                        state: "default" 0.0;
 
@@ -142,7 +152,6 @@ group {
                                        color: 0 0 0 0;
                                }
                        }
-
                        part { name: "mainview.slider";
                                type: SWALLOW;
                                mouse_events: 1;
@@ -153,7 +162,46 @@ group {
                                rel1 { relative: 0.0 0.0; }
                                rel2 { relative: 1.0 1.0; }
                                }
-                       }
+                       }\r
+\r
+                       part {
+                               name: "controlbar_area";
+                               type: RECT;
+                               scale : 1;
+                               mouse_events:0;
+                               description {
+                                       state: "default" 0.0;
+                                       min : 0 114;
+                                       fixed : 0 1;
+                                       rel1{ relative : 0.0 1.0; }
+                                       rel2{ relative : 1.0 1.0; }
+                                       align: 0.5 1.0;
+                                       color: 0 0 0 0;
+                                       visible : 1;
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "zoom_slider_area";\r
+                               type: SWALLOW;\r
+                               scale : 1;
+                               mouse_events:1;\r
+                               description {
+                                       state: "default" 0.0;\r
+                                       visible : 1;\r
+                                       min : 375 100;\r
+                                       fixed : 0 1;\r
+                                       color: 255 0 0 255;\r
+                                       rel1{ relative : 0.5 0.0; to_y:"controlbar_area";}\r
+                                       rel2{ relative : 0.5 0.0; to_y:"controlbar_area";}\r
+                                       align: 0.5 1.0;\r
+                               }\r
+                               description {\r
+                                       state: "hide" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
 
 #define ICON_ZOOM_GAP  50
 
@@ -180,19 +228,23 @@ group {
 
                                        type: IMAGE;
                                        scale: 1;
-                                       mouse_events: 1;
+                                       mouse_events: 0;\r
                                        description {
                                                visible: 1;
                                                fixed: 1 1;
                                                min: 56 56;
                                                state: "default" 0.0;
-                                               align: 0.5 0.0;
-                                               /*rel1 { relative: (238/720) ((EMPTY_VIEW_HEIGHT-50-56)/EMPTY_VIEW_HEIGHT);}
-                                               rel2 { relative: (238/720) ((EMPTY_VIEW_HEIGHT-50-56)/EMPTY_VIEW_HEIGHT);}*/
-                                               rel1 { relative: ((238+28)/720) 1.0;
-                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT;}
+                                               align: 1.0 0.0;\r
+                                               /*rel1 { relative: ((238+28)/720) 1.0;\r
+                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}\r
                                                rel2 { relative: ((238+28)/720) 1.0;
-                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT;}
+                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}*/\r
+                                               rel1 { relative: 0.0 1.0;\r
+                                                       to_x: "zoom_slider_area";\r
+                                                       offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;}\r
+                                               rel2 { relative: 0.0 1.0;\r
+                                                       to_x: "zoom_slider_area";\r
+                                                       offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;}\r
                                                image.normal: ICON_ZOOM_OUT;
                                        }
 
@@ -243,19 +295,23 @@ group {
 
                                        type: IMAGE;
                                        scale: 1;
-                                       mouse_events: 1;
+                                       mouse_events: 0;\r
                                        description {
                                                visible: 1;
                                                fixed: 1 1;
                                                min: 56 56;
                                                state: "default" 0.0;
-                                               align: 0.5 0.0;
-                                               /*rel1 { relative: ((238+56+132)/720) ((EMPTY_VIEW_HEIGHT-50-56)/EMPTY_VIEW_HEIGHT);}
-                                               rel2 { relative: ((238+56+132)/720) ((EMPTY_VIEW_HEIGHT-50-56)/EMPTY_VIEW_HEIGHT);}*/
-                                               rel1 { relative: ((720-238-28)/720) 1.0;
-                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT;}
+                                               align: 0.0 0.0;\r
+                                               /*rel1 { relative: ((720-238-28)/720) 1.0;\r
+                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}\r
                                                rel2 { relative: ((720-238-28)/720) 1.0;
-                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT;}
+                                                        offset: 0.0 -56-CTRL_VIEW_HEIGHT-10;}*/\r
+                                               rel1 { relative: 1.0 1.0;\r
+                                                       to_x: "zoom_slider_area";\r
+                                                       offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;}\r
+                                               rel2 { relative: 1.0 1.0;\r
+                                                       to_x: "zoom_slider_area";\r
+                                                       offset: 0.0 -56-CTRL_VIEW_HEIGHT-20;}\r
                                                image.normal: ICON_ZOOM_IN;
                                        }
 
@@ -350,7 +406,21 @@ group {
 
                }
 
-               programs {
+               programs {\r
+                       program {\r
+                               name: "hide_zoom_slider";\r
+                               signal: "elm,state,zoom_slider,hide";\r
+                               source: "elm";
+                               action: STATE_SET "hide" 0.0;
+                               target: "zoom_slider_area";\r
+                       }\r
+                       program {\r
+                               name: "show_zoom_slider";\r
+                               signal: "elm,state,zoom_slider,show";\r
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;\r
+                               target: "zoom_slider_area";\r
+                       }\r
                        program {
                                name: "hide_btn_zoom_out";
                                signal: "elm,state,btn_zoom_out,hide";
@@ -455,7 +525,7 @@ group {
                                target: "mainview.btn_zoom_in";
                        }
                }
-
        }
+
 }
 
index d2d0368..0aa6895 100755 (executable)
@@ -1,66 +1,26 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 /*
 * Refer to themes/groups/naviframe.edc
 */
 
-#define NAVIFRAME_VIEW_TRANS_TIME 0.3
-#define NAVIFRAME_TEXT_PADDING_INC 144
-#define NAVIFRAME_TEXT_PADDING_MORE_BUTTON_INC 278
-#define NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 186
-
-#define NAVIFRAME_TITLE_H_INC 100
-#define NAVIFRAME_OH_CLOSED_H_INC 8
-#define NAVIFRAME_OH_OPENED_H_INC 106
-#define NAVIFRAME_OH_CONTENT_H_INC 74
-#define NAVIFRAME_OH_PADDING_INC 16
-#define NAVIFRAME_OH_OPENED_DOUBLE_H_INC 196
-#define NAVIFRAME_OH_SHADOW_H_INC 0
-#define NAVIFRAME_INDICATOR_W_INC 128
-#define NAVIFRAME_PADDING_EXPANDED_INC 141
-#define NAVIFRAME_TITLE_FONT_SIZE_INC 36
-#define NAVIFRAME_ICON_SIZE_INC 32 32
-#define NAVIFRAME_ICON_PADDING_INC 16 0
-#define NAVIFRAME_OH_ARROW_SIZE_INC 19 12
-#define NAVIFRAME_TITLE_TEXT_COLOR_INC 235 236 237 255
-#define NAVIFRAME_TITLE_BG_COLOR_INC 92 92 92 255
-#define NAVIFRAME_TITLE_LEFT_SEPARATOR_COLOR_INC 3 3 3 255
-#define NAVIFRAME_TITLE_RIGHT_SEPARATOR_COLOR_INC 52 52 52 255
-#define NAVIFRAME_OH_BORDER_INC 0 0 4 0
+#include "ivug-theme.edc"
 
-#define NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 10
-#define NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 10
-#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 124 80
-#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144
-#define NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 52
-#define NAVIFRAME_CONTROLBAR_BG_COLOR_INC 0 0 0 255
-#define CONTROLBAR_LARGE_HEIGHT_INC 95//122
-#define CONTROLBAR_SMALL_HEIGHT_INC CONTROLBAR_LARGE_HEIGHT_INC//102
-#define NAVIFRAME_PREV_BTN_W_INC 124
-#define NAVIFRAME_CONTROLBAR_PADDING_INC 5
-#define NAVIFRAME_SEGMENT_TITLE_H_INC 136
-
-#define NAVIFRAME_TITLE_SEGMENT_FONT_SIZE_INC 28
-#define NAVIFRAME_TITLE_SEGMENT_TEXT_H_INC 50
-#define NAVIFRAME_TITLE_SEGMENT_H_INC 74
-
-#define LAYOUT_INDICATOR_HEIGHT_INC 50
-#define LAYOUT_INDICATOR_COLOR 0 0 0 0 //92 92 92 255          // Same as Naviframe
+#define NAVIFRAME_VIEW_TRANS_TIME 0.3
 
 ///////////////////////////////////////////////////////////////////////////
 // Naviframe
@@ -76,11 +36,14 @@ collections {
          }
       }
    }
-   group { name:"elm/naviframe/item/basic/ivug/default";
-      alias:"elm/naviframe/item/1line/ivug/default";
+   group { name:"elm/naviframe/item/basic/ivug-main/default";
+      alias:"elm/naviframe/item/1line/ivug-main/default";
       images {
-         image: "T01_control_top_bg.png" COMP;
-         image: "T01_control_top_arrow.png" COMP;
+          image: "00_winset_control_top_bg.png" COMP;
+          image: "00_winset_control_top_arrow.png" COMP;
+          image: "00_winset_title_line.png" COMP;
+          image: "00_winset_control_toolbar_bg.png" COMP;
+          image: "00_winset_title_bg.png" COMP;
       }
       script {
          public oh_show = 0;     //optionheader show/hide
@@ -91,31 +54,9 @@ collections {
          public right_btn_visible = 0; //whether right btn is shown
          public more_btn_visible = 0; //whether more btn is shown
          public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
+         public subtitle_visible = 0; //whether subtitle is shown
       }
       parts {
-               part {
-                       name: "indicator";
-                       type: RECT;
-                       scale: 1;
-                       repeat_events : 0;
-                       description {
-                               state: "default" 0.0;
-                               rel1 { relative: 0.0 0.0; }
-                               rel2 { relative: 1.0 0.0; }
-                               min: 0 LAYOUT_INDICATOR_HEIGHT_INC;
-                               fixed: 0 1;
-                               align: 0.5 0.0;
-                               color: LAYOUT_INDICATOR_COLOR;
-                               visible: 1;
-                       }
-
-                       description {
-                               state: "hide" 0.0;
-                               inherit: "default" 0.0;
-                               visible: 0;
-                       }
-               }
-
          part { name: "base";
             type: RECT;
             mouse_events: 0;
@@ -160,7 +101,7 @@ collections {
             }
          }
 
-         part { name: "elm.swallow.detail";
+         part { name: "elm.swallow.detail";            // Detail view.
             type: SWALLOW;
             scale: 1;
             repeat_events: 0;
@@ -177,8 +118,31 @@ collections {
             }
          }
 
+       part {
+               name: "indicator";
+               type: RECT;
+               scale: 1;
+               repeat_events : 0;
+               clip_to: "content_clip";
+               description {
+                       state: "default" 0.0;
+                       min: 0 LAYOUT_INDICATOR_HEIGHT_INC;
+//                     max: 0 LAYOUT_INDICATOR_HEIGHT_INC;
+                       rel1.relative: 0.0 0.0;
+                       rel2.relative: 1.0 0.0;
+                       fixed: 0 1;
+                       align: 0.5 0.0;
+                       color: LAYOUT_INDICATOR_COLOR_INC;
+                       visible: 1;
+               }
+
+               description {
+                       state: "hide" 0.0;
+                       inherit: "default" 0.0;
+                       visible: 0;
+               }
+       }
          part { name: "title_bg";
-            type: RECT;
             scale: 1;
             description { state: "default" 0.0;
                min: 1 NAVIFRAME_TITLE_H_INC;
@@ -186,7 +150,7 @@ collections {
                fixed: 0 1;
                rel1 { relative: 0.0 0.0; to: "base"; }
                rel2 { relative: 1.0 0.0; to: "base"; }
-               color: NAVIFRAME_TITLE_BG_COLOR_INC;
+               image.normal: "00_winset_title_bg.png";
             }
             description { state: "hide" 0.0;
                inherit: "default" 0.0;
@@ -214,7 +178,7 @@ collections {
                rel1.relative: 0 1;
                rel2.to: "title_bg";
                visible: 0;
-               image { normal: "T01_control_top_bg.png";
+               image { normal: "00_winset_control_top_bg.png";
                   border: NAVIFRAME_OH_BORDER_INC;
                }
             }
@@ -259,7 +223,7 @@ collections {
                min: 0 NAVIFRAME_OH_CONTENT_H_INC;
                rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }
                rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }
-               fixed: 0 1;
+               fixed: 1 1;
                align: 0.0 0.0;
             }
          }
@@ -276,76 +240,55 @@ collections {
                visible: 0;
             }
          }
-         part { name: "padding_before_left_btn";
-            type: RECT;
-            mouse_events: 0;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 0.0 0.5;
-               rel1 { relative: 0.0 0.0; to: "title_bg"; }
-               rel2 { relative: 0.0 1.0; to: "title_bg"; }
-               visible: 0;
-            }
-         }
-         part { name: "padding_after_left_btn";
-            type: RECT;
-            scale: 1;
-            clip_to: "title_clip";
-            description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 0 0.5;
-               rel1 { relative: 1.0 0.0; to: "title_left_btn"; }
-               rel2 { relative: 1.0 1.0; to: "title_left_btn"; }
-               visible: 0;
-            }
-         }
-         part { name: "padding_before_more_btn";
+         part { name: "optionheader_shadow";
             type: RECT;
             scale: 1;
-            clip_to: "title_clip";
+            clip_to: "optionheader_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to: "title_more_btn"; }
-               rel2 { relative: 0.0 1.0; to: "title_more_btn"; }
+               min: 0 NAVIFRAME_OH_SHADOW_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
                visible: 0;
             }
          }
-         part { name: "padding_after_right_btn";
-            type: RECT;
-            mouse_events: 0;
+         part { name: "left_btn_separator";
+            type: IMAGE;
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
-               fixed: 1 0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
                align: 1.0 0.5;
-               rel1 { relative: 1.0 0.0; to: "title_bg"; }
-               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+               image.normal: "00_winset_title_line.png";
                visible: 0;
             }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
             }
-         part { name: "padding_before_right_btn";
-            type: RECT;
-            mouse_events: 0;
+         }
+         part { name: "right_btn_separator";
+            type: IMAGE;
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: 0 0;
-               fixed: 1 0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
                align: 1.0 0.5;
                rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
                rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+               image.normal: "00_winset_title_line.png";
                visible: 0;
             }
-            description { state: "right_and_more_button" 0.0;
+            description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
+               visible: 1;
             }
          }
          part { name: "padding_before_text";
@@ -354,9 +297,9 @@ collections {
             mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               align: 1.0 0.5;
-               rel1 { relative: 0.0 0.0; to_x: "elm.text.title"; to_y: "title_bg"; }
-               rel2 { relative: 0.0 1.0; to_x: "elm.text.title"; to_y: "title_bg"; }
+               align: 0.0 0.0;
+               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to: "title_bg"; }
                fixed: 1 0;
                min: NAVIFRAME_ICON_PADDING_INC;
                visible: 0;
@@ -368,16 +311,16 @@ collections {
             mouse_events: 0;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
+               min: 0 0;
                fixed: 1 0;
                align: 0.0 0.0;
-               rel1 { relative: 0.0 0.0; to: "title_bg"; }
-               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+               rel1 { relative: 1.0 0.0; to: "padding_before_text"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_text"; }
                visible: 0;
             }
             description { state: "visible" 0.0;
                inherit: "default" 0.0;
-               min: NAVIFRAME_TEXT_PADDING_INC 0;
+               min: 0 0;
             }
             description { state: "icon" 0.0;
                inherit: "default" 0.0;
@@ -394,7 +337,7 @@ collections {
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               min: NAVIFRAME_TITLE_FUNC_BTN_PADDING_W_INC 0;
+               min: 0 0;
                fixed: 1 0;
                align: 1.0 0.5;
                rel1 { relative: 1.0 0.0; to: "title_bg"; }
@@ -411,22 +354,65 @@ collections {
             scale: 1;
             clip_to: "title_clip";
             description { state: "default" 0.0;
-               text { font: "HelveticaNeue:style=Medium";
+               text { font: "SLP:style=Medium";
                   size: NAVIFRAME_TITLE_FONT_SIZE_INC;
                   min: 0 0;
                   max: 1 0;
                   align: 0.5 0.5;
+                  text_class: "slp_medium";
                }
                color: NAVIFRAME_TITLE_TEXT_COLOR_INC;
-               align: 0.5 0.5;
+               align: 0.0 0.5;
+               fixed: 1 0;
+               rel1 { relative: 1.0 0.0; to_x: "padding_center_text1"; to_y: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 1.0; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_right_more_button_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+         }
+         part { name: "elm.text.subtitle";
+            type: TEXT;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               text { font: "SLP:style=Medium";
+                  size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC;
+                  min: 0 0;
+                  max: 1 0;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC;
+               align: 0.0 0.5;
                fixed: 1 0;
-               rel1 { relative: 1.0 0.0; to: "padding_center_text1"; }
-               rel2 { relative: 0.0 1.0; to: "padding_center_text2"; }
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "padding_center_text1";
+                  to_y: "elm.text.title";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "padding_center_text2";
+                  to_y: "elm.text.title";
+               }
             }
             description { state: "right_and_more_button" 0.0;
                inherit: "default" 0.0;
-               rel1 { relative: 1.0 0.0; to: "padding_after_left_btn"; }
-               rel2 { relative: 0.0 1.0; to: "padding_before_more_btn"; }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "title_more_btn";
+                  to_y: "elm.text.title";
+               }
             }
          }
          part { name: "elm.swallow.icon";
@@ -436,11 +422,11 @@ collections {
             description { state: "default" 0.0;
                max: NAVIFRAME_ICON_SIZE_INC;
                fixed: 1 1;
-               rel1 { relative: 0.0 0.0; to: "padding_before_text"; }
-               rel2 { relative: 0.0 1.0; to: "padding_before_text"; }
+               rel1 { relative: 0.0 0.0; to: "padding_center_text1"; }
+               rel2 { relative: 0.0 1.0; to: "padding_center_text1"; }
                aspect: 1.0 1.0;
                aspect_preference: VERTICAL;
-               align: 1.0 0.5;
+               align: 0.0 0.5;
             }
          }
          part { name: "click_event_area";
@@ -458,9 +444,9 @@ collections {
             description { state: "default" 0.0;
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
-               align: 0 0.5;
-               rel1 { relative: 1.0 0.0; to: "padding_before_left_btn"; }
-               rel2 { relative: 1.0 1.0; to: "padding_before_left_btn"; }
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
             }
          }
          part { name: "title_right_btn";
@@ -471,8 +457,8 @@ collections {
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                align: 1 0.5;
                fixed: 1 1;
-               rel1 { relative: 0.0 0.0; to: "padding_after_right_btn"; }
-               rel2 { relative: 0.0 1.0; to: "padding_after_right_btn"; }
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
             }
          }
          part { name: "title_more_btn";
@@ -483,8 +469,8 @@ collections {
                max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
                fixed: 1 1;
                align: 1 0.5;
-               rel1 { relative: 0.0 0.0; to: "padding_before_right_btn"; }
-               rel2 { relative: 0.0 1.0; to: "padding_before_right_btn"; }
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
             }
          }
          part { name: "optionheader_arrow";
@@ -495,9 +481,9 @@ collections {
                max: NAVIFRAME_OH_ARROW_SIZE_INC;
                fixed: 1 1;
                align: 0.5 0.0;
-               rel1 { relative: 0.0 1.025; to: "title_more_btn"; }
-               rel2 { relative: 1.0 1.025; to: "title_more_btn"; }
-               image.normal: "T01_control_top_arrow.png";
+               rel1 { relative: 0.0 1.1; to: "title_more_btn"; }
+               rel2 { relative: 1.0 1.2; to: "title_more_btn"; }
+               //image.normal: "00_winset_control_top_arrow.png";
                color: 255 255 255 0;
             }
             description { state: "show" 0.0;
@@ -506,7 +492,6 @@ collections {
             }
          }
          part { name: "controlbar_bg";
-            type: RECT;
             scale: 1;
             description { state: "default" 0.0;
                min: 0 0;
@@ -516,7 +501,7 @@ collections {
                visible: 0;
                rel1 { to: "base"; }
                rel2 { to: "base"; }
-               color: NAVIFRAME_CONTROLBAR_BG_COLOR_INC;
+               image.normal: "00_winset_control_toolbar_bg.png";
             }
             description { state: "show" 0.0;
                inherit: "default" 0.0;
@@ -573,7 +558,6 @@ collections {
          }
       }
       programs {
-
          program { name: "content_new_pushed";
             signal: "elm,state,new,pushed,internal";
             source: "";
@@ -685,17 +669,44 @@ collections {
                set_state(PART:"elm.prev_btn_bg", "default", 0.0);
             }
          }
+         program { name: "subtitle_show";
+            signal: "elm,state,subtitle,show";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 1);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+            }
+         }
+         program { name: "subtitle_hide";
+            signal: "elm,state,subtitle,hide";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 0);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "default", 0.0);
+            }
+         }
          program { name: "left_btn_show";
             signal: "elm,state,title_left_btn,show";
             source: "elm";
             script {
                set_int(left_btn_visible, 1);
+               set_state(PART:"left_btn_separator", "visible", 0.0);
                if (get_int(icon_visible) == 1)
                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
                else
                  set_state(PART:"padding_center_text1", "visible", 0.0);
                if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
                   set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
                   set_int(large_padded_center_align, 0);
                }
                else {
@@ -709,6 +720,7 @@ collections {
             source: "elm";
             script {
                set_int(left_btn_visible, 0);
+               set_state(PART:"left_btn_separator", "default", 0.0);
                if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
                   set_state(PART:"padding_center_text2", "default", 0.0);
                   set_int(large_padded_center_align, 0);
@@ -732,9 +744,13 @@ collections {
             source: "elm";
             script {
                set_int(right_btn_visible, 1);
+               set_state(PART:"right_btn_separator", "visible", 0.0);
                if (get_int(more_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
                   set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
-                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
                   set_int(large_padded_center_align, 0);
                }
                else {
@@ -757,7 +773,7 @@ collections {
             source: "elm";
             script {
                set_int(right_btn_visible, 0);
-               set_state(PART:"padding_before_right_btn", "default", 0.0);
+               set_state(PART:"right_btn_separator", "default", 0.0);
                if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
                   set_state(PART:"padding_center_text2", "default", 0.0);
                   set_int(large_padded_center_align, 0);
@@ -782,8 +798,11 @@ collections {
             script {
                set_int(more_btn_visible, 1);
                if (get_int(right_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
                   set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
-                  set_state(PART:"padding_before_right_btn", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
                   set_int(large_padded_center_align, 0);
                }
                else {
@@ -806,7 +825,6 @@ collections {
             source: "elm";
             script {
                set_int(more_btn_visible, 0);
-               set_state(PART:"padding_before_right_btn", "default", 0.0);
                if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
                   set_state(PART:"padding_center_text2", "default", 0.0);
                   set_int(large_padded_center_align, 0);
@@ -826,7 +844,7 @@ collections {
             }
          }
          program { name: "icon_show";
-            signal: "elm,state,elm.swallow.icon,show";
+            signal: "elm,state,icon,show";
             source: "elm";
             script {
                set_int(icon_visible, 1);
@@ -837,7 +855,7 @@ collections {
             }
          }
          program { name: "icon_hide";
-            signal: "elm,state,elm.swallow.icon,hide";
+            signal: "elm,state,icon,hide";
             source: "elm";
             script {
                set_int(icon_visible, 0);
@@ -992,5 +1010,1881 @@ collections {
       }
    }
 
-}
+   group { name:"elm/naviframe/item/basic/ivug-main/noindicator";
+      alias:"elm/naviframe/item/1line/ivug-main/noindicator";
+      images {
+          image: "00_winset_control_top_bg.png" COMP;
+          image: "00_winset_control_top_arrow.png" COMP;
+          image: "00_winset_title_line.png" COMP;
+          image: "00_winset_control_toolbar_bg.png" COMP;
+          image: "00_winset_title_bg.png" COMP;
+      }
+      script {
+         public oh_show = 0;     //optionheader show/hide
+         public oh_close = 0;    //optionheader close/open
+         public cbar_bg = 0;     //Controlbar BG Show call count
+         public left_btn_visible = 0; //whether left btn is shown
+         public icon_visible = 0; //whether icon is shown
+         public right_btn_visible = 0; //whether right btn is shown
+         public more_btn_visible = 0; //whether more btn is shown
+         public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
+         public subtitle_visible = 0; //whether subtitle is shown
+      }
+      parts {
+         part { name: "base";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+            }
+            description { state: "left" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: -1.0 0.0;
+               rel2.relative: 0.0 1.0;
+            }
+            description { state: "right" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: 1.0 0.0;
+               rel2.relative: 2.0 1.0;
+            }
+         }
+
+        part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            mouse_events: 1;
+            repeat_events: 0;
+            clip_to: "content_clip";
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1.relative: 0.0 0.0;
+               rel2.relative: 1.0 1.0;
+            }
+           }
+         part { name: "content_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.to: "elm.swallow.content";
+               rel2.to: "elm.swallow.content";
+            }
+         }
+
+         part { name: "elm.swallow.detail";            // Detail view.
+            type: SWALLOW;
+            scale: 1;
+            repeat_events: 0;
+            description { state: "default" 0.0;
+               color: 255 0 0 100;
+               align: 0.0 0.0;
+               rel1.relative: 0.0 1.0;
+               rel1.to_x: "base";
+               rel1.to_y: "optionheader_bg";
+               rel2.relative: 1.0 0.0;
+               rel2.to_x: "base";
+               rel2.to_y: "controlbar_bg";
+               visible: 1;
+            }
+         }
 
+         part { name: "title_bg";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 NAVIFRAME_TITLE_H_INC;
+               align: 0.0 0.0;
+               fixed: 0 1;
+               rel1 { relative: 0.0 0.0; to: "base"; }
+               rel2 { relative: 1.0 0.0; to: "base"; }
+               image.normal: "00_winset_title_bg.png";
+            }
+            description { state: "hide" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               fixed: 1 1;
+            }
+         }
+         part { name: "title_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1 { to: "title_bg"; }
+               rel2 { to: "title_bg"; }
+            }
+         }
+         part { name: "optionheader_bg";
+            type: IMAGE;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 0;
+               align: 0.5 0;
+               fixed: 0 1;
+               rel1.to: "title_bg";
+               rel1.relative: 0 1;
+               rel2.to: "title_bg";
+               visible: 0;
+               image { normal: "00_winset_control_top_bg.png";
+                  border: NAVIFRAME_OH_BORDER_INC;
+               }
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               min: 1 NAVIFRAME_OH_OPENED_H_INC;
+               visible: 1;
+            }
+            description { state: "hide" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               fixed: 1 1;
+            }
+         }
+         part { name: "optionheader_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1 { to: "optionheader_bg"; }
+               rel2 { to: "optionheader_bg"; }
+            }
+         }
+         part { name: "optionheader_top_padding";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_PADDING_INC;
+               rel1 { relative: 0.0 0.0; to: "optionheader_bg"; }
+               rel2 { relative: 1.0 0.0; to: "optionheader_bg"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "optionheader";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_CONTENT_H_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }
+               fixed: 1 1;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "optionheader_bottom_padding";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_PADDING_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "optionheader_shadow";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_SHADOW_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "left_btn_separator";
+            type: IMAGE;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+               image.normal: "00_winset_title_line.png";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "right_btn_separator";
+            type: IMAGE;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+               image.normal: "00_winset_title_line.png";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "padding_before_text";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+               fixed: 1 0;
+               min: NAVIFRAME_ICON_PADDING_INC;
+               visible: 0;
+            }
+         }
+         part { name: "padding_center_text1";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 0.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "padding_before_text"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_text"; }
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+            }
+            description { state: "icon" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 0;
+            }
+            description { state: "icon_left_button" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 0;
+            }
+         }
+         part { name: "padding_center_text2";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1.0 0.5;
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+         }
+         part { name: "elm.text.title";
+            type: TEXT;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               text { font: "SLP:style=Medium";
+                  size: NAVIFRAME_TITLE_FONT_SIZE_INC;
+                  min: 0 0;
+                  max: 1 0;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: NAVIFRAME_TITLE_TEXT_COLOR_INC;
+               align: 0.0 0.5;
+               fixed: 1 0;
+               rel1 { relative: 1.0 0.0; to_x: "padding_center_text1"; to_y: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 1.0; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_right_more_button_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+         }
+         part { name: "elm.text.subtitle";
+            type: TEXT;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               text { font: "SLP:style=Medium";
+                  size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC;
+                  min: 0 0;
+                  max: 1 0;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC;
+               align: 0.0 0.5;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "padding_center_text1";
+                  to_y: "elm.text.title";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "padding_center_text2";
+                  to_y: "elm.text.title";
+               }
+            }
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "title_more_btn";
+                  to_y: "elm.text.title";
+               }
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_ICON_SIZE_INC;
+               fixed: 1 1;
+               rel1 { relative: 0.0 0.0; to: "padding_center_text1"; }
+               rel2 { relative: 0.0 1.0; to: "padding_center_text1"; }
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "click_event_area";
+             ignore_flags: ON_HOLD;
+             repeat_events: 1;
+             description { state: "default" 0.0;
+                rel1 { to: "title_bg"; }
+                rel2 { to: "title_bg"; }
+             }
+         }
+         part { name: "title_left_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               fixed: 1 1;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+            }
+         }
+         part { name: "title_right_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               align: 1 0.5;
+               fixed: 1 1;
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+            }
+         }
+         part { name: "title_more_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               fixed: 1 1;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+            }
+         }
+         part { name: "optionheader_arrow";
+            type: IMAGE;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: NAVIFRAME_OH_ARROW_SIZE_INC;
+               max: NAVIFRAME_OH_ARROW_SIZE_INC;
+               fixed: 1 1;
+               align: 0.5 0.0;
+               rel1 { relative: 0.0 1.1; to: "title_more_btn"; }
+               rel2 { relative: 1.0 1.2; to: "title_more_btn"; }
+               //image.normal: "00_winset_control_top_arrow.png";
+               color: 255 255 255 0;
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+         }
+         part { name: "controlbar_bg";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 0;
+               max: 999999 0;
+               fixed: 0 1;
+               align: 0.0 1.0;
+               visible: 0;
+               rel1 { to: "base"; }
+               rel2 { to: "base"; }
+               image.normal: "00_winset_control_toolbar_bg.png";
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               min: 0 CONTROLBAR_SMALL_HEIGHT_INC;
+               max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;
+               visible: 1;
+            }
+         }
+         part { name: "controlbar_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.to: "controlbar_bg";
+               rel2.to: "controlbar_bg";
+            }
+         }
+         part { name: "elm.prev_btn_bg";
+            type: RECT;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }
+               rel2.to: "controlbar_bg";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;
+            }
+         }
+         part { name: "elm.swallow.prev_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               align: 0.5 0.5;
+               rel1.to: "elm.prev_btn_bg";
+               rel2.to: "elm.prev_btn_bg";
+            }
+         }
+         part { name: "controlbar";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+                  fixed: 1 1;
+               rel1.to: "controlbar_bg";
+               rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }
+            }
+         }
+      }
+      programs {
+         program { name: "content_new_pushed";
+            signal: "elm,state,new,pushed,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_pushed";
+            signal: "elm,state,cur,pushed,internal";
+            source: "";
+            action: STATE_SET "left" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "pushed_finished";
+         }
+         program { name: "content_prev_popped";
+            signal: "elm,state,prev,popped,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_popped";
+            signal: "elm,state,cur,popped,internal";
+            source: "";
+            action: STATE_SET "right" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "popped_finished";
+         }
+         program { name: "cur_pushed";
+            signal: "elm,state,cur,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,pushed,internal", "");
+            }
+         }
+         program { name: "new_pushed";
+            signal: "elm,state,new,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "right", 0.0);
+               emit("elm,state,new,pushed,internal", "");
+            }
+         }
+         program { name: "prev_popped";
+            signal: "elm,state,prev,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "left", 0.0);
+               emit("elm,state,prev,popped,internal", "");
+            }
+         }
+         program { name: "cur_popped";
+            signal: "elm,state,cur,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,popped,internal", "");
+            }
+         }
+         program { name: "visible";
+            signal: "elm,state,visible";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+         }
+         program { name: "title_show";
+            signal: "elm,state,title,show";
+            source: "elm";
+            script {
+               set_state(PART:"title_bg", "default", 0.0);
+               if (get_int(oh_show) == 1) {
+                  if (get_int(oh_close) == 1) {
+                     emit("elm,state,optionheader,instant_close", "");
+                  }else {
+                     emit("elm,state,optionheader,instant_open", "");
+                  }
+               }
+               else
+                 set_state(PART:"optionheader_bg", "default", 0.0);
+            }
+         }
+         program { name: "title_hide";
+            signal: "elm,state,title,hide";
+            source: "elm";
+            action: STATE_SET "hide" 0.0;
+            target: "title_bg";
+            target: "optionheader_bg";
+         }
+         program { name: "prev_btn_show";
+            signal: "elm,state,prev_btn,show";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,show", "elm");
+               set_state(PART:"elm.prev_btn_bg", "visible", 0.0);
+            }
+         }
+         program { name: "prev_btn_hide";
+            signal: "elm,state,prev_btn,hide";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,hide", "elm");
+               set_state(PART:"elm.prev_btn_bg", "default", 0.0);
+            }
+         }
+         program { name: "subtitle_show";
+            signal: "elm,state,subtitle,show";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 1);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+            }
+         }
+         program { name: "subtitle_hide";
+            signal: "elm,state,subtitle,hide";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 0);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "default", 0.0);
+            }
+         }
+         program { name: "left_btn_show";
+            signal: "elm,state,title_left_btn,show";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 1);
+               set_state(PART:"left_btn_separator", "visible", 0.0);
+               if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                  set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+            }
+         }
+         program { name: "left_btn_hide";
+            signal: "elm,state,title_left_btn,hide";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 0);
+               set_state(PART:"left_btn_separator", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_show";
+            signal: "elm,state,title_right_btn,show";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 1);
+               set_state(PART:"right_btn_separator", "visible", 0.0);
+               if (get_int(more_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                  set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_hide";
+            signal: "elm,state,title_right_btn,hide";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 0);
+               set_state(PART:"right_btn_separator", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "more_btn_show";
+            signal: "elm,state,title_more_btn,show";
+            source: "elm";
+            script {
+               set_int(more_btn_visible, 1);
+               if (get_int(right_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                  set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "more_btn_hide";
+            signal: "elm,state,title_more_btn,hide";
+            source: "elm";
+            script {
+               set_int(more_btn_visible, 0);
+               if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,show";
+            source: "elm";
+            script {
+               set_int(icon_visible, 1);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+            }
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hide";
+            source: "elm";
+            script {
+               set_int(icon_visible, 0);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "controlbar_show";
+            signal: "elm,state,controlbar,show";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,show", "elm");
+            }
+         }
+         program { name: "controlbar_hide";
+            signal: "elm,state,controlbar,hide";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,hide", "elm");
+            }
+         }
+         program { name: "controlbar_bg_show";
+            signal: "elm,state,controlbar_bg,show";
+            source: "elm";
+            script {
+               set_state(PART:"controlbar_bg", "show", 0.0);
+               set_int(cbar_bg, get_int(cbar_bg) + 1);
+            }
+         }
+         program { name: "controlbar_bg_hide";
+            signal: "elm,state,controlbar_bg,hide";
+            source: "elm";
+            script {
+               set_int(cbar_bg, get_int(cbar_bg) - 1);
+               if (get_int(cbar_bg) <= 0)
+                 set_state(PART:"controlbar_bg", "default", 0.0);
+            }
+         }
+         program { name: "optionheader_show";
+            signal: "elm,state,optionheader,show";
+            source: "elm";
+            script {
+               set_state(PART:"optionheader_bg", "show", 0.0);
+               set_state(PART:"optionheader_arrow", "show", 0.0);
+               set_int(oh_show, 1);
+            }
+         }
+         program { name: "optionheader_hide";
+            signal: "elm,state,optionheader,hide";
+            source: "elm";
+            script {
+               set_state(PART:"optionheader_bg", "default", 0.0);
+               set_state(PART:"optionheader_arrow", "default", 0.0);
+               set_int(oh_show, 0);
+            }
+         }
+         program { name: "optionheader_open";
+            signal: "elm,state,optionheader,open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            transition: LINEAR 0.2;
+            after: "optionheader_open_set";
+         }
+         program { name: "optionheader_close";
+            signal: "elm,state,optionheader,close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            transition: LINEAR 0.2;
+            after: "optionheader_close_set";
+         }
+         program { name: "optionheader_instant_open";
+            signal: "elm,state,optionheader,instant_open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            after: "optionheader_open_set";
+         }
+         program { name: "optionheader_instant_close";
+            signal: "elm,state,optionheader,instant_close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            after: "optionheader_close_set";
+         }
+         program { name: "optionheader_close_set";
+            signal: "elm,state,optionheader,close_set";
+            source: "";
+            script {
+               set_int(oh_close, 1);
+            }
+         }
+         program { name: "optionheader_open_set";
+            signal: "elm,state,optionheader,open_set";
+            source: "";
+            script {
+               set_int(oh_close, 0);
+            }
+         }
+         program { name: "controlbar_open";
+            signal: "elm,state,controlbar,open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "controlbar_bg";
+            transition: LINEAR 0.2;
+         }
+         program { name: "controlbar_close";
+            signal: "elm,state,controlbar,close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "controlbar_bg";
+            transition: LINEAR 0.2;
+         }
+         program { name: "controlbar_instant_open";
+            signal: "elm,state,controlbar,instant_open";
+            source: "";
+            script {
+               emit("elm,state,prev_btn,show", "elm");
+               emit("elm,state,controlbar,show", "elm");
+            }
+         }
+         program { name: "controlbar_instant_close";
+            signal: "elm,state,controlbar,instant_close";
+            source: "";
+            script {
+               emit("elm,state,prev_btn,hide", "elm");
+               emit("elm,state,controlbar,hide", "elm");
+            }
+         }
+         program { name: "show_finished";
+            action: SIGNAL_EMIT "elm,action,show,finished" "";
+         }
+         program { name: "pushed_finished";
+            action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+         }
+         program { name: "popped_finished";
+            action: SIGNAL_EMIT "elm,action,popped,finished" "";
+         }
+         program {
+            name: "title_clicked";
+            signal: "mouse,clicked,1";
+            source: "click_event_area";
+            action: SIGNAL_EMIT "elm,action,title,clicked" "";
+         }
+      }
+   }
+
+   group { name:"elm/naviframe/item/basic/ivug/default";
+      alias:"elm/naviframe/item/1line/ivug/default";
+      images {
+          image: "00_winset_control_top_bg.png" COMP;
+          image: "00_winset_control_top_arrow.png" COMP;
+          image: "00_winset_title_line.png" COMP;
+          image: "00_winset_control_toolbar_bg.png" COMP;
+          image: "00_winset_title_bg.png" COMP;
+      }
+      script {
+         public oh_show = 0;     //optionheader show/hide
+         public oh_close = 0;    //optionheader close/open
+         public cbar_bg = 0;     //Controlbar BG Show call count
+         public left_btn_visible = 0; //whether left btn is shown
+         public icon_visible = 0; //whether icon is shown
+         public right_btn_visible = 0; //whether right btn is shown
+         public more_btn_visible = 0; //whether more btn is shown
+         public large_padded_center_align = 0; //large padding based on button size for center align for 1/2 buttons.
+         public subtitle_visible = 0; //whether subtitle is shown
+      }
+      parts {
+         part { name: "base";
+            type: RECT;
+            mouse_events:  0;
+            description { state: "default" 0.0;
+               visible: 0;
+            }
+            description { state: "left" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: -1.0 0.0;
+               rel2.relative: 0.0 1.0;
+            }
+            description { state: "right" 0.0;
+               inherit: "default" 0.0;
+               rel1.relative: 1.0 0.0;
+               rel2.relative: 2.0 1.0;
+            }
+         }
+         part { name: "title_bg";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 NAVIFRAME_TITLE_H_INC;
+               align: 0.0 0.0;
+               fixed: 0 1;
+               rel1 { relative: 0.0 0.0; to: "base"; }
+               rel2 { relative: 1.0 0.0; to: "base"; }
+               image.normal: "00_winset_title_bg.png";
+            }
+            description { state: "hide" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               fixed: 1 1;
+            }
+         }
+         part { name: "title_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1 { to: "title_bg"; }
+               rel2 { to: "title_bg"; }
+            }
+         }
+         part { name: "optionheader_bg";
+            type: IMAGE;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 1 0;
+               align: 0.5 0;
+               fixed: 0 1;
+               rel1.to: "title_bg";
+               rel1.relative: 0 1;
+               rel2.to: "title_bg";
+               visible: 0;
+               image { normal: "00_winset_control_top_bg.png";
+                  border: NAVIFRAME_OH_BORDER_INC;
+               }
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               min: 1 NAVIFRAME_OH_OPENED_H_INC;
+               visible: 1;
+            }
+            description { state: "hide" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+               max: 0 0;
+               fixed: 1 1;
+            }
+         }
+         part { name: "optionheader_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1 { to: "optionheader_bg"; }
+               rel2 { to: "optionheader_bg"; }
+            }
+         }
+         part { name: "optionheader_top_padding";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_PADDING_INC;
+               rel1 { relative: 0.0 0.0; to: "optionheader_bg"; }
+               rel2 { relative: 1.0 0.0; to: "optionheader_bg"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "optionheader";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_CONTENT_H_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader_top_padding"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader_top_padding"; }
+               fixed: 1 1;
+               align: 0.0 0.0;
+            }
+         }
+         part { name: "optionheader_bottom_padding";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_PADDING_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "optionheader_shadow";
+            type: RECT;
+            scale: 1;
+            clip_to: "optionheader_clip";
+            description { state: "default" 0.0;
+               min: 0 NAVIFRAME_OH_SHADOW_INC;
+               rel1 { relative: 0.0 1.0; to: "optionheader_bottom_padding"; }
+               rel2 { relative: 1.0 1.0; to: "optionheader_bottom_padding"; }
+               fixed: 0 1;
+               align: 0.0 0.0;
+               visible: 0;
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            scale: 1;
+            repeat_events: 0;
+            clip_to: "content_clip";
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1.relative: 0.0 1.0;
+               rel1.to_x: "base";
+               rel1.to_y: "optionheader_bg";
+               rel2.relative: 1.0 0.0;
+               rel2.to_x: "base";
+               rel2.to_y: "controlbar_bg";
+            }
+         }
+         part { name: "content_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.to: "elm.swallow.content";
+               rel2.to: "elm.swallow.content";
+            }
+         }
+
+
+
+
+
+         part { name: "left_btn_separator";
+            type: IMAGE;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+               image.normal: "00_winset_title_line.png";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "right_btn_separator";
+            type: IMAGE;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 2 48;
+               max: 2 48;
+               fixed: 1 1;
+               align: 1.0 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+               image.normal: "00_winset_title_line.png";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+            }
+         }
+         part { name: "padding_before_text";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               align: 0.0 0.0;
+               rel1 { relative: 0.0 0.0; to: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to: "title_bg"; }
+               fixed: 1 0;
+               min: NAVIFRAME_ICON_PADDING_INC;
+               visible: 0;
+            }
+         }
+         part { name: "padding_center_text1";
+            type: RECT;
+            scale: 1;
+            mouse_events: 0;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 0.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "padding_before_text"; }
+               rel2 { relative: 1.0 1.0; to: "padding_before_text"; }
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: 0 0;
+            }
+            description { state: "icon" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 0;
+            }
+            description { state: "icon_left_button" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 0;
+            }
+         }
+         part { name: "padding_center_text2";
+            type: RECT;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1.0 0.5;
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TEXT_PADDING_INC 0;
+            }
+         }
+         part { name: "elm.text.title";
+            type: TEXT;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               text { font: "SLP:style=Medium";
+                  size: NAVIFRAME_TITLE_FONT_SIZE_INC;
+                  min: 0 0;
+                  max: 1 0;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: NAVIFRAME_TITLE_TEXT_COLOR_INC;
+               align: 0.0 0.5;
+               fixed: 1 0;
+               rel1 { relative: 1.0 0.0; to_x: "padding_center_text1"; to_y: "title_bg"; }
+               rel2 { relative: 0.0 1.0; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 1.0; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "padding_center_text2"; to_y: "title_bg"; }
+            }
+            description { state: "subtitle_right_more_button_is_set" 0.0;
+               inherit: "default" 0.0;
+               rel2 { relative: 0.0 0.7; to_x: "title_more_btn"; to_y: "title_bg"; }
+            }
+         }
+         part { name: "elm.text.subtitle";
+            type: TEXT;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               text { font: "SLP:style=Medium";
+                  size: NAVIFRAME_SUBTITLE_FONT_SIZE_INC;
+                  min: 0 0;
+                  max: 1 0;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+               color: NAVIFRAME_SUBTITLE_TEXT_COLOR_INC;
+               align: 0.0 0.5;
+               fixed: 1 0;
+               rel1 {
+                  relative: 1.0 1.0;
+                  to_x: "padding_center_text1";
+                  to_y: "elm.text.title";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "padding_center_text2";
+                  to_y: "elm.text.title";
+               }
+            }
+            description { state: "right_and_more_button" 0.0;
+               inherit: "default" 0.0;
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "title_more_btn";
+                  to_y: "elm.text.title";
+               }
+            }
+         }
+         part { name: "elm.swallow.icon";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_ICON_SIZE_INC;
+               fixed: 1 1;
+               rel1 { relative: 0.0 0.0; to: "padding_center_text1"; }
+               rel2 { relative: 0.0 1.0; to: "padding_center_text1"; }
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+               align: 0.0 0.5;
+            }
+         }
+         part { name: "click_event_area";
+             ignore_flags: ON_HOLD;
+             repeat_events: 1;
+             description { state: "default" 0.0;
+                rel1 { to: "title_bg"; }
+                rel2 { to: "title_bg"; }
+             }
+         }
+         part { name: "title_left_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               fixed: 1 1;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_right_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_right_btn"; }
+            }
+         }
+         part { name: "title_right_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               align: 1 0.5;
+               fixed: 1 1;
+               rel1 { relative: 1.0 0.0; to: "title_bg"; }
+               rel2 { relative: 1.0 1.0; to: "title_bg"; }
+            }
+         }
+         part { name: "title_more_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "title_clip";
+            description { state: "default" 0.0;
+               max: NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC;
+               fixed: 1 1;
+               align: 1 0.5;
+               rel1 { relative: 0.0 0.0; to: "title_left_btn"; }
+               rel2 { relative: 0.0 1.0; to: "title_left_btn"; }
+            }
+         }
+         part { name: "optionheader_arrow";
+            type: IMAGE;
+            scale: 1;
+            description { state: "default" 0.0;
+               min: NAVIFRAME_OH_ARROW_SIZE_INC;
+               max: NAVIFRAME_OH_ARROW_SIZE_INC;
+               fixed: 1 1;
+               align: 0.5 0.0;
+               rel1 { relative: 0.0 1.1; to: "title_more_btn"; }
+               rel2 { relative: 1.0 1.2; to: "title_more_btn"; }
+               //image.normal: "00_winset_control_top_arrow.png";
+               color: 255 255 255 0;
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 255;
+            }
+         }
+         part { name: "controlbar_bg";
+            scale: 1;
+            description { state: "default" 0.0;
+               min: 0 0;
+               max: 999999 0;
+               fixed: 0 1;
+               align: 0.0 1.0;
+               visible: 0;
+               rel1 { to: "base"; }
+               rel2 { to: "base"; }
+               image.normal: "00_winset_control_toolbar_bg.png";
+            }
+            description { state: "show" 0.0;
+               inherit: "default" 0.0;
+               min: 0 CONTROLBAR_SMALL_HEIGHT_INC;
+               max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;
+               visible: 1;
+            }
+         }
+         part { name: "controlbar_clip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               rel1.to: "controlbar_bg";
+               rel2.to: "controlbar_bg";
+            }
+         }
+         part { name: "elm.prev_btn_bg";
+            type: RECT;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               min: 0 0;
+               fixed: 1 0;
+               align: 1.0 0.0;
+               rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }
+               rel2.to: "controlbar_bg";
+               visible: 0;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;
+            }
+         }
+         part { name: "elm.swallow.prev_btn";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               align: 0.5 0.5;
+               rel1.to: "elm.prev_btn_bg";
+               rel2.to: "elm.prev_btn_bg";
+            }
+         }
+         part { name: "controlbar";
+            type: SWALLOW;
+            scale: 1;
+            clip_to: "controlbar_clip";
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               rel1.to: "controlbar_bg";
+               rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }
+            }
+         }
+      }
+      programs {
+         program { name: "content_new_pushed";
+            signal: "elm,state,new,pushed,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_pushed";
+            signal: "elm,state,cur,pushed,internal";
+            source: "";
+            action: STATE_SET "left" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "pushed_finished";
+         }
+         program { name: "content_prev_popped";
+            signal: "elm,state,prev,popped,internal";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "show_finished";
+         }
+         program { name: "content_cur_popped";
+            signal: "elm,state,cur,popped,internal";
+            source: "";
+            action: STATE_SET "right" 0.0;
+            target: "base";
+            transition: DECELERATE NAVIFRAME_VIEW_TRANS_TIME;
+            after: "popped_finished";
+         }
+         program { name: "cur_pushed";
+            signal: "elm,state,cur,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,pushed,internal", "");
+            }
+         }
+         program { name: "new_pushed";
+            signal: "elm,state,new,pushed";
+            source: "elm";
+            script {
+               set_state(PART:"base", "right", 0.0);
+               emit("elm,state,new,pushed,internal", "");
+            }
+         }
+         program { name: "prev_popped";
+            signal: "elm,state,prev,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "left", 0.0);
+               emit("elm,state,prev,popped,internal", "");
+            }
+         }
+         program { name: "cur_popped";
+            signal: "elm,state,cur,popped";
+            source: "elm";
+            script {
+               set_state(PART:"base", "default", 0.0);
+               emit("elm,state,cur,popped,internal", "");
+            }
+         }
+         program { name: "visible";
+            signal: "elm,state,visible";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "base";
+         }
+         program { name: "title_show";
+            signal: "elm,state,title,show";
+            source: "elm";
+            script {
+               set_state(PART:"title_bg", "default", 0.0);
+               if (get_int(oh_show) == 1) {
+                  if (get_int(oh_close) == 1) {
+                     emit("elm,state,optionheader,instant_close", "");
+                  }else {
+                     emit("elm,state,optionheader,instant_open", "");
+                  }
+               }
+               else
+                 set_state(PART:"optionheader_bg", "default", 0.0);
+            }
+         }
+         program { name: "title_hide";
+            signal: "elm,state,title,hide";
+            source: "elm";
+            action: STATE_SET "hide" 0.0;
+            target: "title_bg";
+            target: "optionheader_bg";
+         }
+         program { name: "prev_btn_show";
+            signal: "elm,state,prev_btn,show";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,show", "elm");
+               set_state(PART:"elm.prev_btn_bg", "visible", 0.0);
+            }
+         }
+         program { name: "prev_btn_hide";
+            signal: "elm,state,prev_btn,hide";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,hide", "elm");
+               set_state(PART:"elm.prev_btn_bg", "default", 0.0);
+            }
+         }
+         program { name: "subtitle_show";
+            signal: "elm,state,subtitle,show";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 1);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "subtitle_is_set", 0.0);
+            }
+         }
+         program { name: "subtitle_hide";
+            signal: "elm,state,subtitle,hide";
+            source: "elm";
+            script {
+               set_int(subtitle_visible, 0);
+               if (get_int(large_padded_center_align) == 0)
+                 set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+               else
+                 set_state(PART:"elm.text.title", "default", 0.0);
+            }
+         }
+         program { name: "left_btn_show";
+            signal: "elm,state,title_left_btn,show";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 1);
+               set_state(PART:"left_btn_separator", "visible", 0.0);
+               if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               if ((get_int(more_btn_visible) == 1) && (get_int(right_btn_visible) == 1)) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                    set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+            }
+         }
+         program { name: "left_btn_hide";
+            signal: "elm,state,title_left_btn,hide";
+            source: "elm";
+            script {
+               set_int(left_btn_visible, 0);
+               set_state(PART:"left_btn_separator", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(right_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_show";
+            signal: "elm,state,title_right_btn,show";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 1);
+               set_state(PART:"right_btn_separator", "visible", 0.0);
+               if (get_int(more_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                    set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "right_btn_hide";
+            signal: "elm,state,title_right_btn,hide";
+            source: "elm";
+            script {
+               set_int(right_btn_visible, 0);
+               set_state(PART:"right_btn_separator", "default", 0.0);
+               if ((get_int(more_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "more_btn_show";
+            signal: "elm,state,title_more_btn,show";
+            source: "elm";
+            script {
+               set_int(more_btn_visible, 1);
+               if (get_int(right_btn_visible) == 1) {
+                  if (get_int(subtitle_visible) == 1)
+                    set_state(PART:"elm.text.title", "subtitle_right_more_button_is_set", 0.0);
+                  else
+                    set_state(PART:"elm.text.title", "right_and_more_button", 0.0);
+                  set_state(PART:"elm.text.subtitle", "right_and_more_button", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(icon_visible) == 1) && ((get_int(left_btn_visible) == 1) ||
+                                                    (get_int(large_padded_center_align) == 1)))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if ((get_int(left_btn_visible) == 1) || (get_int(large_padded_center_align) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "more_btn_hide";
+            signal: "elm,state,title_more_btn,hide";
+            source: "elm";
+            script {
+               set_int(more_btn_visible, 0);
+               if ((get_int(right_btn_visible) == 0) && (get_int(left_btn_visible) == 0)) {
+                  set_state(PART:"padding_center_text2", "default", 0.0);
+                  set_int(large_padded_center_align, 0);
+               }
+               else {
+                  set_state(PART:"padding_center_text2", "visible", 0.0);
+                  set_int(large_padded_center_align, 1);
+               }
+               if ((get_int(large_padded_center_align) == 1) && (get_int(icon_visible) == 1))
+                  set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else if (get_int(large_padded_center_align) == 1)
+                  set_state(PART:"padding_center_text1", "visible", 0.0);
+               else if (get_int(icon_visible) == 1)
+                  set_state(PART:"padding_center_text1", "icon", 0.0);
+               else
+                  set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,show";
+            source: "elm";
+            script {
+               set_int(icon_visible, 1);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "icon_left_button", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "icon", 0.0);
+            }
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hide";
+            source: "elm";
+            script {
+               set_int(icon_visible, 0);
+               if ((get_int(large_padded_center_align) == 1) || (get_int(left_btn_visible) == 1))
+                 set_state(PART:"padding_center_text1", "visible", 0.0);
+               else
+                 set_state(PART:"padding_center_text1", "default", 0.0);
+            }
+         }
+         program { name: "controlbar_show";
+            signal: "elm,state,controlbar,show";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,show", "elm");
+            }
+         }
+         program { name: "controlbar_hide";
+            signal: "elm,state,controlbar,hide";
+            source: "elm";
+            script {
+               emit("elm,state,controlbar_bg,hide", "elm");
+            }
+         }
+         program { name: "controlbar_bg_show";
+            signal: "elm,state,controlbar_bg,show";
+            source: "elm";
+            script {
+               set_state(PART:"controlbar_bg", "show", 0.0);
+               set_int(cbar_bg, get_int(cbar_bg) + 1);
+            }
+         }
+         program { name: "controlbar_bg_hide";
+            signal: "elm,state,controlbar_bg,hide";
+            source: "elm";
+            script {
+               set_int(cbar_bg, get_int(cbar_bg) - 1);
+               if (get_int(cbar_bg) <= 0)
+                 set_state(PART:"controlbar_bg", "default", 0.0);
+            }
+         }
+         program { name: "optionheader_show";
+            signal: "elm,state,optionheader,show";
+            source: "elm";
+            script {
+               set_state(PART:"optionheader_bg", "show", 0.0);
+               set_state(PART:"optionheader_arrow", "show", 0.0);
+               set_int(oh_show, 1);
+            }
+         }
+         program { name: "optionheader_hide";
+            signal: "elm,state,optionheader,hide";
+            source: "elm";
+            script {
+               set_state(PART:"optionheader_bg", "default", 0.0);
+               set_state(PART:"optionheader_arrow", "default", 0.0);
+               set_int(oh_show, 0);
+            }
+         }
+         program { name: "optionheader_open";
+            signal: "elm,state,optionheader,open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            transition: LINEAR 0.2;
+            after: "optionheader_open_set";
+         }
+         program { name: "optionheader_close";
+            signal: "elm,state,optionheader,close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            transition: LINEAR 0.2;
+            after: "optionheader_close_set";
+         }
+         program { name: "optionheader_instant_open";
+            signal: "elm,state,optionheader,instant_open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            after: "optionheader_open_set";
+         }
+         program { name: "optionheader_instant_close";
+            signal: "elm,state,optionheader,instant_close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "optionheader_bg";
+            target: "optionheader_arrow";
+            after: "optionheader_close_set";
+         }
+         program { name: "optionheader_close_set";
+            signal: "elm,state,optionheader,close_set";
+            source: "";
+            script {
+               set_int(oh_close, 1);
+            }
+         }
+         program { name: "optionheader_open_set";
+            signal: "elm,state,optionheader,open_set";
+            source: "";
+            script {
+               set_int(oh_close, 0);
+            }
+         }
+         program { name: "controlbar_open";
+            signal: "elm,state,controlbar,open";
+            source: "";
+            action: STATE_SET "show" 0.0;
+            target: "controlbar_bg";
+            transition: LINEAR 0.2;
+         }
+         program { name: "controlbar_close";
+            signal: "elm,state,controlbar,close";
+            source: "";
+            action: STATE_SET "default" 0.0;
+            target: "controlbar_bg";
+            transition: LINEAR 0.2;
+         }
+         program { name: "controlbar_instant_open";
+            signal: "elm,state,controlbar,instant_open";
+            source: "";
+            script {
+               emit("elm,state,prev_btn,show", "elm");
+               emit("elm,state,controlbar,show", "elm");
+            }
+         }
+         program { name: "controlbar_instant_close";
+            signal: "elm,state,controlbar,instant_close";
+            source: "";
+            script {
+               emit("elm,state,prev_btn,hide", "elm");
+               emit("elm,state,controlbar,hide", "elm");
+            }
+         }
+         program { name: "show_finished";
+            action: SIGNAL_EMIT "elm,action,show,finished" "";
+         }
+         program { name: "pushed_finished";
+            action: SIGNAL_EMIT "elm,action,pushed,finished" "";
+         }
+         program { name: "popped_finished";
+            action: SIGNAL_EMIT "elm,action,popped,finished" "";
+         }
+         program {
+            name: "title_clicked";
+            signal: "mouse,clicked,1";
+            source: "click_event_area";
+            action: SIGNAL_EMIT "elm,action,title,clicked" "";
+         }
+      }
+   }
+
+}
index 00a1340..bf704fd 100755 (executable)
@@ -1,34 +1,33 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 /*
 * Refer to themes\groups\selectioninfo.edc
 */
 
-#define SELECTION_INFO_BACKGROUND_COLOR_INC    91 91 91 255
-#define SELECTION_INFO_TEXT_COLOR_INC          255 255 255 255
+#define SELECTION_INFO_BACKGROUND_COLOR_INC    42 54 74 255
+#define SELECTION_INFO_TEXT_COLOR_INC          249 249 249 255
 
 #define SELECTION_INFO_MIN_VER_W_INC                 720
 #define SELECTION_INFO_MIN_HORZ_W_INC                1280
 #define SELECTION_INFO_VER_PADDING_INC               48
 #define SELECTION_INFO_LEFT_PADDING_INC              16
 #define SELECTION_INFO_TEXT_FONT_SIZE_INC            32
-#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       143//=95+48       150
-#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       143//=95+48       186
+#define SELECTION_INFO_MIN_VER_BOTTOM_64_H_INC       160//=95+48       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       160//=95+48       186
 
 collections {
 
@@ -36,8 +35,6 @@ collections {
           parts {
              part { name: "bg";
                 type: RECT;
-                mouse_events: 1;
-                repeat_events: 1;
                 scale : 1;
                 description {
                    state: "default" 0.0;
@@ -61,9 +58,10 @@ collections {
                    rel2 { to: "bg"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
+                      font: "SLP";
                           size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -121,9 +119,10 @@ collections {
                    rel2 { to: "base"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
+                      font: "SLP";
                           size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -183,9 +182,10 @@ collections {
                    rel2 { to: "base"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
+                      font: "SLP";
                           size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -229,9 +229,10 @@ collections {
                    rel2 { to: "bg"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
+                      font: "SLP";
                           size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -289,9 +290,10 @@ collections {
                    rel2 { to: "base"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
-                          size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
+                      font: "SLP";
+                      size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -351,9 +353,10 @@ collections {
                    rel2 { to: "base"; }
                    color: SELECTION_INFO_TEXT_COLOR_INC;
                    text {
-                      font: "HelveticaNeue";
-                          size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
+                      font: "SLP";
+                      size: SELECTION_INFO_TEXT_FONT_SIZE_INC;
                       text: "";
+                      text_class: "slp";
                    }
                 }
              }
@@ -369,3 +372,4 @@ collections {
        }
 
 }
+
index 7ec8ab1..8646f0b 100755 (executable)
@@ -1,57 +1,35 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+
+#include "ivug-theme.edc"
+
+#define PADDING_VISIBILITY 0
 
+collections {
 
-#define BTN_CANCEL_WIDTH       86
-#define BTN_CANCEL_HEIGHT      86
-
-#define BTN_OK_WIDTH   86
-#define BTN_OK_HEIGHT  86
-
-#define BTN_CANCEL                     "T01_btn_cancel.png"
-#define BTN_CANCEL_PRESS               "T01_btn_cancel_press.png"
-
-#define BTN_OK         "T01_btn_ok.png"
-#define BTN_OK_PRESS   "T01_btn_ok_press.png"
-#define BTN_OK_DIM     "T01_btn_ok_dim.png"
-
-#define _STATE_ENABLED 1
-#define _STATE_DISABLED 0
+#define PROGRESSBAR_WIDTH      100
+#define PROGRESSBAR_HEIGHT     100
 
-collections {
    group {
                name: "setas_view";
 
-               images {
-               image: BTN_CANCEL COMP;
-               image: BTN_CANCEL_PRESS COMP;
-
-               image: BTN_OK COMP;
-               image: BTN_OK_PRESS COMP;
-               image: BTN_OK_DIM COMP;
-               }
-             script {
-                public ok_state = _STATE_ENABLED;
-             }
                parts{
                        part {
                                name: "bg";
                                type: RECT;
-                               mouse_events: 1;
-                               repeat_events: 0;
                                scale:1;
                                description {
                                        state: "default" 0.0;
@@ -70,18 +48,50 @@ collections {
 
                                description {
                                        state: "default" 0.0;
+                                       visible: 1;
                                        rel1 { relative: 0 0; to:bg; }
                                        rel2 { relative: 1 1; to:bg; }
                                }
                         }
 
+                        part{
+                                name: "setasview.thumbnail";
+                                type: SWALLOW;
+                                mouse_events: 1;
+                                repeat_events: 0;
+                                scale: 1; //allow scaling
+                                description {
+                                        state: "default" 0.0;
+                                        align: 0.5 0.5;
+                                        visible: 1;
+                                        rel1 { relative: 0 0; to:bg; }
+                                        rel2 { relative: 1 1; to:bg; }
+                                }
+                       }
+
+                       part{
+                               name: "setasview.progressbar";
+                               type: SWALLOW;
+                               scale: 1; //allow scaling
+
+                               description {
+                                       state: "default" 0.0;
+                                       min: PROGRESSBAR_WIDTH PROGRESSBAR_WIDTH;
+                                       max: PROGRESSBAR_WIDTH PROGRESSBAR_WIDTH;
+                                       fixed: 1 1;
+                                       visible: 1;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: 0 0; to:"setasview.photocam"; }
+                                       rel2 { relative: 1 1; to:"setasview.photocam"; }
+                               }
+                        }
+
                        part {
                                name: "event";
                                type: RECT;
                                repeat_events: 1;
                                mouse_events: 1;
                                scale:1;
-
                                description {
                                        state: "default" 0.0;
                                        color: 0 0 0 0;
@@ -91,188 +101,152 @@ collections {
                                }
                        }
 
-                       part { name: "setasview.btn_cancel";
-                               type: IMAGE;
-                               scale: 1;
+                       part{
+                               name: "setasview.scissorbox";
+                               type: SWALLOW;
                                mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 1;
                                description {
-                                       visible: 0;
-                                       min: BTN_CANCEL_WIDTH BTN_CANCEL_HEIGHT;
-                                       max: BTN_CANCEL_WIDTH BTN_CANCEL_HEIGHT;
-                                       fixed: 1 1;
                                        state: "default" 0.0;
-                                       align: 1.0 1.0;
-                                       rel1 { relative: 0.0 0.0;}
-                                       rel2 { relative: 0.944 0.975;}
-                               }
-
-                               description {
-                                       state: "show" 0.0;
-                                       inherit: "default" 0.0;
-                                       visible: 1;
-                                       image.normal: BTN_CANCEL;
+                                       visible: 0;
+                                       rel1 { relative: 0 0; to:bg; }
+                                       rel2 { relative: 1 1; to:bg; }
                                }
+                        }
 
-                               description {
-                                       state: "pressed" 0.0;
-                                       inherit: "default" 0.0;
-                                       visible: 1;
-                                       image.normal: BTN_CANCEL_PRESS;
-                               }
 
-                               description {
-                                       state: "hide" 0.0;
-                                       visible: 0;
-                               }
+               }
+               programs {
+                       program {
+                               name: "bg_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "event";
+                               action: SIGNAL_EMIT "setasview,bg,clicked" "edc";
                        }
+               }
 
-                       part { name: "setasview.btn_ok";
-                               type: IMAGE;
-                               scale: 1;
-                               mouse_events: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       visible: 1;
-                                       min: BTN_OK_WIDTH BTN_OK_HEIGHT;
-                                       max: BTN_OK_WIDTH BTN_OK_HEIGHT;
-                                       fixed: 1 1;
-                                       align: 0.0 1.0;
-                                       image.normal: BTN_OK;
-                                       rel1 { relative: 0.056 0.0;}
-                                       rel2 { relative: 1.0 0.975;}
-                               }
+       }
+}
 
-                               description {
-                                       state: "pressed" 0.0;
-                                       inherit: "default" 0.0;
-                                       image.normal: BTN_OK_PRESS;
-                               }
 
-                               description {
-                                       state: "dim" 0.0;
-                                       inherit: "default" 0.0;
-                                       image.normal: BTN_OK_DIM;
-                               }
 
+collections {
+#define BTN_SET_CALLER_IMAGE_WIDTH     86
+#define BTN_SET_CALLER_IMAGE_HEIGHT    86
+#if 1
+       group {
+               name: "setas_view_btn";
+
+               images {
+                       image: "00_winset_control_toolbar_bg.png" COMP;
+               }
+
+               parts{
+                       part {
+                               name: "base";
+                               type: RECT;
+                               scale:1;
+                               mouse_events: 1;
+                               repeat_events: 1;
                                description {
-                                       state: "hide" 0.0;
-                                       visible: 0;
+                                       state: "default" 0.0;
+                                       color: 0 0 0 0;
+                                       rel1.relative: 0.0 0.0;
+                                       rel2.relative: 1.0 1.0;
                                }
                        }
+                        part { name: "controlbar_bg";
+                   scale: 1;
+                   description { state: "default" 0.0;
+                      min: 0 CONTROLBAR_SMALL_HEIGHT_INC;
+                      max: 999999 CONTROLBAR_SMALL_HEIGHT_INC;
+                      fixed: 0 1;
+                      align: 0.0 1.0;
+                      visible: 1;
+                      rel1 { to: "base"; }
+                      rel2 { to: "base"; }
+                      //image.normal: "00_winset_control_toolbar_bg.png";
+                   }
+                   description { state: "hide" 0.0;
+                      inherit: "default" 0.0;
+                      visible: 0;
+                   }
+                }
+                part { name: "controlbar_clip";
+                   type: RECT;
+                   mouse_events: 0;
+                   description { state: "default" 0.0;
+                      rel1.to: "controlbar_bg";
+                      rel2.to: "controlbar_bg";
+                      visible: 1;
+                   }
+                   description { state: "hide" 0.0;
+                      inherit: "default" 0.0;
+                      visible: 0;
+                   }
+                }
+                part { name: "elm.prev_btn_bg";
+                   type: RECT;
+                   scale: 1;
+                   clip_to: "controlbar_clip";
+                   description { state: "default" 0.0;
+                      min: 0 0;
+                      fixed: 1 0;
+                      align: 1.0 0.0;
+                      rel1 { relative: 1.0 0.0; to: "controlbar_bg"; }
+                      rel2.to: "controlbar_bg";
+                      visible: 0;
+                   }
+                   description { state: "visible" 0.0;
+                      inherit: "default" 0.0;
+                      min: NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 0;
+                   }
+                }
+                part { name: "elm.swallow.prev_btn";
+                   type: SWALLOW;
+                   scale: 1;
+                   clip_to: "controlbar_clip";
+                   description { state: "default" 0.0;
+                      fixed: 1 1;
+                      align: 0.5 0.5;
+                      rel1.to: "elm.prev_btn_bg";
+                      rel2.to: "elm.prev_btn_bg";
+                   }
+                }
+                part { name: "controlbar";
+                   type: SWALLOW;
+                   scale: 1;
+                   clip_to: "controlbar_clip";
+                   description { state: "default" 0.0;
+                          fixed: 1 1;
+                      rel1.to: "controlbar_bg";
+                      rel2 { relative: 0.0 1.0; to: "elm.prev_btn_bg"; }
+                      visible: 1;
+                   }
+                }
                }
 
                programs {
 
-/* For button cancel */
-                  program {
-                       name: "hide_btn_cancel";
-                       signal: "setasview,hide,btn_cancel";
-                       source: "elm";
-                       action: STATE_SET "hide" 0.0;
-                       target: "setasview.btn_cancel";
-                   }
-
-                   program {
-                       name: "show_btn_cancel";
-                       signal: "setasview,show,btn_cancel";
-                       source: "elm";
-                       action: STATE_SET "show" 0.0;
-                       target: "setasview.btn_cancel";
-                   }
-
-                   program {
-                       name: "btn_cancel_mouse_down";
-                       signal: "mouse,down,1";
-                       source: "setasview.btn_cancel";
-                       action: STATE_SET "pressed" 0.0;
-                       target: "setasview.btn_cancel";
-                   }
-
-                   program {
-                       name: "btn_cancel_mouse_up";
-                       signal: "mouse,up,1";
-                       source: "setasview.btn_cancel";
-                       after: "show_btn_cancel";
-                   }
-
-                   program {
-                       name: "btn_cancel_clicked";
-                       signal: "mouse,clicked,1";
-                       source: "setasview.btn_cancel";
-                       action: SIGNAL_EMIT "setasview,cancel,clicked" "";
-                   }
-
-/* For button ok */
-                  program {
-                       name: "hide_btn_set";
-                       signal: "setasview,hide,btn_ok";
-                       source: "elm";
-                       action: STATE_SET "hide" 0.0;
-                       target: "setasview.btn_ok";
-                   }
-
-                   program {
-                       name: "show_btn_set";
-                       signal: "setasview,show,btn_ok";
-                       source: "elm";
-                       script {
-                               if ( get_int(ok_state) == _STATE_DISABLED )
-                                       set_state(PART:"setasview.btn_ok", "dim", 0.0);
-                               else
-                                       set_state(PART:"setasview.btn_ok", "default", 0.0);
-                       }
-                   }
-                   program {
-                       name: "dim_btn_set";
-                       signal: "setasview,disable,btn_ok";
-                       source: "elm";
-
-                       script {
-                               set_int(ok_state, _STATE_DISABLED);
-                               set_state(PART:"setasview.btn_ok", "dim", 0.0);
-                       }
-                   }
-
-                   program {
-                       name: "enable_btn_set";
-                       signal: "setasview,enable,btn_ok";
-                       source: "elm";
-                       script {
-                               set_int(ok_state, _STATE_ENABLED);
-                               set_state(PART:"setasview.btn_ok", "default", 0.0);
-                       }
-                   }
-
-                   program {
-                       name: "btn_set_mouse_down";
-                       signal: "mouse,down,1";
-                       source: "setasview.btn_ok";
-
-                       script {
-                               if ( get_int(ok_state) == _STATE_ENABLED )
-                                       set_state(PART:"setasview.btn_ok", "pressed", 0.0);
+                       program {
+                               name: "hide_menu";
+                               signal: "elm,state,hide";
+                               source: "event";
+                               action: STATE_SET "hide" 0.0;
+                               target: "controlbar_clip";
+                               target: "controlbar_bg";
                        }
-                   }
-
-                   program {
-                       name: "btn_set_mouse_up";
-                       signal: "mouse,up,1";
-                       source: "setasview.btn_ok";
-                       after: "show_btn_set";
-                   }
-
-                   program {
-                       name: "btn_set_clicked";
-                       signal: "mouse,clicked,1";
-                       source: "setasview.btn_ok";
-                       script {
-                               if ( get_int(ok_state) == _STATE_ENABLED )
-                               {
-                                       emit("setasview,set,clicked", "");
-                               }
-                       }
-                   }
 
+                       program {
+                               name: "show_menu";
+                               signal: "elm,state,show";
+                               source: "event";
+                               action: STATE_SET "default" 0.0;
+                               target: "controlbar_clip";
+                               target: "controlbar_bg";
+                       }
                }
        }
 }
+
index ea0c0b7..0e3aafa 100755 (executable)
@@ -1,19 +1,18 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 // slider layout
 
@@ -24,6 +23,7 @@ group {
 
        images {
             image: "T01_btn_play.png" COMP;
+            image: "T01_btn_paused.png" COMP;
         }
 
        parts {
@@ -41,7 +41,7 @@ group {
                        }
                }
 
-               part { name: "slider.photocam";
+               part { name: "slider.contents";
                        type: SWALLOW;
                        mouse_events: 1;
                        scale: 1;
@@ -72,28 +72,28 @@ group {
                        }
                    }
 
-
+#if 1
                part { name: "slider.icon";
-                       type: IMAGE;
+                       type: SWALLOW;
                        mouse_events: 1;
                        scale: 1;
                        description {
                        state: "default" 0.0;
-                                       align: 0.5 0.5;
+                               align: 0.5 0.5;
                                visible: 0;
-                                       fixed: 1 1;
-                                       max: 72 72;
+                               fixed: 1 1;
+                               max: 72 72;
                                rel1 { relative: 0.0 0.0; }
                                rel2 { relative: 1.0 1.0; }
-                                       image.normal: "T01_btn_play.png";
                        }
 
                        description {
-                                       state: "show" 0.0;
-                                       inherit: "default" 0.0;
+                               state: "show" 0.0;
+                               inherit: "default" 0.0;
                                visible: 1;
                        }
                    }
+#endif
 
                part { name: "slider.progress";
                        type: SWALLOW;
@@ -135,44 +135,45 @@ group {
                        }
 
                program {
-                               name: "show_icon";
-                               signal: "elm,state,show_icon";
+                               name: "show_progress";
+                               signal: "elm,state,show,progress";
                                source: "slider";
                                action: STATE_SET "show" 0.0;
-                               target: "slider.icon";
+                               target: "slider.progress";
                        }
 
                program {
-                               name: "hide_icon";
-                               signal: "elm,state,hide_icon";
+                               name: "hide_progress";
+                               signal: "elm,state,hide,progress";
                                source: "slider";
                                action: STATE_SET "default" 0.0;
-                               target: "slider.icon";
+                               target: "slider.progress";
                        }
-
+#if 1
                program {
-                               name: "show_progress";
-                               signal: "elm,state,show,progress";
+                               name: "show_icon";
+                               signal: "elm,state,show_icon";
                                source: "slider";
                                action: STATE_SET "show" 0.0;
-                               target: "slider.progress";
+                               target: "slider.icon";
                        }
 
                program {
-                               name: "hide_progress";
-                               signal: "elm,state,hide,progress";
+                               name: "hide_icon";
+                               signal: "elm,state,hide_icon";
                                source: "slider";
                                action: STATE_SET "default" 0.0;
-                               target: "slider.progress";
+                               target: "slider.icon";
                        }
 
+
                program {
                                name: "icon_click";
                                signal: "mouse,clicked,1";
                                source: "slider.icon";
                                action: SIGNAL_EMIT "slider,icon,click" "";
                        }
-
+#endif
                }//programs
 
      } //group
diff --git a/main/layout/ivug-toolbar.edc b/main/layout/ivug-toolbar.edc
deleted file mode 100755 (executable)
index c65ea20..0000000
+++ /dev/null
@@ -1,886 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-/*
-*  Refer to themes\widgets\toolbar.edc
-*/
-
-#define ITEM_STATE_ENABLED 0
-#define ITEM_STATE_DISABLED 1
-
-/* 1.0 */
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC 28
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC "#f9f9f9"
-#define BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC 56 56
-
-#define BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC 249 249 249 255
-#define BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC 249 249 249 255
-
-collections {
-
-       group { name: "elm/toolbar/base/ivug-toolbar/default";
-          images {
-             image: "T01_toolbar_bg.png" COMP;
-          }
-          parts {
-             part { name: "base";
-                mouse_events: 1;
-                description { state: "default" 0.0;
-                   image.normal: "T01_toolbar_bg.png";
-                }
-             }
-             part { name: "clipper";
-                type: RECT;
-                mouse_events: 0;
-                description {
-                   state: "default" 0.0;
-                   rel1 {
-                      to: "base";
-                      offset: 2 2;
-                   }
-                   rel2 {
-                      to: "base";
-                      offset: -3 -3;
-                   }
-                }
-             }
-             part { name: "elm.swallow.content";
-                clip_to: "clipper";
-                type: SWALLOW;
-                description {
-                   state: "default" 0.0;
-                   rel1.to: "clipper";
-                   rel2.to: "clipper";
-                }
-             }
-             part { name: "event";
-                type: RECT;
-                mouse_events: 1;
-                repeat_events: 1;
-                description { state: "default" 0.0;
-                   color: 0 0 0 0;
-                }
-             }
-          }
-       }
-
-       group { name: "elm/toolbar/item/ivug-toolbar/default";
-          images {
-             image: "T01_toolbar_press.png" COMP;
-          }
-          styles{
-             style { name: "toolbar_style";
-                base: "font=SLP:style=Medium font_size="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXT_SIZE_INC" align=center color="BUTTON_CONTROLBAR_ITEM_BUTTON_TEXTBLOCK_COLOR_INC" wrap=mixed ellipsis=1";
-                tag: "br" "\n";
-                tag: "ps" "ps";
-                tag: "hilight" "+ font=SLP:style=Bold";
-                tag: "b" "+ font=SLP:style=Bold";
-                tag: "tab" "\t";
-             }
-          }
-
-          data.item: "transition_animation_on" "1";
-          script {
-             public item_state = ITEM_STATE_ENABLED;
-          }
-          parts {
-             part { name: "bg";
-                mouse_events: 0;
-                description { state: "default" 0.0;
-                   visible: 0;
-                   color: 255 255 255 0;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to: "padding_right_bottom";
-                   }
-                   image {
-                      normal: "T01_toolbar_press.png";
-                      border: 3 3 3 3;
-                   }
-                   image.middle: SOLID;
-                   fill.smooth: 0;
-                }
-                description { state: "selected" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: 255 255 255 255;
-                }
-                description { state: "disabled" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 0;
-                   color: 255 255 255 0;
-                }
-             }
-             part { name: "padding_left_top";
-                type: RECT;
-                scale: 1;
-                mouse_events: 0;
-                description { state: "default" 0.0;
-                   align: 0.0 0.0;
-                   rel2.relative: 0.0 0.0;
-                   min: 10 8;
-                   fixed: 1 1;
-                   visible: 1;
-                   color: 0 0 0 0;
-                }
-             }
-             part { name: "padding_right_bottom";
-                type: RECT;
-                scale: 1;
-                mouse_events: 0;
-                description { state: "default" 0.0;
-                   align: 1.0 1.0;
-                   rel1.relative: 1.0 1.0;
-                   min: 10 5;
-                   fixed: 1 1;
-                   visible: 1;
-                   color: 0 0 0 0;
-                }
-             }
-             part {
-                name: "icon_rect";
-                type: RECT;
-                scale: 1;
-                mouse_events: 0;
-                description { state: "default" 0.0;
-                   min: 0 0;
-                   fixed: 0 1;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_left_top";
-                   }
-                   align: 0.5 0.0;
-                   color: 0 0 0 0;
-                }
-                description { state: "visible" 0.0;
-                   min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   fixed: 0 1;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_left_top";
-                   }
-                   align: 0.5 0.0;
-                   color: 0 0 0 0;
-                }
-                description { state: "icononly" 0.0;
-                   inherit: "default" 0.0;
-                }
-             }
-             part { name: "padding_after_icon";
-                type: RECT;
-                scale: 1;
-                mouse_events: 0;
-                description { state: "default" 0.0; //when only icon or no icon is there
-                   align: 0.0 0.0;
-                   rel1 {
-                      relative: 0.0 1.0;
-                      to: "icon_rect";
-                   }
-                   rel2.to: "icon_rect";
-                   fixed: 0 1;
-                   min: 0 0;
-                   color: 0 0 0 0;
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                }
-                description { state: "icononly" 0.0;
-                   inherit: "default" 0.0;
-                }
-             }
-             part { name: "padding_before_text";
-                type: RECT;
-                scale: 1;
-                mouse_events: 0;
-                description { state: "default" 0.0; //when only icon or no icon is there
-                   align: 0.5 1.0;
-                   rel1 {
-                      relative: 1.0 0.0;
-                      to_x: "padding_left_top";
-                      to_y: "elm.text";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "elm.text";
-                   }
-                   fixed: 0 1;
-                   min: 0 0;
-                   color: 0 0 0 0;
-                }
-             }
-             part { name: "elm.swallow.icon";
-                type: SWALLOW;
-                scale: 1;
-                clip_to: "elm.icon.clipper";
-                description { state: "default" 0.0;
-                   visible: 0;
-                   align: 0.5 0.0;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_left_top";
-                   }
-                   fixed: 0 1;
-                }
-                description { state: "visible" 0.0;
-                   fixed: 0 1;
-                   min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_before_text";
-                   }
-                   aspect: 1.0 1.0;
-                   aspect_preference: HORIZONTAL;
-                }
-                description { state: "icononly" 0.0;
-                   min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to: "padding_right_bottom";
-                   }
-                   aspect: 1.0 1.0;
-                   aspect_preference: HORIZONTAL;
-                }
-             }
-             part { name: "elm.swallow.icon_new";
-                type: SWALLOW;
-                scale: 1;
-                clip_to: "elm.icon_new.clipper";
-                description { state: "default" 0.0;
-                   visible: 0;
-                   align: 0.5 0.0;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_left_top";
-                   }
-                   fixed: 0 1;
-                }
-                description { state: "visible" 0.0;
-                   fixed: 0 1;
-                   min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to_x: "padding_right_bottom";
-                      to_y: "padding_before_text";
-                   }
-                   aspect: 1.0 1.0;
-                   aspect_preference: HORIZONTAL;
-                }
-                description { state: "icononly" 0.0;
-                   min: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   max: BUTTON_CONTROLBAR_ITEM_BUTTON_ICON_SIZE_INC;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to: "padding_right_bottom";
-                   }
-                   aspect: 1.0 1.0;
-                   aspect_preference: HORIZONTAL;
-                }
-             }
-             part { name: "elm.text";
-                type: TEXTBLOCK;
-                mouse_events: 0;
-                scale: 1;
-                clip_to: "elm.text.clipper";
-                description { state: "default" 0.0;
-                   visible: 1;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to_x: "padding_left_top";
-                      to_y: "padding_after_icon";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to: "padding_right_bottom";
-                   }
-                   color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
-                   fixed: 1 1;
-                   text {
-                      style: "toolbar_style";
-                      min: 0 1;
-                      max: 0 1;
-                   }
-                }
-                description { state: "selected" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "clicked" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-                description { state: "focused" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-             }
-             part { name: "elm.text_new";
-                type: TEXTBLOCK;
-                mouse_events: 0;
-                scale: 1;
-                clip_to: "elm.text_new.clipper";
-                description { state: "default" 0.0;
-                   visible: 1;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to_x: "padding_left_top";
-                      to_y: "padding_after_icon";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to: "padding_right_bottom";
-                   }
-                   color: BUTTON_NAVIFRAME_DEFAULT_TEXT_COLOR_INC;
-                   fixed: 1 1;
-                   text {
-                      style: "toolbar_style";
-                      min: 0 1;
-                      max: 0 1;
-                   }
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "clicked" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-                description { state: "focused" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-             }
-             part { name: "elm.text.clipper";
-                type: RECT;
-                description { state: "default" 0.0;
-                   color: 255 255 255 255;
-                }
-                description { state: "animation" 0.0;
-                   color: 255 255 255 0;
-                }
-                description { state: "disabled" 0.0;
-                   color: 255 255 255 153;
-                }
-             }
-             part { name: "elm.text_new.clipper";
-                type: RECT;
-                description { state: "default" 0.0;
-                   color: 255 255 255 0;
-                }
-                description { state: "animation" 0.0;
-                   color: 255 255 255 255;
-                }
-             }
-             part { name: "elm.icon.clipper";
-                type: RECT;
-                description { state: "default" 0.0;
-                   color: 255 255 255 255;
-                }
-                description { state: "animation" 0.0;
-                   color: 255 255 255 0;
-                }
-                description { state: "disabled" 0.0;
-                   color: 255 255 255 153;
-                }
-             }
-             part { name: "elm.icon_new.clipper";
-                type: RECT;
-                description { state: "default" 0.0;
-                   color: 255 255 255 0;
-                }
-                description { state: "animation" 0.0;
-                   color: 255 255 255 255;
-                }
-             }
-             part { name: "event";
-                type: RECT;
-                mouse_events: 1;
-                ignore_flags: ON_HOLD;
-                description { state: "default" 0.0;
-                   color: 0 0 0 0;
-                }
-             }
-             part { name: "event2";
-                type: RECT;
-                mouse_events: 1;
-                repeat_events: 1;
-                description { state: "default" 0.0;
-                   color: 0 0 0 0;
-                }
-             }
-          }
-          programs {
-             program { name: "pressed";
-                signal:  "mouse,down,1";
-                source:  "event";
-                script {
-                   if (get_int(item_state) != ITEM_STATE_DISABLED)
-                     set_state(PART:"bg", "selected", 0.0);
-                }
-                transition: LINEAR 0.2;
-             }
-             program { name: "unpressed";
-                signal:  "mouse,up,1";
-                source:  "event2";
-                action:  STATE_SET "default" 0.0;
-                target:  "bg";
-                transition: LINEAR 0.1;
-             }
-             program { name: "go";
-                signal:  "mouse,up,1";
-                source:  "event";
-                action:  SIGNAL_EMIT "elm,action,click" "elm";
-             }
-             program { name: "mouse,in";
-                signal:  "mouse,in";
-                source:  "event";
-                action:  SIGNAL_EMIT "elm,mouse,in" "elm";
-             }
-             program { name: "mouse,out";
-                signal:  "mouse,out";
-                source:  "event";
-                action:  SIGNAL_EMIT "elm,mouse,out" "elm";
-             }
-             program { name: "disable";
-                signal: "elm,state,disabled";
-                source: "elm";
-                action: STATE_SET "disabled" 0.0;
-                target: "bg";
-                after: "disable_text";
-             }
-             program { name: "disable_text";
-                script {
-                   new st[31];
-                   new Float:vl;
-                   get_state(PART:"elm.text", st, 30, vl);
-                   if (!strcmp(st, "visible"))
-                   {
-                      set_state(PART:"elm.text", "disabled_visible", 0.0);
-                      set_state(PART:"elm.text_new", "disabled_visible", 0.0);
-                   }
-                   else
-                   {
-                      set_state(PART:"elm.text", "disabled", 0.0);
-                      set_state(PART:"elm.text_new", "disabled", 0.0);
-                   }
-                   set_state(PART:"elm.text.clipper", "disabled", 0.0);
-                   set_state(PART:"elm.icon.clipper", "disabled", 0.0);
-                   set_int(item_state, ITEM_STATE_DISABLED);
-                }
-             }
-             program { name: "enable";
-                signal: "elm,state,enabled";
-                source: "elm";
-                action: STATE_SET "default" 0.0;
-                target: "bg";
-                after: "enable_text";
-             }
-             program { name: "enable_text";
-                script {
-                   new st[31];
-                   new Float:vl;
-                   get_state(PART:"elm.text", st, 30, vl);
-                   if (!strcmp(st, "disabled_visible"))
-                   {
-                      set_state(PART:"elm.text", "visible", 0.0);
-                      set_state(PART:"elm.text_new", "visible", 0.0);
-                   }
-                   else
-                   {
-                      set_state(PART:"elm.text", "default", 0.0);
-                      set_state(PART:"elm.text_new", "default", 0.0);
-                   }
-                   set_state(PART:"elm.text.clipper", "default", 0.0);
-                   set_state(PART:"elm.icon.clipper", "default", 0.0);
-                   set_int(item_state, ITEM_STATE_ENABLED);
-                }
-             }
-             program { name: "label_set,animation,forward";
-                signal: "elm,state,label_set,forward";
-                source: "elm";
-                after: "label_set,animation";
-             }
-             program { name: "label_set,animation,backward";
-                signal: "elm,state,label_set,backward";
-                source: "elm";
-                after: "label_set,animation";
-             }
-             program { name: "label_set,animation";
-                signal: "elm,state,label_set";
-                source: "elm";
-                action: STATE_SET "animation" 0.0;
-                target: "elm.text.clipper";
-                target: "elm.text_new.clipper";
-                transition: LINEAR 0.2;
-                after: "label_set,animation,done";
-             }
-             program { name: "label_set,animation,done";
-                action: SIGNAL_EMIT "elm,state,label_set,done" "elm";
-             }
-             program { name: "label,reset";
-                signal: "elm,state,label,reset";
-                source: "elm";
-                action: STATE_SET "default" 0.0;
-                target: "elm.text.clipper";
-                target: "elm.text_new.clipper";
-             }
-             program { name: "icon_set,animation,forward";
-                signal: "elm,state,icon_set,forward";
-                source: "elm";
-                after: "icon_set,animation";
-             }
-             program { name: "icon_set,animation,backward";
-                signal: "elm,state,icon_set,backward";
-                source: "elm";
-                after: "icon_set,animation";
-             }
-             program { name: "icon_set,animation";
-                signal: "elm,state,icon_set";
-                source: "elm";
-                action: STATE_SET "animation" 0.0;
-                target: "elm.icon.clipper";
-                target: "elm.icon_new.clipper";
-                transition: LINEAR 0.2;
-                after: "icon_set,animation,done";
-             }
-             program { name: "icon_set,animation,done";
-                action: SIGNAL_EMIT "elm,state,icon_set,done" "elm";
-             }
-             program { name: "icon,reset";
-                signal: "elm,state,icon,reset";
-                source: "elm";
-                action: STATE_SET "default" 0.0;
-                target: "elm.icon.clipper";
-                target: "elm.icon_new.clipper";
-             }
-             program { name: "text_show";
-                signal: "elm,state,text,visible";
-                source: "elm";
-                script {
-                   new st[31];
-                   new Float:vl;
-                   get_state(PART:"elm.swallow.icon", st, 30, vl);
-                   if (!strcmp(st, "icononly"))
-                     {
-                        set_state(PART:"elm.swallow.icon", "visible", 0.0);
-                        set_state(PART:"icon_rect", "visible", 0.0);
-                        set_state(PART:"padding_after_icon", "visible", 0.0);
-                     }
-                   set_state(PART:"elm.text", "visible", 0.0);
-                }
-             }
-             program { name: "text_hide";
-                signal: "elm,state,text,hidden";
-                source: "elm";
-                script {
-                   new st[31];
-                   new Float:vl;
-                   get_state(PART:"elm.swallow.icon", st, 30, vl);
-                   if (!strcmp(st, "visible"))
-                     {
-                        set_state(PART:"elm.swallow.icon", "icononly", 0.0);
-                        set_state(PART:"icon_rect", "icononly", 0.0);
-                        set_state(PART:"padding_after_icon", "icononly", 0.0);
-                     }
-                   set_state(PART:"elm.text", "default", 0.0);
-                }
-             }
-             program { name: "icon_show";
-                signal: "elm,state,icon,visible";
-                source: "elm";
-                script {
-                   new st[31];
-                   new Float:vl;
-                   get_state(PART:"elm.text", st, 30, vl);
-                   if (!strcmp(st, "visible"))
-                     {
-                        set_state(PART:"elm.swallow.icon", "visible", 0.0);
-                        set_state(PART:"icon_rect", "visible", 0.0);
-                        set_state(PART:"padding_after_icon", "visible", 0.0);
-                     }
-                   else
-                     {
-                        set_state(PART:"elm.swallow.icon", "icononly", 0.0);
-                        set_state(PART:"icon_rect", "icononly", 0.0);
-                        set_state(PART:"padding_after_icon", "icononly", 0.0);
-                     }
-                }
-             }
-          }
-       }
-
-       group { name: "elm/toolbar/item/ivug-toolbar/item_horizontal";
-          inherit: "elm/toolbar/item/ivug-toolbar/default";
-          script {
-             public item_state = ITEM_STATE_ENABLED;
-          }
-          parts {
-             part { name: "icon_rect";
-                description { state: "default" 0.0;
-                   fixed: 1 0;
-                   align: 0.0 0.5;
-                }
-                description { state: "visible" 0.0;
-                   fixed: 1 0;
-                   rel2 {
-                      relative: 1.0 0.0;
-                      to_x: "padding_left_top";
-                      to_y: "padding_right_bottom";
-                   }
-                   align: 0.0 0.5;
-                }
-             }
-             part { name: "padding_after_icon";
-                description { state: "default" 0.0; //when only icon or no icon is there
-                   rel1.relative: 1.0 0.0;
-                   fixed: 1 1;
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   min: 6 0;
-                }
-             }
-             part { name: "padding_before_text";
-                description { state: "default" 0.0; //when only icon or no icon is there
-                   align: 1.0 0.5;
-                   rel1 {
-                      relative: 0.0 1.0;
-                      to_x: "elm.text";
-                      to_y: "padding_left_top";
-                   }
-                   rel2 {
-                      to_x: "elm.text";
-                      to_y: "padding_right_bottom";
-                   }
-                   fixed: 1 0;
-                   min: 6 0;
-                }
-             }
-             part { name: "elm.swallow.icon";
-                description { state: "default" 0.0;
-                   align: 0.0 0.5;
-                   rel2 {
-                      relative: 1.0 0.0;
-                      to_x: "padding_left_top";
-                      to_y: "padding_right_bottom";
-                   }
-                   fixed: 1 0;
-                }
-                description { state: "visible" 0.0;
-                   fixed: 1 0;
-                   align: 1.0 0.5;
-                   rel1 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_before_text";
-                      to_y: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to_x: "padding_before_text";
-                      to_y: "padding_right_bottom";
-                   }
-                   aspect_preference: VERTICAL;
-                }
-                description { state: "icononly" 0.0;
-                   aspect_preference: VERTICAL;
-                }
-             }
-             part { name: "elm.swallow.icon_new";
-                description { state: "default" 0.0;
-                   align: 0.0 0.5;
-                   rel2 {
-                      relative: 1.0 0.0;
-                      to_x: "padding_left_top";
-                      to_y: "padding_right_bottom";
-                   }
-                   fixed: 1 0;
-                }
-                description { state: "visible" 0.0;
-                   fixed: 1 0;
-                   align: 1.0 0.5;
-                   rel1 {
-                      relative: 0.0 1.0;
-                      to_x: "padding_before_text";
-                      to_y: "padding_left_top";
-                   }
-                   rel2 {
-                      relative: 0.0 0.0;
-                      to_x: "padding_before_text";
-                      to_y: "padding_right_bottom";
-                   }
-                   aspect_preference: VERTICAL;
-                }
-                description { state: "icononly" 0.0;
-                   aspect_preference: VERTICAL;
-                }
-             }
-             part { name: "elm.text";
-                type: TEXTBLOCK;
-                description { state: "default" 0.0;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to_x: "padding_after_icon";
-                      to_y: "padding_left_top";
-                   }
-                   text {
-                      style: "toolbar_style";
-                      min: 1 0;
-                      max: 1 0;
-                   }
-                }
-                description { state: "selected" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "clicked" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-                description { state: "focused" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-             }
-             part { name: "elm.text_new";
-                type: TEXTBLOCK;
-                description { state: "default" 0.0;
-                   rel1 {
-                      relative: 1.0 1.0;
-                      to_x: "padding_after_icon";
-                      to_y: "padding_left_top";
-                   }
-                   text {
-                      style: "toolbar_style";
-                      min: 1 0;
-                      max: 1 0;
-                   }
-                }
-                description { state: "selected" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "visible" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                }
-                description { state: "clicked" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-                description { state: "focused" 0.0;
-                   inherit: "default" 0.0;
-                   visible: 1;
-                   color: BUTTON_NAVIFRAME_FOCUSED_TEXT_COLOR_INC;
-                }
-             }
-          }
-       }
-
-       /*group { name: "elm/toolbar/separator/ivug-toolbar/default";
-          images {
-             image: "separator_v.png" COMP;
-          }
-          parts {
-             part { name: "separator"; // separator group
-                description { state: "default" 0.0;
-                   min: 2 2;
-                   max: 2 9999;
-                   rel1.offset: 4 4;
-                   rel2.offset: -5 -5;
-                   image {
-                      normal: "separator_v.png";
-                   }
-                   fill {
-                      smooth: 0;
-                   }
-                }
-             }
-          }
-       }*/
-
-       group { name: "elm/toolbar/object/ivug-toolbar/default";
-          parts {
-             part { name: "elm.swallow.object"; // object group
-                type: SWALLOW;
-                description {
-                    state: "default" 0.0;
-                }
-             }
-          }
-       }
-}
-
diff --git a/main/res/images/01_Control icon/T01_controlbar_icon_info.png b/main/res/images/01_Control icon/T01_controlbar_icon_info.png
deleted file mode 100755 (executable)
index 9e746c8..0000000
Binary files a/main/res/images/01_Control icon/T01_controlbar_icon_info.png and /dev/null differ
diff --git a/main/res/images/T01_Nocontents_broken.png b/main/res/images/T01_Nocontents_broken.png
deleted file mode 100755 (executable)
index 9326d0a..0000000
Binary files a/main/res/images/T01_Nocontents_broken.png and /dev/null differ
index 1bead45..b678985 100755 (executable)
@@ -1,6 +1,6 @@
 # for i18n
 
-SET(POFILES de_DE.po el_GR.po en.po es_ES.po fr_FR.po it_IT.po ja_JP.po ko_KR.po 
+SET(POFILES de_DE.po el_GR.po en.po es_ES.po fr_FR.po it_IT.po ja_JP.po ko_KR.po
 nl_NL.po pt_PT.po ru_RU.po tr_TR.po zh_CN.po zh_HK.po zh_TW.po)
 
 SET(MSGFMT "/usr/bin/msgfmt")
@@ -23,3 +23,4 @@ ENDFOREACH(pofile)
 
 MESSAGE(".mo files: ${moFiles}")
 ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
+
index c6b625a..5b882fb 100755 (executable)
@@ -1 +1 @@
-# List of source files containing translatable strings.\r
+# List of source files containing translatable strings.
index 9c924e7..f6b731e 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Tag-Info"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Hintergrund für gesperrten und Home-Bildschirm"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Bewegung verwenden"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Tag erst."
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Start- und gesperrte Bildschirme"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "In Zwischenablage kopieren"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Zuschneiden"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Home-Bildschirm"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Bildschirmsperre"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Nach links drehen"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Nach rechts drehen"
+
index 865fd29..e934edc 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Ετικέτα"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Ταπετσαρία αρχικής οθόνης και οθόνης κλειδώματος"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Χρήση κίνησης"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Δημ. ετικ."
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Αρχική οθόνη και οθόνη κλειδώματος"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Αντιγραφή στο πρόχειρο"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Περικοπή"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Αρχική οθόνη"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Κλείδωμα οθόνης"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Περιστροφή προς τα αριστερά"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Περιστροφή προς τα δεξιά"
+
index 265973d..3bed3f6 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Tag"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Home and lock screen wallpaper"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Use motion"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Create tag"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Home and lock screens"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Copy to clipboard"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Crop"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Home screen"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Lock screen"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Rotate left"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Rotate right"
+
index ee6d2a8..a33c1f2 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Etiqueta"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Fondo de pantalla de pantalla de inicio y bloqueo"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Utilizar movimiento"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Crear etiq"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Pantallas de inicio y de bloqueo"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Copiar en portapapeles"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Recortar"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Pantalla de inicio"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Pantalla de bloqueo"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Girar a la izquierda"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Girar a la derecha"
+
index 137e9f3..c6b24f2 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Etiqueter"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Fonds d'écran de verrouillage et d'accueil"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Utiliser les mouvements"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Nv libellé"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Ecrans d'accueil et de verrouillage"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Copier dans le presse-papiers"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Rogner"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Ecran d'accueil"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Ecran de verrouillage"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Rotation à gauche"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Rotation à droite"
+
index e54168a..a8aa273 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Tag"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Sfondo schermata iniziale e blocco"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Sensore di movimento"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Crea tag"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Schermata Home e di blocco"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Copia negli appunti"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Ritaglia"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Sfondo principale"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Schermata di blocco"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Ruota a sinistra"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Ruota a destra"
+
index cffcb88..7d5b9f3 100755 (executable)
@@ -2,10 +2,10 @@ msgid "IDS_IV_BODY_ACCUMULATED_TIME"
 msgstr "累積​時間"
 
 msgid "IDS_IV_HEADER_ADD_TAG"
-msgstr "タグ​を​追加"
+msgstr "タグ​を​追加"
 
 msgid "IDS_IV_POP_ADDED"
-msgstr "追加しました。"
+msgstr "追加しました。"
 
 msgid "IDS_IV_BODY_ANY"
 msgstr "どれか"
@@ -68,7 +68,7 @@ msgid "IDS_IV_BODY_LOCATIONS"
 msgstr "場所"
 
 msgid "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB"
-msgstr "画面ロック時の壁紙"
+msgstr "画面​ロック​時​の​壁紙"
 
 msgid "IDS_IV_BODY_LONGITUDE"
 msgstr "経度"
@@ -95,7 +95,7 @@ msgid "IDS_IV_OPT_PRINT_VIA_BLUETOOTH"
 msgstr "Bluetoothで印刷"
 
 msgid "IDS_IV_BODY_RESOLUTION"
-msgstr "撮影サイズ"
+msgstr "撮影サイズ"
 
 msgid "IDS_IV_BODY_RIGHT_STATUS"
 msgstr "権限の状態"
@@ -140,16 +140,16 @@ msgid "IDS_IV_OPT_FILE_TRANSFER"
 msgstr "ファイル​転送"
 
 msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN"
-msgstr "今後​表示​しない"
+msgstr "今後​​表示​​しない"
 
 msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN"
-msgstr "画面表示を縮小/拡大するには、画面の2箇所を長押しし、端末を前後に傾けます。"
+msgstr "画面​表示​を​縮小/​拡大​する​に​は、​画面​の​2​箇所​を​長​押し​し、​端末​を​前後​に​傾​け​ま​す。"
 
 msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT"
-msgstr "チルト操作について"
+msgstr "端末​​を​​傾ける​​操作​​に​​ついて"
 
 msgid "IDS_IV_HEADER_ALL_ALBUMS"
-msgstr "全アルバム"
+msgstr "全アルバム"
 
 msgid "IDS_IV_OPT_TAG"
 msgstr "タグ"
@@ -157,3 +157,30 @@ msgstr "タグ"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "ホーム画面/ロック画面用壁紙"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "モーション​を​使用"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "タグ​作成"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "ホーム画面とロック画面"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "クリップ​ボード​に​コピー"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "トリミング"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "ホーム画面"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "ロック画面"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "左​に​回転"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "右​に​回転"
+
index deb9ac6..40f5d6b 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "태그"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "홈 및 잠금화면 배경"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "모션 기능 사용"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "태그 추가"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "홈 화면 및 잠금화면"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "클립보드에 복사"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "잘라내기"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "홈 화면"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "잠금화면"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "왼쪽으로 회전"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "오른쪽으로 회전"
+
index 5e786da..a62f2f7 100755 (executable)
@@ -140,7 +140,7 @@ msgid "IDS_IV_OPT_FILE_TRANSFER"
 msgstr "Bestandsoverdracht"
 
 msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN"
-msgstr "Niet meer tonen"
+msgstr "Niet meer laten zien"
 
 msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN"
 msgstr "Tik en houd vast op twee punten en kantel het apparaat heen en terug om het scherm te verkleinen/vergroten"
@@ -157,3 +157,30 @@ msgstr "Tag"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Achtergrond voor start- en vergrendelscherm"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Beweging gebruiken"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Tag maken"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Start- en vergrendelscherm"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Kopiëren naar klembord"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Bijsnijden"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Startscherm"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Vergrendelscherm"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Linksom draaien"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Rechtsom draaien"
+
index ac6f45d..42c993f 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Etiqueta"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Fundo do ecrã principal e ecrã bloqueado"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Utilizar movimento"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Criar etiq."
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Ecrãs principal e de bloqueio"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Copiar para bloco de notas"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Recortar"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Ecrã principal"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Ecrã bloqueado"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Rodar para a esquerda"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Rodar para a direita"
+
index 4983089..12e06d8 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "Метка"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Обои для главного экрана и экрана блокировки"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Использовать движение"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "Создать метку"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Главный экран и экран блокировки"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Копировать в буфер обмена"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Обрезать"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Главный экран"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Экран блокировки"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Повернуть влево"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Повернуть вправо"
+
index aabaeee..2c0f3c6 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "İm"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "Ana ekran ve kilit ekranı duvar kağıdı"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "Hareket kullan"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "İm oluştur"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "Ana ve kilit ekranları"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "Panoya kopyala"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "Kırp"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "Ana sayfa ekranı"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "Ekranı kilitle"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "Saat yönünün tersine döndür"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "Saat yönünde döndür"
+
index 5094669..0e96f48 100755 (executable)
@@ -157,3 +157,30 @@ msgstr "标签"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "主屏和锁屏壁纸"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "使用动作"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "创建标签"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "主屏和锁屏"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "复制至剪贴板"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "裁剪"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "主屏"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "锁定屏幕"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "向左旋转"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "向右旋转"
+
index f8fcc7e..08b6eb2 100755 (executable)
@@ -140,7 +140,7 @@ msgid "IDS_IV_OPT_FILE_TRANSFER"
 msgstr "檔案傳輸"
 
 msgid "IDS_IV_BODY_DO_NOT_SHOW_AGAIN"
-msgstr "不再顯示"
+msgstr "不再顯示"
 
 msgid "IDS_IV_BODY_TAP_AND_HOLD_AT_TWO_POINTS_THEN_TILT_DEVICE_BACK_AND_FORTH_TO_REDUCE_OR_ENLARGE_SCREEN"
 msgstr "輕觸並按住兩點,然後來回傾斜手機以縮小或放大螢幕"
@@ -157,3 +157,30 @@ msgstr "標籤"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "主螢幕與鎖定螢幕牆紙"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "使用動作"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "建立標籤"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "主螢幕和鎖定螢幕"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "複製到剪貼板"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "裁剪"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "主螢幕"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "鎖定螢幕"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "左轉"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "右轉"
+
index 495ed00..da69f96 100755 (executable)
@@ -149,7 +149,7 @@ msgid "IDS_IV_HEADER_LEARN_ABOUT_TILT"
 msgstr "瞭解關於傾斜"
 
 msgid "IDS_IV_HEADER_ALL_ALBUMS"
-msgstr "所有專輯"
+msgstr "所有相簿"
 
 msgid "IDS_IV_OPT_TAG"
 msgstr "標籤"
@@ -157,3 +157,30 @@ msgstr "標籤"
 msgid "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"
 msgstr "主螢幕與鎖定畫面桌布"
 
+msgid "IDS_IV_OPT_USE_MOTION"
+msgstr "使用動作"
+
+msgid "IDS_MEDIABR_OPT_CREATE_TAG"
+msgstr "建立標籤"
+
+msgid "IDS_IV_BODY_HOME_AND_LOCK_SCREENS"
+msgstr "主螢幕與鎖定畫面"
+
+msgid "IDS_IV_OPT_COPY_TO_CLIPBOARD"
+msgstr "複製到剪貼簿"
+
+msgid "IDS_IV_BODY_CROP"
+msgstr "裁剪"
+
+msgid "IDS_IV_BODY_HOME_SCREEN"
+msgstr "主螢幕"
+
+msgid "IDS_IV_BODY_LOCK_SCREEN"
+msgstr "鎖定螢幕"
+
+msgid "IDS_IV_OPT_ROTATE_LEFT"
+msgstr "向左旋轉"
+
+msgid "IDS_IV_OPT_ROTATE_RIGHT"
+msgstr "向右旋轉"
+
diff --git a/main/src/common/ivug-common.h b/main/src/common/ivug-common.h
deleted file mode 100755 (executable)
index ba817eb..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_COMMON_H__
-#define __IVUG_COMMON_H__
-
-#include "ivug-define.h"
-#include "ivug-datatypes.h"
-#include "ivug-uuid.h"
-
-#include <Elementary.h>
-#include <assert.h>
-
-#include "statistics.h"
-#include "ivug-debug.h"
-#include "ivug-string.h"
-#include "ivug-util.h"
-#include "ivug-define.h"
-#include "ivug-config.h"
-#include "ivug-widget.h"
-
-
-#define _EDJ(o)                        elm_layout_edje_get(o)
-
-#define IMAGE_BETWEEN_MARGIN           (30)                                    // The value is width between photocam(unit is pixel).
-
-#endif /* __IVUG_COMMON_H__ */
-
diff --git a/main/src/common/ivug-config.c b/main/src/common/ivug-config.c
deleted file mode 100755 (executable)
index 06efce5..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-define.h"
-#include "ivug-effect.h"
-#include "ivug-config.h"
-
-#include <vconf.h>
-#include <vconf-keys.h>
-
-// TODO: Request vconf key to setting part, Slide show setting vconf key
-#define VCONFKEY_GALLERY_INTERVAL_TIME "db/setting/gallery/interval_time"  //double
-#define VCONFKEY_GALLERY_REPEAT_STATE  "db/setting/gallery/repeat_state" //boolean
-#define VCONFKEY_GALLERY_SHUFFLE_STATE  "db/setting/gallery/shuffle_state" //boolean
-#define VCONFKEY_GALLERY_TRANSITION_EFFECT     "db/setting/gallery/ss_effect"  //char
-
-enum { STATE_FALSE = 0, STATE_TRUE = 1, };
-
-/*
-       Set lock screen with given image.
-
-       CAUTION : does not check filepath integrity
-*/
-bool ivug_config_set_lockscreen_image(const char* filepath)
-{
-       if(filepath == NULL)
-       {
-               MSG_IMAGEVIEW_ERROR("Lock screen path is NULL");
-               return FALSE;
-       }
-
-       if(vconf_set_str( VCONFKEY_IDLE_LOCK_BGSET, filepath ) < 0)
-       {
-               MSG_IMAGEVIEW_ERROR("Lockscreen set Error : %s", filepath);
-               return FALSE;
-       }
-
-       MSG_IMAGEVIEW_HIGH("Set Lockscreen filepath = %s", filepath);
-
-       return TRUE;
-}
-
-/*
-       Set home screen with given image
-
-       CAUTION : does not check filepath integrity
-*/
-bool ivug_config_set_homescreen_image( const char* filepath )
-{
-       if(filepath == NULL)
-       {
-               MSG_IMAGEVIEW_ERROR("Home screen path is NULL");
-               return FALSE;
-       }
-// TODO : Need to check file existence?????
-       if(vconf_set_str(VCONFKEY_BGSET, filepath) < 0)
-       {
-               MSG_IMAGEVIEW_ERROR("Homescreen set Error");
-               return FALSE;
-       }
-
-       MSG_IMAGEVIEW_HIGH("Set Homescreen filepath = %s", filepath);
-       return TRUE;
-}
-
-
-static bool
-_ivug_config_get_slideshow_repeat_state(void)
-{
-       int repeat_state = STATE_FALSE;
-
-       if(vconf_get_bool(VCONFKEY_GALLERY_REPEAT_STATE, &repeat_state) < 0)
-       {
-               MSG_IMAGEVIEW_ERROR("vconf_get_bool failed, set as repeat state as default: false");
-               return false;
-       }
-
-       MSG_IMAGEVIEW_HIGH("repeat state is: %d", repeat_state);
-
-       return (repeat_state == STATE_TRUE ? true : false);
-}
-
-static bool
-_ivug_config_get_slideshow_shuffle_state(void)
-{
-       int shuffle_state = STATE_FALSE;
-
-       if(vconf_get_bool(VCONFKEY_GALLERY_SHUFFLE_STATE, &shuffle_state) < 0)
-       {
-               MSG_IMAGEVIEW_ERROR("vconf_get_bool failed, set as shuffle state as default: false");
-               return false;
-       }
-
-       MSG_IMAGEVIEW_HIGH("shuffle state is: %d", shuffle_state);
-
-       return (shuffle_state == STATE_TRUE ? true : false);
-}
-
-static double
-_ivug_config_get_slideshow_interval_time(void)
-{
-       double interval_time = 0.0;
-
-       if(vconf_get_dbl(VCONFKEY_GALLERY_INTERVAL_TIME, &interval_time) < 0)
-       {
-               MSG_IMAGEVIEW_ERROR("vconf_get_dbl failed, set as interval time as -1");
-
-               interval_time = -1.0;
-       }
-
-       MSG_IMAGEVIEW_HIGH("interval time is: %f", interval_time);
-       return interval_time;
-}
-
-static char *
-_ivug_config_get_slideshow_effect_type(void)
-{
-// TODO : Free returned string??
-       char *effect_str = NULL;
-       effect_str = vconf_get_str(VCONFKEY_GALLERY_TRANSITION_EFFECT);
-
-       if(!effect_str)
-       {
-               MSG_IMAGEVIEW_ERROR("vconf_get_str failed, set as effect type as default");
-
-               effect_str = NULL;
-       }
-
-       MSG_IMAGEVIEW_HIGH("effect is: %s", effect_str);
-
-       return effect_str;
-}
-
-static ivug_effect_type
-_ivug_config_get_effect_type_by_string(char *effect_str)
-{
-       ivug_retv_if(!effect_str, EFFECT_NONE);
-
-       ivug_effect_type type = IVUG_EFFECT_TYPE_SLIDE;
-
-       if(!strncmp(effect_str, "Slide", strlen(effect_str)))
-       {
-               type = IVUG_EFFECT_TYPE_SLIDE;
-       }
-       else //Set all other cases as default NONE
-       {
-               MSG_SLIDER_WARN("Invalid type : %s", effect_str);
-               type = EFFECT_NONE;
-       }
-
-       MSG_IMAGEVIEW_HIGH("effect_str = %s, type = %d", effect_str, type);
-
-       return type;
-}
-
-void
-ivug_config_get_slideshow_setting(slide_show_mode *mode,
-                                                       double *interval_time,
-                                                       ivug_effect_type *effect_type)
-{
-       *mode = SLIDE_SHOW_MODE_NORMAL;
-
-       bool state;
-
-       state = _ivug_config_get_slideshow_repeat_state();
-       if(state == true)
-       {
-               *mode |= SLIDE_SHOW_MODE_REPEAT;
-       }
-
-       state = _ivug_config_get_slideshow_shuffle_state();
-       if(state == true)
-       {
-               *mode |= SLIDE_SHOW_MODE_SHUFFLE;
-       }
-
-       *interval_time = _ivug_config_get_slideshow_interval_time();
-
-       /* EFFECT_NONE, EFFECT_FADE, EFFECT_BLIND, EFFECT_IRIS */
-       char *effect = _ivug_config_get_slideshow_effect_type();
-
-       *effect_type = _ivug_config_get_effect_type_by_string(effect);
-}
-
-
diff --git a/main/src/common/ivug-config.h b/main/src/common/ivug-config.h
deleted file mode 100755 (executable)
index 31d9533..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_CONFIG_H__
-#define __IVUG_CONFIG_H__
-
-typedef enum {
-       SLIDE_SHOW_MODE_NORMAL                  = 0x00,
-       SLIDE_SHOW_MODE_REPEAT                  = 0x01,
-       SLIDE_SHOW_MODE_SHUFFLE                 = 0x02,
-       SLIDE_SHOW_MODE_SHUFFLE_REPEAT  = 0x03,
-} slide_show_mode;
-
-typedef enum {
-       IVUG_EFFECT_TYPE_SLIDE = 0x00,
-       IVUG_EFFECT_TYPE_MAX,
-} ivug_effect_type;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-bool ivug_config_set_lockscreen_image(const char* filepath);
-
-bool ivug_config_set_homescreen_image(const char* filepath);
-
-void ivug_config_get_slideshow_setting(slide_show_mode * /* OUT */ mode,
-                                                       double * /* OUT */ interval_time,
-                                                       ivug_effect_type * /* OUT */ effect_type);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_CONFIG_H__
diff --git a/main/src/common/ivug-datatypes.h b/main/src/common/ivug-datatypes.h
deleted file mode 100755 (executable)
index dc616e3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATATYPES_H__
-#define __IVUG_DATATYPES_H__
-
-#include "ivug-define.h"
-
-typedef void *Handle;
-
-#ifdef _USE_MEDIAINFO_STRINGID_
-typedef const char *UUID;
-#else
-typedef int UUID;
-#endif
-
-#endif                 // __IVUG_DATATYPES_H__
-
diff --git a/main/src/common/ivug-define.h b/main/src/common/ivug-define.h
deleted file mode 100755 (executable)
index 0cddf5b..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-/*
-       system widely used definition.
-*/
-
-#pragma once
-
-#define IVUG_MAX_FILE_PATH_LEN (4096)
-
-/*
-Definition "PREFIX" is declared in CMakelist.txt
-       PREFIX is "/opt/ug"
-       PACKAGE is "ug-image-viewer-efl"
-
-       Path name does not include trailing /.
-
-       DATA_PATH is /opt/data
-*/
-#define LOCALE_PATH                                    PREFIX"/res/locale"
-#define IMAGE_PATH                                             PREFIX"/res/images/"PACKAGE
-#define EDJ_PATH                                               PREFIX"/res/edje/"PACKAGE
-
-/*
-       Home screen and Lock screen image should be put in DATA_PATH.
-*/
-#define DATA_PATH                                                      DATADIR"/"PACKAGE
-
-// TODO : Add comments
-#define IV_WINDOW_SIZE                 (41)//41        /* it's better to be odd number */
-#define IV_WINDOW_SIZE_FOR_SLIDE_SHOW          (1)
-#define IV_RELOAD_OFFSET               (4)//IV_WINDOW_SIZE/10  // it's better to be larger than 2
-
-#define USE_WIN_AS_PARENT
-
-#define NAVI_OPTION_BTN_STYLE  "multiline"
-
-#define IVUG_DEFAULT_BG_COLOR          48
-
-#define _USE_MEDIAINFO_STRINGID_
-
-#define FEATURE_DYNAMIC_POPUP_HEIGHT
-
-#define USE_CUSTOM_STYLE
-
diff --git a/main/src/common/ivug-string.h b/main/src/common/ivug-string.h
deleted file mode 100755 (executable)
index ab4458d..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_STRING_H__
-#define __IVUG_STRING_H__
-
-#include <libintl.h>
-
-/* Original code is in appcore-common.h */
-#define _(str) gettext(str)  /**< gettext alias */
-#define gettext_noop(str) (str) /**< keyword for xgettext  to extract translatable strings */
-#define N_(str) gettext_noop(str)  /**< gettext_noop alias */
-
-
-#define LOCALE_PATH                                            PREFIX"/res/locale" /*TODO!!!*/
-
-#ifndef PACKAGE
-#error PACKAGE is not defined
-#endif
-
-#ifndef LOCALE_PATH
-#error LOCALE_PATH is not defined
-#endif
-
-//string
-#define IVUG_TEXT_DOMAIN PACKAGE
-#define IVUG_LOCALEDIR LOCALE_PATH
-
-// Not yet translated
-#define IDS_NULL                               _("")
-
-#define IDS_INVALID_IMAGE_FILE (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_INVALID_IMAGE_FILE"))
-#define IDS_PERMISSION_DENIED (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_PERMISSION_DENIED"))
-#define IDS_APPLICATION_NOT_INSTALLED (dgettext("sys_string","IDS_COM_BODY_APPLICATION_NOT_INSTALLED"))
-
-/*#define Details*/
-#define IDS_FORMAT             (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_FILE_FORMAT"))
-#define IDS_DATE_CREATED       (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_DATE_CREATED"))
-#define IDS_LOCATION           (dgettext(IVUG_TEXT_DOMAIN, "IDS_COM_BODY_LOCATION"))
-#define IDS_FILE_LOCATION              (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_FILE_LOCATION"))
-#define IDS_RESOLUTION         (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_RESOLUTION"))
-#define IDS_LATITUDE           (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_LATITUDE"))
-#define IDS_LONGITUDE          (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_LONGITUDE"))
-
-#define IDS_N_A                        (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_N_A"))
-#define IDS_PRINT              (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_BODY_PRINT"))
-
-/* Registered string in STMS IV */
-#define IDS_ADDED                      (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_ADDED"))
-#define IDS_SLIDE_SHOW                 (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_SLIDE_SHOW"))
-
-#define IDS_SD_CARD_REMOVED                            (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SD_CARD_REMOVED"))
-#define IDS_SET_AS     (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_SET_AS"))
-
-#define IDS_HOME_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_HOME_SCREEN_WALLPAPER_ABB"))
-#define IDS_LOCK_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_HEADER_LOCK_SCREEN_WALLPAPER_ABB"))
-#define IDS_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_POP_SET_WALLPAPER_FOR_HOME_SCREEN_AND_LOCK_SCREEN"))
-#define IDS_HOME_AND_LOCK_SCREEN_WALLPAPER (dgettext(IVUG_TEXT_DOMAIN, "IDS_IV_OPT_HOME_AND_LOCK_SCREEN_WALLPAPER"))
-
-// System string.
-#define IDS_DELETE_MSG                 (dgettext("sys_string","IDS_COM_POP_DELETE_Q"))
-#define IDS_NAME               (dgettext("sys_string", "IDS_COM_BODY_DETAILS_NAME"))
-#define IDS_SIZE               (dgettext("sys_string", "IDS_COM_BODY_SIZE"))
-
-#define IDS_COPY               (dgettext("sys_string","IDS_COM_BODY_COPY"))
-
-#define IDS_ERROR              (dgettext("sys_string","IDS_COM_POP_ERROR"))
-#define IDS_UNKNOWN            (dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"))
-
-#define IDS_LOADING            (dgettext("sys_string", "IDS_COM_BODY_LOADING"))
-
-#define IDS_BLUETOOTH  (dgettext("sys_string", "IDS_COM_BODY_BLUETOOTH"))
-
-#define IDS_CANCEL             (dgettext("sys_string", "IDS_COM_SK_CANCEL"))
-#define IDS_DONE               (dgettext("sys_string","IDS_COM_SK_DONE"))
-
-#define IDS_SET                        (dgettext("sys_string","IDS_COM_SK_SET"))
-#define IDS_BACK               (dgettext("sys_string","IDS_COM_BODY_BACK"))
-
-#define IDS_OK                         (dgettext("sys_string","IDS_COM_SK_OK"))
-#define IDS_DELETE             (dgettext("sys_string","IDS_COM_BODY_DELETE"))
-#define IDS_DELETED            (dgettext("sys_string","IDS_COM_POP_DELETED"))
-
-#define IDS_SAVED              (dgettext("sys_string","IDS_COM_POP_SAVED"))
-#define IDS_NO                 (dgettext("sys_string","IDS_COM_SK_NO"))
-#define IDS_YES                (dgettext("sys_string","IDS_COM_SK_YES"))
-
-#define IDS_SUCCESS            (dgettext("sys_string", "IDS_COM_POP_SUCCESS"))
-#define IDS_FAILED             (dgettext("sys_string", "IDS_COM_POP_FAILED"))
-
-#define IDS_DETAILS            (dgettext("sys_string","IDS_COM_BODY_DETAILS"))
-
-#define IDS_CLOSE              (dgettext("sys_string", "IDS_COM_BODY_CLOSE"))
-#define IDS_NO_NAME            (dgettext("sys_string", "IDS_COM_BODY_NO_NAME"))
-
-#endif // __IVUG_STRING_H__
-
-
diff --git a/main/src/control/ivug-ext-ug.c b/main/src/control/ivug-ext-ug.c
deleted file mode 100755 (executable)
index e3c5398..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-ext-ug.h"
-#include "ivug-data.h"
-#include "ivug-popup.h"
-
-#include <ui-gadget.h>
-#include <aul.h>
-#include <appsvc.h>
-#include <Ecore_X.h>           // UG_INIT_EFL
-
-//define
-#define VIDEOPLAYER_PKG_NAME   "org.tizen.video-player"
-#define BLUETOOTH_PKG_NAME             "org.tizen.bluetooth"
-
-#define MIME_TYPE_LEN                  255
-
-bool
-ivug_ext_aul_launch(Evas_Object *parent,  enum IVUG_EXT_AUL_TYPE type, const char *filepath, void *data)
-{
-       if(!filepath)
-       {
-               MSG_UTIL_ERROR("file path is NULL");
-               return false;
-       }
-       MSG_IMAGEVIEW_HIGH("Creating AUL. type=%d file path =%s", type, filepath);
-
-       bundle* b = bundle_create();
-       char mime_type[MIME_TYPE_LEN] = {0,};
-       aul_get_mime_from_file(filepath, mime_type, sizeof(mime_type));
-       MSG_IMAGEVIEW_HIGH("mime type=%s", mime_type);
-
-       IV_ASSERT(b!= NULL);
-       switch( type )
-       {
-               case IVUG_EXT_AUL_VIDEOPLAYER:
-                       bundle_add( b, "path", filepath);
-                       bundle_add( b, "launching_application", "image_viewer");
-                       aul_launch_app(VIDEOPLAYER_PKG_NAME, b);
-               break;
-
-               case IVUG_EXT_AUL_SIMPLE_VIDEOPLAYER:
-                       bundle_add( b, "path", filepath);
-                       bundle_add( b, "launching_application", "light_play_view");
-// Camera -> Image Viewer -> Video player, In this case, launching_application bundle's value should be "light_play_view"
-
-                       aul_launch_app(VIDEOPLAYER_PKG_NAME, b);
-               break;
-
-               default:
-                       bundle_free(b);
-                       return false;
-       }
-
-       bundle_free(b);
-
-       return true;
-}
-
-
diff --git a/main/src/control/ivug-ext-ug.h b/main/src/control/ivug-ext-ug.h
deleted file mode 100755 (executable)
index dc4a924..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-data.h"
-
-#ifndef __IVUG_EXT_UG_H__
-#define __IVUG_EXT_UG_H__
-
-typedef enum IVUG_EXT_AUL_TYPE{
-       IVUG_EXT_AUL_NONE = 0x00,
-       IVUG_EXT_AUL_VIDEOPLAYER,
-       IVUG_EXT_AUL_SIMPLE_VIDEOPLAYER,
-} _ivug_ext_aul_type;
-
-
-bool
-ivug_ext_aul_launch(Evas_Object *parent,  enum IVUG_EXT_AUL_TYPE type, const char *filepath, void *data);
-
-#endif //__IVUG_EXT_UG_H__
diff --git a/main/src/control/ivug-main.c b/main/src/control/ivug-main.c
deleted file mode 100755 (executable)
index 3efb9c8..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-main.h"
-#include "ivug-data.h"
-#include "ivug-util.h"
-
-
-#include <ui-gadget-module.h>          // ug_destroy_me
-#include <media-svc.h>
-
-#define MAX_INSTALNCE (5)
-
-typedef struct
-{
-       struct ui_gadget *ug;                   // ug handle
-
-       Evas_Object *parent_win;
-// EFL theme
-       Elm_Theme *th;
-
-// Window Geometry
-       int win_w, win_h;       //size
-
-       MediaSvcHandle *media_svc_hadle;
-
-} AppData;
-
-static Eina_List *ContextList = NULL;
-
-Elm_Theme*
-gGetSystemTheme(void)
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-
-       return ugContext->th;
-}
-
-void
-gGetSystemDimension(int *w, int *h)
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-       IV_ASSERT(w != NULL);
-       IV_ASSERT(h != NULL);
-
-       *w = ugContext->win_w;
-       *h = ugContext->win_h;
-}
-
-int gGetScreenWidth()
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-
-       return ugContext->win_w;
-
-}
-
-int gGetScreenHeight()
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-
-       return ugContext->win_h;
-
-}
-
-struct ui_gadget *
-gGetUGHandle(void)
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-
-       MSG_IMAGEVIEW_HIGH("Get ug handle = 0x%08x", ugContext->ug);
-
-       return ugContext->ug;
-}
-
-MediaSvcHandle *
-gGetMediaSVCHandle(void)
-{
-       AppData *ugContext;
-       ugContext = eina_list_data_get(ContextList);
-
-       IV_ASSERT(ugContext != NULL);
-
-       return ugContext->media_svc_hadle;
-}
-
-#define IVUG_NAVIFRAME_NAME EDJ_PATH"/ivug-naviframe.edj"
-#define IVUG_TOOLLBAR_NAME EDJ_PATH"/ivug-toolbar.edj"
-#define IVUG_BUTTON_NAME EDJ_PATH"/ivug-button.edj"
-#define IVUG_SELECTION_INFO_NAME       EDJ_PATH"/ivug-selectioninfo.edj"
-#define IVUG_GENLIST   EDJ_PATH"/ivug-genlist.edj"
-
-static char *edj[] = {
-       IVUG_NAVIFRAME_NAME,
-       IVUG_TOOLLBAR_NAME,
-       IVUG_BUTTON_NAME,
-       IVUG_SELECTION_INFO_NAME,
-       IVUG_GENLIST,
-       NULL,
-};
-
-bool
-ivug_main_init(struct ui_gadget *ug)
-{
-       AppData *Context = malloc(sizeof(AppData));
-       if(Context == NULL)
-       {
-               MSG_IVUG_ERROR("Cannot allock memory");
-               return false;
-       }
-
-       Context->ug = ug;
-       Context->parent_win = ug_get_window();
-
-//get window width, height
-       int w, h;
-
-       evas_object_geometry_get(Context->parent_win, NULL, NULL, &w, &h);
-       MSG_IMAGEVIEW_HIGH("Screen WH(%dx%d)", w, h);
-//     ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
-       Context->win_w = w;
-       Context->win_h = h;
-
-
-       int i = 0;
-
-       Context->th = elm_theme_new();
-
-       IV_ASSERT(Context->th != NULL);
-
-       elm_theme_ref_set(Context->th, NULL);
-
-       for ( i = 0; edj[i] != NULL; i++)
-       {
-               elm_theme_extension_add(Context->th, edj[i]);
-       }
-
-       ContextList = eina_list_prepend(ContextList, Context);
-
-       MSG_IVUG_HIGH("Append to list. Context=0x%08x", Context);
-
-//media browser service.
-       int err = media_svc_connect(&(Context->media_svc_hadle));
-       if (err == MB_SVC_ERROR_NONE)
-       {
-               bindtextdomain(IVUG_TEXT_DOMAIN, IVUG_LOCALEDIR);       //bind text domain
-               return TRUE;
-       }
-
-/**** Error routine ****/
-       MSG_SDATA_WARN("media service init error=%d", err);
-
-       Context = eina_list_data_get(ContextList);
-       ContextList = eina_list_remove_list(ContextList, ContextList);
-
-       if(Context->th)
-       {
-               int i = 0;
-               for ( i = 0; edj[i] != NULL; i++)
-               {
-                       elm_theme_extension_del(Context->th, edj[i]);
-               }
-
-               elm_theme_free(Context->th);
-       }
-
-       MSG_IVUG_HIGH("Remove from list. Context=0x%08x, ug=0x%08x", Context, Context->ug);
-
-       free(Context);
-
-       return false;
-}
-
-
-bool
-ivug_main_deinit(struct ui_gadget *ug)
-{
-       AppData *Context;
-
-       Eina_List *l = NULL;
-       Eina_List *l_next = NULL;
-
-       EINA_LIST_FOREACH_SAFE(ContextList, l, l_next, Context)
-       {
-               if(Context == NULL)
-               {
-                       MSG_SDATA_ERROR("Context is NULL");
-                       return false;
-               }
-               if (Context->ug == ug)
-               {
-                       ContextList = eina_list_remove_list(ContextList, l);
-                       break;
-               }
-       }
-
-       //media browser service.
-       int err = media_svc_disconnect(Context->media_svc_hadle);
-       if (err != MB_SVC_ERROR_NONE)
-       {
-               MSG_SDATA_WARN("media service finalize error=%d", err);
-               // go through
-       }
-       else
-       {
-               MSG_SDATA_HIGH("MInfo finalized");
-       }
-
-       if(Context->th)
-       {
-               int i = 0;
-               for ( i = 0; edj[i] != NULL; i++)
-               {
-                       elm_theme_extension_del(Context->th, edj[i]);
-               }
-               elm_theme_free(Context->th);
-       }
-
-       MSG_IVUG_HIGH("Remove from list. Context=0x%08x, ug=0x%08x", Context, Context->ug);
-
-       free(Context);
-
-       return true;
-}
-
-
-
-
diff --git a/main/src/control/ivug-main.h b/main/src/control/ivug-main.h
deleted file mode 100755 (executable)
index 86d9837..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_MAIN_H__
-#define __IVUG_MAIN_H__
-
-#include "ivug-common.h"
-#include <ui-gadget.h>
-#include <media-svc.h>
-
-bool
-ivug_main_deinit(struct ui_gadget *ug);
-
-bool
-ivug_main_init(struct ui_gadget *ug);
-
-Elm_Theme*
-gGetSystemTheme(void);
-
-struct ui_gadget *
-gGetUGHandle(void);
-
-MediaSvcHandle *
-gGetMediaSVCHandle(void);
-
-int gGetScreenWidth();
-int gGetScreenHeight();
-
-
-#endif //__IVUG_MAIN_H__
index 5717181..5bc94c7 100755 (executable)
@@ -1,26 +1,27 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 <bundle.h>
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+
 #include <string.h>
 
 #include "ivug-common.h"
 #include "ivug-debug.h"
 #include "ivug-parameter.h"
+#include "ivug-file-info.h"
+
+#include "ivug-db.h"
 
 //bundle key
 #define IVUG_BUNDLE_KEY_VIEW_MODE              "View Mode"
@@ -30,6 +31,7 @@
 #define IVUG_BUNDLE_KEY_VIEW_BY                        "View By"
 #define IVUG_BUNDLE_KEY_INDEX                  "Index"
 #define IVUG_BUNDLE_KEY_SORT_BY                        "Sort By"
+#define IVUG_BUNDLE_KEY_FOOTSTEPS              "Footsteps"
 
 #define IVUG_BUNDLE_KEY_MAX_LONGITUDE  "LON_MAX"
 #define IVUG_BUNDLE_KEY_MIN_LONGITUDE  "LON_MIN"
 
 #define IVUG_BUNDLE_KEY_SETAS_TYPE             "Setas type"
 
+#define IVUG_BUNDLE_KEY_RESOLUTION             "Resolution"
+#define IVUG_BUNDLE_KEY_FIXED_RATIO            "Fixed ratio"
+
 #define IVUG_BUNDLE_KEY_MEDIA_TYPE             "Media type"
 
+#define IVUG_BUNDLE_KEY_MSS_SERVER_ID  "MSS_ServerID"
+#define IVUG_BUNDLE_KEY_MSS_SORT_TYPE  "MSS_Sort_type"
+
+#define IVUG_BUNDLE_KEY_STANDALONE             "Standalone"
+
+#define IVUG_BUNDLE_KEY_CONTACT_ID             "Contact id"
+
 //default values
 #define IVUG_DEFAULT_MODE IVUG_MODE_SINGLE
-#define IVUG_DEFAULT_INDEX (-1)
+#define IVUG_DEFAULT_INDEX (1)                         // First item
+
+static inline
+void _ivug_free(char **val)
+{
+       free(*val);
+       *val = NULL;
+}
 
 static ivug_mode
 _get_view_mode(ivug_parameter* data, const char* val)
@@ -56,6 +75,8 @@ _get_view_mode(ivug_parameter* data, const char* val)
 #define IVUG_BUNDLE_VALUE_VIEW_MODE_CAMERA     "CAMERA"
 #define IVUG_BUNDLE_VALUE_VIEW_MODE_DISPLAY    "DISPLAY"
 #define IVUG_BUNDLE_VALUE_VIEW_MODE_SETAS              "SETAS"
+#define IVUG_BUNDLE_VALUE_VIEW_MODE_SLIDESHOW   "SLIDESHOW"
+
        int len = strlen(val);
 
        if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_NORMAL, len) == 0
@@ -91,6 +112,14 @@ _get_view_mode(ivug_parameter* data, const char* val)
                data->view_by = IVUG_VIEW_BY_FILE;
                return IVUG_MODE_SETAS;
        }
+       else if(strncmp(val, IVUG_BUNDLE_VALUE_VIEW_MODE_SLIDESHOW, len) == 0)
+       {
+               if(data->view_by != IVUG_VIEW_BY_ALL)
+               {
+                       data->view_by = IVUG_VIEW_BY_FOLDER;
+               }
+               return IVUG_MODE_SLIDESHOW;
+       }
 
        MSG_IVUG_ERROR("Invalid mode : %s", val);
        return IVUG_MODE_INVAILD;
@@ -102,8 +131,10 @@ _get_view_by(const char* val)
 {
        //bundle value
 #define IVUG_BUNDLE_VALUE_VIEW_BY_ALL                  "All"
+#define IVUG_BUNDLE_VALUE_VIEW_BY_FAVORITES            "Favorites"
 #define IVUG_BUNDLE_VALUE_VIEW_BY_FLODER               "By Folder"
 #define IVUG_BUNDLE_VALUE_VIEW_BY_PLACES               "Places"
+#define IVUG_BUNDLE_VALUE_VIEW_BY_CONTACT_ID   "Contact id"
 
        IV_ASSERT(val != NULL);
 
@@ -121,6 +152,10 @@ _get_view_by(const char* val)
        {
                return IVUG_VIEW_BY_PLACES;
        }
+       else if (strncmp(val, IVUG_BUNDLE_VALUE_VIEW_BY_CONTACT_ID, len) == 0)
+       {
+               return IVUG_VIEW_BY_CONTACT_ID;
+       }
 
        MSG_IVUG_ERROR("Invalid view by : %s", val);
 
@@ -135,6 +170,10 @@ _get_setas_type(const char* val)
        IV_ASSERT(val != NULL);
 
 #define IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER   "Wallpaper"
+#define IVUG_BUNDLE_VALUE_SETAS_UG_CALLERID            "CallerID"
+#define IVUG_BUNDLE_VALUE_SETAS_UG_VIDEO_CALLEID       "VideoCallID"
+#define IVUG_BUNDLE_VALUE_SETAS_UG_CROP                        "Crop"
+#define IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_ONLY      "Wallpaper only"
 
        int len = strlen(val);
 
@@ -142,6 +181,22 @@ _get_setas_type(const char* val)
        {
                return IVUG_SET_AS_UG_TYPE_WALLPAPER;
        }
+       else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_WALLPAPER_ONLY, len) == 0 )
+       {
+               return IVUG_SET_AS_UG_TYPE_WALLPAPER_ONLY;
+       }
+       else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_CALLERID, len) == 0)
+       {
+               return IVUG_SET_AS_UG_TYPE_CALLER_ID;
+       }
+       else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_VIDEO_CALLEID, len) == 0)
+       {
+               return IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID;
+       }
+       else if (strncmp(val, IVUG_BUNDLE_VALUE_SETAS_UG_CROP, len) == 0)
+       {
+               return IVUG_SET_AS_UG_TYPE_CROP;
+       }
 
        MSG_IVUG_ERROR("Invalid setas ug type : %s", val);
        return IVUG_SET_AS_UG_TYPE_INVALID;
@@ -174,38 +229,54 @@ _get_media_type(const char* val)
        return IVUG_MEDIA_TYPE_MAX;
 }
 
+static bool _data_print(service_h service, const char *key, void *user_data)
+{
+       char *value;
+
+       service_get_extra_data(service, key, &value);
 
+       MSG_IVUG_HIGH("  %s : %s", key, value);
 
-static void
-_bundle_print(const char *key, const char *val, void *data)
+       free(value);
+
+       return true;
+}
+
+static void _print_service_data(service_h service)
 {
-       MSG_IVUG_HIGH("   %s:%s",key, val);
+       int ret = service_foreach_extra_data(service, _data_print, NULL);
+
+       if(SERVICE_ERROR_NONE != ret)
+       {
+               MSG_IVUG_ERROR("service_foreach_extra_data ERROR");
+       }
 }
 
 //parsing bundle
 ivug_parameter*
-ivug_param_create_from_bundle(bundle* b)
+ivug_param_create_from_bundle(service_h service)
 {
-       if (b == NULL)
+       if (service == NULL)
        {
                MSG_IVUG_WARN("bundle value is NULL");
                return NULL;
        }
 
-       int nbundle_cnt = bundle_get_count(b);
-
-       if ( nbundle_cnt == 0 )
-       {
-               MSG_IVUG_WARN("bundle count is %d", nbundle_cnt);
-               return NULL;
-       }
-
        //print key and value.
        MSG_IVUG_HIGH("**********************************");
-       MSG_IVUG_HIGH("  Bundle Count = %d", nbundle_cnt);
-       bundle_iterate(b, _bundle_print, NULL);
+       _print_service_data(service);
        MSG_IVUG_HIGH("**********************************");
 
+       char *path = NULL;\r
+       service_get_uri(service, &path);        // app gadget
+       if(path)
+       {
+               MSG_IMAGEVIEW_ERROR("App gadget launched %s", path);
+               service_add_extra_data (service, "Path", path);
+               service_add_extra_data (service, "View Mode", "SINGLE");
+               _ivug_free(&path);
+       }\r
+
        //parsing param
        ivug_parameter* data = (ivug_parameter*)calloc(1, sizeof(ivug_parameter));
 
@@ -215,15 +286,31 @@ ivug_param_create_from_bundle(bundle* b)
                return NULL;
        }
 
+// appsvc
+       char* standalone = NULL;
+
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_STANDALONE, &standalone);
+       if (standalone != NULL)
+       {
+               data->bStandalone = true;
+               _ivug_free(&standalone);
+       }
+       else
+       {
+               data->bStandalone = false;
+       }
+
 // View By
-       const char* szViewBy = NULL;
+       char* szViewBy = NULL;
 
-       szViewBy = bundle_get_val(b, IVUG_BUNDLE_KEY_VIEW_BY);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_BY, &szViewBy);
        if (szViewBy != NULL)
        {
                MSG_IVUG_HIGH("View By = %s", szViewBy);
 
                data->view_by = _get_view_by(szViewBy);
+
+               _ivug_free(&szViewBy);
        }
        else
        {
@@ -232,13 +319,14 @@ ivug_param_create_from_bundle(bundle* b)
        }
 
 //parse image index at album
-       const char* val = NULL;
+       char* val = NULL;
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_INDEX);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_INDEX, &val);
        if(val)
        {
-               data->start_index = atoi(val);
+               data->start_index = ivug_atoi(val);
                MSG_IVUG_HIGH("Slide Index = %d", data->start_index);
+               _ivug_free(&val);
        }
        else
        {
@@ -247,14 +335,14 @@ ivug_param_create_from_bundle(bundle* b)
        }
 
 //parse mode
-       const char* szMode = NULL;
-
-       szMode = bundle_get_val(b, IVUG_BUNDLE_KEY_VIEW_MODE);
+       char* szMode = NULL;
 
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_VIEW_MODE, &szMode);
        if (szMode != NULL)
        {
                data->mode = _get_view_mode(data, szMode);
                MSG_IVUG_HIGH("View mode is %s(%d)", szMode, data->mode);
+               _ivug_free(&szMode);
        }
        else
        {
@@ -263,19 +351,25 @@ ivug_param_create_from_bundle(bundle* b)
        }
 
 //parse path
-       const char* szFilePath = NULL;
-
-       szFilePath = bundle_get_val(b, IVUG_BUNDLE_KEY_PATH);
+       char* szFilePath = NULL;
 
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_PATH, &szFilePath);
        if ( szFilePath != NULL )
        {
                data->filepath = strdup(szFilePath);
                MSG_IVUG_HIGH("Current File = %s", data->filepath);
+               _ivug_free(&szFilePath);
        }
+       else
+       {
+               MSG_IVUG_ERROR("File path is NULL");
 
-       //parse album id -album id is cluster id of media service
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_ALBUM_IDX);
+               ivug_param_delete(data);
+               return NULL;
+       }
 
+       //parse album id -album id is cluster id of media service
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_ALBUM_IDX, &val);
        if(val && data->view_by != IVUG_VIEW_BY_ALL)
        {
                data->album_id = uuid_getuuid(val);
@@ -286,6 +380,9 @@ ivug_param_create_from_bundle(bundle* b)
                data->album_id = INVALID_UUID;
                MSG_IVUG_WARN("Album index is NULL");
        }
+       if(val)
+               _ivug_free(&val);
+
        if (data->mode == IVUG_MODE_CAMERA)
        {
 /*
@@ -296,19 +393,28 @@ ivug_param_create_from_bundle(bundle* b)
                **********************************
 */
                // Get album id from file path.
-               UUID cluster_id = ivug_get_album_id_from_filepath(data->filepath);
+               media_handle m_handle = ivug_db_get_folder_handle(ecore_file_dir_get(data->filepath));
+               if(m_handle == NULL)
+               {
+                       MSG_IVUG_FATAL("View by Folder. but media handle is NULL" );
+                       ivug_param_delete(data);
+                       return NULL;
+               }
+
+               data->album_id = ivug_db_get_folder_id(m_handle);
 
-               data->album_id = uuid_assign(cluster_id);
+               ivug_db_destroy_folder_handle(m_handle);
 
                MSG_IVUG_HIGH("Get Album ID(%s) from file %s", uuid_getchar(data->album_id), data->filepath);
        }
 
 // TODO : Check parameter integrity
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_MEDIA_TYPE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_MEDIA_TYPE, &val);
        if(val != NULL)
        {
                data->media_type = _get_media_type(val);
                MSG_IVUG_HIGH("Media Type=%s(%d)", val, data->media_type);
+               _ivug_free(&val);
        }
        else
        {
@@ -318,59 +424,114 @@ ivug_param_create_from_bundle(bundle* b)
        long long int m = 0;
        long int e = 0;
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_MAX_LONGITUDE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LONGITUDE, &val);
        if(val != NULL)
        {
                eina_convert_atod(val, strlen(val), &m, &e);
                data->max_longitude = ldexp((double)m, e);
                MSG_IVUG_HIGH("Max Longitude =%f", data->max_longitude);
+               _ivug_free(&val);
        }
        else
        {
                MSG_IVUG_MED("Max Longitude is not specified.");
        }
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_MIN_LONGITUDE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LONGITUDE, &val);
        if(val != NULL)
        {
                eina_convert_atod(val, strlen(val), &m, &e);
                data->min_longitude = ldexp((double)m, e);
                MSG_IVUG_HIGH("Min Longitude =%f", data->min_longitude);
+               _ivug_free(&val);
        }
        else
        {
                MSG_IVUG_MED("Min Longitude is not specified.");
        }
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_MAX_LATITUDE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_MAX_LATITUDE, &val);
        if(val != NULL)
        {
                eina_convert_atod(val, strlen(val), &m, &e);
                data->max_latitude = ldexp((double)m, e);
                MSG_IVUG_HIGH("Max Latitude =%f", data->max_latitude);
+               _ivug_free(&val);
        }
        else
        {
                MSG_IVUG_MED("Max Latitude is not specified.");
        }
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_MIN_LATITUDE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_MIN_LATITUDE, &val);
        if(val != NULL)
        {
                eina_convert_atod(val, strlen(val), &m, &e);
                data->min_latitude = ldexp((double)m, e);
                MSG_IVUG_HIGH("Min Latitude =%f", data->min_latitude);
+               _ivug_free(&val);
        }
        else
        {
                MSG_IVUG_MED("Min Latitude is not specified.");
        }
 
-       val = bundle_get_val(b, IVUG_BUNDLE_KEY_SETAS_TYPE);
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_SETAS_TYPE, &val);
        if (val)
        {
                MSG_IVUG_HIGH("SetAs UG Type=%s", val);
                data->setas_type = _get_setas_type(val);
+
+               char* resolution = NULL;
+
+               service_get_extra_data (service, IVUG_BUNDLE_KEY_RESOLUTION, &resolution);
+               if(resolution)
+               {
+                       sscanf(resolution, "%5dx%5d", &(data->width), &(data->height));
+                       MSG_IVUG_HIGH("Rectangle width = %d, height = %d", data->width, data->height);
+                       if(data->width == 0 || data->height == 0)
+                       {
+                               MSG_IVUG_ERROR("Resolution is invalid");
+                               _ivug_free(&resolution);
+                               _ivug_free(&val);
+                               ivug_param_delete(data);
+                               return NULL;
+                       }
+               }
+               else
+               {
+                       /* TODO : remove default value, width & height needed */
+                       data->width = 100;
+                       data->height = 100;
+                       MSG_IVUG_HIGH("Rectangle ratio is not set. Set as default : %dx%d", data->width, data->height);
+               }
+
+               data->bRatioFix = false;
+               char* bRatioFix = NULL;
+
+               service_get_extra_data (service, IVUG_BUNDLE_KEY_FIXED_RATIO, &bRatioFix);
+               if(bRatioFix)
+               {
+                       MSG_IVUG_HIGH("Fixed ratio=%s", bRatioFix);
+                       if(strcmp(bRatioFix, "TRUE") == 0)
+                       {
+                               data->bRatioFix = true;
+                       }
+                       _ivug_free(&bRatioFix);
+               }
+               _ivug_free(&val);
+       }
+
+       data->footsteps = false;        /* default */
+       service_get_extra_data (service, IVUG_BUNDLE_KEY_FOOTSTEPS, &val);
+       if (val)
+       {
+               MSG_IVUG_HIGH("Footsteps=%s", val);
+               if(strcmp(val, "TRUE") == 0)
+               {
+                       data->footsteps = true;
+               }
+               _ivug_free(&val);
        }
 
        return data;
index 1de14c4..7a97336 100755 (executable)
@@ -1,94 +1,85 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #ifndef __IVUG_PARAMETER_H__
 #define __IVUG_PARAMETER_H__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include <stdbool.h>
-#include <bundle.h>
+#include <app.h>
+#include "ivug-datatypes.h"
 
 typedef enum {
        IVUG_MODE_INVAILD = 0x00,
-       IVUG_MODE_NORMAL,                               // normal
+       IVUG_MODE_NORMAL,
        IVUG_MODE_SINGLE,                               // just show one slide
        IVUG_MODE_DISPLAY,                              // from "take a photo" in messenger
        IVUG_MODE_FILE,                                 // file viewer(can flick)
        IVUG_MODE_CAMERA,                               // camera(can flick)
        IVUG_MODE_SETAS,                                // SetAs in setting menu.
+       IVUG_MODE_SLIDESHOW,                    // Slideshow
 } ivug_mode;
 
-typedef enum {
-       IVUG_VIEW_BY_INVAILD = 0x00,
-       IVUG_VIEW_BY_FILE,
-       IVUG_VIEW_BY_ALL,
-       IVUG_VIEW_BY_FOLDER,
-       IVUG_VIEW_BY_PLACES,
-} ivug_view_by;
-
 //set as ug
 typedef enum {
        IVUG_SET_AS_UG_TYPE_INVALID = 0x00,
        IVUG_SET_AS_UG_TYPE_WALLPAPER,
+       IVUG_SET_AS_UG_TYPE_CALLER_ID,
+       IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID,
+       IVUG_SET_AS_UG_TYPE_CROP,                       // For OSP
+       IVUG_SET_AS_UG_TYPE_WALLPAPER_ONLY,
        IVUG_SET_AS_UG_TYPE_MAX,
 } ivug_setas_type;
 
-typedef enum {
-       IVUG_MEDIA_TYPE_ALL = 0x00, //default value
-       IVUG_MEDIA_TYPE_IMAGE,
-       IVUG_MEDIA_TYPE_VIDEO,
-       IVUG_MEDIA_TYPE_MAX,
-} ivug_media_type;
-
-typedef enum {
-       IVUG_MEDIA_SORT_NONE = 0x00,  /**< No sort */
-       IVUG_MEDIA_ASC_BY_NAME,         /**< Ascending sort as file name */
-       IVUG_MEDIA_DESC_BY_NAME,        /**< Descending sort as file name */
-       IVUG_MEDIA_ASC_BY_DATE,         /**< Ascending sort as created date */
-       IVUG_MEDIA_DESC_BY_DATE,        /**< Descending sort as created date */
-} ivug_sort_type;
-
 typedef struct {
        ivug_mode mode;
+       ivug_setas_type setas_type;             // Only needed when mode is IVUG_MODE_SETAS
+
+       bool bStandalone;       // launched by appsvc
+
+       ivug_view_by view_by;
 
        char* filepath;
        UUID album_id;  //cluster id of media service
 
-       ivug_view_by view_by;
-       ivug_setas_type setas_type;
        ivug_media_type media_type;
        ivug_sort_type sort_type;               // TODO : extract from here. sort type can be used in case of default
 
        /* for places view */
+       bool footsteps;
        double max_longitude;
        double min_longitude;
        double max_latitude;
        double min_latitude;
 
+       /* for set as view crop box*/
+       unsigned int width;
+       unsigned int height;
+       bool bRatioFix;
+
        int start_index;
 
 } ivug_parameter;
 
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 ivug_parameter*
-ivug_param_create_from_bundle(bundle* b);
+ivug_param_create_from_bundle(service_h service);
 
 void
 ivug_param_delete(ivug_parameter* data);
diff --git a/main/src/control/ivug-uuid.c b/main/src/control/ivug-uuid.c
deleted file mode 100755 (executable)
index b2c8eeb..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-uuid.h"
-
-UUID uuid_assign(UUID id)
-{
-#ifdef _USE_MEDIAINFO_STRINGID_
-       if ( id == NULL )
-               return NULL;
-
-       return strdup(id);
-#else
-       return id;
-#endif
-}
-
-
-void uuid_free(UUID id)
-{
-#ifdef _USE_MEDIAINFO_STRINGID_
-       if ( id != NULL )
-               free((void *)id);
-#endif
-}
-
-
-int uuid_compare(UUID id1, UUID id2)
-{
-#ifdef _USE_MEDIAINFO_STRINGID_
-       return strcmp(id1, id2);
-#else
-       return id1 - id2;
-#endif
-}
-
-const char *uuid_getchar(UUID id)
-{
-#ifdef _USE_MEDIAINFO_STRINGID_
-       if ( id == NULL )
-       {
-               return "NULL";
-       }
-
-       return id;
-#else
-       {
-               static char buffer[255];
-
-               sprintf(buffer, "%d", id);
-
-               return buffer;
-       }
-#endif
-
-}
-
-
-UUID uuid_getuuid(const char *szID)
-{
-       if ( szID == NULL )
-       {
-               return INVALID_UUID;
-       }
-
-#ifdef _USE_MEDIAINFO_STRINGID_
-       return strdup(szID);
-#else
-       return atoi(szID);
-#endif
-
-}
-
-bool uuid_is_valid(UUID id)
-{
-       return (id != INVALID_UUID) ? true : false;
-}
-
-
-
diff --git a/main/src/control/ivug-uuid.h b/main/src/control/ivug-uuid.h
deleted file mode 100755 (executable)
index e90bf6b..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_UUID_H__
-#define __IVUG_UUID_H__
-
-#include "ivug-common.h"
-#include <stdbool.h>
-
-#ifdef _USE_MEDIAINFO_STRINGID_
-       #define INVALID_UUID ((UUID)NULL)
-#else
-       #define INVALID_UUID ((UUID)-1)
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-UUID uuid_assign(UUID id);
-
-void uuid_free(UUID id);
-
-int uuid_compare(UUID id1, UUID id2);
-
-const char *uuid_getchar(UUID id);
-
-UUID uuid_getuuid(const char *szID);
-
-bool uuid_is_valid(UUID id);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // __IVUG_UUID_H__
-
diff --git a/main/src/data/ivug-data-filter.c b/main/src/data/ivug-data-filter.c
deleted file mode 100755 (executable)
index 754a723..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-data-filter.h"
-
-List_Filter *ivug_data_filter_create(const ivug_parameter *param)
-{
-       IV_ASSERT(param != NULL);
-
-       List_Filter *filter = calloc(1, sizeof(List_Filter));
-
-       IV_ASSERT(filter != NULL);
-
-       filter->view_by = param->view_by;
-       filter->media_type = param->media_type;
-       filter->sort_type = param->sort_type;
-
-       MSG_SDATA_HIGH("param->view_by is %d", param->view_by);
-       switch(param->view_by)
-       {
-       case IVUG_VIEW_BY_PLACES:
-               filter->place.max_longitude = param->max_longitude;
-               filter->place.min_longitude = param->min_longitude;
-               filter->place.max_latitude = param->max_latitude;
-               filter->place.min_latitude = param->min_latitude;
-               break;
-       case IVUG_VIEW_BY_FILE:
-               filter->file_path = strdup(param->filepath);
-               break;
-       case IVUG_VIEW_BY_ALL:
-               filter->album_id = uuid_assign(param->album_id);
-               break;
-
-       case IVUG_VIEW_BY_FOLDER:
-               filter->album_id = uuid_assign(param->album_id);
-               break;
-
-       case IVUG_VIEW_BY_INVAILD:
-       default:
-               MSG_SDATA_WARN("Invalid ViewBy : %d", param->view_by);
-               break;
-
-       }
-
-       return filter;
-
-}
-
-void ivug_data_filter_delete(List_Filter *filter)
-{
-       IV_ASSERT(filter != NULL);
-
-       MSG_SDATA_HIGH("Removing filter. ViewBy=%d", filter->view_by);
-
-       switch(filter->view_by)
-       {
-       case IVUG_VIEW_BY_PLACES:
-               break;
-
-       case IVUG_VIEW_BY_FILE:
-               if ( filter->file_path )
-               {
-                       free(filter->file_path);
-               }
-               break;
-       case IVUG_VIEW_BY_ALL:
-               uuid_free(filter->album_id);
-               break;
-
-       case IVUG_VIEW_BY_FOLDER:
-               uuid_free(filter->album_id);
-
-               break;
-
-       case IVUG_VIEW_BY_INVAILD:
-       default:
-               MSG_SDATA_WARN("Invalid ViewBy : %d", filter->view_by);
-               break;
-       }
-
-
-       free(filter);
-}
-
-
-
diff --git a/main/src/data/ivug-data-filter.h b/main/src/data/ivug-data-filter.h
deleted file mode 100755 (executable)
index e4969de..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATA_FILTER_H__
-#define __IVUG_DATA_FILTER_H__
-
-#include "ivug-parameter.h"
-
-typedef struct {
-       ivug_view_by view_by;
-       ivug_media_type media_type;
-       ivug_sort_type sort_type;
-
-       union {         /*      CAUTION : Union type. check view_by variable before free()*/
-               char *file_path;
-               struct {
-                       double max_longitude;
-                       double min_longitude;
-                       double max_latitude;
-                       double min_latitude;
-               } place;
-
-               UUID album_id;          // Cluster id
-       };
-
-} List_Filter;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-List_Filter *ivug_data_filter_create(const ivug_parameter *param);
-void ivug_data_filter_delete(List_Filter *filter);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_DATA_FILTER_H__
-
diff --git a/main/src/data/ivug-data-list.c b/main/src/data/ivug-data-list.c
deleted file mode 100755 (executable)
index 697b158..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-main.h"
-#include "ivug-common.h"
-
-#include "ivug-data-priv.h"
-
-// List
-static int
-_ivug_list_count_cb(Mitem* item, void* user_data )
-{
-       int *count = (int *)user_data;
-
-       (*count)++;
-
-       return 0;
-}
-
-//Eina List Function.
-static int
-_ivug_list_mitem_cb(Mitem* item, void* user_data )
-{
-       IV_ASSERT(user_data != NULL);
-       Eina_List **list = (Eina_List **)user_data;
-
-       *list = eina_list_prepend(*list, item);
-
-       return 0;
-}
-
-
-Eina_List *
-ivug_list_load_items(List_Filter *filter, int stp, int endp)
-{
-       IV_ASSERT(filter != NULL);
-
-       Eina_List *item_list = NULL;
-
-       if (filter->view_by == IVUG_VIEW_BY_FILE)
-       {
-               Eina_List *list = NULL;
-               Media_Data *mData = ivug_alloc_mediadata_from_filepath(filter->file_path);
-
-               list = eina_list_append(list, mData);
-               return list;
-       }
-
-// TODO : Check idx validation.
-       minfo_item_filter item_filter = {0, };  //create filter
-
-       switch(filter->media_type)
-       {
-       case IVUG_MEDIA_TYPE_IMAGE:
-               item_filter.file_type = MINFO_ITEM_IMAGE;
-               break;
-       case IVUG_MEDIA_TYPE_VIDEO:
-               item_filter.file_type = MINFO_ITEM_VIDEO;
-               break;
-       case IVUG_MEDIA_TYPE_ALL:
-               item_filter.file_type = MINFO_ITEM_IMAGE | MINFO_ITEM_VIDEO;
-               break;
-       default:
-               MSG_SITEM_FATAL("Invalid media type : %d", filter->media_type);
-               return NULL;
-               break;
-       }
-
-       item_filter.favorite = MINFO_MEDIA_FAV_ALL;
-
-       if(filter->view_by == IVUG_VIEW_BY_PLACES)
-       {
-               item_filter.sort_type = MINFO_MEDIA_SORT_BY_NAME_ASC;
-       }
-       else
-       {
-               item_filter.sort_type = MINFO_MEDIA_SORT_BY_DATE_DESC; //MINFO_MEDIA_SORT_BY_NAME_ASC;          //minfo_media_sort_type
-       }
-
-       item_filter.start_pos = stp;
-       item_filter.end_pos = endp;
-       item_filter.with_meta = false;
-
-       int ret = MB_SVC_ERROR_NONE;
-
-       switch(filter->view_by)
-       {
-               case IVUG_VIEW_BY_FOLDER:
-                       ret = minfo_get_item_list(gGetMediaSVCHandle(), filter->album_id, item_filter, _ivug_list_mitem_cb, &item_list);
-                       break;
-
-               case IVUG_VIEW_BY_ALL:
-                       ret = minfo_get_all_item_list(gGetMediaSVCHandle(), MINFO_CLUSTER_TYPE_LOCAL_ALL, item_filter, _ivug_list_mitem_cb, &item_list);
-                       break;
-
-               case IVUG_VIEW_BY_PLACES:
-                       ret = minfo_get_geo_item_list(gGetMediaSVCHandle(), INVALID_UUID, MINFO_CLUSTER_TYPE_LOCAL_ALL, item_filter,
-                                       filter->place.min_longitude, filter->place.max_longitude,
-                                       filter->place.min_latitude, filter->place.max_latitude,
-                                       _ivug_list_mitem_cb, &item_list);       // NULL means query all folder
-                       break;
-               default:
-                       MSG_SDATA_FATAL("Invalid Mode=%d", filter->view_by);
-                       return NULL;
-       }
-
-       if ( ret != MB_SVC_ERROR_NONE )
-       {
-               MSG_SDATA_ERROR("[%s] Error=%d VieBy=%d", __func__, ret, filter->view_by);
-               return NULL;
-       }
-
-// Creating media_list.
-       Eina_List *slide_list = NULL;
-
-       Eina_List *item;
-       Mitem* mitem;
-
-       Media_Data *mdata = NULL;
-
-       EINA_LIST_FOREACH(item_list, item, mitem)
-       {
-               mdata = ivug_alloc_mediadata_from_mitem(mitem);
-
-               IV_ASSERT(mdata != NULL);
-
-               MSG_SDATA_LOW("Add Mdata. Mdata=0x%08x %s", mdata, mdata->filepath);
-               slide_list = eina_list_prepend(slide_list, mdata);
-       }
-
-       EINA_LIST_FREE(item_list, mitem)
-       {
-               minfo_destroy_mtype_item(mitem);
-       }
-
-       eina_list_free(item_list);
-
-       MSG_SDATA_HIGH("Item loaded(%d~%d)", stp, endp);
-
-       return slide_list;
-}
-
-
-int
-ivug_list_get_item_cnt(List_Filter *filter)
-{
-       IV_ASSERT(filter != NULL);
-
-// TODO : Check idx validation.
-       minfo_item_filter item_filter = {0, };  //create filter
-
-       switch(filter->media_type)
-       {
-       case IVUG_MEDIA_TYPE_IMAGE:
-               item_filter.file_type = MINFO_ITEM_IMAGE;
-               break;
-       case IVUG_MEDIA_TYPE_VIDEO:
-               item_filter.file_type = MINFO_ITEM_VIDEO;
-               break;
-       case IVUG_MEDIA_TYPE_ALL:
-               item_filter.file_type = MINFO_ITEM_IMAGE | MINFO_ITEM_VIDEO;
-               break;
-       default:
-               MSG_SITEM_FATAL("Invalid media type : %d", filter->media_type);
-               return -1;
-               break;
-       }
-
-       item_filter.favorite = MINFO_MEDIA_FAV_ALL;
-
-       if(filter->view_by == IVUG_VIEW_BY_PLACES)
-       {
-               item_filter.sort_type = MINFO_MEDIA_SORT_BY_NAME_ASC;
-       }
-       else
-       {
-               item_filter.sort_type = MINFO_MEDIA_SORT_BY_DATE_DESC; //MINFO_MEDIA_SORT_BY_NAME_ASC;          //minfo_media_sort_type
-       }
-
-       item_filter.start_pos = -1;
-       item_filter.end_pos = -1;
-       item_filter.with_meta = false;
-
-       int ret = MB_SVC_ERROR_NONE;
-
-       int count = 0;
-
-       switch(filter->view_by)
-       {
-               case IVUG_VIEW_BY_ALL :
-                       ret = minfo_get_item_cnt(gGetMediaSVCHandle(), filter->album_id, item_filter, &count);
-                       if(ret < 0)
-                       {
-                               MSG_SDATA_ERROR("Error! AlbumUUID=%s Ret=%d", uuid_getchar(filter->album_id), ret );
-                               return -1;
-                       }
-
-                       MSG_SDATA_HIGH("IVUG_VIEW_BY_ALL. MediaType=%d Count=%d", filter->media_type, count);
-                       return count;
-                       break;
-
-/* minfo_get_geo_item_list doesn't provide minfo get count api */
-/* So get total count menually by list callback function          */
-               case IVUG_VIEW_BY_PLACES:
-                       ret = minfo_get_geo_item_list(gGetMediaSVCHandle(), INVALID_UUID, MINFO_CLUSTER_TYPE_LOCAL_ALL, item_filter,
-                                       filter->place.min_longitude, filter->place.max_longitude,
-                                       filter->place.min_latitude, filter->place.max_latitude,
-                                       _ivug_list_count_cb, &count);   // NULL means query all folder
-
-                       if (ret < 0)
-                       {
-                               MSG_SDATA_ERROR("minfo_get_geo_item_list ERROR");
-                               return -1;
-                       }
-
-                       MSG_SDATA_HIGH("IVUG_VIEW_BY_PLACES. Count=%d", count);
-                       return count;
-
-                       break;
-               case IVUG_VIEW_BY_FOLDER:
-                       ret = minfo_get_item_cnt(gGetMediaSVCHandle(), filter->album_id, item_filter, &count);
-                       if(ret < 0)
-                       {
-                               MSG_SDATA_ERROR("Error! AlbumUUID=%s Ret=%d", uuid_getchar(filter->album_id), ret );
-                               return -1;
-                       }
-                       MSG_SDATA_HIGH("IVUG_VIEW_BY_FOLDER. Count=%d", count);
-                       return count;
-
-                       break;
-
-               case IVUG_VIEW_BY_FILE:
-                       return 1;               // item count is always 1 when by file
-                       break;
-
-               default:
-                       MSG_SDATA_ERROR("Unhandled view_by : %d", filter->view_by);
-                       break;
-       }
-
-       return -1;
-}
-
-
-void ivug_list_delete_items(Eina_List *items)
-{
-       Media_Data* mdata;
-
-       if ( items == NULL )
-       {
-               MSG_SDATA_HIGH("Item list is NULL.");
-               return;
-       }
-
-       MSG_SDATA_HIGH("Removing items");
-
-       EINA_LIST_FREE(items, mdata)
-       {
-               if(mdata == NULL)
-               {
-                       MSG_IVUG_ERROR("media list is NULL, can not free all media list");
-               }
-               else
-               {
-                       ivug_free_mediadata(mdata);
-               }
-       }
-}
diff --git a/main/src/data/ivug-data-list.h b/main/src/data/ivug-data-list.h
deleted file mode 100755 (executable)
index 59920b7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATA_LIST_H__
-#define __IVUG_DATA_LIST_H__
-
-#include "ivug-data-filter.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-Eina_List *ivug_list_load_items(List_Filter *filter, int stp, int endp);
-
-int ivug_list_get_item_cnt(List_Filter *filter);
-
-void ivug_list_delete_items(Eina_List *items);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
-
diff --git a/main/src/data/ivug-data-priv.h b/main/src/data/ivug-data-priv.h
deleted file mode 100755 (executable)
index eb10f3d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATA_PRIV_H
-#define __IVUG_DATA_PRIV_H
-
-#include "ivug-data.h"
-#include "ivug-parameter.h"
-#include "ivug-data-filter.h"
-
-typedef struct {
-       Eina_List *header;
-
-       /* window loading setting */
-       int window_size;
-       int window_reload_offset;
-       int window_count;
-
-       int left_end;
-       int right_end;
-
-/*save bundle param*/
-       List_Filter *filter;
-
-       Eina_List *ss_shuffle_header;
-       Media_Item *ss_shuffle_current;
-       Media_Item *ss_shuffle_end;
-
-} _Media_List;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-Eina_List *
-_ivug_data_create_window_size_list(Media_List *mList, int start_index, int total_count);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_DATA_PRIV_H
-
diff --git a/main/src/data/ivug-data-shuffle.c b/main/src/data/ivug-data-shuffle.c
deleted file mode 100755 (executable)
index fa4d07d..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-data.h"
-#include "ivug-data-priv.h"
-#include "ivug-data-shuffle.h"
-
-static void _swap_eina_list(Eina_List* list, int i, int j)
-{
-       Eina_List *first;
-       Eina_List *second;
-       int temp;
-
-       if ( i == j ) return ;
-
-       first = eina_list_nth_list(list, i);
-       second = eina_list_nth_list(list, j);
-
-       temp = (int)(first->data);
-       first->data = second->data;
-       second->data = (void *)temp;
-}
-
-void _shuffle_eina_list(Eina_List *list, int count)
-{
-       int i;
-       int r;
-
-       IV_ASSERT(list != NULL);
-
-       srand((unsigned)time(NULL));
-
-       for(i=0; i<count; i++)
-       {
-               r = rand()%count;
-               //MSG_UTIL_HIGH("rand = %d", r);
-               _swap_eina_list(list, i, r);
-       }
-}
-
-static Eina_List *_create_eina_list(int count)
-{
-       int i;
-
-       Eina_List *list = NULL;
-
-       for(i=1; i <= count; i++)       /* 1 ~ total count */
-       {
-               list = eina_list_append(list, (void *)i);
-       }
-
-       _shuffle_eina_list(list, count);
-
-       return list;
-}
-
-
-bool ivug_data_init_shuffle_slide_show(Media_List *mList, slide_show_mode ss_mode, int cur_index, int total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       Eina_List *item = NULL;
-       _Media_List *_mList = (_Media_List *)mList;
-
-       if(total_count == 1 && !(ss_mode & SLIDE_SHOW_MODE_REPEAT))
-       {
-               return false;
-       }
-
-       item = eina_list_data_find_list(_mList->ss_shuffle_header, (void *\r)cur_index);
-       if(item == NULL)
-       {
-               MSG_SDATA_ERROR("Can't find cur index item %d", cur_index);
-               item = _mList->ss_shuffle_header;
-       }
-        _mList->ss_shuffle_end = item;
-        _mList->ss_shuffle_current = eina_list_next(item);
-
-        if( _mList->ss_shuffle_current == NULL)
-        {
-               _mList->ss_shuffle_current = _mList->ss_shuffle_header; /* back to first */
-        }
-
-        return true;
-}
-
-void ivug_data_deinit_shuffle_slide_show(Media_List *mList, int total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       _mList->ss_shuffle_end = NULL;
-       _mList->ss_shuffle_current = NULL;
-
-       _shuffle_eina_list(_mList->ss_shuffle_header, total_count);
-}
-
-void ivug_data_create_shuffled_list(Media_List *mList, int total_count)
-{
-       _Media_List *_mList = (_Media_List *)mList;
-
-       _mList->ss_shuffle_header = _create_eina_list(total_count);
-       _shuffle_eina_list(_mList->ss_shuffle_header, total_count);             // Shuffle
-
-}
-
-int ivug_data_get_next_slide_show_index(Media_List *mList, slide_show_mode ss_mode, int next_index, int total_count, bool increase_flag)
-{
-       IV_ASSERT(mList != NULL);
-       _Media_List *_mList = (_Media_List *)mList;
-       int index = -1;
-       Eina_List *item = NULL;
-       Eina_List *list = NULL;
-
-       if(ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               item = _mList->ss_shuffle_current;
-
-               list = eina_list_next(item);
-               if ( list == NULL)
-               {
-                       list = _mList->ss_shuffle_header;       /* back to start */
-               }
-               if(list == _mList->ss_shuffle_end && !(ss_mode & SLIDE_SHOW_MODE_REPEAT))
-               {
-                       if(increase_flag == true)
-                       {
-                               _mList->ss_shuffle_current = NULL;
-                       }
-                       return -1;
-               }
-               if(increase_flag == true)
-               {
-                       _mList->ss_shuffle_current = list;
-               }
-               index = (int)eina_list_data_get(list);
-       }
-       else
-       {
-               index = next_index + 1;
-               if(index > total_count && (ss_mode & SLIDE_SHOW_MODE_REPEAT) )
-               {
-                       index = 1;      /* back to start */
-               }
-       }
-       return index;
-}
-
-Media_Item * ivug_data_get_current_slide_show_item(Media_List *mList, slide_show_mode ss_mode, int cur_index, int *next_index, int total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       Eina_List *item = NULL;
-       int index;
-       Media_Item *slide_show_item = NULL;
-       _Media_List *_mList = (_Media_List *)mList;
-
-       if(ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               item = _mList->ss_shuffle_current;
-
-               index = (int)eina_list_data_get(item);
-       }
-       else
-       {
-               index = cur_index + 1;
-               if(index > total_count && (ss_mode & SLIDE_SHOW_MODE_REPEAT) )
-               {
-                       index = 1;      /* back to start */
-               }
-       }
-       MSG_SDATA_HIGH("*******current shuffle index is %d", index);
-
-       slide_show_item = _ivug_data_create_window_size_list(mList, index, total_count);
-       if(slide_show_item == NULL)
-       {
-               MSG_SDATA_HIGH("*******current shuffle item is NULL");
-               return NULL;
-       }
-        *next_index = index;
-
-       return slide_show_item;
-}
-
-Media_Item * ivug_data_set_next_slide_show_item(Media_List *mList, slide_show_mode ss_mode, int *next_index, int total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       int index;
-       Media_Item *slide_show_item = NULL;
-
-       index = ivug_data_get_next_slide_show_index(mList, ss_mode, *next_index, total_count, false);
-       if(index < 0)
-       {
-               MSG_SDATA_HIGH("*******Next slide show item is NULL");
-               return NULL;
-       }
-
-       MSG_SDATA_HIGH("*******Next slide show index is %d", index);
-
-       slide_show_item = _ivug_data_create_window_size_list(mList, index, total_count);
-       if(slide_show_item == NULL)
-       {
-               MSG_SDATA_HIGH("*******Next slide show item is NULL");
-               return NULL;
-       }
-       ivug_data_append_media_item(mList, slide_show_item);
-
-       return slide_show_item;
-}
-
-
-Media_Item *
-ivug_data_get_next_shuffle_item(Media_List *mList)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       return _mList->ss_shuffle_current;      // current is set at next slide
-}
-
diff --git a/main/src/data/ivug-data-shuffle.h b/main/src/data/ivug-data-shuffle.h
deleted file mode 100755 (executable)
index c478443..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATA_SHUFFLER_H__
-#define __IVUG_DATA_SHUFFLER_H__
-
-#include "ivug-config.h"
-#include "ivug-data.h"
-
-typedef struct {
-       Eina_List *ss_shuffle_header;
-       Eina_List *ss_shuffle_current;
-       Eina_List *ss_shuffle_end;
-} SlideShow_List;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-bool ivug_data_init_shuffle_slide_show(Media_List *mList, slide_show_mode ss_mode, int cur_index, int total_count);
-
-void ivug_data_deinit_shuffle_slide_show(Media_List *mList, int total_count);
-
-Media_Item * ivug_data_get_current_slide_show_item(Media_List *mList, slide_show_mode ss_mode, int cur_index, int *next_index, int total_count);
-
-Media_Item * ivug_data_set_next_slide_show_item(Media_List *mList, slide_show_mode ss_mode, int *cur_index, int total_count);
-
-Media_Item * ivug_data_get_next_shuffle_item(Media_List *mList);
-
-int ivug_data_get_next_slide_show_index(Media_List *mList, slide_show_mode ss_mode, int cur_index, int total_count, bool increase_flag);
-
-void ivug_data_create_shuffled_list(Media_List *mList, int total_count);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_DATA_SHUFFLER_H__
-
diff --git a/main/src/data/ivug-data.c b/main/src/data/ivug-data.c
deleted file mode 100755 (executable)
index 4e05214..0000000
+++ /dev/null
@@ -1,683 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-main.h"
-#include "ivug-common.h"
-
-#include "ivug-data.h"
-#include "ivug-util.h"
-#include "ivug-data-priv.h"
-#include "ivug-data-list.h"
-#include "ivug-data-filter.h"
-
-
-#include <media-svc.h>
-
-static bool
-_ivug_data_set_window_section(Media_List *mList, int start_index, int total_count, int *stp, int *endp)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       //if(total_count > _mList->window_size && start_index > 0)      // TODO : IV_ASSERT(start_index > 0); after fix gallery
-       if(start_index > 0 && total_count > 0 && start_index <= total_count)    // TODO : IV_ASSERT(start_index > 0); after fix gallery
-       {
-               *stp = (start_index-1) - (_mList->window_size/2);
-               if(*stp < 0)
-               {
-                       *stp = 0;
-               }
-               *endp = (start_index-1) + (_mList->window_size/2);
-               if(*endp > total_count-1)
-               {
-                       *endp = total_count-1;
-               }
-               if(_mList->window_count > 0)
-               {
-                       if(*stp < _mList->left_end)     /* load left window */
-                       {
-                               if(*endp > _mList->left_end-1)
-                               {
-                                       *endp = _mList->left_end -1;
-                               }
-                               _mList->left_end = *stp;
-                       }
-                       if(*endp > _mList->right_end)   /* load right window */
-                       {
-                               if(*stp < _mList->right_end+1)
-                               {
-                                       *stp = _mList->right_end +1;
-                               }
-                               _mList->right_end = *endp;
-                       }
-               }
-               else            // first window loding
-               {
-                       MSG_SDATA_HIGH("First window loading");
-                       _mList->left_end = *stp;
-                       _mList->right_end = *endp;
-                       _mList->window_count++;
-               }
-               MSG_SDATA_HIGH("Window loading [%d~%d]", *stp, *endp);
-
-               MSG_SDATA_HIGH("true : _mlist [%d~%d]", _mList->left_end, _mList->right_end);
-               return true;
-       }
-       else
-       {
-               if(_mList->window_count == 0)
-               {
-                       MSG_SDATA_HIGH("Entire loading");
-                       _mList->left_end = 0;
-                       _mList->right_end = total_count-1;
-               }
-               MSG_SDATA_HIGH("false : _mlist [%d~%d]", _mList->left_end, _mList->right_end);
-               return false;
-       }
-}
-
-
-static bool
-_ivug_data_add_media_item(Eina_List **list, const char *filepath)
-{
-       IV_ASSERT(list != NULL);
-
-       int ret = 0;
-       Mitem* item = NULL;
-
-       if (ivug_is_web_uri(filepath) == false)
-       {       //local file.
-               ret = minfo_get_item(gGetMediaSVCHandle(), filepath, &item); //get cluster id
-               if (ret != MB_SVC_ERROR_NONE)
-               {
-                       MSG_SDATA_ERROR("Cannot find file in media db for %s", filepath);
-               }
-       }
-
-       Media_Data* mdata = NULL;
-
-       if (item != NULL)
-       {
-               mdata = ivug_alloc_mediadata_from_mitem(item);
-               minfo_destroy_mtype_item(item);
-       }
-       else
-       {
-               mdata = ivug_alloc_mediadata_from_filepath(filepath);
-       }
-
-       if ( mdata == NULL )
-       {
-               MSG_SDATA_ERROR("Cannot create slide data for %s", filepath);
-               return false;
-       }
-
-       *list = eina_list_append(*list, mdata);
-
-       return true;
-
-}
-
-Eina_List *_ivug_data_create_window_size_list(Media_List *mList, int start_index, int total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-       Eina_List* slide_list = NULL;
-
-       MSG_SDATA_HIGH("start index is %d", start_index);
-
-       if(start_index < 1 || start_index > total_count)
-       {
-               MSG_SDATA_ERROR("start index is invalid %d", start_index);
-               return NULL;
-       }
-
-//     Eina_List *ivug_list_load_items(List_Filter *filter, int stp, int endp);
-
-       int stp = 0, endp = 0;
-
-       _ivug_data_set_window_section(mList, start_index, total_count, &stp, &endp);
-
-       slide_list = ivug_list_load_items(_mList->filter, stp, endp);
-
-       if(slide_list == NULL)
-       {
-               MSG_SDATA_ERROR("Create list ERROR");
-               return NULL;
-       }
-
-       return slide_list;
-}
-
-static Media_Item *
-_ivug_data_create_list(Media_List *mList, Eina_List **list, const char *filepath, int *start_index, int *total_count)
-{
-       IV_ASSERT(mList != NULL);
-       IV_ASSERT(filepath != NULL);
-
-       MSG_SDATA_HIGH("Creating slide data list");
-
-       _Media_List *_mList = (_Media_List *)mList;
-       Media_Item *item = NULL;
-
-       *total_count = -1;
-
-       if(_mList->filter->view_by == IVUG_VIEW_BY_FILE)
-       {
-               if (filepath == NULL)
-               {
-                       MSG_SDATA_ERROR("file path is NULL");
-                       return NULL;
-               }
-
-               // No need to create list. just one file only.
-               if ( _ivug_data_add_media_item(list, filepath) == false)
-               {
-                       MSG_SDATA_ERROR("Cannot add file : %s", filepath);
-                               return NULL;
-               }
-               *total_count = 1;
-               item = *list;
-               return item;
-       }
-       else
-       {
-               *total_count = ivug_list_get_item_cnt(_mList->filter);
-
-               *list = _ivug_data_create_window_size_list(mList, *start_index, *total_count);
-       }
-
-       if(*list == NULL)
-       {
-               MSG_SDATA_ERROR("list is NULL");
-               return NULL;
-       }
-
-       if(*total_count == 1)
-       {
-               item = *list;
-               *start_index = 1;
-               return item;
-       }
-       else if(*start_index > 0 && *start_index <= *total_count)
-       {
-               item = eina_list_nth_list(*list, (*start_index-1)-_mList->left_end);
-       }
-
-       Media_Data *mdata = NULL;
-       bool find = false;
-       int index = 0;
-
-       if(item != NULL)
-       {
-               MSG_SDATA_HIGH("start index exist");
-               mdata = ivug_data_get_data(item);
-
-               if(mdata != NULL)
-               {
-                       if ((mdata)->filepath)
-                       {
-                               if(strncmp(filepath, mdata->filepath, strlen(filepath)) == 0)
-                               {
-                                       MSG_SLIDER_HIGH("Founded Filepath=%s Index=%d", ivug_get_filename(mdata->filepath), *start_index);
-                                       index = *start_index;   // recieve from bundle
-                                       find = true;
-                               }
-                       }
-                       if (find == false && mdata->fileurl)
-                       {
-                               if (strncmp(filepath, mdata->fileurl, strlen(filepath)) == 0)           //match
-                               {
-                                       MSG_SLIDER_HIGH("Founded Fileurl=%s Index=%d", ivug_get_filename(mdata->fileurl), *start_index);
-                                       index = *start_index;   // recieve from bundle
-                                       find = true;
-                               }
-                       }
-                       if(find == false)
-                       {
-                               MSG_SLIDER_WARN("param index is not match to real index");
-                       }
-               }
-       }
-       //check indexed item
-       if(item == NULL || find == false)               // start index is not exist || can't find filename at window list
-       {
-               item = ivug_data_find_item(*list, filepath, &index);
-
-               if (item == NULL)
-               {
-                       // TODO : find file at whole file list
-                       MSG_SLIDER_ERROR("Item is not found for file %s", filepath);
-                       return NULL;
-               }
-       }
-       *start_index = index;
-       MSG_SDATA_HIGH("Create slide data list END");
-       return item;
-}
-
-Media_List *ivug_data_init_media_list(const ivug_parameter *param)
-{
-       _Media_List *_mList = calloc(1, sizeof(_Media_List));
-       IV_ASSERT(_mList != NULL);
-
-       _mList->window_size = IV_WINDOW_SIZE;
-       _mList->window_reload_offset = IV_RELOAD_OFFSET;
-       _mList->window_count = 0;
-       _mList->left_end = 0;
-
-       _mList->filter = ivug_data_filter_create(param);
-
-       return (Media_List *)_mList;
-}
-
-Media_Item *
-ivug_data_create_media_list_from_param
-       (Media_List *mList, Eina_List **list, const char *filepath, int *start_index, int *total_count)
-{
-       IV_ASSERT(mList != NULL);
-
-       MSG_SDATA_HIGH("Creating slide data list");
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       if(list == NULL)
-       {
-               return _ivug_data_create_list(mList, &(_mList->header), filepath, start_index, total_count);
-       }
-       else
-       {
-               return _ivug_data_create_list(mList, list, filepath, start_index, total_count);
-       }
-}
-
-bool ivug_data_set_window_size(Media_List *mList, int size)
-{
-       _Media_List *_mList = (_Media_List *)mList;
-
-       if(size < 1)
-       {
-               MSG_SDATA_ERROR("Set window size error, size = %d", size);
-               _mList->window_size = 0;
-               return false;
-       }
-
-       _mList->window_size = size;
-       return true;
-}
-
-void ivug_data_reset_window_load_count(Media_List *mList)
-{
-       _Media_List *_mList = (_Media_List *)mList;
-
-       _mList->window_count = 0;
-}
-
-void
-ivug_data_delete_media_list(Media_List *mList)
-{
-       IV_ASSERT(mList != NULL);
-       _Media_List *_mList = (_Media_List *)mList;
-
-       MSG_SDATA_HIGH("Removing all media data");
-
-       ivug_list_delete_items(_mList->header);
-
-       ivug_data_filter_delete(_mList->filter);
-
-       free(_mList);
-}
-
-
-
-#ifdef TRACE_CALLER
-Media_Data *
-dbg_ivug_data_get_data(Media_Item *media_item, const char *func, unsigned int line)
-#else
-Media_Data *
-ivug_data_get_data(Media_Item *media_item)
-#endif // TRACE_CALLER
-{
-#ifdef TRACE_CALLER
-       MSG_SDATA_HIGH("Called by %s(%d) Item=0x%08x", func, line, media_item);
-#endif
-       IV_ASSERT(media_item != NULL);
-
-       Eina_List *item = media_item;
-
-       return eina_list_data_get(item);
-
-}
-
-Media_Item *
-ivug_data_get_first(Media_List *mList)
-{
-       IV_ASSERT(mList != NULL);
-       _Media_List *_mList = (_Media_List *)mList;
-
-       return (Media_Item *)_mList->header;
-}
-
-
-Media_Item *
-ivug_data_get_next(Media_Item *media_item)
-{
-       IV_ASSERT(media_item != NULL);
-
-       Eina_List *item = media_item;
-
-       Eina_List *list;
-
-       list = eina_list_next(item);
-
-       if ( list == NULL )
-       {
-               MSG_SDATA_ERROR("Next item is NULL");
-               return NULL;
-       }
-
-       return list;
-}
-
-Media_Item *
-ivug_data_get_prev(Media_Item *media_item)
-{
-       IV_ASSERT(media_item != NULL);
-
-       Eina_List *item = media_item;
-
-       Eina_List *list;
-
-       list = eina_list_prev(item);
-
-       if ( list == NULL )
-       {
-               MSG_SDATA_ERROR("Prev item is NULL");
-               return NULL;
-       }
-
-       return list;
-}
-
-Media_Item *
-ivug_data_find_item(Eina_List *list, const char* fileuri, int /*OUT*/ *index)
-{
-       IV_ASSERT(list != NULL);
-       IV_ASSERT(fileuri != NULL);
-
-       Eina_List *item;
-       Media_Data* mdata;
-
-       unsigned int i = 1;
-
-       EINA_LIST_FOREACH(list, item, mdata)
-       {
-               if(mdata == NULL)
-               {
-                       MSG_SDATA_FATAL("sdata cannot be NULL");
-                       return NULL;
-               }
-
-               if (mdata->filepath)
-               {
-                       if (strncmp(mdata->filepath, fileuri, strlen(mdata->filepath)) == 0)    //match
-                       {
-                               MSG_SDATA_HIGH("Founded Filepath=%s Index=%d", ivug_get_filename(mdata->filepath), i);
-                               *index = i;
-                               return item;
-                       }
-               }
-
-               if (mdata->fileurl)
-               {
-                       if (strncmp(mdata->fileurl, fileuri, strlen(mdata->fileurl)) == 0)              //match
-                       {
-                               MSG_SDATA_HIGH("Founded Fileuri=%s Index=%d", mdata->fileurl, i);
-                               *index = i;
-                               return item;
-                       }
-               }
-               i++;
-       }
-
-       *index = 0;
-       return NULL;
-}
-
-
-bool
-ivug_data_delete_media_item(Media_List *mList, Media_Item *media_item)
-{
-       IV_ASSERT(mList != NULL);
-       IV_ASSERT(media_item != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       int ret;
-
-       Media_Data* mdata;
-
-       mdata = (Media_Data*)eina_list_data_get(media_item);
-
-       IV_ASSERT(mdata != NULL);
-
-       if (uuid_is_valid(mdata->mediaID) == true)
-       {
-               ret = minfo_delete_media_id(gGetMediaSVCHandle(), mdata->mediaID);
-
-               if (ret == MB_SVC_ERROR_NONE)
-               {
-                       if (mdata->filepath)
-                       {
-                               if(ivug_remove_file(mdata->filepath) == false)
-                               {
-                                       MSG_SDATA_ERROR("unlink error , file path =%s", mdata->filepath);
-                               }
-                       }
-               }
-               else
-               {
-                       MSG_SDATA_ERROR("minfo_delete_media_id faild=%d uuid=%s file=%s", ret, uuid_getchar(mdata->mediaID), mdata->filepath);
-                       goto ERROR;
-               }
-
-       }
-       else
-       {
-               if (mdata->filepath)
-               {
-                       if(ivug_remove_file(mdata->filepath) == false)
-                       {
-                               MSG_SDATA_ERROR("file remove error , file path =%s", mdata->filepath);
-                       }
-               }
-               else
-               {
-                       MSG_SDATA_ERROR("delete faild file path is NULL");
-                       goto ERROR;
-               }
-
-       }
-
-// TODO : Handle when current is deleted
-       ivug_free_mediadata(mdata);             // Free data
-
-       _mList->header = eina_list_remove_list(_mList->header, media_item);
-       _mList->right_end--;
-
-       return true;
-
-ERROR:
-       ivug_free_mediadata(mdata);             // Free data
-       _mList->header = eina_list_remove_list(_mList->header, media_item);
-       _mList->right_end--;
-
-       MSG_SDATA_ERROR("ivug_data_delete_slide faild.");
-       return false;
-
-}
-
-/* it delete start ~ end item */
-/* if end is null, it delete until last */
-bool
-ivug_data_delete_window_list(Media_List *mList, Media_Item *start_item, Media_Item *end_item)
-{
-       IV_ASSERT(mList != NULL);
-       IV_ASSERT(start_item != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       Media_Item *current = start_item;
-       Media_Item *next = NULL;
-
-       Media_Data* mdata;
-
-       do
-       {
-               MSG_SDATA_HIGH("delete window list");
-               next = eina_list_next(current);
-
-               mdata = (Media_Data*)eina_list_data_get(current);
-               ivug_free_mediadata(mdata);             // Free data
-               _mList->header = eina_list_remove_list(_mList->header, current);
-               if(end_item == NULL)    /* delete right window */
-               {
-                       /* TODO : _mList->right_end--; */
-               }
-               else    /* delete left window */
-               {
-                       /* TODO : _mList->left_end++; */
-               }
-               current = next;
-       }while(current && current != end_item);
-
-       if(current) /* delete end item */
-       {
-               mdata = (Media_Data*)eina_list_data_get(current);
-               ivug_free_mediadata(mdata);             // Free data
-               _mList->header = eina_list_remove_list(_mList->header, current);
-               _mList->left_end++;     /* this case is delete left window */
-       }
-
-       _mList->window_count--;
-
-       return true;
-}
-
-
-void
-ivug_data_delete_all_window_list(Media_List *mList)
-{
-       _Media_List *_mList = (_Media_List *)mList;
-
-       ivug_data_delete_window_list(mList, _mList->header, NULL);
-}
-
-
-void ivug_data_append_media_item(Media_List *mList, Eina_List* list)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       MSG_SDATA_HIGH("original : slide_list_count is %d", eina_list_count(_mList->header));
-       if(_mList->window_count > 3)
-       {
-               /* TODO : delete window item */
-               //ivug_data_delete_window_list(mList, _mList->header, _mList->contact_point);
-               MSG_SDATA_HIGH("after delete : slide_list_count is %d", eina_list_count(_mList->header));
-       }
-       //_mList->contact_point = eina_list_last(_mList->header);
-
-       _mList->header = eina_list_merge(_mList->header, list);
-       MSG_SDATA_HIGH("merge next : slide_list_count is %d", eina_list_count(_mList->header));
-
-       _mList->window_count++;
-}
-
-void ivug_data_prepend_media_item(Media_List *mList, Eina_List* list)
-{
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       MSG_SDATA_HIGH("original : slide_list_count is %d", eina_list_count(_mList->header));
-       if(_mList->window_count > 3)
-       {
-               /* TODO : delete window item */
-               //ivug_data_delete_window_list(mList, _mList->contact_point, NULL);
-               MSG_SDATA_HIGH("after delete : slide_list_count is %d", eina_list_count(_mList->header));
-       }
-       //_mList->contact_point = _mList->header;
-
-       _mList->header = eina_list_merge(list, _mList->header);
-       MSG_SDATA_HIGH("merge prev : slide_list_count is %d", eina_list_count(_mList->header));
-
-       _mList->window_count++;
-}
-
-
-Load_State
-ivug_data_set_window_loading(Media_List *mList, int cur_index, int total_count)
-{
-       Eina_List* slide_list_prev = NULL;
-       Eina_List* slide_list_next = NULL;
-       int start = -1;
-
-       IV_ASSERT(mList != NULL);
-
-       _Media_List *_mList = (_Media_List *)mList;
-
-       /* load right widow */
-       if(_mList->right_end < total_count-1 && cur_index-1 > _mList->right_end - _mList->window_reload_offset)
-       {
-               /* start index is basis for view's index(1~total) because +1 needed */
-               start = (_mList->right_end+1) + (_mList->window_size/2+1);
-               if(start > total_count) // index is 1~total
-               {
-                       start = total_count;
-               }
-               MSG_SDATA_HIGH("start = %d, _mList->right_end = %d", start, _mList->right_end);
-               slide_list_next = _ivug_data_create_window_size_list(mList, start, total_count);
-               if(slide_list_next != NULL)
-               {
-                       ivug_data_append_media_item(mList, slide_list_next);
-                       return IVUG_SLIDER_LOADED_RIGHT;
-               }
-       }
-       /* load left widow */
-       else if(_mList->left_end > 0 && cur_index-1 < _mList->left_end + _mList->window_reload_offset)
-       {
-               /* start index is basis for view's index(1~total) because +1 needed */
-               start = (_mList->left_end+1) - (_mList->window_size/2+1);
-               if(start < 1)   // index is 1~total
-               {
-                       start = 1;
-               }
-               MSG_SDATA_HIGH("start = %d, _mList->left_end = %d", start, _mList->left_end);
-               slide_list_prev = _ivug_data_create_window_size_list(mList, start, total_count);
-               if(slide_list_prev != NULL)
-               {
-                       ivug_data_prepend_media_item(mList, slide_list_prev);
-                       return IVUG_SLIDER_LOADED_LEFT;
-               }
-       }
-       return IVUG_SLIDER_LOADED_NONE;
-}
-
diff --git a/main/src/data/ivug-data.h b/main/src/data/ivug-data.h
deleted file mode 100755 (executable)
index 2dd9965..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DATA_H__
-#define __IVUG_DATA_H__
-
-#include "ivug-common.h"
-#include "ivug-parameter.h"
-#include "ivug-mediadata.h"
-
-
-typedef enum {
-       IVUG_SLIDER_LOADED_NONE = 0x00, /* default value */
-       IVUG_SLIDER_LOADED_LEFT,
-       IVUG_SLIDER_LOADED_RIGHT,
-       IVUG_SLIDER_LOADED_STATUS_MAX,
-} Load_State;
-
-
-/* Opaque pointer for media list. */
-typedef void *Media_List;
-typedef Eina_List Media_Item;          // Same as Eina_List
-
-#undef TRACE_CALLER
-
-bool
-ivug_data_set_window_size(Media_List *mList, int size);
-
-Load_State
-ivug_data_set_window_loading(Media_List *mList, int cur_index, int total_count);
-
-void ivug_data_reset_window_load_count(Media_List *mList);
-
-Media_List * ivug_data_init_media_list(const ivug_parameter *param);
-
-Media_Item *
-ivug_data_create_media_list_from_param(Media_List *mList, Eina_List **list, const char *filepath, int *start_index, int *total_count);
-
-void
-ivug_data_delete_media_list(Media_List *mList);
-
-void
-ivug_data_delete_all_window_list(Media_List *mList);
-
-Media_Item *
-ivug_data_get_first(Media_List *mList);
-
-Media_Item *
-ivug_data_get_prev(Media_Item *media_item);
-
-Media_Item *
-ivug_data_get_next(Media_Item *media_item);
-
-#ifdef TRACE_CALLER
-#define ivug_data_get_data(media_item) dbg_ivug_data_get_data(media_item , __func__, __LINE__)
-
-Media_Data *
-dbg_ivug_data_get_data(Media_Item *media_item, const char *func, unsigned int line);
-#else
-Media_Data *
-ivug_data_get_data(Media_Item *media_item);
-#endif
-
-void ivug_data_append_media_item(Media_List *mList, Eina_List* list);
-
-bool ivug_data_delete_media_item(Media_List *mList, Media_Item *media_item);
-
-Media_Item * ivug_data_find_item(Eina_List *list, const char* fileuri, int /*OUT*/ *index);
-
-#endif //__IVUG_DATA_H__
-
diff --git a/main/src/data/ivug-mediadata.c b/main/src/data/ivug-mediadata.c
deleted file mode 100755 (executable)
index b46a5da..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-main.h"
-#include "ivug-common.h"
-#include <media-svc.h>
-#include "ivug-mediadata.h"
-#include "ivug-file-info.h"
-
-Media_Data *ivug_alloc_mediadata_from_mitem(Mitem * item)
-{
-       IV_ASSERT(item != NULL);
-       IV_ASSERT(item->file_url != NULL);
-       Media_Data * mdata = NULL;
-       mdata = (Media_Data *) calloc(1, sizeof(Media_Data));
-       if (mdata == NULL)
-       {
-               MSG_SDATA_ERROR("Cannot allocate memory");
-               return NULL;
-       }
-
-       mdata->mediaID = uuid_assign(item->uuid);
-
-       //file url
-       mdata->fileurl = strdup(item->file_url);
-       if (mdata->fileurl == NULL)
-       {
-               MSG_SDATA_ERROR("strdup return NULL");
-               free(mdata);
-               return NULL;
-       }
-
-       if (item->type == MINFO_ITEM_IMAGE)
-       {
-               //check file path.
-               MSG_SDATA_HIGH("Local image : %s. %s", uuid_getchar( mdata->mediaID ), mdata->fileurl);
-
-               mdata->thumbnail_path = NULL;
-
-               mdata->slide_type = SLIDE_TYPE_IMAGE;
-               mdata->filepath = strdup(mdata->fileurl);
-               if (mdata->filepath == NULL)
-               {
-                       free(mdata->fileurl);
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       free(mdata);
-                       return NULL;
-               }
-       }
-       else if (item->type == MINFO_ITEM_VIDEO)
-       {
-               MSG_SDATA_HIGH("Local video : %s. %s", uuid_getchar(mdata->mediaID), mdata->fileurl);
-
-               if (item->thumb_url)
-               {
-                       mdata->thumbnail_path = strdup(item->thumb_url);        //thumbnail address
-                       if (mdata->thumbnail_path == NULL)
-                       {
-                               free(mdata->fileurl);
-                               MSG_SDATA_ERROR("strdup return NULL");
-                               free(mdata);
-                               return NULL;
-                       }
-               }
-
-               mdata->slide_type = SLIDE_TYPE_VIDEO;
-               mdata->filepath = strdup(mdata->fileurl);
-               if (mdata->filepath == NULL)
-               {
-                       free(mdata->fileurl);
-                       if (mdata->thumbnail_path)
-                       {
-                               free(mdata->thumbnail_path);
-                       }
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       free(mdata);
-                       return NULL;
-               }
-       }
-       return mdata;
-}
-
-Media_Data *ivug_alloc_mediadata_from_filepath(const char *filepath)
-{
-       IV_ASSERT(filepath != NULL);
-
-
-       // No need to create list. just one file only.
-       Mitem * item = NULL;
-       if (ivug_is_web_uri(filepath) == false)
-       {
-
-               //local file.
-               int ret = MB_SVC_ERROR_NONE;
-               ret = minfo_get_item(gGetMediaSVCHandle(), filepath, &item);    //get cluster id
-               if (ret != MB_SVC_ERROR_NONE)
-               {
-                       MSG_SDATA_ERROR("Cannot find file in media db for %s",filepath);
-                       // Go through
-               }
-       }
-
-       Media_Data * mdata = NULL;
-       if (item != NULL)
-       {
-               MSG_SDATA_HIGH("File path is given. but founded in DB.");
-               mdata = ivug_alloc_mediadata_from_mitem(item);
-               minfo_destroy_mtype_item(item);
-               if (mdata == NULL)
-               {
-                       MSG_SDATA_ERROR("Cannot add file : %s", filepath);
-                       return NULL;
-               }
-               return mdata;
-       }
-       mdata = (Media_Data *) calloc(1, sizeof(Media_Data));
-       if (mdata == NULL)
-       {
-               MSG_SDATA_ERROR("Cannot allocate memory");
-               return NULL;
-       }
-       mdata->mediaID = INVALID_UUID;  //copy id mitem
-
-       char *mime_type = NULL;
-       mime_type = ivug_fileinfo_get_mime_type(filepath);
-       if (mime_type == NULL)
-       {
-               MSG_SDATA_WARN("file path is not vaild = %s", filepath);
-               mdata->slide_type = SLIDE_TYPE_UNKNOWN;
-               mdata->fileurl = NULL;
-               mdata->filepath = NULL;
-               return mdata;
-       }
-
-
-       Media_Type slide_type = SLIDE_TYPE_NONE;
-
-       //image
-       if (strncmp(mime_type, "image/", strlen("image/")) == 0)
-       {
-               slide_type = SLIDE_TYPE_IMAGE;
-       }
-       else if (strncmp(mime_type, "video/", strlen("video/")) == 0)
-       {
-               slide_type = SLIDE_TYPE_VIDEO;
-       }
-       else
-       {
-               slide_type = SLIDE_TYPE_NONE;
-       }
-       MSG_SDATA_HIGH("File=%s Mime=%s", filepath, mime_type);
-       free(mime_type);                //free strdup
-
-       mdata->thumbnail_path = NULL;
-
-       if (slide_type == SLIDE_TYPE_IMAGE)
-       {
-               mdata->slide_type = SLIDE_TYPE_IMAGE;
-               mdata->fileurl = strdup(filepath);
-               if (mdata->fileurl == NULL)
-               {
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       goto ERROR;
-               }
-               mdata->filepath = strdup(filepath);
-               if (mdata->filepath == NULL)
-               {
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       free(mdata->fileurl);
-                       goto ERROR;
-               }
-       }
-       else if (slide_type == SLIDE_TYPE_VIDEO)
-       {
-               mdata->slide_type = SLIDE_TYPE_VIDEO;
-               mdata->fileurl = strdup(filepath);
-               if (mdata->fileurl == NULL)
-               {
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       goto ERROR;
-               }
-               mdata->filepath = strdup(filepath);
-               if (mdata->filepath == NULL)
-               {
-                       MSG_SDATA_ERROR("strdup return NULL");
-                       free(mdata->fileurl);
-                       goto ERROR;
-               }
-       }
-       else
-       {
-               MSG_SDATA_WARN("file path is not vaild = %s", filepath);
-               mdata->slide_type = SLIDE_TYPE_UNKNOWN;
-               mdata->fileurl = NULL;
-               mdata->filepath = NULL;
-       }
-       return mdata;
-ERROR:
-
-       if (mdata)
-       {
-               free(mdata);
-       }
-       return NULL;
-}
-
-void ivug_free_mediadata(Media_Data * mdata)
-{
-       IV_ASSERT(mdata != NULL);
-
-       uuid_free(mdata->mediaID);
-
-       //file path
-       if (mdata->filepath)
-       {
-               //IVUG_DEBUG_MSG("filepath =%s", sd->filepath);
-               free(mdata->filepath);
-               mdata->filepath = NULL;
-       }
-
-       //file url
-       if (mdata->fileurl)
-       {
-               MSG_SDATA_HIGH("Remove media data. %s", mdata->fileurl);
-               free(mdata->fileurl);
-               mdata->fileurl = NULL;
-       }
-
-       if (mdata->thumbnail_path)
-       {
-               free(mdata->thumbnail_path);
-               mdata->thumbnail_path = NULL;
-       }
-
-       free(mdata);
-}
-
-bool ivug_delete_mediadata(Media_Data * mdata)
-{
-       IV_ASSERT(mdata != NULL);
-
-       if (uuid_is_valid(mdata->mediaID) == true )
-       {
-               int ret = minfo_delete_media_id(gGetMediaSVCHandle(), mdata->mediaID);
-
-               if (ret == MB_SVC_ERROR_NONE)
-               {
-                       if (mdata->filepath)
-                       {
-                               MSG_SDATA_HIGH("File removed. %s", mdata->filepath);
-                               if (ivug_remove_file(mdata->filepath) == false)
-                               {
-                                       MSG_SDATA_ERROR("file remove error : %s", mdata->filepath);
-                               }
-                       }
-                       else
-                       {
-                               MSG_SDATA_ERROR("File path is NULL", mdata->filepath);
-                       }
-               }
-               else
-               {
-                       MSG_SDATA_ERROR("minfo_delete_media_id faild=%d uuid=%s file=%s", ret, uuid_getchar(mdata->mediaID), mdata->filepath);
-                       return false;
-               }
-       }
-       else
-       {
-               if (mdata->filepath)
-               {
-                       MSG_SDATA_HIGH("File removed. %s", mdata->filepath);
-
-                       if (ivug_remove_file(mdata->filepath) == false)
-                       {
-                               MSG_SDATA_ERROR("file remove error : %s", mdata->filepath);
-                       }
-               }
-               else
-               {
-                       MSG_SDATA_ERROR("File path is NULL", mdata->filepath);
-               }
-
-       }
-
-       return true;
-}
-
diff --git a/main/src/data/ivug-mediadata.h b/main/src/data/ivug-mediadata.h
deleted file mode 100755 (executable)
index 43b5e9e..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_MEDIADATA_H__
-#define __IVUG_MEDIADATA_H__
-
-#include <media-svc.h>
-#include <visual-svc.h>                // Mitem
-
-//slide type
-typedef enum {
-       SLIDE_TYPE_NONE = 0x00,
-       SLIDE_TYPE_IMAGE,
-       SLIDE_TYPE_VIDEO,
-       SLIDE_TYPE_UNKNOWN,             // File is exists but it's type is unknown.
-} Media_Type;
-
-/*
-       This struct represents data for slide.
-       thumbnail_path is slide's thumbnail image path.
-       fileurl is saved item in media service.
-       filepath is local file path. if fileurl is http://.../test.jpg, filepath is NULL, when complete download filepath change to saved local file path.
-*/
-typedef struct {
-//Data
-       Media_Type slide_type;                  //image, video
-
-       UUID mediaID;                                   // Media ID
-
-       char* thumbnail_path;                   // thumbnail image file path.
-       char* fileurl;                                  // file url.
-       char* filepath;                                 // file path in local file system.
-} Media_Data;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
-  * Converting Media_Data from filepath
-  * @param filepath[in]
-  *
-**/
-Media_Data *ivug_alloc_mediadata_from_filepath(const char* filepath);
-
-/**
-  * Converting Mitem to Media_Data
-  * @param item[in]
-  *
-**/
-Media_Data *ivug_alloc_mediadata_from_mitem(Mitem* item);
-
-
-/**
-  * Free memory used by Media_Data
-  * @param mdata[in]
-  *
-**/
-void ivug_free_mediadata(Media_Data* mdata);
-
-/**
- *
- * Delete file indicated by @p mdata
- *
-**/
-bool ivug_delete_mediadata(Media_Data* mdata);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // __IVUG_MEDIADATA_H__
\ No newline at end of file
diff --git a/main/src/effect/include/ivug-anim.h b/main/src/effect/include/ivug-anim.h
deleted file mode 100755 (executable)
index cf7ddfa..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_ANIM_H__
-#define __IVUG_ANIM_H__
-
-#include <stdbool.h>
-
-typedef enum {
-       ANIM_TYPE_LINEAR,
-       ANIM_TYPE_QUARTIC_INOUT,
-       ANIM_TYPE_QUINTIC_INOUT,
-       ANIM_TYPE_SINE,
-} anim_type_t;
-
-/*
-       t: current time b: start time c: change in value d: duration
-*/
-typedef double (*anim_transit_func_t) (double t, double b, double c, double d);
-
-typedef struct {
-/* private */
-       double duration;
-       double t_start;
-       double t_varing;
-
-       anim_transit_func_t transit_func;
-
-       void *user_data;
-} anim_handle_t;
-
-anim_handle_t *create_animation();
-
-void delete_animation(anim_handle_t *anim);
-
-bool update_animation(anim_handle_t *anim, double current, int *value);
-
-bool set_animation_type(anim_handle_t *anim, anim_type_t type);
-
-bool set_animation(anim_handle_t *anim, int start, int end, double duration);
-
-#endif
diff --git a/main/src/effect/include/ivug-effect.h b/main/src/effect/include/ivug-effect.h
deleted file mode 100755 (executable)
index 7594c54..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_EFFECT_H__
-#define __IVUG_EFFECT_H__
-
-#include <stdbool.h>
-#include <Elementary.h>
-#include "ivug-anim.h"
-
-#define        EFFECT_LBYTES_ARGB8888(w)       (((w) * 4))
-#define MAX_PERCENT                    (100.0f)
-#define MIN_PERCENT                    (0.0f)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef void *Effect_Data ;
-
-typedef void (*FuncFinished)(void *data);
-
-typedef struct {
-       Effect_Data eng_data;
-
-       FuncFinished pFinishedCB;
-       void *ClientData;
-
-       double t_base;          // start time.
-       anim_handle_t *anim;
-       Ecore_Animator *animator;
-
-       struct {
-               Effect_Data (*init) (Evas_Object *src, Evas_Object *dst, int screen_w, int screen_h, int rotation);
-               void (*animate) (Effect_Data data, double percent);
-               void (*pause) (Effect_Data data);               /* Not used*/
-               void (*resume) (Effect_Data data);              /* Not used*/
-               void (*finalize) (Effect_Data data);
-
-               double (*get_duration)(Effect_Data data);
-       } func;
-
-} Effect_Engine;
-
-typedef enum _Effect_Type {
-       EFFECT_NONE,
-       EFFECT_SLIDE,
-       EFFECT_MAX
-} Effect_Type;
-
-
-Effect_Engine *ivug_effect_add(Effect_Type type);
-
-bool ivug_effect_init(Effect_Engine *engine, Evas_Object *src, Evas_Object *dst, int w, int h, int rotation);
-bool ivug_effect_start(Effect_Engine *engine, FuncFinished pFunc, void *data);
-bool ivug_effect_pause(Effect_Engine *engine);
-bool ivug_effect_resume(Effect_Engine *engine);
-bool ivug_effect_finalize(Effect_Engine *engine);
-
-
-/*
-       Private function for adding effect. Do not use below functions directly..
-*/
-Effect_Engine *ivug_fade_add(void);
-Effect_Engine *ivug_iris_add(void);
-Effect_Engine *ivug_dissolve_add(void);
-Effect_Engine *ivug_blind_add(void);
-Effect_Engine *ivug_slide_add(void);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif                         /* __IVUG_EFFECT_H__ */
diff --git a/main/src/effect/ivug-anim.c b/main/src/effect/ivug-anim.c
deleted file mode 100755 (executable)
index b12d1fb..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 <stddef.h>            /* for NULL */
-#include <memory.h>
-#include <stdlib.h>
-
-#include "ivug-common.h"
-
-#include "ivug-anim.h"
-
-/*
-       t: current time b: start time c: change in value d: duration
-*/
-static double _anim_linear(double t, double b, double c, double d)
-{
-       if(d != 0.0)
-               t /= d;
-       return b + c * (t);
-}
-
-static double _anim_sine(double t, double b, double c, double d)
-{
-/* TODO : Consider below table reconstruct. need only 0.0 ~ 1.0 range*/
-       static const double const SIN_TABLE[91] = {
-               0.0000f, 0.0174f, 0.0349f, 0.0523f, 0.0698f,
-               0.0872f, 0.1045f, 0.1219f, 0.1392f, 0.1564f,
-               0.1736f, 0.1908f, 0.2079f, 0.2249f, 0.2419f,
-               0.2588f, 0.2756f, 0.2924f, 0.3090f, 0.3256f,
-               0.3420f, 0.3584f, 0.3746f, 0.3907f, 0.4067f,
-               0.4226f, 0.4384f, 0.4540f, 0.4695f, 0.4848f,
-               0.5000f, 0.5150f, 0.5299f, 0.5446f, 0.5592f,
-               0.5736f, 0.5878f, 0.6018f, 0.6157f, 0.6293f,
-               0.6528f, 0.6561f, 0.6691f, 0.6820f, 0.6947f,
-               0.7071f, 0.7193f, 0.7314f, 0.7431f, 0.7547f,
-               0.7660f, 0.7772f, 0.7880f, 0.7986f, 0.8090f,
-               0.8191f, 0.8290f, 0.8387f, 0.8480f, 0.8571f,
-               0.8660f, 0.8746f, 0.8829f, 0.8910f, 0.8988f,
-               0.9063f, 0.9135f, 0.9205f, 0.9272f, 0.9336f,
-               0.9397f, 0.9455f, 0.9511f, 0.9563f, 0.9613f,
-               0.9659f, 0.9703f, 0.9744f, 0.9781f, 0.9816f,
-               0.9848f, 0.9877f, 0.9903f, 0.9926f, 0.9945f,
-               0.9962f, 0.9976f, 0.9986f, 0.9994f, 0.9998f,
-               1.0f
-       };
-
-       if(d != 0.0)
-               t /= d;                 /* normalize */
-
-       int idx = (int)(90.0 * t);
-
-       return b + c * (SIN_TABLE[idx]);
-
-}
-
-static double _anim_ease_inout_quartic(double t, double b,
-                                               double c, double d)
-{
-       if(d != 0.0)
-               t /= d;
-       double ts = t * t;
-       double tc = ts * t;
-       return b + c * (-2 * tc + 3 * ts);
-
-}
-
-static double _anim_ease_inout_quintic(double t, double b,
-                                               double c, double d)
-{
-       if(d != 0.0)
-               t /= d;
-       double ts = t * t;
-       double tc = ts * t;
-       return b + c * (6 * tc * ts + -15 * ts * ts + 10 * tc);
-}
-
-anim_handle_t *create_animation()
-{
-       anim_handle_t *anim;
-
-       anim = calloc(1, sizeof(anim_handle_t));
-
-       if (anim == NULL) {
-               MSG_IVUG_ERROR("Cannot allocate memory");
-               return NULL;
-       }
-
-       return anim;
-
-}
-
-void delete_animation(anim_handle_t *anim)
-{
-       IV_ASSERT(anim != NULL);
-
-       free(anim);
-
-}
-
-bool set_animation_type(anim_handle_t *anim, anim_type_t type)
-{
-       IV_ASSERT(anim != NULL);
-
-       switch (type) {
-       case ANIM_TYPE_LINEAR:
-               anim->transit_func = _anim_linear;
-               break;
-       case ANIM_TYPE_QUARTIC_INOUT:
-               anim->transit_func = _anim_ease_inout_quartic;
-               break;
-
-       case ANIM_TYPE_QUINTIC_INOUT:
-               anim->transit_func = _anim_ease_inout_quintic;
-               break;
-
-       case ANIM_TYPE_SINE:
-               anim->transit_func = _anim_sine;
-               break;
-       default:
-               MSG_IVUG_ERROR("Invalid transition type=%d", type);
-               return false;
-               break;
-       }
-
-       return true;
-}
-
-bool set_animation(anim_handle_t *anim, int start, int end, double duration)
-{
-       IV_ASSERT(anim != NULL);
-
-       MSG_IVUG_MED("Set Anim. Start=%d End=%d Dur=%f", start, end, duration);
-       anim->duration = duration;
-       anim->t_start = start;
-       anim->t_varing = end - start;
-
-       return true;
-}
-
-bool update_animation(anim_handle_t *anim, double current, int *value)
-{
-       IV_ASSERT(anim != NULL);
-       IV_ASSERT(anim->transit_func != NULL);
-
-       if (current >= anim->duration) {
-               *value = anim->t_start + anim->t_varing;
-               MSG_IVUG_MED("End Start:%f Varing:%f Duration=%f",
-                            anim->t_start, anim->t_varing, anim->duration);
-
-               MSG_IVUG_MED("End Current=%f Value=%d", current, *value);
-
-               return false;   /* End of animation */
-       }
-
-       MSG_IVUG_MED("Start:%f Varing:%f Duration=%f Current=%f", anim->t_start,
-                    anim->t_varing, anim->duration, current);
-
-       *value = (int)anim->transit_func(current, anim->t_start, anim->t_varing,
-                                        anim->duration);
-
-       MSG_IVUG_MED("Value = %d", *value);
-
-       return true;
-}
diff --git a/main/src/effect/ivug-effect.c b/main/src/effect/ivug-effect.c
deleted file mode 100755 (executable)
index ea17ee5..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-effect.h"
-
-#define SIN_TABLE_NUM  91
-
-/* Animation acceleration table */
-static const float const EFFECT_SIN_TABLE[SIN_TABLE_NUM] = {
-       0.0000f, 0.0174f, 0.0349f, 0.0523f, 0.0698f,
-       0.0872f, 0.1045f, 0.1219f, 0.1392f, 0.1564f,
-       0.1736f, 0.1908f, 0.2079f, 0.2249f, 0.2419f,
-       0.2588f, 0.2756f, 0.2924f, 0.3090f, 0.3256f,
-       0.3420f, 0.3584f, 0.3746f, 0.3907f, 0.4067f,
-       0.4226f, 0.4384f, 0.4540f, 0.4695f, 0.4848f,
-       0.5000f, 0.5150f, 0.5299f, 0.5446f, 0.5592f,
-       0.5736f, 0.5878f, 0.6018f, 0.6157f, 0.6293f,
-       0.6528f, 0.6561f, 0.6691f, 0.6820f, 0.6947f,
-       0.7071f, 0.7193f, 0.7314f, 0.7431f, 0.7547f,
-       0.7660f, 0.7772f, 0.7880f, 0.7986f, 0.8090f,
-       0.8191f, 0.8290f, 0.8387f, 0.8480f, 0.8571f,
-       0.8660f, 0.8746f, 0.8829f, 0.8910f, 0.8988f,
-       0.9063f, 0.9135f, 0.9205f, 0.9272f, 0.9336f,
-       0.9397f, 0.9455f, 0.9511f, 0.9563f, 0.9613f,
-       0.9659f, 0.9703f, 0.9744f, 0.9781f, 0.9816f,
-       0.9848f, 0.9877f, 0.9903f, 0.9926f, 0.9945f,
-       0.9962f, 0.9976f, 0.9986f, 0.9994f, 0.9998f,
-       1.0f
-};
-
-#define SLIDESHOW_ANI_TIME (1.0f)
-
-
-static Eina_Bool
-_on_effect_animator(void *data)
-{
-       IV_ASSERT( data != NULL);
-       Effect_Engine *engine = data;
-
-       int value = 0;
-
-       if ( update_animation(engine->anim, ecore_loop_time_get() - engine->t_base, &value) == false )   // If last frame
-       {
-               engine->animator = NULL;
-
-               MSG_EFFECT_HIGH("Last effect frame. value=%d", value);
-
-               engine->func.animate(engine->eng_data, value);          // Draw last frame.
-               // Inform to user.
-               if ( engine->pFinishedCB )
-               {
-                       engine->pFinishedCB(engine->ClientData);
-               }
-
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       engine->func.animate(engine->eng_data, value);
-
-       return ECORE_CALLBACK_RENEW;
-}
-
-
-bool ivug_effect_init(Effect_Engine *engine, Evas_Object *src, Evas_Object *dst, int w, int h, int rotation)
-{
-       IV_ASSERT(engine != NULL );
-
-       void *data = engine->func.init(src, dst, w, h, rotation);
-       if (data == NULL) {
-               MSG_EFFECT_ERROR("init returned data is NULL");
-
-               return false;
-       }
-
-       engine->eng_data = data;
-
-       engine->anim = create_animation();
-       return true;
-}
-
-bool ivug_effect_start(Effect_Engine *engine, FuncFinished pFunc, void *data)
-{
-       ivug_retvm_if(engine == NULL, false, "engine is NULL");
-
-       IV_ASSERT(engine->func.animate != NULL);
-       IV_ASSERT(engine->eng_data != NULL);
-
-// Set up slide show animator
-       engine->t_base = ecore_loop_time_get();
-
-       double duration = SLIDESHOW_ANI_TIME;
-
-       if (engine->func.get_duration )
-       {
-               duration = engine->func.get_duration(engine->eng_data);
-       }
-
-       set_animation_type(engine->anim, ANIM_TYPE_LINEAR);
-       set_animation(engine->anim, 0, 100, duration);  // 0~100% during 1 seconds
-
-       engine->pFinishedCB = pFunc;
-       engine->ClientData = data;
-
-       if (engine->animator == NULL)
-       {
-               engine->animator = ecore_animator_add(_on_effect_animator, engine);
-       }
-
-       return true;
-}
-
-bool ivug_effect_pause(Effect_Engine *engine)
-{
-/* Unused. */
-       return true;
-}
-
-bool ivug_effect_resume(Effect_Engine *engine)
-{
-/* Unused. */
-       return true;
-}
-
-bool ivug_effect_finalize(Effect_Engine *engine)
-{
-       ivug_retvm_if(engine == NULL, false, "engine is NULL");
-
-       if ( engine->animator )
-       {
-               ecore_animator_del(engine->animator);
-               engine->animator = NULL;
-       }
-
-       if (engine->eng_data)
-       {
-               if (engine->func.finalize)
-               {
-                       MSG_EFFECT_HIGH("finalize");
-                       engine->func.finalize(engine->eng_data);
-               }
-               else
-               {
-                       MSG_EFFECT_ERROR("engine->func.finalize is NULL");
-               }
-
-               engine->eng_data = NULL;
-       }
-       else
-       {
-               MSG_EFFECT_ERROR("engine->eng_data is NULL");
-       }
-
-       if ( engine->anim )
-       {
-               delete_animation(engine->anim);
-       }
-
-       free(engine);
-       engine = NULL;
-
-       return true;
-}
-
-Effect_Engine *ivug_effect_add(Effect_Type type)
-{
-       Effect_Engine *eng = NULL;
-
-       switch (type) {
-       case EFFECT_SLIDE:
-               eng = ivug_slide_add();
-               break;
-
-       default:
-               MSG_EFFECT_ERROR("Unknown effect type=%d", type);
-               return NULL;
-               break;
-       }
-
-       if (eng == NULL)
-       {
-               MSG_EFFECT_ERROR("Cannot create effect enigne. type=%d", type);
-               return NULL;
-       }
-
-       return eng;
-}
diff --git a/main/src/effect/ivug-slide.c b/main/src/effect/ivug-slide.c
deleted file mode 100755 (executable)
index adb38f9..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-effect.h"
-
-
-typedef struct {
-       Evas_Object *src;
-       Evas_Object *dst;
-
-       int screen_w;
-       int screen_h;
-} Priv_Data;
-
-
-static Effect_Data __ivug_slide_init(Evas_Object *src, Evas_Object *dst, int screen_w, int screen_h, int rotation)
-{
-       Priv_Data *pData = calloc(1, sizeof(Priv_Data));
-       IV_ASSERT(pData != NULL);
-
-       pData->src = src;
-       pData->dst = dst;
-
-       pData->screen_w = screen_w;
-       pData->screen_h = screen_h;
-
-       evas_object_stack_below(dst, src);
-
-       evas_object_move(pData->src, 0, 0);
-
-//     ivug_slider_item_move(sd->slide[NEXT_SLIDE],  x + sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN , y);
-
-       return (Effect_Data)pData;
-}
-
-static void __ivug_slide_anim(Effect_Data data, double percent)
-{
-       Priv_Data *pData = (Priv_Data *)data;
-
-       int first = 0;
-       int last = -pData->screen_w -IMAGE_BETWEEN_MARGIN;
-
-       int value = (double)first * (1.0f - percent / 100.0f) + (double)last * (percent / 100.0f);
-
-       MSG_EFFECT_MED("Slide animation. Value=%d %f", value, percent);
-
-       Evas_Coord ox, oy, ow, oh;
-       evas_object_geometry_get(pData->src, &ox, &oy, &ow, &oh);
-
-       evas_object_move(pData->src, value, oy);
-       evas_object_move(pData->dst, value + ow + IMAGE_BETWEEN_MARGIN, oy);
-
-}
-
-static void __ivug_slide_pause(Effect_Data data)
-{
-
-}
-
-static void __ivug_slide_resume(Effect_Data data)
-{
-
-}
-
-static void __ivug_slide_finialize(Effect_Data data)
-{
-       Priv_Data *pData = (Priv_Data *)data;
-
-       free(pData);
-
-}
-
-static double __ivug_slide_get_duration(Effect_Data data)
-{
-       return 0.2f;
-}
-
-
-
-Effect_Engine *ivug_slide_add(void)
-{
-       Effect_Engine *eng_slide = calloc(1, sizeof(Effect_Engine));
-       ivug_retvm_if(eng_slide == NULL, NULL, "calloc failed");
-
-       eng_slide->func.init = __ivug_slide_init;
-       eng_slide->func.animate = __ivug_slide_anim;
-       eng_slide->func.pause = __ivug_slide_pause;
-       eng_slide->func.resume = __ivug_slide_resume;
-       eng_slide->func.finalize = __ivug_slide_finialize;
-       eng_slide->func.get_duration = __ivug_slide_get_duration;
-
-       return eng_slide;
-}
diff --git a/main/src/effect/template.c b/main/src/effect/template.c
deleted file mode 100755 (executable)
index 22868eb..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-effect.h"
-
-
-typedef struct {
-       Evas_Object *src;
-       Evas_Object *dst;
-
-       Evas_Object *object;
-       Evas_Object *orig_cliper;
-
-       Evas_Object *cliper;
-
-       int screen_w;
-       int screen_h;
-} effect_data;
-
-
-static Effect_Data __ivug_init(Evas_Object *src, Evas_Object *dst, int screen_w, int screen_h, int rotation)
-{
-       IVUG_FUNC_ENTER();
-
-       IVUG_FUNC_LEAVE();
-}
-
-static void __ivug_anim(Effect_Data data, double percent)
-{
-/*      IVUG_FUNC_ENTER(); */
-
-/*      IVUG_FUNC_LEAVE(); */
-}
-
-static void __ivug_pause(Effect_Data data)
-{
-       IVUG_FUNC_ENTER();
-
-       IVUG_FUNC_LEAVE();
-}
-
-static void __ivug_resume(Effect_Data data)
-{
-       IVUG_FUNC_ENTER();
-
-       IVUG_FUNC_LEAVE();
-}
-
-static void __ivug_spin_finialize(Effect_Data data)
-{
-       IVUG_FUNC_ENTER();
-
-       IVUG_FUNC_LEAVE();
-}
-
-Effect_Engine *ivug_xxx_add(void)
-{
-       Effect_Engine *eng_spin = calloc(1, sizeof(Effect_Engine));
-       ivug_retvm_if(eng_spin == NULL, NULL, "calloc failed");
-
-       eng_spin->func.init = &__ivug_init;
-       eng_spin->func.animate = &__ivug_anim;
-       eng_spin->func.pause = &__ivug_pause;
-       eng_spin->func.resume = &__ivug_resume;
-       eng_spin->func.finalize = &__ivug_finialize;
-
-       return eng_spin;
-}
index 44958fd..ab2377f 100755 (executable)
@@ -1,37 +1,98 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <Elementary.h>
 #include <ui-gadget-module.h>
+#include <app.h>
+
 #include <Ecore_X.h>           /*EFL*/
 
 #include "ivug-common.h"       //common
 #include "ivug-util.h"
-#include "ivug-main.h"
 #include "ivug-main-view.h"
 #include "ivug-setas-view.h"
+#include "ivug-crop-ug.h"
 #include "ivug-details-view.h"
-#include "ivug-slider.h"
+
+#include "ivug-callback.h"
+#include "ivug-context.h"
 
 #include "ug-image-viewer.h"
 
-#include "ivug-data.h"
 #include "ivug-parameter.h"
 
+static void _on_base_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Coord x,y,w,h;
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+
+       MSG_IMAGEVIEW_HIGH("Base layout resized geomtery XYWH(%d,%d,%d,%d) angle=%d", x, y, w, h, elm_win_rotation_get(ug_get_window()));
+}
+
+static void _on_base_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       Evas_Coord x,y,w,h;
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+
+       MSG_IMAGEVIEW_HIGH("Base layout moved geomtery XYWH(%d,%d,%d,%d) angle=%d", x, y, w, h, elm_win_rotation_get(ug_get_window()));
+}
+
+static void _on_receive_mouse_down (void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       MSG_MAIN_HIGH("Base layout clicked : %s Layer=%d",evas_object_name_get(obj), evas_object_layer_get(obj));
+}
+
+static void _print_render_method(Evas *e)
+{
+       IV_ASSERT(e != NULL );
+
+       Eina_List *engines, *l;
+       int cur_id;
+       int id;
+       char *name;
+
+       engines = evas_render_method_list ();
+       if (!engines) {
+               MSG_IMAGEVIEW_ERROR("No engine is specified");
+               return;
+       }
+
+       cur_id = evas_output_method_get (e);
+
+       EINA_LIST_FOREACH (engines, l, name) {
+               id = evas_render_method_lookup (name);
+               if (name && id == cur_id)
+               {
+                       MSG_IMAGEVIEW_HIGH("Render method is %s", name);
+                       break;
+               }
+       }
+
+}
+
+static void _on_render_post(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       MSG_IMAGEVIEW_HIGH("***************render_post***************");
+}
+
+static void _on_render_pre(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+       MSG_IMAGEVIEW_HIGH("***************render_pre***************");
+}
+
 static Evas_Object *create_fullview(Evas_Object *win, struct ug_data *ugd)
 {
        Evas_Object *base;
@@ -42,7 +103,7 @@ static Evas_Object *create_fullview(Evas_Object *win, struct ug_data *ugd)
        Eina_Bool ret;
 
        ret = elm_layout_file_set(base , EDJ_PATH"/ivug-base.edj", "ivug_base" );
-
+       evas_object_name_set(base, "Base layout");
        if ( ret == EINA_FALSE)
        {
                MSG_IMAGEVIEW_HIGH("Cannot set layout. EDJ=%s Group=%s", EDJ_PATH"/ivug-base.edj", "ivug_base");
@@ -65,16 +126,20 @@ static Evas_Object *create_frameview(Evas_Object *parent, struct ug_data *ugd)
 
        /* Create Frame view */
        base = elm_layout_add(parent);
+       evas_object_name_set(base, "Base layout frame");
        elm_layout_theme_set(base, "layout", "application", "default");
 
        return base;
 }
 
-static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
+
+static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv)
 {
        struct ug_data *ugd;
 
-       PERF_CHECK_BEGIN("On Create");
+       PERF_CHECK_END(LVL0, "UG_MODULE_INIT -> On Create");
+
+       PERF_CHECK_BEGIN(LVL0, "On Create");
 
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s ug=0x%08x", __func__, ug);
 
@@ -96,25 +161,27 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, vo
                return NULL;
        }
 
-       PERF_CHECK_BEGIN(LVL1 "main_init");
+       PERF_CHECK_BEGIN(LVL1, "init context");
        //init
-       if (!ivug_main_init(ug))
+       if (!ivug_context_init(ug))
        {
                MSG_IMAGEVIEW_ERROR("ivug_main_init error");
                return NULL;
        }
-       PERF_CHECK_END(LVL1 "main_init");
+       PERF_CHECK_END(LVL1, "init context");
 
-       PERF_CHECK_BEGIN(LVL1 "parse bundle");
+       PERF_CHECK_BEGIN(LVL1, "parse bundle");
 
-       ugd->ivug_param = ivug_param_create_from_bundle(data);
+       ugd->ivug_param = ivug_param_create_from_bundle(service);
        if (  ugd->ivug_param == NULL )
        {
                MSG_IMAGEVIEW_ERROR("Cannot parse parameter");
-               ivug_main_deinit(ug);
+               ivug_context_deinit(ug);
                return NULL;
        }
-       PERF_CHECK_END(LVL1 "parse bundle");
+       PERF_CHECK_END(LVL1, "parse bundle");
+
+       PERF_CHECK_BEGIN(LVL1, "creating base");
 
        //create base
        if (mode == UG_MODE_FULLVIEW)
@@ -127,6 +194,7 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, vo
                MSG_IMAGEVIEW_MED("create base layout for FrameView");
                ugd->base = create_frameview(ug_get_window(), ugd);
        }
+       PERF_CHECK_END(LVL1, "creating base");
 
        if ( ugd->base == NULL )
        {
@@ -134,14 +202,60 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, vo
                return NULL;
        }
 
+       MSG_IMAGEVIEW_HIGH("UG base created : 0x%08x", ugd->base);
+       evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOUSE_DOWN, _on_receive_mouse_down, NULL);
+
+       evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_RESIZE, _on_base_resize, NULL);
+       evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_MOVE, _on_base_move, NULL);
+
+       evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_RENDER_PRE, _on_render_pre, NULL);
+       evas_object_event_callback_add(ugd->base, EVAS_CALLBACK_RENDER_POST, _on_render_post, NULL);
+
        if(ugd->ivug_param->mode == IVUG_MODE_SETAS)
        {
                MSG_IMAGEVIEW_HIGH("UG types=%d", ugd->ivug_param->setas_type);
 
-               if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER)
+               ivug_setas_mode setas_mode = IVUG_SETAS_UG;
+               if(ugd->ivug_param->bStandalone == true)
+               {
+                       setas_mode = IVUG_SETAS_APPSVC;
+               }
+
+               if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_CALLER_ID)
+               {
+                       ugd->setas_view = ivug_setas_view_callerid_ug_create(ugd->base, ugd->ivug_param->filepath,
+                               setas_mode, ugd->ivug_param->width, ugd->ivug_param->height);
+               }
+               else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_VIDEO_CALL_ID)
+               {
+                       ugd->setas_view = ivug_setas_view_video_call_id_ug_create(ugd->base, ugd->ivug_param->filepath,
+                               setas_mode, ugd->ivug_param->width, ugd->ivug_param->height);
+               }
+               else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER)
                {
                        // From Wall paper in Setting
-                       ugd->setas_view = ivug_setas_view_screen_ug_create(ugd->base, ugd->ivug_param->filepath);
+                       if(setas_mode == IVUG_SETAS_APPSVC)
+                       {
+                               ugd->setas_view = ivug_setas_view_screen_ug_create(ugd->base, ugd->ivug_param->filepath,
+                                       setas_mode, IVUG_CTRLBAR_SET_SCREEN_HOME);
+                       }
+                       else
+                       {
+                               ugd->setas_view = ivug_setas_view_screen_ug_create(ugd->base, ugd->ivug_param->filepath,
+                                       setas_mode, IVUG_CTRLBAR_SET_SCREEN_UNDEFINED);
+                       }
+               }
+               else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_CROP)
+               {
+                       // Crop UG
+                       ugd->crop_ug = ivug_crop_ug_create(ugd->base,
+                               ugd->ivug_param->width, ugd->ivug_param->height,
+                               ugd->ivug_param->bRatioFix, ugd->ivug_param->filepath);
+               }
+               else if(ugd->ivug_param->setas_type == IVUG_SET_AS_UG_TYPE_WALLPAPER_ONLY)
+               {
+                       ugd->setas_view = ivug_setas_view_screen_ug_create(ugd->base, ugd->ivug_param->filepath,
+                                       setas_mode, IVUG_CTRLBAR_SET_SCREEN_HOME);
                }
                else
                {
@@ -149,19 +263,22 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, vo
                        return NULL;
                }
 
-               if(ugd->setas_view == NULL)
+               if(ugd->setas_view == NULL && ugd->crop_ug == NULL)
                {
                        MSG_IMAGEVIEW_ERROR("SetAS UG creation failed Type:%d", ugd->ivug_param->setas_type);
-                       ivug_main_deinit(ug);
-                       if (ugd->base)
-                       {
-                               evas_object_del(ugd->base);
-                               ugd->base = NULL;
-                       }
-                       return NULL;
+                       goto ON_CREATE_ERROR;
                }
 
-               Evas_Object *layout = ivug_setas_view_object_get(ugd->setas_view);
+               Evas_Object *layout = NULL;
+
+               if(ugd->setas_view)
+               {
+                       layout = ivug_setas_view_object_get(ugd->setas_view);
+               }
+               else if(ugd->crop_ug)
+               {
+                       layout = ivug_crop_ug_get_layout(ugd->crop_ug);
+               }
 
                elm_object_part_content_set(ugd->base, "elm.swallow.content", layout);  //swallow
                evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -170,59 +287,92 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, vo
        }
        else
        {
-               PERF_CHECK_BEGIN(LVL1 "main_view_create");
+               PERF_CHECK_BEGIN(LVL1, "main_view_create");
 
                ugd->main_view = ivug_main_view_create(ugd->base, ugd->ivug_param->mode, ugd->ivug_param->view_by);
 
+               PERF_CHECK_END(LVL1, "main_view_create");
+
                if (ugd->main_view == NULL)     //set main view.
                {
                        MSG_IMAGEVIEW_ERROR("Main View Layout Lading Fail");
-                       ivug_main_deinit(ug);
-                       if (ugd->base)
-                       {
-                               evas_object_del(ugd->base);
-                               ugd->base = NULL;
-                       }
-                       return NULL;
+                       goto ON_CREATE_ERROR;
                }
 
-               PERF_CHECK_END(LVL1 "main_view_create");
-
 // Load list.
+               PERF_CHECK_BEGIN(LVL1, "main_view_load_list");
+
                if ( ivug_main_view_load_list(ugd->main_view, ugd->ivug_param) == false)
                {
                        MSG_IMAGEVIEW_ERROR("Cannot load media list.");
                        // Need popup?
-                       ivug_main_deinit(ug);
-                       if (ugd->base)
-                       {
-                               evas_object_del(ugd->base);
-                               ugd->base = NULL;
-                       }
-                       return NULL;
-
+                       goto ON_CREATE_ERROR;
                }
 
                Evas_Object *layout = ivug_main_view_object_get(ugd->main_view);
 
                elm_object_part_content_set(ugd->base, "elm.swallow.content", layout);  //swallow
+
                evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
 
                evas_object_show(layout);
-
+               PERF_CHECK_END(LVL1, "main_view_load_list");
        }
 
-       PERF_CHECK_END("On Create");
+
+       PERF_CHECK_BEGIN(LVL1, "Force render");
+
+       evas_render(evas_object_evas_get(ugd->base));
+
+       PERF_CHECK_END(LVL1, "Force render");
+
+       PERF_CHECK_END(LVL0, "On Create");
+
+       PERF_CHECK_BEGIN(LVL0, "On Create -> On Start");
 
        return ugd->base;
+
+ON_CREATE_ERROR:
+       if(ugd->main_view)
+       {
+               ivug_main_view_destroy(ugd->main_view);
+       }
+       ivug_context_deinit(ug);
+       if (ugd->base)
+       {
+               evas_object_del(ugd->base);
+               ugd->base = NULL;
+       }
+       return NULL;
 }
 
-static void on_start(struct ui_gadget *ug, bundle *data, void *priv)
+static void on_start(ui_gadget_h ug, service_h service, void *priv)
 {
+       PERF_CHECK_END(LVL0, "On Create -> On Start");
+
+       PERF_CHECK_BEGIN(LVL0, "On Start");
+
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s", __func__);
+
+       if (!ug || !priv)
+       {
+               MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv);
+               return ;
+       }
+
+       struct ug_data *ugd = (struct ug_data *)priv;
+
+       if ( ugd->main_view )
+       {
+               PERF_CHECK_BEGIN(LVL1, "main_view_start");
+               ivug_main_view_start(ugd->main_view);
+               PERF_CHECK_END(LVL1, "main_view_start");
+       }
+
+       PERF_CHECK_END(LVL0, "On Start");
 }
 
-static void on_pause(struct ui_gadget *ug, bundle *data, void *priv)
+static void on_pause(ui_gadget_h ug, service_h service, void *priv)
 {
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s", __func__);
 
@@ -236,12 +386,12 @@ static void on_pause(struct ui_gadget *ug, bundle *data, void *priv)
 
        if ( ugd->main_view )
        {
-               ivug_slider_stop_slide_show(ugd->main_view->slider);
+               ivug_main_view_pause(ugd->main_view);
        }
 
 }
 
-static void on_resume(struct ui_gadget *ug, bundle *data, void *priv)
+static void on_resume(ui_gadget_h ug, service_h service, void *priv)
 {
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s", __func__);
 
@@ -255,18 +405,16 @@ static void on_resume(struct ui_gadget *ug, bundle *data, void *priv)
 
        if ( ugd->main_view )
        {
-               ivug_main_view_update(ugd->main_view);
-
-//             ivug_slider_resume_slide_show(ugd->main_view->slider);
+               ivug_main_view_resume(ugd->main_view);
        }
 
 }
 
-static void on_destroy(struct ui_gadget *ug, bundle *data, void *priv)
+static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
 {
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug);
 
-       PERF_CHECK_BEGIN("On Destroy");
+       PERF_CHECK_BEGIN(LVL0, "On Destroy");
 
        if (!ug || !priv)
        {
@@ -277,17 +425,28 @@ static void on_destroy(struct ui_gadget *ug, bundle *data, void *priv)
        struct ug_data *ugd = (struct ug_data *)priv;
 
        MSG_IMAGEVIEW_HIGH("On Destroy : ug=0x%08x", ug);
-       //destroy main view.
-       if ( ugd->main_view )
-       {
-               ivug_main_view_destroy(ugd->main_view);
-               ugd->main_view = NULL;
-       }
 
        if(ugd->setas_view)
        {
+               PERF_CHECK_BEGIN(LVL1, "SetAsView");
                ivug_setas_view_destroy(ugd->setas_view);
                ugd->setas_view = NULL;
+               PERF_CHECK_END(LVL1, "SetAsView");
+       }
+
+       if(ugd->crop_ug)
+       {
+               ivug_crop_ug_destroy(ugd->crop_ug);
+               ugd->crop_ug = NULL;
+       }
+
+       //destroy main view.
+       if ( ugd->main_view )
+       {
+               PERF_CHECK_BEGIN(LVL1, "MainView");
+               ivug_main_view_destroy(ugd->main_view);
+               ugd->main_view = NULL;
+               PERF_CHECK_END(LVL1, "MainView");
        }
 
        //delete param.
@@ -298,30 +457,66 @@ static void on_destroy(struct ui_gadget *ug, bundle *data, void *priv)
        }
 
        //finalize data
-       if ( !ivug_main_deinit(ug))
+       PERF_CHECK_BEGIN(LVL1, "Context");
+       if ( !ivug_context_deinit(ug))
        {
                MSG_IMAGEVIEW_ERROR("ivug_main_deinit failed");
        }
+       PERF_CHECK_END(LVL1, "Context");
 
        if (ugd->base)
        {
+               PERF_CHECK_BEGIN(LVL1, "Base layout");
                evas_object_del(ugd->base);
                ugd->base = NULL;
+               PERF_CHECK_END(LVL1, "Base layout");
        }
 
        MSG_IMAGEVIEW_HIGH("Destroyed all ug");
 
-       PERF_CHECK_END("On Destroy");
-
+       PERF_CHECK_END(LVL0, "On Destroy");
 }
 
+static bool _data_print(service_h service, const char *key, void *user_data)
+{
+       MSG_IVUG_HIGH("  %s", key);
+
+       return true;
+}
 
-static void on_message(struct ui_gadget *ug, bundle *msg, bundle *data, void *priv)
+static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv)
 {
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug);        //on message
+
+       if (!ug || !priv)
+       {
+               MSG_IMAGEVIEW_ERROR("Invalid UG. UG=0x%08x Priv=0x%08x", ug, priv);
+               return;
+       }
+
+       int ret = service_foreach_extra_data(service, _data_print, NULL);
+
+       if(SERVICE_ERROR_NONE != ret)
+       {
+               MSG_IVUG_ERROR("service_foreach_extra_data ERROR");
+       }
+
+       struct ug_data *ugd = (struct ug_data *)priv;
+
+       //ivug_msg_type msg_type = IVUG_MSG_NONE;
+
+       if(ugd->main_view == NULL)
+       {
+               MSG_IMAGEVIEW_ERROR("main view is NULL");
+               return;
+       }
+
+       ivug_callback_call(gGetCallbackHandle(), service, NULL, NULL);
+
+       return;
 }
 
-static void on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, void *priv)
+static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv)
 {
        if (!ug || !priv)
        {
@@ -330,8 +525,6 @@ static void on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, vo
        }
        MSG_IMAGEVIEW_HIGH("Image Viewer : %s UG=0x%08x", __func__, ug);        //on message
 
-       //struct ug_data *ugd = (struct ug_data *)priv;
-
        switch (event) {
        case UG_EVENT_LOW_MEMORY:
                MSG_IMAGEVIEW_HIGH("Get Event : Low Memory");
@@ -342,6 +535,14 @@ static void on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, vo
        case UG_EVENT_LANG_CHANGE:
                MSG_IMAGEVIEW_HIGH("Get Event : Language changed");
                break;
+
+       case UG_EVENT_ROTATE_PORTRAIT:
+       case UG_EVENT_ROTATE_LANDSCAPE:
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
+               // Rotate event is not used now.. plz, use only resized callback.
+               break;
+
        default:
                MSG_IMAGEVIEW_ERROR("Unknown event type : %d", event);
                break;
@@ -352,7 +553,7 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
 {
        struct ug_data *ugd;
 
-       MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT");
+       MSG_IMAGEVIEW_HIGH("UG_MODULE_INIT. Ver=12.0");
 
        if (!ops)
        {
@@ -367,7 +568,7 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
                return -1;
        }
 
-       PERF_INIT();
+       IV_PERF_INIT();
 
        ops->create = on_create;
        ops->start = on_start;
@@ -379,6 +580,8 @@ UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
        ops->priv = ugd;
        ops->opt = UG_OPT_INDICATOR_ENABLE;
 
+       PERF_CHECK_BEGIN(LVL0, "UG_MODULE_INIT -> On Create");
+
        return 0;
 }
 
@@ -400,9 +603,21 @@ UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
 
        MSG_IMAGEVIEW_HIGH("UG_MODULE_EXIT");
 
-       PERF_SHOW_RESULT(stdout);
+#ifdef TA_SAVETO_FILE
+       FILE *fp = NULL;
+
+       fp = fopen(DATADIR"/"PACKAGE"/TimeAnal", "a");
+
+       IV_ASSERT(fp != NULL);
+
+       PERF_SHOW_RESULT(fp);
+
+       fclose(fp);
+#else
+       PERF_SHOW_RESULT(stderr);
+#endif
 
-       PERF_DEINIT();
+       IV_PERF_DEINIT();
 
 }
 
index 412a53b..4c21b7c 100755 (executable)
@@ -1,25 +1,23 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #ifndef __UG_IMAGE_VIEWER_H__
 #define __UG_IMAGE_VIEWER_H__
 
 #include <Elementary.h>
-#include <libintl.h>
 
 #include "ivug-common.h"
 
@@ -30,11 +28,11 @@ typedef struct ug_data {
 // View Data;
        Ivug_MainView *main_view;
        Ivug_SetAsView *setas_view;
+       IvugCropUG *crop_ug;
 
        ivug_parameter* ivug_param;
 
        bool bUseBlackTheme;            // TODO : SetAs view from setting does not use black theme
-
 } _AppData;
 
 #ifdef __cplusplus
@@ -48,3 +46,4 @@ extern "C" {
 #endif
 
 #endif /* __UG_IMAGE_VIEWER_H__ */
+
diff --git a/main/src/util/ivug-file-info.c b/main/src/util/ivug-file-info.c
deleted file mode 100755 (executable)
index 6419761..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-
-#include <libexif/exif-data.h> //for exif
-#include <mm_file.h>
-#include <mmf/mm.h>
-#include <mmf/mm_file.h>
-#include <aul.h>
-
-#include "ivug-file-info.h"
-
-bool _get_video_gps_info(const char *filepath, double *latitude, double *longitude)
-{
-       IV_ASSERT(filepath != NULL);
-       IV_ASSERT(latitude != NULL);
-       IV_ASSERT(longitude != NULL);
-
-       MMHandleType tag = (MMHandleType) NULL;
-       int err = -1;
-       char *err_msg = NULL;
-       double gps_value = 0.0;
-
-       *latitude = 0.0;
-       *longitude = 0.0;
-
-       err = mm_file_create_tag_attrs(&tag, filepath);
-       if (!tag)
-       {
-               MSG_UTIL_ERROR("mm_file_create_tag_attrs ERROR %s", filepath);
-               return false;
-       }
-
-       err = mm_file_get_attrs(tag, &err_msg, MM_FILE_TAG_LATIDUE, &gps_value, NULL);
-       if (err == 0)
-       {
-               MSG_UTIL_HIGH("latitude: %f", gps_value);
-               if (gps_value != 0.0)
-               {
-                       *latitude = gps_value;
-               }
-       }
-       else if (err_msg)
-       {
-               MSG_UTIL_ERROR("mm_file_get_attrs fails : %s", err_msg);
-               free(err_msg);
-               err_msg = NULL;
-               mm_file_destroy_tag_attrs(tag);
-
-               return false;
-       }
-
-       err = mm_file_get_attrs(tag, &err_msg, MM_FILE_TAG_LONGITUDE, &gps_value, NULL);
-       if (err == 0)
-       {
-               MSG_UTIL_HIGH("longitude: %f", gps_value);
-               if (gps_value != 0.0)
-               {
-                       *longitude = gps_value;
-               }
-       }
-       else if (err_msg)
-       {
-               MSG_UTIL_ERROR("mm_file_get_attrs fails : %s", err_msg);
-               free(err_msg);
-               err_msg = NULL;
-               mm_file_destroy_tag_attrs(tag);
-               return false;
-       }
-
-       mm_file_destroy_tag_attrs(tag);
-       return true;
-}
-
-bool _get_image_gps_info(const char* filepath, double *latitude, double *longitude)
-{
-       IV_ASSERT(filepath != NULL);
-       IV_ASSERT(latitude != NULL);
-       IV_ASSERT(longitude != NULL);
-
-#define BUF_LEN (255)
-
-       ExifData *ed = NULL;
-       ExifEntry *entry = NULL;
-       ExifIfd ifd;
-       ExifTag tag;
-       char buf[BUF_LEN+1] = {'\0',};
-
-       /** get exifdata*/
-       ed = exif_data_new_from_file(filepath);
-       if (!ed)
-       {
-               return false;
-       }
-
-       ifd = EXIF_IFD_GPS;
-       tag = EXIF_TAG_GPS_LATITUDE;
-
-       /** get exifentry*/
-       entry = exif_data_get_entry(ed, tag);
-
-       if (!entry)
-       {
-               return false;
-       }
-
-       /** get value of the entry*/
-       if(exif_entry_get_value(entry, buf, BUF_LEN) == NULL)
-       {
-               exif_data_unref(ed);
-               return false;
-       }
-
-       {
-               buf[strlen(buf)] = '\0';
-               double tmp_arr[3] = { 0.0, 0.0, 0.0 };
-               int count = 0;
-               char* p = strtok(buf, ", ");
-               /** split the buf by , */
-               while(p != NULL)
-               {
-                       tmp_arr[count] = atof(p);
-                       count++;
-                       p=strtok(NULL, ", ");
-               }
-
-               if( count != 3 )
-               {
-                       MSG_UTIL_ERROR("Cannot get latitude info : %s", p);
-                       exif_data_unref(ed);
-                       return false;
-               }
-               *latitude = tmp_arr[0] + tmp_arr[1]/60 + tmp_arr[2]/3600;
-       }
-
-       tag = EXIF_TAG_GPS_LONGITUDE;
-
-       entry = exif_data_get_entry(ed, tag);
-
-       /** get value of the entry*/
-       if(exif_entry_get_value(entry, buf, BUF_LEN) == NULL)
-       {
-               exif_data_unref(ed);
-               return false;
-       }
-
-       {
-               buf[strlen(buf)] = '\0';
-               double tmp_arr[3] = { 0.0, 0.0, 0.0 };
-               int count = 0;
-               char* p = strtok(buf, ", ");
-               /** split the buf by , */
-               while(p != NULL)
-               {
-                       tmp_arr[count] = atof(p);
-                       count++;
-                       p=strtok(NULL, ", ");
-               }
-
-               if( count != 3 )
-               {
-                       MSG_UTIL_ERROR("Cannot get Longitude info : %s", p);
-                       exif_data_unref(ed);
-                       return false;
-               }
-
-               *longitude = tmp_arr[0] + tmp_arr[1]/60 + tmp_arr[2]/3600;
-       }
-
-       exif_data_unref(ed);
-
-       return true;
-}
-
-
-
-static bool _get_image_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight)
-{
-       IV_ASSERT(path != NULL);
-
-       int width = 0;
-       int height = 0;
-
-       Evas *canvas;
-       Ecore_Evas *ee;
-
-       ee = ecore_evas_buffer_new(1, 1);
-       if (!ee)
-       {
-               MSG_DETAIL_ERROR("Cannot get EVAS");
-               return false;
-       }
-
-       canvas = ecore_evas_get(ee);
-
-       Evas_Object *img = evas_object_image_add(canvas);
-
-       evas_object_image_file_set(img, NULL, NULL);
-       evas_object_image_load_orientation_set(img, EINA_TRUE);
-       evas_object_image_load_scale_down_set(img, 0);
-
-       evas_object_image_file_set(img, path, NULL);    // TODO : Error check
-       evas_object_image_size_get(img, &width, &height);
-
-       evas_object_image_file_set(img, NULL, NULL);
-       evas_object_del(img);
-
-       ecore_evas_free(ee);
-
-       *pWidth = width;
-       *pHeight = height;
-
-       MSG_DETAIL_HIGH("widht & height is [%d, %d]",  width, height);
-
-       return true;
-}
-
-
-static bool
-_get_video_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight)
-{
-       IV_ASSERT(path != NULL);
-
-       int w = 0;
-       int h = 0;
-       int error_code = MM_ERROR_NONE;
-
-       MMHandleType content = 0;
-       char *err_attr_name = NULL;
-
-       error_code = mm_file_create_content_attrs(&content, path);
-
-       if ( error_code != MM_ERROR_NONE )
-       {
-               MSG_UTIL_ERROR("mm_file_create_content_attrs() failed : ret=0x%08x", error_code);
-               return false;
-       }
-
-       error_code = MM_ERROR_NONE;
-       error_code = mm_file_get_attrs(content, &err_attr_name,
-                                       MM_FILE_CONTENT_VIDEO_WIDTH, &w,
-                                       MM_FILE_CONTENT_VIDEO_HEIGHT, &h,
-                                       NULL
-                               );
-
-       if (error_code != MM_ERROR_NONE)
-       {
-               MSG_DETAIL_ERROR("mm_file_get_attrs() failed : ret=0x%08x", error_code);
-               MSG_DETAIL_ERROR("Error attribute name : %s", err_attr_name);
-               free(err_attr_name);
-
-               error_code = mm_file_destroy_content_attrs(content);
-               if (error_code != 0)
-               {
-                       MSG_DETAIL_ERROR("mm_file_destroy_content_attrs() failed : ret=0x%08x", error_code);
-               }
-
-               return false;
-       }
-
-       *pWidth = w;
-       *pHeight = h;
-
-       error_code = mm_file_destroy_content_attrs(content);
-       if (error_code != 0)
-       {
-               MSG_DETAIL_ERROR("mm_file_destroy_content_attrs() failed : ret=0x%08x", error_code);
-       }
-
-       return true;
-}
-
-bool ivug_fileinfo_get_image_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get image resolution. path is NULL");
-               return false;
-       }
-
-       if(ivug_is_file_exist(path) == false)
-       {
-               MSG_UTIL_ERROR("%s : %s is not exist", __func__, path);
-               return false;
-       }
-
-       return _get_image_resolution(path, pWidth, pHeight);
-}
-
-
-bool ivug_fileinfo_get_video_resolution(const char *path, int * /* OUT */ pWidth, int * /* OUT */pHeight)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get video resolution. path is NULL");
-               return false;
-       }
-
-       if(ivug_is_file_exist(path) == false)
-       {
-               MSG_UTIL_ERROR("%s : %s is not exist", __func__, path);
-               return false;
-       }
-
-       return _get_video_resolution(path, pWidth, pHeight);
-}
-
-bool ivug_fileinfo_get_video_gps_info(const char *path, double *latitude, double *longitude)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get video gps location. path is NULL");
-               return false;
-       }
-
-       if(ivug_is_file_exist(path) == false)
-       {
-               MSG_UTIL_ERROR("%s : %s is not exist", __func__, path);
-               return false;
-       }
-
-       return _get_video_gps_info(path, latitude, longitude);
-}
-
-
-bool ivug_fileinfo_get_image_gps_info(const char* path, double *latitude, double *longitude)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get image gps location. path is NULL");
-               return false;
-       }
-
-       if(ivug_is_file_exist(path) == false)
-       {
-               MSG_UTIL_ERROR("%s : %s is not exist", __func__, path);
-               return false;
-       }
-
-       return _get_image_gps_info(path, latitude, longitude);
-}
-
-
-char *ivug_fileinfo_get_file_extension(const char *path)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get file extension. path is NULL");
-               return NULL;
-       }
-
-       char *ext = NULL;
-
-       ext = strrchr(path, '.');
-
-       if ( (ext != NULL) && ((ext+1) != NULL) )
-       {
-               return strdup(ext + 1);
-       }
-
-       return NULL;
-
-}
-
-char *ivug_fileinfo_get_mime_type(const char *path)
-{
-       if ( path == NULL )
-       {
-               MSG_UTIL_ERROR("Cannot get mine type. path is NULL");
-               return NULL;
-       }
-
-       //check mine type.
-       char *mime_type = NULL;
-
-       efreet_mime_init();
-       const char *type = NULL;
-       type = efreet_mime_type_get(ecore_file_file_get(path));
-       if ( type != NULL )
-       {
-               mime_type = strdup(type);
-       }
-       efreet_mime_shutdown();
-
-       return mime_type;
-}
-
-
diff --git a/main/src/util/ivug-file-info.h b/main/src/util/ivug-file-info.h
deleted file mode 100755 (executable)
index ac8a3fa..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_FILE_INFO_H__
-#define __IVUG_FILE_INFO_H__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-       ivug_fileinfo_*() returns false when error. otherwise return true and fill proper value in [out] param
-*/
-bool ivug_fileinfo_get_image_gps_info(const char* filepath, double * /* OUT */ latitude, double * /* OUT */ longitude);
-bool ivug_fileinfo_get_video_gps_info(const char *filepath, double * /* OUT */ latitude, double * /* OUT */ longitude);
-
-bool ivug_fileinfo_get_video_resolution(const char *filepath, int * /* OUT */ pWidth, int * /* OUT */pHeight);
-bool ivug_fileinfo_get_image_resolution(const char *filepath, int * /* OUT */ pWidth, int * /* OUT */pHeight);
-
-
-/*
-       return file extension string.
-
-       CAUTION : user should free returned string.
-*/
-char *ivug_fileinfo_get_file_extension(const char *filepath);
-
-
-/*
-       return mine type from file.
-
-       CAUTION : user should free returned string.
-*/
-char *ivug_fileinfo_get_mime_type(const char *path);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif                 // __IVUG_FILE_INFO_H__
-
diff --git a/main/src/util/ivug-listpopup.c b/main/src/util/ivug-listpopup.c
deleted file mode 100755 (executable)
index 6ea395f..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-listpopup.h"
-
-
-#define POPUP_RESPONSE_NOT_SELECTED (-99)
-
-
-typedef struct {
-       Evas_Object *popup;
-
-       Evas_Smart_Cb response;
-       void* user_data;
-
-} Selectpopup;
-
-
-static char *
-_on_label_set(void *data, Evas_Object *obj, const char *part)
-{
-       IV_ASSERT( data != NULL);
-
-       ivug_listpopup_item *item = (ivug_listpopup_item *)data;
-
-       return strdup(item->caption); //dump
-}
-
-
-static void
-_on_genlist_selected(void *data, Evas_Object *obj, void *event_info)
-{
-       Selectpopup *pData = data;
-       Evas_Object *genlist = obj;
-       Elm_Object_Item *genitem = (Elm_Object_Item *)event_info;
-
-       IV_ASSERT( genlist != NULL);
-
-       if (genitem == NULL)
-       {
-               MSG_MAIN_ERROR("genlist item is NULL");
-               return;
-       }
-
-       ivug_listpopup_item *item = (ivug_listpopup_item *)elm_object_item_data_get(genitem);
-
-// Call response
-       pData->response(pData->user_data, pData->popup, item);
-
-}
-
-
-static ivug_listpopup_item *_dup_item(ivug_listpopup_item *item)
-{
-       ivug_listpopup_item *newitem = NULL;
-
-       newitem = calloc(1, sizeof(ivug_listpopup_item));
-
-       newitem->index = item->index;
-
-       if ( item->iconpath )
-               newitem->iconpath = strdup(item->iconpath);
-
-       if ( item->caption )
-               newitem->caption = strdup(item->caption);               // Should be freed
-
-       newitem->data = item->data;
-
-       return newitem;
-}
-
-
-static void _on_genlist_item_del(void *data, Evas_Object *obj)
-{
-       IV_ASSERT( data != NULL);
-
-       ivug_listpopup_item *item = data;
-
-       MSG_IMAGEVIEW_HIGH("Remove genlist item");
-
-       if ( item->caption )
-               free(item->caption);
-
-       if ( item->iconpath )
-               free(item->iconpath);
-
-       free(item);
-}
-
-
-static void
-_on_popup_close(void *data, Evas_Object *obj, void *event_info)
-{
-       Selectpopup *pData = data;
-
-       pData->response(pData->user_data, pData->popup, NULL);          // Call user callback
-}
-
-static void _on_popup_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info)
-{
-       MSG_IMAGEVIEW_HIGH("Remove popup");
-
-       Selectpopup *pData = data;
-
-       free(pData);
-}
-
-
-
-typedef struct {
-       Eina_List *list;
-} _ivug_listpopup_itemlist;
-
-
-ivug_listpopup_itemlist ivug_listpopup_itemlist_new()
-{
-       _ivug_listpopup_itemlist *pList = malloc(sizeof(_ivug_listpopup_itemlist));
-       IV_ASSERT(pList != NULL);
-
-       pList->list = NULL;
-
-       return (ivug_listpopup_itemlist)pList;
-}
-
-unsigned int ivug_listpopup_itemlist_get_count(ivug_listpopup_itemlist items)
-{
-       _ivug_listpopup_itemlist *pList = items;
-       IV_ASSERT(pList != NULL);
-
-       return eina_list_count(pList->list);
-}
-
-ivug_listpopup_item *ivug_listpopup_itemlist_add(ivug_listpopup_itemlist items, int index, const char *iconpath, const char *caption, void *data, bool bDisabled)
-{
-       _ivug_listpopup_itemlist *pList = items;
-       IV_ASSERT(pList != NULL);
-
-       ivug_listpopup_item *item = NULL;
-
-       {
-               item = calloc(1, sizeof(ivug_listpopup_item));
-
-               item->index = index;
-
-               if ( iconpath )
-                       item->iconpath = strdup(iconpath);
-
-               if ( caption )
-                       item->caption = strdup(caption);                // Should be freed
-
-               item->data = data;
-               item->bDisabled = bDisabled;
-       }
-
-       pList->list = eina_list_append(pList->list, item);
-
-       return item;
-
-
-}
-
-void ivug_listpopup_itemlist_free(ivug_listpopup_itemlist items)
-{
-       _ivug_listpopup_itemlist *pList = items;
-       IV_ASSERT(pList != NULL);
-
-       ivug_listpopup_item *item = NULL;
-
-       EINA_LIST_FREE(pList->list, item )
-       {
-               if ( item->caption )
-                       free(item->caption);
-
-               if ( item->iconpath )
-                       free(item->iconpath);
-
-               free(item);
-       }
-
-       free(pList);
-}
-
-
-Evas_Object *ivug_listpopup_show(Evas_Object *parent, const char* title, ivug_listpopup_itemlist items, Evas_Smart_Cb response, void* user_data)
-{
-       Evas_Object *popup;
-
-// create popup
-       popup = elm_popup_add(parent);
-       if (!popup)
-       {
-               MSG_IMAGEVIEW_ERROR("Error : popup create failed.");
-               return NULL;
-       }
-
-       elm_object_style_set(popup, "menustyle");
-       elm_object_part_text_set(popup, "title,text", title);
-
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-       Evas_Object *btn_close = elm_button_add(popup);
-       elm_object_text_set(btn_close, IDS_CLOSE);
-       elm_object_part_content_set(popup, "button1", btn_close);
-
-// create genlist
-       Evas_Object *genlist;
-       static Elm_Genlist_Item_Class itc = {0,};
-
-       genlist = elm_genlist_add(popup);
-
-       itc.version = ELM_GENLIST_ITEM_CLASS_VERSION;
-       itc.item_style = "1text";
-       itc.func.text_get = _on_label_set;
-       itc.func.content_get = NULL;
-       itc.func.state_get = NULL;
-       itc.func.del = _on_genlist_item_del;
-
-       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-       Selectpopup *pData = malloc(sizeof(Selectpopup));
-
-       pData->popup = popup;
-       pData->response = response;
-       pData->user_data = user_data;
-
-       _ivug_listpopup_itemlist *pList = items;
-
-       ivug_listpopup_item *pItem = NULL;
-       Eina_List *tmp;
-       Elm_Object_Item *gItem;
-
-
-       EINA_LIST_FOREACH(pList->list, tmp, pItem)
-       {
-               gItem = elm_genlist_item_append(genlist, &itc, _dup_item(pItem), NULL /* parent */, ELM_GENLIST_ITEM_NONE, _on_genlist_selected, pData);
-
-               elm_object_item_disabled_set(gItem, pItem->bDisabled);
-       }
-
-// Put together
-       Evas_Object *box;
-       box = elm_box_add(popup);
-       evas_object_show(genlist);
-       elm_box_pack_end(box, genlist);
-       elm_object_content_set(popup, box);
-
-       evas_object_smart_callback_add(btn_close, "clicked", _on_popup_close, pData);
-
-       evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, _on_popup_deleted, pData);
-
-       evas_object_show(popup);
-
-       return popup;
-
-}
-
-
diff --git a/main/src/util/ivug-listpopup.h b/main/src/util/ivug-listpopup.h
deleted file mode 100755 (executable)
index 11715eb..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_LISTPOPUP_H__
-#define __IVUG_LISTPOPUP_H__
-
-typedef struct {
-       int index;
-
-       char *iconpath;
-       char *caption;
-       void *data;
-
-       bool bDisabled;                 // Item is disabled when true.
-} ivug_listpopup_item;
-
-typedef void *ivug_listpopup_itemlist;
-
-/*
-       Helper functions for ivug_listpopup_item
-*/
-ivug_listpopup_itemlist ivug_listpopup_itemlist_new();
-
-ivug_listpopup_item *ivug_listpopup_itemlist_add(ivug_listpopup_itemlist items, int index, const char *iconpath, const char *caption, void *data, bool bDisabled);
-
-void ivug_listpopup_itemlist_free(ivug_listpopup_itemlist items);
-
-
-
-/*
-       Create & Show popup including genlist.
-
-       example
-
-       void _on_selected(void *data, Evas_Object *obj, void *event_info)
-       {
-               Evas_Object *popup = genlist;
-               ivug_listpopup_item *item = event_info;
-               int nIndex = event_info;
-
-               if ( nIndex == 1 )
-                       printf("1 is selected");
-
-               evas_object_del(popup);         // Show destroy popup explicitly
-               mypopup = NULL;
-       }
-
-       ...
-       {
-               ivug_listpopup_itemlist items = ivug_listpopup_itemlist_new();
-
-               ivug_listpopup_itemlist_add(items, 0, NULL, "Select me 1", NULL, false);
-               ivug_listpopup_itemlist_add(items, 1, NULL, "Select me 1", NULL, false);
-               ivug_listpopup_itemlist_add(items, 2, "/data/myicon.png", "Select me 1", NULL, false);
-
-               mypopup = ivug_selectpopup_show(parent, "example",  items, v, myData);
-
-               eina_list_free(items);
-       }
-
-
-*/
-Evas_Object *ivug_listpopup_show(Evas_Object *parent, const char* title, ivug_listpopup_itemlist items , Evas_Smart_Cb response, void* user_data);
-
-
-#endif         // __IVUG_LISTPOPUP_H__
-
diff --git a/main/src/util/ivug-util.c b/main/src/util/ivug-util.c
deleted file mode 100755 (executable)
index 496f027..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <aul.h>
-
-#include <vconf.h>
-#include <vconf-keys.h>
-#include <pmapi.h>
-
-#include <media-svc.h>
-#include <visual-svc.h>
-
-/*
-       If filepath is web url, return TRUE.
-
-*/
-bool ivug_is_web_uri(const char* uri)
-{
-//check file url type. local , http, ftp.
-       IV_ASSERT(uri != NULL);
-
-       static const char* web_protocal_name[] =
-       {
-               "http://",
-               "ftp://",
-               NULL,
-       };
-
-       int i = 0;
-       while (web_protocal_name[i] != NULL)
-       {
-               if ( strlen(uri) > strlen(web_protocal_name[i]) )
-               {
-                       if (strncmp(uri, web_protocal_name[i], strlen(web_protocal_name[i])) == 0)
-                       {
-                               return true;
-                       }
-               }
-
-               i++;
-       }
-
-       MSG_UTIL_MED("Not web uri. %s", uri);
-
-       return false;
-}
-
-
-unsigned int get_distance(int prevX, int prevY, int X, int Y)
-{
-#include <math.h>
-       int dx = prevX - X;
-       int dy = prevY - Y;
-
-       return sqrt(dx*dx + dy*dy);
-}
-
-
-
-#define USE_ECORE_FILE
-
-#include <Ecore_File.h>
-
-/*
-       Remove fname file.
-       Returns true fname is not exist or removed sucessfully
-*/
-bool ivug_remove_file(const char *filepath)
-{
-       char error_msg[256];
-       if (ecore_file_exists(filepath) == EINA_FALSE)
-       {
-               MSG_UTIL_ERROR("Already removed.%s", filepath);
-               return true;
-       }
-
-#ifdef USE_ECORE_FILE
-       if ( ecore_file_unlink(filepath) == EINA_FALSE)
-       {
-               MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg)) );
-               return false;
-       }
-
-       return true;
-#else
-       if ( unlink(filepath) != 0 )
-       {
-               MSG_UTIL_ERROR("Cannot remove file : %s %s", filepath, strerror_r(errno, error_msg, sizeof(error_msg)) );
-               return false;
-       }
-
-       return true;
-#endif
-}
-
-bool ivug_rename_file(const char *src, const char *dst)
-{
-       if (ecore_file_exists(src) == EINA_FALSE)
-       {
-               MSG_UTIL_ERROR("Source file is not exist : %s", src);
-               return false;
-       }
-
-       if (dst == NULL)
-       {
-               MSG_UTIL_ERROR("Destination file is NULL");
-               return false;
-       }
-
-
-       char error_msg[256];
-
-       if ( rename(src, dst) < 0)
-       {
-               MSG_UTIL_ERROR("Cannot rename from %s to %s : %s", src, dst, strerror_r(errno, error_msg, sizeof(error_msg)) );
-               return false;
-       }
-
-       return true;
-}
-
-char *
-ivug_mktemp(char* filepath, char*ext)
-{
-       ivug_retv_if(!filepath || !ext, NULL);
-
-       MSG_IVUG_HIGH("filepath %s, ext %s", filepath, ext);
-
-       char tempname[IVUG_MAX_FILE_PATH_LEN+1] = {0};
-       snprintf(tempname, sizeof(tempname), "%s_0.%s",filepath, ext);
-       int i = 1;
-
-// TODO : Will implement with another algorithm
-       while(ecore_file_exists(tempname) == EINA_TRUE )
-       {
-               snprintf(tempname, sizeof(tempname),"%s_%d.%s", filepath, i, ext);
-               i++;
-       }
-
-       MSG_IVUG_HIGH( " tempname %s, i %d", tempname, i);
-
-       return strdup(tempname);
-}
-
-
-/*
-       Check whether given filepath file exists
-
-       CAUTION : filepath cannot be NULL.
-*/
-bool ivug_is_file_exist(const char* filepath)
-{
-       IV_ASSERT(filepath != NULL);
-
-       if ( ecore_file_exists(filepath) == EINA_TRUE)
-       {
-               return true;
-       }
-
-       return false;
-}
-
-
-/*
-       Returns start pointer of filename within filepath.
-       No memory allocated in this function. so user do not free returned pointer.
-
-       CAUTION : filepath cannot be NULL.
-*/
-const char * ivug_get_filename(const char *filepath)
-{
-       if ( filepath == NULL )
-       {
-               MSG_UTIL_WARN("File path is NULL");
-               return "NULL";
-       }
-
-#define DIRECORY_SPLITTER '/'
-       const char*pFileName = NULL;
-
-       pFileName  =  strrchr(filepath, DIRECORY_SPLITTER);
-       pFileName = (NULL == pFileName)? "": (pFileName+1);
-
-       return pFileName;
-}
-
-
-/*
-
-       Media service utility
-
-*/
-
-#include <media-svc.h>
-
-UUID ivug_get_album_id_from_filepath(const char *filepath)
-{
-       int ret = 0;
-       Mitem* item = NULL;
-
-       MediaSvcHandle *dbhandle = NULL;
-
-       int err = media_svc_connect(&dbhandle);
-       if (err != MB_SVC_ERROR_NONE)
-       {
-               MSG_UTIL_ERROR("DB open error. %d", err);
-               return NULL;
-       }
-
-       ret = minfo_get_item(dbhandle, filepath, &item); //get cluster id
-       if (ret != MB_SVC_ERROR_NONE)
-       {
-               MSG_UTIL_ERROR("Cannot find file in media db for %s", filepath);
-               return NULL;            // Invalid id
-       }
-
-       UUID cluster_uuid = INVALID_UUID;
-
-       cluster_uuid = uuid_assign(item->cluster_uuid);
-
-       minfo_destroy_mtype_item(item);
-
-       err = media_svc_disconnect(dbhandle);
-       if (err != MB_SVC_ERROR_NONE)
-       {
-               MSG_SDATA_ERROR("media service finalize error=%d", err);
-       }
-
-       return cluster_uuid;
-
-}
-
-int ivug_prohibit_lcd_off(void)
-{
-       MSG_UTIL_MED("START : Sleep disabled");
-       return pm_lock_state(LCD_NORMAL, GOTO_STATE_NOW, 0);
-}
-
-int ivug_allow_lcd_off(void)
-{
-       MSG_UTIL_MED("END : Sleep disabled");
-       return pm_unlock_state(LCD_NORMAL, PM_KEEP_TIMER);
-}
-
-#define MIME_TYPE_LEN                  (255)
-#define MIME_TYPE_3GPP                 "video/3gpp"
-#define PATH_CAMERA_LOCAL              "/opt/media/Camera shots"
-#define PATH_CAMERA_SDCARD             "/opt/storage/sdcard/Camera shots/"
-
-/* Video editor can start when video exist in camera folder and 3gp file format */
-
-bool ivug_is_editable_video_file(char *filepath)
-{
-       MSG_UTIL_MED("path = %s", filepath);
-       if(strncmp(filepath, PATH_CAMERA_LOCAL, strlen(PATH_CAMERA_LOCAL)) == 0
-               || strncmp(filepath, PATH_CAMERA_SDCARD, strlen(PATH_CAMERA_SDCARD)) == 0)
-       {
-               char mime_type[MIME_TYPE_LEN] = {0,};
-               aul_get_mime_from_file(filepath, mime_type, sizeof(mime_type));
-               MSG_UTIL_MED("mime type = %s", mime_type);
-               if(strcmp(mime_type, MIME_TYPE_3GPP) == 0)
-               {
-                       return true;
-               }
-       }
-       return false;
-}
-
diff --git a/main/src/util/ivug-util.h b/main/src/util/ivug-util.h
deleted file mode 100755 (executable)
index 0c07169..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_UTIL_H__
-#define __IVUG_UTIL_H__
-
-#include <stdbool.h>
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-
-*/
-bool ivug_is_web_uri(const char* uri);
-
-bool ivug_remove_file(const char *filepath);
-
-bool ivug_is_file_exist(const char* filepath);
-
-bool ivug_rename_file(const char *src, const char *dst);
-
-inline const char *ivug_get_filename(const char *filepath);
-
-inline unsigned int get_distance(int prevX, int prevY, int X, int Y);
-
-/*
-       Generate temporary file name with given path and extension.
-       returned value should free() by user.
-*/
-char *ivug_mktemp(char* filepath, char*ext);
-
-
-/*
-       Media service wrapper utility
-*/
-
-UUID ivug_get_album_id_from_filepath(const char *filepath);
-
-
-/*
-       LCD sleep control.
-*/
-int ivug_prohibit_lcd_off(void);
-int ivug_allow_lcd_off(void);
-
-
-/*
-       Get mime type from file path.
-       should free returned after use.
-*/
-
-bool ivug_is_editable_video_file(char *filepath);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-#endif //__IVUG_UTIL_H__
-
diff --git a/main/src/util/ivug-widget.c b/main/src/util/ivug-widget.c
deleted file mode 100755 (executable)
index fd43992..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-widget.h"
-#include <ui-gadget-module.h>
-
-#include <Elementary.h>
-
-static void _on_obj_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info)
-{
-       char *szMsg = (char *)data;
-       IV_ASSERT(szMsg != NULL);
-
-       MSG_MAIN_HIGH("On Object deleted. %s", szMsg);
-
-       free(szMsg);
-}
-
-void ivug_on_obj_deleted(Evas_Object* obj, char *msg, const char *func, int line)
-{
-       static char buf[1024];
-
-       sprintf(buf, "%s(L%d):%s", func, line, msg);
-
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _on_obj_deleted, strdup(buf));
-}
-
-Evas_Object* ivug_bg_add(Evas_Object* parent, int r, int g, int b)
-{
-    IV_ASSERT(parent != NULL);
-
-       Evas_Object *bg = elm_bg_add(parent);
-       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-//     elm_win_resize_object_add(parent, bg);
-
-       elm_bg_color_set(bg, r,  g, b);
-
-       evas_object_show(bg);
-
-       return bg;
-}
-
-Evas_Object *
-ivug_layout_add(Evas_Object *win, const char *edj, const char *group)
-{
-       IV_ASSERT(win != NULL);
-
-       Evas_Object *layout;
-
-       layout = elm_layout_add(win);
-
-       if ( layout == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create layout");
-               return NULL;
-       }
-
-       if (elm_layout_file_set(layout, edj, group) == EINA_FALSE)
-       {
-               MSG_SETAS_ERROR("edj loading fail, filepath=%s Group=%s", edj, group);
-               evas_object_del(layout);
-               return NULL;
-       }
-
-       evas_object_size_hint_expand_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-#ifdef USE_WIN_AS_PARENT
-       elm_win_resize_object_add( ug_get_window(), layout);
-#else
-       Evas_Coord x, y, w, h;
-       evas_object_geometry_get(win, &x, &y, &w, &h);
-
-       evas_object_move(layout, x, y);
-       evas_object_resize(layout, w, h);
-#endif
-
-       evas_object_show(layout);
-       return layout;
-}
-
-Evas_Object*
-ivug_default_layout_add( Evas_Object *win)
-{
-       IV_ASSERT(win != NULL);
-
-       Evas_Object *layout;
-       layout = elm_layout_add(win);
-
-       if ( layout == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create layout");
-               return NULL;
-       }
-
-       if ( elm_layout_theme_set( layout, "layout", "application", "default") == EINA_FALSE)
-       {
-               MSG_SETAS_ERROR("theme set fail, layout/application/defaulty");
-               evas_object_del(layout);
-               return NULL;
-       }
-
-       evas_object_size_hint_expand_set( layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_fill_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL );
-
-#ifdef USE_WIN_AS_PARENT
-       elm_win_resize_object_add( ug_get_window(), layout);
-#else
-       Evas_Coord x, y, w, h;
-       evas_object_geometry_get(parent, &x, &y, &w, &h);
-
-       evas_object_move(layout, x, y);
-       evas_object_resize(layout, w, h);
-#endif
-
-       evas_object_show(layout);
-       return layout;
-}
-
-
-Evas_Object *ivug_button_add(Evas_Object *parent, char *style, char *caption, Evas_Object *icon, OnClickCB pFunc, const void *  data )
-{
-       IV_ASSERT(parent != NULL);
-
-       Evas_Object *btn;
-
-       btn = elm_button_add(parent);
-       if ( btn == NULL )
-       {
-               return NULL;
-       }
-
-       if ( style )
-               elm_object_style_set(btn, style);
-
-       if ( caption )
-               elm_object_text_set(btn, caption);
-
-       if ( icon )
-               elm_object_part_content_set(btn, "icon", icon);
-
-       elm_object_focus_allow_set(btn, EINA_FALSE);
-       evas_object_propagate_events_set(btn, EINA_FALSE);
-
-       evas_object_smart_callback_add(btn, "clicked", pFunc, (void*)data);
-
-       return btn;
-}
-
-Evas_Object *ivug_icon_add(Evas_Object *parent, char *edjname, char *groupname)
-{
-       Evas_Object *icon;
-
-       icon = elm_icon_add(parent);
-
-       if ( elm_icon_file_set(icon, edjname, groupname) == EINA_FALSE)
-       {
-               MSG_IVUG_ERROR("Cannot file set. EDJ=%s Group=%s", edjname, groupname);
-               evas_object_del(icon);
-               return NULL;
-       }
-
-       evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-       elm_icon_resizable_set(icon, EINA_TRUE, EINA_TRUE);
-       evas_object_size_hint_expand_set(icon, 1, 1);
-
-       return icon;
-}
-
-Evas_Object *ivug_controlbar_add(Evas_Object *parent, const char *style)
-{
-       Evas_Object *toolbar = elm_toolbar_add(parent);
-       if (!toolbar)
-       {
-               MSG_MAIN_ERROR("create tool bar failed");
-               return NULL;
-       }
-       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
-       elm_object_style_set(toolbar, style);
-
-       return toolbar;
-}
-
-
-
-void
-ivug_object_del(Evas_Object *obj)
-{
-       evas_object_del(obj);
-}
-
-
diff --git a/main/src/util/ivug-widget.h b/main/src/util/ivug-widget.h
deleted file mode 100755 (executable)
index 151ee1e..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_WIDGET_H__
-#define __IVUG_WIDGET_H__
-
-
-typedef void(*OnClickCB)(void *data, Evas_Object *obj, void *event_info);
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-       Internal use only... use macro DELETE_LOG instead
-*/
-void ivug_on_obj_deleted(Evas_Object* obj, char *msg, const char *func, int line);
-
-
-#define DELETE_NOTIFY(obj)     \
-       ivug_on_obj_deleted(obj, #obj, __func__, __LINE__)
-
-/*
-       Create elm_bg with color - r,g,b
-*/
-Evas_Object *
-ivug_bg_add(Evas_Object* parent, int r, int g, int b);
-
-Evas_Object *
-ivug_layout_add(Evas_Object *win, const char *edjname, const char *groupname);
-
-Evas_Object*
-ivug_default_layout_add( Evas_Object *win);
-
-Evas_Object *
-ivug_button_add(Evas_Object *parent, char *style, char *caption, Evas_Object *icon, OnClickCB pFunc, const void *data );
-
-Evas_Object *
-ivug_icon_add(Evas_Object *parent, char *edjname, char *groupname);
-
-Evas_Object *
-ivug_controlbar_add(Evas_Object *parent, const char *style);
-
-void
-ivug_object_del(Evas_Object *obj);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_WIDGET_H__
-
diff --git a/main/src/view/ivug-detail-info.c b/main/src/view/ivug-detail-info.c
deleted file mode 100755 (executable)
index 77061e3..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-detail-info.h"
-
-#include <vconf.h>
-#include <vconf-keys.h>
-
-#include <appcore-efl.h>
-#include <appcore-common.h>
-
-#include <unicode/udat.h>
-#include <unicode/ustring.h>
-#include <unicode/uloc.h>
-#include <unicode/ucal.h>
-#include <unicode/udatpg.h>
-#include <unicode/utmscale.h>
-
-#include "ivug-details-view.h"
-#include <libexif/exif-data.h>
-
-#include "ivug-file-info.h"
-
-
-#define NOMAL_BUF              128
-
-#define DETAILS_DIR_PATH_LEN_MAX       4096
-
-enum IVUG_SIZE_TYPE
-{
-       SIZE_BYTE = 0,
-       SIZE_KB,
-       SIZE_MB,
-       SIZE_GB
-};
-
-/*
-       Shuld free returned value after use
-*/
-static char*
-_get_icu_time_string(const char *locale, const char *customSkeleton, const char *timezone, UDate date)
-{
-#define UG_ICU_ARR_LENGTH                      256
-
-       IV_ASSERT(customSkeleton != NULL);
-       IV_ASSERT(timezone != NULL);
-
-       /*
-               Copy a byte string encoded in the default codepage to a ustring.
-               Copies at most n characters. The result will be null terminated if the length of src is less than n. Performs a host byte to UChar conversion
-       */
-       UChar ucustomSkeleton[UG_ICU_ARR_LENGTH] = {0,};
-
-       if(u_uastrncpy(ucustomSkeleton, customSkeleton, UG_ICU_ARR_LENGTH) == NULL)
-       {
-               MSG_UTIL_ERROR("u_uastrncpy() error.");
-               return NULL;
-       }
-
-       UChar utimezone[UG_ICU_ARR_LENGTH] = {0,};
-
-       if ( u_uastrncpy(utimezone, timezone, UG_ICU_ARR_LENGTH) == NULL )
-       {
-               MSG_UTIL_ERROR("u_uastrncpy() error.");
-               return NULL;
-       }
-
-       UErrorCode status = U_ZERO_ERROR;
-       UDateTimePatternGenerator *generator;
-       UDateFormat     *formatter;
-
-       UChar bestPattern[UG_ICU_ARR_LENGTH] = {0,};
-       UChar formatted[UG_ICU_ARR_LENGTH] = {0,};
-       char formattedString[UG_ICU_ARR_LENGTH] = {0,};
-       int32_t bestPatternLength, formattedLength;
-
-       ucal_setDefaultTimeZone(utimezone , &status);
-
-       if (U_FAILURE(status))
-       {
-               MSG_UTIL_ERROR("ucal_setDefaultTimeZone() is failed");
-               return NULL;
-       }
-
-       uloc_setDefault(getenv("LC_TIME"), &status);
-
-       if (U_FAILURE(status))
-       {
-               MSG_UTIL_ERROR("ucal_setDefaultTimeZone() is failed");
-               return NULL;
-       }
-
-       generator = udatpg_open(locale, &status);
-       if(generator == NULL)
-       {
-               return NULL;
-       }
-
-       bestPatternLength = udatpg_getBestPattern(generator, ucustomSkeleton, u_strlen(ucustomSkeleton), bestPattern, UG_ICU_ARR_LENGTH, &status);
-       if(bestPatternLength <= 0)
-       {
-               return NULL;
-       }
-
-       formatter = udat_open(UDAT_IGNORE, UDAT_IGNORE, locale, NULL, -1, bestPattern, -1, &status);
-       if(formatter == 0)
-       {
-               return NULL;
-       }
-
-       formattedLength = udat_format(formatter, date, formatted, UG_ICU_ARR_LENGTH, NULL, &status);
-       if(formattedLength <= 0)
-       {
-               return NULL;
-       }
-
-       u_austrcpy(formattedString, formatted);
-       udatpg_close(generator);
-       udat_close(formatter);
-
-       if(strlen(formattedString) == 0)
-       {
-               return NULL;
-       }
-
-       return strdup(formattedString);
-}
-
-
-static char*
-_get_icu_date(time_t mtime)
-{
-#define UG_DATE_FORMAT_12                      "yMMMdhms"
-#define UG_DATE_FORMAT_24                      "yMMMdHms"
-
-       char* skeleton = NULL;
-
-       enum appcore_time_format timeformat;
-
-       int ret = appcore_get_timeformat(&timeformat);
-       if(ret == -1)
-       {
-               MSG_DETAIL_ERROR("Cannot get timeformat.");
-               timeformat = APPCORE_TIME_FORMAT_12;            // Default value.
-// Go through
-       }
-
-       if(timeformat == APPCORE_TIME_FORMAT_12)
-       {
-               skeleton = UG_DATE_FORMAT_12;
-       }
-       else if(timeformat == APPCORE_TIME_FORMAT_24)
-       {
-               skeleton = UG_DATE_FORMAT_24;
-       }
-       else
-       {
-               MSG_DETAIL_ERROR("Invalid time format : %d", timeformat);
-               skeleton = UG_DATE_FORMAT_12;           // Default value.
-       }
-
-       char *locale = vconf_get_str(VCONFKEY_REGIONFORMAT);            /* eg. en_US.UTF-8*/
-       if(locale == NULL)
-       {
-               MSG_DETAIL_ERROR("Cannot get region format.");
-               locale = "en_US.UTF-8";         // Default value.
-       }
-
-       char *timezone = NULL;
-
-       timezone = vconf_get_str(VCONFKEY_SETAPPL_TIMEZONE_ID); // eg Asia/Seoul
-       if(timezone == NULL)
-       {
-// TODO : How to get default time zone????
-               MSG_DETAIL_ERROR("Cannot get time zone");
-               return NULL;
-       }
-
-       MSG_DETAIL_HIGH("Locale:%s TimeZone:%s TimeFormat:%s", locale, skeleton, timezone);
-
-       char* datestr = NULL;
-
-       datestr = _get_icu_time_string(locale, skeleton, timezone, (UDate)mtime * 1000);
-
-       if(datestr == NULL)
-       {
-               MSG_DETAIL_ERROR("Cannot get time string");
-               return NULL;
-       }
-
-       MSG_DETAIL_HIGH("ICU Date : %s", datestr);
-       return datestr;
-
-}
-
-
-
-
-static char *
-_get_filesize_string(size_t size)
-{
-#define FILE_SIZE_LEN_MAX                      64
-#define BASIC_SIZE                     1024    //used for file size check
-
-       int count = 0;
-
-       unsigned long int lsize = (unsigned long int)size;
-
-       char *tmp = (char *)calloc(1, sizeof(char)*FILE_SIZE_LEN_MAX + 1);
-       if ( tmp == NULL)
-       {
-               return NULL;
-       }
-
-       while(size >= ( BASIC_SIZE ) )
-       {
-               lsize = size;
-               size /= BASIC_SIZE;
-               count++;
-       }
-
-       float remain = ((float)lsize/BASIC_SIZE) - size;
-
-       if(count == SIZE_BYTE)
-       {
-               snprintf(tmp,FILE_SIZE_LEN_MAX,"%zu B", size);
-       }
-       else if(count == SIZE_KB)
-       {
-               snprintf(tmp,FILE_SIZE_LEN_MAX,"%zu KB", size);
-       }
-       else if(count == SIZE_MB)
-       {
-               // need another algorithm
-               snprintf(tmp,FILE_SIZE_LEN_MAX,"%.1f MB", size+remain);
-       }
-       else if(count == SIZE_GB)
-       {
-               snprintf(tmp,FILE_SIZE_LEN_MAX,"%.1f GB", size+remain);
-       }
-
-       MSG_DETAIL_HIGH("Size = %lu, OrigSize=%zu", lsize, size);
-       return tmp;
-}
-
-void
-ivug_details_info_set_file_information(ivug_file_info_t * const pFileInfo, const char *path)
-{
-       ivug_ret_if( NULL == pFileInfo );
-       ivug_ret_if( NULL == path );
-
-/*** get file path*/
-       pFileInfo->filepath = strdup(path);
-
-       struct stat statbuf;
-
-       if(stat(path,&statbuf) == -1)
-       {
-               MSG_DETAIL_ERROR("Cannot get stat()");
-               return ;
-       }
-
-       pFileInfo->size = statbuf.st_size;
-       pFileInfo->date = statbuf.st_mtime;
-
-       pFileInfo->create_date = _get_icu_date(pFileInfo->date);
-
-       if ( pFileInfo->create_date == NULL )
-       {
-               pFileInfo->create_date = strdup(IDS_N_A);
-       }
-
-       pFileInfo->file_ext = ivug_fileinfo_get_file_extension(path);
-
-       if ( pFileInfo->file_ext == NULL )
-       {
-               pFileInfo->file_ext = strdup(IDS_UNKNOWN);
-       }
-
-       pFileInfo->filesize = _get_filesize_string(pFileInfo->size);
-
-       MSG_DETAIL_HIGH("Basic Info : ext=%s size=%s", pFileInfo->file_ext, pFileInfo->filesize);
-
-       return ;
-
-}
-
-
-void
-ivug_details_info_set_gps_info(ivug_file_info_t * const pFileInfo, const char *path)
-{
-#define UG_EXIF_ARR_LENGTH                     255
-
-       ivug_retm_if(!pFileInfo, "data is NULL");
-       ivug_retm_if(!path, "path is NULL");
-
-       pFileInfo->longitude = calloc(1, sizeof(char)*UG_EXIF_ARR_LENGTH);
-       if(pFileInfo->longitude == NULL)
-       {
-               return;
-       }
-
-       pFileInfo->latitude = calloc(1, sizeof(char)*UG_EXIF_ARR_LENGTH);
-       if(pFileInfo->latitude == NULL)
-       {
-               return;
-       }
-
-
-       double longtitude = 0.0;
-       double latitude = 0.0;
-
-       bool bret = false;
-
-       if(pFileInfo->file_type == IVUG_DETAIL_IMAGE_TYPE)              // this will be removed!!!!
-       {
-               bret = ivug_fileinfo_get_image_gps_info(path, &latitude, &longtitude);
-       }
-       else if(pFileInfo->file_type == IVUG_DETAIL_VIDEO_TYPE)
-       {
-               bret = ivug_fileinfo_get_video_gps_info(path, &latitude, &longtitude);
-       }
-
-       if ( bret == false)
-       {
-               latitude = 0;
-               longtitude = 0;
-       }
-
-       if(latitude != 0.0)
-       {
-               snprintf(pFileInfo->latitude, UG_EXIF_ARR_LENGTH, "%.5f", latitude);
-       }
-       else
-       {
-               snprintf(pFileInfo->latitude, UG_EXIF_ARR_LENGTH, "%s", IDS_UNKNOWN);
-       }
-       if(longtitude != 0.0)
-       {
-               snprintf(pFileInfo->longitude, UG_EXIF_ARR_LENGTH, "%.5f", longtitude);
-       }
-       else
-       {
-               snprintf(pFileInfo->longitude, UG_EXIF_ARR_LENGTH, "%s", IDS_UNKNOWN);
-       }
-}
-
-void
-ivug_details_info_set_resolution(ivug_file_info_t * const pFileInfo, const char *path, int stype)
-{
-       ivug_retm_if(!pFileInfo, "data is NULL");
-       ivug_retm_if(!path, "path is NULL");
-
-       MSG_DETAIL_HIGH("slide type is %d", stype);
-
-       pFileInfo->resolution = (char *)malloc(sizeof(char)*NOMAL_BUF+1);
-       if(pFileInfo->resolution == NULL)
-       {
-               return ;
-       }
-       memset(pFileInfo->resolution,0,(sizeof(char)* NOMAL_BUF + 1));
-
-
-       int width, height;
-
-       switch(stype)
-       {
-               case SLIDE_TYPE_IMAGE:
-                       pFileInfo->file_type = IVUG_DETAIL_IMAGE_TYPE;
-
-                       if ( ivug_fileinfo_get_image_resolution(path, &width, &height) == false)
-                       {
-                               snprintf(pFileInfo->resolution, NOMAL_BUF, "%s", IDS_N_A);
-                       }
-                       else
-                       {
-                               snprintf(pFileInfo->resolution, NOMAL_BUF,"%dX%d", width, height);
-                       }
-
-                       break;
-
-               /*      Video type */
-               case SLIDE_TYPE_VIDEO:
-                       pFileInfo->file_type = IVUG_DETAIL_VIDEO_TYPE;
-
-                       if ( ivug_fileinfo_get_video_resolution(path, &width, &height) == false)
-                       {
-                               snprintf(pFileInfo->resolution, NOMAL_BUF, "%s", IDS_N_A);
-                       }
-                       else
-                       {
-                               snprintf(pFileInfo->resolution, NOMAL_BUF,"%dX%d", width, height);
-                       }
-
-                       break;
-
-               default:
-                       break;
-
-       }
-
-}
-
-void
-ivug_details_info_set_location(ivug_file_info_t * const pFileInfo, const char *path)
-{
-       ivug_retm_if(!pFileInfo, "data is NULL");
-       ivug_retm_if(!path, "path is NULL");
-
-       pFileInfo->file_location = strdup(path);
-}
-
-void
-ivug_details_info_set_filename(ivug_file_info_t * const pFileInfo, const char *path)
-{
-       ivug_retm_if(!pFileInfo, "data is NULL");
-       ivug_retm_if(!path, "path is NULL");
-
-       /** get file name */
-       pFileInfo->filename = ecore_file_strip_ext(ecore_file_file_get(path));
-}
-
-
diff --git a/main/src/view/ivug-detail-info.h b/main/src/view/ivug-detail-info.h
deleted file mode 100755 (executable)
index 6b7b9cb..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_DETAIL_COMMON_H__
-#define __IVUG_DETAIL_COMMON_H__
-
-#include <unicode/udat.h>
-
-#include "ivug-common.h"
-
-typedef enum {
-       IVUG_DETAIL_ERROR_TYPE = -1,
-       IVUG_DETAIL_IMAGE_TYPE,
-       IVUG_DETAIL_VIDEO_TYPE
-} ivug_detail_file_t;
-
-typedef struct {
-/** Common info*/
-       time_t          date;           // Seconds since 1970-1-1
-       size_t          size;
-
-       ivug_detail_file_t file_type;
-
-       char *filesize;
-       char *filepath;
-       char *filename;
-       char *file_ext;
-       char *file_location;
-       char *contains;
-       char *create_date;
-
-
-/**resolution */
-    char *resolution;
-
-/**Gps info */
-       char *latitude;
-       char *longitude;
-
-}ivug_file_info_t;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// TODO : Remove dependacy ivug-detail-view and ivug-detail-info.
-
-void ivug_details_info_set_file_information(ivug_file_info_t * const pFileInfo, const char *path);
-
-void ivug_details_info_set_gps_info(ivug_file_info_t * const pFileInfo, const char *path);
-
-void ivug_details_info_set_resolution(ivug_file_info_t * const pFileInfo, const char *path, int stype);
-
-void ivug_details_info_set_location(ivug_file_info_t * const pFileInfo, const char *path);
-
-void ivug_details_info_set_filename(ivug_file_info_t * const pFileInfo, const char *path);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif // __IVUG_DETAIL_COMMON_H__
-
index e66df21..77fefdb 100755 (executable)
@@ -1,34 +1,32 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <ui-gadget-module.h>
 
 #include "ivug-common.h"
-#include "ivug-main.h"
 #include "ivug-main-view.h"
 #include "ivug-string.h"
+#include "ivug-file-info.h"
 
 #include "ivug-details-view.h"
 #include "ivug-detail-info.h"
 
-#include "ivug-widget.h"
+#include "ivug-drm.h"
 
 #define DETAILS_EDJ_FILE EDJ_PATH"/ivug-details.edj"
-#define TRANSITION_EFFECT
 
 #define FILE_DETILES_NUM                               6
 #define FILE_EXIF_INFO_NUM                             2
@@ -99,6 +97,26 @@ static void _ivug_details_free_file_info(ivug_file_info_t * const pFileInfo)
                free(pFileInfo->longitude);
                pFileInfo->longitude = NULL;
        }
+
+       if(pFileInfo->vendor)
+       {
+               free(pFileInfo->vendor);
+               pFileInfo->vendor = NULL;
+       }
+
+       if(pFileInfo->forwarding)
+       {
+               free(pFileInfo->forwarding);
+               pFileInfo->forwarding = NULL;
+       }
+
+       if(pFileInfo->type)
+       {
+               free(pFileInfo->type);
+               pFileInfo->type = NULL;
+
+       }
+
 }
 
 static char *
@@ -160,6 +178,26 @@ _ivug_details_gl_label_get(void *data, Evas_Object *obj, const char *part )
                {
                        text2 = pDetailsView->file_Info.longitude;
                }
+               else if(strncmp(IDS_VENDOR, params->m_ItemName, strlen(IDS_VENDOR)) == 0)
+               {
+                       text2 = pDetailsView->file_Info.vendor;
+               }
+               else if(strncmp(IDS_FORWARDING, params->m_ItemName, strlen(IDS_FORWARDING)) == 0)
+               {
+                       text2 = pDetailsView->file_Info.forwarding;
+               }
+               else if(strncmp(IDS_AVAILABLE_USES, params->m_ItemName, strlen(IDS_AVAILABLE_USES)) == 0)
+               {
+                       text2 = pDetailsView->file_Info.available_uses;
+               }
+               else if(strncmp(IDS_TYPE, params->m_ItemName, strlen(IDS_TYPE)) == 0)
+               {
+                       text2 = pDetailsView->file_Info.type;
+               }
+               else if(strncmp(IDS_VALIDITY, params->m_ItemName, strlen(IDS_VALIDITY)) == 0)
+               {
+                       text2 = pDetailsView->file_Info.validity;
+               }
 
                if (text2) {
                        return elm_entry_utf8_to_markup(text2);
@@ -205,6 +243,82 @@ _ivug_details_gl_label_get_title(void *data, Evas_Object *obj,const char *part )
        return NULL;
 }
 
+static void _on_rename_view_response(ivug_name_response resp, const char *str, void *pClientData)
+{
+       Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)pClientData;
+
+       pDetailsView->pAddTagView = NULL;       // Will removed in add tag view.
+
+       if(resp != NAME_VIEW_RESPONSE_OK)
+       {
+               MSG_DETAIL_HIGH("rename is canceled");
+               return;
+       }
+
+       Media_Data *mdata = pDetailsView->mdata;
+       const char *old_fullpath = mdata->filepath;
+       char *old_dir = ecore_file_dir_get(old_fullpath);
+       char *ext = ivug_fileinfo_get_file_extension(old_fullpath);
+
+       char new_fullpath[IVUG_MAX_FILE_PATH_LEN] = {0,};
+       snprintf(new_fullpath, sizeof(new_fullpath),"%s/%s.%s", old_dir, str, ext);
+
+       if(ivug_rename_file(old_fullpath, new_fullpath) == false)
+       {
+               MSG_DETAIL_ERROR("ivug_rename_file failed");
+       }
+       else
+       {
+               MSG_DETAIL_HIGH("Rename %s -> %s", old_fullpath, new_fullpath);
+               free(mdata->filepath);
+               mdata->filepath = strdup(new_fullpath);
+
+               ivug_details_info_set_filename(&pDetailsView->file_Info, new_fullpath);
+
+               elm_genlist_realized_items_update(pDetailsView->genlist);
+
+               const char *name = ecore_file_file_get(mdata->filepath);
+
+               evas_object_smart_callback_call(pDetailsView->layout, "renamed", (void *)name);
+       }
+}
+
+static void _rename_button_clicked_cb(void *data, Evas_Object * obj, void *event_info)
+{
+       Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)data;
+       Media_Data *mdata = pDetailsView->mdata;
+
+       MSG_DETAIL_HIGH("clicked event on Button");
+
+       pDetailsView->pAddTagView = ivug_name_view_create(pDetailsView->layout, IDS_CHANGE_NAME);
+
+       const char *name = ecore_file_strip_ext(ecore_file_file_get(mdata->filepath));
+
+       ivug_name_view_set_entry(pDetailsView->pAddTagView, name);
+
+       ivug_name_view_set_response_callback(pDetailsView->pAddTagView, _on_rename_view_response, (void*)pDetailsView);
+}
+
+static Evas_Object *_ivug_details_gl_icon_get_title(void *data, Evas_Object *obj, const char *part)
+{
+       ivug_file_list_item *params = (ivug_file_list_item *)data;
+
+       ivug_retvm_if(params == NULL, NULL, "params is NULL");
+
+       Ivug_DetailsView *pDetailsView = (Ivug_DetailsView *)params->pDetailsView;
+       ivug_retvm_if(pDetailsView == NULL, NULL, "pDetailsView is NULL");
+
+       Evas_Object *btn;
+
+       if (!strcmp(part, "elm.icon") || !strcmp(part, "elm.icon.1")) {
+               btn = elm_button_add(pDetailsView->layout);
+               elm_object_style_set(btn, "rename");
+               evas_object_smart_callback_add(btn, "clicked", _rename_button_clicked_cb, (void *)pDetailsView);
+       }
+
+       return btn;
+}
+
 static Eina_Bool
 _ivug_details_gl_state_get(void *data, Evas_Object *obj, const char *part )
 {
@@ -222,31 +336,46 @@ _ivug_details_view_genlist_create(Ivug_DetailsView *pDetailsView, Evas_Object *p
        ivug_retvm_if(NULL == genlist, NULL, "Create Details genlist failed..");
 
        elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
-       elm_genlist_select_mode_set(genlist, ELM_OBJECT_SELECT_MODE_NONE);
 
        elm_object_theme_set(genlist, gGetSystemTheme());
 
-       pDetailsView->file_Status.itc.item_style = "ivug/2text.2";
-       //pDetailsView->file_Status.itc.item_style = "2text.2";
-       pDetailsView->file_Status.itc.func.text_get = _ivug_details_gl_label_get;
-       pDetailsView->file_Status.itc.func.content_get = NULL;
-       pDetailsView->file_Status.itc.func.state_get = _ivug_details_gl_state_get;
-       pDetailsView->file_Status.itc.func.del = _ivug_details_gl_del;
+       memset(&pDetailsView->itc, 0, sizeof(Elm_Genlist_Item_Class) );
+
+       pDetailsView->itc.version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pDetailsView->itc.item_style = "ivug/2text.2";
+       pDetailsView->itc.func.text_get = _ivug_details_gl_label_get;
+       pDetailsView->itc.func.content_get = NULL;
+       pDetailsView->itc.func.state_get = _ivug_details_gl_state_get;
+       pDetailsView->itc.func.del = _ivug_details_gl_del;
+
+       memset(&pDetailsView->title_itc, 0, sizeof(Elm_Genlist_Item_Class) );
 
        // Set item class for dialogue group title
-       pDetailsView->file_Status.title_itc.item_style = "ivug/grouptitle";
-       //pDetailsView->file_Status.title_itc.item_style = "grouptitle";
-       pDetailsView->file_Status.title_itc.func.text_get = _ivug_details_gl_label_get_title;
-       pDetailsView->file_Status.title_itc.func.content_get = NULL;
-       pDetailsView->file_Status.title_itc.func.state_get = NULL;
-       pDetailsView->file_Status.title_itc.func.del = NULL;
-
-       pDetailsView->file_Status.multiline_itc.item_style = "ivug/multiline.2text";
-       //pDetailsView->file_Status.multiline_itc.item_style = "multiline.2text";
-       pDetailsView->file_Status.multiline_itc.func.text_get = _ivug_details_gl_label_get;
-       pDetailsView->file_Status.multiline_itc.func.content_get = NULL;
-       pDetailsView->file_Status.multiline_itc.func.state_get = NULL;
-       pDetailsView->file_Status.multiline_itc.func.del = _ivug_details_gl_del;
+       pDetailsView->title_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pDetailsView->title_itc.item_style = "ivug/grouptitle";
+       pDetailsView->title_itc.func.text_get = _ivug_details_gl_label_get_title;
+       pDetailsView->title_itc.func.content_get = NULL;
+       pDetailsView->title_itc.func.state_get = NULL;
+       pDetailsView->title_itc.func.del = NULL;
+
+       memset(&pDetailsView->multiline_icon_itc, 0, sizeof(Elm_Genlist_Item_Class) );
+
+       // Set item class for dialogue group title with icon
+       pDetailsView->multiline_icon_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pDetailsView->multiline_icon_itc.item_style = "ivug/multiline/2text.1icon";
+       pDetailsView->multiline_icon_itc.func.text_get = _ivug_details_gl_label_get;
+       pDetailsView->multiline_icon_itc.func.content_get = _ivug_details_gl_icon_get_title;
+       pDetailsView->multiline_icon_itc.func.state_get = NULL;
+       pDetailsView->multiline_icon_itc.func.del = NULL;
+
+       memset(&pDetailsView->multiline_itc, 0, sizeof(Elm_Genlist_Item_Class) );
+
+       pDetailsView->multiline_itc.version = ELM_GENLIST_ITEM_CLASS_VERSION;
+       pDetailsView->multiline_itc.item_style = "ivug/multiline/2text";
+       pDetailsView->multiline_itc.func.text_get = _ivug_details_gl_label_get;
+       pDetailsView->multiline_itc.func.content_get = NULL;
+       pDetailsView->multiline_itc.func.state_get = NULL;
+       pDetailsView->multiline_itc.func.del = _ivug_details_gl_del;
 
        return genlist;
 }
@@ -277,8 +406,7 @@ _ivug_detail_genlist_view_gps_create(Ivug_DetailsView *pDetailsView )
 
                m_TempItem->m_ItemName = strdup(m_ItemName[index]);
                m_TempItem->pDetailsView = pDetailsView;
-               it = elm_genlist_item_append(genlist, &pDetailsView->file_Status.multiline_itc, m_TempItem, NULL,
-                               ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
                elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        }
 
@@ -308,7 +436,7 @@ _ivug_detail_genlist_view_file_view_create(Ivug_DetailsView *pDetailsView)
        m_ItemName[4] = IDS_RESOLUTION;
        m_ItemName[5] = IDS_FILE_LOCATION;
 
-       git = elm_genlist_item_append(genlist, &pDetailsView->file_Status.title_itc, strdup(IDS_DETAILS), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+       git = elm_genlist_item_append(genlist, &pDetailsView->title_itc, strdup(IDS_DETAILS), NULL, ELM_GENLIST_ITEM_GROUP, NULL, NULL);
        elm_genlist_item_select_mode_set(git, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
 
        for (index = 0; index < FILE_DETILES_NUM; index++)
@@ -328,12 +456,63 @@ _ivug_detail_genlist_view_file_view_create(Ivug_DetailsView *pDetailsView)
                m_TempItem->m_ItemName = strdup(m_ItemName[index]);
                m_TempItem->pDetailsView = pDetailsView;
 
-               it = elm_genlist_item_append(genlist, &pDetailsView->file_Status.multiline_itc, m_TempItem, NULL,
-                                            ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               if(index == 0)  // for rename icon
+               {
+                       it = elm_genlist_item_append(genlist, &pDetailsView->multiline_icon_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
+               else
+               {
+                       it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               }
                elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        }
 }
 
+static void
+_ivug_detail_genlist_view_drm_create(Ivug_DetailsView *pDetailsView)
+{
+       IV_ASSERT(pDetailsView != NULL);
+
+       Evas_Object *genlist = NULL;
+       int index = 0;
+
+       Elm_Object_Item *it = NULL;
+
+       ivug_file_list_item *m_TempItem = NULL;
+       char *m_ItemName[FILE_DETILES_NUM] = {0,};
+
+       genlist = pDetailsView->genlist;
+
+       m_ItemName[0] = IDS_VENDOR;
+       m_ItemName[1] = IDS_FORWARDING;
+       m_ItemName[2] = IDS_AVAILABLE_USES;
+       m_ItemName[3] = IDS_TYPE;
+       m_ItemName[4] = IDS_VALIDITY;
+
+       for (index = 0; index < FILE_DETILES_NUM; index++)
+       {
+               if(m_ItemName[index] == NULL)
+               {
+                       continue;
+               }
+
+               m_TempItem = (ivug_file_list_item *)malloc(sizeof(ivug_file_list_item));
+               if(m_TempItem == NULL)
+               {
+                       continue;
+               }
+               memset(m_TempItem, 0, sizeof(ivug_file_list_item));
+
+               m_TempItem->m_ItemName = strdup(m_ItemName[index]);
+               m_TempItem->pDetailsView = pDetailsView;
+
+               it = elm_genlist_item_append(genlist, &pDetailsView->multiline_itc, m_TempItem, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+               elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+       }
+
+}
+
+
 Ivug_DetailsView *
 ivug_details_view_screen_create(Evas_Object *parent, Media_Data *mdata, ivug_view_by view_by)
 {
@@ -352,13 +531,30 @@ ivug_details_view_screen_create(Evas_Object *parent, Media_Data *mdata, ivug_vie
                return NULL;
        }
 
+       pDetailsView->mdata = mdata;
+
        ivug_details_info_set_file_information(&pDetailsView->file_Info, filepath);
 
        ivug_details_info_set_resolution(&pDetailsView->file_Info, filepath, stype);
        ivug_details_info_set_gps_info(&pDetailsView->file_Info, filepath);
 
-       ivug_details_info_set_filename(&pDetailsView->file_Info, filepath);
-       ivug_details_info_set_location(&pDetailsView->file_Info, filepath);
+       if(stype == SLIDE_TYPE_STREAMING )              // If remote file
+       {
+               /* Location: show url */
+               ivug_details_info_set_filename(&pDetailsView->file_Info, mdata->fileurl);               // TODO : Check this. how to extract filename from URL????
+               ivug_details_info_set_location(&pDetailsView->file_Info, mdata->fileurl);
+       }
+       else
+       {
+               ivug_details_info_set_filename(&pDetailsView->file_Info, filepath);
+               ivug_details_info_set_location(&pDetailsView->file_Info, filepath);
+       }
+
+       if(mdata->bIsDRMContent)
+       {
+               ivug_details_info_set_drm_info(&pDetailsView->file_Info, filepath);
+       }
+
 
 // Creating GUI
        pDetailsView->evas = evas_object_evas_get(parent);
@@ -394,9 +590,17 @@ ivug_details_view_screen_create(Evas_Object *parent, Media_Data *mdata, ivug_vie
 
        _ivug_detail_genlist_view_file_view_create(pDetailsView);
 
-       _ivug_detail_genlist_view_gps_create(pDetailsView);
+// TODO : Should check below routine. why DRM has no GPS info???
+       if(mdata->bIsDRMContent == EINA_TRUE)
+       {
+               _ivug_detail_genlist_view_drm_create(pDetailsView);
+       }
+       else
+       {
+               _ivug_detail_genlist_view_gps_create(pDetailsView);
+       }
 
-       elm_object_part_content_set( pDetailsView->layout, "detailsview.genlist" , pDetailsView->genlist );
+       elm_object_part_content_set(pDetailsView->layout, "details_view.genlist" , pDetailsView->genlist );
 
        MSG_DETAIL_HIGH("Detail view(0x%08x) created for %s", pDetailsView, filepath);
 
diff --git a/main/src/view/ivug-details-view.h b/main/src/view/ivug-details-view.h
deleted file mode 100755 (executable)
index af159d5..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __DETAILS_VIEW_H__
-#define __DETAILS_VIEW_H__
-
-#include <unicode/udat.h>
-#include "ivug-data.h"
-#include "ivug-parameter.h"
-#include "ivug-detail-info.h"
-
-
-typedef struct {
-       Elm_Genlist_Item_Class itc;
-       Elm_Genlist_Item_Class title_itc;
-       Elm_Genlist_Item_Class multiline_itc;
-} ivug_file_status_t;
-
-typedef struct {
-       Evas_Object *parent;
-       Evas_Object *bg;
-
-       Evas_Object *layout;
-       Evas *evas;
-       Evas_Object *genlist;
-
-/*
-         |---------------|
-         | naviframe           |
-         |---------------|
-         |                               |
-         |     genlist           |
-         |                               |
-         |---------------|
-*/
-
-       ivug_file_status_t      file_Status;            // TODO : Will remove
-       ivug_file_info_t        file_Info;
-} Ivug_DetailsView;
-
-
-Ivug_DetailsView *ivug_details_view_screen_create(Evas_Object *parent, Media_Data *mdata, ivug_view_by view_by);
-
-void ivug_details_view_destroy(Ivug_DetailsView *pDetailsView);
-
-Evas_Object *ivug_details_view_object_get(Ivug_DetailsView *pDetailsView);
-
-#endif         // __DETAILS_VIEW_H__
-
-
diff --git a/main/src/view/ivug-main-view.c b/main/src/view/ivug-main-view.c
deleted file mode 100755 (executable)
index 75af879..0000000
+++ /dev/null
@@ -1,1837 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 <ui-gadget-module.h>          // ug_destroy_me, ug_send_result
-#include <media-svc.h>
-#include <vconf.h>
-#include <vconf-keys.h>
-#include <utilX.h>                     // Key event
-
-#include "ivug-common.h"
-#include "ivug-parameter.h"
-
-#include "ivug-main-view.h"
-#include "ivug-util.h"
-#include "ivug-data.h"
-#include "ivug-ext-ug.h"
-#include "ivug-popup.h"
-#include "ivug-slider-item.h"
-#include "ivug-slider.h"
-#include "ivug-main.h"
-
-#include "ivug-setas-view.h"
-#include "ivug-details-view.h"
-
-#include "ivug-data.h"
-
-#define ELM_INTERNAL_API_ARGESFSDFEFC
-
-#include <elm_widget.h>                // elm_selection_set
-#include <appsvc.h> // app service
-
-#undef HIDE_INDICATOR          // For testing.
-
-#define CONTROL_ICON_DIRECTORY_PATH    IMAGE_PATH"/01_Control icon"
-
-#define ICON_PATH_DELETE               CONTROL_ICON_DIRECTORY_PATH"/T01_controlbar_icon_delete.png"
-#define ICON_PATH_SLIDESHOW            CONTROL_ICON_DIRECTORY_PATH"/T01_controlbar_icon_slideshow.png"
-#define ICON_PATH_INFO                 CONTROL_ICON_DIRECTORY_PATH"/T01_controlbar_icon_info.png"
-
-#define ICON_PATH_OPTIONTRAY           IMAGE_PATH"/T01_btn_optiontray.png"
-
-// EDJE
-#define IVUG_MAIN_EDJ  EDJ_PATH"/ivug-main.edj"
-
-#define IVUG_RESPONSE_OK       (1)
-
-#undef TEST_MOUSE_EVENT
-
-void
-_ivug_main_view_show_menu_bar(Ivug_MainView *pMainView);
-
-void
-_ivug_main_view_hide_menu_bar(Ivug_MainView *pMainView);
-
-static void
-_ivug_main_view_back_cb(void *data, Evas_Object *obj, void *event_info);
-
-Evas_Object *_create_tool_bar(Evas_Object *parent);
-
-static void
-_ivug_main_view_navibar_detail_cb(void *data, Evas_Object *obj, void *event_info);
-
-static void
-_ivug_main_view_navibar_detail_close_cb(void *data, Evas_Object *obj, void *event_info);
-
-static enum CTRL_BAR_TYPE
-_get_ctrl_bar_type(ivug_mode mode, Media_Type slide_type);
-static enum NAVI_BAR_TYPE
-_get_tool_bar_type(ivug_mode mode, Media_Type slide_type );
-
-#define IVUG_MAIN_DESTROY_ME(a) _ivug_main_view_destroy_me(a, __func__, __LINE__);
-
-static void
-_ivug_main_view_destroy_me(Ivug_MainView *pMainView, const char *fname, int nLine)
-{
-       ivug_ret_if(!pMainView);
-
-       MSG_MAIN_WARN("Main view request ug_destroy_me at [%s:%d]", fname, nLine);
-
-       int x = 0;
-       int y = 0;
-       int w = 0;
-       int h = 0;
-
-       MSG_MAIN_WARN("Apply event blocker");
-       pMainView->event_blocker = evas_object_rectangle_add(evas_object_evas_get(pMainView->layout));
-       evas_object_geometry_get(pMainView->layout, &x, &y, &w, &h);
-       evas_object_move(pMainView->event_blocker, x, y);
-       evas_object_resize(pMainView->event_blocker, w, h);
-       evas_object_color_set(pMainView->event_blocker, 0, 0, 0, 0);
-       evas_object_show(pMainView->event_blocker);
-
-       ug_destroy_me(pMainView->ugHandle);
-}
-
-static void
-_selection_info_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info)
-{
-       ivug_retm_if(!data, "data is NULL");
-       MSG_MAIN_WARN("selection info deleted");
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       pMainView->selectioninfo = NULL;
-
-       return;
-}
-
-static inline void
-_main_view_create_selection_info(Ivug_MainView *pMainView, const char *string)
-{
-       IV_ASSERT(pMainView != NULL);
-       if(pMainView->selectioninfo)
-       {
-               evas_object_event_callback_del(pMainView->selectioninfo, EVAS_CALLBACK_DEL,
-                              _selection_info_deleted);
-               evas_object_del(pMainView->selectioninfo);
-               pMainView->selectioninfo = NULL;
-       }
-       pMainView->selectioninfo = ivug_popup_selectioninfo(pMainView->layout, string);
-       ivug_retm_if(pMainView->selectioninfo == NULL, "selectioninfo is NULL");
-       evas_object_event_callback_add(pMainView->selectioninfo, EVAS_CALLBACK_DEL,
-               _selection_info_deleted, pMainView);
-}
-
-
-//copy popup
-static void
-_ivug_main_copy_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       int response_id = (int)event_info;
-       IV_ASSERT(data != NULL);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       MSG_MAIN_HIGH("Copy popup response : %d", response_id);
-
-       if (pMainView->copy_popup)
-       {
-               evas_object_del(pMainView->copy_popup);
-               pMainView->copy_popup = NULL;
-       }
-       else
-       {
-               MSG_MAIN_WARN("copy popup is NULL");
-       }
-}
-
-static void
-_ivug_main_copy_popup_selected_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       ivug_ret_if(!data);
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       //get current file path.
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-
-       if (mdata == NULL)
-       {
-               MSG_MAIN_ERROR("slider data is NULL");
-               return;
-       }
-
-       char *path = NULL;
-       int len = 0;
-       // This Will add to the article
-       char buf[IVUG_MAX_FILE_PATH_LEN] = {0,};
-
-       path = mdata->filepath;
-       len = strlen(mdata->filepath)+strlen("file://")+1;
-       snprintf(buf, IVUG_MAX_FILE_PATH_LEN, "file://%s", mdata->filepath);
-
-       if (len < IVUG_MAX_FILE_PATH_LEN)
-       {
-               MSG_MAIN_HIGH("file path = %s, file url =%s", path, buf);
-               if ( pMainView->parent)
-               {
-                       elm_cnp_selection_set(pMainView->layout, ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_IMAGE, buf, sizeof(buf));
-               }
-       }
-       else
-       {
-               MSG_MAIN_ERROR("slider file path is too long");
-       }
-
-       evas_object_del(pMainView->copy_popup);
-       pMainView->copy_popup = NULL;
-}
-
-Evas_Object*
-_ivug_main_create_copy_popup_create(Ivug_MainView *pMainView, int x, int y)
-{
-       ivug_retv_if(!pMainView, NULL);
-
-       Evas_Object* ctx_popup = NULL;
-       ctx_popup = elm_ctxpopup_add(pMainView->layout);
-       elm_ctxpopup_item_append(ctx_popup, IDS_COPY,  NULL, _ivug_main_copy_popup_selected_cb, pMainView);
-       evas_object_smart_callback_add( ctx_popup, "hide", _ivug_main_copy_popup_response_cb, pMainView);
-
-       //evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed_cb, ctxpopup);
-       evas_object_move(ctx_popup, x, y);
-
-       evas_object_show(ctx_popup);
-
-       return ctx_popup;
-}
-
-static void
-_ivug_main_view_navibar_detail_close_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IV_ASSERT(data != NULL);
-
-       MSG_MAIN_HIGH("ENTER : Btn detail close clicked. obj=0x%08x data=0x%08x", obj, data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       IV_ASSERT( pMainView->navi_bar != NULL);
-
-       evas_object_smart_callback_del(obj, "clicked", _ivug_main_view_navibar_detail_close_cb);
-
-       elm_object_item_part_content_unset(pMainView->navi_it, "elm.swallow.detail");
-
-       MSG_MAIN_HIGH("Delete detail view");
-       ivug_details_view_destroy(pMainView->pDetailsView);  // Delete detail view.
-       pMainView->pDetailsView = NULL;
-
-// Enable detail view button callback
-       evas_object_smart_callback_add(pMainView->btn_detail, "clicked", _ivug_main_view_navibar_detail_cb, pMainView->btn_detail_data);
-       elm_object_disabled_set(pMainView->btn_detail, EINA_FALSE);
-
-       Evas_Object *btn_close = elm_object_item_part_content_unset(pMainView->navi_it, "title_right_btn");
-       evas_object_del(btn_close);
-
-       MSG_MAIN_HIGH("LEAVE : Btn detail close clicked. obj=0x%08x data=0x%08x", obj, data);
-}
-
-static void _update_title(Ivug_MainView *pMainView)
-{
-       static char title[256];
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-
-       if (mdata == NULL)
-       {
-               MSG_MAIN_ERROR("slider data is NULL");
-               return;
-       }
-
-       if ( pMainView->mode == IVUG_MODE_NORMAL)
-       {
-               snprintf(title, sizeof(title), "%d/%d",
-                       ivug_slider_get_current_slide_count(pMainView->slider),
-                       ivug_slider_get_total_slide_count(pMainView->slider));  //get title.
-       }
-       else if(mdata->filepath != NULL)
-       {
-               const char* filename = ivug_get_filename(mdata->filepath);
-               if(filename)
-               {
-                       snprintf(title, sizeof(title), "%s", filename);
-               }
-       }
-
-       IV_ASSERT(pMainView->navi_bar != NULL);
-
-       MSG_MAIN_HIGH("Update title : %s", title);
-
-       elm_object_item_text_set(pMainView->navi_it, title);
-
-}
-
-static void
-_ivug_main_view_navibar_detail_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("ENTER : Btn detail view clicked. obj=0x%08x data=0x%08x", obj, data);
-       ivug_ret_if(!obj||!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       if(pMainView->pDetailsView)
-       {
-               MSG_MAIN_ERROR("details view already created");
-               return;
-       }
-
-       pMainView->btn_detail_data = evas_object_smart_callback_del(obj, "clicked", _ivug_main_view_navibar_detail_cb);
-       pMainView->btn_detail = obj;
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-
-       if (mdata == NULL)
-       {
-               MSG_MAIN_ERROR("slider data is NULL");
-               return;
-       }
-
-       pMainView->pDetailsView = ivug_details_view_screen_create(pMainView->navi_bar, mdata, pMainView->view_by);
-
-       if(!pMainView->pDetailsView)
-       {
-               MSG_MAIN_ERROR("create details view failed");
-               return;
-       }
-
-       elm_object_item_part_content_set(pMainView->navi_it, "elm.swallow.detail", ivug_details_view_object_get(pMainView->pDetailsView));
-
-// Transition effect does not comming ocassionally when instant mode is used.
-//     evas_object_smart_callback_add(pMainView->navi_bar, "transition,finished", _ivug_main_view_details_transit_finished_cb, pMainView);
-       PERF_CHECK_BEGIN(LVL1 "Update title");
-
-       _update_title(pMainView);
-
-       PERF_CHECK_END(LVL1 "Update title");
-
-       _ctrl_bar_type ctrlbar_type;
-       ctrlbar_type = _get_ctrl_bar_type(pMainView->mode, mdata->slide_type);
-       if(ctrlbar_type == CTRL_BAR_TYPE_FILE || ctrlbar_type == CTRL_BAR_TYPE_CAMERA_IMAGE
-               || ctrlbar_type == CTRL_BAR_TYPE_CAMERA_VIDEO)
-       {
-               MSG_MAIN_HIGH("Disable details button ");
-
-               /* Disable details button in controlbar */
-               if(pMainView->ctrl_bar_item[1])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[1], EINA_TRUE);
-       }
-       else if(ctrlbar_type == CTRL_BAR_TYPE_IMAGE || ctrlbar_type == CTRL_BAR_TYPE_VIDEO)
-       {
-               /* Disable details button in controlbar */
-               if(pMainView->ctrl_bar_item[2])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[2], EINA_TRUE);
-       }
-
-       MSG_MAIN_HIGH("LEAVE : Btn detail view clicked. obj=0x%08x data=0x%08x", obj, data);
-}
-
-#define ZOOM_LEVEL_STEP (0.7)
-#define ZOOM_LEVEL_MAX (3)
-
-static void _show_zoom_icon(void *data)
-{
-       ivug_ret_if(!data);
-
-       MSG_MAIN_ERROR("_show_zoom_icon");
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       if(!sitem)
-       {
-               MSG_MAIN_ERROR("sitem is NULL");
-               return;
-       }
-
-       if(sitem->zoom_level == 0)
-       {
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,disable","elm");
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,enable","elm");
-       }
-       else if(sitem->zoom_level == ZOOM_LEVEL_MAX)
-       {
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,disable","elm");
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,enable","elm");
-       }
-       else
-       {
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,enable","elm");
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,enable","elm");
-       }
-}
-
-static void
-_ivug_main_view_zoom_out_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       ivug_ret_if(!obj);
-       ivug_ret_if(!data);
-
-       MSG_MAIN_ERROR("_ivug_main_view_zoom_out_cb");
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       if(!sitem)
-       {
-               MSG_MAIN_ERROR("sitem is NULL");
-               return;
-       }
-
-       if(sitem->zoom_level == 0)
-       {
-               MSG_MAIN_ERROR("zoom_level is 0");
-               return;
-       }
-
-       double zoom = 0.0;
-       Evas_Coord ix = 0, iy= 0, iw= 0, ih= 0;
-
-       evas_object_geometry_get(sitem->photocam, &ix, &iy, &iw, &ih);
-
-       zoom = ivug_slider_item_zoom_get(sitem);
-       zoom /= ZOOM_LEVEL_STEP;
-       ivug_slider_item_zoom_set(sitem, zoom, iw/2, ih/2);
-
-       ivug_slider_item_hold_set(sitem, EINA_FALSE);
-
-       sitem->zoom_level--;
-
-       _show_zoom_icon(data);
-}
-
-static void
-_ivug_main_view_zoom_in_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       ivug_ret_if(!obj);
-       ivug_ret_if(!data);
-
-       MSG_MAIN_ERROR("_ivug_main_view_zoom_in_cb");
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       if(!sitem)
-       {
-               MSG_MAIN_ERROR("sitem is NULL");
-               return;
-       }
-
-       if(sitem->zoom_level > ZOOM_LEVEL_MAX)
-       {
-               MSG_MAIN_ERROR("zoom_level is %d", sitem->zoom_level);
-               return;
-       }
-
-       double zoom = 0.0;
-       Evas_Coord ix = 0, iy= 0, iw= 0, ih= 0;
-
-       evas_object_geometry_get(sitem->photocam, &ix, &iy, &iw, &ih);
-
-       zoom = ivug_slider_item_zoom_get(sitem);
-       zoom *= ZOOM_LEVEL_STEP;
-       ivug_slider_item_zoom_set(sitem, zoom, iw/2, ih/2);
-
-       ivug_slider_item_hold_set(sitem, EINA_FALSE);
-
-       sitem->zoom_level++;
-
-       _show_zoom_icon(data);
-}
-
-static void
-_ivug_main_view_update_details_item(Ivug_MainView *pMainView)
-{
-       ivug_retm_if(!pMainView, "pMainView is NULL");
-       ivug_retm_if(!pMainView->slider, "pMainView->slider is NULL");
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       if(!sitem)
-       {
-               MSG_MAIN_ERROR("sitem is NULL");
-               return;
-       }
-
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-       if(!mdata)
-       {
-               MSG_MAIN_ERROR("mdata is NULL");
-               return;
-       }
-
-       _ctrl_bar_type ctrlBarType;
-       ctrlBarType = _get_ctrl_bar_type(pMainView->mode, mdata->slide_type);
-       if(ctrlBarType == CTRL_BAR_TYPE_FILE || ctrlBarType == CTRL_BAR_TYPE_CAMERA_IMAGE ||
-          ctrlBarType == CTRL_BAR_TYPE_CAMERA_VIDEO)
-       {
-               /* Enable details button in control bar*/
-               if(pMainView->ctrl_bar_item[1])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[1], EINA_FALSE);
-       }
-       else if(ctrlBarType == CTRL_BAR_TYPE_IMAGE || ctrlBarType == CTRL_BAR_TYPE_VIDEO)
-       {
-               /* Enable details button in control bar*/
-               if(pMainView->ctrl_bar_item[2])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[2], EINA_FALSE);
-       }
-}
-
-static void
-_ivug_main_view_delete_photo_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IVUG_FUNC_ENTER();
-       ivug_ret_if(!obj||!data||!event_info);
-
-       int response_id = (int)event_info;
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-       if ( response_id == POPUP_RESPONSE_OK )
-       {
-               MSG_MAIN_HIGH("Removing current slide.");
-
-               if(pMainView->pDetailsView)
-               {
-                       MSG_MAIN_HIGH("Exit details view");
-                       _ivug_main_view_navibar_detail_close_cb(pMainView, NULL, NULL);
-
-                       _ivug_main_view_update_details_item(pMainView);
-               }
-
-               ivug_slider_delete_current_slide(pMainView->slider);
-       }
-
-       evas_object_del(obj);   //delete popup
-
-}
-
-static void
-_ivug_main_view_ctrlbar_delete_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IVUG_FUNC_ENTER();
-       ivug_ret_if(!obj||!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       ivug_popup_question(pMainView->layout, NULL,
-                       IDS_DELETE_MSG, _ivug_main_view_delete_photo_cb, pMainView);
-
-       IVUG_FUNC_LEAVE();
-       return;
-}
-
-static void
-_ivug_main_view_ctrlbar_slide_show_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Start slide show");
-
-       IV_ASSERT(data != NULL);
-       ivug_ret_if(!event_info);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       Elm_Object_Item *ctrl_bar_item = (Elm_Object_Item *)event_info;
-
-       if(elm_object_item_disabled_get(ctrl_bar_item) == EINA_TRUE)
-       {
-               MSG_MAIN_WARN("Slide show already started");
-               return;
-       }
-
-       elm_object_item_disabled_set(ctrl_bar_item, EINA_TRUE);
-
-       if(pMainView->pDetailsView) {
-               MSG_MAIN_HIGH("Exit details view");
-               _ivug_main_view_navibar_detail_close_cb(pMainView, NULL, NULL);
-       }
-
-       ivug_prohibit_lcd_off();
-
-       _ivug_main_view_hide_menu_bar(pMainView);
-
-       ivug_slider_start_slide_show(pMainView->slider, EINA_TRUE);
-
-}
-
-
-static void
-_ivug_main_view_back_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       ivug_ret_if(!obj||!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-       ivug_retm_if(!pMainView->navi_bar, "%s", "navigation value is NULL");
-
-       MSG_MAIN_WARN("Back key pressed");
-
-       if( pMainView->pDetailsView == NULL)    // Detail view is not showed,.
-       {
-               evas_object_smart_callback_del(pMainView->back_btn, "clicked", _ivug_main_view_back_cb);
-               IVUG_MAIN_DESTROY_ME(pMainView);
-               return;
-       }
-
-       /* Back from details view */
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       ivug_retm_if(!sitem, "sitem is NULL");
-
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-       ivug_retm_if(!mdata, "mdata is NULL");
-
-       _ctrl_bar_type ctrlBarType;
-       ctrlBarType = _get_ctrl_bar_type(pMainView->mode, mdata->slide_type);
-       if(ctrlBarType == CTRL_BAR_TYPE_FILE ||
-               ctrlBarType == CTRL_BAR_TYPE_CAMERA_IMAGE ||
-               ctrlBarType == CTRL_BAR_TYPE_CAMERA_VIDEO)
-       {
-               // In case that called by my file, camera,  UG doest not removed.
-               _ivug_main_view_navibar_detail_close_cb(pMainView, NULL, NULL);
-
-               MSG_MAIN_HIGH("Enable details button");
-               if(pMainView->ctrl_bar_item[1])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[1], EINA_FALSE);
-
-               return;
-       }
-       else if(ctrlBarType == CTRL_BAR_TYPE_IMAGE || ctrlBarType == CTRL_BAR_TYPE_VIDEO)
-       {
-               // In case that called by my file, camera,  UG doest not removed.
-               _ivug_main_view_navibar_detail_close_cb(pMainView, NULL, NULL);
-
-               MSG_MAIN_HIGH("Enable details button");
-               if(pMainView->ctrl_bar_item[2])
-                       elm_object_item_disabled_set(pMainView->ctrl_bar_item[2], EINA_FALSE);
-       }
-       else    // otherwise, from gallery, ug will be terminated
-       {
-               evas_object_smart_callback_del(pMainView->back_btn, "clicked", _ivug_main_view_back_cb);
-               IVUG_MAIN_DESTROY_ME(pMainView);
-               return;
-       }
-}
-
-
-
-static void
-_send_result(struct ui_gadget *ug, bool selected)
-{
-//result bundle key
-#define IVUG_RESULT_BUNDLE_KEY_SELECTION_RESULT "Result"
-
-//result bundle value
-#define IVUG_RESULT_BUNDLE_VALUE_OK                    "Ok"
-#define IVUG_RESULT_BUNDLE_VALUE_CANCEL                "Cancel"
-
-       ivug_ret_if(!ug);
-
-       bundle *b;
-       b = bundle_create();
-
-       if (selected)
-       {
-               bundle_add(b, IVUG_RESULT_BUNDLE_KEY_SELECTION_RESULT, IVUG_RESULT_BUNDLE_VALUE_OK);
-       }
-       else
-       {
-               bundle_add(b, IVUG_RESULT_BUNDLE_KEY_SELECTION_RESULT, IVUG_RESULT_BUNDLE_VALUE_CANCEL);
-       }
-
-       ug_send_result(ug, b);
-
-       bundle_free(b);
-}
-
-
-//select button
-void
-_ivug_main_view_select_ok_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Select OK");
-       ivug_ret_if(!obj||!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       //send result.
-       _send_result(pMainView->ugHandle, true);
-
-       IVUG_MAIN_DESTROY_ME(pMainView);
-}
-
-void
-_ivug_main_view_select_cancel_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Select Cancel");
-
-       ivug_ret_if(!obj||!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       //send result.
-       _send_result(pMainView->ugHandle, false);
-
-       IVUG_MAIN_DESTROY_ME(pMainView);
-}
-
-
-static bool _is_mmc_inserted(void)
-{
-       int noti_message;
-       int ret = -1;
-
-       ret = vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &noti_message);
-
-       if ( ret != 0 ) // falied
-       {
-               MSG_NOTI_ERROR("Get %s is failed", VCONFKEY_SYSMAN_MMC_STATUS);
-               return false;
-       }
-
-       if(noti_message==VCONFKEY_SYSMAN_MMC_MOUNTED)
-       {
-               return true;
-       }
-
-       return false;
-
-}
-
-static Eina_Bool _key_down_cb(void *user_data, int type, void *event)
-{
-       if (!user_data) {
-               MSG_IMAGEVIEW_ERROR("user data is NULL");
-               return ECORE_CALLBACK_PASS_ON;
-       }
-
-       Ecore_Event_Key *key_event = (Ecore_Event_Key *) event;
-
-       Ivug_MainView *main_view = (Ivug_MainView *)user_data;
-
-       MSG_IMAGEVIEW_HIGH("Key down : %s", key_event->keyname);
-
-       if (!strcmp(key_event->keyname, KEY_END))
-       {
-               MSG_IMAGEVIEW_HIGH("Bakc(End) key");
-       }
-       else if (!strcmp(key_event->keyname, KEY_SELECT))
-       {
-               MSG_IMAGEVIEW_HIGH("Home key");
-       }
-       else if (!strcmp(key_event->keyname, KEY_POWER))
-       {
-               MSG_IMAGEVIEW_HIGH("Power key");
-               ivug_slider_stop_slide_show(main_view->slider);
-       }
-       return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool _on_exit_timer_expired(void *data)
-{
-       ivug_retv_if(!data, ECORE_CALLBACK_CANCEL);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       pMainView->exit_timer = NULL;
-
-       IVUG_MAIN_DESTROY_ME(pMainView);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static void _on_mmc_state_changed(keynode_t* node, void *data)
-{
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       if(_is_mmc_inserted() == false  )
-       {
-               MSG_IMAGEVIEW_WARN("MMC Removed!. Request destroy UG=0x%08x", gGetUGHandle());
-
-               if ( pMainView->ext_ug )
-               {
-                       MSG_IMAGEVIEW_HIGH("Extern UG is running");
-               }
-
-               ivug_show_popup(pMainView->layout, IDS_ERROR, IDS_SD_CARD_REMOVED, NULL, NULL);
-               pMainView->exit_timer = ecore_timer_add(0.2, _on_exit_timer_expired, data);
-       }
-}
-
-static enum NAVI_BAR_TYPE
-_get_tool_bar_type(ivug_mode mode, Media_Type slide_type )
-{
-       enum NAVI_BAR_TYPE tool_bar_type = NAVI_BAR_TYPE_NONE;
-
-       //calc navi bar style , temporary code.
-       static  const char *szType[] = {
-               "[ INVALID  ]",
-               "[          ]",
-               "[Set,  Info]",
-               "[Ok, Cancel]",
-       };
-
-
-       switch (mode)
-       {
-               case IVUG_MODE_NORMAL:
-                       tool_bar_type = NAVI_BAR_TYPE_EMPTY;
-                       if (slide_type == SLIDE_TYPE_IMAGE)
-                       {
-                               tool_bar_type = NAVI_BAR_TYPE_IMAGE;
-                       }
-                       else if (slide_type == SLIDE_TYPE_VIDEO)
-                       {
-                               tool_bar_type = NAVI_BAR_TYPE_VIDEO;
-                       }
-                       else
-                       {
-                               tool_bar_type = NAVI_BAR_TYPE_EMPTY;
-                       }
-               break;
-               case IVUG_MODE_SINGLE:
-               case IVUG_MODE_FILE:
-                       tool_bar_type = NAVI_BAR_TYPE_EMPTY;
-
-               break;
-               case IVUG_MODE_DISPLAY:
-                       tool_bar_type = NAVI_BAR_TYPE_SELECT;
-
-               break;
-               case IVUG_MODE_CAMERA:
-                       tool_bar_type = NAVI_BAR_TYPE_EMPTY;
-                       break;
-               default:
-                       MSG_MAIN_ERROR("Unhandled mode : %d", mode);
-                       tool_bar_type = NAVI_BAR_TYPE_EMPTY;
-
-                       break;
-       }
-
-       MSG_MAIN_MED("Mode=%d Slide=%d ToolBar=%s", mode, slide_type, szType[tool_bar_type]);
-
-       return tool_bar_type;
-}
-
-
-static enum CTRL_BAR_TYPE
-_get_ctrl_bar_type(ivug_mode mode, Media_Type slide_type)
-{
-       // this is temporary code.
-       enum CTRL_BAR_TYPE type = CTRL_BAR_TYPE_FILE;
-
-       static const char *szType[] = {
-               "[ Invalid ]",
-               "[ None ]",
-               "[Delete,Info]",
-               "[Delete,Info]",
-               "[Delete,Info]",
-               "[Delete,Slide show]",
-               "[Delete,Slide show]",
-       };
-
-       switch (mode)
-       {
-               case IVUG_MODE_NORMAL:
-                       if (slide_type == SLIDE_TYPE_IMAGE)
-                       {
-                               type = CTRL_BAR_TYPE_IMAGE;
-                       }
-                       else if (slide_type == SLIDE_TYPE_VIDEO)
-                       {
-                               type = CTRL_BAR_TYPE_VIDEO;
-                       }
-                       else if (slide_type == SLIDE_TYPE_UNKNOWN)
-                       {
-                               type = CTRL_BAR_TYPE_IMAGE;             // TODO : Need to check. when web image is invalid????
-                       }
-                       else
-                       {
-                               MSG_MAIN_ERROR("Unhandled slide type : %d", slide_type);
-                               type = CTRL_BAR_TYPE_FILE;
-                       }
-               break;
-               case IVUG_MODE_SINGLE:
-               case IVUG_MODE_FILE:
-                       type = CTRL_BAR_TYPE_FILE;
-               break;
-               case IVUG_MODE_CAMERA:
-                       if (slide_type == SLIDE_TYPE_IMAGE)
-                       {
-                               type = CTRL_BAR_TYPE_CAMERA_IMAGE;
-                       }
-                       else if (slide_type == SLIDE_TYPE_VIDEO)
-                       {
-                               type = CTRL_BAR_TYPE_CAMERA_VIDEO;
-                       }
-                       else
-                       {
-                               MSG_MAIN_ERROR("Unhandled slide type : %d", slide_type);
-                               type = CTRL_BAR_TYPE_FILE;
-                       }
-               break;
-               case IVUG_MODE_DISPLAY:
-                       type = CTRL_BAR_TYPE_EMPTY;
-               break;
-               default:
-                       MSG_MAIN_ERROR("Unhandled mode : %d", mode);
-                       type = CTRL_BAR_TYPE_FILE;
-       }
-
-       MSG_MAIN_MED("Mode=%d Slide=%d CtrlBar=%s", mode, slide_type, szType[type]);
-
-       return type;
-
-}
-
-Evas_Object *_create_ctrl_bar(Evas_Object *parent, Elm_Theme *th)
-{
-       Evas_Object *toolbar = elm_toolbar_add(parent);
-
-//create control bar
-       if (toolbar == NULL)
-       {
-               MSG_MAIN_ERROR("controlbar create failed");
-               return NULL;
-       }
-
-       elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
-
-#ifdef USE_CUSTOM_STYLE
-       elm_object_theme_set(toolbar, th);
-
-       char *ctrlStyle = NULL;
-
-       ctrlStyle = "ivug-toolbar/default";
-
-       Eina_Bool bstyle = elm_object_style_set(toolbar, ctrlStyle);
-       MSG_MAIN_HIGH("toolbar elm_object_style_set result = %d", bstyle);
-#endif
-
-       MSG_MAIN_HIGH("Create ctrl_bar. Obj=0x%08x", toolbar);
-
-       return toolbar;
-
-}
-
-void
-_update_tool_bar(Ivug_MainView *pMainView, enum NAVI_BAR_TYPE barType)
-{
-
-/*
-   |-------------------|
-   |naviframe(tool_bar)|
-   |-------------------|
-   |                              |
-   |                              |
-   |                              |
-   |                              |
-   |-------------------|
-   |   ctrl_bar           |
-   |-------------------|
-*/
-
-       MSG_MAIN_HIGH("Update tool_bar. Type=%d", barType);
-//remove old control bar item.
-       int i = 0;
-
-       for ( i = 0 ; i < MAX_NAVI_ITEM_CNT ; i ++)
-       {
-               if (pMainView->tool_bar_item[i])
-               {
-                       evas_object_del(pMainView->tool_bar_item[i]);
-                       pMainView->tool_bar_item[i] = NULL;
-               }
-       }
-
-       if ( barType != NAVI_BAR_TYPE_SELECT )
-       {
-               /* other type don't need toolbar */
-               return;
-       }
-
-       pMainView->tool_bar_item[0] = ivug_button_add(pMainView->navi_bar, "naviframe/title/default" , IDS_OK,
-                       NULL, _ivug_main_view_select_ok_cb, pMainView );
-
-       pMainView->tool_bar_item[1] = ivug_button_add(pMainView->navi_bar, "naviframe/title/default" , IDS_CANCEL,
-               NULL, _ivug_main_view_select_cancel_cb, pMainView );
-
-       elm_object_item_part_content_set(pMainView->navi_it, "title_left_btn", pMainView->tool_bar_item[0]);
-       elm_object_item_part_content_set(pMainView->navi_it, "title_right_btn", pMainView->tool_bar_item[1]);
-
-       pMainView->option_show = EINA_TRUE;
-}
-
-
-
-void
-_update_ctrl_bar(Ivug_MainView *pMainView, enum CTRL_BAR_TYPE barType)
-{
-       MSG_MAIN_HIGH("Update ctrl_bar. barType=%d", barType);
-
-//remove old control bar item.
-       Evas_Object* ctrl_bar = pMainView->ctrl_bar;
-
-       int i = 0;
-
-       for ( i = 0 ; i < MAX_CTRL_ITEM_CNT ; i ++)
-       {
-               if (pMainView->ctrl_bar_item[i])
-               {
-                   elm_object_item_del(pMainView->ctrl_bar_item[i]);
-                   pMainView->ctrl_bar_item[i] = NULL;
-               }
-       }
-
-/*
-       IVUG_MODE_NORMAL =>
-               Depends on content
-                       Image [Delete, Slide show, Detail]  -> CTRL_BAR_TYPE_IMAGE
-                       Video [Delete, Slide show, Detail]  -> CTRL_BAR_TYPE_VIDEO
-
-       IVUG_MODE_SINGLE, IVUG_MODE_FILE,  => CTRL_BAR_TYPE_FILE [Delete,Info]
-       IVUG_MODE_DISPLAY => CTRL_BAR_TYPE_EMPTY
-
-       if ((mode == IVUG_MODE_FILE) || (mode == IVUG_MODE_SINGLE))
-               barType == CTRL_BAR_TYPE_FILE
-
-*/
-       switch(barType)
-       {
-       case CTRL_BAR_TYPE_FILE:
-               pMainView->ctrl_bar_item[0] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_DELETE, NULL, _ivug_main_view_ctrlbar_delete_cb, pMainView);
-               pMainView->ctrl_bar_item[1] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_INFO, NULL, _ivug_main_view_navibar_detail_cb, pMainView);
-               break;
-
-       case CTRL_BAR_TYPE_CAMERA_IMAGE:
-               pMainView->ctrl_bar_item[0] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_DELETE, NULL, _ivug_main_view_ctrlbar_delete_cb, pMainView);
-               pMainView->ctrl_bar_item[1] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_INFO, NULL, _ivug_main_view_navibar_detail_cb, pMainView);
-               break;
-
-       case CTRL_BAR_TYPE_CAMERA_VIDEO:
-               pMainView->ctrl_bar_item[0] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_DELETE, NULL, _ivug_main_view_ctrlbar_delete_cb, pMainView);
-               pMainView->ctrl_bar_item[1] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_INFO, NULL, _ivug_main_view_navibar_detail_cb, pMainView);
-               break;
-
-       case CTRL_BAR_TYPE_IMAGE:
-               pMainView->ctrl_bar_item[0] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_DELETE, NULL, _ivug_main_view_ctrlbar_delete_cb, pMainView);
-               pMainView->ctrl_bar_item[1] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_SLIDESHOW, NULL, _ivug_main_view_ctrlbar_slide_show_cb, pMainView);
-               pMainView->ctrl_bar_item[2] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_INFO, NULL, _ivug_main_view_navibar_detail_cb, pMainView);
-               break;
-
-       case CTRL_BAR_TYPE_VIDEO:
-               pMainView->ctrl_bar_item[0] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_DELETE, NULL, _ivug_main_view_ctrlbar_delete_cb, pMainView);
-               pMainView->ctrl_bar_item[1] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_SLIDESHOW, NULL, _ivug_main_view_ctrlbar_slide_show_cb, pMainView);
-               pMainView->ctrl_bar_item[2] = elm_toolbar_item_append(ctrl_bar,
-                       ICON_PATH_INFO, NULL, _ivug_main_view_navibar_detail_cb, pMainView);
-               break;
-
-       default:
-               MSG_MAIN_ERROR("Unhandled ctrl bar type=%d", barType);
-               break;
-       }
-
-}
-
-static void _update_main_view(Ivug_MainView *pMainView, Slide_Item *sitem)
-{
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-       if(mdata == NULL)
-       {
-               MSG_MAIN_ERROR("mdata is NULL");
-               return;
-       }
-
-       PERF_CHECK_BEGIN(LVL6 "Set menu title");
-
-       _update_title(pMainView);
-
-       PERF_CHECK_END(LVL6 "Set menu title");
-
-       if(pMainView->pDetailsView)
-       {
-               MSG_MAIN_ERROR("In details view, skip update toolbar/controlbar");
-               return;
-       }
-
-       enum CTRL_BAR_TYPE ctrlBarType;
-       enum NAVI_BAR_TYPE toolBarType;
-
-       ctrlBarType = _get_ctrl_bar_type(pMainView->mode, mdata->slide_type);
-       toolBarType = _get_tool_bar_type(pMainView->mode, mdata->slide_type);
-
-       if ( toolBarType != pMainView->tool_bar_type )          // when change toolbar Type
-       {
-               PERF_CHECK_BEGIN(LVL6 "add toolbar item");
-
-               MSG_MAIN_HIGH("ToolBar update. Old=%d Cur=%d", toolBarType , pMainView->tool_bar_type);
-               _update_tool_bar(pMainView, toolBarType);
-               pMainView->tool_bar_type = toolBarType;
-
-               PERF_CHECK_END(LVL6 "add toolbar item");
-       }
-
-       if ( ctrlBarType != pMainView->ctrl_bar_type )  // when change ctrlbar Type
-       {
-               PERF_CHECK_BEGIN(LVL6 "add contolbar item");
-
-               MSG_MAIN_HIGH("CtrlBar update. Old=%d Cur=%d", ctrlBarType , pMainView->ctrl_bar_type);
-               _update_ctrl_bar(pMainView, ctrlBarType);
-               pMainView->ctrl_bar_type = ctrlBarType;
-
-               PERF_CHECK_END(LVL6 "add contolbar item");
-       }
-
-// If Inavalid image, disable all buttons.
-
-       slide_state_t state = ivug_slider_item_get_state(sitem);
-
-       Elm_Object_Item *item = NULL;
-       if ( state == SLIDE_STATE_ERROR)
-       {
-               const char *item_label = NULL;
-               Evas_Object *object = NULL;
-
-               /* Disable all toolbar items */
-               int i = 0;
-               for(i=0; i<MAX_NAVI_ITEM_CNT; i++)
-               {
-                       if(pMainView->tool_bar_item[i] && (item_label = elm_object_text_get(pMainView->tool_bar_item[i])) )
-                       {
-                               if(!strncmp(item_label, IDS_DETAILS, strlen(item_label)))
-                               {
-                                       MSG_MAIN_HIGH("Skip %s", item_label);
-                                       continue;
-                               }
-                       }
-                       elm_object_disabled_set(pMainView->tool_bar_item[i], EINA_TRUE);
-               }
-
-               /* Disable all controlbar items */
-#ifdef _USE_LABEL_
-               item = elm_toolbar_first_item_get(pMainView->ctrl_bar);
-               for(; item!=NULL; item=elm_toolbar_item_next_get(item)){
-                       item_label = elm_object_item_text_get(item);
-                       if(item_label && (!strncmp(item_label, IDS_DELETE, strlen(item_label)) ||
-                               !strncmp(item_label, IDS_DETAILS, strlen(item_label)) ||
-                               !strncmp(item_label, IDS_SLIDE_SHOW, strlen(item_label))))
-                       {
-                               MSG_MAIN_HIGH("Skip %s", item_label);
-                               continue;
-                       }
-
-                       elm_object_item_disabled_set(item, EINA_TRUE);
-               }
-#else
-               const char *icon_file = NULL;
-               item = elm_toolbar_first_item_get(pMainView->ctrl_bar);
-               for(; item!=NULL; item=elm_toolbar_item_next_get(item))
-               {
-                       object = elm_toolbar_item_icon_object_get(item);
-                       if(!object)
-                               continue;
-
-                       elm_icon_file_get(object, &icon_file, NULL);
-
-                       if(icon_file && (!strncmp(icon_file, ICON_PATH_DELETE, strlen(icon_file)) ||
-                               !strncmp(icon_file, ICON_PATH_INFO, strlen(icon_file)) ||
-                               !strncmp(icon_file, ICON_PATH_SLIDESHOW, strlen(icon_file))))
-                       {
-                               MSG_MAIN_HIGH("Skip %s", icon_file);
-                               continue;
-                       }
-
-                       elm_object_item_disabled_set(item, EINA_TRUE);
-               }
-#endif
-               return ;
-       }
-       else
-       {
-               int i = 0;
-               /* Enable all toolbar items */
-               for(i=0; i<MAX_NAVI_ITEM_CNT; i++)
-               {
-                       if(pMainView->tool_bar_item[i])
-                       {
-                               elm_object_disabled_set(pMainView->tool_bar_item[i], EINA_FALSE);
-                       }
-               }
-
-               /* Enable all controlbar items */
-               item = elm_toolbar_first_item_get(pMainView->ctrl_bar);
-               for(; item!=NULL; item=elm_toolbar_item_next_get(item))
-               {
-                       elm_object_item_disabled_set(item, EINA_FALSE);
-               }
-       }
-
-       if(mdata->slide_type == SLIDE_TYPE_IMAGE)
-       {
-               _show_zoom_icon(pMainView);
-       }
-       else
-       {
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,hide","elm");
-               edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,hide","elm");
-       }
-}
-
-void
-_ivug_main_view_show_menu_bar(Ivug_MainView *pMainView)
-{
-       MSG_MAIN_HIGH("Show Menu");
-
-       pMainView->bShowMenu = EINA_TRUE;
-       evas_object_show(pMainView->ctrl_bar);
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-
-       _update_main_view(pMainView, sitem);
-
-#ifdef HIDE_INDICATOR
-       elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_HIDE);
-#else
-       elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_SHOW);
-#endif
-
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-       if(mdata == NULL)
-       {
-               MSG_MAIN_ERROR("mdata is NULL");
-               return;
-       }
-
-       if(mdata->slide_type == SLIDE_TYPE_IMAGE)
-       {
-               _show_zoom_icon(pMainView);
-       }
-
-       elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_TRUE);
-       elm_object_item_signal_emit(pMainView->navi_it, "elm,state,controlbar,open", "");
-
-#ifdef TEST_MOUSE_EVENT
-       Eina_List *l = evas_object_clipees_get(pMainView->navi_bar);
-
-       MSG_MAIN_HIGH("Clipper clips %i objects", eina_list_count(l));
-
-       Evas_Object *obj;
-       Eina_List *l1;
-
-       EINA_LIST_FOREACH(l, l1, obj)
-       {
-
-       MSG_MAIN_HIGH("Object Type : %s", evas_object_name_get(obj));
-
-       }
-       Evas_Object *above;
-       Evas_Object *below;
-
-
-       above = evas_object_above_get(pMainView->navi_bar);
-       MSG_MAIN_HIGH("Navi Above : 0x%08x %s %s", above, evas_object_name_get(above), evas_object_type_get(above));
-
-       below = evas_object_below_get(pMainView->navi_bar);
-       MSG_MAIN_HIGH("Navi Below : 0x%08x %s %s", below, evas_object_name_get(below), evas_object_type_get(below));
-
-       above = evas_object_above_get(pMainView->slider);
-       MSG_MAIN_HIGH("Slider Above : 0x%08x %s %s", above, evas_object_name_get(above), evas_object_type_get(above));
-
-       below = evas_object_below_get(pMainView->slider);
-       MSG_MAIN_HIGH("Slider Below : 0x%08x %s %s", below, evas_object_name_get(below), evas_object_type_get(below));
-#endif
-
-
-}
-
-
-void
-_ivug_main_view_hide_menu_bar(Ivug_MainView *pMainView)
-{
-       MSG_MAIN_HIGH("Hide Menu");
-
-       pMainView->bShowMenu = EINA_FALSE;
-       elm_widget_disabled_set(pMainView->ctrl_bar, EINA_TRUE);
-
-       elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_HIDE);
-       edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_out,hide","elm");
-       edje_object_signal_emit(_EDJ(pMainView->empty_layout), "elm,state,btn_zoom_in,hide","elm");
-       elm_naviframe_item_title_visible_set(pMainView->navi_it, EINA_FALSE);
-       elm_object_item_signal_emit(pMainView->navi_it, "elm,state,controlbar,close", "");
-}
-
-
-static void
-_ivug_main_view_clicked(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Main View Clicked");
-       IV_ASSERT(data != NULL);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-// TODO : Bug. menu bar is blinking when stopping slide show.
-       if (pMainView->bShowMenu)
-       {
-               _ivug_main_view_hide_menu_bar(pMainView);
-       }
-       else
-       {
-               _ivug_main_view_show_menu_bar(pMainView);
-       }
-
-}
-
-static void
-_ivug_main_view_icon_clicked(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Main View Video icon Clicked");
-       IV_ASSERT(data != NULL);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-
-       if (mdata == NULL)
-       {
-               MSG_MAIN_ERROR("slide data is NULL");
-               return;
-       }
-
-       if (pMainView->mode == IVUG_MODE_FILE || pMainView->mode == IVUG_MODE_DISPLAY || pMainView->mode == IVUG_MODE_SINGLE )
-       {
-               MSG_MAIN_HIGH("Launching simple video player. Mode=%d", pMainView->mode);
-               ivug_ext_aul_launch(pMainView->layout, IVUG_EXT_AUL_SIMPLE_VIDEOPLAYER, mdata->filepath, NULL);
-       }
-       else
-       {
-               MSG_MAIN_HIGH("Launching normal video player");
-               ivug_ext_aul_launch(pMainView->layout, IVUG_EXT_AUL_VIDEOPLAYER, mdata->filepath, NULL);
-       }
-
-}
-
-static void
-_ivug_main_view_long_pressed(void *data, Evas_Object *obj, void *event_info)
-{
-       Evas_Coord_Point* down_pose = (Evas_Coord_Point*)event_info;
-       ivug_ret_if(!data||!down_pose);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       MSG_MAIN_HIGH("LongPressed XY(%d,%d)", down_pose->x, down_pose->y);
-
-       int x = down_pose->x;
-       int y =  down_pose->y;
-
-       Slide_Item *si = ivug_slider_get_current_slide_item(pMainView->slider);
-       IV_ASSERT(si != NULL);
-
-       if ( ivug_slider_item_get_state(si) != SLIDE_STATE_LOADED)
-       {
-               MSG_MAIN_ERROR("Long pressed. but state is not ready");
-               return;
-       }
-
-       pMainView->copy_popup = _ivug_main_create_copy_popup_create(pMainView, x, y);
-       if (pMainView->copy_popup == NULL)
-       {
-               IVUG_DEBUG_WARNING("copy popup create failed");
-               return ;
-       }
-
-}
-
-
-static void
-_ivug_main_view_slider_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Image slider changed callback. ");
-
-       ivug_ret_if(!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-       Slide_Item *sitem = (Slide_Item *)event_info;
-
-       if ( sitem == NULL || sitem->mitem == NULL)
-       {
-               // There is no item existed. terminate UG
-               MSG_MAIN_ERROR("No item is remained. exit UG. Sitem=0x%08x", sitem);
-               IVUG_MAIN_DESTROY_ME(pMainView);
-               return;
-       }
-
-       if(pMainView->selectioninfo != NULL)
-       {
-               MSG_MAIN_MED("Delete small noti");
-               evas_object_del(pMainView->selectioninfo);
-               pMainView->selectioninfo = NULL;
-       }
-       if (pMainView->copy_popup)
-       {
-               MSG_MAIN_MED("Delete copy popup");
-               evas_object_del(pMainView->copy_popup);
-               pMainView->copy_popup = NULL;
-       }
-
-// Update Main View.
-       if ( pMainView->bShowMenu == true )
-       {
-               PERF_CHECK_BEGIN(LVL5 "Update main view");
-               _update_main_view(pMainView, sitem);
-               PERF_CHECK_END(LVL5 "Update main view");
-       }
-
-}
-
-
-static void
-_ivug_main_view_slider_item_state_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Image slider item state changed callback. ");
-       ivug_ret_if(!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-       Slide_Item *sitem = (Slide_Item *)event_info;
-
-       if ( sitem == NULL || sitem->mitem == NULL)
-       {
-               // There is no item existed. terminate UG
-               MSG_MAIN_ERROR("No item is remained. exit UG");
-               IVUG_MAIN_DESTROY_ME(pMainView);
-               return;
-       }
-
-// Update Main View.
-       if ( pMainView->bShowMenu == true )
-       {
-               _update_main_view(pMainView, sitem);
-       }
-}
-
-
-static void
-_ivug_main_view_slider_deleted_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       MSG_MAIN_HIGH("Image slider deleted callback. ");
-       ivug_ret_if(!data);
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-       Slide_Item *sitem = (Slide_Item *)event_info;
-
-       if ( sitem == NULL || sitem->mitem == NULL )
-       {
-               // There is no item existed. terminate UG
-               MSG_MAIN_ERROR("No item is remained. exit UG");
-               IVUG_MAIN_DESTROY_ME(pMainView);
-               return;
-       }
-
-       _main_view_create_selection_info(pMainView, IDS_DELETED);
-
-       if ( pMainView->bShowMenu == true )
-       {
-               _update_main_view(pMainView, sitem);
-       }
-
-}
-
-
-static void
-_ivug_main_view_slider_slideshow_finished_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IV_ASSERT(data != NULL);
-       MSG_MAIN_HIGH("Slide show finished callback. ");
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       ivug_allow_lcd_off();
-       ivug_slider_stop_slide_show(pMainView->slider);
-
-       elm_object_item_disabled_set(pMainView->ctrl_bar_item[1], EINA_FALSE);
-
-       _ivug_main_view_show_menu_bar(pMainView);
-}
-
-static void
-_ivug_main_view_slider_slideshow_interrupted_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IV_ASSERT(data != NULL);
-       MSG_MAIN_HIGH("Slide show interrupted callback. ");
-
-       Ivug_MainView *pMainView = (Ivug_MainView *)data;
-
-       ivug_allow_lcd_off();
-
-       elm_object_item_disabled_set(pMainView->ctrl_bar_item[1], EINA_FALSE);
-
-       _ivug_main_view_show_menu_bar(pMainView);
-}
-
-
-
-#ifdef TEST_MOUSE_EVENT
-void _on_receive_mouse_move (void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       char *tt = data;
-       MSG_MAIN_HIGH("Hmm!!! %s", tt);
-}
-#endif
-
-static void
-_on_menu_state_changed(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Ivug_MainView *pMainView = data;
-
-       MSG_MAIN_HIGH("Receive %s %s", emission, source);
-
-       if ( strncmp(emission, "menu,show,finished", strlen(emission)) == 0 )
-       {
-               elm_widget_disabled_set(pMainView->ctrl_bar, EINA_FALSE);
-       }
-       else
-       {
-               evas_object_hide(pMainView->ctrl_bar);
-               elm_widget_disabled_set(pMainView->ctrl_bar, EINA_TRUE);
-       }
-}
-
-bool
-ivug_main_view_load_list(Ivug_MainView *pMainView, ivug_parameter* ivug_param)
-{
-       MSG_MAIN_HIGH("Load media list.");
-
-       PERF_CHECK_BEGIN(LVL1 "create media list");
-
-       Media_Data *mdata = ivug_slider_create_media_list(pMainView->slider, ivug_param);
-       if (mdata == NULL)
-       {
-               MSG_MAIN_ERROR("Creating media list is failed");
-               return false;
-       }
-
-       PERF_CHECK_END(LVL1 "create media list");
-
-       return true;
-}
-
-Ivug_MainView *
-ivug_main_view_create(Evas_Object* parent,     ivug_mode mode, ivug_view_by view_by)
-{
-       IV_ASSERT(parent != NULL);
-
-       MSG_MAIN_HIGH("Creating main view. Parent=0x%08x Mode=%d ViewBy=%d", parent, mode, view_by);
-
-       PERF_CHECK_BEGIN(LVL2 "Create layout");
-
-//create main view layout
-       Ivug_MainView *pMainView = calloc(1, sizeof(Ivug_MainView) );
-       IV_ASSERT(pMainView != NULL);
-
-// Set default value
-       pMainView->parent = parent;
-       pMainView->bShowMenu = true;
-       pMainView->ugHandle = gGetUGHandle();
-       pMainView->mode = mode;
-       pMainView->view_by = view_by;
-
-       Evas_Object *layout;
-       layout = elm_layout_add(parent);
-       if ( layout == NULL)    //if failed
-       {
-               MSG_MAIN_ERROR("main layout create failed");
-               free(pMainView);
-               return NULL;
-       }
-
-       pMainView->layout = layout;
-
-       PERF_CHECK_END(LVL2 "Create layout");
-
-       PERF_CHECK_BEGIN(LVL2 "load EDJ");
-
-       if (elm_layout_file_set(layout, IVUG_MAIN_EDJ, "mainview") == EINA_FALSE)
-       {
-               MSG_MAIN_ERROR("edj loading fail, file=%s group=%s", IVUG_MAIN_EDJ, IVUG_MAIN_EDJ);
-               evas_object_del(layout);
-               free(pMainView);
-               return NULL;
-       }
-
-       edje_object_signal_callback_add(_EDJ(pMainView->layout),
-                               "menu,hide,finished",
-                               "edc",
-                               _on_menu_state_changed,
-                               (void *)pMainView);
-
-       edje_object_signal_callback_add(_EDJ(pMainView->layout),
-                               "menu,show,finished",
-                               "edc",
-                               _on_menu_state_changed,
-                               (void *)pMainView);
-
-       evas_object_show(layout);
-
-// Navigation bar
-       pMainView->navi_bar = elm_naviframe_add(layout);
-       if ( pMainView->navi_bar == NULL)
-       {
-               MSG_MAIN_ERROR("navigation bar failed");
-               ivug_main_view_destroy(pMainView);
-               return NULL;
-       }
-
-// Layout life cycle is controlled by application explictily.
-       elm_naviframe_content_preserve_on_pop_set(pMainView->navi_bar, EINA_TRUE);
-
-#ifdef USE_CUSTOM_STYLE
-       elm_object_theme_set(pMainView->navi_bar, gGetSystemTheme() );
-       Eina_Bool bstyle = elm_object_style_set(pMainView->navi_bar, "ivug/default");
-       MSG_MAIN_HIGH("navi_bar elm_object_style_set result = %d", bstyle);
-#endif
-
-       elm_object_part_content_set(layout, "mainview.navibar", pMainView->navi_bar);   //swallow
-
-       pMainView->empty_layout = elm_layout_add(layout);       //create centents layout.
-       if (elm_layout_file_set(pMainView->empty_layout, IVUG_MAIN_EDJ, "navi_content"))
-       {
-               MSG_MAIN_HIGH("create Empty layout for navigation bar. Navi=0x%08x Empty Layout=0x%08x", pMainView->navi_bar, pMainView->empty_layout);
-       }
-       else
-       {
-               IVUG_DEBUG_WARNING("layout sawllow failed");
-               ivug_main_view_destroy(pMainView);
-               return NULL;
-       }
-
-       //create slider
-       pMainView->slider = ivug_slider_add(pMainView->empty_layout);
-       if (pMainView->slider == NULL)
-       {
-               MSG_MAIN_ERROR("image slider create failed");
-               ivug_main_view_destroy(pMainView);
-               return NULL;
-       }
-       elm_object_part_content_set(pMainView->empty_layout, "mainview.slider", pMainView->slider);     //swallow
-
-       Evas_Object *back_btn = elm_button_add(pMainView->navi_bar);
-       elm_object_text_set(back_btn, IDS_BACK );       //elm_button_icon_set
-       elm_object_style_set(back_btn, "naviframe/end_btn/default");
-
-       evas_object_smart_callback_add(back_btn, "clicked", _ivug_main_view_back_cb, pMainView);
-
-       pMainView->navi_it = elm_naviframe_item_push(pMainView->navi_bar, IDS_LOADING , back_btn, NULL, pMainView->empty_layout, NULL);
-
-       pMainView->back_btn = back_btn;
-
-       if (pMainView->mode != IVUG_MODE_DISPLAY)               // Display mode has no control bar in bottom.
-       {
-               pMainView->ctrl_bar = _create_ctrl_bar(pMainView->navi_bar, gGetSystemTheme());
-               elm_object_item_part_content_set(pMainView->navi_it, "controlbar", pMainView->ctrl_bar);
-       }
-
-       PERF_CHECK_END(LVL2 "load EDJ");
-
-       PERF_CHECK_BEGIN(LVL2 "add slider");
-
-       //elm_object_part_content_set(layout, "mainview.slider", pMainView->slider);    //swallow
-
-//register mouse call back.
-       evas_object_smart_callback_add(pMainView->slider, "slider,clicked", _ivug_main_view_clicked, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,longpressed", _ivug_main_view_long_pressed, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,clicked,icon", _ivug_main_view_icon_clicked, pMainView);
-
-       evas_object_smart_callback_add(pMainView->slider, "slider,item,changed", _ivug_main_view_slider_changed_cb, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,item,deleted", _ivug_main_view_slider_deleted_cb, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,slideshow,finished", _ivug_main_view_slider_slideshow_finished_cb, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,slideshow,interrupted", _ivug_main_view_slider_slideshow_interrupted_cb, pMainView);
-       evas_object_smart_callback_add(pMainView->slider, "slider,item,state,changed", _ivug_main_view_slider_item_state_changed_cb, pMainView);
-
-#ifdef TEST_MOUSE_EVENT
-       evas_object_event_callback_add(pMainView->navi_bar, EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "navigarion");
-       evas_object_event_callback_add(pMainView->layout, EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "layout");
-       evas_object_event_callback_add(pMainView->parent, EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "base");
-       evas_object_event_callback_add(pMainView->slider, EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "slider");
-       evas_object_event_callback_add(edje_object_part_object_get(_EDJ(pMainView->layout) , "clip"), EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "clip");
-       evas_object_event_callback_add(edje_object_part_object_get(_EDJ(pMainView->layout) , "mainview.navibar"), EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "navi swallow");
-       evas_object_event_callback_add(pMainView->ctrl_bar, EVAS_CALLBACK_MOUSE_MOVE, _on_receive_mouse_move, "controlbar");
-#endif
-
-       PERF_CHECK_END(LVL2 "add slider");
-
-       PERF_CHECK_BEGIN(LVL2 "add event handler");
-
-       edje_object_signal_callback_add(_EDJ(pMainView->empty_layout),
-                                       "mainview,zoom_out,clicked",
-                                       "",
-                                       _ivug_main_view_zoom_out_cb,
-                                       (void *)pMainView);
-       edje_object_signal_callback_add(_EDJ(pMainView->empty_layout),
-                                       "mainview,zoom_in,clicked",
-                                       "",
-                                       _ivug_main_view_zoom_in_cb,
-                                       (void *)pMainView);
-
-       _show_zoom_icon(pMainView);
-
-       int ret = -1;
-       MSG_IMAGEVIEW_HIGH("Register System notifications");
-       ret = vconf_notify_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, _on_mmc_state_changed, pMainView);
-       if ( ret == -1 )
-       {
-               MSG_IMAGEVIEW_ERROR("Register %s is failed", VCONFKEY_SYSMAN_MMC_STATUS);
-       }
-
-       pMainView->keydown_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
-                                                           (void *)_key_down_cb,
-                                                               (void *)pMainView);
-
-       MSG_MAIN_HIGH("Main View starting");
-
-// For debugging.
-       DELETE_NOTIFY(pMainView->layout);
-
-       PERF_CHECK_END(LVL2 "add event handler");
-
-       return pMainView;
-
-}
-
-
-Evas_Object *
-ivug_main_view_object_get(Ivug_MainView *pMainView)
-{
-       IV_ASSERT(pMainView != NULL);
-
-       return pMainView->layout;
-}
-
-void
-ivug_main_view_update(Ivug_MainView *pMainView)
-{
-       IV_ASSERT(pMainView != NULL);
-
-       MSG_MAIN_HIGH("Main View Update");
-
-       Slide_Item *sitem = ivug_slider_get_current_slide_item(pMainView->slider);
-       Media_Data *mdata = ivug_data_get_data(sitem->mitem);
-
-       ivug_ret_if(!mdata);
-
-// TODO : Check this routine!.
-// TODO : Should implement again!!
-
-       if (mdata->slide_type == SLIDE_TYPE_IMAGE || mdata->slide_type == SLIDE_TYPE_VIDEO )
-       {
-               if(mdata->filepath && ecore_file_exists(mdata->filepath)) // Current file is not deleted
-               {
-                       MSG_MAIN_HIGH("Current filepath : %s", mdata->filepath);
-               }
-               else
-               {
-                       /*if file is not exist ug terminated temporally */
-                       MSG_MAIN_ERROR("Center slide file is not exist");
-                       IVUG_MAIN_DESTROY_ME(pMainView);
-                       return ;
-               }
-       }
-
-// When resume, menu bar will be appeared.
-       _ivug_main_view_show_menu_bar(pMainView);
-}
-
-
-void
-ivug_main_view_destroy(Ivug_MainView *pMainView)
-{
-       IV_ASSERT(pMainView != NULL);
-
-       MSG_MAIN_HIGH("ENTER : Main View Destroy. pMainView=0x%08x", pMainView);
-
-       if( pMainView->event_blocker )
-       {
-               MSG_MAIN_HIGH("delete event blocker");
-               evas_object_del(pMainView->event_blocker);
-               pMainView->event_blocker = NULL;
-       }
-
-       if(pMainView->ext_ug)
-       {
-               MSG_MAIN_HIGH("destroy ug");
-               ug_destroy(pMainView->ext_ug);
-               pMainView->ext_ug = NULL;
-       }
-
-       if( pMainView->pDetailsView )
-       {
-               MSG_MAIN_HIGH("Details View Destroy");
-
-               ivug_details_view_destroy(pMainView->pDetailsView);
-               pMainView->pDetailsView = NULL;
-       }
-
-       if(pMainView->layout)           // Remove topmost parent in main view.
-       {
-               evas_object_del(pMainView->layout);
-               pMainView->layout = NULL;
-       }
-
-       if (pMainView->exit_timer)
-       {
-               ecore_timer_del(pMainView->exit_timer);
-               pMainView->exit_timer = NULL;
-       }
-
-       int ret = -1;
-
-       MSG_IMAGEVIEW_HIGH("Unregister system notifications");
-
-       if(pMainView->keydown_handler)
-       {
-               ecore_event_handler_del(pMainView->keydown_handler);
-               pMainView->keydown_handler = NULL;
-       }
-
-       ret = vconf_ignore_key_changed(VCONFKEY_SYSMAN_MMC_STATUS, _on_mmc_state_changed);
-       if ( ret == -1 )
-       {
-               MSG_IMAGEVIEW_ERROR("Unegister %s is failed", VCONFKEY_SYSMAN_MMC_STATUS);
-       }
-
-       free(pMainView);
-
-       MSG_MAIN_HIGH("LEAVE : Main View Destroy.");
-
-       return ;
-}
-
diff --git a/main/src/view/ivug-main-view.h b/main/src/view/ivug-main-view.h
deleted file mode 100755 (executable)
index 7d1a648..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_MAIN_VIEWER_H__
-#define __IVUG_MAIN_VIEWER_H__
-
-#include "ivug-common.h"
-#include "ivug-details-view.h"
-#include "ivug-setas-view.h"
-
-#define MAX_CTRL_ITEM_CNT 5
-#define MAX_NAVI_ITEM_CNT 3
-
-//navigation bar type
-typedef enum NAVI_BAR_TYPE {
-       NAVI_BAR_TYPE_NONE = 0x00,
-       NAVI_BAR_TYPE_EMPTY,                    // no control bar
-       NAVI_BAR_TYPE_IMAGE,                    // no control bar
-       NAVI_BAR_TYPE_VIDEO,                    // no control bar
-       NAVI_BAR_TYPE_SELECT,                   // [Ok, Cancel] from take photo
-} _navi_bar_type;
-
-//control bar type
-typedef enum CTRL_BAR_TYPE{
-       CTRL_BAR_TYPE_NONE = 0x00,
-       CTRL_BAR_TYPE_EMPTY,                            // not exist ctrl bar
-       CTRL_BAR_TYPE_FILE,                                     // [Delete,Info]  file manager, video at gallery
-       CTRL_BAR_TYPE_CAMERA_IMAGE,                     // [Delete,Info]  camera image file
-       CTRL_BAR_TYPE_CAMERA_VIDEO,                     // [Delete,Info]  camera video file
-       CTRL_BAR_TYPE_IMAGE,                            // [Delete,Slide show, Info] from gallery
-       CTRL_BAR_TYPE_VIDEO,                            // [Delete,Slide show, Info] from gallery
-} _ctrl_bar_type;
-
-
-typedef struct {
-       Evas_Object *parent;
-
-       Evas_Object *layout;            /*Layout widget based on EDJ*/
-
-       Evas_Object *navi_bar;
-       Elm_Object_Item *navi_it;
-       Evas_Object* empty_layout;      //navigation bar contents layout
-       Evas_Object* slider;                    //image viewer slider
-       Evas_Object* event_blocker;
-
-       Evas_Object* selectioninfo;
-
-       Evas_Object *back_btn;
-
-/*
-   |-------------------|
-   |naviframe(tool_bar)|
-   |-------------------|
-   |                              |
-   |                              |
-   |                              |
-   |                              |
-   |-------------------|
-   |   ctrl_bar           |
-   |-------------------|
-*/
-
-// Tool Bar
-       enum NAVI_BAR_TYPE tool_bar_type;
-       Evas_Object* tool_bar_item[MAX_NAVI_ITEM_CNT];          // Control bar item in navigation header. ex) SetAs, Info
-
-// Control Bar
-       Evas_Object *ctrl_bar;
-       enum CTRL_BAR_TYPE ctrl_bar_type;
-       Elm_Object_Item *ctrl_bar_item[MAX_CTRL_ITEM_CNT];                      // Bottom control bar item. ex) Delete, etc...
-
-       Evas_Object* popup;                     //popup
-       Evas_Object* copy_popup;                //copy popup
-       Eina_List*       popup_list;
-
-       Ivug_SetAsView *pSetAsView;
-
-       Ivug_DetailsView *pDetailsView;
-
-       Evas_Object *btn_detail;
-       Evas_Object *btn_detail_data;
-
-//flag
-       bool bShowMenu;
-
-       ivug_mode mode;
-       ivug_view_by view_by;
-
-       struct ui_gadget *ext_ug;
-
-       struct ui_gadget *ugHandle;
-
-       Ecore_Event_Handler *keydown_handler;
-
-       Ecore_Timer *exit_timer;
-
-       Eina_Bool option_show;
-} Ivug_MainView;
-
-
-/*
-       Create MainView layout
-*/
-Ivug_MainView *
-ivug_main_view_create(Evas_Object* parent,     ivug_mode mode, ivug_view_by view_by);
-
-Evas_Object *
-ivug_main_view_object_get(Ivug_MainView *pMainView);
-
-/*
-       Load media list from parameter.
-*/
-bool ivug_main_view_load_list(Ivug_MainView *pMainView, ivug_parameter* ivug_param);
-
-void ivug_main_view_update(Ivug_MainView *pMainView);
-
-void ivug_main_view_destroy(Ivug_MainView *pMainView);
-
-#endif //__IVUG_MAIN_VIEWER_H__
diff --git a/main/src/view/ivug-popup.c b/main/src/view/ivug-popup.c
deleted file mode 100755 (executable)
index 1ad940c..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-popup.h"
-
-#include <ui-gadget-module.h>          // ug_destroy_me, ug_send_result
-#include <ui-gadget.h>
-
-#define NOTIFY_TIMEOUT 3.0
-
-static void
-_ivug_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       ivug_ret_if(obj == NULL);
-
-       evas_object_del(obj);
-       obj = NULL;
-}
-
-static void _on_warningpopup_response(void *data, Evas_Object *obj, void *event_info )
-{
-
-       IV_ASSERT(data != NULL);
-
-       Evas_Object *popup = (Evas_Object *)data;
-       Popup_Response response = (Popup_Response)evas_object_data_get(obj, "response");
-       MSG_IMAGEVIEW_HIGH("response callback=%d", response);
-
-       evas_object_del(popup); // Remove popup
-}
-
-Evas_Object*
-ivug_popup_warning(Evas_Object* parent, const char* title, const char* contents)
-{
-       Evas_Object *popup;
-       Evas_Object *btn_ok;
-       //create popup
-
-       popup = elm_popup_add(parent);
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_object_text_set(popup, contents);
-       elm_object_part_text_set(popup, "title,text", title);
-
-       btn_ok = elm_button_add(popup);
-       elm_object_text_set(btn_ok, IDS_OK);
-       elm_object_part_content_set(popup, "button1", btn_ok);
-       evas_object_data_set(btn_ok, "response", (void *)POPUP_RESPONSE_OK);
-       evas_object_smart_callback_add(btn_ok, "clicked", _on_warningpopup_response, popup);
-
-    evas_object_show(popup);
-
-       return popup;
-}
-
-static void _on_questionpopup_response(void *data, Evas_Object *obj, void *event_info )
-{
-
-       IV_ASSERT(data != NULL);
-
-       Evas_Object *popup = (Evas_Object *)data;
-       Popup_Response response = (Popup_Response)evas_object_data_get(obj, "response");
-       MSG_IMAGEVIEW_HIGH("response callback=%d", response);
-
-       if ( response == POPUP_RESPONSE_OK )
-       {
-               void *user_data = NULL;
-               Evas_Smart_Cb responseCB = NULL;
-
-               responseCB = evas_object_data_get(popup, "question-response");
-               user_data = evas_object_data_get(popup, "question-data");
-
-               responseCB(user_data, popup, (void *)POPUP_RESPONSE_OK);
-       }
-
-       evas_object_del(popup); // Remove popup
-}
-
-Evas_Object*
-ivug_popup_question(Evas_Object* parent, const char* title, const char* contents,
-               Evas_Smart_Cb response_cb, void* user_data)
-{
-       Evas_Object *popup;
-       Evas_Object *btn_yes;
-       Evas_Object *btn_no;
-       //create popup
-
-       IV_ASSERT(response_cb != NULL);
-
-       popup = elm_popup_add(parent);
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_object_text_set(popup, contents);
-       elm_object_part_text_set(popup, "title,text", title);
-
-       btn_yes = elm_button_add(popup);
-       elm_object_text_set(btn_yes, IDS_YES);
-       elm_object_part_content_set(popup, "button1", btn_yes);
-       evas_object_data_set(btn_yes, "response", (void *)POPUP_RESPONSE_OK);
-       evas_object_smart_callback_add(btn_yes, "clicked", _on_questionpopup_response, popup);
-
-       btn_no = elm_button_add(popup);
-       elm_object_text_set(btn_no, IDS_NO);
-       elm_object_part_content_set(popup, "button2", btn_no);
-       evas_object_data_set(btn_no, "response", (void *)POPUP_RESPONSE_CANCEL);
-       evas_object_smart_callback_add(btn_no, "clicked", _on_questionpopup_response, popup);
-
-       evas_object_data_set(popup, "question-response", response_cb);
-       evas_object_data_set(popup, "question-data", user_data);
-
-    evas_object_show(popup);
-
-       return popup;
-}
-
-Evas_Object*
-ivug_popup_selectioninfo(Evas_Object* parent, const char* contents)
-{
-       Evas_Object *notify;
-
-       notify = elm_notify_add(parent);
-       ivug_retv_if(notify == NULL, NULL);
-       elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_BOTTOM);
-       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(notify, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_smart_callback_add(notify, "timeout", _ivug_popup_timeout_cb, NULL);
-       elm_notify_timeout_set(notify, NOTIFY_TIMEOUT);
-
-       Evas_Object* layout = elm_layout_add(parent);
-
-       elm_object_theme_set(layout, gGetSystemTheme());
-
-       elm_layout_theme_set(layout, "standard", "selectioninfo", "vertical/bottom_86");
-
-       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       elm_object_content_set(notify, layout);
-       edje_object_part_text_set(_EDJ(layout), "elm.text", contents);
-
-       evas_object_show(notify);
-
-       return notify;
-}
-
-
-static void _on_popup_response_exit( void *data, Evas_Object *obj, void *event_info )
-{
-       MSG_IMAGEVIEW_HIGH("response callback=%d",(int)event_info);
-
-       evas_object_del(obj);
-
-       ug_destroy_me(gGetUGHandle());
-}
-
-
-static void _on_popup_response( void *data, Evas_Object *obj, void *event_info )
-{
-       MSG_IMAGEVIEW_HIGH("response callback=%d",(int)event_info);
-
-       evas_object_del(obj);   // Remove popup
-}
-
-Evas_Object *ivug_show_exit_popup(Evas_Object *parent, const char *sztitle, const char *szmsg)
-{
-       Evas_Object *popup;
-
-       popup = elm_popup_add(parent);
-
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-       if ( szmsg )
-               elm_object_text_set(popup, szmsg);
-
-       if ( sztitle )
-               elm_object_part_text_set(popup, "title,text", sztitle);
-
-       elm_popup_timeout_set(popup, 3.0);
-       evas_object_smart_callback_add(popup, "timeout", _on_popup_response_exit, NULL);
-
-       evas_object_show(popup);
-
-       return popup;
-
-}
-
-Evas_Object *ivug_show_popup(Evas_Object *parent, const char *sztitle,
-                       const char *szmsg, Evas_Smart_Cb response_cb, void *user_data)
-{
-       Evas_Object *popup;
-
-       popup = elm_popup_add(parent);
-
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-       if ( szmsg )
-       {
-               elm_object_text_set(popup, szmsg);
-       }
-
-       if ( sztitle )
-               elm_object_part_text_set(popup, "title,text", sztitle);
-
-       elm_popup_timeout_set(popup, 3.0);
-
-       if(response_cb)
-               evas_object_smart_callback_add(popup, "timeout", response_cb, user_data);
-       else
-               evas_object_smart_callback_add(popup, "timeout", _on_popup_response, user_data);
-
-       evas_object_show(popup);
-       evas_object_focus_set(popup, EINA_TRUE);
-
-       return popup;
-}
-
-Evas_Object *ivug_show_popup_va(Evas_Object *parent, const char *sztitle, const char *fmt, ...)
-{
-       char buf[1024];
-
-       Evas_Object *popup;
-
-       popup = elm_popup_add(parent);
-
-       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-       va_list ap;
-
-       va_start(ap, fmt);
-
-       vsnprintf(buf, (size_t)sizeof(buf), fmt, ap);
-
-       va_end(ap);
-
-       elm_object_text_set(popup, buf);
-
-       if ( sztitle )
-               elm_object_part_text_set(popup, "title,text", sztitle);
-
-       elm_popup_timeout_set(popup, 3.0);
-       evas_object_smart_callback_add(popup, "timeout", _on_popup_response, NULL);
-
-//     evas_object_focus_set(popup, EINA_TRUE);
-
-       evas_object_show(popup);
-
-       return popup;
-
-}
-
-
diff --git a/main/src/view/ivug-popup.h b/main/src/view/ivug-popup.h
deleted file mode 100755 (executable)
index a0609e7..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_POPUP_H__
-#define __IVUG_POPUP_H__
-
-#include "ivug-common.h"
-#include "ivug-main.h"
-
-enum IVUG_LIST_POPUP_TYPE
-{
-       IVUG_LIST_POPUP_SET_WALLPAPER,
-} _ivug_list_popup_type;
-
-
-typedef enum _Popup_Response
-{
-       POPUP_RESPONSE_NONE = -1,
-       POPUP_RESPONSE_TIMEOUT = -2,
-       POPUP_RESPONSE_OK = -3,
-       POPUP_RESPONSE_CANCEL = -4,
-       POPUP_RESPONSE_CLOSE = -5
-} Popup_Response;
-
-// it has one button
-Evas_Object*ivug_popup_warning(Evas_Object* parent, const char* title, const char* contents);
-
-// it has two button
-Evas_Object*
-ivug_popup_question(Evas_Object* parent, const char* title, const char* contents,
-               Evas_Smart_Cb response_cb, void* user_data);
-
-Evas_Object*
-ivug_popup_create_popup_list(Evas_Object *parent ,enum IVUG_LIST_POPUP_TYPE type, const char* title, Eina_List* list,
-       void* lable_func, void* select_func, void* response_func, void *data);
-
-Evas_Object*
-ivug_popup_selectioninfo(Evas_Object* parent, const char* contents);
-
-Evas_Object *ivug_show_exit_popup(Evas_Object *parent, const char *sztitle, const char *szmsg);
-
-Evas_Object *ivug_show_popup(Evas_Object *parent, const char *sztitle, const char *szmsg,
-                            void (*response_cb) ( void *data, Evas_Object *obj, void *event_info ), void *user_data);
-Evas_Object *ivug_show_popup_va(Evas_Object *parent, const char *sztitle, const char *fmt, ...);
-
-#endif //__IVUG_POPUP_H__
\ No newline at end of file
index 836478b..54b80f4 100755 (executable)
@@ -1,23 +1,21 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
 
 #include <ui-gadget-module.h>
 #include <Evas.h>
-#include <dlfcn.h>
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "ivug-common.h"
 #include "ivug-parameter.h"
 
-#include "ivug-popup.h"
 #include "ivug-ext-ug.h"
-#include "ivug-widget.h"
-#include "ivug-main.h"
-
 #include "ivug-setas-view.h"
-#include "ivug-slider.h"
+#include "ivug-setas-view-wallpaper.h"
+#include "ivug-setas-view-callerid.h"
+#include "ivug-setas.h"
+
+
 #include "ivug-listpopup.h"
 
-/*
-       Used for storing cropped image.
-*/
-#define IVUG_HOME_SCREEN_TEMP_PATH     DATA_PATH"/.homescreen_tmp.jpg";
-#define IVUG_LOCK_SCREEN_TEMP_PATH     DATA_PATH"/.lockscreen_tmp.jpg";
+
+#define EDJ_PATH PREFIX"/res/edje/"PACKAGE
+
+#define TRANSITION_EFFECT
+
+#define IVUG_RESULT_BUNDLE_KEY_ERROR                   "Error"
+#define IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED "not_supported_file_type"
+
 
 /*
        Final image path
 #define IVUG_LOCK_SCREEN_PATH          DATA_PATH"/.lockscreen.jpg";
 
 /*
-       Image displays when incomming call is recevied.
+       Screen path for APPSVC
 */
+#define IVUG_APPSVC_HOME_SCREEN_PATH   DATA_PATH"/.iv_homescreen.jpg";
 
-#define IVUG_RESULT_BUNDLE_KEY_ERROR                   "Error"
-#define IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED "not_supported_file_type"
-
-#define CLICK_TIME_MAX         (500)                           // click time.
-#define CLICK_WIDTH_MIN        (elm_config_finger_size_get() >> 1)     //click width, if mouse move under this value and under click time, it is click.
-#define CLICK_INTERVAL_TIME 0.15
 
-#define SETAS_EDJ_FILE EDJ_PATH"/ivug-setas.edj"
+/*
+       Caller ID image
+*/
+#define SET_AS_CALL_ID_PATH            DATA_PATH"/.callerid.jpg"
 
-#define IVUG_RESPONSE_OK       (1)
+#define SET_AS_VIDEO_CALL_ID_PATH              DATA_PATH"/.videocallid.jpg"
 
-#define TRANSITION_EFFECT
+/*
+       Image displays when incomming call is recevied.
+*/
+#define SET_AS_CALL_ID_LCD_PATH                DATA_PATH"/.callerid_lcd.jpg"
 
 //set as
 enum {
        IVUG_SET_AS_TYPE_HOME = 0x00,
        IVUG_SET_AS_TYPE_LOCK,
        IVUG_SET_AS_TYPE_BOTH,
+       IVUG_SET_AS_TYPE_CALLER_ID,
        IVUG_SET_AS_TYPE_MAX,
 };
 
-static void
-_ivug_setas_on_icon_set_clicked(void *data, Evas_Object* obj, const char *emission, const char *source );
 
-/*********************************Common Part**************************************/
+static void _OnOK(Ivug_SetAsView *pSetAsView);
+static void _OnCancel(Ivug_SetAsView *pSetAsView);
+static Evas_Object*_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data);
+static void _send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2);
 
-static void
-_setas_ug_view_deleted(void * data, Evas * e, Evas_Object * obj, void * event_info)
-{
-       char *szView = (char *)data;
-
-       MSG_SETAS_WARN("%s is destroyed", szView);
-       return;
-}
 
 static void
-_ivug_setas_view_remove(Ivug_SetAsView *pSetAsView)
+_on_msg_load_failed(void *data, Evas_Object *obj, void *event_info)
 {
-       MSG_SETAS_HIGH("Start destroy ug");
-       ug_destroy_me(gGetUGHandle());
-       return;
-}
-
-static void
-_ivug_setas_view_show_icons(Evas_Object *layout)
-{
-       ivug_retm_if(!layout, "pSetAsView->layout is NULL");
-
-       elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_SHOW);
-
-       edje_object_signal_emit(_EDJ(layout),
-                               "setasview,show,btn_cancel","elm");
-
-       edje_object_signal_emit(_EDJ(layout),
-                               "setasview,show,btn_ok","elm");
-}
-
-static void
-_ivug_setas_view_hide_icons(Evas_Object *layout)
-{
-       ivug_retm_if(!layout, "pSetAsView->layout is NULL");
-
-       elm_win_indicator_mode_set(ug_get_window(), ELM_WIN_INDICATOR_HIDE);
-
-       edje_object_signal_emit(_EDJ(layout),
-                               "setasview,hide,btn_cancel","elm");
+       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
 
-       edje_object_signal_emit(_EDJ(layout),
-                               "setasview,hide,btn_ok","elm");
-}
+       SetAs_Error error = (SetAs_Error)event_info;
 
-static void
-_ivug_setas_view_unregister_set_signal(Evas_Object *layout, void (*func) (void *data, Evas_Object *obj, const char *emission, const char *source))
-{
-       ivug_retm_if(!layout, "pSetAsView->layout is NULL");
+       const char *szMsg = NULL;
 
-       edje_object_signal_callback_del(_EDJ(layout),
-                                       "setasview,set,clicked",
-                                       "",
-                                       func);
-}
-
-static Eina_Bool
-_ivug_setas_view_click_cb(void *data)
-{
-       Ivug_SetAsView *setas_data = (Ivug_SetAsView *)data;
-       if (setas_data->click_timer)
+       switch(error)
        {
-               ecore_timer_del(setas_data->click_timer);
-               setas_data->click_timer = NULL;
+               case SETAS_ERROR_TYPE_INVALID_FILE:
+                       szMsg = IDS_INVALID_IMAGE_FILE;
+                       break;
+               case SETAS_ERROR_TYPE_PERMISSION_DENIED:
+                       szMsg = IDS_PERMISSION_DENIED;
+                       break;
+               case SETAS_ERROR_TYPE_UNKNOWN_FORMAT:
+                       szMsg = "Unknown format";
+                       break;
+               case SETAS_ERROR_TYPE_GENERAL:
+               default:
+                       szMsg = IDS_FAILED;
+                       break;
        }
 
-       setas_data->b_hide_bar_flag = !(setas_data->b_hide_bar_flag);
+       MSG_SETAS_ERROR("Load failed : %s", szMsg);
 
-       MSG_SETAS_HIGH("Bar flag is %d", setas_data->b_hide_bar_flag);
-       if(setas_data->b_hide_bar_flag)
-       {
-               _ivug_setas_view_hide_icons(setas_data->layout);
-       }
-       else
+       _show_exit_popup(obj, IDS_ERROR, szMsg, (void *)pSetAsView );
+
+       if ( pSetAsView->Mode == IVUG_SETAS_UG )
        {
-               _ivug_setas_view_show_icons(setas_data->layout);
+               MSG_SETAS_ERROR("Send error message to ug caller app");
+               _send_result(gGetUGHandle(), IVUG_RESULT_BUNDLE_KEY_ERROR, IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED, NULL, NULL);
        }
-
-       return ECORE_CALLBACK_CANCEL;
 }
 
 
 static void
-_ivug_setas_view_mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+_on_msg_ok_clicked(void *data, Evas_Object *obj, void *event_info)
 {
+       MSG_SETAS_HIGH("ok clicked");
 
-       Ivug_SetAsView *setas_data = (Ivug_SetAsView *)data;
-       Evas_Event_Mouse_Down *ev = event_info;
-
-       MSG_SETAS_HIGH("Mouse down!");
-       ivug_ret_if(!data);
-
-       setas_data->down_pos.x = ev->canvas.x;
-       setas_data->down_pos.y = ev->canvas.y;
-       setas_data->timestamp = ev->timestamp;
+       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
 
-       if (setas_data->click_timer)
-       {
-               ecore_timer_del(setas_data->click_timer);
-               setas_data->click_timer = NULL;
-       }
+       _OnOK(pSetAsView);
 }
 
+
 static void
-_ivug_setas_view_mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
+_on_msg_cancel_clicked(void *data, Evas_Object *obj, void *event_info)
 {
-       Ivug_SetAsView *setas_data = (Ivug_SetAsView *)data;
-       Evas_Event_Mouse_Up *ev = event_info;
-       int step;
-       unsigned int interval_time;
-
-       MSG_SETAS_HIGH("Mouse up!");
-       ivug_ret_if(!data);
+       MSG_SETAS_HIGH("cancel clicked");
 
-       step = setas_data->down_pos.x - ev->canvas.x;
-       interval_time = ev->timestamp - setas_data->timestamp;
+       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
 
-       if(ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
-       {
-               MSG_SETAS_HIGH("double clicked");
-               return;
-       }
-       if ((step < CLICK_WIDTH_MIN && step > -CLICK_WIDTH_MIN)  && (interval_time < CLICK_TIME_MAX && interval_time > 0) )
-       {
-               MSG_SETAS_HIGH("clicked");
-               setas_data->click_timer = ecore_timer_add(CLICK_INTERVAL_TIME, _ivug_setas_view_click_cb , data);
-               return ;
-       }
+       _OnCancel(pSetAsView);
 }
 
-/********************************* Common Function **************************************/
+
 static void
-_ivug_setas_view_send_result(struct ui_gadget *ug, const char *key1, const char *val1, const char *key2, const char *val2)
+_ivug_setas_view_remove(Ivug_SetAsView *pSetAsView)
 {
-       ivug_ret_if(!ug);
+       IV_ASSERT(pSetAsView != NULL);
 
-       bundle *b;
-       b = bundle_create();
-       if(key1 && val1)
+#if 0
+       if(pSetAsView->select_box)
        {
-               MSG_SETAS_HIGH("Bundle 1 : [%s = %s]", key1, val1);
-               bundle_add(b, key1, val1);
+               evas_object_del(pSetAsView->select_box);
+               pSetAsView->select_box = NULL;
        }
+#endif
 
-       if(key2 && val2)
+       if(pSetAsView->Mode == IVUG_SETAS_UG || pSetAsView->Mode == IVUG_SETAS_APPSVC)
        {
-               MSG_SETAS_HIGH("Bundle 2 : [%s = %s]", key2, val2);
-               bundle_add(b, key2, val2);
+               MSG_SETAS_HIGH("Start destroy ug");
+               ug_destroy_me(gGetUGHandle());
+               return;
        }
 
-       ug_send_result(ug, b);
-       bundle_free(b);
-}
 
+       MSG_SETAS_HIGH( "destroy data");
+
+#ifdef TRANSITION_EFFECT
+       edje_object_signal_emit(_EDJ(pSetAsView->ly_effect), "elm,state,hide", "app");
+#else
+       ivug_setas_view_destroy(pSetAsView);
+#endif
+}
 
 
 static void
 _ivug_setas_view_response_cb( void *data, Evas_Object *obj, void *event_info )
 {
        MSG_SETAS_HIGH( "response callback=%d",(int)event_info);
+//     Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *)data;
 
-       evas_object_hide(obj);
+       evas_object_hide(obj);          // popup
        evas_object_del(obj);
 
-       ivug_retm_if(!data, "data is NULL");
-
        _ivug_setas_view_remove((Ivug_SetAsView *)data);
 }
 
-/**
-* @brief
-*
-* @param title
-* @param txt_noti
-*/
+
 static Evas_Object*
-_ivug_setas_view_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data)
+_show_exit_popup( Evas_Object *parent, const char *title, const char *desc, void *data)
 {
        MSG_SETAS_HIGH( "title: %s, desc %s", title, desc);
 
@@ -262,339 +196,283 @@ _ivug_setas_view_show_exit_popup( Evas_Object *parent, const char *title, const
        elm_popup_timeout_set(style1_popup, (double)2.0);
        elm_object_text_set(style1_popup, desc);
        elm_object_part_text_set(style1_popup, "title,text", title);
+
        evas_object_smart_callback_add(style1_popup, "timeout", _ivug_setas_view_response_cb, data);
+
        evas_object_show(style1_popup);
        evas_object_layer_set(style1_popup, EVAS_LAYER_MAX);
 
        return style1_popup;
 }
 
-static Eina_Bool _ivug_setas_view_resize_save(Evas_Object *org, const char *filepath, int w, int h)
+static void
+_send_result(ui_gadget_h ug, const char *key1, const char *val1, const char *key2, const char *val2)
 {
-       IV_ASSERT(org != NULL);
-       IV_ASSERT(filepath != NULL);
+       ivug_ret_if(!ug);
 
-       if(w <= 0 || h <= 0)
+       service_h service;
+       service_create(&service);
+       if(key1 && val1)
        {
-               MSG_SETAS_ERROR("input size parameter is invalid, w = %d, h = %d", w, h);
-               return EINA_FALSE;
+               MSG_SETAS_HIGH("Bundle 1 : [%s = %s]", key1, val1);
+               service_add_extra_data(service, key1, val1);
        }
 
-       int img_w = 0;
-       int img_h = 0;
-
-       evas_object_image_size_get(org, &img_w, &img_h);
-       MSG_SETAS_LOW("img_w = %d, img_h = %d", img_w, img_h);
-       MSG_SETAS_LOW("w = %d, h = %d", w, h);
-
-       char *ImgBuffer = evas_object_image_data_get(org, EINA_FALSE);
-
-       Ecore_Evas *ee;
-       Evas *evas;
-
-       ee = ecore_evas_buffer_new(w, h);
-       IV_ASSERT(ee != NULL);
-       evas = ecore_evas_get(ee);
-       IV_ASSERT(evas != NULL);
-
-       Evas_Object *input;
-       input = evas_object_image_filled_add(evas);
-       IV_ASSERT(input != NULL);
-
-       evas_object_image_size_set(input, img_w, img_h);
-       evas_object_image_data_set(input, ImgBuffer);
-       evas_object_image_smooth_scale_set(input, EINA_TRUE);
-       evas_object_move(input, 0, 0);
-       evas_object_resize(input, w, h);
-
-       evas_object_show(input);
-       evas_object_image_data_update_add(input, 0, 0, w, h);
-
-       Ecore_Evas *ee_dest;
-       Evas *evas_dest;
+       if(key2 && val2)
+       {
+               MSG_SETAS_HIGH("Bundle 2 : [%s = %s]", key2, val2);
+               service_add_extra_data(service, key2, val2);
+       }
 
-       ee_dest = ecore_evas_buffer_new(1, 1);
-       IV_ASSERT(ee_dest != NULL);
-       evas_dest = ecore_evas_get(ee_dest);
-       IV_ASSERT(evas_dest != NULL);
+       ug_send_result(ug, service);
+       service_destroy(service);
+}
 
-       Evas_Object *output;
-       output = evas_object_image_filled_add(evas_dest);
-       IV_ASSERT(output != NULL);
 
-       void *data = NULL;
-       data = (void*)ecore_evas_buffer_pixels_get(ee);
-       IV_ASSERT(data != NULL);
 
-       evas_object_image_size_set(output, w, h);
-       evas_object_image_data_set(output, data);
+static void _on_setas_homescreen(Ivug_SetAsView *pSetAsView)
+{
+       const char *homescreen_path = NULL;
 
-       if (evas_object_image_save(output, filepath, NULL, NULL) == EINA_FALSE)
+       if(pSetAsView->Mode != IVUG_SETAS_APPSVC)
        {
-               MSG_SETAS_ERROR("evas_object_image_save error. %s", filepath);
-               evas_object_del(input);
-               evas_object_del(output);
-               return EINA_FALSE;
+               homescreen_path = IVUG_HOME_SCREEN_PATH;
        }
        else
        {
-               int fd = open(filepath, O_RDONLY);
-               if(fd < 0)
-               {
-                       MSG_SETAS_ERROR("%s open error[%d]", filepath, fd);
-                       evas_object_del(input);
-                       evas_object_del(output);
-                       return EINA_FALSE;
-               }
-               fsync(fd);
-               int ret = close(fd);
-               if(ret < 0)
-               {
-                       MSG_SETAS_ERROR("%s open error[%d]", filepath, ret);
-               }
+               homescreen_path = IVUG_APPSVC_HOME_SCREEN_PATH;
        }
-       evas_object_del(input);
-       evas_object_del(output);
-       return EINA_TRUE;
-}
 
-static Eina_Bool
-_ivug_setas_view_screen_create_file(Ivug_SetAsView *pSetAsView, char* screen_file)
-       {
-// Delete the home screen file if exist
-       if (ivug_remove_file(screen_file) == false)
-       {
-               MSG_SETAS_ERROR( "Detele file %s failed", screen_file);
-               return EINA_FALSE;
-       }
+// Save to Image
+       Evas_Coord_Rectangle box_rect;
+       evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) );
 
-       int x = 0;
-       int y = 0;
-       int w = 0;
-       int h = 0;
+       MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
 
-       Evas *canvas;
-       Ecore_Evas *ee;
-       ee = ecore_evas_buffer_new(1, 1);
-       if (!ee)
+       Eina_Bool ret = EINA_FALSE;
+
+       ret = _ivug_setas_save_home_screen(_ivug_setas_internal_image_get( pSetAsView->content) ,&box_rect,homescreen_path);
+
+       if ( ret == false )
        {
-               MSG_DETAIL_ERROR("Cannot get EVAS");
-               return EINA_FALSE;
+               MSG_SETAS_ERROR("Error occured. when setAS. %s", homescreen_path);
        }
-       canvas = ecore_evas_get(ee);
-       Evas_Object *img = evas_object_image_add(canvas);
 
-       evas_object_image_file_set(img, NULL, NULL);
-       evas_object_image_load_orientation_set(img, EINA_TRUE);
-       evas_object_image_load_scale_down_set(img, 0);
-
-       evas_object_image_file_set(img, pSetAsView->file_path, NULL);
-       Evas_Load_Error error = evas_object_image_load_error_get(img);
-       if ( error != EVAS_LOAD_ERROR_NONE)
+       if(pSetAsView->Mode != IVUG_SETAS_APPSVC)
        {
-               MSG_SETAS_ERROR("Decoding Error(%d) : %s", error, pSetAsView->file_path);
-               evas_object_image_file_set(img, NULL, NULL);
-               evas_object_del(img);
-               ecore_evas_free(ee);
-               return EINA_FALSE;
+               ret = ivug_config_set_homescreen_image(homescreen_path);
        }
 
-       elm_photocam_image_region_get(pSetAsView->photocam, &x, &y, &w, &h);
-       double zoom = elm_photocam_zoom_get(pSetAsView->photocam);
-       if(zoom != 0.0)
+       if(ret == true)
        {
-               w = w/zoom;
-               h = h/zoom;
+               _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_SUCCESS, (void *)pSetAsView );
+               _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, NULL, NULL);
+
+               MSG_SETAS_HIGH("Set Home screen: %s", homescreen_path);
        }
-       MSG_SETAS_HIGH("w = %d, h = %d", w, h);
-       if(_ivug_setas_view_resize_save(img, screen_file, w, h) == EINA_FALSE)
+       else
        {
-               MSG_SETAS_ERROR("setas image save faied.");
-               evas_object_image_file_set(img, NULL, NULL);
-               evas_object_del(img);
-               ecore_evas_free(ee);
-               return EINA_FALSE;
+               _show_exit_popup(pSetAsView->content, IDS_HOME_SCREEN_WALLPAPER, IDS_FAILED, (void *)pSetAsView );
        }
 
-       evas_object_image_file_set(img, NULL, NULL);
-       evas_object_del(img);
-       ecore_evas_free(ee);
-       return EINA_TRUE;
 }
 
 
-static void
-_ivug_setas_on_change_home_screen(void *data, Evas_Object *obj, void *event_info)
+static void _on_setas_lockscreen(Ivug_SetAsView *pSetAsView)
 {
-       IV_ASSERT(data != NULL);
+       MSG_SETAS_HIGH("Change Lock Screen");
 
-       MSG_SETAS_HIGH("Change Home Screen");
+       char* lockscreen_path = IVUG_LOCK_SCREEN_PATH;
 
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
+// Save to Image
+       Evas_Coord_Rectangle box_rect;
+       evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) );
 
-// TODO : Remove dependancy
-       char* homescreen_path = IVUG_HOME_SCREEN_PATH;
+       MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
 
        Eina_Bool ret = EINA_FALSE;
 
-       if((ret = _ivug_setas_view_screen_create_file(pSetAsView, homescreen_path)) == EINA_FALSE)
-       {
-               MSG_SETAS_ERROR( "Create screen file failed");
-               goto end;
-       }
+       ret = _ivug_setas_save_lock_screen(_ivug_setas_internal_image_get( pSetAsView->content) ,&box_rect, lockscreen_path);
 
-       if( (ret = ivug_config_set_homescreen_image(homescreen_path)) == EINA_TRUE)
+       if ( ret == false )
        {
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_HOME_SCREEN_WALLPAPER, IDS_SUCCESS, pSetAsView);
+               MSG_SETAS_ERROR("Error occured. when setAS. %s", lockscreen_path);
        }
-       else
+
+       //Set the lock screen
+       if(pSetAsView->Mode != IVUG_SETAS_APPSVC)
        {
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_HOME_SCREEN_WALLPAPER, IDS_FAILED, pSetAsView);
+               ret = ivug_config_set_lockscreen_image(lockscreen_path);
        }
 
-       MSG_SETAS_HIGH("Set Home screen: %s", homescreen_path);
-end:
        if(ret == EINA_TRUE)
        {
-               _ivug_setas_view_send_result(gGetUGHandle(), "homescreen_path", homescreen_path, NULL, NULL);
+               _show_exit_popup(pSetAsView->content, IDS_LOCK_SCREEN_WALLPAPER, IDS_SUCCESS, pSetAsView);
+               _send_result(gGetUGHandle(), "lockscreen_path", lockscreen_path, NULL, NULL);
+
+               MSG_SETAS_HIGH("Set Lock screen: %s", lockscreen_path);
+       }
+       else
+       {
+               _show_exit_popup(pSetAsView->content, IDS_LOCK_SCREEN_WALLPAPER, IDS_FAILED, pSetAsView);
        }
+
 }
 
-static void
-_ivug_setas_on_change_lock_screen(void *data, Evas_Object *obj, void *event_info)
+
+static void _on_setas_bothscreen(Ivug_SetAsView *pSetAsView)
 {
-       IV_ASSERT(data != NULL);
+       MSG_SETAS_HIGH("Change Home & Lock Screen");
 
-       MSG_SETAS_HIGH("Change Lock Screen");
+// Set homescreen image
+       const char* homescreen_path = IVUG_HOME_SCREEN_PATH;
+       const char* lockscreen_path = IVUG_LOCK_SCREEN_PATH;
 
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
+       Evas_Coord_Rectangle box_rect;
+       evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) );
 
-       char* lockscreen_path = IVUG_LOCK_SCREEN_PATH;
+       MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
 
        Eina_Bool ret = EINA_FALSE;
 
-       if((ret = _ivug_setas_view_screen_create_file(pSetAsView, lockscreen_path)) == EINA_FALSE)
-       {
-               MSG_SETAS_ERROR( "Create screen file failed");
-               goto end;
-       }
+       ret = _ivug_setas_save_homenlock_screen(_ivug_setas_internal_image_get( pSetAsView->content),&box_rect, homescreen_path, lockscreen_path);
 
-       //Set the lock screen
-       if((ret = ivug_config_set_lockscreen_image(lockscreen_path)) == EINA_TRUE)
+       char *title = elm_entry_utf8_to_markup(IDS_HOME_AND_LOCK_SCREENS);
+
+       ret = ivug_config_set_homescreen_image(homescreen_path);
+
+       if ( ret == false)
        {
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_LOCK_SCREEN_WALLPAPER, IDS_SUCCESS, pSetAsView);
+               _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView);
        }
        else
        {
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_LOCK_SCREEN_WALLPAPER, IDS_FAILED, pSetAsView);
+               ret = ivug_config_set_lockscreen_image(lockscreen_path);
+               if ( ret == false)
+               {
+                       // TODO : Do I revet homescreen if either failed?????
+                       _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView);
+               }
+               else
+               {
+                       _show_exit_popup(pSetAsView->content, title, IDS_SUCCESS, pSetAsView);
+               }
+
        }
 
-       MSG_SETAS_HIGH("Set Lock screen: %s", lockscreen_path);
-end:
-       if(ret == EINA_TRUE)
+       MSG_SETAS_HIGH("Set Home&Lock screen: %s %s", homescreen_path, lockscreen_path);
+       free(title);
+
+       if(pSetAsView->Mode == IVUG_SETAS_UG || pSetAsView->Mode == IVUG_SETAS_APPSVC)
        {
-               _ivug_setas_view_send_result(gGetUGHandle(), "lockscreen_path", lockscreen_path, NULL, NULL);
+               if(ret == EINA_TRUE)
+               {
+                       _send_result(gGetUGHandle(), "homescreen_path", homescreen_path, "lockscreen_path", lockscreen_path);
+               }
        }
 }
 
-static void
-_ivug_setas_on_change_homeNlock_screen(void *data, Evas_Object *obj, void *event_info)
+
+static void _on_setas_callerid(Ivug_SetAsView *pSetAsView)
 {
-       IV_ASSERT(data != NULL);
+       MSG_SETAS_HIGH("Set Caller Image");
 
-       MSG_SETAS_HIGH("Change Lock Screen");
+// Save to Image
+       Evas_Coord_Rectangle box_rect;
+       evas_object_geometry_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h) );
 
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
+       MSG_SETAS_HIGH("Rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
 
-// Set homescreen image
-       char* homescreen_path = IVUG_HOME_SCREEN_PATH;
+// LCD Image
+       Evas_Object *image = NULL;
 
-       char* lockscreen_path = IVUG_LOCK_SCREEN_PATH;
+       image = _ivug_setas_callerid_internal_image_get( pSetAsView->content);
 
        Eina_Bool ret = EINA_FALSE;
 
-       if((ret = _ivug_setas_view_screen_create_file(pSetAsView, homescreen_path)) == EINA_FALSE)
+       char *title = elm_entry_utf8_to_markup(IDS_CALLER_IMAGE);
+
+       ret = _ivug_setas_save_cropimage(image, &box_rect, SET_AS_CALL_ID_LCD_PATH);
+       if ( ret == false )
        {
-               MSG_SETAS_ERROR( "Create screen file failed");
-               goto end;
+               MSG_SETAS_ERROR("Error occured. when setAS1. %s", SET_AS_CALL_ID_LCD_PATH);
+               _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView);
+               free(title);
+               return;
        }
 
-       char* temp_lock_path = IVUG_LOCK_SCREEN_TEMP_PATH;
-       if (ivug_remove_file(temp_lock_path) == false)
+// Cropped Image
+       _ivug_setas_callerid_select_region_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h));
+
+       MSG_SETAS_HIGH("Cropped rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
+
+       ret = _ivug_setas_save_cropimage(image ,&box_rect, SET_AS_CALL_ID_PATH);
+       if ( ret == false )
        {
-               MSG_SETAS_ERROR( "Detele file %s: failed", temp_lock_path);
-               goto end;
+               MSG_SETAS_ERROR("Error occured. when setAS2. %s", SET_AS_CALL_ID_PATH);
+               _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView);
+               free(title);
+               return;
        }
 
-// Make a copy from home screen to lock screen
-       if((ret = ecore_file_cp(homescreen_path, temp_lock_path)) == EINA_FALSE)
+       free(title);
+
+       if(pSetAsView->Mode == IVUG_SETAS_UG || pSetAsView->Mode == IVUG_SETAS_APPSVC)
        {
-               MSG_SETAS_ERROR( "File copy failed");
-               goto end;
+               _send_result(gGetUGHandle(), "crop_image_path", SET_AS_CALL_ID_PATH, "image_path", SET_AS_CALL_ID_LCD_PATH);
        }
-       else
-       {
-               if(ivug_rename_file(temp_lock_path, lockscreen_path) == false)
-               {
-                       MSG_SETAS_ERROR( "Rename file %s to %s failed", temp_lock_path, lockscreen_path );
-                       if(ivug_remove_file(temp_lock_path)== false)
-                       {
-                               MSG_SETAS_ERROR( "delete tmp lock file failed %s", temp_lock_path);
-                       }
-                       ret = EINA_FALSE;
-                       goto end;
-               }
 
-               sync(); //sync copied file.
-       }
+}
 
-       char *title = elm_entry_utf8_to_markup(IDS_HOME_AND_LOCK_SCREEN_WALLPAPER);
+static void _on_setas_video_call_id(Ivug_SetAsView *pSetAsView)
+{
+       MSG_SETAS_HIGH("Set Caller Image");
 
-       ret = ivug_config_set_homescreen_image(homescreen_path);
+// Save to Image
+       Evas_Coord_Rectangle box_rect;
 
-       if ( ret == false)
+// LCD Image
+       Evas_Object *image = NULL;
+
+       image = _ivug_setas_callerid_internal_image_get(pSetAsView->content);
+
+       Eina_Bool ret = EINA_FALSE;
+
+       char *title = elm_entry_utf8_to_markup(IDS_CALLER_IMAGE);
+
+// Cropped Image
+       _ivug_setas_callerid_select_region_get(pSetAsView->content, &(box_rect.x), &(box_rect.y), &(box_rect.w), &(box_rect.h));
+
+       MSG_SETAS_HIGH("Cropped rect XYWH(%d,%d,%d,%d)", box_rect.x, box_rect.y, box_rect.w , box_rect.h);
+
+       ret = _ivug_setas_save_cropimage(image, &box_rect, SET_AS_VIDEO_CALL_ID_PATH);
+       if ( ret == false )
        {
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, title, IDS_FAILED, pSetAsView);
+               MSG_SETAS_ERROR("Error occured. when setAS2. %s", SET_AS_VIDEO_CALL_ID_PATH);
+               _show_exit_popup(pSetAsView->content, title, IDS_FAILED, pSetAsView);
+               free(title);
+               return;
        }
-       else
-       {
-               ret = ivug_config_set_lockscreen_image(lockscreen_path);
-               if ( ret == false)
-               {
-                       // TODO : Do I revet homescreen if either failed?????
-                       pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, title, IDS_FAILED, pSetAsView);
-               }
-               else
-               {
-                       pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, title, IDS_SUCCESS, pSetAsView);
-               }
 
+       if(pSetAsView->Mode == IVUG_SETAS_UG || pSetAsView->Mode == IVUG_SETAS_APPSVC)
+       {
+               _send_result(gGetUGHandle(), "crop_image_path", SET_AS_VIDEO_CALL_ID_PATH, NULL, NULL);
        }
 
-       MSG_SETAS_HIGH("Set Home&Lock screen: %s %s", homescreen_path, lockscreen_path);
+       _show_exit_popup(pSetAsView->content, title, IDS_SUCCESS, pSetAsView);
+
        free(title);
 
-end:
-       if(ret == EINA_TRUE)
-       {
-               _ivug_setas_view_send_result(gGetUGHandle(), "homescreen_path", homescreen_path, "lockscreen_path", lockscreen_path);
-       }
 }
 
 
 static void
-_ivug_setas_wallpaper_set_selected_cb(void *data, Evas_Object *obj, void *event_info)
+_on_type_popup_selected(void *data, Evas_Object *obj, void *event_info)
 {
        IV_ASSERT(data != NULL);
 
        Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
-       ivug_listpopup_item *item = event_info;
-
-       edje_object_signal_callback_add(_EDJ(pSetAsView->layout),
-                               "setasview,set,clicked",
-                               "",
-                               _ivug_setas_on_icon_set_clicked,
-                               (void *)pSetAsView);
+       Ivug_ListPopup_Item *item = event_info;
 
        if ( item == NULL )     // Cancel is selected
        {
@@ -605,25 +483,24 @@ _ivug_setas_wallpaper_set_selected_cb(void *data, Evas_Object *obj, void *event_
                return;
        }
 
-       MSG_SETAS_HIGH("Create SetAsView. name= %s", item->caption);
+       const char *label = ivug_listpopup_item_get_data(item);
+       MSG_SETAS_HIGH("Create SetAsView. name= %s", label);
 
-       switch(item->index)
+       if ( strcmp(IDS_HOME_SCREEN, label) == 0 )
        {
-               case IVUG_SET_AS_TYPE_HOME:
-                       _ivug_setas_on_change_home_screen(data, NULL, NULL);
-               break;
-
-               case IVUG_SET_AS_TYPE_LOCK:
-                       _ivug_setas_on_change_lock_screen(data, NULL, NULL);
-               break;
-
-               case IVUG_SET_AS_TYPE_BOTH:
-                       _ivug_setas_on_change_homeNlock_screen(data, NULL, NULL);
-               break;
-
-               default:
-                       MSG_SETAS_ERROR("Unknown Set as type : %d", item->index);
-               break;
+               _on_setas_homescreen(pSetAsView);
+       }
+       else if ( strcmp(IDS_LOCK_SCREEN, label) == 0 )
+       {
+               _on_setas_lockscreen(pSetAsView);
+       }
+       else if ( strcmp(IDS_HOME_AND_LOCK_SCREENS, label) == 0 )
+       {
+               _on_setas_bothscreen(pSetAsView);
+       }
+       else
+       {
+               MSG_SETAS_ERROR("Unknown Set as type : %s", label);
        }
 
        evas_object_del(pSetAsView->genlist_popup);
@@ -631,184 +508,209 @@ _ivug_setas_wallpaper_set_selected_cb(void *data, Evas_Object *obj, void *event_
 }
 
 
-static void
-_ivug_setas_on_icon_cancel_clicked(void *data, Evas_Object* obj, const char *emission, const char *source )
+static void _dismissed_cb(void *data, Evas_Object *obj, void *event_info)
 {
-       MSG_SETAS_HIGH("Cancel button clicked");
-       ivug_ret_if(!data);
-
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
-
-       _ivug_setas_view_remove(pSetAsView);
+       MSG_SETAS_HIGH("Popup dissmissed");
 }
 
+
 static void
-_ivug_setas_on_icon_set_clicked(void *data, Evas_Object* obj, const char *emission, const char *source )
+_OnOK(Ivug_SetAsView *pSetAsView)
 {
-       MSG_SETAS_HIGH("On Btn Done clicke");
-       ivug_ret_if(!data);
-
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
+       MSG_SETAS_HIGH("On Btn Done clicked");
 
-       _ivug_setas_view_unregister_set_signal(pSetAsView->layout, _ivug_setas_on_icon_set_clicked);
+       Evas_Object *obj;
 
-       if(pSetAsView->set_type == IVUG_CTRLBAR_SET_SCREEN_UNDEFINED)
+       switch(pSetAsView->Type)
        {
-               // In case of setting->wallpaper
-               MSG_SETAS_HIGH("Create setas wallpaper popup");
+               case IVUG_CTRLBAR_SET_SCREEN_UNDEFINED:
+                       MSG_SETAS_HIGH("Create setas wallpaper popup");
+
+                       obj = ivug_listpopup_add(pSetAsView->content);
+
+                       evas_object_smart_callback_add(obj, "popup,dismissed", _dismissed_cb, pSetAsView);
+                       evas_object_smart_callback_add(obj, "popup,selected", _on_type_popup_selected, pSetAsView);
+
+                       ivug_listpopup_item_append(obj, NULL,IDS_HOME_SCREEN, IDS_HOME_SCREEN);
+                       ivug_listpopup_item_append(obj, NULL,IDS_LOCK_SCREEN, IDS_LOCK_SCREEN);
+                       ivug_listpopup_item_append(obj, NULL,IDS_HOME_AND_LOCK_SCREENS, IDS_HOME_AND_LOCK_SCREENS);
 
-               ivug_listpopup_itemlist items = ivug_listpopup_itemlist_new();
+                       ivug_listpopup_title_set(obj, IDS_SET_AS);
 
-               ivug_listpopup_itemlist_add(items, IVUG_SET_AS_TYPE_HOME, NULL, IDS_HOME_SCREEN_WALLPAPER,  NULL , false);
-               ivug_listpopup_itemlist_add(items, IVUG_SET_AS_TYPE_LOCK, NULL, IDS_LOCK_SCREEN_WALLPAPER,  NULL , false);
-               ivug_listpopup_itemlist_add(items, IVUG_SET_AS_TYPE_BOTH, NULL, IDS_HOME_AND_LOCK_SCREEN_WALLPAPER,  NULL , false);
+                       ivug_listpopup_button_set(obj, IDS_CLOSE);
 
-               pSetAsView->genlist_popup = ivug_listpopup_show(pSetAsView->layout, IDS_SET_AS, items, _ivug_setas_wallpaper_set_selected_cb, pSetAsView);
+                       ivug_listpopup_popup_show(obj);
 
-               ivug_listpopup_itemlist_free(items);
 
+                       pSetAsView->genlist_popup = obj;
+
+                       break;
+
+               case IVUG_CTRLBAR_SET_SCREEN_HOME:
+                       _on_setas_homescreen(pSetAsView);
+                       break;
+               case IVUG_CTRLBAR_SET_SCREEN_LOCK:
+                       _on_setas_lockscreen(pSetAsView);
+                       break;
+               case IVUG_CTRLBAR_SET_SCREEN_BOTH:
+                       _on_setas_bothscreen(pSetAsView);
+                       break;
+               case IVUG_CTRLBAR_SET_SCREEN_CALLERID:
+                       _on_setas_callerid(pSetAsView);
+                       break;
+               case IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID:
+                       _on_setas_video_call_id(pSetAsView);
+                       break;
+               default:
+                       MSG_SETAS_ERROR("Unknown Set as type : %d", pSetAsView->Type);
+                       break;
        }
-}
 
+}
 
 static void
-_ivug_setas_on_photocam_loaded(void *data, Evas_Object *obj, void *event_info)
+_OnCancel(Ivug_SetAsView *pSetAsView)
 {
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *) data;
+       MSG_SETAS_HIGH("On Btn cancel clicked");
 
-       IV_ASSERT(pSetAsView != NULL);
+       _ivug_setas_view_remove(pSetAsView);
+}
 
-       Evas_Load_Error error = (Evas_Load_Error)event_info;
+#ifdef TRANSITION_EFFECT
+static void _signal_hide_finished(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       Ivug_SetAsView *pSetAsView = data;
 
-       if ( error != EVAS_LOAD_ERROR_NONE )
-       {
-               MSG_SETAS_ERROR("Error occured during decoding. Error=%d", error);
+       IV_ASSERT(pSetAsView != NULL);
 
-// Show popup & Exit.
-               pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_ERROR, IDS_INVALID_IMAGE_FILE, pSetAsView );
+       MSG_SETAS_HIGH("_signal_hide_finished. pData=0x%08x", pSetAsView);
 
-               return;
-       }
+       ivug_setas_view_destroy(pSetAsView);
+}
 
-       elm_object_part_content_set(pSetAsView->layout, "setasview.photocam", pSetAsView->photocam);
+static void _signal_show_finished(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       Ivug_SetAsView *pSetAsView = data;
 
-       edje_object_signal_emit(_EDJ(pSetAsView->layout), "setasview,enable,btn_ok", "elm");
+       IV_ASSERT(pSetAsView != NULL);
 
-       edje_object_signal_callback_add(_EDJ(pSetAsView->layout),
-                               "setasview,set,clicked",
-                               "",
-                               _ivug_setas_on_icon_set_clicked,
-                               (void *)pSetAsView);
+       MSG_SETAS_HIGH("_signal_show_finished. pData=0x%08x", pSetAsView);
 }
 
-static Ivug_SetAsView *_create_setas_view(Evas_Object *parent, const char* filepath, ivug_set_screen_type screen_type)
+#endif         // UG_TRANSITION_EFFECT
+
+
+
+Ivug_SetAsView *
+ivug_setas_view_screen_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, ivug_set_screen_type screen_type)
 {
-       IV_ASSERT(filepath != NULL);
+       Ivug_SetAsView *pSetAsView = NULL;
 
-       Ivug_SetAsView *pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView));
+       MSG_SETAS_HIGH("Setas View creates");
 
-       if ( pSetAsView == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot allocate memory");
-               return NULL;
-       }
+       pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView));
 
-       pSetAsView->file_path = strdup(filepath);
-       pSetAsView->set_type = screen_type;
-       pSetAsView->layout = ivug_layout_add(parent , SETAS_EDJ_FILE, "setas_view");
+       pSetAsView->Mode = mode;
+       pSetAsView->Type = screen_type;
 
-       if ( pSetAsView->layout == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create layout.");
-               free(pSetAsView);
-               return NULL;
-       }
+       pSetAsView->content = _ivug_setas_create_layout(parent);
 
-       Evas_Object *photocam;
-       photocam = elm_photocam_add(pSetAsView->layout);
-       elm_photocam_zoom_mode_set(photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
-       elm_photocam_paused_set(photocam, EINA_TRUE);
+       evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView);
 
-       edje_object_signal_emit(_EDJ(pSetAsView->layout), "setasview,disable,btn_ok","elm");            // Disable ok button
+       _ivug_setas_load_file(pSetAsView->content , filepath);
 
-       _ivug_setas_view_show_icons(pSetAsView->layout);
+// Transition layout
+#ifdef TRANSITION_EFFECT
+       pSetAsView->ly_effect = ivug_layout_add(parent , EDJ_PATH"/ivug-effect.edj", "ivug_effect");
 
-       evas_object_smart_callback_add(photocam, "loaded", _ivug_setas_on_photocam_loaded, (void *)pSetAsView);
+       elm_object_part_content_set(pSetAsView->ly_effect, "elm.swallow.content", pSetAsView->content);
 
-       pSetAsView->photocam = photocam;
+       edje_object_signal_callback_add(_EDJ(pSetAsView->ly_effect), "elm,action,hide,finished", "elm", _signal_hide_finished, (void *)pSetAsView);
+       edje_object_signal_callback_add(_EDJ(pSetAsView->ly_effect), "elm,action,show,finished", "elm", _signal_show_finished, (void *)pSetAsView);
 
-       Evas_Load_Error error = EVAS_LOAD_ERROR_NONE;
+       evas_object_show(pSetAsView->ly_effect);
 
-// Get Screen size
-       Evas_Coord w, h;
-       evas_object_geometry_get(pSetAsView->layout, NULL, NULL, &w, &h);
+       edje_object_signal_emit(_EDJ(pSetAsView->ly_effect), "elm,state,show", "app");          // Start Effect
+#endif
 
-       evas_object_show(photocam);
+       return pSetAsView;
+}
 
-       error = elm_photocam_file_set(photocam, filepath);
 
-       if ( error != EVAS_LOAD_ERROR_NONE )
-       {
-               // TODO : What is good for error handing??????
-               MSG_SETAS_ERROR("FileSet Error=%d", error);
+Ivug_SetAsView *
+ivug_setas_view_screen_ug_create(Evas_Object *parent, const char* filepath,    ivug_setas_mode mode, ivug_set_screen_type type)
+{
+       Ivug_SetAsView *pSetAsView = NULL;
 
-               if ( error == EVAS_LOAD_ERROR_UNKNOWN_FORMAT )
-               {
-                       _ivug_setas_view_send_result(gGetUGHandle(), IVUG_RESULT_BUNDLE_KEY_ERROR, IVUG_RESULT_BUNDLE_VALUE_NOT_SUPPORTED, NULL, NULL);
-                       ivug_setas_view_destroy(pSetAsView);
+       MSG_SETAS_HIGH("Wallpaper UG creates");
 
-                       return NULL;
-               }
-               else if ( error == EVAS_LOAD_ERROR_PERMISSION_DENIED )
-               {
-                       pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_ERROR, IDS_PERMISSION_DENIED, pSetAsView );
-                       return pSetAsView;
-               }
-               else
-               {
-                       pSetAsView->popup = _ivug_setas_view_show_exit_popup(pSetAsView->layout, IDS_ERROR, IDS_INVALID_IMAGE_FILE, pSetAsView );
-                       return pSetAsView;
-               }
+       pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView));
 
-       }
+       pSetAsView->Mode = mode;
+       pSetAsView->Type = type;
 
-       edje_object_signal_callback_add(_EDJ(pSetAsView->layout),
-                               "setasview,cancel,clicked",
-                               "",
-                               _ivug_setas_on_icon_cancel_clicked,
-                               (void *)pSetAsView);
+       pSetAsView->content = _ivug_setas_create_layout(parent);
 
-       const Evas_Object *event = edje_object_part_object_get(_EDJ(pSetAsView->layout), "event");
-       if(!event)
-       {
-               MSG_SETAS_ERROR("event object is NULL");
-       }
-       else
-       {
-               evas_object_event_callback_add((Evas_Object *)event, EVAS_CALLBACK_MOUSE_DOWN, _ivug_setas_view_mouse_down_cb, pSetAsView);
-               evas_object_event_callback_add((Evas_Object *)event, EVAS_CALLBACK_MOUSE_UP, _ivug_setas_view_mouse_up_cb, pSetAsView);
-       }
+       evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView);
+
+       _ivug_setas_load_file(pSetAsView->content , filepath);
 
        return pSetAsView;
+}
+
+
+Ivug_SetAsView *
+ivug_setas_view_callerid_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height)
+{
+       Ivug_SetAsView *pSetAsView = NULL;
+
+       MSG_SETAS_HIGH("CallerID UG creates. ImgOut(%d,%d)", output_width, output_height);
+
+       pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView));
+
+       pSetAsView->Mode = mode;
+       pSetAsView->Type = IVUG_CTRLBAR_SET_SCREEN_CALLERID;            // Means that aspect ration should be preserved
 
+       pSetAsView->content = _ivug_setas_callerid_create_layout(parent);
+
+       evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView);
+
+       _ivug_setas_callerid_load_file(pSetAsView->content , filepath);
+       _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content , (double)output_height/output_width);
+
+       return pSetAsView;
 }
 
 Ivug_SetAsView *
-ivug_setas_view_screen_ug_create(Evas_Object *parent, const char* filepath)
+ivug_setas_view_video_call_id_ug_create(Evas_Object *parent, const char* filepath, ivug_setas_mode mode, int output_width, int output_height)
 {
        Ivug_SetAsView *pSetAsView = NULL;
 
-       MSG_SETAS_HIGH("Wallpaper UG creates");
+       MSG_SETAS_HIGH("CallerID UG creates. ImgOut(%d,%d)", output_width, output_height);
 
-       pSetAsView = _create_setas_view(parent, filepath, IVUG_CTRLBAR_SET_SCREEN_UNDEFINED);
+       pSetAsView = (Ivug_SetAsView *)calloc(1, sizeof(Ivug_SetAsView));
 
-       if ( pSetAsView == NULL )
-       {
-               MSG_SETAS_ERROR("Cannot create Wallpaper UG");
-               return NULL;
-       }
+       pSetAsView->Mode = mode;
+       pSetAsView->Type = IVUG_CTRLBAR_SET_SCREEN_VIDEO_CALL_ID;               // Means that aspect ration should be preserved
+
+       pSetAsView->content = _ivug_setas_callerid_create_layout(parent);
+
+       evas_object_smart_callback_add(pSetAsView->content, "load,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "download,failed", _on_msg_load_failed, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "ok,clicked", _on_msg_ok_clicked, pSetAsView);
+       evas_object_smart_callback_add(pSetAsView->content, "cancel,clicked", _on_msg_cancel_clicked, pSetAsView);
 
-       evas_object_event_callback_add(pSetAsView->layout, EVAS_CALLBACK_DEL, _setas_ug_view_deleted, "Wallpaper UG");
+       _ivug_setas_callerid_load_file(pSetAsView->content , filepath);
+       _ivug_setas_callerid_aspect_ratio_set(pSetAsView->content , (double)output_height/output_width);
 
        return pSetAsView;
 }
@@ -819,7 +721,7 @@ ivug_setas_view_object_get(Ivug_SetAsView *pSetAsView)
 {
        IV_ASSERT(pSetAsView != NULL);
 
-       return pSetAsView->layout;
+       return pSetAsView->content;
 }
 
 void
@@ -827,69 +729,26 @@ ivug_setas_view_destroy(Ivug_SetAsView *pSetAsView)
 {
        MSG_SETAS_HIGH("Removing SetAs VIew");
 
-       ivug_ret_if(!pSetAsView);
-
-       const Evas_Object *event = edje_object_part_object_get(_EDJ(pSetAsView->layout), "event");
-       if(event != NULL)
-       {
-               evas_object_event_callback_del((Evas_Object *)event, EVAS_CALLBACK_MOUSE_DOWN, _ivug_setas_view_mouse_down_cb);
-               evas_object_event_callback_del((Evas_Object *)event, EVAS_CALLBACK_MOUSE_UP, _ivug_setas_view_mouse_up_cb);
-       }
-
-       if (pSetAsView->click_timer)
-       {
-               ecore_timer_del(pSetAsView->click_timer);
-               pSetAsView->click_timer = NULL;
-       }
-
-       if(pSetAsView->genlist_popup)
-       {
-               evas_object_del(pSetAsView->genlist_popup);
-               pSetAsView->genlist_popup = NULL;
-       }
-
-       if(pSetAsView->popup)
-       {
-               evas_object_del(pSetAsView->popup);
-               pSetAsView->popup = NULL;
-       }
-
-       if(pSetAsView->select_box)
-       {
-               evas_object_del(pSetAsView->select_box);
-               pSetAsView->select_box = NULL;
-       }
-
-       if(pSetAsView->photocam)
-       {
-               evas_object_del(pSetAsView->photocam);
-               pSetAsView->photocam = NULL;
-       }
-
-       if(pSetAsView->file_path)
+       if ( pSetAsView->ly_effect)
        {
-               free(pSetAsView->file_path);
-               pSetAsView->file_path = NULL;
+               evas_object_del(pSetAsView->ly_effect);
+               pSetAsView->ly_effect = NULL;
        }
 
-       if(pSetAsView->layout)
+       if ( pSetAsView->content)
        {
-               evas_object_del(pSetAsView->layout);
-               pSetAsView->layout = NULL;
+               evas_object_del(pSetAsView->content);
+               pSetAsView->content = NULL;
        }
 
-       if ( pSetAsView->ly_effect)
+       if ( pSetAsView->filename )
        {
-               evas_object_del(pSetAsView->ly_effect);
-               pSetAsView->ly_effect = NULL;
+               free(pSetAsView->filename);
        }
 
        if(pSetAsView)
        {
                free(pSetAsView);
        }
-       pSetAsView = NULL;
-
 }
 
-
diff --git a/main/src/view/ivug-setas-view.h b/main/src/view/ivug-setas-view.h
deleted file mode 100755 (executable)
index 2e1dc5c..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __SETAS_VIEW_H__
-#define __SETAS_VIEW_H__
-
-#include "ivug-common.h"
-
-typedef enum {
-       NOTI_SUCCESS,
-       NOTI_FAIL,
-} TEXT_POPUP_TYPE;
-
-typedef enum {
-       IVUG_CTRLBAR_SET_SCREEN_HOME,
-       IVUG_CTRLBAR_SET_SCREEN_LOCK,
-       IVUG_CTRLBAR_SET_SCREEN_BOTH,
-       IVUG_CTRLBAR_SET_SCREEN_UNDEFINED,              // Show select popup when click ok button.
-       IVUG_CTRLBAR_SET_SCREEN_MAX
-} ivug_set_screen_type;
-
-typedef struct {
-       Evas_Object *parent;
-       Evas_Object *ly_effect;         // Layout for transition effect
-
-       Evas_Object *layout;
-
-/*
-   |------------------|
-   | naviframe        |
-   |------------------|
-   | toolbar             |
-   |------------------|
-   |                             |
-   |                             |
-   |                             |
-   |                             |
-   |------------------|
-   | controlbar                  |
-   |------------------|
-*/
-       Evas_Object *photocam;
-       Evas_Object *toolbar;
-       Evas_Object *content;           // Empty layout
-
-       Evas_Object *select_box;
-
-       struct {
-               int x, y, h, w;
-       } select_rect;
-
-       Evas_Object *popup;
-       Evas_Object *done_button;
-
-       char *file_path;
-
-       Eina_Bool b_hide_bar_flag;
-
-
-       Ecore_Timer *timer_locate_rect;
-
-       // click event
-       Evas_Coord_Point down_pos;
-       unsigned int timestamp;
-       Ecore_Timer *click_timer;
-
-       ivug_set_screen_type set_type;
-
-       Evas_Object *genlist_popup;
-       Eina_List *popup_list;
-} Ivug_SetAsView;
-
-
-Ivug_SetAsView *
-ivug_setas_view_screen_ug_create(Evas_Object *parent, const char* filepath);
-
-void
-ivug_setas_view_destroy(Ivug_SetAsView *data);
-
-Evas_Object *
-ivug_setas_view_object_get(Ivug_SetAsView *pSetAsView);
-
-#endif //__SETAS_VIEW_H__
diff --git a/main/src/view/ivug-slider-item.c b/main/src/view/ivug-slider-item.c
deleted file mode 100755 (executable)
index 1b33e0c..0000000
+++ /dev/null
@@ -1,703 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-
-#include "ivug-slider-item.h"
-
-#include "ivug-main.h"
-
-#define DEFAULT_THUMBNAIL_PATH                 IMAGE_PATH"/T01_Nocontents_broken.png"
-
-#define IVUG_SLIDER_EDJ                                EDJ_PATH"/ivug-slider.edj"
-
-/*
-       Use elm_icon istead of elm_image. elm_icon preserve image ratio. and seems more faster.
-*/
-#define USE_ELM_ICON
-
-bool
-_thumbnail_set( Slide_Item* si, const char *filepath)
-{
-       IV_ASSERT(si != NULL);
-       IV_ASSERT(filepath != NULL);
-
-       if (si->thumbnail == NULL)
-       {
-               MSG_SITEM_FATAL("slide item or thumbnail object is NULL");
-               return false;
-       }
-
-       MSG_SITEM_MED("Set thumbnail : %s",  ivug_get_filename(filepath));
-
-#ifdef USE_ELM_ICON
-       if (elm_icon_file_set(si->thumbnail, filepath, NULL) == EINA_FALSE)
-       {
-               MSG_SITEM_ERROR("Cannot load thumbnail : %s", filepath);
-               si->thumbnail_show = EINA_FALSE;
-               return false;
-       }
-
-#else
-       if (elm_image_file_set(si->thumbnail, filepath, NULL) == EINA_FALSE)
-       {
-               MSG_SITEM_ERROR("Cannot load thumbnail : %s", filepath);
-               si->thumbnail_show = EINA_FALSE;
-               return false;
-       }
-#endif
-       edje_object_signal_emit(_EDJ(si->layout), "elm,state,show_thumbnail", "slider");
-
-       si->thumbnail_show = EINA_TRUE;
-       return true;
-}
-
-
-inline
-void _call_user_callback(Slide_Item* si)
-{
-       if ( si->cb )
-       {
-               (si->cb)(si->state, si, si->client_data);
-       }
-
-}
-
-
-static void
-_photocam_loaded_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       IV_ASSERT(data != NULL);
-
-       Slide_Item* si = data;
-
-       //hide progress.
-       elm_progressbar_pulse(si->progress, EINA_FALSE);                //stop pluse
-       edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide,progress", "slider");
-
-       if ( si->mitem == NULL)
-       {
-               MSG_SITEM_ERROR("Debug Me! Data item is NULL.");
-               return;
-       }
-
-       Media_Data* sdata = ivug_data_get_data(si->mitem);
-       if(sdata == NULL)
-       {
-               MSG_SITEM_ERROR("ivug_data_get_data failed.");
-               si->state = SLIDE_STATE_ERROR;
-               return;
-       }
-
-       Evas_Load_Error error = (Evas_Load_Error)event_info;
-
-       if ( error != EVAS_LOAD_ERROR_NONE )
-       {
-               MSG_SITEM_ERROR("Image loading failed. Error=%d", error);
-               si->state = SLIDE_STATE_ERROR;
-
-               si->photocam_show = EINA_FALSE;
-               evas_object_hide(obj);
-
-               _thumbnail_set(si, DEFAULT_THUMBNAIL_PATH);
-
-               evas_object_repeat_events_set(si->thumbnail, EINA_FALSE);
-
-               _call_user_callback(si);
-
-               return ;
-       }
-
-       si->state = SLIDE_STATE_LOADED;
-
-       if (sdata->slide_type == SLIDE_TYPE_VIDEO)      //if slide type is video,
-       {
-               // TODO : Never get here..
-               MSG_SITEM_FATAL("slide type is video. thumbnail image ");
-               return;
-       }
-
-       si->photocam_show       = EINA_TRUE;
-       evas_object_show(obj);  //photocam show.
-
-//     evas_object_move(obj, si->x, si->y);
-
-//hide thumbnail.
-       if(si->thumbnail_show == EINA_TRUE)
-       {
-               MSG_SITEM_HIGH("Thumbnail Hide");
-               edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide_thumbnail", "slider");
-               si->thumbnail_show = EINA_FALSE;
-       }
-
-       _call_user_callback(si);
-
-       MSG_SITEM_HIGH("Photocam Pre-loaded. File=%s", ivug_get_filename(sdata->filepath));
-}
-
-Slide_Item*
-ivug_slider_item_add(Evas_Object *slider)
-{
-       Slide_Item* si = NULL;
-
-       //create item
-       si = (Slide_Item*)calloc(1, sizeof (Slide_Item));
-
-       if ( si == NULL )
-       {
-               MSG_SITEM_FATAL("Cannot allocated memory : %d.", sizeof (Slide_Item));
-               return NULL;
-       }
-
-       si->state = SLIDE_STATE_NONE;           //set slide state
-
-//Create the slider item layout
-       Evas_Object *layout = elm_layout_add(slider);
-       if(elm_layout_file_set(layout, IVUG_SLIDER_EDJ, "slider") == EINA_FALSE)
-       {
-               MSG_SITEM_ERROR("Cannot load file : %s", IVUG_SLIDER_EDJ);
-               free(si);
-
-               return NULL;
-       }
-
-       si->layout = layout;
-
-//Add the photocam
-       si->photocam = elm_photocam_add(slider);
-       elm_photocam_zoom_mode_set(si->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
-       elm_photocam_paused_set(si->photocam, EINA_TRUE);
-       evas_object_smart_callback_call(si->photocam, "scroll-freeze-on", si->photocam);
-       evas_object_smart_callback_add(si->photocam, "loaded", _photocam_loaded_cb, si);
-
-       elm_object_part_content_set(si->layout, "slider.photocam", si->photocam);
-
-//set thumbnail.
-#ifdef USE_ELM_ICON
-       si->thumbnail = elm_icon_add(slider);
-#else
-       si->thumbnail = elm_image_add(slider);
-#endif
-       elm_object_part_content_set(si->layout, "slider.thumbnail", si->thumbnail);
-
-//set progress
-       si->progress = elm_progressbar_add(slider);
-       elm_object_style_set(si->progress, "list_process");
-       elm_progressbar_pulse(si->progress, EINA_FALSE);
-
-       elm_object_part_content_set(si->layout, "slider.progress", si->progress);
-
-       si->icon = edje_object_part_object_get(_EDJ(si->layout), "slider.icon");
-
-       evas_object_clip_set(si->layout, slider);
-
-// Add Çϴ ¼ø¼­¿¡ µû¶ó Z-OrderÀÌ °áÁ¤ µÈ´Ù.
-       evas_object_smart_member_add(si->layout, slider);
-
-       si->w = gGetScreenWidth();
-       si->h = gGetScreenHeight();
-
-       MSG_SITEM_HIGH("Creating slider item. 0x%08x. WH(%dx%d)", si, si->w, si->h);
-
-       return si;
-
-}
-
-void
-ivug_slider_item_resize(Slide_Item* si, int w, int h)
-{
-       IV_ASSERT(si != NULL );
-
-       // TODO : Impelement
-       MSG_SITEM_HIGH("SLIDER Resize to WH(%d,%d)", w, h );
-
-// w,h is not Image's scale, but Object's scale
-       si->w = w;
-       si->h = h;
-
-//     MSG_SITEM_HIGH("resize layout: %d, %d", si->w, si->h);
-       evas_object_resize(si->layout, si->w, si->h);
-
-       ivug_slider_item_zoom_reset(si, EINA_FALSE, 0,0);
-}
-
-void ivug_slider_item_del(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL );
-
-       if (si->photocam)
-       {
-               evas_object_del(si->photocam); //remove  photocam
-               si->photocam = NULL;
-       }
-
-       if (si->thumbnail)
-       {
-               evas_object_del(si->thumbnail);
-               si->thumbnail = NULL;
-       }
-
-       if (si->progress)
-       {
-               evas_object_del(si->progress);
-               si->progress = NULL;
-       }
-
-       if(si->layout)
-       {
-               evas_object_del(si->layout);
-               si->layout = NULL;
-       }
-
-       free(si);
-
-       MSG_SITEM_HIGH("Slide item is deleted");
-}
-
-void ivug_slider_item_hide(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL );
-
-       MSG_SITEM_HIGH("hide bg");
-       evas_object_hide(si->layout);
-}
-
-void ivug_slider_item_show(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL );
-
-// no need to check layout is NULL
-       evas_object_show(si->layout);
-}
-
-void ivug_slider_item_move(Slide_Item* si, int x, int y)
-{
-       IV_ASSERT(si != NULL );
-
-
-//     MSG_SITEM_HIGH("SLIDER(%d) Move to XY(%d,%d)", si->idx, x, y );
-       //photocam
-       si->x = x;
-       si->y = y;
-
-//             MSG_SITEM_HIGH("move layout: %d, %d", x, y);
-       evas_object_move(si->layout, x, y);
-}
-
-void
-ivug_slider_item_clip_set(Slide_Item* si, Evas_Object *clipper)
-{
-       IV_ASSERT(si != NULL );
-// no need to check layout is NULL
-       MSG_SITEM_HIGH("Clip SET!!");
-
-       evas_object_clip_set(si->layout, clipper);
-}
-
-void
-ivug_slider_item_clip_unset(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL );
-// no need to check layout is NULL
-       evas_object_clip_unset(si->layout);
-}
-
-bool
-ivug_slider_item_set_callback(Slide_Item* si, OnSliderStateChanged cb, void *data)
-{
-       ivug_retv_if(!si, false);
-
-       si->cb = cb;
-       si->client_data = data;
-
-       return true;
-}
-
-bool
-ivug_slider_item_data_loading(Slide_Item *si)
-{
-       IV_ASSERT(si != NULL);
-
-       if ( si->state != SLIDE_STATE_READY)
-       {
-               MSG_SITEM_ERROR("Invalid state : %d", si->state);
-               return false;
-       }
-
-       Media_Data *mdata = ivug_data_get_data(si->mitem);
-       if ( mdata == NULL )
-       {
-               MSG_SITEM_ERROR("Data is NULL");
-               return false;
-       }
-
-       char path[IVUG_MAX_FILE_PATH_LEN] = {0,};
-
-       strncpy(path, mdata->filepath, strlen(mdata->filepath));
-
-       switch(mdata->slide_type)
-       {
-               case SLIDE_TYPE_IMAGE:
-               {
-                       MSG_SITEM_HIGH("Load  Image. %s", ivug_get_filename(path));
-                       si->state = SLIDE_STATE_LOADING;
-
-                       if (elm_photocam_file_set(si->photocam, path) != EVAS_LOAD_ERROR_NONE)
-                       {
-                               MSG_SITEM_ERROR("Failed photocam to set file file=%s", path);
-
-                               _photocam_loaded_cb(si, si->photocam, (void *) EVAS_LOAD_ERROR_UNKNOWN_FORMAT);
-
-                               return false;
-                       }
-
-                       return true;
-
-               }
-               break;
-
-       case SLIDE_TYPE_VIDEO:
-               return true;
-               break;
-
-       default:
-               MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type);
-               return false;
-               break;
-       }
-
-       return true;
-}
-
-
-bool
-ivug_slider_item_data_set(Slide_Item* si, Media_Item *item)
-{
-       ivug_retv_if(!si, false);
-
-       if ( si->state != SLIDE_STATE_NONE )
-       {
-               MSG_SITEM_ERROR("State is not none... State=%d", si->state);
-               si->state = SLIDE_STATE_NONE;
-       }
-
-       if ( item == NULL )
-       {
-               MSG_SITEM_WARN("Item is NULL");
-               return false;
-       }
-
-       si->mitem = item;
-
-       Media_Data *mdata = ivug_data_get_data(item);
-
-       if ( mdata == NULL )
-       {
-               MSG_SITEM_ERROR("Data is NULL");
-               return false;
-       }
-
-       switch(mdata->slide_type)
-       {
-               case SLIDE_TYPE_IMAGE:
-                       MSG_SITEM_HIGH("Set image. %s", ivug_get_filename(mdata->filepath));
-
-                       si->state = SLIDE_STATE_READY;
-
-               break;
-               case SLIDE_TYPE_VIDEO:
-                       if (mdata->thumbnail_path)
-                       {
-                               _thumbnail_set(si, mdata->thumbnail_path);
-                               // Go through
-                       }
-                       else
-                       {
-                               _thumbnail_set(si, DEFAULT_THUMBNAIL_PATH);
-                       }
-
-                       si->photocam_show = EINA_FALSE;
-
-                       evas_object_repeat_events_set(si->thumbnail, EINA_FALSE);       // In case of video, photocam should not receive events
-
-                       edje_object_signal_emit(_EDJ(si->layout), "elm,state,show_icon", "slider"); // Video icon
-
-                       MSG_SITEM_HIGH("Set video. %s", ivug_get_filename(mdata->filepath));
-
-                       si->state = SLIDE_STATE_LOADED;         // Video dont need to load photocam
-
-                       break;
-
-               case SLIDE_TYPE_UNKNOWN:
-                       if (mdata->thumbnail_path)
-                       {
-                               _thumbnail_set(si, mdata->thumbnail_path);
-                               // Go through
-                       }
-
-                       MSG_SITEM_ERROR("Unknown image. %s", ivug_get_filename(mdata->filepath));
-
-                       si->state = SLIDE_STATE_ERROR;
-
-                       break;
-
-               default:
-                       MSG_SITEM_ERROR("slide type invaild. Type=%d", mdata->slide_type);
-                       si->state = SLIDE_STATE_ERROR;
-                       return false;
-                       break;
-
-       }
-
-       si->zoom_level = 0;
-
-       return true;
-}
-
-slide_state_t
-ivug_slider_item_get_state(Slide_Item *si)
-{
-       IV_ASSERT(si != NULL);
-
-       return si->state;
-}
-
-const Media_Item *
-ivug_slider_item_data_get(Slide_Item *si)
-{
-       IV_ASSERT(si != NULL);
-
-       return si->mitem;
-}
-
-
-void
-ivug_slider_item_data_unset(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL);
-
-       if ( si->state == SLIDE_STATE_NONE )
-       {
-               MSG_SITEM_WARN("Slide item is already cleared. just return");
-               return;
-       }
-
-       if(si->progress)
-       {
-               elm_progressbar_pulse(si->progress, EINA_FALSE);                //stop pluse
-               edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide,progress", "slider");
-       }
-
-       if ( si->mitem == NULL )
-       {
-               // When delete case, this code is launched.
-               MSG_SITEM_WARN("MItem is NULL.");
-               // Go through
-       }
-       else
-       {
-               Media_Data *mdata = ivug_data_get_data(si->mitem);
-
-               if ( mdata == NULL )
-               {
-                       MSG_SITEM_ERROR("Data is NULL");
-                       return ;
-               }
-
-               MSG_SITEM_HIGH("Clear Image. %s", ivug_get_filename(mdata->filepath));
-
-               si->mitem = NULL;
-       }
-
-       if (si->thumbnail_show)
-       {
-               si->thumbnail_show = EINA_FALSE;
-               edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide_thumbnail", "slider");
-       }
-
-       if(si->layout)
-       {
-               edje_object_signal_emit(_EDJ(si->layout), "elm,state,hide_icon", "slider");
-       }
-
-// does not check photocam_show flags. because photocam_show only set true when finish preloading.
-// during preloading photocam_show is remains false,
-       si->photocam_show = EINA_FALSE;
-//     elm_layout_content_unset(si->layout, "slider.photocam");                //
-
-       evas_object_hide(si->photocam);
-
-       evas_object_del(si->photocam);
-       si->photocam = elm_photocam_add(si->layout);
-       elm_photocam_zoom_mode_set(si->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
-       elm_photocam_paused_set(si->photocam, EINA_TRUE);
-       evas_object_smart_callback_call(si->photocam, "scroll-freeze-on", si->photocam);
-       evas_object_smart_callback_add(si->photocam, "loaded", _photocam_loaded_cb, si);
-       elm_object_part_content_set(si->layout, "slider.photocam", si->photocam);
-
-       si->state = SLIDE_STATE_NONE;
-
-       si->zoom_level = 0;
-
-       MSG_SITEM_MED("Slider Item is cleared.");
-
-}
-
-
-void ivug_slider_item_change_mitem_pointer(Slide_Item* si, Media_Item *item)
-{
-       IV_ASSERT(si != NULL );
-
-       si->mitem = item;
-}
-
-
-
-// Photocam
-bool
-ivug_slider_item_region_size_get(Slide_Item* si, int *x, int *y, int *w, int *h)
-{
-       IV_ASSERT(si != NULL );
-
-       if ( si->mitem == NULL)
-       {
-               MSG_SITEM_ERROR("Debug Me! Data item is NULL.");
-               return false;
-       }
-
-       Media_Data *mdata = ivug_data_get_data(si->mitem);
-
-       if ( mdata == NULL )
-       {
-               MSG_SITEM_ERROR("slide type is NULL. Item=0x%08x", si);
-               return false;           // TODO : Temp..
-       }
-
-       if ( mdata->slide_type == SLIDE_TYPE_VIDEO)
-       {
-               return false;
-       }
-
-       Evas_Object *image = elm_photocam_internal_image_get(si->photocam);
-       evas_object_geometry_get(image, x, y, w, h);
-       MSG_SITEM_MED("x = %d, y = %d, w = %d, h = %d", *x, *y, *w, *h);
-
-       return true;
-}
-
-
-
-void
-ivug_slider_item_hold_set(Slide_Item* si, Eina_Bool hold)
-{
-       IV_ASSERT(si != NULL );
-
-       if(hold == EINA_TRUE)
-       {
-               evas_object_smart_callback_call(si->photocam, "scroll-freeze-on", si->photocam);
-       }
-       else
-       {
-               evas_object_smart_callback_call(si->photocam, "scroll-freeze-off", si->photocam);
-       }
-}
-
-
-void
-ivug_slider_item_zoom_reset(Slide_Item* si, Eina_Bool bAnim, int center_x, int center_y)
-{
-       IV_ASSERT(si != NULL );
-
-       if ( si->photocam_show )
-       {
-               Evas_Point pt;
-
-               pt.x = center_x;
-               pt.y = center_y;
-               elm_photocam_paused_set(si->photocam, !bAnim); //stop photocam animation
-               elm_photocam_zoom_mode_set(si->photocam, ELM_PHOTOCAM_ZOOM_MODE_AUTO_FIT);
-
-               si->zoom_level = 0;
-       }
-}
-
-
-void
-ivug_slider_item_zoom_set(Slide_Item* si, double zoom, int center_x, int center_y)
-{
-       IV_ASSERT(si != NULL );
-
-       if ( si->photocam_show )
-       {
-               elm_photocam_paused_set(si->photocam, EINA_FALSE); //stop photocam animation
-               elm_photocam_zoom_mode_set(si->photocam, ELM_PHOTOCAM_ZOOM_MODE_MANUAL);
-               elm_photocam_zoom_set(si->photocam, zoom);
-       }
-}
-
-double
-ivug_slider_item_zoom_get(Slide_Item* si)
-{
-       IV_ASSERT(si != NULL );
-
-       double ret = 1.0;
-
-       if ( si->photocam_show )
-       {
-               ret = elm_photocam_zoom_get(si->photocam);
-       }
-       return ret;
-}
-
-
-bool
-ivug_slider_item_icon_click_check(Slide_Item *si, int x, int y)
-{
-       MSG_SITEM_HIGH("Check icon clicked. SI=0x%08x, XY(%d,%d)", si, x, y);
-
-       IV_ASSERT(si != NULL );
-
-       Media_Data *mdata = ivug_data_get_data(si->mitem);
-
-       if ( mdata == NULL )
-       {
-               MSG_SITEM_ERROR("Debug Me! Data item is NULL.");
-               return false;
-       }
-
-       if ( mdata->slide_type == SLIDE_TYPE_VIDEO )
-       {
-               if (si->icon)
-               {
-                       Evas_Coord ix,iy,iw,ih;
-
-                       evas_object_geometry_get(si->icon, &ix, &iy, &iw, &ih);
-
-                       bool bInside =  !(  (x) > (ix + iw) || (x) < (ix)
-                                                               || (y) > (iy + iw) || (y) < (iy) );
-
-                       MSG_SITEM_HIGH("Item XYWH(%d,%d,%d,%d) XY(%d,%d) bInside=%d", ix,iy,iw,ih, x, y, bInside);
-
-                       return bInside;
-               }
-       }
-
-       MSG_SITEM_HIGH("Slide type = %d", mdata->slide_type);
-       return false;
-}
-
-
diff --git a/main/src/view/ivug-slider-item.h b/main/src/view/ivug-slider-item.h
deleted file mode 100755 (executable)
index 6bbc54d..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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.
- */
-
-
-#pragma once
-
-#include "ivug-data.h"
-
-typedef enum SLIDE_STATE {
-       SLIDE_STATE_NONE = 0x00,
-       SLIDE_STATE_READY,
-       SLIDE_STATE_LOADING,                    // Load main image or downloading
-       SLIDE_STATE_LOADED,                             // Image is shown
-       SLIDE_STATE_ERROR,
-} slide_state_t;
-
-typedef struct _Slide_Item Slide_Item;
-
-typedef void (*OnSliderStateChanged)(slide_state_t state, Slide_Item *si, void *client_data);
-
-struct _Slide_Item {
-       int x, y, w, h;                 // Object geometry
-//Data
-       slide_state_t state;    // Currently not used, just for debugging.
-       Media_Item *mitem;
-
-//flag
-       Eina_Bool photocam_show;
-       Eina_Bool thumbnail_show;
-
-// UI
-       Evas_Object* layout;
-       const Evas_Object* icon;                //video icon
-       Evas_Object* thumbnail; // thumbnail
-       Evas_Object* photocam;  //photocam data.
-       Evas_Object* progress;  //progress bar
-
-       unsigned int thumb_w, thumb_h;  // thumbnail width height.
-
-       unsigned int zoom_level;
-
-// Callback
-       OnSliderStateChanged cb;
-       void *client_data;
-
-};
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// GUI related
-Slide_Item*
-ivug_slider_item_add(Evas_Object *slider);
-
-void
-ivug_slider_item_del(Slide_Item *si);
-
-void
-ivug_slider_item_hide(Slide_Item *si);
-
-void
-ivug_slider_item_show(Slide_Item *si);
-
-void
-ivug_slider_item_move(Slide_Item *si, int x, int y);
-
-void
-ivug_slider_item_resize(Slide_Item *si, int w, int h);
-
-void
-ivug_slider_item_clip_set(Slide_Item *si, Evas_Object *clipper);
-
-void
-ivug_slider_item_clip_unset(Slide_Item *si);
-
-// Data
-bool
-ivug_slider_item_set_callback(Slide_Item* si, OnSliderStateChanged cb, void *data);
-
-bool
-ivug_slider_item_data_set(Slide_Item *si, Media_Item *item);
-
-bool
-ivug_slider_item_data_loading(Slide_Item *si);
-
-void
-ivug_slider_item_change_mitem_pointer(Slide_Item *si, Media_Item *item);       // confused API!!!
-
-void
-ivug_slider_item_data_unset(Slide_Item *si);
-
-slide_state_t
-ivug_slider_item_get_state(Slide_Item *si);
-
-const Media_Item *
-ivug_slider_item_data_get(Slide_Item *si);
-
-// Control
-bool
-ivug_slider_item_region_size_get(Slide_Item *si, int *x, int *y, int *w, int *h);
-
-void
-ivug_slider_item_hold_set(Slide_Item *si, Eina_Bool hold);
-
-void
-ivug_slider_item_zoom_reset(Slide_Item *si, Eina_Bool bAnim, int center_x, int center_y);
-
-void
-ivug_slider_item_zoom_set(Slide_Item *si, double zoom, int center_x, int center_y);
-
-double
-ivug_slider_item_zoom_get(Slide_Item* si);
-
-bool
-ivug_slider_item_icon_click_check(Slide_Item *si, int x, int y);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
diff --git a/main/src/view/ivug-slider-mouse.c b/main/src/view/ivug-slider-mouse.c
deleted file mode 100755 (executable)
index 2f3f190..0000000
+++ /dev/null
@@ -1,439 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-mouse-event.h"
-#include "ivug-anim.h"
-#include "ivug-slider-item.h"
-#include "ivug-slider.h"
-#include "ivug-effect.h"
-
-#include "ivug-slider-priv.h"
-
-#define SIG_CLICKED            "slider,clicked"
-#define SIG_LONGPRESSED        "slider,longpressed"
-
-#define SHIFT_THRESHOLD        (0.0f)          // 52%
-
-
-static bool _ivug_slider_check_flick(MouseEvent *down, MouseEvent *up)
-{
-#define FLICK_TIME_MAX         (200)                           //flick time value.
-#define FLICK_WIDTH_MIN        (elm_config_finger_size_get() >> 2)
-
-       if ( up->event_flags & EVAS_EVENT_FLAG_ON_HOLD )
-       {
-               MSG_SLIDER_HIGH("On hold detected");
-               return false;
-       }
-
-// Check pinch zoom right before zoom
-       if ( (up->timestamp - down->timestamp) > FLICK_TIME_MAX )
-       {
-               MSG_SLIDER_HIGH("Not flick opertion. TimeGap=%d", up->timestamp - down->timestamp);
-               return false;
-       }
-
-// TODO : Consider Y axis flick.
-       int delta_x = up->x - down->x;
-       int delta_y = up->y - down->y;
-
-       if (abs(delta_x) < FLICK_WIDTH_MIN)
-       {
-               MSG_SLIDER_HIGH("Not flick opertion. Delta X=%d Delta Y=%d", delta_x, delta_y);
-               return false;
-       }
-
-       return true;
-
-}
-
-
-static bool _ivug_slider_check_click(MouseEvent *down, MouseEvent *up)
-{
-#define CLICK_TIME_MIN         (7)
-#define CLICK_TIME_MAX         (500) /* 500 < long press */
-
-#define CLICK_WIDTH_MAX        (elm_config_finger_size_get() >> 2)
-
-       if ( down->device != up->device )
-       {
-               MSG_SLIDER_HIGH("Not click. Device=%d %d", down->device , up->device);
-               return false;
-       }
-
-       if (up->button_flags & EVAS_BUTTON_DOUBLE_CLICK)
-       {
-               MSG_SLIDER_HIGH("Up.. Double clicked!!");
-               return false;
-       }
-
-       int dTS = (up->timestamp - down->timestamp);
-       if ( (dTS < CLICK_TIME_MIN) || (dTS > CLICK_TIME_MAX) )
-       {
-               MSG_SLIDER_HIGH("Not click. TS=%d", (up->timestamp - down->timestamp));
-               return false;
-       }
-
-       unsigned int dist = get_distance(down->x, down->y, up->x, up->y);
-
-       if ( dist < (unsigned int)CLICK_WIDTH_MAX)
-       {
-               MSG_SLIDER_HIGH("Detect Clicked event. TS=%d, Dist=%d", dTS, dist);
-               return true;
-       }
-
-       MSG_SLIDER_HIGH("Not Click : TS=%dms Dis=%d", dTS, dist);
-
-       return false;
-}
-
-static Eina_Bool _long_pressed(void *data)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(data);
-
-       if (!sd) return ECORE_CALLBACK_CANCEL;
-
-       sd->long_timer = NULL;
-
-       Evas_Coord_Point down;
-
-       down.x = sd->down.x;
-       down.y = sd->down.y;
-
-       evas_object_smart_callback_call(data, SIG_LONGPRESSED, &down);
-
-       MSG_SLIDER_HIGH("Long pressed!!!!!");
-       return ECORE_CALLBACK_CANCEL;
-}
-
-static Eina_Bool _clicked(void *data)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(data);
-
-       if (!sd) return ECORE_CALLBACK_CANCEL;
-
-       sd->click_timer = NULL;
-
-       Evas_Coord_Point down;
-
-       down.x = sd->down.x;
-       down.y = sd->down.y;
-
-       // Check video icon clicked or not/
-       Slide_Item *si = sd->slide[CENTER_SLIDE];
-
-       if ( ivug_slider_item_icon_click_check(si, down.x, down.y) == true )    // Video icon clicked.
-       {
-               MSG_SLIDER_HIGH("Video icon clicked!!!!!");
-
-               evas_object_smart_callback_call(data, "slider,clicked,icon", &down);
-
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       if(sd->ss_state == SLIDE_SHOW_RUNNING)/* this click is for stop slide show */
-       {
-               ivug_slider_stop_slide_show(sd->obj);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       evas_object_smart_callback_call(data, SIG_CLICKED, &down);              // For change menu visibility
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-void _ivug_on_mouse_down(Evas_Object *obj, MouseEvent *down, void *data)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(data);
-       Slide_Item* si = sd->slide[CENTER_SLIDE];
-
-       MSG_SLIDER_HIGH("%s. down->XY(%d,%d)", __func__, down->x, down->y);
-
-//save down position.
-       sd->down = *down;
-
-// End animation
-       if(sd->animator)
-       {
-               ecore_animator_del(sd->animator);
-               sd->animator = NULL;
-
-               MSG_SLIDER_HIGH("Animation is working. stopping animation. Current SI->XY(%d,%d)", si->x, si->y);
-       }
-
-       sd->edge = _ivug_slider_edge_state_get(si);
-
-       if (down->button_flags & EVAS_BUTTON_DOUBLE_CLICK)
-       {
-               MSG_SLIDER_HIGH("Double clicked!!");
-       }
-
-       if (sd->long_timer)
-       {
-               ecore_timer_del(sd->long_timer);
-               sd->long_timer = NULL;
-       }
-
-       if (sd->click_timer)
-       {
-               ecore_timer_del(sd->click_timer);
-               sd->click_timer = NULL;
-       }
-
-       if ( sd->ss_state == SLIDE_SHOW_RUNNING)
-       {
-// Stop slide show if running. BUG : When user click , menu bar is not visible.
-//             Evas_Object *slider = (Evas_Object *)data;
-               //ivug_slider_stop_slide_show(slider);  // data is Evas_Object
-
-               return;
-       }
-
-       if ( abs(si->x) < IMAGE_MOVE_MARGIN)
-       {
-               MSG_SLIDER_HIGH("Creating long pressed timer");
-               sd->long_timer = ecore_timer_add(elm_config_longpress_timeout_get(), _long_pressed, data);
-       }
-}
-
-
-void _ivug_on_mouse_up(Evas_Object *obj, MouseEvent *up, void *data)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(data);
-
-       sd->up = *up;
-
-       Slide_Item *si = sd->slide[CENTER_SLIDE];
-
-       MSG_SLIDER_HIGH("Mouse Up : si->XYWH(%d,%d,%d,%d)", si->x, si->y, si->w, si->h);
-
-       if (sd->long_timer)
-       {
-               ecore_timer_del(sd->long_timer);
-               sd->long_timer = NULL;
-       }
-
-// Find Scroll Direction
-       shift_direction_t dir = SLIDE_SHIFT_NONE;
-
-// TODO How to make simpler below routine???
-       if ( _ivug_slider_check_flick(&sd->down, up) == true)   // If flick
-       {
-               int delta_x = up->x - sd->down.x;
-//             int delta_y = up->y - sd->down.y;
-
-               {
-                       if ( (sd->edge & SLIDE_RIGHT_EDGE) && (delta_x < 0))  // Mouse : <--
-                       {
-                               // <---------
-                               if ( sd->slide[NEXT_SLIDE]->state != SLIDE_STATE_NONE )
-                               {
-                                       dir = SLIDE_SHIFT_TO_RIGHT;
-                               }
-                       }
-                       else if ( (sd->edge & SLIDE_LEFT_EDGE) && (delta_x > 0) )  // Mouse : -->
-                       {
-                               // ------>
-                               if ( sd->slide[PREV_SLIDE]->state != SLIDE_STATE_NONE )
-                               {
-                                       dir = SLIDE_SHIFT_TO_LEFT;
-                               }
-                       }
-               }
-       }
-       else
-       {
-               MSG_SLIDER_HIGH("Si->x=%d", si->x);
-//             if ( si->x == 0 )               // If not moving state
-//             {
-                       if ( _ivug_slider_check_click(&sd->down, up) == true )
-                       {
-                               sd->click_timer = ecore_timer_add(0.2f, _clicked, data);
-                               // Clicked event
-//                                     evas_object_smart_callback_call(data, SIG_CLICKED, &sd->down.x);
-                       }
-
-//             }
-
-               // Not flick. check up position.
-               if ( si->x > sd->w * (SHIFT_THRESHOLD) )
-               {
-                       // Scroll to --->
-                       if ( sd->slide[PREV_SLIDE]->state != SLIDE_STATE_NONE )         // Check left end
-                       {
-                               dir = SLIDE_SHIFT_TO_LEFT;
-                       }
-               }
-               else if (si->x + si->w < sd->w * (1.0f - SHIFT_THRESHOLD) )
-               {
-                       // Scroll to <---
-                       if ( sd->slide[NEXT_SLIDE]->state != SLIDE_STATE_NONE )         // Check left end
-                       {
-                               dir = SLIDE_SHIFT_TO_RIGHT;
-                       }
-               }
-       }
-
-       switch(dir)
-       {
-       case SLIDE_SHIFT_TO_LEFT:
-               MSG_SLIDER_HIGH("Scroll --->");
-
-               _ivug_slider_slide_update(sd, sd->slide[CENTER_SLIDE]->x,
-                                               sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN);
-               if(sd->ss_state == SLIDE_SHOW_RUNNING)
-               {
-                       sd->bSS_SlideFlag = EINA_TRUE;
-                       ivug_slider_stop_slide_show(sd->obj);
-               }
-               break;
-
-       case SLIDE_SHIFT_TO_RIGHT:
-               MSG_SLIDER_HIGH("Scroll <---");
-
-               _ivug_slider_slide_update(sd, sd->slide[CENTER_SLIDE]->x,
-                                               -sd->slide[CENTER_SLIDE]->w - IMAGE_BETWEEN_MARGIN);
-               if(sd->ss_state == SLIDE_SHOW_RUNNING)
-               {
-                       sd->bSS_SlideFlag = EINA_TRUE;
-                       ivug_slider_stop_slide_show(sd->obj);
-               }
-               break;
-
-       case SLIDE_SHIFT_NONE:
-
-               MSG_SLIDER_HIGH("Scroll to center");
-
-               if ( sd->slide[CENTER_SLIDE]->x == 0 )
-               {
-                       MSG_SLIDER_WARN("No need to animation");
-                       return;
-               }
-
-               _ivug_slider_slide_update(sd,sd->slide[CENTER_SLIDE]->x , 0);
-
-               break;
-
-       }
-
-
-
-}
-
-
-void _ivug_on_mouse_move(Evas_Object *obj, MouseEvent *prev, MouseEvent *cur, void *data)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(data);
-       Slide_Item* si = sd->slide[CENTER_SLIDE];
-
-       if (sd->long_timer)
-       {
-               Evas_Coord dx, dy;
-               dx = sd->down.x - cur->x;
-               dx *= dx;
-               dy =sd->down.y - cur->y;
-               dy *= dy;
-
-               if ((dx + dy) > LONG_PRESS_MARGIN * LONG_PRESS_MARGIN)
-               {
-                       MSG_SLIDER_HIGH("%s delete long timer. Move:%d Margin:%d", __func__, (dx + dy),  LONG_PRESS_MARGIN * LONG_PRESS_MARGIN );
-                       ecore_timer_del(sd->long_timer);        //delete long press.
-                       sd->long_timer = NULL;
-               }
-       }
-//     MSG_SLIDER_HIGH("%s. XY(%d,%d)", __func__, cur->x, cur->y);
-// TODO : check slide move threshhold
-       if ( sd->edge == SLIDE_NO_EDGE )
-       {
-               MSG_SLIDER_MED("Photocam handle this event");
-               return;
-       }
-
-       int dst_x, dst_y;
-
-       dst_x = si->x + (cur->x - prev->x);
-       dst_y = si->y + (cur->y - prev->y);
-
-       MSG_SLIDER_MED("%s. Edge=%d Cur XY(%d,%d) Prev XY(%d,%d) SI->XY(%d,%d) Dest(%d,%d)", __func__,sd->edge,
-                       cur->x, cur->y, prev->x, prev->y, si->x, si->y, dst_x, dst_y);
-
-// If left-most or right-most image, do not scroll.
-       if (  ivug_slider_item_data_get(sd->slide[NEXT_SLIDE]) == NULL )                // Is left-most image?
-       {
-               MSG_SLIDER_MED("Next item is NULL. dst_x=%d", dst_x);
-
-               if ( dst_x < 0 )
-               {
-                       MSG_SLIDER_MED("No allowed scroll to right");
-                       _ivug_slider_pass_event_to_item(sd, EINA_FALSE);
-                       return;
-               }
-       }
-
-       if (  ivug_slider_item_data_get(sd->slide[PREV_SLIDE]) == NULL )                // Is right-most image?
-       {
-               MSG_SLIDER_MED("Prev item is NULL. dst_x=%d", dst_x);
-               if ( dst_x > 0 )
-               {
-                       MSG_SLIDER_MED("No allowed scroll to left");
-                       _ivug_slider_pass_event_to_item(sd, EINA_FALSE);
-                       return;
-               }
-       }
-       if ( (sd->edge & SLIDE_LEFT_EDGE) && (dst_x > IMAGE_SCROLL_MARGIN))
-       {
-               MSG_SLIDER_MED("Case 1. edge=%d, X=%d", sd->edge, dst_x);
-
-               _ivug_slider_pass_event_to_item(sd, EINA_FALSE);
-
-               _ivug_slider_slide_update_pos(sd, dst_x  , si->y);  //update
-               _ivug_slider_slide_update_shift(sd);
-
-               return;
-       }
-
-       if ( (sd->edge & SLIDE_RIGHT_EDGE) && (dst_x < -IMAGE_SCROLL_MARGIN))
-       {
-               MSG_SLIDER_MED("Case 2. edge=%d, X=%d", sd->edge, dst_x);
-               _ivug_slider_pass_event_to_item(sd, EINA_FALSE);
-
-               _ivug_slider_slide_update_pos(sd, dst_x  , si->y);  //update
-               _ivug_slider_slide_update_shift(sd);
-
-               return;
-       }
-
-       if ( (sd->edge & SLIDE_FIT) != SLIDE_FIT)
-       {
-               MSG_SLIDER_MED("Case 3. edge=%d", sd->edge);
-               _ivug_slider_pass_event_to_item(sd, EINA_TRUE);         // Send event to phtocam
-               sd->edge = SLIDE_NO_EDGE;
-       }
-
-       if (dst_x >= -IMAGE_SCROLL_MARGIN && dst_x <= IMAGE_SCROLL_MARGIN)
-       {
-               MSG_SLIDER_MED("Case 4. It isn't over IMAGE_SCROLL_MARGIN");
-               return ;
-       }
-
-       MSG_SLIDER_ERROR("Debug Me NEw edge=%d delta_x=%d si->x=%d", sd->edge, dst_x, si->x);
-       return;
-
-}
-
diff --git a/main/src/view/ivug-slider-priv.h b/main/src/view/ivug-slider-priv.h
deleted file mode 100755 (executable)
index 2bc2f3d..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-data.h"
-
-#ifndef __IVUG_SLIDER_PRIV_H__
-#define __IVUG_SLIDER_PRIV_H__
-
-/* elm_config_finger_size_get = 40 */
-#define IMAGE_BETWEEN_MARGIN           (30)                                    // The value is width between photocam(unit is pixel).
-#define IMAGE_MOVE_MARGIN                      ((int)IMAGE_BETWEEN_MARGIN*0.8)
-/* If moved width is larger than IMAGE_SCROLL_MARGIN, image is scrolled */
-#define IMAGE_SCROLL_MARGIN            (5) /* vertical move doen't over 5 pixel width */
-#define LONG_PRESS_MARGIN                      ((int)(elm_config_finger_size_get() / 3))
-
-typedef enum {
-       SLIDE_NO_EDGE = (1<<0),
-
-       SLIDE_LEFT_EDGE = (1<<1),
-       SLIDE_RIGHT_EDGE = (1<<2),
-
-       SLIDE_TOP_EDGE = (1<<3),
-       SLIDE_BOTTOM_EDGE = (1<<4),
-
-       SLIDE_FIT = SLIDE_LEFT_EDGE | SLIDE_RIGHT_EDGE | SLIDE_TOP_EDGE | SLIDE_BOTTOM_EDGE,
-} slide_edge_t;
-
-typedef enum {
-       SLIDE_SHIFT_NONE = 0x00,
-       SLIDE_SHIFT_TO_RIGHT,           // <---------------------Mouse
-       SLIDE_SHIFT_TO_LEFT,            // Mouse--------------------->
-} shift_direction_t;
-
-
-//ENUM
-typedef enum {
-       CENTER_SLIDE,
-       NEXT_SLIDE,
-       PREV_SLIDE,
-       MAX_SLIDE,
-} slide_index_t;
-
-// slider
-typedef struct Smart_Data
-{
-       Evas_Object *obj;                               // smart object itself.
-
-       Evas_Object *event_obj;                 // Event receiver layer
-
-       Evas_Coord x, y, w, h;                  // Geometry of slider
-
-//silde
-       Slide_Item* slide[MAX_SLIDE];
-//     Media_Item* mitem[MAX_SLIDE];
-
-//data list
-       Eina_Bool bShow;
-
-       Media_List*     media_list;             // Storing entire media list.
-       Media_Item*     current;                // Current medit item. Is it needed??
-
-       int cur_list_idx;
-       int next_list_idx;      /* for slide show */
-       int list_total_count;
-
-//Mouse Event
-       MouseEvent down;
-       MouseEvent up;
-
-// for flick anim
-       anim_handle_t *anim;
-       Ecore_Animator *animator;
-       double t_base;
-
-//slider show.
-       slideshow_state_t ss_state;
-
-       Ecore_Timer *ss_timer;  //slide show timer
-       ivug_slider_slide_show_finish_cb ss_func;               // Callback for slide show finished
-       void* ss_user_data;
-       Eina_Bool bSS_StopFlag; /* request slide show stop flag */
-       Eina_Bool bSS_SlideFlag; /* it was slided by user during slide show */
-
-//Mouse event handler
-       Ivug_Event_Handle mouse_event;
-
-       slide_edge_t edge;
-
-// For detecting long pressed
-       Ecore_Timer *long_timer;
-
-// For detecting click
-       Ecore_Timer *click_timer;
-
-/* For window loading */
-       Ecore_Idler* idler_list;
-
-/* slide show setting */
-       double ss_interval_time;
-       slide_show_mode ss_mode;
-
-/* slide show effect*/
-       Effect_Type effect_type;
-       Effect_Engine* effect_engine;
-
-       Ecore_Idler *load_idler;
-} _Smart_Data;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-// Common function between slide show and slider.
-
-#define _ivug_slider_edge_state_get(si) __ivug_slider_edge_state_get(si, __func__, __LINE__)
-
-slide_edge_t __ivug_slider_edge_state_get(Slide_Item *si, const char *func, int line);
-
-void _ivug_slider_slide_update_shift_right(struct Smart_Data *sd);
-
-void _ivug_slider_slide_update_pos(struct Smart_Data *sd, Evas_Coord x, Evas_Coord y);
-
-void _ivug_slider_restore_window_list(struct Smart_Data *sd);
-
-
-// Common function between slide and slide mouse.
-
-void _ivug_slider_slide_update(struct Smart_Data *sd, int x, int y);
-
-void _ivug_slider_pass_event_to_item(struct Smart_Data *sd, Eina_Bool bPass);
-
-void _ivug_slider_slide_update_shift(struct Smart_Data *sd);
-
-
-void _ivug_on_mouse_down(Evas_Object *obj, MouseEvent *down, void *data);
-
-void _ivug_on_mouse_up(Evas_Object *obj, MouseEvent *up, void *data);
-
-void _ivug_on_mouse_move(Evas_Object *obj, MouseEvent *prev, MouseEvent *cur, void *data);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-#endif // __IVUG_SLIDER_PRIV_H__
-
diff --git a/main/src/view/ivug-slider-slideshow.c b/main/src/view/ivug-slider-slideshow.c
deleted file mode 100755 (executable)
index 3e2e7bb..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 "ivug-common.h"
-#include "ivug-main.h"
-
-#include "ivug-slider.h"
-#include "ivug-mouse-event.h"
-#include "ivug-slider-item.h"
-#include "ivug-anim.h"
-#include "ivug-effect.h"
-#include "ivug-slider-priv.h"
-#include "ivug-data.h"
-#include "ivug-data-shuffle.h"
-
-
-static const char *_get_ss_state(slideshow_state_t state)
-{
-       const char *szMsg[] = {"Stopped", "Running",  "Paused" };
-
-       return szMsg[state];
-}
-
-
-void _ivug_slider_effect_finished(void *data)
-{
-       struct Smart_Data* sd = (struct Smart_Data*) data;
-       ivug_ret_if(!sd);
-
-       MSG_SLIDER_HIGH("Slide Effect ended");
-
-       if(sd->effect_engine)
-       {
-               ivug_effect_finalize(sd->effect_engine);
-               sd->effect_engine = NULL;
-       }
-
-       if (sd->slide[NEXT_SLIDE]->mitem && sd->bSS_SlideFlag == EINA_FALSE)
-       {
-               _ivug_slider_slide_update_shift_right(sd);
-       }
-
-       // Update edge state
-       sd->edge = _ivug_slider_edge_state_get(sd->slide[CENTER_SLIDE]);
-
-       if(sd->bSS_StopFlag == EINA_TRUE)
-       {
-               sd->ss_state = SLIDE_SHOW_STOPPED;
-               MSG_SLIDER_HIGH("effect_engine is finished");
-               evas_object_smart_callback_call(sd->obj, "slider,slideshow,interrupted", (void *)sd->slide[CENTER_SLIDE]);
-               ivug_slider_restore_window_list(sd->obj);
-               sd->bSS_StopFlag = EINA_FALSE;
-       }
-}
-
-
-// Slide Show related functions.
-static Eina_Bool
-_ivug_slider_slide_show_cb(void *data)
-{
-       IV_ASSERT(data != NULL);
-
-       struct Smart_Data* sd = (struct Smart_Data*) data;
-
-       if(sd->ss_state == SLIDE_SHOW_STOPPED)  /* stopped by other operation */
-       {
-               sd->ss_timer = NULL;
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       Media_Item *item = NULL;
-
-       if(sd->ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               item = ivug_data_get_next_shuffle_item(sd->media_list);
-       }
-       else    // shuffle slideshow is off
-       {
-               item = ivug_data_get_next(sd->slide[CENTER_SLIDE]->mitem);
-       }
-
-       //calc slide show
-       if (  item != NULL || (sd->ss_mode & SLIDE_SHOW_MODE_REPEAT))   /* repeat is endless */
-       {
-               MSG_SLIDER_HIGH("ivug_effect_add Effect=%d", sd->effect_type);
-
-               Effect_Engine *eng = ivug_effect_add(sd->effect_type);
-
-               if(eng == NULL)
-               {
-                       MSG_SLIDER_ERROR("Cannot create effect NULL");
-                       return ECORE_CALLBACK_CANCEL;
-               }
-
-               sd->effect_engine = eng;
-       ivug_effect_init(sd->effect_engine, sd->slide[CENTER_SLIDE]->layout, sd->slide[NEXT_SLIDE]->layout, sd->w, sd->h, 0);
-
-               ivug_effect_start(sd->effect_engine, _ivug_slider_effect_finished, sd);
-
-               return ECORE_CALLBACK_RENEW;
-       }
-       else
-       {
-               MSG_SLIDER_HIGH("Reached end of images. Stop slide show");
-
-               sd->ss_timer = NULL;
-               evas_object_smart_callback_call(sd->obj, "slider,slideshow,finished", (void *)sd->slide[CENTER_SLIDE]);
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-}
-
-
-static Eina_Bool
-_ivug_slider_slide_finish_cb(void *data)
-{
-       IV_ASSERT(data != NULL);
-
-       struct Smart_Data* sd = (struct Smart_Data*) data;
-
-       sd->ss_timer = NULL;
-
-       evas_object_smart_callback_call(sd->obj, "slider,slideshow,finished", (void *)sd->slide[CENTER_SLIDE]);
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-
-static Effect_Type
-ivug_slider_get_trans_effect(ivug_effect_type type)
-{
-       MSG_SLIDER_MED("type %d", type);
-
-       switch(type)
-       {
-               case IVUG_EFFECT_TYPE_SLIDE:
-                       return EFFECT_SLIDE;
-               break;
-
-               default:
-                       break;
-       }
-
-       return EFFECT_NONE;
-}
-
-
-void
-ivug_slider_start_slide_show(Evas_Object* obj, Eina_Bool bSlideFirst)
-{
-       IV_ASSERT(obj != NULL);
-
-       struct Smart_Data *sd = (struct Smart_Data *)evas_object_smart_data_get(obj);
-       IV_ASSERT(sd != NULL);
-
-       ivug_effect_type ivug_effect = IVUG_EFFECT_TYPE_SLIDE;
-
-       ivug_config_get_slideshow_setting(&(sd->ss_mode), &(sd->ss_interval_time), &ivug_effect);
-
-       MSG_SLIDER_HIGH("Start slide show. Interval=%f Effect=%d", sd->ss_interval_time, ivug_effect);
-
-       if(sd->ss_interval_time < 0)
-       {
-               MSG_SLIDER_HIGH("slide show interval time is invalid !!!");
-               ivug_slider_stop_slide_show(obj);
-               return ;
-       }
-
-//     sd->ss_interval_time = 6.0f;            // Test
-
-       if ( sd->ss_state == SLIDE_SHOW_RUNNING )
-       {
-               MSG_SLIDER_WARN("Slide show is running. remove previous one.");
-               ivug_slider_stop_slide_show(obj);
-       }
-
-       if ( sd->effect_engine != NULL )
-       {
-               MSG_SLIDER_FATAL("Debug Me!!!");
-               return ;
-       }
-
-       sd->bSS_SlideFlag = EINA_FALSE;
-       sd->bSS_StopFlag = EINA_FALSE;
-
-       sd->effect_type = ivug_slider_get_trans_effect(ivug_effect);
-
-       ivug_data_set_window_size(sd->media_list, IV_WINDOW_SIZE_FOR_SLIDE_SHOW);
-
-       ///////////////////////////////////////////////////////
-       if(sd->ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               {
-                       ivug_data_init_shuffle_slide_show(sd->media_list, sd->ss_mode, sd->cur_list_idx, sd->list_total_count);
-               }
-       }
-
-       ivug_slider_item_data_unset(sd->slide[NEXT_SLIDE]);
-// TODO : parameter of ivug_data_get_current_slide_show_item() is too complex!!!!
-       Media_Item *item = ivug_data_get_current_slide_show_item(sd->media_list,  sd->ss_mode, sd->cur_list_idx, &(sd->next_list_idx), sd->list_total_count);
-
-       if(item == NULL)
-       {
-               MSG_SLIDER_ERROR("Item is NULL. CurIndex=%d", sd->cur_list_idx);
-
-               ivug_data_set_window_size(sd->media_list, IV_WINDOW_SIZE);
-               if(sd->ss_timer) {
-                       ecore_timer_del(sd->ss_timer);
-                       sd->ss_timer = NULL;
-               }
-               sd->ss_timer = ecore_timer_add(sd->ss_interval_time, _ivug_slider_slide_finish_cb, sd);
-               return;
-       }
-
-       ivug_data_append_media_item(sd->media_list, item);
-       ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item); //set iterator
-       ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]);
-
-        /* set sd->slide[NEXT_SLIDE] 's next item*/
-       ivug_data_set_next_slide_show_item(sd->media_list, sd->ss_mode, &(sd->next_list_idx), sd->list_total_count);
-
-       sd->ss_state = SLIDE_SHOW_RUNNING;
-       if(bSlideFirst == EINA_TRUE)
-       {
-               if ( _ivug_slider_slide_show_cb(sd) == ECORE_CALLBACK_CANCEL )
-               {
-                       MSG_SLIDER_WARN("Slide ended????");
-                       ivug_data_set_window_size(sd->media_list, IV_WINDOW_SIZE);
-                       return;
-               }
-       }
-       if(sd->ss_timer) {
-               ecore_timer_del(sd->ss_timer);
-               sd->ss_timer = NULL;
-       }
-       sd->ss_timer = ecore_timer_add(sd->ss_interval_time, _ivug_slider_slide_show_cb, sd);
-
-       MSG_SLIDER_HIGH("Slide show started!");
-
-// if it is last slide, need hide menu bar
-}
-
-void
-ivug_slider_pause_slide_show(Evas_Object* obj)
-{
-       IV_ASSERT(obj != NULL);
-
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       IV_ASSERT(sd != NULL);
-
-       MSG_SLIDER_HIGH("Pause slide show. state=%s", _get_ss_state(sd->ss_state));
-
-       if(sd->ss_timer)
-       {
-               ecore_timer_freeze(sd->ss_timer);
-       }
-
-       sd->ss_state = SLIDE_SHOW_PAUSE;
-}
-
-void
-ivug_slider_resume_slide_show(Evas_Object* obj)
-{
-       IV_ASSERT(obj != NULL);
-
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       IV_ASSERT(sd != NULL);
-
-       MSG_SLIDER_HIGH("Resume slide show. state=%s", _get_ss_state(sd->ss_state));
-
-       if(sd->ss_timer)
-       {
-               ecore_timer_thaw(sd->ss_timer);
-       }
-
-       sd->ss_state = SLIDE_SHOW_RUNNING;              // TODO : Buggy
-}
-
-void
-ivug_slider_stop_slide_show(Evas_Object* obj)
-{
-       IV_ASSERT(obj != NULL);
-
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       IV_ASSERT(sd != NULL);
-
-       if ( sd->ss_state != SLIDE_SHOW_RUNNING )
-       {
-               MSG_SLIDER_WARN("Stop slide show. but not run state. state=%s", _get_ss_state(sd->ss_state) );
-               return;
-       }
-
-       MSG_SLIDER_HIGH("Stop slide show. XY(%d,%d)", sd->x, sd->y);
-       sd->bSS_StopFlag = EINA_TRUE;
-
-       //delete timmer
-       if(sd->ss_timer) {
-               ecore_timer_del(sd->ss_timer);
-               sd->ss_timer = NULL;
-       }
-
-       if(sd->ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               ivug_data_deinit_shuffle_slide_show(sd->media_list,
-                                                                                       sd->list_total_count);
-       }
-
-       ivug_data_set_window_size(sd->media_list, IV_WINDOW_SIZE);
-
-       if(sd->effect_engine == NULL)
-       {
-               sd->ss_state = SLIDE_SHOW_STOPPED;
-               MSG_SLIDER_HIGH("effect_engine is NULL");
-               evas_object_smart_callback_call(sd->obj, "slider,slideshow,interrupted", (void *)sd->slide[CENTER_SLIDE]);
-               ivug_slider_restore_window_list(sd->obj);
-               sd->bSS_StopFlag = EINA_FALSE;
-       }
-}
-
-
diff --git a/main/src/view/ivug-slider.c b/main/src/view/ivug-slider.c
deleted file mode 100755 (executable)
index fe5645b..0000000
+++ /dev/null
@@ -1,1245 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 <ui-gadget-module.h>          // ug_destroy_me, ug_send_result
-
-#include "ivug-slider.h"
-#include "ivug-common.h"
-#include "ivug-main.h"
-
-#include "ivug-parameter.h"
-#include "ivug-define.h"
-#include "ivug-effect.h"
-#include "ivug-config.h"
-
-#include "ivug-util.h"
-#include "ivug-data.h"
-#include "ivug-data-shuffle.h"
-
-#include "ivug-mouse-event.h"
-#include "ivug-slider-item.h"
-#include "ivug-anim.h"
-#include "ivug-slider-priv.h"
-
-#undef LOG_TAG
-#define LOG_TAG "IV-SLIDER"
-
-#define DEFFERED_LOADING
-
-#define ANI_TIME_FLICK (0.2f)
-
-static Eina_Bool _ivug_slider_on_animation(void *data);
-
-//smart object
-static void
-_ivug_slider_smart_init(void);
-static void
-_ivug_slider_smart_add(Evas_Object *obj);
-static void
-_ivug_slider_smart_del(Evas_Object *obj);
-static void
-_ivug_slider_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y);
-static void
-_ivug_slider_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h);
-static void
-_ivug_slider_smart_show(Evas_Object *obj);
-static void
-_ivug_slider_smart_hide(Evas_Object *obj);
-static void
-_ivug_slider_smart_color_set(Evas_Object *obj, int r, int g, int b, int a);
-static void
-_ivug_slider_smart_clip_set(Evas_Object *obj, Evas_Object * clip);
-static void
-_ivug_slider_smart_clip_unset(Evas_Object *obj);
-
-/* local subsystem globals */
-static Evas_Smart *_smart_ = NULL;
-
-// Smart Object
-static void
-_ivug_slider_smart_init(void)
-{
-       if (_smart_) return;
-       {
-               const char* name = eina_stringshare_add("ivug-slider");
-               MSG_SLIDER_MED("name=%s", name);
-               static Evas_Smart_Class sc =
-               {
-                       NULL,
-                       EVAS_SMART_CLASS_VERSION,
-                       _ivug_slider_smart_add,
-                       _ivug_slider_smart_del,
-                       _ivug_slider_smart_move,
-                       _ivug_slider_smart_resize,
-                       _ivug_slider_smart_show,
-                       _ivug_slider_smart_hide,
-                       _ivug_slider_smart_color_set,
-                       _ivug_slider_smart_clip_set,
-                       _ivug_slider_smart_clip_unset,
-                       NULL,
-                       NULL,
-                       NULL,
-                       NULL,
-                       NULL,
-                       NULL,
-                       NULL
-               };      //Evas_smart_Class
-               sc.name = name;
-               _smart_ = evas_smart_class_new(&sc);
-       }
-}
-
-
-void
-_ivug_slider_pass_event_to_item(struct Smart_Data *sd, Eina_Bool bPass)
-{
-       int i = 0;
-
-       if ( bPass == EINA_TRUE)
-       {
-               MSG_SLIDER_HIGH("Photocam can get Event");
-// Later, will enable below code.
-//             evas_object_repeat_events_set(sd->event_obj, EINA_TRUE );
-       }
-       else
-       {
-               MSG_SLIDER_MED("Photocam can not get Event");
-//             evas_object_repeat_events_set(sd->event_obj, EINA_FALSE );
-       }
-
-       for (i = 0; i < MAX_SLIDE; i++)
-       {
-               ivug_slider_item_hold_set(sd->slide[i], !bPass);
-       }
-}
-
-
-#define _ivug_slider_edge_state_get(si) __ivug_slider_edge_state_get(si, __func__, __LINE__)
-
-slide_edge_t __ivug_slider_edge_state_get(Slide_Item *si, const char *func, int line)
-{
-       int nx, ny, nw, nh;
-
-       slide_edge_t result = SLIDE_NO_EDGE;
-
-       if ( ivug_slider_item_region_size_get(si, &nx, &ny, &nw, &nh) == false)
-       {
-               // false means video file item. in this case, no photocam exists.
-               MSG_SLIDER_HIGH("[%20s:%4d] Slide fit. Thumbnail only", func, line);
-               result = SLIDE_FIT;
-       }
-       else
-       {
-               if ( nw <= (si->w + IMAGE_SCROLL_MARGIN) && (nh <= si->h + IMAGE_SCROLL_MARGIN))
-               {
-                       MSG_SLIDER_HIGH("[%20s:%4d] Slide fit", func, line);
-                       result = SLIDE_FIT;
-               }
-               else
-               {
-                       MSG_SLIDER_HIGH("No edge!!");
-                       return SLIDE_NO_EDGE;
-               }
-       }
-
-       if ( result == SLIDE_NO_EDGE )
-       {
-               MSG_SLIDER_HIGH("[%20s:%4d] image over screen. %d", func, line, result);
-       }
-
-       return result;
-}
-
-static Eina_Bool _idler_loading_func(void* data)
-{
-       struct Smart_Data *sd = data;
-
-       int i;
-       sd->load_idler = NULL;
-
-       if ( sd->slide[CENTER_SLIDE]->state == SLIDE_STATE_READY )      // Center image must be loaded even while other image is loading.
-       {
-               ivug_slider_item_data_loading(sd->slide[CENTER_SLIDE]);
-               goto end;
-       }
-
-       for ( i = 0; i < MAX_SLIDE ; i++)
-       {
-               if ( sd->slide[i]->state == SLIDE_STATE_LOADING )
-               {
-                       goto end;
-               }
-       }
-
-       if ( sd->slide[NEXT_SLIDE]->state == SLIDE_STATE_READY )
-       {
-               ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]);
-               goto end;
-       }
-
-       if ( sd->slide[PREV_SLIDE]->state == SLIDE_STATE_READY )
-       {
-               ivug_slider_item_data_loading(sd->slide[PREV_SLIDE]);
-               goto end;
-       }
-
-       MSG_SLIDER_WARN("Set Data loading State=%d,%d,%d",
-               sd->slide[PREV_SLIDE]->state,
-               sd->slide[CENTER_SLIDE]->state,
-               sd->slide[NEXT_SLIDE]->state
-               );
-
-
-end:
-       return ECORE_CALLBACK_CANCEL;
-
-}
-
-
-static Eina_Bool
-_ivug_slider_set_window_loading_idler(void* data)
-{
-       ivug_retv_if(!data, ECORE_CALLBACK_CANCEL);
-
-       struct Smart_Data *sd = (struct Smart_Data *)data;
-       ivug_retv_if(!sd, ECORE_CALLBACK_CANCEL);
-
-       Load_State status = IVUG_SLIDER_LOADED_NONE;
-
-       if(sd->ss_state != SLIDE_SHOW_RUNNING)
-       {
-               status = ivug_data_set_window_loading(sd->media_list, sd->cur_list_idx, sd->list_total_count);
-               switch(status)
-               {
-                       case IVUG_SLIDER_LOADED_RIGHT:
-                               if(sd->slide[NEXT_SLIDE]->mitem == NULL)
-                               {
-                                       Media_Item *item = ivug_data_get_next(sd->slide[CENTER_SLIDE]->mitem);
-                                       if(item != NULL)        /* loaded but not set yet */
-                                       {
-                                               MSG_SLIDER_HIGH("SET NEXT!!!!!!!!!!");
-                                               ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item); //set data.
-#ifdef DEFFERED_LOADING
-                                               if ( sd->load_idler == NULL )
-                                               {
-                                                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-                                               }
-#else
-                                               ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]); //set data.
-#endif
-
-                                       }
-                               }
-                               break;
-                       case IVUG_SLIDER_LOADED_LEFT:
-                               if(sd->slide[PREV_SLIDE]->mitem == NULL)
-                               {
-                                       Media_Item *item = ivug_data_get_prev(sd->slide[CENTER_SLIDE]->mitem);
-                                       if(item != NULL)        /* loaded but not set yet */
-                                       {
-                                               MSG_SLIDER_HIGH("SET PREV!!!!!!!!!!");
-                                               ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item); //set data.
-#ifdef DEFFERED_LOADING
-                                               if ( sd->load_idler == NULL )
-                                               {
-                                                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-                                               }
-#else
-                                               ivug_slider_item_data_loading(sd->slide[PREV_SLIDE]); //set data.
-#endif
-
-                                       }
-                               }
-                               break;
-                       default :
-                                MSG_SLIDER_WARN("Unhandled state : %d", status);
-                               break;
-               }
-       }
-       else
-       {
-               MSG_SLIDER_HIGH("SLIDE_SHOW_RUNNING!!!!!!!!!!");
-               ivug_data_set_next_slide_show_item(sd->media_list, sd->ss_mode, &(sd->next_list_idx), sd->list_total_count);
-       }
-
-       if (sd->idler_list)
-       {
-               ecore_idler_del(sd->idler_list);
-               sd->idler_list = NULL;
-       }
-
-       return ECORE_CALLBACK_CANCEL;
-}
-
-void _ivug_slider_item_changed(slide_state_t state, Slide_Item *si, void *client_data)
-{
-       struct Smart_Data *sd = client_data;
-       IV_ASSERT(sd != NULL);
-
-       if ( state == SLIDE_STATE_LOADED )
-       {
-               if ( sd->slide[CENTER_SLIDE] == si )
-               {
-                       MSG_SLIDER_HIGH("Call Item state changed callback State=%d Si->State=%d", state, si->state);
-                       evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si);
-               }
-       }
-       else if (state == SLIDE_STATE_ERROR)
-       {
-               if ( sd->slide[CENTER_SLIDE] == si )
-               {
-                       MSG_SLIDER_ERROR("Decoding failed");
-                       evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si);
-               }
-       }
-       else
-       {
-               MSG_SLIDER_ERROR("Unknown state : %d", state);
-               if ( sd->slide[CENTER_SLIDE] == si )
-               {
-                       MSG_SLIDER_ERROR("Unknown state");
-                       evas_object_smart_callback_call(sd->obj, "slider,item,state,changed", si);
-               }
-       }
-
-       if ( sd->load_idler == NULL )
-       {
-               MSG_SLIDER_HIGH("Add idler for loading.");
-               sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-       }
-
-}
-
-void ivug_slider_restore_window_list(Evas_Object *obj)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-
-       MSG_SDATA_HIGH("******* restore slide show index %d", sd->cur_list_idx);
-
-       Media_Item *item = NULL;
-       Eina_List *new_list = NULL;
-       int start_index = sd->cur_list_idx;
-       int list_total_count = sd->list_total_count;
-
-       Media_Data *mdata = ivug_data_get_data(sd->slide[CENTER_SLIDE]->mitem);
-       if(mdata == NULL)
-       {
-               MSG_SLIDER_ERROR("mdata is NULL");
-               return;
-       }
-
-       char *path = mdata->filepath;
-       if(path == NULL)
-       {
-               path = mdata->fileurl;
-       }
-       ivug_data_reset_window_load_count(sd->media_list);      /* TODO : it is temp */
-       item = ivug_data_create_media_list_from_param
-                       (sd->media_list, &new_list, path, &start_index, &list_total_count);     //get list by file path.
-       if(item == NULL)
-       {
-               MSG_SLIDER_ERROR("create media list failed");
-               ug_destroy_me(gGetUGHandle());
-               return;
-       }
-
-       if (!ivug_slider_set_slide_list(sd->obj, sd->media_list, new_list, item, start_index, list_total_count))
-       {
-               MSG_SLIDER_ERROR("slide list set Error");
-               ug_destroy_me(gGetUGHandle());
-               return ;
-       }
-}
-
-
-static void
-_ivug_slider_smart_add(Evas_Object *obj)
-{
-       MSG_SLIDER_HIGH("Slider Add : 0x%08x", obj);
-
-       PERF_CHECK_BEGIN(LVL4 "add slider item");
-
-       struct Smart_Data *sd = calloc(1, sizeof(struct Smart_Data));
-       ivug_ret_if(!sd);
-
-       sd->obj = obj;
-       evas_object_smart_data_set(obj, sd);
-       int idx = 0;
-
-//create slider item.
-       for (idx = 0; idx < MAX_SLIDE; idx++)
-       {
-               sd->slide[idx] = ivug_slider_item_add(obj);
-               ivug_slider_item_set_callback(sd->slide[idx], _ivug_slider_item_changed, sd);
-       }
-
-       PERF_CHECK_END(LVL4 "add slider item");
-
-       PERF_CHECK_BEGIN(LVL4 "remants");
-
-       sd->event_obj = evas_object_rectangle_add(evas_object_evas_get(obj));
-       evas_object_color_set(sd->event_obj , 0, 0, 0, 0);              // Fully Transparent object.
-       evas_object_size_hint_align_set(sd->event_obj, EVAS_HINT_FILL, EVAS_HINT_FILL);
-       evas_object_size_hint_weight_set(sd->event_obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
-       evas_object_show(sd->event_obj);
-
-       evas_object_smart_member_add(sd->event_obj, obj);
-       evas_object_repeat_events_set(sd->event_obj, EINA_TRUE);                // mouse event should pass to phocam
-
-       mouse_callback_t cb = {0,};
-
-       cb.onMouseDown = _ivug_on_mouse_down;
-       cb.onMouseUp = _ivug_on_mouse_up;
-
-       cb.onMouseMove = _ivug_on_mouse_move;
-
-       sd->mouse_event = ivug_mouse_event_add(sd->event_obj, &cb, obj, "SLIDER");
-       sd->edge = SLIDE_FIT;
-
-       sd->idler_list = NULL;
-
-       sd->anim = create_animation();
-       set_animation_type(sd->anim,ANIM_TYPE_QUARTIC_INOUT);
-
-       PERF_CHECK_END(LVL4 "remants");
-       return;
-
-}
-
-static void
-_ivug_slider_smart_del(Evas_Object *obj)
-{
-       MSG_SLIDER_HIGH("Slider delete");
-
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_ret_if(!sd);
-
-       if(sd->click_timer)
-       {
-               ecore_timer_del(sd->click_timer);
-               sd->click_timer = NULL;
-       }
-
-       if ( sd->load_idler )
-       {
-               ecore_idler_del(sd->load_idler);
-               sd->load_idler = NULL;
-       }
-
-       if(sd->animator)
-       {
-               ecore_animator_del(sd->animator);
-               sd->animator = NULL;
-       }
-
-       if ( sd->anim )
-       {
-               delete_animation(sd->anim);
-               sd->anim  = NULL;
-       }
-       if (sd->long_timer)
-       {
-               ecore_timer_del(sd->long_timer);
-               sd->long_timer = NULL;
-       }
-
-       if(sd->ss_timer)
-       {
-               ecore_timer_del(sd->ss_timer);
-               sd->ss_timer = NULL;
-       }
-
-       if (sd->idler_list)
-       {
-               ecore_idler_del(sd->idler_list);
-               sd->idler_list = NULL;
-       }
-
-       if ( sd->event_obj )
-       {
-               ivug_mouse_event_del(sd->mouse_event);
-
-               evas_object_del(sd->event_obj);
-               sd->event_obj = NULL;
-       }
-
-       int i=0;
-       for (i = 0; i < MAX_SLIDE ; i++)        //delete layout
-       {
-               ivug_slider_item_del(sd->slide[i]);
-               sd->slide[i] = NULL;
-       }
-
-       if (sd->media_list)
-       {
-               ivug_data_delete_media_list(sd->media_list);
-       }
-
-       free(sd);
-
-       IVUG_FUNC_LEAVE();
-}
-
-
-static void
-_ivug_slider_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_ret_if(!sd);
-
-       if ((sd->x == x) && (sd->y == y)) return;
-
-       MSG_SLIDER_MED("Slider Move : XY(%d,%d)", x, y);
-
-       sd->x = x;
-       sd->y = y;
-       _ivug_slider_slide_update_pos(sd, x, y);
-
-       evas_object_move(sd->event_obj, sd->x, sd->y);
-}
-
-static void
-_ivug_slider_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
-{
-       MSG_SLIDER_HIGH("Slider Resize : WH(%d,%d)", w,h);
-
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_ret_if(!sd);
-
-       if ((sd->w == w) && (sd->h == h)) return;
-
-       sd->w = w;
-       sd->h = h;
-
-       if ( sd->animator != NULL )
-       {
-               // Remove animation during rotation
-               ecore_animator_del(sd->animator);
-               sd->animator = NULL;
-       }
-
-       //resize layout
-       int i = 0;
-       for (i = 0; i < MAX_SLIDE; i++)
-       {       //set resize
-               ivug_slider_item_resize(sd->slide[i], w, h);
-       }
-
-// Redraw items.
-       ivug_slider_item_move(sd->slide[CENTER_SLIDE], 0, 0);
-
-// TODO : so as to increas perf, dont draw slide under certain condition
-       ivug_slider_item_move(sd->slide[PREV_SLIDE], - sd->slide[PREV_SLIDE]->w - IMAGE_BETWEEN_MARGIN ,0);
-
-       int right_x;
-
-       if ( sd->w < sd->slide[CENTER_SLIDE]->w )
-       {
-               right_x =  sd->w + IMAGE_BETWEEN_MARGIN;
-       }
-       else
-       {
-               right_x =  sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN;
-       }
-
-       ivug_slider_item_move(sd->slide[NEXT_SLIDE], right_x, 0);
-
-//     evas_object_move(sd->event_obj, sd->x, sd->y);
-       evas_object_resize(sd->event_obj, sd->w, sd->h);
-}
-
-static void
-_ivug_slider_smart_show(Evas_Object *obj)
-{
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_ret_if(!sd);
-
-       if ( sd->bShow == EINA_TRUE) return;
-
-       sd->bShow = EINA_TRUE;
-
-       MSG_SLIDER_HIGH("Slider Show");
-
-       ivug_slider_item_show(sd->slide[CENTER_SLIDE]);
-       ivug_slider_item_show(sd->slide[NEXT_SLIDE]);
-       ivug_slider_item_show(sd->slide[PREV_SLIDE]);
-
-       evas_object_show(sd->event_obj);
-}
-
-static void
-_ivug_slider_smart_hide(Evas_Object *obj)
-{
-       ivug_ret_if(!obj);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-
-       if ( sd->bShow == EINA_FALSE) return;
-
-       sd->bShow = EINA_FALSE;
-
-       MSG_SLIDER_HIGH("Slider Hide");
-
-       ivug_slider_item_hide(sd->slide[CENTER_SLIDE]);
-       ivug_slider_item_hide(sd->slide[NEXT_SLIDE]);
-       ivug_slider_item_hide(sd->slide[PREV_SLIDE]);
-
-       evas_object_hide(sd->event_obj);
-}
-
-static void
-_ivug_slider_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
-{
-       MSG_SLIDER_HIGH("Slider Color set : RGBA(%d,%d,%d,%d)", r, g, b, a);
-       ivug_ret_if(!obj);
-//     struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-}
-
-static void
-_ivug_slider_smart_clip_set(Evas_Object *obj, Evas_Object * clip)
-{
-       MSG_SLIDER_HIGH("Slider Clip set : Clipper=0x%08x");
-       ivug_ret_if(!obj);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-
-       int i = 0;
-       for (i = 0; i < MAX_SLIDE; i++)
-       {       //set resize
-               ivug_slider_item_clip_set(sd->slide[i], clip);
-       }
-
-       evas_object_clip_set(sd->event_obj, clip);
-}
-
-static void
-_ivug_slider_smart_clip_unset(Evas_Object *obj)
-{
-       MSG_SLIDER_HIGH("Slider Clip unset");
-
-       ivug_ret_if(!obj);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-
-       int i = 0;
-       for (i = 0; i < MAX_SLIDE; i++)
-       {       //set resize
-               ivug_slider_item_clip_unset(sd->slide[i]);
-       }
-
-       evas_object_clip_unset(sd->event_obj);
-}
-
-/******* slide UI function *******/
-
-void
-_ivug_slider_slide_update_pos(struct Smart_Data *sd, Evas_Coord x, Evas_Coord y)
-{
-       IV_ASSERT(sd != NULL);
-
-// TODO : If size is smaller than screen's, image should be put in middle
-       ivug_slider_item_move(sd->slide[CENTER_SLIDE], x, y);
-
-// TODO : so as to increas perf, dont draw slide under certain condition
-       ivug_slider_item_move(sd->slide[PREV_SLIDE], x - sd->slide[PREV_SLIDE]->w - IMAGE_BETWEEN_MARGIN , y);
-
-       ivug_slider_item_move(sd->slide[NEXT_SLIDE],  x + sd->slide[CENTER_SLIDE]->w + IMAGE_BETWEEN_MARGIN , y);
-}
-
-
- void
-_ivug_slider_slide_update(struct Smart_Data *sd, int x, int y)
- {
-       IV_ASSERT(sd != NULL);
-
-       sd->t_base = ecore_loop_time_get();
-       set_animation(sd->anim, x, y, ANI_TIME_FLICK);
-
-       if (sd->animator == NULL)
-       {
-// In elm_config_scroll_zoom_friction_get() returns 0.5. this means 500ms.
-               if(sd->animator)
-               {
-                       ecore_animator_del(sd->animator);
-                       sd->animator = NULL;
-               }
-
-               sd->animator = ecore_animator_add(_ivug_slider_on_animation, sd);
-
-               return;
-       }
-
-       MSG_SLIDER_WARN("Updata animation is alreay exists.");
-}
-
-
-void
-_ivug_slider_slide_update_shift_right(struct Smart_Data *sd)
-{
-       ivug_ret_if(!sd);
-
-       Slide_Item* PrevSlide = NULL;
-
-       MSG_SLIDER_HIGH( "Slide shited. <-----");
-
-       Media_Item *item = ivug_data_get_next(sd->slide[NEXT_SLIDE]->mitem);            //get interator
-
-       PrevSlide = sd->slide[PREV_SLIDE];
-       ivug_slider_item_data_unset(PrevSlide);
-
-       //set init
-       sd->slide[PREV_SLIDE] = sd->slide[CENTER_SLIDE];
-       sd->slide[CENTER_SLIDE] = sd->slide[NEXT_SLIDE];
-       sd->slide[NEXT_SLIDE] = PrevSlide;
-
-       if ( item != NULL )
-       {
-               ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item); //set iterator
-#ifdef DEFFERED_LOADING
-               if ( sd->load_idler == NULL )
-               {
-                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-               }
-#else
-               ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]); //set data.
-#endif
-       }
-
-       if(sd->ss_state == SLIDE_SHOW_RUNNING )
-       {
-               MSG_SLIDER_HIGH("Slide show.. Update position. XY(%d,%d)", sd->x , sd->y);
-               _ivug_slider_slide_update_pos(sd, sd->x , sd->y);  //update
-
-               ivug_slider_item_show(sd->slide[CENTER_SLIDE]);
-               ivug_slider_item_show(sd->slide[NEXT_SLIDE]);
-               ivug_slider_item_show(sd->slide[PREV_SLIDE]);
-       }
-       else
-       {
-               _ivug_slider_slide_update_pos(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->y);  //update
-       }
-
-       if(sd->ss_state != SLIDE_SHOW_RUNNING)
-       {
-               sd->cur_list_idx++;
-       }
-       else    /* (sd->ss_state == SLIDE_SHOW_RUNNING) */
-       {
-               int ret = 0;
-               sd->cur_list_idx = sd->next_list_idx;
-               ret = ivug_data_get_next_slide_show_index(sd->media_list, sd->ss_mode, sd->next_list_idx, sd->list_total_count, true);
-               if(ret > 0)
-               {
-                       sd->next_list_idx = ret;
-               }
-       }
-       //call callback function.
-
-       MSG_SLIDER_HIGH( ">>>cur index %d,  total count %d, list_count %d <<<",
-                       sd->cur_list_idx, sd->list_total_count, eina_list_count(ivug_data_get_first(sd->media_list)));
-
-
-       ivug_slider_item_zoom_reset(sd->slide[PREV_SLIDE], EINA_FALSE, 0,0);
-
-       evas_object_smart_callback_call(sd->obj, "slider,item,changed", sd->slide[CENTER_SLIDE]);
-
-       if(sd->idler_list == NULL)
-       {
-               sd->idler_list = ecore_idler_add(_ivug_slider_set_window_loading_idler, (void *)sd);
-       }
-}
-
-
-void
-_ivug_slider_slide_update_shift_left(struct Smart_Data *sd)
-{
-       ivug_ret_if(!sd);
-
-       Slide_Item* NextSlide = NULL;
-
-       MSG_SLIDER_HIGH( "Slide shited. ----->");
-
-       Media_Item *item = ivug_data_get_prev(sd->slide[PREV_SLIDE]->mitem);             //get interator
-
-       NextSlide = sd->slide[NEXT_SLIDE];
-       ivug_slider_item_data_unset(NextSlide);
-
-       sd->slide[NEXT_SLIDE] = sd->slide[CENTER_SLIDE];
-       sd->slide[CENTER_SLIDE] = sd->slide[PREV_SLIDE];
-       sd->slide[PREV_SLIDE] = NextSlide;
-
-       if ( item != NULL )
-       {
-               ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item); //set data.
-#ifdef DEFFERED_LOADING
-               if ( sd->load_idler == NULL )
-               {
-                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-               }
-#else
-               ivug_slider_item_data_loading(sd->slide[PREV_SLIDE]); //set data.
-#endif
-       }
-
-       _ivug_slider_slide_update_pos(sd, sd->slide[CENTER_SLIDE]->x , sd->slide[CENTER_SLIDE]->y);  //update
-
-       sd->cur_list_idx--;
-       //call callback function.
-
-       ivug_slider_item_zoom_reset(sd->slide[NEXT_SLIDE], EINA_FALSE, 0,0);
-
-       evas_object_smart_callback_call(sd->obj, "slider,item,changed", sd->slide[CENTER_SLIDE]);
-
-       if(sd->idler_list == NULL)
-       {
-               sd->idler_list = ecore_idler_add(_ivug_slider_set_window_loading_idler, (void *)sd);
-       }
-
-
-}
-
- void
-_ivug_slider_slide_update_shift(struct Smart_Data *sd)
-{
-       ivug_ret_if(!sd);
-
-       shift_direction_t shift_direction = SLIDE_SHIFT_NONE;
-
-       if ( sd->slide[CENTER_SLIDE]->x + sd->slide[CENTER_SLIDE]->w < 0 )
-       {
-               shift_direction =  SLIDE_SHIFT_TO_RIGHT;
-               if ( sd->slide[NEXT_SLIDE]->mitem == NULL )             // most right position.
-               {
-                       MSG_SLIDER_HIGH("Most right position");
-
-                       _ivug_slider_slide_update(sd, sd->slide[CENTER_SLIDE]->x , 0);
-
-                       return;
-               }
-       }
-       else if ( sd->slide[CENTER_SLIDE]->x > sd->w )
-       {
-               shift_direction =  SLIDE_SHIFT_TO_LEFT;
-
-               if ( sd->slide[PREV_SLIDE]->mitem == NULL )             // most right position.
-               {
-                       MSG_SLIDER_HIGH("Most left position");
-
-                       _ivug_slider_slide_update(sd, sd->slide[CENTER_SLIDE]->x , 0);
-
-                       return;
-               }
-       }
-
-       if ( shift_direction == SLIDE_SHIFT_TO_RIGHT) // <--------------
-       {
-               _ivug_slider_slide_update_shift_right(sd);
-       }
-       else if (shift_direction == SLIDE_SHIFT_TO_LEFT)  // -------------->
-       {
-               _ivug_slider_slide_update_shift_left(sd);
-       }
-
-}
-
-static Eina_Bool
-_ivug_slider_on_animation(void *data)
-{
-       ivug_retv_if(!data, ECORE_CALLBACK_CANCEL);
-       struct Smart_Data* sd = (struct Smart_Data*) data;
-
-       int value = 0;
-
-       if ( update_animation(sd->anim, ecore_loop_time_get() - sd->t_base, &value) == false )          // If last frame
-       {
-               if(sd->animator)
-               {
-                       ecore_animator_del(sd->animator);
-                       sd->animator = NULL;
-               }
-
-               MSG_SLIDER_HIGH("Last ani frame : X pos(%d,%d,%d)",
-                                       sd->slide[PREV_SLIDE]->x, sd->slide[CENTER_SLIDE]->x, sd->slide[NEXT_SLIDE]->x);
-
-               _ivug_slider_slide_update_pos(sd, value , sd->y);  //update
-
-               _ivug_slider_slide_update_shift(sd);
-
-// Update edge state
-               sd->edge = _ivug_slider_edge_state_get(sd->slide[CENTER_SLIDE]);
-
-               return ECORE_CALLBACK_CANCEL;
-       }
-
-       _ivug_slider_slide_update_pos(sd, value, sd->y);
-
-       return ECORE_CALLBACK_RENEW;
-
-
- }
-
-
-Evas_Object*
-ivug_slider_add(Evas_Object* parent)
-{
-       Evas_Object *obj = NULL;
-       _ivug_slider_smart_init();      //init smart object for ivug slider
-
-       PERF_CHECK_BEGIN(LVL3 "evas_object_smart_add");
-
-       obj = evas_object_smart_add(evas_object_evas_get(parent), _smart_);     //create smart object.
-       ivug_retv_if(!obj, NULL);
-
-
-       PERF_CHECK_END(LVL3 "evas_object_smart_add");
-
-       MSG_SLIDER_HIGH("Slider Added Obj(0x%08x) Evas(0x%08x) Parent(0x%08x)", obj, evas_object_evas_get(parent), parent);
-
-       return obj;
-}
-
-
-int
-ivug_slider_get_total_slide_count(Evas_Object* obj)
-{
-       ivug_retv_if(!obj, -1);         // TODO
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_retv_if(!sd, -1);
-
-       if(sd->list_total_count <= 0)   //sd->media_list->left_end == -1 ||
-       {
-               sd->list_total_count = eina_list_count(ivug_data_get_first(sd->media_list));
-       }
-       return sd->list_total_count;
-
-}
-
-int
-ivug_slider_get_current_slide_count(Evas_Object* obj)
-{
-       ivug_retv_if(!obj, -1);         // TODO
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_retv_if(!sd, -1);
-
-       return sd->cur_list_idx;
-}
-
-Slide_Item *
-ivug_slider_get_current_slide_item(Evas_Object* obj)
-{
-       ivug_retv_if(!obj, NULL);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_retv_if(!sd, NULL);
-
-       return sd->slide[CENTER_SLIDE];
-}
-
-
-void
-ivug_slider_delete_current_slide(Evas_Object* obj)
-{
-       ivug_ret_if(!obj);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       IVUG_FUNC_ENTER();
-
-       if (sd == NULL)
-       {
-               MSG_SLIDER_ERROR("Slide data is NULL");
-               return;
-       }
-
-       shift_direction_t direction = SLIDE_SHIFT_NONE;
-       if (sd->slide[NEXT_SLIDE]->state != SLIDE_STATE_NONE)
-       {
-               MSG_SLIDER_HIGH("right slide state = %d ", sd->slide[NEXT_SLIDE]->state);
-               direction = SLIDE_SHIFT_TO_RIGHT;
-       }
-       else if (sd->slide[PREV_SLIDE]->state != SLIDE_STATE_NONE)
-       {
-               MSG_SLIDER_HIGH("left slide state = %d ", sd->slide[PREV_SLIDE]->state);
-               direction = SLIDE_SHIFT_TO_LEFT;
-       }
-
-       MSG_SLIDER_HIGH("shift direction = %d ", direction);
-
-       ivug_data_delete_media_item( sd->media_list ,  sd->slide[CENTER_SLIDE]->mitem );        //delete data.
-       sd->slide[CENTER_SLIDE]->mitem = NULL;
-
-       ivug_slider_item_data_unset(sd->slide[CENTER_SLIDE]);
-
-       Media_Item* item = NULL;
-
-       //move slide.
-       if (  direction  ==  SLIDE_SHIFT_TO_RIGHT )
-       {
-               Slide_Item *tmp = sd->slide[CENTER_SLIDE];
-
-               item = ivug_data_get_next(sd->slide[NEXT_SLIDE]->mitem); //get next data.
-
-               sd->slide[CENTER_SLIDE] = sd->slide[NEXT_SLIDE];
-               sd->slide[NEXT_SLIDE] = tmp;
-
-               if(item != NULL)
-               {
-                       ivug_slider_item_data_set(sd->slide[NEXT_SLIDE],  item);
-                       ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]);
-               }
-       }
-       else if ( direction  ==  SLIDE_SHIFT_TO_LEFT)           // ----------->
-       {
-               Slide_Item *tmp = sd->slide[CENTER_SLIDE];
-
-               item = ivug_data_get_prev(sd->slide[PREV_SLIDE]->mitem); //get next data.
-
-               sd->slide[CENTER_SLIDE] = sd->slide[PREV_SLIDE];
-               sd->slide[PREV_SLIDE] = tmp;
-
-               sd->cur_list_idx--;
-
-               if(item != NULL)
-               {
-                       ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item);
-                       ivug_slider_item_data_loading(sd->slide[PREV_SLIDE]);
-               }
-       }
-       else            // Shift none
-       {
-       }
-
-       _ivug_slider_slide_update_pos(sd, 0 , 0);       //update
-
-       Media_Data *sdata = NULL;
-
-       if ( sd->slide[CENTER_SLIDE]->mitem != NULL )
-       {
-               sdata = ivug_data_get_data(sd->slide[CENTER_SLIDE]->mitem);
-       }
-
-       sd->list_total_count--;
-
-       evas_object_smart_callback_call(sd->obj, "slider,item,deleted", sd->slide[CENTER_SLIDE]);
-
-       if(sd->idler_list == NULL)
-       {
-               sd->idler_list = ecore_idler_add(_ivug_slider_set_window_loading_idler, (void *)sd);
-       }
-
-       IVUG_FUNC_LEAVE();
-}
-
-Eina_Bool
-ivug_slider_set_slide_list(Evas_Object* obj, Media_List *mList, Eina_List *new_list, Media_Item *current, int index, int total_count)
-
-{
-       IV_ASSERT(obj != NULL);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-
-       ivug_retv_if(!sd, EINA_FALSE);  //check smart data.
-
-       sd->media_list = mList;
-       sd->cur_list_idx = index;
-       sd->current = current;
-       sd->list_total_count = total_count;
-
-       //set init
-       PERF_CHECK_BEGIN(LVL4 "unset prev&next");
-
-       ivug_slider_item_data_unset(sd->slide[PREV_SLIDE]);
-       ivug_slider_item_data_unset(sd->slide[NEXT_SLIDE]);
-
-       PERF_CHECK_END(LVL4 "unset prev&next");
-
-       if(new_list != NULL)
-       {
-               ivug_slider_item_change_mitem_pointer(sd->slide[CENTER_SLIDE], current);
-
-               ivug_data_delete_all_window_list(sd->media_list);               // clear window list
-               ivug_data_append_media_item(sd->media_list, new_list);
-       }
-       else
-       {
-               PERF_CHECK_BEGIN(LVL4 "set center");
-
-               ivug_slider_item_data_unset( sd->slide[CENTER_SLIDE]);
-               ivug_slider_item_data_set(sd->slide[CENTER_SLIDE], current);
-
-               ivug_slider_item_data_loading(sd->slide[CENTER_SLIDE]);
-
-               PERF_CHECK_END(LVL4 "set center");
-       }
-
-       Media_Item *item = ivug_data_get_next(current);
-       if(item != NULL)
-       {
-               PERF_CHECK_BEGIN(LVL4 "set next");
-
-               ivug_slider_item_data_set(sd->slide[NEXT_SLIDE], item);
-
-#ifdef DEFFERED_LOADING
-               if ( sd->load_idler == NULL )
-               {
-                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-               }
-#else
-               ivug_slider_item_data_loading(sd->slide[NEXT_SLIDE]); //set data.
-#endif
-
-
-               PERF_CHECK_END(LVL4 "set next");
-       }
-       item = ivug_data_get_prev(current);
-       if(item != NULL)
-       {
-               PERF_CHECK_BEGIN(LVL4 "set prev");
-
-               ivug_slider_item_data_set(sd->slide[PREV_SLIDE], item);
-
-#ifdef DEFFERED_LOADING
-               if ( sd->load_idler == NULL )
-               {
-                       sd->load_idler = ecore_idler_add(_idler_loading_func, sd);
-               }
-#else
-               ivug_slider_item_data_loading(sd->slide[PREV_SLIDE]); //set data.
-#endif
-
-
-               PERF_CHECK_END(LVL4 "set prev");
-       }
-
-       PERF_CHECK_BEGIN(LVL4 "slider,item,changed");
-
-       evas_object_smart_callback_call(sd->obj, "slider,item,changed", sd->slide[CENTER_SLIDE]);
-
-       PERF_CHECK_END(LVL4 "slider,item,changed");
-
-       return EINA_TRUE;
-}//ivug slider set list
-
-Media_Data *
-ivug_slider_create_media_list(Evas_Object* obj, ivug_parameter* ivug_param)
-{
-       // Data List
-       int list_total_count = 0;
-       int start_index = ivug_param->start_index;
-       Media_Item *item = NULL;
-       Media_List *mList = ivug_data_init_media_list(ivug_param);
-       Media_Data *mdata = NULL;
-
-       if (mList == NULL)
-       {
-               MSG_SLIDER_ERROR("media list is NULL");
-               return NULL;
-       }
-
-       PERF_CHECK_BEGIN(LVL3 "get media list");
-       item = ivug_data_create_media_list_from_param
-               (mList, NULL, ivug_param->filepath, &start_index, &list_total_count);   //get list by file path.
-       if(item == NULL)
-       {
-               MSG_SLIDER_ERROR("create media list failed");
-               free(mList);
-               return NULL;
-       }
-       PERF_CHECK_END(LVL3 "get media list");
-
-       PERF_CHECK_BEGIN(LVL3 "set slide list");
-
-       if (!ivug_slider_set_slide_list(obj, mList, NULL, item, start_index, list_total_count))
-       {
-               MSG_SLIDER_ERROR("slide list set Error");
-               free(mList);
-               return NULL;
-       }
-
-       PERF_CHECK_END(LVL3 "set slide list");
-
-//     struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-//     if(sd->ss_mode & SLIDE_SHOW_MODE_SHUFFLE)
-       {
-               PERF_CHECK_BEGIN(LVL3 "make shuffled list");
-
-               ivug_data_create_shuffled_list(mList, list_total_count);
-
-               PERF_CHECK_END(LVL3 "make shuffled list");
-       }
-
-       mdata = ivug_data_get_data(item);
-       return mdata;
-}
-
-
-char*
-ivug_slider_get_next_exist_filepath(Evas_Object* obj)
-{
-       IVUG_FUNC_ENTER();
-       ivug_retv_if(!obj, NULL);
-       struct Smart_Data *sd = (struct Smart_Data *) evas_object_smart_data_get(obj);
-       ivug_retv_if(!sd, NULL);
-
-       char* file_path = NULL;
-
-       Media_Item* next_item = ivug_data_get_next(sd->slide[CENTER_SLIDE]->mitem);
-       Media_Data *sdata = NULL;
-
-       while(next_item)
-       {
-               sdata = ivug_data_get_data(next_item);
-
-               if(sdata != NULL)               // TODO : Should review
-               {
-                       MSG_SLIDER_HIGH("sl_data%s", sdata->filepath);
-
-                       if(sdata->filepath && ecore_file_exists(sdata->filepath))
-                       {
-                               MSG_SLIDER_HIGH("exist filepath %s", sdata->filepath);
-                               file_path = sdata->filepath;
-                               break;
-                       }
-               }
-
-               next_item = ivug_data_get_next(next_item);
-       }
-
-       //All files from current are deleted, search from beginning
-       if(!file_path)
-       {
-               next_item = ivug_data_get_first(sd->media_list);
-               while(next_item && next_item != ivug_data_get_next(sd->slide[CENTER_SLIDE]->mitem))
-               {
-                       sdata = ivug_data_get_data(next_item);
-
-                       if(sdata != NULL)               // TODO : Should review
-                       {
-                               MSG_SLIDER_HIGH("sl_data%s", sdata->filepath);
-
-                               if(sdata->filepath && ecore_file_exists(sdata->filepath))
-                               {
-                                       MSG_SLIDER_HIGH("exist filepath %s", sdata->filepath);
-                                       file_path = sdata->filepath;
-                                       break;
-                               }
-                       }
-
-                       next_item = ivug_data_get_next(next_item);
-               }
-       }
-
-       IVUG_FUNC_LEAVE();
-
-       return file_path;
-}
-
-
diff --git a/main/src/view/ivug-slider.h b/main/src/view/ivug-slider.h
deleted file mode 100755 (executable)
index bff73c2..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2012  Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
- *
- * 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 __IVUG_SLIDER_H__
-#define __IVUG_SLIDER_H__
-
-#include "ivug-data.h"
-#include "ivug-slider-item.h"
-
-typedef enum {
-       SLIDE_SHOW_STOPPED = 0x00,
-       SLIDE_SHOW_RUNNING,
-       SLIDE_SHOW_PAUSE,
-} slideshow_state_t;
-
-
-//define callback function.
-typedef void (*ivug_slider_shift_cb)(Media_Data *cur_sd, void* user_data);
-typedef void (*ivug_slider_delete_cb)(Media_Data *cur_sd, void* user_data);
-typedef void (*ivug_slider_slide_show_finish_cb)(Media_Data *cur_sd, void* user_data);
-
-/*
-       Slider signal list.
-
-       "slider,clicked" : when click once
-       "slider,clicked,double" : when double click
-       "slider,longpressed" : when long pressed on slider
-       "slider,clicked,icon" : video icon clicked.
-       "slider,item,changed"
-
-       "slider,item,state,changed"
-       "slider,item,deleted"
-       "slider,slideshow,finished" : slide show ended cause last slide
-       "slider,slideshow,interrupted" : slide show stopped by user
-*/
-
-Evas_Object*
-ivug_slider_add(Evas_Object* parent);
-
-Eina_Bool
-ivug_slider_set_slide_list(Evas_Object* obj, Media_List *mList, Eina_List *new_list, Media_Item *current, int index, int total_count);
-
-Media_Data *
-ivug_slider_create_media_list(Evas_Object* obj, ivug_parameter* ivug_param);
-
-void
-ivug_slider_delete_current_slide(Evas_Object* obj);
-
-void ivug_slider_restore_window_list(Evas_Object *obj);
-
-Slide_Item *
-ivug_slider_get_current_slide_item(Evas_Object* obj);
-
-/* Will be deprecated */
-int
-ivug_slider_get_current_slide_count(Evas_Object* obj);
-
-int
-ivug_slider_get_total_slide_count(Evas_Object* obj);
-
-/* Will be deprecated*/
-char*
-ivug_slider_get_next_exist_filepath(Evas_Object* obj);
-
-// Slide Show
-void
-ivug_slider_pause_slide_show(Evas_Object* obj);
-
-void
-ivug_slider_resume_slide_show(Evas_Object* obj);
-
-/* if bSlideFirst == EINA_TRUE, slide and then wait interval time
-   if bSlideFirst == EINA_FALSE, wait interval time and then slide */
-void
-ivug_slider_start_slide_show(Evas_Object* obj, Eina_Bool bSlideFirst);
-
-void
-ivug_slider_stop_slide_show(Evas_Object* obj);
-
-
-#endif
index d812eb4..b0d9d9a 100755 (executable)
@@ -1,10 +1,11 @@
+%define optflags -Wall -Wextra -g -fpie -fPIC -O0 -Wno-unused-parameter -Wno-missing-field-initializers -finstrument-functions
+
 %define _optdir        /opt
 %define _ugdir %{_optdir}/ug
 
-
 Name:       ug-image-viewer-efl
 Summary:    Image Viewer UI Gadget v1.0
-Version:    1.4
+Version:    1.6.35
 Release:    0
 Group:      TO_BE/FILLED_IN
 License:    Flora Software License
@@ -15,30 +16,30 @@ BuildRequires: edje-tools
 BuildRequires: gettext-tools
 BuildRequires: prelink
 BuildRequires: libicu-devel
+
 BuildRequires: pkgconfig(elementary)
 BuildRequires: pkgconfig(edje)
 BuildRequires: pkgconfig(evas)
 BuildRequires: pkgconfig(ecore)
 BuildRequires: pkgconfig(utilX)
-BuildRequires: pkgconfig(libmedia-service)
-BuildRequires: pkgconfig(ui-gadget)
-BuildRequires: pkgconfig(aul)
-BuildRequires: pkgconfig(mmutil-imgp)
-BuildRequires: pkgconfig(mmutil-jpeg)
+BuildRequires: pkgconfig(ui-gadget-1)
+BuildRequires: pkgconfig(drm-client)
+BuildRequires: pkgconfig(vconf)
 BuildRequires: pkgconfig(libexif)
 BuildRequires: pkgconfig(efreet)
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(mm-fileinfo)
 BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(mm-common)
-BuildRequires: pkgconfig(appcore-efl)
-BuildRequires: pkgconfig(pmapi)
-BuildRequires: pkgconfig(appsvc)
 BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(sensor)
 BuildRequires: pkgconfig(xext)
 BuildRequires: pkgconfig(xcomposite)
-BuildRequires: pkgconfig(gconf-2.0)
+BuildRequires: pkgconfig(capi-system-power)
+BuildRequires: pkgconfig(capi-appfw-application)
+BuildRequires: pkgconfig(capi-appfw-app-manager)
+BuildRequires: pkgconfig(capi-system-runtime-info)
+BuildRequires: pkgconfig(capi-system-sensor)
+BuildRequires: pkgconfig(capi-system-haptic)
+BuildRequires: pkgconfig(capi-media-metadata-extractor)
+BuildRequires: pkgconfig(capi-content-mime-type)
+BuildRequires: pkgconfig(capi-content-media-content)
 
 %description
 Description: Image Viewer UI Gadget v1.0
@@ -47,29 +48,55 @@ Description: Image Viewer UI Gadget v1.0
 %setup -q
 
 %build
-cmake . -DCMAKE_INSTALL_PREFIX=%{_ugdir}/ -DCMAKE_DATA_DIR=%{_ugdir}/data
+
+%ifarch %{arm}
+%define ARCH arm
+CXXFLAGS+=" -D_ARCH_ARM_ -mfpu=neon -mfloat-abi=softfp"
+export CXXFLAGS
+%else
+%define ARCH i586
+%endif
+
+CFLAGS+="%optflags" CXXFLAGS+="%{optflags}" \
+       cmake . -DCMAKE_INSTALL_PREFIX=%{_ugdir}/ -DCMAKE_DATA_DIR=%{_ugdir}/data -DARCH=%{ARCH}
 
 make %{?jobs:-j%jobs}
 
 
 %install
+rm -rf %{buildroot}
 %make_install
 
 execstack -c %{buildroot}%{_ugdir}/lib/libug-image-viewer-efl.so.0.1.0
 
-%find_lang ug-image-viewer-efl
-
 %post
 chown -R 5000:5000 %{_ugdir}/data/ug-image-viewer-efl
+mkdir -p /opt/ug/bin/
+ln -sf /usr/bin/ug-client /opt/ug/bin/image-viewer-efl
 
-%files -f ug-image-viewer-efl.lang
+%files
+%defattr(-,root,root,-)
 %dir %{_ugdir}/data/ug-image-viewer-efl
-%{_ugdir}/data/ug-image-viewer-efl
-%{_ugdir}/res/images/ug-image-viewer-efl/*
-%{_ugdir}/res/edje/ug-image-viewer-efl/*
-%{_ugdir}/lib/libug-image-viewer-efl.so.0.1.0
-%{_ugdir}/lib/libug-image-viewer-efl.so
-%{_ugdir}/lib/libug-image-viewer-efl.so.0
-%{_ugdir}/lib/libivug_common.so
-%{_ugdir}/lib/libivug_common.so.0.1.0
+
+%defattr(-,root,root,-)
+%{_ugdir}/*
+#/opt/share/applications/*.desktop
+/opt/share/packages/*.xml
+
+# %{_ugdir}/lib/libivug_common.so
+# %{_ugdir}/lib/libivug_common.so.0.1.0
+# %{_ugdir}/lib/libivug_widget.so
+# %{_ugdir}/lib/libivug_widget.so.0.1.0
+# %{_ugdir}/lib/libug-image-viewer-efl.so
+# %{_ugdir}/lib/libug-image-viewer-efl.so.0
+# %{_ugdir}/lib/libug-image-viewer-efl.so.0.1.0
+# %{_ugdir}/lib/libivug_medialist.so
+# %{_ugdir}/lib/libivug_medialist.so.0.1.0
+# %{_ugdir}/lib/libivug_slideshow.so
+# %{_ugdir}/lib/libivug_slideshow.so.0.1.0
+# %{_ugdir}/res/edje/ug-image-viewer-efl/*.edj
+# %{_ugdir}/res/images/ug-image-viewer-efl/*.png
+# %{_ugdir}/res/images/ug-image-viewer-efl/*.jpg
+# %{_ugdir}/res/images/ug-image-viewer-efl/*/*.png
+# %{_ugdir}/res/locale/*/LC_MESSAGES/ug-image-viewer-efl.mo