Update camera code
authorh2.seo <h2.seo@samsung.com>
Tue, 21 Aug 2012 12:44:19 +0000 (21:44 +0900)
committerh2.seo <h2.seo@samsung.com>
Tue, 21 Aug 2012 12:44:19 +0000 (21:44 +0900)
304 files changed:
.camera.ini [new file with mode: 0644]
.gitignore [new file with mode: 0644]
CMakeLists.txt [new file with mode: 0755]
LICENSE [new file with mode: 0644]
edc/cam_capture_image_selection.edc [new file with mode: 0644]
edc/cam_ctxpopup_shortcuts.edc [new file with mode: 0644]
edc/cam_funcs.edc [new file with mode: 0644]
edc/cam_guideline_edje.edc [new file with mode: 0644]
edc/cam_indicator_layout.edc [new file with mode: 0755]
edc/cam_main_layout.edc [new file with mode: 0644]
edc/cam_recording_edje.edc [new file with mode: 0644]
edc/cam_recording_edje_inc.edc [new file with mode: 0644]
edc/cam_recording_edje_inverse.edc [new file with mode: 0644]
edc/cam_recording_edje_inverse_inc.edc [new file with mode: 0644]
edc/cam_recording_edje_vertical.edc [new file with mode: 0644]
edc/cam_recording_edje_vertical_inc.edc [new file with mode: 0644]
edc/cam_recording_edje_vertical_inverse.edc [new file with mode: 0644]
edc/cam_recording_edje_vertical_inverse_inc.edc [new file with mode: 0644]
edc/cam_setting_popup_layout.edc [new file with mode: 0644]
edc/cam_setting_popup_layout_inc.edc [new file with mode: 0644]
edc/cam_toolbar_layout.edc [new file with mode: 0644]
edc/cam_toolbar_layout_inc.edc [new file with mode: 0644]
edc/cam_toolbar_layout_inverse.edc [new file with mode: 0644]
edc/cam_toolbar_layout_inverse_inc.edc [new file with mode: 0644]
edc/cam_toolbar_layout_vertical.edc [new file with mode: 0644]
edc/cam_toolbar_layout_vertical_inc.edc [new file with mode: 0644]
edc/cam_toolbar_layout_vertical_inverse.edc [new file with mode: 0644]
edc/cam_toolbar_layout_vertical_inverse_inc.edc [new file with mode: 0644]
edc/cam_utils.edc [new file with mode: 0644]
edc/cam_zoom_layout.edc [new file with mode: 0644]
edc/cam_zoom_layout_inverse.edc [new file with mode: 0644]
edc/cam_zoom_layout_vertical.edc [new file with mode: 0644]
edc/cam_zoom_layout_vertical_inverse.edc [new file with mode: 0644]
edc/style_ctxpopup_camera.edc [new file with mode: 0644]
edc/style_ctxpopup_camera_with_radio.edc [new file with mode: 0644]
edc/style_genlist_macro.edc [new file with mode: 0644]
edc/style_genlist_normal.edc [new file with mode: 0644]
edc/style_slider_camera.edc [new file with mode: 0644]
edc/style_tizen_hd_inc.edc [new file with mode: 0644]
images/00_check_off.png [new file with mode: 0644]
images/00_check_on.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_fail.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_fail_1.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_fail_2.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_fail_3.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_fail_4.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_notready.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_notready_1.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_notready_2.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_notready_3.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_notready_4.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_ready_1.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_ready_2.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_ready_3.png [new file with mode: 0644]
images/Touch AF_rect/camera_focus_ready_4.png [new file with mode: 0644]
images/Touch AF_rect/camera_ready.png [new file with mode: 0644]
images/Touch AF_rect/touch_af_focus_rect_01.9.png [new file with mode: 0644]
images/Touch AF_rect/touch_af_focus_rect_02.9.png [new file with mode: 0644]
images/Touch AF_rect/touch_af_focus_rect_03.9.png [new file with mode: 0644]
images/camara_icon_back.png [new file with mode: 0644]
images/camara_icon_back_press.png [new file with mode: 0644]
images/camcorder_recording_shutter.png [new file with mode: 0644]
images/camcorder_standby_shutter.png [new file with mode: 0644]
images/camera_action_bar_icon.png [new file with mode: 0644]
images/camera_handle.png [new file with mode: 0644]
images/camera_help_image.png [new file with mode: 0644]
images/camera_menu_bg.png [new file with mode: 0644]
images/camera_menu_bg_press.png [new file with mode: 0644]
images/camera_menu_tab_hold.png [new file with mode: 0644]
images/camera_mode_shutter_icon.png [new file with mode: 0644]
images/camera_mode_shutter_normal.png [new file with mode: 0644]
images/camera_mode_shutter_press.png [new file with mode: 0644]
images/camera_mode_thumbnail_bg.png [new file with mode: 0644]
images/camera_mode_thumbnail_bg_press.png [new file with mode: 0644]
images/camera_normal_left.png [new file with mode: 0644]
images/camera_normal_opacity_l_bg.png [new file with mode: 0644]
images/camera_normal_opacity_r_bg.png [new file with mode: 0644]
images/camera_normal_right.png [new file with mode: 0644]
images/camera_option_popup_anker.png [new file with mode: 0644]
images/camera_option_popup_bg.png [new file with mode: 0644]
images/camera_option_popup_bg_2depth.png [new file with mode: 0644]
images/camera_option_popup_scroll.png [new file with mode: 0644]
images/camera_option_popup_shadow_01.png [new file with mode: 0644]
images/camera_option_popup_shadow_02.png [new file with mode: 0644]
images/camera_popup_bg.9.png [new file with mode: 0644]
images/camera_popup_ex.png [new file with mode: 0644]
images/camera_popup_ex_bar.png [new file with mode: 0644]
images/camera_popup_ex_line.png [new file with mode: 0644]
images/camera_popup_zoom.png [new file with mode: 0644]
images/camera_popup_zoom_bar.png [new file with mode: 0644]
images/camera_radio_btn_off.png [new file with mode: 0644]
images/camera_radio_btn_on.png [new file with mode: 0644]
images/camera_shoot_share_popup.png [new file with mode: 0644]
images/camera_shortcut_line_h_01.png [new file with mode: 0644]
images/camera_shortcut_line_v_01.png [new file with mode: 0644]
images/camera_shortcut_line_v_02.png [new file with mode: 0644]
images/camera_shrtcut_edit_bg.png [new file with mode: 0644]
images/camera_shrtcut_menubar_bg.png [new file with mode: 0644]
images/camera_shrtcut_text_bg.png [new file with mode: 0644]
images/camera_timer_popup.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_00.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_01.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_02.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_03.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_04.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_05.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_charge.png [new file with mode: 0644]
images/indicator/camera_indicator_battery_full.png [new file with mode: 0644]
images/indicator/camera_rec.png [new file with mode: 0644]
images/pinch_zoom_focus_rect_01.9.png [new file with mode: 0644]
images/short cut/camera_mode_effect_Black and white_nor.png [new file with mode: 0644]
images/short cut/camera_mode_effect_Black and white_press.png [new file with mode: 0644]
images/short cut/camera_mode_effect_negative_nor.png [new file with mode: 0644]
images/short cut/camera_mode_effect_negative_press.png [new file with mode: 0644]
images/short cut/camera_mode_effect_none_nor.png [new file with mode: 0644]
images/short cut/camera_mode_effect_none_press.png [new file with mode: 0644]
images/short cut/camera_mode_effect_sepia_nor.png [new file with mode: 0644]
images/short cut/camera_mode_effect_sepia_press.png [new file with mode: 0644]
images/short cut/camera_mode_guidelines_off_nor.png [new file with mode: 0644]
images/short cut/camera_mode_guidelines_off_press.png [new file with mode: 0644]
images/short cut/camera_mode_guidelines_on_nor.png [new file with mode: 0644]
images/short cut/camera_mode_guidelines_on_press.png [new file with mode: 0644]
images/short cut/camera_mode_refresh_nor.png [new file with mode: 0644]
images/short cut/camera_mode_refresh_press.png [new file with mode: 0644]
images/short cut/camera_mode_reset_nor.png [new file with mode: 0644]
images/short cut/camera_mode_reset_press.png [new file with mode: 0644]
images/short cut/camera_mode_setting_nor.png [new file with mode: 0644]
images/short cut/camera_mode_setting_press.png [new file with mode: 0644]
images/short cut/camera_mode_timer_10_nor.png [new file with mode: 0644]
images/short cut/camera_mode_timer_10_press.png [new file with mode: 0644]
images/short cut/camera_mode_timer_2_nor.png [new file with mode: 0644]
images/short cut/camera_mode_timer_2_press.png [new file with mode: 0644]
images/short cut/camera_mode_timer_5_nor.png [new file with mode: 0644]
images/short cut/camera_mode_timer_5_press.png [new file with mode: 0644]
images/short cut/camera_mode_timer_off_nor.png [new file with mode: 0644]
images/short cut/camera_mode_timer_off_press.png [new file with mode: 0644]
images/smale_shot_g.png [new file with mode: 0644]
images/smale_shot_o.png [new file with mode: 0644]
images/smale_shot_w.png [new file with mode: 0644]
images/tmp/11_camcorder_standby_press.png [new file with mode: 0644]
images/tmp/11_camcorder_standby_press_ver.png [new file with mode: 0644]
images/tmp/11_camera_mode_bg.png [new file with mode: 0644]
images/tmp/11_camera_mode_bg_ver.png [new file with mode: 0644]
images/tmp/11_camera_mode_button.png [new file with mode: 0644]
images/tmp/11_camera_mode_button_ver.png [new file with mode: 0644]
images/tmp/11_camera_mode_camcorder_off.png [new file with mode: 0644]
images/tmp/11_camera_mode_camcorder_on.png [new file with mode: 0644]
images/tmp/11_camera_mode_camera_off.png [new file with mode: 0644]
images/tmp/11_camera_mode_camera_on.png [new file with mode: 0644]
images/tmp/11_camera_mode_recording_normal.png [new file with mode: 0644]
images/tmp/11_camera_mode_recording_normal_ver.png [new file with mode: 0644]
images/tmp/11_camera_mode_recording_press.png [new file with mode: 0644]
images/tmp/11_camera_mode_recording_press_ver.png [new file with mode: 0644]
images/tmp/11_camera_snapshot.png [new file with mode: 0644]
images/tmp/11_camera_snapshot_press.png [new file with mode: 0644]
images/tmp/37_guideline_1.png [new file with mode: 0644]
images/tmp/37_guideline_2.png [new file with mode: 0644]
images/tmp/37_guideline_opa_1.png [new file with mode: 0644]
images/tmp/37_guideline_opa_2.png [new file with mode: 0644]
images/tmp/37_shootingmode_popup_bg.png [new file with mode: 0644]
images/tmp/imageeditor_bottom_arrow.png [new file with mode: 0644]
images/tmp/imageeditor_left_arrow.png [new file with mode: 0644]
images/tmp/imageeditor_right_arrow.png [new file with mode: 0644]
images/tmp/imageeditor_top_arrow.png [new file with mode: 0644]
images/vertical/camera_mode_bg_ver.png [new file with mode: 0644]
images/vertical/camera_mode_button_ver.png [new file with mode: 0644]
images/vertical/camera_mode_option_bg_ver.PNG [new file with mode: 0644]
images/vertical/camera_mode_option_bg_ver_press.PNG [new file with mode: 0644]
images/vertical/camera_mode_shutter_normal_ver.png [new file with mode: 0644]
images/vertical/camera_mode_shutter_press_ver.png [new file with mode: 0644]
images/vertical/camera_normal_bg_ver.png [new file with mode: 0644]
images/vertical/camera_normal_bg_ver2.png [new file with mode: 0644]
images/vertical/camera_normal_bg_ver2_01.png [new file with mode: 0644]
images/vertical/camera_normal_bg_ver_01.png [new file with mode: 0644]
images/vertical/camera_option_popup_anker_vertical.png [new file with mode: 0644]
images/vertical/camera_popup_ex_bar_ver.png [new file with mode: 0644]
images/vertical/camera_popup_ex_line_ver.png [new file with mode: 0644]
images/vertical/camera_popup_exposure_vertical_bg.png [new file with mode: 0644]
images/vertical/camera_popup_zoom_bar_ver.png [new file with mode: 0644]
images/vertical/camera_popup_zoom_ver.png [new file with mode: 0644]
images/vertical/camera_shrtcut_edit_bg_02_ver.png [new file with mode: 0644]
images/vertical/camera_shrtcut_edit_bg_ver.png [new file with mode: 0644]
images/vertical/camera_shrtcut_menubar_bg_ver.png [new file with mode: 0644]
images/vertical/camera_shrtcut_text_bg_ver.png [new file with mode: 0644]
include/CamDeviceCapacity.h [new file with mode: 0755]
include/CamTypeConverter.h [new file with mode: 0755]
include/cam.h [new file with mode: 0755]
include/cam_animation.h [new file with mode: 0644]
include/cam_app.h [new file with mode: 0755]
include/cam_capacity_type.h [new file with mode: 0755]
include/cam_config.h [new file with mode: 0644]
include/cam_debug.h [new file with mode: 0644]
include/cam_device_capacity.h [new file with mode: 0755]
include/cam_devman.h [new file with mode: 0644]
include/cam_error.h [new file with mode: 0755]
include/cam_file.h [new file with mode: 0644]
include/cam_image_name.h [new file with mode: 0755]
include/cam_long_press.h [new file with mode: 0644]
include/cam_menu_composer.h [new file with mode: 0755]
include/cam_mm.h [new file with mode: 0755]
include/cam_popup.h [new file with mode: 0644]
include/cam_property.h [new file with mode: 0755]
include/cam_rec.h [new file with mode: 0644]
include/cam_sound.h [new file with mode: 0644]
include/cam_ta.h [new file with mode: 0644]
include/cam_typeconverter.h [new file with mode: 0755]
include/cam_ui_effect_utils.h [new file with mode: 0644]
include/cam_ui_rotate_utils.h [new file with mode: 0644]
include/camera_utils.h [new file with mode: 0755]
include/edc-callback/cam_common_edc_callback.h [new file with mode: 0755]
include/edc-callback/cam_indicator_edc_callback.h [new file with mode: 0755]
include/edc-callback/cam_recording_edc_callback.h [new file with mode: 0644]
include/edc-callback/cam_toolbar_edc_callback.h [new file with mode: 0644]
include/edc-callback/cam_zoom_edc_callback.h [new file with mode: 0755]
include/edc_image_name.h [new file with mode: 0755]
include/edc_string.h [new file with mode: 0755]
org.tizen.camera-app.png [new file with mode: 0644]
org.tizen.camera-app.xml [new file with mode: 0644]
org.tizen.camera.jpg [new file with mode: 0644]
packaging/org.tizen.camera-app.spec [new file with mode: 0644]
po/CMakeLists.txt [new file with mode: 0644]
po/POTFILES.in [new file with mode: 0644]
po/ar.po [new file with mode: 0644]
po/backup_en_US.po [new file with mode: 0644]
po/bg.po [new file with mode: 0644]
po/ca.po [new file with mode: 0644]
po/camera.pot [new file with mode: 0644]
po/cs.po [new file with mode: 0644]
po/da.po [new file with mode: 0644]
po/de.po [new file with mode: 0644]
po/el.po [new file with mode: 0644]
po/en.po [new file with mode: 0644]
po/en_US.po [new file with mode: 0644]
po/es.po [new file with mode: 0644]
po/fi.po [new file with mode: 0644]
po/fr.po [new file with mode: 0644]
po/he.po [new file with mode: 0644]
po/hi.po [new file with mode: 0644]
po/hr.po [new file with mode: 0644]
po/htm2po.py [new file with mode: 0644]
po/hu.po [new file with mode: 0644]
po/id.po [new file with mode: 0644]
po/it.po [new file with mode: 0644]
po/ja.po [new file with mode: 0644]
po/ko.po [new file with mode: 0644]
po/lt.po [new file with mode: 0644]
po/lv.po [new file with mode: 0644]
po/ms.po [new file with mode: 0644]
po/nl.po [new file with mode: 0644]
po/no.po [new file with mode: 0644]
po/pl.po [new file with mode: 0644]
po/pt.po [new file with mode: 0644]
po/ro.po [new file with mode: 0644]
po/ru.po [new file with mode: 0644]
po/sk.po [new file with mode: 0644]
po/sl.po [new file with mode: 0644]
po/sr.po [new file with mode: 0644]
po/sv.po [new file with mode: 0644]
po/th.po [new file with mode: 0644]
po/tr_TR.po [new file with mode: 0644]
po/uk.po [new file with mode: 0644]
po/update-po.sh [new file with mode: 0644]
po/vi.po [new file with mode: 0644]
po/zh_CN.po [new file with mode: 0644]
po/zh_HK.po [new file with mode: 0644]
po/zh_TW.po [new file with mode: 0644]
sounds/Shutter_01.wav [new file with mode: 0644]
sounds/Shutter_02.wav [new file with mode: 0644]
sounds/Shutter_03.wav [new file with mode: 0644]
sounds/af_fail.wav [new file with mode: 0644]
sounds/af_ok.wav [new file with mode: 0644]
sounds/cam_start_01.wav [new file with mode: 0644]
sounds/cam_start_02.wav [new file with mode: 0644]
sounds/cam_start_03.wav [new file with mode: 0644]
sounds/cam_stop_01.wav [new file with mode: 0644]
sounds/cam_stop_02.wav [new file with mode: 0644]
sounds/cam_stop_03.wav [new file with mode: 0644]
sounds/count.wav [new file with mode: 0644]
src/CamDeviceCapacity.cpp [new file with mode: 0755]
src/CamTypeConverter.cpp [new file with mode: 0755]
src/cam.c [new file with mode: 0755]
src/cam_animation.c [new file with mode: 0644]
src/cam_app.c [new file with mode: 0755]
src/cam_config.c [new file with mode: 0644]
src/cam_debug.c [new file with mode: 0644]
src/cam_device_capacity.cpp [new file with mode: 0755]
src/cam_devman.c [new file with mode: 0644]
src/cam_file.c [new file with mode: 0644]
src/cam_long_press.c [new file with mode: 0644]
src/cam_menu_composer.c [new file with mode: 0755]
src/cam_mm.c [new file with mode: 0755]
src/cam_popup.c [new file with mode: 0644]
src/cam_rec.c [new file with mode: 0755]
src/cam_sound.c [new file with mode: 0644]
src/cam_ta.c [new file with mode: 0644]
src/cam_typeconverter.cpp [new file with mode: 0755]
src/cam_ui_effect_utils.c [new file with mode: 0644]
src/cam_ui_rotate_utils.c [new file with mode: 0644]
src/camera_utils.c [new file with mode: 0755]
src/edc-callback/cam_common_edc_callback.c [new file with mode: 0755]
src/edc-callback/cam_indicator_edc_callback.c [new file with mode: 0755]
src/edc-callback/cam_recording_edc_callback.c [new file with mode: 0644]
src/edc-callback/cam_toolbar_edc_callback.c [new file with mode: 0755]
src/edc-callback/cam_zoom_edc_callback.c [new file with mode: 0755]

diff --git a/.camera.ini b/.camera.ini
new file mode 100644 (file)
index 0000000..a614fd0
--- /dev/null
@@ -0,0 +1,48 @@
+
+[common]
+mode=1
+
+[still]
+storage=0
+ahs=0
+scene_mode=0
+iso=0
+flash=0
+wdr=0
+metering=2
+resolution=167774080
+brightness=5
+image_quality=95
+video_quality=95
+review=false
+shutter_sound=0
+guideline=false
+af_mode=1
+wb=1
+effect=0
+contrast=4
+saturation=4
+sharpness=4
+audio_rec=true
+toolbar_0 =-1
+toolbar_1 =-1
+toolbar_2 =-1
+toolbar_3 =-1
+toolbar_4 =-1
+[video]
+ahs=0
+scene_mode=0
+iso=0
+flash=0
+guideline=false
+wdr=0
+metering=2
+resolution=41943520
+image_quality=95
+video_quality=95
+review=false
+toolbar_0 =-1
+toolbar_1 =-1
+toolbar_2 =-1
+toolbar_3 =-1
+toolbar_4 =-1
diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..2c4290f
--- /dev/null
@@ -0,0 +1,2 @@
+*~
+*.orig
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100755 (executable)
index 0000000..d8ba09e
--- /dev/null
@@ -0,0 +1,151 @@
+CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
+PROJECT(camera C CXX)
+
+message(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
+message("furcate arm or i686")
+EXEC_PROGRAM(uname ARGS -m OUTPUT_VARIABLE CMAKE_SYSTEM_VERSION)
+message("This package is building by ${CMAKE_SYSTEM_VERSION}")
+message(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
+
+SET(SRCS
+src/cam.c
+src/camera_utils.c
+src/cam_mm.c
+src/cam_app.c
+src/cam_sound.c
+src/cam_debug.c
+src/cam_config.c
+src/cam_file.c
+src/cam_ta.c
+src/cam_rec.c
+src/cam_devman.c
+src/cam_popup.c
+src/cam_long_press.c
+src/cam_ui_effect_utils.c
+src/cam_ui_rotate_utils.c
+src/cam_menu_composer.c
+src/cam_typeconverter.cpp
+src/cam_device_capacity.cpp
+src/CamTypeConverter.cpp
+src/CamDeviceCapacity.cpp
+src/edc-callback/cam_common_edc_callback.c
+src/edc-callback/cam_toolbar_edc_callback.c
+src/edc-callback/cam_indicator_edc_callback.c
+src/edc-callback/cam_zoom_edc_callback.c
+src/edc-callback/cam_recording_edc_callback.c
+)
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include
+${CMAKE_CURRENT_SOURCE_DIR}/include/edc-callback )
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(pkgs REQUIRED
+       elementary
+       devman
+       capi-appfw-application
+       capi-content-media-content
+       capi-location-manager
+       capi-media-camera
+       capi-media-image-util
+       capi-media-recorder
+       capi-media-sound-manager
+       capi-media-wav-player
+       capi-system-haptic
+       capi-system-power
+       gconf-2.0 vconf dlog ui-gadget-1
+       utilX
+       ecore-x ecore ecore-evas ecore-input eina
+       syspopup-caller
+)
+FOREACH(flag ${pkgs_CFLAGS})
+       SET(EXTRA_CXXFLAGS "${EXTRA_CXXFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -fPIC")
+SET(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS})
+
+SET(PREFIX ${CMAKE_INSTALL_PREFIX})
+SET(BINDIR "${PREFIX}/bin")
+SET(RESDIR "${PREFIX}/res")
+SET(DATADIR "${PREFIX}/data")
+SET(LOCALEDIR "${RESDIR}/locale")
+SET(ICONDIR "${RESDIR}/icons/default/small")
+SET(EDJDIR "${RESDIR}/edje")
+SET(IMAGEDIR "${RESDIR}/images")
+
+ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"")
+ADD_DEFINITIONS("-DFACTORYFS=\"$ENV{PREFIX}\"")
+ADD_DEFINITIONS("-DRESDIR=\"${RESDIR}\"")
+ADD_DEFINITIONS("-DDATADIR=\"${DATADIR}\"")
+ADD_DEFINITIONS("-DEDJDIR=\"${EDJDIR}\"")
+ADD_DEFINITIONS("-DIMAGEDIR=\"${IMAGESDIR}\"")
+ADD_DEFINITIONS("-DSLP_DEBUG")
+
+if(NOT "${CMAKE_SYSTEM_VERSION}" MATCHES "^arm.*")
+add_definitions(-DCAMERA_MACHINE_I686="${CMAKE_SYSTEM_VERSION}")
+endif()
+
+ADD_EXECUTABLE(${PROJECT_NAME} ${SRCS})
+
+if("${CMAKE_SYSTEM_VERSION}" MATCHES "^arm.*")
+
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS} ${EXTPkgs_LDFLAGS} "-pie")
+
+else()
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${pkgs_LDFLAGS})
+endif()
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION bin)
+
+###################################### EDC, Begin ################################
+SET(EDC_DIR    ${CMAKE_SOURCE_DIR}/edc)
+SET(IMAGE_DIR  ${CMAKE_SOURCE_DIR}/images)
+
+SET(EDC_FILES
+cam_main_layout
+cam_toolbar_layout
+cam_toolbar_layout_inverse
+cam_toolbar_layout_vertical
+cam_toolbar_layout_vertical_inverse
+cam_recording_edje
+cam_recording_edje_inverse
+cam_recording_edje_vertical
+cam_recording_edje_vertical_inverse
+style_ctxpopup_camera_with_radio
+style_ctxpopup_camera
+style_slider_camera
+cam_indicator_layout
+cam_utils
+cam_zoom_layout
+cam_zoom_layout_inverse
+cam_zoom_layout_vertical
+cam_zoom_layout_vertical_inverse
+cam_ctxpopup_shortcuts
+cam_setting_popup_layout
+)
+
+FOREACH(file_name ${EDC_FILES})
+               ADD_CUSTOM_TARGET(${file_name}.edj
+                               COMMAND edje_cc -id ${IMAGE_DIR}
+                               ${EDC_DIR}/${file_name}.edc ${EDC_DIR}/${file_name}.edj
+                               DEPENDS ${EDC_DIR}/${file_name}.edc
+               )
+               ADD_DEPENDENCIES(${PROJECT_NAME} ${file_name}.edj)
+               INSTALL(FILES ${EDC_DIR}/${file_name}.edj DESTINATION ${EDJDIR})
+ENDFOREACH(file_name)
+
+###################################### EDC, end ################################
+
+
+# install manifest file & icon
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.camera-app.xml DESTINATION /opt/share/packages/)
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/org.tizen.camera-app.png DESTINATION /opt/share/icons/default/small/)
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/sounds DESTINATION ${RESDIR})
+INSTALL(DIRECTORY ${CMAKE_SOURCE_DIR}/images DESTINATION ${RESDIR})
+
+# install .camera.ini file
+INSTALL(FILES ${CMAKE_SOURCE_DIR}/.camera.ini DESTINATION ${DATADIR})
+
+# i18n
+ADD_SUBDIRECTORY(po)
+
diff --git a/LICENSE b/LICENSE
new file mode 100644 (file)
index 0000000..7ccb5b5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,75 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://www.tizenopensource.org/license
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
+
+"Tizen Certified Platform" shall mean a software platform that complies with the standards set forth in the Compatibility Definition Document and passes the Compatibility Test Suite as defined from time to time by the Tizen Technical Steering Group and certified by the Tizen Association or its designated agent.
+
+2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work solely as incorporated into a Tizen Certified Platform, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work solely as incorporated into a Tizen Certified Platform to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof pursuant to the copyright license above, in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
+
+  1. You must give any other recipients of the Work or Derivative Works a copy of this License; and
+
+  2. You must cause any modified files to carry prominent notices stating that You changed the files; and
+
+  3. You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
+
+  4. If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Flora License to your work
+
+To apply the Flora License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/edc/cam_capture_image_selection.edc b/edc/cam_capture_image_selection.edc
new file mode 100644 (file)
index 0000000..a2a8eb7
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+
+collections {
+
+       group { name: "main";
+               parts {
+                       part { name: "captured_image_selection";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 255;
+                               }
+                       }
+
+                       part { name: CAPTURED_IMAGE_SCREEN;
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                               }
+                       }
+
+                       part { name: CAPTURED_IMAGE_RETRY;
+                               type: SWALLOW;
+                               scale: 1;
+
+                               description { state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.0 1.0; to: CAPTURED_IMAGE_SCREEN; offset: +20 -30}
+                                       rel2 { relative: 0.0 1.0; to: CAPTURED_IMAGE_SCREEN; offset: +30 -20}
+                                       align: 0.5 0.5;
+                                       }
+                       }
+
+                       part { name: CAPTURED_IMAGE_SAVE;
+                           type: SWALLOW;
+                           scale: 1;
+
+                           description { state: "default" 0.0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 1.0 1.0; to: CAPTURED_IMAGE_SCREEN; offset: -40 -30}
+                                       rel2 { relative: 1.0 1.0; to: CAPTURED_IMAGE_SCREEN; offset: -20 -20}
+                                       align: 0.5 0.5;
+                                   }
+                       }
+
+               }
+
+
+       }
+}
diff --git a/edc/cam_ctxpopup_shortcuts.edc b/edc/cam_ctxpopup_shortcuts.edc
new file mode 100644 (file)
index 0000000..53d571a
--- /dev/null
@@ -0,0 +1,853 @@
+/*\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
+\r
+\r
+#include "../include/edc_image_name.h"\r
+#include "cam_funcs.edc"\r
+\r
+#define SHORTCUTS_PANEL_WIDTH 720\r
+#define SHORTCUTS_PANEL_HEIGHT 900\r
+\r
+\r
+#define SHOTCUTS_MENU_H(part_name, relx1, rely1, relx2, rely2, to_part)  \\r
+               part { \\r
+                       name: "row."part_name; \\r
+                       type: SWALLOW; \\r
+                       scale: 1; \\r
+                       mouse_events: 1; \\r
+                       description { \\r
+                               state: "default" 0.0;   \\r
+                               visible: 1; \\r
+                               min: (180) (180); \\r
+                               max: (180) (180); \\r
+                               align: 0.5 0.5; \\r
+                               aspect: 1.0 1.0; \\r
+                               fixed: 1 1; \\r
+                               rel1 { relative: (relx1/SHORTCUTS_PANEL_HEIGHT) (rely1/SHORTCUTS_PANEL_HEIGHT); to:to_part;} \\r
+                               rel2 { relative: (relx2/SHORTCUTS_PANEL_HEIGHT) (rely2/SHORTCUTS_PANEL_HEIGHT); to:to_part;} \\r
+                       } \\r
+               }\r
+\r
+       /*#define SHOTCUTS_LINE_V_IMAGE*/\r
+       images {\r
+               image: SHOTCUTS_LINE_V_IMAGE COMP;\r
+               image: SHOTCUTS_EDIT_BG_H_IMAGE COMP;\r
+               image: SHOTCUTS_EDIT_MENU_BG_H_IMAGE COMP;\r
+               image: SHOTCUTS_LINE_H_IMAGE COMP;\r
+       }\r
+\r
+collections {\r
+       group {\r
+               name: "camera/shortcuts/ele";\r
+               parts {\r
+                       part {\r
+                               name: "bg";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       min: 180 180;\r
+                                       max: 180 180;\r
+                                       rel1 { relative: 0.0 0.0; }\r
+                                       rel2 { relative: 1.0 1.0; }\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "ele.bg.top";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       rel1 { relative: 0.0 0.0; to:"bg";}\r
+                                       rel2 { relative: 1.0 100/180; to:"bg";}\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "ele.bg.bottom";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       rel1 { relative: 0.0 100/180; to:"bg";}\r
+                                       rel2 { relative: 1.0 1.0; to:"bg";}\r
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "ele.icon";\r
+                               type: SWALLOW;\r
+                               scale: 1;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       min: 86 86;\r
+                                       max: 86 86;\r
+                                       fixed: 1 1;\r
+                                       align: 0.5 0.5;\r
+                                       aspect: 1.0 1.0;\r
+                                       rel1 { relative: 14/180 0.0; to:"ele.bg.top";}\r
+                                       rel2 { relative: (1-14/180) 1.0; to:"ele.bg.top";}\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "ele.txt.1";\r
+                               type: TEXT;\r
+                               scale: 1;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       align: 0.5 0.5;\r
+                                       fixed: 1 1;\r
+                                       rel1 { relative: 0.0 0.0; to:"ele.bg.bottom";}\r
+                                       rel2 { relative: 1.0 0.45; to:"ele.bg.bottom";}\r
+                                       text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "";\r
+                                       }\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "ele.txt.2";\r
+                               type: TEXT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       align: 0.5 0.5;\r
+                                       fixed: 1 1;\r
+                                       rel1 { relative: 0.0 0.55; to:"ele.bg.bottom";}\r
+                                       rel2 { relative: 1.0 1.0; to:"ele.bg.bottom";}\r
+                                       text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "";\r
+                                       }\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "ele.bg.bottom.pad";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       align: 0.0 0.0;\r
+                                       min:   0 4;\r
+                                       fixed: 0 1;\r
+                                       rel1 { relative: 1.0 1.0; to:"ele.txt.2";}\r
+                                       rel2 { relative: 1.0 1.0; to:"ele.txt.2";}\r
+                               }\r
+                       }\r
+\r
+               }\r
+       }\r
+\r
+       #define SHORTCUST_LAYOUT_WIDTH 720\r
+       #define SHORTCUST_LAYOUT_HEIGHT 930\r
+\r
+       group {\r
+               name : "camera/shortcuts/layout/description";\r
+               parts {\r
+                       part {\r
+                               name: "bg";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       min: 720 138;\r
+                                       fixed: 1 1;\r
+                                       rel1 { relative: 0.0 0.0; }\r
+                                       rel2 { relative: 1.0 1.0; }\r
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "bg.content.img";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       rel1 { relative: 0.0 0.0; to: "bg";}\r
+                                       rel2 { relative: 1.0 1.0; to: "bg";}\r
+                                       image{\r
+                                               normal: SHOTCUTS_EDIT_BG_H_IMAGE ;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       part { name: "description.txt.1";\r
+                                  type: TEXT;\r
+                                  scale: 1;\r
+                                  description {\r
+                                         state: "default" 0.0;\r
+                                         visible: 1;\r
+                                         rel1 {\r
+                                                 relative: 0.0 48/138;\r
+                                                 to: "bg.content.img";\r
+                                         }\r
+                                         rel2 {\r
+                                                 relative: 1.0 78/138;\r
+                                                 to: "bg.content.img";\r
+                                         }\r
+                                         align: 0.0 0.0;\r
+                                         text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "Tap and hold an icon and move to edit";\r
+                                       }\r
+                                         /*color: 0 0 0 255;*/\r
+                                  }\r
+                          }\r
+                           part { name: "description.txt.2";\r
+                                  type: TEXT;\r
+                                  scale: 1;\r
+                                  description {\r
+                                         state: "default" 0.0;\r
+                                         visible: 1;\r
+                                         rel1 {\r
+                                                 relative: 0.0 78/138;\r
+                                                 to: "bg.content.img";\r
+                                         }\r
+                                         rel2 {\r
+                                                 relative: 1.0 108/138;\r
+                                                 to: "bg.content.img";\r
+                                         }\r
+                                         align: 0.0 0.0;\r
+                                         text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "your shortcuts";\r
+                                       }\r
+                                         /*color: 0 0 0 255;*/\r
+                                  }\r
+                          }//end part: "line_v.txt.2"\r
+               }//end parts\r
+       }\r
+\r
+       group {\r
+               name:"camera/shortcuts/layout";\r
+               parts {\r
+                       part {\r
+                               name: "bg";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       /*min: 980 880;*/\r
+                                       min: SHORTCUST_LAYOUT_WIDTH SHORTCUST_LAYOUT_HEIGHT;\r
+                                       fixed: 1 0;\r
+                                       rel1 { relative: 0.0 0.0; }\r
+                                       rel2 { relative: 1.0 1.0; }\r
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "bg.content.img";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       rel1 { relative: 0.0 0.0; to: "bg";}\r
+                                       rel2 { relative: 1.0 1.0; to: "bg";}\r
+                                       image{\r
+                                               normal: SHOTCUTS_EDIT_BG_H_IMAGE ;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
+                       part {\r
+                               name: "bg.content.shortcuts";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       rel1 { relative: 0.0 0.0; to: "bg";}\r
+                                       rel2 { relative: 1.0 900/SHORTCUST_LAYOUT_HEIGHT; to: "bg";}\r
+                               }\r
+                       }\r
+                       part {\r
+                               name: "bg.content.text";\r
+                               type: RECT;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 0;\r
+                                       rel1 { relative: 0.0 900/SHORTCUST_LAYOUT_HEIGHT; to: "bg";}\r
+                                       rel2 { relative: 1.0 1.0; to: "bg";}\r
+                               }\r
+                       }\r
+\r
+                       part { name: "bg.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 13;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                               to: "bg.content.shortcuts";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 0.0;\r
+                                               to: "bg.content.shortcuts";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                         }\r
+\r
+                       part { name: "line_v.1.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 180;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 0.0;\r
+                                               to: "bg.content.shortcuts";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 0.0;\r
+                                               to: "bg.content.shortcuts";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.1";\r
+                                type: IMAGE;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 4;\r
+                                       fixed: 0 1;\r
+                                       visible: 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.1.padding.top";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.1.padding.top";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_V_IMAGE ;\r
+                                       }\r
+                                       /*color: 0 0 0 255;*/\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.2.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 180;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.1";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.1";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.2";\r
+                                type: IMAGE;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 4;\r
+                                       fixed: 0 1;\r
+                                       visible: 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.2.padding.top";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.2.padding.top";\r
+                                       }\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_V_IMAGE ;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       /*color: 0 0 0 255;*/\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.3.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 180;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.2";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.2";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.3";\r
+                                type: IMAGE;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 4;\r
+                                       fixed: 0 1;\r
+                                       visible: 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.3.padding.top";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.3.padding.top";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_V_IMAGE ;\r
+                                       }\r
+                                       /*color: 0 0 0 255;*/\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.4.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 180;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.3";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.3";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                        }\r
+                       part { name: "line_v.4";\r
+                                type: IMAGE;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 4;\r
+                                       fixed: 0 1;\r
+                                       visible: 1;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.4.padding.top";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.4.padding.top";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_V_IMAGE ;\r
+                                       }\r
+                                       /*color: 0 0 0 255;*/\r
+                                }\r
+                        }\r
+\r
+                       part { name: "line_v.5.padding.top";\r
+                                type: RECT;\r
+                                scale: 1;\r
+                                description {\r
+                                       state: "default" 0.0;\r
+                                       min: 0 180;\r
+                                       fixed: 0 1;\r
+                                       visible: 0;\r
+                                       rel1 {\r
+                                               relative: 0.0 1.0;\r
+                                               to: "line_v.4";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0;\r
+                                               to: "line_v.4";\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                                       color: 0 0 0 255;\r
+                                }\r
+                        }\r
+\r
+                        part { name: "line_v.5";\r
+                                 type: IMAGE;\r
+                                 scale: 1;\r
+                                 description {\r
+                                        state: "default" 0.0;\r
+                                        min: 0 4;\r
+                                        fixed: 0 1;\r
+                                        visible: 1;\r
+                                        rel1 {\r
+                                                relative: 0.0 1.0;\r
+                                                to: "line_v.5.padding.top";\r
+                                        }\r
+                                        rel2 {\r
+                                                relative: 1.0 1.0;\r
+                                                to: "line_v.5.padding.top";\r
+                                        }\r
+                                        align: 0.0 0.0;\r
+                                        image{\r
+                                                normal: SHOTCUTS_LINE_V_IMAGE ;\r
+                                        }\r
+                                        /*color: 0 0 0 255;*/\r
+                                 }\r
+                         }\r
+#if 0\r
+                        part { name: "line_v.6.padding.top";\r
+                                 type: RECT;\r
+                                 scale: 1;\r
+                                 description {\r
+                                        state: "default" 0.0;\r
+                                        min: 0 48;\r
+                                        fixed: 0 1;\r
+                                        visible: 0;\r
+                                        rel1 {\r
+                                                relative: 0.0 1.0;\r
+                                                to: "line_v.5";\r
+                                        }\r
+                                        rel2 {\r
+                                                relative: 1.0 1.0;\r
+                                                to: "line_v.5";\r
+                                        }\r
+                                        align: 0.0 0.0;\r
+                                        color: 0 0 0 255;\r
+                                 }\r
+                         }\r
+\r
+                         part { name: "line_v.txt.1";\r
+                                  type: TEXT;\r
+                                  scale: 1;\r
+                                  description {\r
+                                         state: "default" 0.0;\r
+                                         min: 0 30;\r
+                                         fixed: 0 1;\r
+                                         visible: 1;\r
+                                         rel1 {\r
+                                                 relative: 0.0 1.0;\r
+                                                 to: "line_v.6.padding.top";\r
+                                         }\r
+                                         rel2 {\r
+                                                 relative: 1.0 1.0;\r
+                                                 to: "line_v.6.padding.top";\r
+                                         }\r
+                                         align: 0.0 0.0;\r
+                                         text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "Tap and hold an icon and move to edit";\r
+                                       }\r
+                                         /*color: 0 0 0 255;*/\r
+                                  }\r
+                          }\r
+                           part { name: "line_v.txt.2";\r
+                                  type: TEXT;\r
+                                  scale: 1;\r
+                                  description {\r
+                                         state: "default" 0.0;\r
+                                         min: 0 30;\r
+                                         fixed: 0 1;\r
+                                         visible: 1;\r
+                                         rel1 {\r
+                                                 relative: 0.0 1.0;\r
+                                                 to: "line_v.txt.1";\r
+                                         }\r
+                                         rel2 {\r
+                                                 relative: 1.0 1.0;\r
+                                                 to: "line_v.txt.1";\r
+                                         }\r
+                                         align: 0.0 0.0;\r
+                                         text {\r
+                                               font: FONT_NAME;\r
+                                               size:     30;\r
+                                               align:    0.5 0.5;\r
+                                               min: 1 1;\r
+                                               text: "your shortcuts";\r
+                                       }\r
+                                         /*color: 0 0 0 255;*/\r
+                                  }\r
+                          }\r
+#endif\r
+                       part { name: "line_h.1.padding.left";\r
+                          type: RECT;\r
+                          scale: 1;\r
+                          description { state: "default" 0.0;\r
+                                 min: 180 0;\r
+                                 fixed: 1 0;\r
+                                 visible: 0;\r
+                                 rel1 {\r
+                                               relative: 0.0 0.0; to:"bg.content.shortcuts";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 0.0 1.0; to:"bg.content.shortcuts";\r
+                                       }\r
+                                 align: 0.0 0.0;\r
+                                 color: 0 0 0 255;\r
+                          }\r
+                       }\r
+\r
+\r
+                       part {\r
+                               name: "line_h.1";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       min: 4 900;\r
+                                       fixed: 1 1;\r
+                                       visible: 1;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.1.padding.left";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.1.padding.left";\r
+                                               }\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_H_IMAGE ;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                               }\r
+\r
+                       }\r
+                       part { name: "line_h.2.padding.left";\r
+                          type: RECT;\r
+                          scale: 1;\r
+                          description { state: "default" 0.0;\r
+                                 min: 180 0;\r
+                                 fixed: 1 0;\r
+                                 visible: 0;\r
+                                 rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.1";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.1";\r
+                                       }\r
+                                 align: 0.0 0.0;\r
+                                 color: 0 0 0 255;\r
+                          }\r
+                       }\r
+\r
+\r
+                  part {\r
+                               name: "line_h.2";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       min: 4 0;\r
+                                       fixed: 1 0;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.2.padding.left";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.2.padding.left";\r
+                                               }\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_H_IMAGE ;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                               }\r
+\r
+                       }\r
+                       part { name: "line_h.3.padding.left";\r
+                          type: RECT;\r
+                          scale: 1;\r
+                          description { state: "default" 0.0;\r
+                                 min: 180 0;\r
+                                 fixed: 1 0;\r
+                                 visible: 0;\r
+                                 rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.2";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.2";\r
+                                       }\r
+                                 align: 0.0 0.0;\r
+                                 color: 0 0 0 255;\r
+                          }\r
+                       }\r
+\r
+\r
+                  part {\r
+                               name: "line_h.3";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       min: 4 0;\r
+                                       fixed: 1 0;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.3.padding.left";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.3.padding.left";\r
+                                               }\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_H_IMAGE ;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                               }\r
+\r
+                       }\r
+                       part { name: "line_h.4.padding.left";\r
+                          type: RECT;\r
+                          scale: 1;\r
+                          description { state: "default" 0.0;\r
+                                 min: 180 0;\r
+                                 fixed: 1 0;\r
+                                 visible: 0;\r
+                                 rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.3";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.3";\r
+                                       }\r
+                                 align: 0.0 0.0;\r
+                                 color: 0 0 0 255;\r
+                          }\r
+                       }\r
+\r
+\r
+                  part {\r
+                               name: "line_h.4";\r
+                               type: IMAGE;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       visible: 1;\r
+                                       min: 4 0;\r
+                                       fixed: 1 0;\r
+                                       rel1 {\r
+                                               relative: 1.0 0.0; to:"line_h.4.padding.left";\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: 1.0 1.0; to:"line_h.4.padding.left";\r
+                                               }\r
+                                       image{\r
+                                               normal: SHOTCUTS_LINE_H_IMAGE ;\r
+                                       }\r
+                                       align: 0.0 0.0;\r
+                               }\r
+\r
+                       }\r
+\r
+                       SHOTCUTS_MENU_H("0", 0, 0, SHORTCUTS_PANEL_HEIGHT, 180, "line_h.1.padding.left")\r
+                       SHOTCUTS_MENU_H("4", 0, 180, SHORTCUTS_PANEL_HEIGHT, 360, "line_h.1.padding.left")\r
+                       SHOTCUTS_MENU_H("8", 0, 360, SHORTCUTS_PANEL_HEIGHT, 540, "line_h.1.padding.left")\r
+                       SHOTCUTS_MENU_H("12", 0, 540, SHORTCUTS_PANEL_HEIGHT, 720, "line_h.1.padding.left")\r
+                       SHOTCUTS_MENU_H("16", 0, 720, SHORTCUTS_PANEL_HEIGHT, 900, "line_h.1.padding.left")\r
+                       /*SHOTCUTS_MENU_H("20", 0, 900, 1280, 1080, "line_h.1.padding.left")\r
+\r
+                       SHOTCUTS_MENU_H("24", 0, 1080, 1280, 1160, "line_h.1.padding.left")*/\r
+\r
+                       SHOTCUTS_MENU_H("1", 0, 0, SHORTCUTS_PANEL_HEIGHT, 180, "line_h.2.padding.left")\r
+                       SHOTCUTS_MENU_H("5", 0, 180, SHORTCUTS_PANEL_HEIGHT, 360, "line_h.2.padding.left")\r
+                       SHOTCUTS_MENU_H("9", 0, 360, SHORTCUTS_PANEL_HEIGHT, 540, "line_h.2.padding.left")\r
+                       SHOTCUTS_MENU_H("13", 0, 540, SHORTCUTS_PANEL_HEIGHT, 720, "line_h.2.padding.left")\r
+                       SHOTCUTS_MENU_H("17", 0, 720, SHORTCUTS_PANEL_HEIGHT, 900, "line_h.2.padding.left")\r
+                       /*SHOTCUTS_MENU_H("21", 0, 900, 1280, 1080, "line_h.2.padding.left")\r
+\r
+                       SHOTCUTS_MENU_H("25", 0, 1080, 1280, 1160, "line_h.2.padding.left")*/\r
+\r
+                       SHOTCUTS_MENU_H("2", 0, 0, SHORTCUTS_PANEL_HEIGHT, 180, "line_h.3.padding.left")\r
+                       SHOTCUTS_MENU_H("6", 0, 180, SHORTCUTS_PANEL_HEIGHT, 360, "line_h.3.padding.left")\r
+                       SHOTCUTS_MENU_H("10", 0, 360, SHORTCUTS_PANEL_HEIGHT, 540, "line_h.3.padding.left")\r
+                       SHOTCUTS_MENU_H("14", 0, 540, SHORTCUTS_PANEL_HEIGHT, 720, "line_h.3.padding.left")\r
+                       SHOTCUTS_MENU_H("18", 0, 720, SHORTCUTS_PANEL_HEIGHT, 900, "line_h.3.padding.left")\r
+                       /*SHOTCUTS_MENU_H("22", 0, 900, 1280, 1080, "line_h.3.padding.left")\r
+\r
+                       SHOTCUTS_MENU_H("26", 0, 1080, 1280, 1160, "line_h.3.padding.left")*/\r
+\r
+                       SHOTCUTS_MENU_H("3", 0, 0, SHORTCUTS_PANEL_HEIGHT, 180, "line_h.4.padding.left")\r
+                       SHOTCUTS_MENU_H("7", 0, 180, SHORTCUTS_PANEL_HEIGHT, 360, "line_h.4.padding.left")\r
+                       SHOTCUTS_MENU_H("11", 0, 360, SHORTCUTS_PANEL_HEIGHT, 540, "line_h.4.padding.left")\r
+                       SHOTCUTS_MENU_H("15", 0, 540, SHORTCUTS_PANEL_HEIGHT, 720, "line_h.4.padding.left")\r
+                       SHOTCUTS_MENU_H("19", 0, 720, SHORTCUTS_PANEL_HEIGHT, 900, "line_h.4.padding.left")\r
+                       /*SHOTCUTS_MENU_H("23", 0, 900, 1280, 1080, "line_h.4.padding.left")\r
+\r
+                       SHOTCUTS_MENU_H("27", 0, 1080, 1280, 1160, "line_h.4.padding.left")*/\r
+               }\r
+       }\r
+\r
+}//END connection\r
+//end file\r
diff --git a/edc/cam_funcs.edc b/edc/cam_funcs.edc
new file mode 100644 (file)
index 0000000..dde8e67
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * 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 "../include/edc_string.h"
+
+// background
+#define BACKGROUND_IMAGE(part_name, x, y, w, h, img) \
+                       part {                          \
+                               name: part_name;        \
+                               type: IMAGE;    \
+                               description {   \
+                                       state: "default" 0.0;\
+                                      rel1 { relative: (x)/MAIN_W (y)/MAIN_H; }                \
+                                      rel2 { relative: (x+w)/MAIN_W (y+h)/MAIN_H; }             \
+                                       image { normal: img; }  \
+                               }     \
+                       }
+#define BACKGROUND_IMAGE_WITH_ALPHA(part_name, x, y, w, h, img, alpha) \
+                       part {                          \
+                               name: part_name;        \
+                               type: IMAGE;    \
+                               description {   \
+                                       state: "default" 0.0;\
+                                      rel1 { relative: (x)/MAIN_W (y)/MAIN_H; }                \
+                                      rel2 { relative: (x+w)/MAIN_W (y+h)/MAIN_H; }             \
+                                       image { normal: img; }\
+                                       color: 255 255 255 alpha;       \
+                               }     \
+                       }
+
+#define VER_BACKGROUND_IMAGE(part_name, x, y, w, h, img) \
+                       part {                          \
+                               name: part_name;        \
+                               type: IMAGE;    \
+                               description {   \
+                                       state: "default" 0.0;\
+                                      rel1 { relative: (x)/VER_MAIN_W (y)/VER_MAIN_H; }                \
+                                      rel2 { relative: (x+w)/VER_MAIN_W (y+h)/VER_MAIN_H; }             \
+                                       image { normal: img; }  \
+                               }     \
+                       }
+
+#define GENERAL_BUTTON(part_name, x, y, w, h, img_dim, img, img_p, img_s) \
+                       part {                          \
+                               name: part_name;        \
+                               type: IMAGE;    \
+                               mouse_events: 1;\
+                               description {   \
+                                       state: "default" 0.0;\
+                                      rel1 { relative: (x)/MAIN_W (y)/MAIN_H; }                \
+                                      rel2 { relative: (x+w)/MAIN_W (y+h)/MAIN_H; }             \
+                                       image { normal: img; }  \
+                               }      \
+                               description { \
+                                       state: "press" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       image { normal: img_p; }\
+                               }                                       \
+                               description { \
+                                       state: "selected" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       image { normal: img_s; }\
+                               }                                       \
+                               description { \
+                                       state: "dim" 0.0;                                \
+                                       inherit: "default" 0.0;                                     \
+                                       image { normal: img_dim;}                                                         \
+                               }               \
+                               description { \
+                                       state: "invisible" 0.0;                          \
+                                       inherit: "default" 0.0;                                     \
+                                       visible: 0;                                               \
+                               } \
+                       }
+
+#define VER_GENERAL_BUTTON(part_name, x, y, w, h, img_dim, img, img_p, img_s) \
+                       part {                          \
+                               name: part_name;        \
+                               type: IMAGE;    \
+                               mouse_events: 1;\
+                               description {   \
+                                       state: "default" 0.0;\
+                                      rel1 { relative: (x)/VER_MAIN_W (y)/VER_MAIN_H; }                \
+                                      rel2 { relative: (x+w)/VER_MAIN_W (y+h)/VER_MAIN_H; }             \
+                                       image { normal: img; }  \
+                               }      \
+                               description { \
+                                       state: "press" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       image { normal: img_p; }\
+                               }                                       \
+                               description { \
+                                       state: "selected" 0.0; \
+                                       inherit: "default" 0.0; \
+                                       image { normal: img_s; }\
+                               }                                       \
+                               description { \
+                                       state: "dim" 0.0;                                \
+                                       inherit: "default" 0.0;                                     \
+                                       image { normal: img_dim;}                                                         \
+                               }               \
+                               description { \
+                                       state: "invisible" 0.0;                          \
+                                       inherit: "default" 0.0;                                     \
+                                       visible: 0;                                               \
+                               } \
+                       }
+
+#define GENERAL_BUTTON_PROGRAMS(part_name, signal_name, source_name) \
+                       program {       \
+                               name: "lbutton_down_"part_name; \
+                               signal: "mouse,down,1"; \
+                               source: part_name; \
+                               script {\
+                                       new st[31];\
+                                       new Float:vl;\
+                                       get_state(PART:part_name, st, 30, vl);\
+                                       if (strcmp(st, "dim") != 0) \
+                                               { \
+                                                       set_state(PART:part_name, "press", 0.0);\
+                                                       emit( HAPTIC_SIG, HAPTIC_SIG_SRC );\
+                                               } \
+                                       }\
+                       } \
+                       program { \
+                               name: "lbutton_send_event_"part_name;  \
+                               signal: "mouse,clicked,1"; \
+                               source: part_name; \
+                               script {\
+                                       new st[31];\
+                                       new Float:vl;\
+                                       get_state(PART:part_name, st, 30, vl);\
+                                       if (strcmp(st, "dim") != 0) \
+                                               emit( signal_name, source_name );\
+                                       }\
+                       } \
+                       program { \
+                               name: "lbutton_up_"part_name; \
+                               signal: "mouse,up,1"; \
+                               source: part_name; \
+                               script {\
+                                       new st[31];\
+                                       new Float:vl;\
+                                       get_state(PART:part_name, st, 30, vl);\
+                                       if (strcmp(st, "dim") != 0) \
+                                               set_state(PART:part_name, "default", 0.0);\
+                                       }\
+                       }
+
diff --git a/edc/cam_guideline_edje.edc b/edc/cam_guideline_edje.edc
new file mode 100644 (file)
index 0000000..fcb6cbc
--- /dev/null
@@ -0,0 +1,383 @@
+/*\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
+\r
+images {\r
+       image: GUDIE_LINE_1_IMAGE COMP;\r
+       image: GUDIE_LINE_2_IMAGE COMP;\r
+       image: GUDIE_OPA_LINE_1_IMAGE COMP;\r
+       image: GUDIE_OPA_LINE_2_IMAGE COMP;\r
+}\r
+\r
+#define GUIDE_LINE_H1 238\r
+#define GUIDE_LINE_H2 238\r
+#define GUIDE_LINE_H3 238\r
+\r
+#define GUIDE_LINE_W1 425\r
+#define GUIDE_LINE_W2 424\r
+#define GUIDE_LINE_W3 425\r
+\r
+#define VER_GUIDE_LINE_H1 425\r
+#define VER_GUIDE_LINE_H2 424\r
+#define VER_GUIDE_LINE_H3 425\r
+\r
+#define VER_GUIDE_LINE_W1 238\r
+#define VER_GUIDE_LINE_W2 238\r
+#define VER_GUIDE_LINE_W3 238\r
+\r
+\r
+#define GUIDE_LINE_GAP 3\r
+\r
+group {\r
+       name: "guideline";\r
+       /**min: MAIN_W MAIN_H;*/\r
+\r
+       parts{\r
+       /*outline*/\r
+               part {\r
+                       name: "guide_line1_outline1_1";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_W1 - 1)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1)/MAIN_W 1.0; }\r
+                               image{\r
+                                       normal: GUDIE_OPA_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+               part {\r
+                       name: "guide_line1";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: GUIDE_LINE_W1/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP)/MAIN_W 1.0; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                               state: "ver_default" 0.0;\r
+                               rel1 { relative: VER_GUIDE_LINE_W1/VER_MAIN_W 0.1; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP)/VER_MAIN_W 0.9; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                                state: "ver_wide" 0.0;\r
+                                rel1 { relative: VER_GUIDE_LINE_W1/VER_MAIN_W 0.0; }\r
+                                rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP)/VER_MAIN_W 1.0; }\r
+                                image{\r
+                                               normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+\r
+               }\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line1_outline1_2";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + 1)/MAIN_W 1.0; }\r
+                               image{\r
+                                       normal: GUDIE_OPA_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+               /*outline*/\r
+\r
+               part {\r
+                       name: "guide_line2_outline2_1";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 - 1)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+               part {\r
+                       name: "guide_line2";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 + GUIDE_LINE_GAP)/MAIN_W 1.0; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                               state: "ver_default" 0.0;\r
+                               rel1 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2)/VER_MAIN_W 0.1; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2 + GUIDE_LINE_GAP)/VER_MAIN_W 0.9; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                               state: "ver_wide" 0.0;\r
+                               rel1 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2)/VER_MAIN_W 0.0; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_W1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_W2 + GUIDE_LINE_GAP)/VER_MAIN_W 1.0; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+\r
+               }\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line2_outline2_2";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_W1 + GUIDE_LINE_GAP + GUIDE_LINE_W2 + GUIDE_LINE_GAP + 1)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_1_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line3_outline3_1";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_H1 - 1)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_H1)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+               part {\r
+                       name: "guide_line3";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: 0.1 GUIDE_LINE_H1/MAIN_H; }\r
+                               rel2 { relative: 0.9 (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                               state: "wide" 0.0;\r
+                               rel1 { relative: 0.0 GUIDE_LINE_H1/MAIN_H; }\r
+                               rel2 { relative: 1.0 (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                       }\r
+                       description {\r
+                               state: "ver_default" 0.0;\r
+                               rel1 { relative: 0.0 VER_GUIDE_LINE_H1/VER_MAIN_H; }\r
+                               rel2 { relative: 1.0 (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP)/VER_MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+\r
+               }\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line3_outline3_2";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP + 1)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line4_outline4_1";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 - 1)/MAIN_W 0.0; }\r
+                               rel2 { relative: (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+               part {\r
+                       name: "guide_line4";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: 0.1 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2)/MAIN_H; }\r
+                               rel2 { relative: 0.9 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+                       description {\r
+                               state: "wide" 0.0;\r
+                               rel1 { relative: 0.0 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2)/MAIN_H; }\r
+                               rel2 { relative: 1.0 (GUIDE_LINE_H1 + GUIDE_LINE_GAP + GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                       }\r
+                       description {\r
+                               state: "ver_default" 0.0;\r
+                               rel1 { relative: 0.0 (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_H2)/VER_MAIN_H; }\r
+                               rel2 { relative: 1.0 (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_H2 + GUIDE_LINE_GAP)/VER_MAIN_H; }\r
+                               image{\r
+                                       normal: GUDIE_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 255 255 255 255;\r
+                       }\r
+\r
+               }\r
+               /*outline*/\r
+               part {\r
+                       name: "guide_line4_outline4_2";\r
+                       type: IMAGE;\r
+                       mouse_events: 0;\r
+                       description {\r
+                               state: "default" 0.0;\r
+                               rel1 { relative: (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_H2 + GUIDE_LINE_GAP)/MAIN_W 0.0; }\r
+                               rel2 { relative: (VER_GUIDE_LINE_H1 + GUIDE_LINE_GAP + VER_GUIDE_LINE_H2 + GUIDE_LINE_GAP + 1)/MAIN_W 1.0; }\r
+                               image{\r
+                                               normal: GUDIE_OPA_LINE_2_IMAGE ;\r
+                               }\r
+                               color: 0 0 0 25;\r
+                       }\r
+               }\r
+\r
+\r
+       }/*end parts*/\r
+\r
+       programs{\r
+\r
+               /*line1 line2*/\r
+               program {\r
+                       name: "prog_guideline12_set_normal";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,1,2,normal";\r
+                               script: {\r
+                                       set_state(PART:"guide_line1", "default", 0.0);\r
+                                       set_state(PART:"guide_line2", "default", 0.0);\r
+\r
+                               }\r
+               }\r
+\r
+               program {\r
+                       name:"prog_guideline12_set_wide_ver";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,1,2,vertical,wide";\r
+                               script: {\r
+                                       set_state(PART:"guide_line1", "ver_wide", 0.0);\r
+                                       set_state(PART:"guide_line2", "ver_wide", 0.0);\r
+                               }\r
+               }\r
+\r
+               program {\r
+                       name: "prog_guideline12_set_normal_ver";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,1,2,vertical,normal";\r
+                               script: {\r
+                                       set_state(PART:"guide_line1", "ver_default", 0.0);\r
+                                       set_state(PART:"guide_line2", "ver_default", 0.0);\r
+\r
+                               }\r
+               }\r
+\r
+               /*line3 line4 */\r
+               program {\r
+                       name:"prog_guideline34_set_wide";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,3,4,wide";\r
+                               script: {\r
+                                       set_state(PART:"guide_line3", "wide", 0.0);\r
+                                       set_state(PART:"guide_line4", "wide", 0.0);\r
+                               }\r
+               }\r
+\r
+               program {\r
+                       name: "prog_guideline34_set_normal";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,3,4,normal";\r
+                               script: {\r
+                                       set_state(PART:"guide_line3", "default", 0.0);\r
+                                       set_state(PART:"guide_line4", "default", 0.0);\r
+\r
+                               }\r
+               }\r
+\r
+               program {\r
+                       name: "prog_guideline34_set_normal_ver";\r
+                       source: "prog_guideline";\r
+                       signal: "guide_line,3,4,vertical,normal";\r
+                               script: {\r
+                                       set_state(PART:"guide_line3", "ver_default", 0.0);\r
+                                       set_state(PART:"guide_line4", "ver_default", 0.0);\r
+\r
+                               }\r
+               }\r
+\r
+\r
+\r
+       }/*end programs*/\r
+\r
+\r
+}/*end group*/\r
+\r
+\r
diff --git a/edc/cam_indicator_layout.edc b/edc/cam_indicator_layout.edc
new file mode 100755 (executable)
index 0000000..7261d8c
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * 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 "../include/edc_string.h"
+
+//indicator
+#define INDI_BATTERY_X 1044
+#define INDICATOR_Y    12
+#define INDICATOR_W    48
+#define INDICATOR_H    48
+
+//portrait
+#define INDI_PORTRAIT_BATTERY_X        660
+#define INDICATOR_PORTRAIT_Y 172
+
+// portrait & recording
+#define INDI_PORTRAIT_REC_Y 28
+
+
+#define INDICATOR(part_name, x, y) \
+               part { \
+                       name: part_name; \
+                       type: SWALLOW; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { relative: x/MAIN_W y/MAIN_H; }                \
+                               rel2 { relative: (x+INDICATOR_W)/MAIN_W (y+INDICATOR_H)/MAIN_H; }             \
+                       } \
+               }
+
+#define INDICATOR_INVERSE(part_name, x, y) \
+               part { \
+                       name: part_name; \
+                       type: SWALLOW; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { relative: (1 - (x+INDICATOR_W)/MAIN_W) (1 - (y+INDICATOR_H)/MAIN_H); }                \
+                               rel2 { relative: (1 - x/MAIN_W) (1 - y/MAIN_H); }             \
+                       } \
+               }
+
+
+#define INDICATOR_PORTRAIT(part_name, x, y) \
+               part { \
+                       name: part_name; \
+                       type: SWALLOW; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { relative: x/MAIN_H y/MAIN_W; }                \
+                               rel2 { relative: (x+INDICATOR_W)/MAIN_H (y+INDICATOR_H)/MAIN_W; }             \
+                       } \
+               }
+
+#define INDICATOR_PORTRAIT_INVERSE(part_name, x, y) \
+               part { \
+                       name: part_name; \
+                       type: SWALLOW; \
+                       description { \
+                               state: "default" 0.0; \
+                               rel1 { relative: (1 - (x+INDICATOR_W)/MAIN_H) (1 - (y+INDICATOR_H)/MAIN_W); } \
+                               rel2 { relative: (1 - x/MAIN_H) (1 - (y/MAIN_W)); }             \
+                       } \
+               }
+
+
+collections {
+       group { name: "indicator_landscape";
+       min: MAIN_W MAIN_H;
+
+               parts{
+                       INDICATOR(INDICATOR_BATTERY, INDI_BATTERY_X, INDICATOR_Y)
+                       INDICATOR(INDI_REC_BATTERY, INDI_BATTERY_X, INDICATOR_Y)
+               }
+       }
+
+       group { name: "indicator_landscape_inverse";
+               min: MAIN_W MAIN_H;
+               parts{
+                       INDICATOR(INDICATOR_BATTERY, INDI_BATTERY_X, INDICATOR_Y)
+                       INDICATOR(INDI_REC_BATTERY, INDI_BATTERY_X, INDICATOR_Y)
+               }
+       }
+
+       group { name: "indicator_portrait";
+               min: MAIN_H MAIN_W;
+               parts{
+                       INDICATOR_PORTRAIT(INDICATOR_BATTERY, INDI_PORTRAIT_BATTERY_X, INDICATOR_PORTRAIT_Y)
+                       INDICATOR_PORTRAIT(INDI_REC_BATTERY, INDI_PORTRAIT_BATTERY_X, INDI_PORTRAIT_REC_Y)
+               }
+       }
+
+       group { name: "indicator_portrait_inverse";
+               min: MAIN_H MAIN_W;
+               parts{
+                       INDICATOR_PORTRAIT(INDICATOR_BATTERY, INDI_PORTRAIT_BATTERY_X, INDICATOR_PORTRAIT_Y)
+                       INDICATOR_PORTRAIT(INDI_REC_BATTERY, INDI_PORTRAIT_BATTERY_X, INDI_PORTRAIT_REC_Y)
+               }
+       }
+
+}//end collections
+//end file
diff --git a/edc/cam_main_layout.edc b/edc/cam_main_layout.edc
new file mode 100644 (file)
index 0000000..678c880
--- /dev/null
@@ -0,0 +1,208 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+
+collections {
+       group {
+               name: "main_layout";
+               min: MAIN_W MAIN_H;
+               parts {
+
+                       part { name: "main_bg";
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                          state: "default" 0.0;
+                                          rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                          rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                          color : 0 0 0 0;
+                               }
+                       }
+               }
+       }
+
+#include "cam_guideline_edje.edc"
+
+       group {
+               name: "progressbar";
+               min: MAIN_W MAIN_H;
+
+               parts {
+
+#define PROGRESS_BAR_X 320
+#define PROGRESS_BAR_Y 657
+#define PROGRESS_BAR_W 639
+#define PROGRESS_BAR_H 20
+
+                       part {
+                               name: "progressbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed:1 1;
+                                       rel1 { relative: PROGRESS_BAR_X/MAIN_W PROGRESS_BAR_Y/MAIN_H; }
+                                       rel2 { relative: (PROGRESS_BAR_X+PROGRESS_BAR_W)/MAIN_W (PROGRESS_BAR_Y+PROGRESS_BAR_H)/MAIN_H; }
+                               }
+                       }
+
+                       part {
+                               name: "progressbar_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                       rel2 { relative: (1.0+90/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "black_screen";
+               min: MAIN_W MAIN_H;
+
+               parts {
+                       part { name: "black_screen_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 255;
+                               }
+                       }
+               }
+       }
+
+       group {
+               name: "shutter_image";
+               min: MAIN_W MAIN_H;
+
+               parts {
+                       part {
+                               name: "camera_image_bg";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 0;
+                               }
+                               description {
+                                       state: "gray" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 180;
+                               }
+                       }
+                       part {
+                               name: "up_part";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; to : camera_image_bg; }
+                                       rel2 { relative: 1.0 0.0; offset: -1 0; to : camera_image_bg; }
+                                       color : 0 0 0 255;
+//                                     visible: 1;
+                               }
+                               description {
+                                       state: "middle" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; to : camera_image_bg; }
+                                       rel2 { relative: 1.0 0.5; offset: -1 -1; to : camera_image_bg; }
+                                       color : 0 0 0 255;
+//                                     visible: 0;
+                               }
+                       }
+
+                       part { name: "down_part";
+                               type: RECT;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 1.0; offset: 0 -1; to : camera_image_bg; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; to : camera_image_bg; }
+                                       color : 0 0 0 255;
+//                                     visible: 1;
+                               }
+                               description {
+                                       state: "middle" 0.0;
+                                       rel1 { relative: 0.0 0.5; offset: 0 -1; to : camera_image_bg; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; to : camera_image_bg; }
+                                       color : 0 0 0 255;
+//                                     visible: 0;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               name: "close";
+                               signal: "start_animation";
+                               source: "*";
+                               action: STATE_SET "middle" 0.0;
+                               target: "up_part" ;
+                               target: "down_part" ;
+                               transition: ACCELERATE 0.25;
+                               after: "open";
+                       }
+                       program {
+                               name: "open";
+                               signal: "open";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "up_part" ;
+                               target: "down_part" ;
+                               transition: DECELERATE 0.25;
+                       }
+                       program {
+                               name: "dim";
+                               signal: "dim";
+                               source: "*";
+                               action: STATE_SET "gray" 0.0;
+                               target: "camera_image_bg" ;
+                       }
+
+                       program {
+                               name: "bright";
+                               signal: "bright";
+                               source: "*";
+                               action: STATE_SET "default" 0.0;
+                               target: "camera_image_bg" ;
+                               transition: DECELERATE 0.2;
+                               after: "animation_finish";
+                       }
+                       program {
+                               name: "animation_finish";
+                               signal: "animation_finish";
+                               source: "*";
+                               action: SIGNAL_EMIT "animation_finish" "*";
+                       }
+               }
+       }
+
+       /*#include "cam_recording_edje.edc"*/
+}
+
+
diff --git a/edc/cam_recording_edje.edc b/edc/cam_recording_edje.edc
new file mode 100644 (file)
index 0000000..52ac7fe
--- /dev/null
@@ -0,0 +1,275 @@
+/*
+ * 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 "cam_recording_edje_inc.edc"
+
+collections {
+       group {
+               name: "recording_layout";
+               min: MAIN_W MAIN_H;
+
+               parts {
+                       part {
+                               name: RECORDING_IMAGE;
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_IMAGE_X/MAIN_W RECORDING_IMAGE_Y/MAIN_H; }
+                                       rel2 { relative: (RECORDING_IMAGE_X+RECORDING_IMAGE_W)/MAIN_W (RECORDING_IMAGE_Y+RECORDING_IMAGE_H)/MAIN_H; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_TEXT_X/MAIN_W RECORDING_TEXT_Y/MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_LEFT_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_LEFT_TEXT_X/MAIN_W RECORDING_LEFT_TEXT_Y/MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit:  "default" 0.0;
+                                       visible : 0;
+                               }
+                       }
+
+                       part { name: RECORDING_STOP_BUTTON;
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (RECBTN_X)/(MAIN_W) (RECBTN_Y)/(MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (RECBTN_X+RECBTN_W)/(MAIN_W) (RECBTN_Y+RECBTN_H)/(MAIN_H); offset: -1 -1; }
+                                       image { normal: SHUTTER_REC_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: RECORDING_PRESS_IMAGE_ANI ; }
+                               }
+                                       description {
+                                       state: "press" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_PRESS_IMAGE ; }
+                               }
+                       }
+
+                       part { name: "progressbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed:1 1;
+                                       rel1 { relative: PROGRESS_BAR_X/MAIN_W PROGRESS_BAR_Y/MAIN_H; }
+                                       rel2 { relative: (PROGRESS_BAR_X+PROGRESS_BAR_W)/MAIN_W (PROGRESS_BAR_Y+PROGRESS_BAR_H)/MAIN_H; }
+                               }
+                       }
+
+                       part {
+                               name: "progressbar_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                       rel2 { relative: (1.0+90/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part{
+                               name: "file_size_text";
+                               type: TEXT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: (0.0-100/PROGRESS_BAR_W) (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                       rel2 { relative: (0.0-10/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align : 1.0 0.5;
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+
+                       program {
+                               name: "recording_stop_button,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "recording_stop_button";
+                               script {
+                                       emit( REC_STOP_SIG, REC_SIG_SRC );
+                               }
+                       }
+
+#ifdef NEW_RECORDING_LAYOUT
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                                       //set_state(PART:REC_STOP, "invisible", 0.0);
+                                       //set_state(PART:REC_PAUSE, "dim", 0.0);
+                               }
+                       }
+
+#else
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec1",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "invisible", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                               }
+                       }
+                       program{ name : "set_press";
+                               signal : "mouse,down,1";
+                               source: RECORDING_STOP_BUTTON;
+                               action: STATE_SET "press" 0.0;
+                               target: RECORDING_STOP_BUTTON;
+                       }
+#endif
+
+                       program { name: "hide_indicator";
+                               source: "program";
+                               signal: "indicator,hide";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "invisible", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "show_indicator";
+                               source: "program";
+                               signal: "indicator,show";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                               }
+                       }
+               }
+       }
+}
+//endfile
diff --git a/edc/cam_recording_edje_inc.edc b/edc/cam_recording_edje_inc.edc
new file mode 100644 (file)
index 0000000..ecb6567
--- /dev/null
@@ -0,0 +1,53 @@
+/*\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
+\r
+\r
+#include "../include/edc_image_name.h"\r
+#include "cam_funcs.edc"\r
+images {\r
+       image: RECORDING_IMAGE_REC_IMAGE COMP;\r
+       image: SHUTTER_REC_NORMAL_IMAGE COMP;\r
+       image: SHUTTER_REC_PRESS_IMAGE COMP;\r
+       image: RECORDING_PRESS_IMAGE_ANI COMP;\r
+}\r
+\r
+\r
+#define RECORDING_IMAGE_X 894\r
+#define RECORDING_IMAGE_Y 12\r
+#define RECORDING_IMAGE_W 48\r
+#define RECORDING_IMAGE_H 48\r
+#define RECORDING_TEXT_X 784\r
+#define RECORDING_TEXT_Y 12\r
+#define RECORDING_LEFT_TEXT_X 128
+#define RECORDING_LEFT_TEXT_Y 10
+
+\r
+\r
+#undef PROGRESS_BAR_X
+#undef PROGRESS_BAR_Y
+#undef PROGRESS_BAR_W
+#undef PROGRESS_BAR_H
+#define PROGRESS_BAR_X 320
+#define PROGRESS_BAR_Y 657
+#define PROGRESS_BAR_W 639
+#define PROGRESS_BAR_H 20
+
+ #define RECBTN_X      1152
+ #define RECBTN_Y      239
+ #define RECBTN_W      128
+ #define RECBTN_H      240\r
+\r
+//endfiles
\ No newline at end of file
diff --git a/edc/cam_recording_edje_inverse.edc b/edc/cam_recording_edje_inverse.edc
new file mode 100644 (file)
index 0000000..1930a02
--- /dev/null
@@ -0,0 +1,278 @@
+/*
+ * 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 "cam_recording_edje_inverse_inc.edc"
+
+collections {
+
+       group {
+               name: "recording_layout";
+               min: MAIN_W MAIN_H;
+
+               parts {
+
+                       part {
+                               name: RECORDING_IMAGE;
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_IMAGE_X/MAIN_W RECORDING_IMAGE_Y/MAIN_H; }
+                                       rel2 { relative: (RECORDING_IMAGE_X+RECORDING_IMAGE_W)/MAIN_W (RECORDING_IMAGE_Y+RECORDING_IMAGE_H)/MAIN_H; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_TEXT_X/MAIN_W RECORDING_TEXT_Y/MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+                       part {
+                               name: RECORDING_LEFT_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: (1.0 - RECORDING_LEFT_TEXT_X/MAIN_W) (1.0 - RECORDING_LEFT_TEXT_Y/MAIN_H); offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 1.0 1.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit:  "default" 0.0;
+                                       visible : 0;
+                               }
+                       }
+
+                       part { name: RECORDING_STOP_BUTTON;
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (RECBTN_X+RECBTN_W)/(MAIN_W)) (1 - (RECBTN_Y+RECBTN_H)/(MAIN_H)); offset: 0 0; }
+                                       rel2 { relative: (1 - (RECBTN_X)/(MAIN_W)) (1 - (RECBTN_Y)/(MAIN_H)); offset: -1 -1; }
+                                       image { normal: SHUTTER_REC_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: RECORDING_PRESS_IMAGE_ANI ; }
+                               }
+                                       description {
+                                       state: "press" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_PRESS_IMAGE ; }
+                               }
+                       }
+
+                       part { name: "progressbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed:1 1;
+                                       rel1 { relative: PROGRESS_BAR_X/MAIN_W PROGRESS_BAR_Y/MAIN_H; }
+                                       rel2 { relative: (PROGRESS_BAR_X+PROGRESS_BAR_W)/MAIN_W (PROGRESS_BAR_Y+PROGRESS_BAR_H)/MAIN_H; }
+                               }
+                       }
+
+                       part {
+                               name: "progressbar_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1.0 (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                       rel2 { relative: (1.0+90/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part{
+                               name: "file_size_text";
+                               type: TEXT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: (0.0-100/PROGRESS_BAR_W) (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                       rel2 { relative: (0.0-10/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align : 1.0 0.5;
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+
+                       program {
+                               name: "recording_stop_button,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "recording_stop_button";
+                               script {
+                                       emit( REC_STOP_SIG, REC_SIG_SRC );
+                               }
+                       }
+
+#ifdef NEW_RECORDING_LAYOUT
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                                       //set_state(PART:REC_STOP, "invisible", 0.0);
+                                       //set_state(PART:REC_PAUSE, "dim", 0.0);
+                               }
+                       }
+
+#else
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec1",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "invisible", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                               }
+                       }
+                       program{ name : "set_press";
+                               signal : "mouse,down,1";
+                               source: RECORDING_STOP_BUTTON;
+                               action: STATE_SET "press" 0.0;
+                               target: RECORDING_STOP_BUTTON;
+                       }
+#endif
+
+                       program { name: "hide_indicator";
+                               source: "program";
+                               signal: "indicator,hide";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "invisible", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "show_indicator";
+                               source: "program";
+                               signal: "indicator,show";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                               }
+                       }
+               }
+       }
+}
+//endfile
diff --git a/edc/cam_recording_edje_inverse_inc.edc b/edc/cam_recording_edje_inverse_inc.edc
new file mode 100644 (file)
index 0000000..63e567d
--- /dev/null
@@ -0,0 +1,53 @@
+/*\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
+\r
+\r
+#include "../include/edc_image_name.h"\r
+#include "cam_funcs.edc"\r
+images {\r
+       image: RECORDING_IMAGE_REC_IMAGE COMP;\r
+       image: SHUTTER_REC_NORMAL_IMAGE COMP;\r
+       image: SHUTTER_REC_PRESS_IMAGE COMP;\r
+       image: RECORDING_PRESS_IMAGE_ANI COMP;\r
+}\r
+\r
+\r
+#define RECORDING_IMAGE_X 894\r
+#define RECORDING_IMAGE_Y 12\r
+#define RECORDING_IMAGE_W 48\r
+#define RECORDING_IMAGE_H 48\r
+#define RECORDING_TEXT_X 784\r
+#define RECORDING_TEXT_Y 12\r
+#define RECORDING_LEFT_TEXT_X 128\r
+#define RECORDING_LEFT_TEXT_Y 10\r
+\r
+\r
+\r
+#undef PROGRESS_BAR_X\r
+#undef PROGRESS_BAR_Y\r
+#undef PROGRESS_BAR_W\r
+#undef PROGRESS_BAR_H\r
+#define PROGRESS_BAR_X 320\r
+#define PROGRESS_BAR_Y 657\r
+#define PROGRESS_BAR_W 639\r
+#define PROGRESS_BAR_H 20\r
+\r
+ #define RECBTN_X      1152\r
+ #define RECBTN_Y      239\r
+ #define RECBTN_W      128\r
+ #define RECBTN_H      240\r
+\r
+//endfiles
\ No newline at end of file
diff --git a/edc/cam_recording_edje_vertical.edc b/edc/cam_recording_edje_vertical.edc
new file mode 100644 (file)
index 0000000..d29cb0b
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ * 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 "cam_recording_edje_vertical_inc.edc"
+
+
+collections {
+       group {
+               name: "recording_layout";
+               min: MAIN_H MAIN_W;
+
+               parts {
+                       part {
+                               name: RECORDING_IMAGE;
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_IMAGE_X/VER_MAIN_W RECORDING_IMAGE_Y/VER_MAIN_H; }
+                                       rel2 { relative: (RECORDING_IMAGE_X+RECORDING_IMAGE_W)/VER_MAIN_W (RECORDING_IMAGE_Y+RECORDING_IMAGE_H)/VER_MAIN_H; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_TEXT_X/VER_MAIN_W RECORDING_TEXT_Y/VER_MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_LEFT_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_LEFT_TEXT_X/VER_MAIN_W RECORDING_LEFT_TEXT_Y/VER_MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit:  "default" 0.0;
+                                       visible : 0;
+                               }
+                       }
+
+                       part { name: RECORDING_STOP_BUTTON;
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (RECBTN_X)/(VER_MAIN_W) (RECBTN_Y)/(VER_MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (RECBTN_X+RECBTN_W)/(VER_MAIN_W) (RECBTN_Y+RECBTN_H)/(VER_MAIN_H); offset: -1 -1; }
+                                       image { normal: SHUTTER_REC_NORMAL_VERTICAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_NORMAL_VERTICAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: RECORDING_PRESS_IMAGE_ANI_VER ; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_PRESS_VERTICAL_IMAGE ; }
+                               }
+                       }
+
+                       part { name: "progressbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed:1 1;
+                                       rel1 { relative: PROGRESS_BAR_X/VER_MAIN_W PROGRESS_BAR_Y/VER_MAIN_H; }
+                                       rel2 { relative: (PROGRESS_BAR_X+PROGRESS_BAR_W)/VER_MAIN_W (PROGRESS_BAR_Y+PROGRESS_BAR_H)/VER_MAIN_H; }
+                               }
+                       }
+
+                       part {
+                               name: "progressbar_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                        state: "default" 0.0;
+                                       rel1 { relative: 1.0 (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                        rel2 { relative: (1.0+90/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                        color: FONT_COLOR;
+                                       text {
+                                                 font : FONT_NAME;
+                                                 size : 28;
+                                                 align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part{
+                               name: "file_size_text";
+                               type: TEXT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                        rel1 { relative: (0.0-100/PROGRESS_BAR_W) (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                        rel2 { relative: (0.0-10/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align : 1.0 0.5;
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+
+                       program {
+                               name: "recording_stop_button,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "recording_stop_button";
+                               script {
+                                       emit( REC_STOP_SIG, REC_SIG_SRC );
+                               }
+                       }
+
+#ifdef NEW_RECORDING_LAYOUT
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                                       //set_state(PART:REC_STOP, "invisible", 0.0);
+                                       //set_state(PART:REC_PAUSE, "dim", 0.0);
+                               }
+                       }
+
+#else
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec1",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "invisible", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                               }
+                       }
+                       program{ name : "set_press";
+                               signal : "mouse,down,1";
+                               source: RECORDING_STOP_BUTTON;
+                               action: STATE_SET "press" 0.0;
+                               target: RECORDING_STOP_BUTTON;
+                       }
+#endif
+
+                       program { name: "hide_indicator";
+                               source: "program";
+                               signal: "indicator,hide";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "invisible", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "show_indicator";
+                               source: "program";
+                               signal: "indicator,show";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                               }
+                       }
+               }
+       }
+}
+//endfile
diff --git a/edc/cam_recording_edje_vertical_inc.edc b/edc/cam_recording_edje_vertical_inc.edc
new file mode 100644 (file)
index 0000000..ddb3fb7
--- /dev/null
@@ -0,0 +1,44 @@
+/*\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
+\r
+\r
+#include "../include/edc_image_name.h"\r
+#include "cam_funcs.edc"\r
+images {\r
+       image: RECORDING_IMAGE_REC_IMAGE COMP;\r
+       image: SHUTTER_REC_NORMAL_VERTICAL_IMAGE COMP;\r
+       image: SHUTTER_REC_PRESS_VERTICAL_IMAGE COMP;\r
+       image: RECORDING_PRESS_IMAGE_ANI_VER COMP;\r
+}\r
+\r
+#define PROGRESS_BAR_X 128\r
+#define PROGRESS_BAR_Y 1000\r
+#define PROGRESS_BAR_W 464\r
+#define PROGRESS_BAR_H 20\r
+#define RECBTN_X       239\r
+#define RECBTN_Y       1152\r
+#define RECBTN_W       240\r
+#define RECBTN_H       128\r
+#define RECORDING_IMAGE_X 510\r
+#define RECORDING_IMAGE_Y 28\r
+#define RECORDING_IMAGE_W 48\r
+#define RECORDING_IMAGE_H 48\r
+#define RECORDING_TEXT_X 400\r
+#define RECORDING_TEXT_Y 28\r
+#define RECORDING_LEFT_TEXT_X 10\r
+#define RECORDING_LEFT_TEXT_Y 28\r
+\r
+//endfiles
\ No newline at end of file
diff --git a/edc/cam_recording_edje_vertical_inverse.edc b/edc/cam_recording_edje_vertical_inverse.edc
new file mode 100644 (file)
index 0000000..6d13cbb
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ * 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 "cam_recording_edje_vertical_inverse_inc.edc"
+
+collections {
+       group {
+               name: "recording_layout";
+               min: MAIN_H MAIN_W;
+
+               parts {
+                       part {
+                               name: RECORDING_IMAGE;
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_IMAGE_X/VER_MAIN_W RECORDING_IMAGE_Y/VER_MAIN_H; }
+                                       rel2 { relative: (RECORDING_IMAGE_X+RECORDING_IMAGE_W)/VER_MAIN_W (RECORDING_IMAGE_Y+RECORDING_IMAGE_H)/VER_MAIN_H; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit: "default" 0.0;
+                                       image { normal: RECORDING_IMAGE_REC_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: RECORDING_TEXT_X/VER_MAIN_W RECORDING_TEXT_Y/VER_MAIN_H; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part {
+                               name: RECORDING_LEFT_TEXT;
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: (1 - RECORDING_LEFT_TEXT_X/VER_MAIN_W) (1 - RECORDING_LEFT_TEXT_Y/VER_MAIN_H); offset: -1 -1; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 35;
+                                               align: 0.0 0.0;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit:  "default" 0.0;
+                                       visible : 0;
+                               }
+                       }
+
+                       part { name: RECORDING_STOP_BUTTON;
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (RECBTN_X+RECBTN_W)/(VER_MAIN_W)) (1 - (RECBTN_Y+RECBTN_H)/(VER_MAIN_H)); offset: 0 0; }
+                                       rel2 { relative: (1 - (RECBTN_X)/(VER_MAIN_W)) (1 - (RECBTN_Y)/(VER_MAIN_H)); offset: -1 -1; }
+                                       image { normal: SHUTTER_REC_NORMAL_VERTICAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_NORMAL_VERTICAL_IMAGE; }
+                               }
+                               description {
+                                       state: "rec1" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: RECORDING_PRESS_IMAGE_ANI_VER ; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit:  "default" 0.0;
+                                       image { normal: SHUTTER_REC_PRESS_VERTICAL_IMAGE ; }
+                               }
+                       }
+
+                       part { name: "progressbar";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed:1 1;
+                                       rel1 { relative: PROGRESS_BAR_X/VER_MAIN_W PROGRESS_BAR_Y/VER_MAIN_H; }
+                                       rel2 { relative: (PROGRESS_BAR_X+PROGRESS_BAR_W)/VER_MAIN_W (PROGRESS_BAR_Y+PROGRESS_BAR_H)/VER_MAIN_H; }
+                               }
+                       }
+
+                       part {
+                               name: "progressbar_text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                        state: "default" 0.0;
+                                       rel1 { relative: 1.0 (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                        rel2 { relative: (1.0+90/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                        color: FONT_COLOR;
+                                       text {
+                                                 font : FONT_NAME;
+                                                 size : 28;
+                                                 align: 0.5 0.5;
+                                       }
+                               }
+                       }
+
+                       part{
+                               name: "file_size_text";
+                               type: TEXT;
+                               scale: 1;
+                               description{
+                                       state: "default" 0.0;
+                                        rel1 { relative: (0.0-100/PROGRESS_BAR_W) (-20)/PROGRESS_BAR_H; to: "progressbar"; }
+                                        rel2 { relative: (0.0-10/PROGRESS_BAR_W) (1.0+20/PROGRESS_BAR_H); to: "progressbar"; }
+                                       color: FONT_COLOR;
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 28;
+                                               align : 1.0 0.5;
+                                       }
+                               }
+                       }
+               }
+
+               programs {
+
+                       program {
+                               name: "recording_stop_button,clicked";
+                               signal: "mouse,clicked,1";
+                               source: "recording_stop_button";
+                               script {
+                                       emit( REC_STOP_SIG, REC_SIG_SRC );
+                               }
+                       }
+
+#ifdef NEW_RECORDING_LAYOUT
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                                       //set_state(PART:REC_STOP, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                                       //set_state(PART:REC_STOP, "invisible", 0.0);
+                                       //set_state(PART:REC_PAUSE, "dim", 0.0);
+                               }
+                       }
+
+#else
+
+                       program { name: "set_rec_state";
+                               source: "program";
+                               signal: "state,rec";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_rec_state1";
+                               source: "program";
+                               signal: "state,rec1";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "rec1", 0.0);
+                                       set_state(PART:RECORDING_STOP_BUTTON, "rec1",0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "default", 0.0);
+                                       //set_state(PART:REC_REC, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "set_pause_state";
+                               source: "program";
+                               signal: "state,pause";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                                       //set_state(PART:REC_PAUSE, "invisible", 0.0);
+                                       //set_state(PART:REC_REC, "default", 0.0);
+                               }
+                       }
+                       program{ name : "set_press";
+                               signal : "mouse,down,1";
+                               source: RECORDING_STOP_BUTTON;
+                               action: STATE_SET "press" 0.0;
+                               target: RECORDING_STOP_BUTTON;
+                       }
+#endif
+
+                       program { name: "hide_indicator";
+                               source: "program";
+                               signal: "indicator,hide";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "invisible", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "invisible", 0.0);
+                               }
+                       }
+                       program { name: "show_indicator";
+                               source: "program";
+                               signal: "indicator,show";
+                               script {
+                                       set_state(PART:RECORDING_IMAGE, "pause", 0.0);
+                                       set_state(PART:RECORDING_TEXT, "default", 0.0);
+                               }
+                       }
+               }
+       }
+}
+//endfile
+
diff --git a/edc/cam_recording_edje_vertical_inverse_inc.edc b/edc/cam_recording_edje_vertical_inverse_inc.edc
new file mode 100644 (file)
index 0000000..dfab252
--- /dev/null
@@ -0,0 +1,45 @@
+/*\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
+\r
+\r
+#include "../include/edc_image_name.h"\r
+#include "cam_funcs.edc"\r
+images {\r
+       image: RECORDING_IMAGE_REC_IMAGE COMP;\r
+       image: SHUTTER_REC_NORMAL_VERTICAL_IMAGE COMP;\r
+       image: SHUTTER_REC_PRESS_VERTICAL_IMAGE COMP;\r
+       image: RECORDING_PRESS_IMAGE_ANI_VER COMP;\r
+}\r
+\r
+\r
+#define PROGRESS_BAR_X 128\r
+#define PROGRESS_BAR_Y 1000\r
+#define PROGRESS_BAR_W 464\r
+#define PROGRESS_BAR_H 20\r
+#define RECBTN_X       239\r
+#define RECBTN_Y       1152\r
+#define RECBTN_W       240\r
+#define RECBTN_H       128\r
+#define RECORDING_IMAGE_X 510\r
+#define RECORDING_IMAGE_Y 172\r
+#define RECORDING_IMAGE_W 48\r
+#define RECORDING_IMAGE_H 48\r
+#define RECORDING_TEXT_X 400\r
+#define RECORDING_TEXT_Y 172\r
+#define RECORDING_LEFT_TEXT_X 10\r
+#define RECORDING_LEFT_TEXT_Y 28\r
+\r
+//endfiles
\ No newline at end of file
diff --git a/edc/cam_setting_popup_layout.edc b/edc/cam_setting_popup_layout.edc
new file mode 100644 (file)
index 0000000..84ed771
--- /dev/null
@@ -0,0 +1,50 @@
+/*\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
+\r
+\r
+#include "cam_funcs.edc"\r
+#include "../include/edc_image_name.h"\r
+#include "cam_setting_popup_layout_inc.edc"\r
+\r
+#define SETTING_POPUP_WIDTH 550\r
+#define SETTING_POPUP_HEIGHT 661\r
+\r
+images {\r
+       image: CTXPOPUP_BG_IMAGE COMP;\r
+}\r
+\r
+collections {\r
+       group {\r
+               name:"camera/setting/popup/area/toolbar";\r
+               min: MAIN_W MAIN_H;\r
+               parts {\r
+                       part { name: "setting_popup";\r
+                               type: SWALLOW;\r
+                               repeat_events: 0;\r
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: ((TOOLBAR_W+20)/MAIN_W) 0.0;}
+                                       rel2{ relative: ((MAIN_W-TOOLBAR_W-20)/MAIN_W) 1.0;}
+                               }
+                       }\r
+               }\r
+       }\r
+\r
+       CAMERA_SETTING_POPUP_GROUP_LAYOUT("toolbar", SETTING_POPUP_WIDTH, SETTING_POPUP_HEIGHT)\r
+}\r
+\r
+\r
+\r
diff --git a/edc/cam_setting_popup_layout_inc.edc b/edc/cam_setting_popup_layout_inc.edc
new file mode 100644 (file)
index 0000000..0452dea
--- /dev/null
@@ -0,0 +1,291 @@
+/*\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
+\r
+\r
+#ifndef __H_EDC_CAM_SETTING_POPUP_LAYOUT_EDC_H__\r
+#define __H_EDC_CAM_SETTING_POPUP_LAYOUT_EDC_H__\r
+#define SETTING_POPUP_WIDTH 550\r
+#define SETTING_POPUP_HEIGHT 661\r
+\r
+\r
+#define CAMERA_SETTING_POPUP_AREA_PART(part_name, width, height) \\r
+       part { name: "camera/setting/popup/area/"part_name;\\r
+               type: SWALLOW;\\r
+               scale: 1;\\r
+               repeat_events: 0;\\r
+               description {\\r
+                       state:"default" 0.0;\\r
+                       min: width height;\\r
+                       max: width height;\\r
+                       fixed: 1 1;\\r
+                       align: 0 0;\\r
+                       rel1{ relative: 0.0 0.0; to: "popup_area";}\\r
+                       rel2{ relative: 0.0 0.0; to: "popup_area";}\\r
+               } \\r
+       }\r
+\r
+\r
+/*Ctxpopup Style*/\r
+#define CTXPOPUP_CAMERA_ARROW_SIZE 41\r
+#define CTXPOPUP_FRAME_CORNER_SIZE 4 4\r
+#define CTXPOPUP_BORDER_CORNER_SIZE 9\r
+\r
+\r
+#define CAMERA_SETTING_POPUP_GROUP_LAYOUT(group_name, width, height)\\r
+       group { \\r
+               name: "camera/setting/popup/"group_name;\\r
+               min: width height;\\r
+               max: width height;\\r
+               parts {\\r
+                        part { name: "elm.padding.top"; \\r
+                               type: RECT; \\r
+                               scale: 1; \\r
+                               description { \\r
+                               state: "default" 0.0; \\r
+                               min: 0 CTXPOPUP_BORDER_CORNER_SIZE; \\r
+                               fixed: 0 1; \\r
+                               visible: 0; \\r
+                               rel2.relative: 1.0 0.0; \\r
+                               align: 0.0 0.0; \\r
+                               color: 255 255 255 255;\\r
+                               } \\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                        }\\r
+                        part { name: "elm.padding.bottom"; \\r
+                               type: RECT; \\r
+                               scale: 1; \\r
+                               description { state: "default" 0.0; \\r
+                               min: 0 CTXPOPUP_BORDER_CORNER_SIZE; \\r
+                               fixed: 0 1; \\r
+                               visible: 0; \\r
+                               rel1.relative: 0.0 1.0; \\r
+                               align: 0.0 1.0; \\r
+                               color: 255 255 255 255;\\r
+                               } \\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                       }\\r
+                        part { name: "elm.padding.left"; \\r
+                               type: RECT; \\r
+                               scale: 1; \\r
+                               description { state: "default" 0.0; \\r
+                               min: CTXPOPUP_BORDER_CORNER_SIZE 0; \\r
+                               fixed: 1 0; \\r
+                               visible: 0; \\r
+                               rel2.relative: 0.0 1.0; \\r
+                               align: 0.0 0.0; \\r
+                               color: 255 255 255 255;\\r
+                               } \\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                        }\\r
+                      part { name: "elm.padding.right"; \\r
+                               type: RECT; \\r
+                               scale: 1; \\r
+                               description { state: "default" 0.0; \\r
+                               min: CTXPOPUP_BORDER_CORNER_SIZE 0; \\r
+                               fixed: 1 0; \\r
+                               visible: 0; \\r
+                               rel1.relative: 1.0  0.0; \\r
+                               align: 1.0 0.0; \\r
+                               color: 255 255 255 255;\\r
+                               } \\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                        }\\r
+                       part {\\r
+                               name: "bg";\\r
+                               type: RECT;\\r
+                               mouse_events: 0;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       state: "default" 0.0;\\r
+                                       visible: 0;\\r
+                                       rel1 { relative: 0.0 0.0; }\\r
+                                       rel2 { relative: 1.0 1.0; }\\r
+                               }\\r
+                       }\\r
+                       part {\\r
+                               name: "bg_image";\\r
+                               type: IMAGE;\\r
+                               scale: 1;\\r
+                               mouse_events:  0;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       align: 1 1;\\r
+                                       visible: 0;\\r
+                                       image {\\r
+                                               normal: CTXPOPUP_BG_IMAGE;\\r
+                                               border: 67 67 92 42;\\r
+                                               border_scale: 1;\\r
+                                       }\\r
+                                       rel1 {relative: 0.0 0.0; to: "bg";}\\r
+                                       rel2 {relative: 1.0. 1.0; to: "bg";}\\r
+                               }\\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                       }\\r
+                       part {\\r
+                               name: "ele.bg.top";\\r
+                               type: RECT;\\r
+                               scale: 1;\\r
+                               mouse_events: 0;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       state: "default" 0.0;\\r
+                                       visible: 0;\\r
+                                       rel1 { relative: 0.0 0.0; to:"bg";}\\r
+                                       rel2 { relative: 1.0 60/height; to:"bg";}\\r
+                               }\\r
+                       }\\r
+                       part {\\r
+                               name: "ele.bg.bottom";\\r
+                               type: RECT;\\r
+                               scale: 1;\\r
+                               mouse_events: 0;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       state: "default" 0.0;\\r
+                                       visible: 0;\\r
+                                       rel1 { relative: 0.0 60/height; to:"bg";}\\r
+                                       rel2 { relative: 1.0 1.0; to:"bg";}\\r
+                               }\\r
+                       }\\r
+                       part {\\r
+                               name: "elm.text";\\r
+                               type: TEXT;\\r
+                               scale: 1;\\r
+                               mouse_events: 1;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       state: "default" 0.0;\\r
+                                       visible: 0;\\r
+                                       align: 0.5 0.5;\\r
+                                       rel1 { relative: 0.0 0.0; to:"ele.bg.top";}\\r
+                                       rel2 { relative: 1.0 1.0; to:"ele.bg.top";}\\r
+                                       text {\\r
+                                               font: FONT_NAME;\\r
+                                               size:     30;\\r
+                                               align:    0.5 0.5;\\r
+                                               min: 1 1;\\r
+                                               text: "";\\r
+                                       }\\r
+                               }\\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                       }\\r
+                       part {\\r
+                               name: "elm.swallow.box";\\r
+                               type: SWALLOW;\\r
+                               scale: 1;\\r
+                               mouse_events: 1;\\r
+                               repeat_events: 0;\\r
+                               description {\\r
+                                       state: "default" 0.0;\\r
+                                       visible: 0;\\r
+                                       align: 0.5 0.5;\\r
+                                       rel1 { relative: 0.0 0.0; to:"ele.bg.bottom";}\\r
+                                       rel2 { relative: 1.0 1.0; to:"ele.bg.bottom";}\\r
+                               }\\r
+                               description {\\r
+                                       state: "show" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                                       visible: 1;\\r
+                               }\\r
+                               description {\\r
+                                       state: "dim" 0.0;\\r
+                                       inherit: "default" 0.0;\\r
+                               }\\r
+                       }\\r
+               }\\r
+               programs {\\r
+                       program {\\r
+                               name: "set.popup.dim";\\r
+                               source: "prog";\\r
+                               signal: "set.popup.dim";\\r
+                               script: {\\r
+                                       set_state(PART:"bg_image", "dim", 0.0);\\r
+                                       set_state(PART:"elm.text", "dim", 0.0);\\r
+                                       set_state(PART:"elm.swallow.box", "dim", 0.0);\\r
+                                       set_state(PART:"elm.padding.right", "dim", 0.0);\\r
+                                       set_state(PART:"elm.padding.left", "dim", 0.0);\\r
+                                       set_state(PART:"elm.padding.top", "dim", 0.0);\\r
+                                       set_state(PART:"elm.padding.bottom", "dim", 0.0);\\r
+                               }\\r
+                       }\\r
+                       program {\\r
+                               name: "set.popup.show";\\r
+                               source: "prog";\\r
+                               signal: "set.popup.show";\\r
+                               script: {\\r
+                                       set_state(PART:"bg_image", "show", 0.0);\\r
+                                       set_state(PART:"elm.text", "show", 0.0);\\r
+                                       set_state(PART:"elm.swallow.box", "show", 0.0);\\r
+                                       set_state(PART:"elm.padding.right", "show", 0.0);\\r
+                                       set_state(PART:"elm.padding.left", "show", 0.0);\\r
+                                       set_state(PART:"elm.padding.top", "show", 0.0);\\r
+                                       set_state(PART:"elm.padding.bottom", "show", 0.0);\\r
+                               }\\r
+                       }\\r
+               }\\r
+       }\r
+\r
+\r
+#endif /*__H_EDC_CAM_SETTING_POPUP_LAYOUT_EDC_H__*/\r
+//end file\r
diff --git a/edc/cam_toolbar_layout.edc b/edc/cam_toolbar_layout.edc
new file mode 100644 (file)
index 0000000..9d5a1e8
--- /dev/null
@@ -0,0 +1,663 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+#include "cam_toolbar_layout_inc.edc"
+#include "cam_setting_popup_layout_inc.edc"
+
+
+collections {
+
+       group {
+               name: "toolbar";
+               min: MAIN_W MAIN_H;
+
+               parts {
+
+                       TOOLBAR_BACKGROUND_IMAGE("left_bg", 0, 0, TOOLBAR_W, MAIN_H, LEFT_TOOLBAR_BG_IMAGE)
+                       TOOLBAR_BACKGROUND_IMAGE("right_bg", MAIN_W-TOOLBAR_W, 0, TOOLBAR_W, MAIN_H, RIGHT_TOOLBAR_BG_IMAGE)
+
+                       part { name: "popup_area";
+                               mouse_events: 0;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: ((TOOLBAR_W+20)/MAIN_W) 0.0;}
+                                       rel2{ relative: ((MAIN_W-TOOLBAR_W-20)/MAIN_W) 1.0;}
+                               }
+                       }
+
+                       part { name: "setting_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: ((TOOLBAR_W+20)/MAIN_W) 0.0;}
+                                       rel2{ relative: ((MAIN_W-TOOLBAR_W-20)/MAIN_W) 1.0;}
+                               }
+                       }
+
+                       part { name: "shortcuts_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: (TOOLBAR_W+20)/MAIN_W) 0.0;}
+                                       rel2{ relative: ((TOOLBAR_W+740+20)/MAIN_W) (MAIN_H - 138)/MAIN_H;}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       rel1{ relative: (TOOLBAR_W+20)/MAIN_W) 0.0;}
+                                       rel2{ relative: ((TOOLBAR_W+740+20)/MAIN_W) 1.0;}
+                               }
+                       }
+
+                       part { name: "shortcuts_popup_description";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       min:0   138;
+                                       fixed:0         1;
+                                       align: 0 0;
+                                       rel1{ relative: 0.0 1.0;to: "shortcuts_popup";}
+                                       rel2{ relative: 1.0 1.0;to: "shortcuts_popup";}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       TOOLBAR_ITEM_BUTTON("toolbar_0_button", TOOLBAR_0_X, TOOLBAR_0_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_1_button", TOOLBAR_1_X, TOOLBAR_1_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_2_button", TOOLBAR_2_X, TOOLBAR_2_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_3_button", TOOLBAR_3_X, TOOLBAR_3_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_4_button", TOOLBAR_4_X, TOOLBAR_4_Y)
+
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_1_icon", TOOLBAR_1_X, TOOLBAR_1_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_2_icon", TOOLBAR_2_X, TOOLBAR_2_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_3_icon", TOOLBAR_3_X, TOOLBAR_3_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_4_icon", TOOLBAR_4_X, TOOLBAR_4_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_0_icon", TOOLBAR_0_X, TOOLBAR_0_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+
+
+                       part { name: "shutter_button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: SHUTTER_X/MAIN_W SHUTTER_Y/MAIN_H; offset: 0 0; }
+                                       rel2 { relative: (SHUTTER_X+SHUTTER_W)/MAIN_W (SHUTTER_Y+SHUTTER_H)/MAIN_H; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "mode_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (MAIN_W - TOOLBAR_W)/MAIN_W 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 TOOLBAR_RIGHT_ITEM_H/MAIN_H; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "quickview_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: QUICKVIEW_X/MAIN_W QUICKVIEW_Y/MAIN_H; offset: 0 0; }
+                                       rel2 { relative: (QUICKVIEW_X+QUICKVIEW_W)/MAIN_W (QUICKVIEW_Y+QUICKVIEW_H)/MAIN_H; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "backbutton_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: BACKBTN_X/MAIN_W BACKBTN_Y/MAIN_H; offset: 0 0; }
+                                       rel2 { relative: (BACKBTN_X+BACKBTN_W)/MAIN_W (BACKBTN_Y+BACKBTN_H)/MAIN_H; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "capture_button_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: CAPTUREBTN_X/MAIN_W CAPTUREBTN_Y/MAIN_H; offset: 0 0; }
+                                       rel2 { relative: (MAIN_W-10)/MAIN_W (CAPTUREBTN_Y+108)/MAIN_H; offset: -1 -1; }
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "shortcuts,normal";
+                               source: "prog";
+                               signal: "shortcuts,normal";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "default", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "shortcuts,wide";
+                               source: "prog";
+                               signal: "shortcuts,wide";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "wide", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "wide", 0.0);
+                               }
+                       }
+                       program {
+                               name: "toolbar_bg,show";
+                                       source: "program";
+                                       signal: "toolbar_bg,show";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "left_bg";
+                       }
+
+                       program {
+                               name: "toolbar_bg,hide";
+                                       source: "program";
+                                       signal: "toolbar_bg,hide";
+                                       action: STATE_SET "hide" 0.0;
+                                       target: "left_bg";
+                       }
+
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_0_button", "toolbar_0_icon", "toolbar_0_press_sig", "toolbar_0_release_sig", "toolbar_0_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_1_button", "toolbar_1_icon", "toolbar_1_press_sig", "toolbar_1_release_sig", "toolbar_1_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_2_button", "toolbar_2_icon", "toolbar_2_press_sig", "toolbar_2_release_sig", "toolbar_2_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_3_button", "toolbar_3_icon", "toolbar_3_press_sig", "toolbar_3_release_sig", "toolbar_3_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_4_button", "toolbar_4_icon", "toolbar_4_press_sig", "toolbar_4_release_sig", "toolbar_4_click_sig")
+               }/*end programs*/
+       }/*end group :toolbar*/
+
+       group {
+               name: "toolbar_mode_item";
+               min: TOOLBAR_MODE_ITEM_W TOOLBAR_MODE_ITEM_H;
+
+               images {
+                       image:  MODE_BG_IMAGE COMP;
+                       image:  MODE_BUTTON_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 0;
+                               }
+                       }
+
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: TOOLBAR_MODE_ITEM_BG_X/TOOLBAR_MODE_ITEM_W
+                                                               TOOLBAR_MODE_ITEM_BG_Y/TOOLBAR_MODE_ITEM_H;
+                                               offset: 0 0;
+                                       }
+                                       rel2 {
+                                               relative: (TOOLBAR_MODE_ITEM_BG_X+TOOLBAR_MODE_ITEM_BG_W)/TOOLBAR_MODE_ITEM_W
+                                                               (TOOLBAR_MODE_ITEM_BG_Y+TOOLBAR_MODE_ITEM_BG_H)/TOOLBAR_MODE_ITEM_H;
+                                               offset: -1 -1;
+                                       }
+                                       image{ normal: MODE_BG_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "button";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "camera" 0.0;
+                                       rel1 { relative: CAMERA_BUTTON_X/TOOLBAR_MODE_ITEM_W CAMERA_BUTTON_Y/TOOLBAR_MODE_ITEM_H; offset: 0 0;}
+                                       rel2 { relative: (CAMERA_BUTTON_X+CAMERA_BUTTON_W)/TOOLBAR_MODE_ITEM_W (CAMERA_BUTTON_Y+CAMERA_BUTTON_H)/TOOLBAR_MODE_ITEM_H; offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_IMAGE; }
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "camcorder" 0.0;
+                                       rel1 { relative: CAMCORDER_BUTTON_X/TOOLBAR_MODE_ITEM_W CAMCORDER_BUTTON_Y/TOOLBAR_MODE_ITEM_H; offset: 0 0;}
+                                       rel2 { relative: (CAMCORDER_BUTTON_X+CAMCORDER_BUTTON_W)/TOOLBAR_MODE_ITEM_W (CAMCORDER_BUTTON_Y+CAMCORDER_BUTTON_H)/TOOLBAR_MODE_ITEM_H; offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_IMAGE; }
+                                       visible: 1;
+                               }
+                       }
+
+
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: CAMERA_ICON_X/TOOLBAR_MODE_ITEM_W CAMERA_ICON_Y/TOOLBAR_MODE_ITEM_H; offset: 0 0; }
+                                       rel2 { relative: (CAMERA_ICON_X+CAMERA_ICON_W)/TOOLBAR_MODE_ITEM_W (CAMERA_ICON_Y+CAMERA_ICON_H)/TOOLBAR_MODE_ITEM_H; offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: CAMCORDER_ICON_X/TOOLBAR_MODE_ITEM_W CAMCORDER_ICON_Y/TOOLBAR_MODE_ITEM_H; offset: 0 0;}
+                                       rel2 { relative: (CAMCORDER_ICON_X+CAMCORDER_ICON_W)/TOOLBAR_MODE_ITEM_W (CAMCORDER_ICON_Y+CAMCORDER_ICON_H)/TOOLBAR_MODE_ITEM_H; offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs{
+                       program {
+                               name:"prog_set_camera";
+                               source: "prog";
+                               signal: "SET_MODE_CAMERA";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camera", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_camcorder";
+                               source: "prog";
+                               signal: "SET_MODE_CAMCORDER";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camcorder", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"button", "default", 0.0);
+                                       set_state(PART:"camera_icon", "dim", 0.0);
+                                       set_state(PART:"camcorder_icon", "dim", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end group:toolbar_mode_item*/
+
+       group {
+               name: "shutter_button";
+
+               images {
+                       image: SHUTTER_NORMAL_IMAGE COMP;
+                       image: SHUTTER_PRESS_IMAGE COMP;
+                       image: CAMERA_SHUTTER_ICON_IMAGE COMP;
+                       image: CAMCORDER_SHUTTER_ICON_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_PRESS_IMAGE; }
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 60 60;
+                                       visible: 1;
+                               }
+
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 106 106;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       TOOLBAR_RIGHT_ITEM_PROGRAM("capture_button", "press_shutter_sig", "release_shutter_sig", "move_shutter_sig")
+
+                       program {
+                               name: "camera_icon,normal";
+                               source: "prog";
+                               signal: "camera_icon,normal";
+                               script: { set_state(PART:"camera_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camera_icon,invisible";
+                               source: "prog";
+                               signal: "camera_icon,invisible";
+                               script: { set_state(PART:"camera_icon", "dim", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,normal";
+                               source: "prog";
+                               signal: "camcorder_icon,normal";
+                               script: { set_state(PART:"camcorder_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,invisible";
+                               source: "prog";
+                               signal: "camcorder_icon,invisible";
+                               script: { set_state(PART:"camcorder_icon", "dim", 0.0); }
+                       }
+               }/*end programs*/
+       }/*end group*/
+
+       group {
+               name: "toolbar_quickview_item";
+
+               images {
+                       image: THUMBNAIL_BG_NORMAL_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       image {
+                                               normal: THUMBNAIL_BG_NORMAL_IMAGE ;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "thumbnail";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1/9 1/9; offset: 0 0; to: "bg"; }
+                                       rel2 { relative: 8/9 8/9; offset: -1 -1;  to: "bg"; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "thumbnail_area"; /*note: just for c codes get thumbnail x,y,w,h*/
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "thumbnail"; }
+                                       rel2 { relative: 1.0 1.0; to: "thumbnail"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "quickview_bg,mouse,down,1";
+                               signal: "mouse,down,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,press"  "toolbar_signal";
+                       }
+                       program {
+                               name: "quickview_bg,mouse,up,1";
+                               signal: "mouse,up,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,release"  "toolbar_signal";
+                       }
+                       program {
+                               name: "prog_set_default";
+                               source: "prog";
+                               signal: "SET_DEFAULT";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"thumbnail", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"thumbnail", "invisible", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end toolbar_quickview_item*/
+
+       group{
+               name: "toolbar_backbutton_item";
+
+               images{
+                       image: BACK_BUTTON_NORMAL_IMAGE COMP;
+                       image: BACK_BUTTON_PRESS_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "back_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "back_button_press";
+                               signal: "mouse,down,1";
+                               source: "back_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_release";
+                               signal: "mouse,up,1";
+                               source: "back_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "back_button";
+                               action: SIGNAL_EMIT "landscape,backbutton,clicked"  "toolbar_signal";
+                       }
+               }/*end programs*/
+       }/*end toolbar_backbutton_item*/
+
+       group{
+               name: "toolbar_capture_button_item";
+
+               images{
+                       image: SNAPSHOT_PRESS_IMAGE COMP;
+                       image: SNAPSHOT_NORMAL_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "capture_button_press";
+                               signal: "mouse,down,1";
+                               source: "capture_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_release";
+                               signal: "mouse,up,1";
+                               source: "capture_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "capture_button";
+                               action: SIGNAL_EMIT "capture_button_click"  "capture_button_click";
+                       }
+               }/*end programs*/
+       }
+}/*end collections*/
+//end file
diff --git a/edc/cam_toolbar_layout_inc.edc b/edc/cam_toolbar_layout_inc.edc
new file mode 100644 (file)
index 0000000..e1f1bac
--- /dev/null
@@ -0,0 +1,389 @@
+/*\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
+\r
+\r
+#ifndef __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+#define __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+\r
+#define SETTING_TOOLBAR_W 1156\r
+#define SETTING_TOOLBAR_H 116\r
+\r
+#define TOOLBAR_ITEM_W    86\r
+#define TOOLBAR_ITEM_H    86\r
+\r
+#define TOOLBAR_0_X            38\r
+#define TOOLBAR_0_Y            593\r
+\r
+#define TOOLBAR_1_X            38\r
+#define TOOLBAR_1_Y            455\r
+\r
+#define TOOLBAR_2_X            38\r
+#define TOOLBAR_2_Y            317\r
+\r
+#define TOOLBAR_3_X            38\r
+#define TOOLBAR_3_Y            179\r
+\r
+#define TOOLBAR_4_X            38\r
+#define TOOLBAR_4_Y            41\r
+\r
+#define SHUTTER_X              1160\r
+#define SHUTTER_Y              254\r
+#define SHUTTER_W              108\r
+#define SHUTTER_H              214\r
+\r
+#define QUICKVIEW_X            1162\r
+#define QUICKVIEW_Y            604\r
+#define QUICKVIEW_W    108\r
+#define QUICKVIEW_H    108\r
+\r
+#define BACKBTN_X              1173\r
+#define BACKBTN_Y              615\r
+#define BACKBTN_W              86\r
+#define BACKBTN_H              86\r
+\r
+#define CAPTUREBTN_X   1162\r
+#define CAPTUREBTN_Y   68\r
+\r
+/*NOTE:below is for toolbar mode item*/\r
+#define TOOLBAR_MODE_ITEM_BG_X 33\r
+#define TOOLBAR_MODE_ITEM_BG_Y 58\r
+#define TOOLBAR_MODE_ITEM_BG_W 71\r
+#define TOOLBAR_MODE_ITEM_BG_H 119\r
+\r
+#define CAMERA_BUTTON_X                38\r
+#define CAMERA_BUTTON_Y                65\r
+#define CAMERA_BUTTON_W                61\r
+#define CAMERA_BUTTON_H                61\r
+#define CAMCORDER_BUTTON_X     38\r
+#define CAMCORDER_BUTTON_Y     109\r
+#define CAMCORDER_BUTTON_W     61\r
+#define CAMCORDER_BUTTON_H     61\r
+#define CAMERA_ICON_X 38\r
+#define CAMERA_ICON_Y 10\r
+#define CAMERA_ICON_W 56\r
+#define CAMERA_ICON_H 48\r
+#define CAMCORDER_ICON_X 38\r
+#define CAMCORDER_ICON_Y 170\r
+#define CAMCORDER_ICON_W 56\r
+#define CAMCORDER_ICON_H 48\r
+\r
+#define TOOLBAR_MODE_ITEM_W TOOLBAR_W\r
+#define TOOLBAR_MODE_ITEM_H TOOLBAR_RIGHT_ITEM_H\r
+\r
+images {\r
+       /*item_button*/\r
+       image: BUTTON_BG_NORMAL_IMAGE COMP;\r
+       image: BUTTON_BG_PRESS_IMAGE COMP;\r
+\r
+       image: SNAPSHOT_PRESS_IMAGE COMP;\r
+       image: SNAPSHOT_NORMAL_IMAGE COMP;\r
+       image: LEFT_TOOLBAR_BG_IMAGE COMP;\r
+       image: RIGHT_TOOLBAR_BG_IMAGE COMP;\r
+}\r
+\r
+#define TOOLBAR_BACKGROUND_IMAGE(part_name, x, y, w, h, img) \\r
+                       part {                          \\r
+                               name: part_name;        \\r
+                               type: IMAGE;    \\r
+                               description {   \\r
+                                       state: "default" 0.0;\\r
+                                      rel1 { relative: (x)/MAIN_W (y)/MAIN_H; }                \\r
+                                      rel2 { relative: (x+w)/MAIN_W (y+h)/MAIN_H; }             \\r
+                                       image { normal: img; }  \\r
+                               }\\r
+                               description{ \\r
+                                       state: "hide" 0.0; \\r
+                                       inherit:"default" 0.0; \\r
+                                       visible: 0; \\r
+                               } \\r
+                       }\r
+\r
+#define TOOLBAR_ITEM_BUTTON_WITH_BG(button_name, x, y, bg_w, bg_h) \\r
+       part { name: button_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (x)/(bg_w) (y)/(bg_h); } \\r
+                       rel2 { relative: (x+TOOLBAR_ITEM_W)/(bg_w) (y+TOOLBAR_ITEM_H)/(bg_h);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_NORMAL_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_PRESS_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (x)/(bg_w) (y)/(bg_h);} \\r
+                       rel2 { relative: (x+w)/(bg_w) (y+h)/(bg_h);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h) \\r
+       part { name: icon_name; \\r
+               type: SWALLOW; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       aspect: 1.0 1.0; \\r
+                       align: 0.5 0.5; \\r
+                       rel1 { relative: (x)/(bg_w) (y)/(bg_h);} \\r
+                       rel2 { relative: (x+w)/(bg_w) (y+h)/(bg_h);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_DIM(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press, img_dim) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (x)/(bg_w) (y)/(bg_h);} \\r
+                       rel2 { relative: (x+w)/(bg_w) (y+h)/(bg_h);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_dim; } \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_LEFT_ITEM_PROGRAM(button_name, icon_name, press_signal, release_signal, click_signal) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( press_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( release_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( click_signal, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: icon_name",invisible"; \\r
+               source: "prog"; \\r
+               signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",normal"; \\r
+               source: "prog"; \\r
+               signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",edit"; \\r
+               source: "prog"; \\r
+               signal: icon_name",edit"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "normal", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",dim"; \\r
+               source: "prog"; \\r
+               signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_RIGHT_ITEM_PROGRAM(icon_name, press_signal_name, release_signal_name, move_signal_name) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "press", 0.0);\\r
+                               emit( press_signal_name, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "normal", 0.0);\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_move_"icon_name;  \\r
+               signal: "mouse,move"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( move_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( release_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+        program { \\r
+            name: icon_name",invisible"; \\r
+            source: "prog"; \\r
+            signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",normal"; \\r
+            source: "prog"; \\r
+            signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",dim"; \\r
+            source: "prog"; \\r
+            signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_BUTTON(name, x, y) \\r
+       TOOLBAR_ITEM_BUTTON_WITH_BG(name, x, y, MAIN_W, MAIN_H)\r
+\r
+#define TOOLBAR_ITEM_ICON(name, x, y, w, h, img_normal, img_press) \\r
+       TOOLBAR_ITEM_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H, img_normal, img_press)\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON(name, x, y, w, h) \\r
+       TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H)\r
+\r
+#endif /*__H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__*/\r
+//end files\r
diff --git a/edc/cam_toolbar_layout_inverse.edc b/edc/cam_toolbar_layout_inverse.edc
new file mode 100644 (file)
index 0000000..eb46df8
--- /dev/null
@@ -0,0 +1,662 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+#include "cam_toolbar_layout_inverse_inc.edc"
+#include "cam_setting_popup_layout_inc.edc"
+
+
+collections {
+
+       group {
+               name: "toolbar";
+               min: MAIN_W MAIN_H;
+
+               parts {
+                       TOOLBAR_BACKGROUND_IMAGE("left_bg", 0, 0, TOOLBAR_W, MAIN_H, LEFT_TOOLBAR_BG_IMAGE)
+                       TOOLBAR_BACKGROUND_IMAGE("right_bg", MAIN_W-TOOLBAR_W, 0, TOOLBAR_W, MAIN_H, RIGHT_TOOLBAR_BG_IMAGE)
+
+                       part { name: "popup_area";
+                               mouse_events: 0;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: (1 - (MAIN_W-TOOLBAR_W-20)/MAIN_W) 0.0;}
+                                       rel2{ relative: (1 - (TOOLBAR_W+20)/MAIN_W) 1.0;}
+                               }
+                       }
+
+                       part { name: "setting_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: (1 - (MAIN_W-TOOLBAR_W-20)/MAIN_W) 0.0;}
+                                       rel2{ relative: (1 - (TOOLBAR_W+20)/MAIN_W) 1.0;}
+                               }
+                       }
+                       part { name: "shortcuts_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: (1 - (TOOLBAR_W+740+20)/MAIN_W) 0.0;}
+                                       rel2{ relative:  (1 -(TOOLBAR_W+20)/MAIN_W) (MAIN_H-138)/MAIN_H;}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       rel1{ relative: (1 - (TOOLBAR_W+740+20)/MAIN_W) 0.0;}
+                                       rel2{ relative:  (1 -(TOOLBAR_W+20)/MAIN_W) 1.0;}
+                               }
+                       }
+
+                       part { name: "shortcuts_popup_description";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       min:0   138;
+                                       fixed:0         1;
+                                       align: 0 0;
+                                       rel1{ relative: 0.0 1.0;to: "shortcuts_popup";}
+                                       rel2{ relative: 1.0 1.0;to: "shortcuts_popup";}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       TOOLBAR_ITEM_BUTTON("toolbar_0_button", TOOLBAR_0_X, TOOLBAR_0_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_1_button", TOOLBAR_1_X, TOOLBAR_1_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_2_button", TOOLBAR_2_X, TOOLBAR_2_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_3_button", TOOLBAR_3_X, TOOLBAR_3_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_4_button", TOOLBAR_4_X, TOOLBAR_4_Y)
+
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_0_icon", TOOLBAR_0_X, TOOLBAR_0_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_1_icon", TOOLBAR_1_X, TOOLBAR_1_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_2_icon", TOOLBAR_2_X, TOOLBAR_2_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_3_icon", TOOLBAR_3_X, TOOLBAR_3_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_4_icon", TOOLBAR_4_X, TOOLBAR_4_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+
+                       part { name: "shutter_button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (SHUTTER_X+SHUTTER_W)/MAIN_W) (1 - (SHUTTER_Y+SHUTTER_H)/MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (1 - SHUTTER_X/MAIN_W) (1 - SHUTTER_Y/MAIN_H); offset: -1 -1; }
+                               }
+                       }
+                       part { name: "mode_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (1 - TOOLBAR_RIGHT_ITEM_H/MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (1 - (MAIN_W - TOOLBAR_W)/MAIN_W) 1; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "quickview_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (QUICKVIEW_X+QUICKVIEW_W)/MAIN_W) (1 - (QUICKVIEW_Y+QUICKVIEW_H)/MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (1-QUICKVIEW_X/MAIN_W) (1 - QUICKVIEW_Y/MAIN_H); offset: -1 -1; }
+                               }
+                       }
+                       part { name: "backbutton_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (BACKBTN_X+BACKBTN_W)/MAIN_W) (1 - (BACKBTN_Y+BACKBTN_H)/MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (1 - BACKBTN_X/MAIN_W)  (1 - BACKBTN_Y/MAIN_H); offset: -1 -1; }
+                               }
+                       }
+                       part { name: "capture_button_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (MAIN_W-10)/MAIN_W) (1 - (CAPTUREBTN_Y+108)/MAIN_H); offset: 0 0; }
+                                       rel2 { relative: (1 - CAPTUREBTN_X/MAIN_W)   (1 - CAPTUREBTN_Y/MAIN_H); offset: -1 -1; }
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "shortcuts,normal";
+                               source: "prog";
+                               signal: "shortcuts,normal";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "default", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "shortcuts,wide";
+                               source: "prog";
+                               signal: "shortcuts,wide";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "wide", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "wide", 0.0);
+                               }
+                       }
+                       program {
+                               name: "toolbar_bg,show";
+                                       source: "program";
+                                       signal: "toolbar_bg,show";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "left_bg";
+                       }
+
+                       program {
+                               name: "toolbar_bg,hide";
+                                       source: "program";
+                                       signal: "toolbar_bg,hide";
+                                       action: STATE_SET "hide" 0.0;
+                                       target: "left_bg";
+                       }
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_0_button", "toolbar_0_icon", "toolbar_0_press_sig", "toolbar_0_release_sig", "toolbar_0_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_1_button", "toolbar_1_icon", "toolbar_1_press_sig", "toolbar_1_release_sig", "toolbar_1_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_2_button", "toolbar_2_icon", "toolbar_2_press_sig", "toolbar_2_release_sig", "toolbar_2_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_3_button", "toolbar_3_icon", "toolbar_3_press_sig", "toolbar_3_release_sig", "toolbar_3_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_4_button", "toolbar_4_icon", "toolbar_4_press_sig", "toolbar_4_release_sig", "toolbar_4_click_sig")
+               }/*end programs*/
+       }/*end group :toolbar*/
+
+       group {
+               name: "toolbar_mode_item";
+               min: TOOLBAR_MODE_ITEM_W TOOLBAR_MODE_ITEM_H;
+
+               images {
+                       image:  MODE_BG_IMAGE COMP;
+                       image:  MODE_BUTTON_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 0;
+                               }
+                       }
+
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: (1 - (TOOLBAR_MODE_ITEM_BG_X+TOOLBAR_MODE_ITEM_BG_W)/TOOLBAR_MODE_ITEM_W)
+                                                       (1 - (TOOLBAR_MODE_ITEM_BG_Y+TOOLBAR_MODE_ITEM_BG_H)/TOOLBAR_MODE_ITEM_H);
+                                               offset: 0 0;
+                                       }
+                                       rel2 {
+                                               relative:  (1 - TOOLBAR_MODE_ITEM_BG_X/TOOLBAR_MODE_ITEM_W)
+                                                       (1 - TOOLBAR_MODE_ITEM_BG_Y/TOOLBAR_MODE_ITEM_H)
+                                                       ;
+                                               offset: -1 -1;
+                                       }
+                                       image{ normal: MODE_BG_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "button";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "camera" 0.0;
+                                       rel1 { relative: (1 - (CAMERA_BUTTON_X+CAMERA_BUTTON_W)/TOOLBAR_MODE_ITEM_W) (1 - (CAMERA_BUTTON_Y+CAMERA_BUTTON_H)/TOOLBAR_MODE_ITEM_H); offset: 0 0;}
+                                       rel2 { relative: (1 - CAMERA_BUTTON_X/TOOLBAR_MODE_ITEM_W) (1 - CAMERA_BUTTON_Y/TOOLBAR_MODE_ITEM_H); offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_IMAGE; }
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "camcorder" 0.0;
+                                       rel1 { relative: (1 - (CAMCORDER_BUTTON_X+CAMCORDER_BUTTON_W)/TOOLBAR_MODE_ITEM_W) (1 - (CAMCORDER_BUTTON_Y+CAMCORDER_BUTTON_H)/TOOLBAR_MODE_ITEM_H); offset: 0 0;}
+                                       rel2 { relative: (1 - CAMCORDER_BUTTON_X/TOOLBAR_MODE_ITEM_W) (1 - CAMCORDER_BUTTON_Y/TOOLBAR_MODE_ITEM_H); offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_IMAGE; }
+                                       visible: 1;
+                               }
+                       }
+
+
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: (1 - (CAMERA_ICON_X+CAMERA_ICON_W)/TOOLBAR_MODE_ITEM_W) (1 - (CAMERA_ICON_Y+CAMERA_ICON_H)/TOOLBAR_MODE_ITEM_H); offset: 0 0; }
+                                       rel2 { relative: (1 - CAMERA_ICON_X/TOOLBAR_MODE_ITEM_W) (1 - CAMERA_ICON_Y/TOOLBAR_MODE_ITEM_H); offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: (1 - (CAMCORDER_ICON_X+CAMCORDER_ICON_W)/TOOLBAR_MODE_ITEM_W) (1 - (CAMCORDER_ICON_Y+CAMCORDER_ICON_H)/TOOLBAR_MODE_ITEM_H); offset: 0 0;}
+                                       rel2 { relative: (1 - CAMCORDER_ICON_X/TOOLBAR_MODE_ITEM_W) (1 - CAMCORDER_ICON_Y/TOOLBAR_MODE_ITEM_H); offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs{
+                       program {
+                               name:"prog_set_camera";
+                               source: "prog";
+                               signal: "SET_MODE_CAMERA";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camera", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_camcorder";
+                               source: "prog";
+                               signal: "SET_MODE_CAMCORDER";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camcorder", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"button", "default", 0.0);
+                                       set_state(PART:"camera_icon", "dim", 0.0);
+                                       set_state(PART:"camcorder_icon", "dim", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end group:toolbar_mode_item*/
+
+       group {
+               name: "shutter_button";
+
+               images {
+                       image: SHUTTER_NORMAL_IMAGE COMP;
+                       image: SHUTTER_PRESS_IMAGE COMP;
+                       image: CAMERA_SHUTTER_ICON_IMAGE COMP;
+                       image: CAMCORDER_SHUTTER_ICON_IMAGE COMP;
+               }
+
+               parts {
+
+                       part { name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_NORMAL_IMAGE; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_PRESS_IMAGE; }
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 60 60;
+                                       visible: 1;
+                               }
+
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 106 106;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       TOOLBAR_RIGHT_ITEM_PROGRAM("capture_button", "press_shutter_sig", "release_shutter_sig", "move_shutter_sig")
+
+                       program {
+                               name: "camera_icon,normal";
+                               source: "prog";
+                               signal: "camera_icon,normal";
+                               script: { set_state(PART:"camera_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camera_icon,invisible";
+                               source: "prog";
+                               signal: "camera_icon,invisible";
+                               script: { set_state(PART:"camera_icon", "dim", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,normal";
+                               source: "prog";
+                               signal: "camcorder_icon,normal";
+                               script: { set_state(PART:"camcorder_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,invisible";
+                               source: "prog";
+                               signal: "camcorder_icon,invisible";
+                               script: { set_state(PART:"camcorder_icon", "dim", 0.0); }
+                       }
+               }/*end programs*/
+       }/*end group*/
+
+       group {
+               name: "toolbar_quickview_item";
+
+               images {
+                       image: THUMBNAIL_BG_NORMAL_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       image {
+                                               normal: THUMBNAIL_BG_NORMAL_IMAGE ;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "thumbnail";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1/9 1/9; offset: 0 0; to: "bg"; }
+                                       rel2 { relative: 8/9 8/9; offset: -1 -1;  to: "bg"; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "thumbnail_area"; /*note: just for c codes get thumbnail x,y,w,h*/
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "thumbnail"; }
+                                       rel2 { relative: 1.0 1.0; to: "thumbnail"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "quickview_bg,mouse,down,1";
+                               signal: "mouse,down,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,press"  "toolbar_signal";
+                       }
+                       program {
+                               name: "quickview_bg,mouse,up,1";
+                               signal: "mouse,up,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,release"  "toolbar_signal";
+                       }
+                       program {
+                               name: "prog_set_default";
+                               source: "prog";
+                               signal: "SET_DEFAULT";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"thumbnail", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"thumbnail", "invisible", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end toolbar_quickview_item*/
+
+       group{
+               name: "toolbar_backbutton_item";
+
+               images{
+                       image: BACK_BUTTON_NORMAL_IMAGE COMP;
+                       image: BACK_BUTTON_PRESS_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "back_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "back_button_press";
+                               signal: "mouse,down,1";
+                               source: "back_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_release";
+                               signal: "mouse,up,1";
+                               source: "back_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "back_button";
+                               action: SIGNAL_EMIT "landscape,backbutton,clicked"  "toolbar_signal";
+                       }
+               }/*end programs*/
+       }/*end toolbar_backbutton_item*/
+
+       group{
+               name: "toolbar_capture_button_item";
+
+               images{
+                       image: SNAPSHOT_PRESS_IMAGE COMP;
+                       image: SNAPSHOT_NORMAL_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "capture_button_press";
+                               signal: "mouse,down,1";
+                               source: "capture_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_release";
+                               signal: "mouse,up,1";
+                               source: "capture_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "capture_button";
+                               action: SIGNAL_EMIT "capture_button_click"  "capture_button_click";
+                       }
+               }/*end programs*/
+       }
+}/*end collections*/
+//end file
diff --git a/edc/cam_toolbar_layout_inverse_inc.edc b/edc/cam_toolbar_layout_inverse_inc.edc
new file mode 100644 (file)
index 0000000..75670d0
--- /dev/null
@@ -0,0 +1,392 @@
+/*\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
+\r
+\r
+#ifndef __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+#define __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+\r
+#define SETTING_TOOLBAR_W 1156\r
+#define SETTING_TOOLBAR_H 116\r
+\r
+#define TOOLBAR_ITEM_W    86\r
+#define TOOLBAR_ITEM_H    86\r
+\r
+#define TOOLBAR_0_X            38\r
+#define TOOLBAR_0_Y            593\r
+\r
+#define TOOLBAR_1_X            38\r
+#define TOOLBAR_1_Y            455\r
+\r
+#define TOOLBAR_2_X            38\r
+#define TOOLBAR_2_Y            317\r
+\r
+#define TOOLBAR_3_X            38\r
+#define TOOLBAR_3_Y            179\r
+\r
+#define TOOLBAR_4_X            38\r
+#define TOOLBAR_4_Y            41\r
+\r
+\r
+#define SHUTTER_X              1160\r
+#define SHUTTER_Y              254\r
+#define SHUTTER_W              108\r
+#define SHUTTER_H              214\r
+\r
+#define QUICKVIEW_X            1162\r
+#define QUICKVIEW_Y            604\r
+#define QUICKVIEW_W    108\r
+#define QUICKVIEW_H    108\r
+\r
+#define BACKBTN_X              1173\r
+#define BACKBTN_Y              615\r
+#define BACKBTN_W              86\r
+#define BACKBTN_H              86\r
+\r
+#define CAPTUREBTN_X   1162\r
+#define CAPTUREBTN_Y   68\r
+\r
+/*NOTE:below is for toolbar mode item*/\r
+#define TOOLBAR_MODE_ITEM_BG_X 33\r
+#define TOOLBAR_MODE_ITEM_BG_Y 58\r
+#define TOOLBAR_MODE_ITEM_BG_W 71\r
+#define TOOLBAR_MODE_ITEM_BG_H 119\r
+\r
+#define CAMERA_BUTTON_X                38\r
+#define CAMERA_BUTTON_Y                65\r
+#define CAMERA_BUTTON_W                61\r
+#define CAMERA_BUTTON_H                61\r
+#define CAMCORDER_BUTTON_X     38\r
+#define CAMCORDER_BUTTON_Y     109\r
+#define CAMCORDER_BUTTON_W     61\r
+#define CAMCORDER_BUTTON_H     61\r
+#define CAMERA_ICON_X 38\r
+#define CAMERA_ICON_Y 10\r
+#define CAMERA_ICON_W 56\r
+#define CAMERA_ICON_H 48\r
+#define CAMCORDER_ICON_X 38\r
+#define CAMCORDER_ICON_Y 170\r
+#define CAMCORDER_ICON_W 56\r
+#define CAMCORDER_ICON_H 48\r
+\r
+#define TOOLBAR_MODE_ITEM_W TOOLBAR_W\r
+#define TOOLBAR_MODE_ITEM_H TOOLBAR_RIGHT_ITEM_H\r
+\r
+images {\r
+       /*item_button*/\r
+       image: BUTTON_BG_NORMAL_IMAGE COMP;\r
+       image: BUTTON_BG_PRESS_IMAGE COMP;\r
+\r
+       image: SNAPSHOT_PRESS_IMAGE COMP;\r
+       image: SNAPSHOT_NORMAL_IMAGE COMP;\r
+       image: LEFT_TOOLBAR_BG_IMAGE COMP;\r
+       image: RIGHT_TOOLBAR_BG_IMAGE COMP;\r
+}\r
+\r
+#define TOOLBAR_BACKGROUND_IMAGE(part_name, x, y, w, h, img) \\r
+                       part {                          \\r
+                               name: part_name;        \\r
+                               type: IMAGE;    \\r
+                               description {   \\r
+                                       state: "default" 0.0;\\r
+                                      rel1 { relative: (1 - (x+w)/MAIN_W) (1 - (y+h)/MAIN_H); }                \\r
+                                      rel2 { relative: (1 - (x)/MAIN_W) (1 - (y)/MAIN_H); }             \\r
+                                       image { normal: img; }  \\r
+                               }     \\r
+                               description{ \\r
+                                       state: "hide" 0.0; \\r
+                                       inherit:"default" 0.0; \\r
+                                       visible: 0; \\r
+                               } \\r
+                       }\r
+\r
+\r
+#define TOOLBAR_ITEM_BUTTON_WITH_BG(button_name, x, y, bg_w, bg_h) \\r
+       part { name: button_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (x+TOOLBAR_ITEM_W)/(bg_w)) (1 - (y+TOOLBAR_ITEM_H)/(bg_h));} \\r
+                       rel2 { relative: (1 - (x)/(bg_w))   (1 - (y)/(bg_h));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_NORMAL_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_PRESS_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (x)/(bg_w)) (1 - (y+h)/(bg_h));} \\r
+                       rel2 { relative: (1 - (x+w)/(bg_w)) (1 - (y)/(bg_h));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h) \\r
+       part { name: icon_name; \\r
+               type: SWALLOW; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       aspect: 1.0 1.0; \\r
+                       align: 0.5 0.5; \\r
+                       rel1 { relative: (1 - (x+w)/(bg_w)) (1 - (y+h)/(bg_h)); } \\r
+                       rel2 { relative: (1 - (x)/(bg_w))  (1 - (y)/(bg_h)); } \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_DIM(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press, img_dim) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (x+w)/(bg_w))  (1 - (y+h)/(bg_h));} \\r
+                       rel2 { relative: (1 - (x)/(bg_w)) (1 - (y)/(bg_h));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_dim; } \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_LEFT_ITEM_PROGRAM(button_name, icon_name, press_signal, release_signal, click_signal) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( press_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( release_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( click_signal, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: icon_name",invisible"; \\r
+               source: "prog"; \\r
+               signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",normal"; \\r
+               source: "prog"; \\r
+               signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",edit"; \\r
+               source: "prog"; \\r
+               signal: icon_name",edit"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "normal", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",dim"; \\r
+               source: "prog"; \\r
+               signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+\r
+#define TOOLBAR_RIGHT_ITEM_PROGRAM(icon_name, press_signal_name, release_signal_name, move_signal_name) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "press", 0.0);\\r
+                               emit( press_signal_name, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "normal", 0.0);\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_move_"icon_name;  \\r
+               signal: "mouse,move"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( move_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( release_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+        program { \\r
+            name: icon_name",invisible"; \\r
+            source: "prog"; \\r
+            signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",normal"; \\r
+            source: "prog"; \\r
+            signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",dim"; \\r
+            source: "prog"; \\r
+            signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_BUTTON(name, x, y) \\r
+       TOOLBAR_ITEM_BUTTON_WITH_BG(name, x, y, MAIN_W, MAIN_H)\r
+\r
+#define TOOLBAR_ITEM_ICON(name, x, y, w, h, img_normal, img_press) \\r
+       TOOLBAR_ITEM_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H, img_normal, img_press)\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON(name, x, y, w, h) \\r
+       TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H)\r
+\r
+#endif /*__H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__*/\r
+//end files\r
diff --git a/edc/cam_toolbar_layout_vertical.edc b/edc/cam_toolbar_layout_vertical.edc
new file mode 100644 (file)
index 0000000..686a925
--- /dev/null
@@ -0,0 +1,663 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+#include "cam_toolbar_layout_vertical_inc.edc"
+#include "cam_setting_popup_layout.edc"
+
+
+collections {
+
+       group {
+               name: "toolbar";
+               min: MAIN_H MAIN_W;
+
+               parts {
+                       TOOLBAR_BACKGROUND_IMAGE("left_bg", 0, 0, TOOLBAR_W, MAIN_H, LEFT_TOOLBAR_BG_VER_IMAGE)
+                       TOOLBAR_BACKGROUND_IMAGE("right_bg", MAIN_W-TOOLBAR_W, 0, TOOLBAR_W, MAIN_H, RIGHT_TOOLBAR_BG_VER_IMAGE)
+
+                       part { name: "popup_area";
+                               mouse_events: 0;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: 0.0 (TOOLBAR_W+20)/MAIN_W;}
+                                       rel2{ relative: 1.0 (MAIN_W-TOOLBAR_W-20)/MAIN_W;}
+                               }
+                       }
+
+                       part { name: "setting_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: 0.0 ((TOOLBAR_W+20)/MAIN_W);}
+                                       rel2{ relative: 1.0 ((MAIN_W-TOOLBAR_W-20)/MAIN_W);}
+                               }
+                       }
+
+                       part { name: "shortcuts_popup";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       rel1{ relative: 0.0 (TOOLBAR_W+20)/MAIN_W);}
+                                       rel2{ relative: 1.0 ((TOOLBAR_W+740+20 - 138)/MAIN_W);}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       rel1{ relative: 0.0 (TOOLBAR_W+20)/MAIN_W);}
+                                       rel2{ relative: 1.0 ((TOOLBAR_W+740+20)/MAIN_W);}
+                               }
+                       }
+
+                       part { name: "shortcuts_popup_description";
+                               type: SWALLOW;
+                               description{
+                                       state:"default" 0.0;
+                                       min:0   138;
+                                       fixed:0         1;
+                                       align: 0 0;
+                                       rel1{ relative: 0.0 1.0;to: "shortcuts_popup";}
+                                       rel2{ relative: 1.0 1.0;to: "shortcuts_popup";}
+                               }
+                               description{
+                                       state:"wide" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       TOOLBAR_ITEM_BUTTON("toolbar_0_button", TOOLBAR_0_X, TOOLBAR_0_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_1_button", TOOLBAR_1_X, TOOLBAR_1_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_2_button", TOOLBAR_2_X, TOOLBAR_2_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_3_button", TOOLBAR_3_X, TOOLBAR_3_Y)
+                       TOOLBAR_ITEM_BUTTON("toolbar_4_button", TOOLBAR_4_X, TOOLBAR_4_Y)
+
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_0_icon", TOOLBAR_0_X, TOOLBAR_0_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_1_icon", TOOLBAR_1_X, TOOLBAR_1_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_2_icon", TOOLBAR_2_X, TOOLBAR_2_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_3_icon", TOOLBAR_3_X, TOOLBAR_3_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_4_icon", TOOLBAR_4_X, TOOLBAR_4_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)
+
+                       part { name: "shutter_button";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (SHUTTER_Y+SHUTTER_H)/MAIN_H) SHUTTER_X/MAIN_W; offset: 0 0; }
+                                       rel2 { relative: (1 - SHUTTER_Y/MAIN_H) (SHUTTER_X+SHUTTER_W)/MAIN_W; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "mode_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - TOOLBAR_RIGHT_ITEM_H/MAIN_H) (MAIN_W - TOOLBAR_W)/MAIN_W; offset: 0 0; }
+                                       rel2 { relative:  1.0 1.0; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "quickview_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1.0 - (QUICKVIEW_Y+QUICKVIEW_H)/MAIN_H) QUICKVIEW_X/MAIN_W; offset: 0 0; }
+                                       rel2 { relative: (1.0 - QUICKVIEW_Y/MAIN_H) (QUICKVIEW_X+QUICKVIEW_W)/MAIN_W; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "backbutton_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1.0 - (BACKBTN_Y+BACKBTN_H)/MAIN_H) BACKBTN_X/MAIN_W; offset: 0 0; }
+                                       rel2 { relative: (1.0 - BACKBTN_Y/MAIN_H) (BACKBTN_X+BACKBTN_W)/MAIN_W; offset: -1 -1; }
+                               }
+                       }
+                       part { name: "capture_button_item";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1.0 - (CAPTUREBTN_Y+108)/MAIN_H) CAPTUREBTN_X/MAIN_W; offset: 0 0; }
+                                       rel2 { relative: (1.0 - CAPTUREBTN_Y/MAIN_H) (MAIN_W-10)/MAIN_W; offset: -1 -1; }
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "shortcuts,normal";
+                               source: "prog";
+                               signal: "shortcuts,normal";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "default", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "shortcuts,wide";
+                               source: "prog";
+                               signal: "shortcuts,wide";
+                               script: {
+                                       set_state(PART:"shortcuts_popup", "wide", 0.0);
+                                       set_state(PART:"shortcuts_popup_description", "wide", 0.0);
+                               }
+                       }
+                       program {
+                               name: "toolbar_bg,show";
+                                       source: "program";
+                                       signal: "toolbar_bg,show";
+                                       action: STATE_SET "default" 0.0;
+                                       target: "left_bg";
+                       }
+
+                       program {
+                               name: "toolbar_bg,hide";
+                                       source: "program";
+                                       signal: "toolbar_bg,hide";
+                                       action: STATE_SET "hide" 0.0;
+                                       target: "left_bg";
+                       }
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_0_button", "toolbar_0_icon", "toolbar_0_press_sig", "toolbar_0_release_sig", "toolbar_0_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_1_button", "toolbar_1_icon", "toolbar_1_press_sig", "toolbar_1_release_sig", "toolbar_1_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_2_button", "toolbar_2_icon", "toolbar_2_press_sig", "toolbar_2_release_sig", "toolbar_2_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_3_button", "toolbar_3_icon", "toolbar_3_press_sig", "toolbar_3_release_sig", "toolbar_3_click_sig")
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_4_button", "toolbar_4_icon", "toolbar_4_press_sig", "toolbar_4_release_sig", "toolbar_4_click_sig")
+               }/*end programs*/
+       }/*end group :toolbar*/
+
+       group {
+               name: "toolbar_mode_item";
+               min: TOOLBAR_MODE_ITEM_W TOOLBAR_MODE_ITEM_H;
+
+               images {
+                       image:  MODE_BG_VER_IMAGE COMP;
+                       image:  MODE_BUTTON_VER_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "rect";
+                               type: RECT;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       color : 0 0 0 0;
+                               }
+                       }
+
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 {
+                                               relative: (1 - (TOOLBAR_MODE_ITEM_BG_Y+TOOLBAR_MODE_ITEM_BG_H)/TOOLBAR_MODE_ITEM_H)
+                                                       TOOLBAR_MODE_ITEM_BG_X/TOOLBAR_MODE_ITEM_W
+                                                               ;
+                                               offset: 0 0;
+                                       }
+                                       rel2 {
+                                               relative: (1 - TOOLBAR_MODE_ITEM_BG_Y/TOOLBAR_MODE_ITEM_H)
+                                                       (TOOLBAR_MODE_ITEM_BG_X+TOOLBAR_MODE_ITEM_BG_W)/TOOLBAR_MODE_ITEM_W
+                                                               ;
+                                               offset: -1 -1;
+                                       }
+                                       image{ normal: MODE_BG_VER_IMAGE; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "button";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "camera" 0.0;
+                                       rel1 { relative: (1 - (CAMERA_BUTTON_Y+CAMERA_BUTTON_H)/TOOLBAR_MODE_ITEM_H) CAMERA_BUTTON_X/TOOLBAR_MODE_ITEM_W ; offset: 0 0;}
+                                       rel2 { relative: (1 - CAMERA_BUTTON_Y/TOOLBAR_MODE_ITEM_H) (CAMERA_BUTTON_X+CAMERA_BUTTON_W)/TOOLBAR_MODE_ITEM_W; offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_VER_IMAGE; }
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "camcorder" 0.0;
+                                       rel1 { relative: (1- (CAMCORDER_BUTTON_Y+CAMCORDER_BUTTON_H)/TOOLBAR_MODE_ITEM_H) CAMCORDER_BUTTON_X/TOOLBAR_MODE_ITEM_W ; offset: 0 0;}
+                                       rel2 { relative: (1 - CAMCORDER_BUTTON_Y/TOOLBAR_MODE_ITEM_H) (CAMCORDER_BUTTON_X+CAMCORDER_BUTTON_W)/TOOLBAR_MODE_ITEM_W; offset: -1 -1;}
+                                       image{ normal: MODE_BUTTON_VER_IMAGE; }
+                                       visible: 1;
+                               }
+                       }
+
+
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: (1 - (CAMERA_ICON_Y+CAMERA_ICON_H)/TOOLBAR_MODE_ITEM_H) CAMERA_ICON_X/TOOLBAR_MODE_ITEM_W; offset: 0 0; }
+                                       rel2 { relative: (1 - CAMERA_ICON_Y/TOOLBAR_MODE_ITEM_H) (CAMERA_ICON_X+CAMERA_ICON_W)/TOOLBAR_MODE_ITEM_W; offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+
+
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       rel1 { relative: (1 - (CAMCORDER_ICON_Y+CAMCORDER_ICON_H)/TOOLBAR_MODE_ITEM_H) CAMCORDER_ICON_X/TOOLBAR_MODE_ITEM_W; offset: 0 0;}
+                                       rel2 { relative: (1 - CAMCORDER_ICON_Y/TOOLBAR_MODE_ITEM_H) (CAMCORDER_ICON_X+CAMCORDER_ICON_W)/TOOLBAR_MODE_ITEM_W; offset: -1 -1;}
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs{
+                       program {
+                               name:"prog_set_camera";
+                               source: "prog";
+                               signal: "SET_MODE_CAMERA";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camera", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_camcorder";
+                               source: "prog";
+                               signal: "SET_MODE_CAMCORDER";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"button", "camcorder", 0.0);
+                                       set_state(PART:"camera_icon", "normal", 0.0);
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"button", "default", 0.0);
+                                       set_state(PART:"camera_icon", "dim", 0.0);
+                                       set_state(PART:"camcorder_icon", "dim", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end group:toolbar_mode_item*/
+
+       group {
+               name: "shutter_button";
+
+               images {
+                       image: SHUTTER_NORMAL_VER_IMAGE COMP;
+                       image: SHUTTER_PRESS_VER_IMAGE COMP;
+                       image: CAMERA_SHUTTER_ICON_IMAGE COMP;
+                       image: CAMCORDER_SHUTTER_ICON_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       visible: 0;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_NORMAL_VER_IMAGE; }
+                               }
+                               description {
+                                       state: "press" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image { normal: SHUTTER_PRESS_VER_IMAGE; }
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "camera_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 60 60;
+                                       visible: 1;
+                               }
+
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "camcorder_icon";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       aspect: 1.0 1.0;
+                                       align: 0.5 0.5;
+                                       max: 106 106;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "normal" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                               }
+                               description {
+                                       state: "dim" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       TOOLBAR_RIGHT_ITEM_PROGRAM("capture_button", "press_shutter_sig", "release_shutter_sig", "move_shutter_sig")
+
+                       program {
+                               name: "camera_icon,normal";
+                               source: "prog";
+                               signal: "camera_icon,normal";
+                               script: { set_state(PART:"camera_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camera_icon,invisible";
+                               source: "prog";
+                               signal: "camera_icon,invisible";
+                               script: { set_state(PART:"camera_icon", "dim", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,normal";
+                               source: "prog";
+                               signal: "camcorder_icon,normal";
+                               script: { set_state(PART:"camcorder_icon", "normal", 0.0); }
+                       }
+                       program {
+                               name: "camcorder_icon,invisible";
+                               source: "prog";
+                               signal: "camcorder_icon,invisible";
+                               script: { set_state(PART:"camcorder_icon", "dim", 0.0); }
+                       }
+               }/*end programs*/
+       }/*end group*/
+
+       group {
+               name: "toolbar_quickview_item";
+
+               images {
+                       image: THUMBNAIL_BG_NORMAL_IMAGE COMP;
+               }
+
+               parts {
+                       part { name: "bg";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }
+                                       image {
+                                               normal: THUMBNAIL_BG_NORMAL_IMAGE ;
+                                       }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+                       part { name: "thumbnail";
+                               type: SWALLOW;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 1/9 1/9; offset: 0 0; to: "bg"; }
+                                       rel2 { relative: 8/9 8/9; offset: -1 -1;  to: "bg"; }
+                               }
+                               description {
+                                       state: "invisible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 0;
+                               }
+                       }
+
+                       part { name: "thumbnail_area"; /*note: just for c codes get thumbnail x,y,w,h*/
+                               type: RECT;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; to: "thumbnail"; }
+                                       rel2 { relative: 1.0 1.0; to: "thumbnail"; }
+                                       color: 0 0 0 0;
+                               }
+                       }
+
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "quickview_bg,mouse,down,1";
+                               signal: "mouse,down,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,press"  "toolbar_signal";
+                       }
+                       program {
+                               name: "quickview_bg,mouse,up,1";
+                               signal: "mouse,up,1";
+                               source: "bg";
+                               action: SIGNAL_EMIT "landscape,quickview,release"  "toolbar_signal";
+                       }
+                       program {
+                               name: "prog_set_default";
+                               source: "prog";
+                               signal: "SET_DEFAULT";
+                               script: {
+                                       set_state(PART:"bg", "default", 0.0);
+                                       set_state(PART:"thumbnail", "default", 0.0);
+                               }
+                       }
+                       program {
+                               name: "prog_set_invisible";
+                               source: "prog";
+                               signal: "SET_INVISIBLE";
+                               script: {
+                                       set_state(PART:"bg", "invisible", 0.0);
+                                       set_state(PART:"thumbnail", "invisible", 0.0);
+                               }
+                       }
+               }/*end programs*/
+       }/*end toolbar_quickview_item*/
+
+       group{
+               name: "toolbar_backbutton_item";
+
+               images{
+                       image: BACK_BUTTON_NORMAL_IMAGE COMP;
+                       image: BACK_BUTTON_PRESS_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "back_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : BACK_BUTTON_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "back_button_press";
+                               signal: "mouse,down,1";
+                               source: "back_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_release";
+                               signal: "mouse,up,1";
+                               source: "back_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "back_button";
+                       }
+                       program {
+                               name: "back_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "back_button";
+                               action: SIGNAL_EMIT "landscape,backbutton,clicked"  "toolbar_signal";
+                       }
+               }/*end programs*/
+       }/*end toolbar_backbutton_item*/
+
+       group{
+               name: "toolbar_capture_button_item";
+
+               images{
+                       image: SNAPSHOT_PRESS_IMAGE COMP;
+                       image: SNAPSHOT_NORMAL_IMAGE COMP;
+               }
+
+               parts{
+                       part{
+                               name: "capture_button";
+                               type: IMAGE;
+                               mouse_events: 1;
+                               description{
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_NORMAL_IMAGE;
+                                       }
+                               }
+                               description{
+                                       state: "press" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}
+                                       image {
+                                               normal : SNAPSHOT_PRESS_IMAGE;
+                                       }
+                               }
+                       }
+               }/*end parts*/
+
+               programs {
+                       program {
+                               name: "capture_button_press";
+                               signal: "mouse,down,1";
+                               source: "capture_button";
+                               action: STATE_SET  "press" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_release";
+                               signal: "mouse,up,1";
+                               source: "capture_button";
+                               action: STATE_SET  "default" 0.0;
+                               target:  "capture_button";
+                       }
+                       program {
+                               name: "capture_button_clicked";
+                               signal: "mouse,clicked,1";
+                               source: "capture_button";
+                               action: SIGNAL_EMIT "capture_button_click"  "capture_button_click";
+                       }
+               }/*end programs*/
+       }
+}/*end collections*/
+//end file
diff --git a/edc/cam_toolbar_layout_vertical_inc.edc b/edc/cam_toolbar_layout_vertical_inc.edc
new file mode 100644 (file)
index 0000000..1d3b8b1
--- /dev/null
@@ -0,0 +1,391 @@
+/*\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
+\r
+#ifndef __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+#define __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+\r
+#define SETTING_TOOLBAR_W 1156\r
+#define SETTING_TOOLBAR_H 116\r
+\r
+#define TOOLBAR_ITEM_W    86\r
+#define TOOLBAR_ITEM_H    86\r
+\r
+#define TOOLBAR_0_X            38\r
+#define TOOLBAR_0_Y            593\r
+\r
+#define TOOLBAR_1_X            38\r
+#define TOOLBAR_1_Y            455\r
+\r
+#define TOOLBAR_2_X            38\r
+#define TOOLBAR_2_Y            317\r
+\r
+#define TOOLBAR_3_X            38\r
+#define TOOLBAR_3_Y            179\r
+\r
+#define TOOLBAR_4_X            38\r
+#define TOOLBAR_4_Y            41\r
+\r
+\r
+#define SHUTTER_X              1160\r
+#define SHUTTER_Y              254\r
+#define SHUTTER_W              108\r
+#define SHUTTER_H              214\r
+\r
+#define QUICKVIEW_X            1162\r
+#define QUICKVIEW_Y            604\r
+#define QUICKVIEW_W    108\r
+#define QUICKVIEW_H    108\r
+\r
+#define BACKBTN_X              1173\r
+#define BACKBTN_Y              615\r
+#define BACKBTN_W              86\r
+#define BACKBTN_H              86\r
+\r
+#define CAPTUREBTN_X   1162\r
+#define CAPTUREBTN_Y   68\r
+\r
+/*NOTE:below is for toolbar mode item*/\r
+#define TOOLBAR_MODE_ITEM_BG_X 33\r
+#define TOOLBAR_MODE_ITEM_BG_Y 58\r
+#define TOOLBAR_MODE_ITEM_BG_W 71\r
+#define TOOLBAR_MODE_ITEM_BG_H 119\r
+\r
+#define CAMERA_BUTTON_X                38\r
+#define CAMERA_BUTTON_Y                65\r
+#define CAMERA_BUTTON_W                61\r
+#define CAMERA_BUTTON_H                61\r
+#define CAMCORDER_BUTTON_X     38\r
+#define CAMCORDER_BUTTON_Y     109\r
+#define CAMCORDER_BUTTON_W     61\r
+#define CAMCORDER_BUTTON_H     61\r
+#define CAMERA_ICON_X 38\r
+#define CAMERA_ICON_Y 10\r
+#define CAMERA_ICON_W 56\r
+#define CAMERA_ICON_H 48\r
+#define CAMCORDER_ICON_X 38\r
+#define CAMCORDER_ICON_Y 170\r
+#define CAMCORDER_ICON_W 56\r
+#define CAMCORDER_ICON_H 48\r
+\r
+#define TOOLBAR_MODE_ITEM_W TOOLBAR_W\r
+#define TOOLBAR_MODE_ITEM_H TOOLBAR_RIGHT_ITEM_H\r
+\r
+images {\r
+       /*item_button*/\r
+       image: BUTTON_BG_NORMAL_IMAGE COMP;\r
+       image: BUTTON_BG_PRESS_IMAGE COMP;\r
+\r
+       image: SNAPSHOT_PRESS_IMAGE COMP;\r
+       image: SNAPSHOT_NORMAL_IMAGE COMP;\r
+       image: LEFT_TOOLBAR_BG_VER_IMAGE COMP;\r
+       image: RIGHT_TOOLBAR_BG_VER_IMAGE COMP;\r
+}\r
+\r
+#define TOOLBAR_BACKGROUND_IMAGE(part_name, x, y, w, h, img) \\r
+                       part {                          \\r
+                               name: part_name;        \\r
+                               type: IMAGE;    \\r
+                               description {   \\r
+                                       state: "default" 0.0;\\r
+                                      rel1 { relative: (1 - (y+h)/MAIN_H) (x)/MAIN_W; }                \\r
+                                      rel2 { relative: (1 - (y)/MAIN_H) (x+w)/MAIN_W; }             \\r
+                                       image { normal: img; }  \\r
+                               }\\r
+                               description{ \\r
+                                       state: "hide" 0.0; \\r
+                                       inherit:"default" 0.0; \\r
+                                       visible: 0; \\r
+                               } \\r
+                       }\r
+\r
+\r
+#define TOOLBAR_ITEM_BUTTON_WITH_BG(button_name, x, y, bg_w, bg_h) \\r
+       part { name: button_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (y+TOOLBAR_ITEM_H)/(bg_h)) (x)/(bg_w);} \\r
+                       rel2 { relative: (1 - (y)/(bg_h)) (x+TOOLBAR_ITEM_W)/(bg_w);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_NORMAL_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_PRESS_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (y+h)/(bg_h)) (x)/(bg_w);} \\r
+                       rel2 { relative: (1 - (y)/(bg_h)) (x+w)/(bg_w);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h) \\r
+       part { name: icon_name; \\r
+               type: SWALLOW; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       aspect: 1.0 1.0; \\r
+                       align: 0.5 0.5; \\r
+                       rel1 { relative: (1 - (y+h)/(bg_h)) (x)/(bg_w);} \\r
+                       rel2 { relative: (1 - (y)/(bg_h)) (x+w)/(bg_w);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_DIM(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press, img_dim) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (1 - (y+h)/(bg_h)) (x)/(bg_w);} \\r
+                       rel2 { relative: (1 - (y)/(bg_h)) (x+w)/(bg_w);} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_dim; } \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_LEFT_ITEM_PROGRAM(button_name, icon_name, press_signal, release_signal, click_signal) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( press_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( release_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( click_signal, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: icon_name",invisible"; \\r
+               source: "prog"; \\r
+               signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",normal"; \\r
+               source: "prog"; \\r
+               signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",edit"; \\r
+               source: "prog"; \\r
+               signal: icon_name",edit"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "normal", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",dim"; \\r
+               source: "prog"; \\r
+               signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+\r
+#define TOOLBAR_RIGHT_ITEM_PROGRAM(icon_name, press_signal_name, release_signal_name, move_signal_name) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "press", 0.0);\\r
+                               emit( press_signal_name, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "normal", 0.0);\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_move_"icon_name;  \\r
+               signal: "mouse,move"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( move_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( release_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+        program { \\r
+            name: icon_name",invisible"; \\r
+            source: "prog"; \\r
+            signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",normal"; \\r
+            source: "prog"; \\r
+            signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",dim"; \\r
+            source: "prog"; \\r
+            signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_BUTTON(name, x, y) \\r
+       TOOLBAR_ITEM_BUTTON_WITH_BG(name, x, y, MAIN_W, MAIN_H)\r
+\r
+#define TOOLBAR_ITEM_ICON(name, x, y, w, h, img_normal, img_press) \\r
+       TOOLBAR_ITEM_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H, img_normal, img_press)\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON(name, x, y, w, h) \\r
+       TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H)\r
+\r
+#endif /*__H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__*/\r
+//end files\r
diff --git a/edc/cam_toolbar_layout_vertical_inverse.edc b/edc/cam_toolbar_layout_vertical_inverse.edc
new file mode 100644 (file)
index 0000000..f060744
--- /dev/null
@@ -0,0 +1,658 @@
+/*\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
+\r
+\r
+#include "cam_funcs.edc"\r
+#include "../include/edc_image_name.h"\r
+#include "cam_toolbar_layout_vertical_inverse_inc.edc"\r
+#include "cam_setting_popup_layout_inc.edc"\r
+\r
+\r
+collections {\r
+\r
+       group {\r
+               name: "toolbar";\r
+               min: MAIN_H MAIN_W;\r
+\r
+               parts {\r
+                       TOOLBAR_BACKGROUND_IMAGE("left_bg", 0, 0, TOOLBAR_W, MAIN_H, LEFT_TOOLBAR_BG_VER_IMAGE)\r
+                       TOOLBAR_BACKGROUND_IMAGE("right_bg", MAIN_W-TOOLBAR_W, 0, TOOLBAR_W, MAIN_H, RIGHT_TOOLBAR_BG_VER_IMAGE)\r
+\r
+                       part { name: "popup_area";\r
+                               mouse_events: 0;\r
+                               description{\r
+                                       state:"default" 0.0;\r
+                                       rel1{ relative: 0.0 (1 - (MAIN_W-TOOLBAR_W-20)/MAIN_W) ;}\r
+                                       rel2{ relative: 1.0 (1 - ((TOOLBAR_W+20)/MAIN_W));}\r
+                               }\r
+                       }\r
+\r
+                       part { name: "setting_popup";\r
+                               type: SWALLOW;\r
+                               description{\r
+                                       state:"default" 0.0;\r
+                                       rel1{ relative: 0.0 (1 - (MAIN_W-TOOLBAR_W-20)/MAIN_W) ;}\r
+                                       rel2{ relative: 1.0 (1 - ((TOOLBAR_W+20)/MAIN_W));}\r
+                               }\r
+                       }\r
+                       part { name: "shortcuts_popup";\r
+                               type: SWALLOW;\r
+                               description{\r
+                                       state:"default" 0.0;\r
+                                       rel1{ relative: 0.0 (1 - (TOOLBAR_W+740+20)/MAIN_W);}\r
+                                       rel2{ relative: 1.0 (1 - (TOOLBAR_W + 20 + 138)/MAIN_W));}\r
+                               }\r
+                               description{\r
+                                       state:"wide" 0.0;\r
+                                       rel1{ relative: 0.0 (1 - (TOOLBAR_W+740+20)/MAIN_W);}\r
+                                       rel2{ relative: 1.0 (1 - (TOOLBAR_W+20)/MAIN_W));}\r
+                               }\r
+                       }\r
+                       part { name: "shortcuts_popup_description";\r
+                               type: SWALLOW;\r
+                               description{\r
+                                       state:"default" 0.0;\r
+                                       min:0   138;\r
+                                       fixed:0         1;\r
+                                       align: 0 0;\r
+                                       rel1{ relative: 0.0 1.0;to: "shortcuts_popup";}\r
+                                       rel2{ relative: 1.0 1.0;to: "shortcuts_popup";}\r
+                               }\r
+                               description{\r
+                                       state:"wide" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+                       TOOLBAR_ITEM_BUTTON("toolbar_0_button", TOOLBAR_0_X, TOOLBAR_0_Y)\r
+                       TOOLBAR_ITEM_BUTTON("toolbar_1_button", TOOLBAR_1_X, TOOLBAR_1_Y)\r
+                       TOOLBAR_ITEM_BUTTON("toolbar_2_button", TOOLBAR_2_X, TOOLBAR_2_Y)\r
+                       TOOLBAR_ITEM_BUTTON("toolbar_3_button", TOOLBAR_3_X, TOOLBAR_3_Y)\r
+                       TOOLBAR_ITEM_BUTTON("toolbar_4_button", TOOLBAR_4_X, TOOLBAR_4_Y)\r
+\r
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_0_icon", TOOLBAR_0_X, TOOLBAR_0_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)\r
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_1_icon", TOOLBAR_1_X, TOOLBAR_1_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)\r
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_2_icon", TOOLBAR_2_X, TOOLBAR_2_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)\r
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_3_icon", TOOLBAR_3_X, TOOLBAR_3_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)\r
+                       TOOLBAR_ITEM_SWALLOW_ICON("toolbar_4_icon", TOOLBAR_4_X, TOOLBAR_4_Y, TOOLBAR_ITEM_W, TOOLBAR_ITEM_H)\r
+\r
+                       part { name: "shutter_button";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: SHUTTER_Y/MAIN_H (1 - (SHUTTER_X+SHUTTER_W)/MAIN_W); offset: 0 0; }\r
+                                       rel2 { relative: (SHUTTER_Y+SHUTTER_H)/MAIN_H (1 - SHUTTER_X/MAIN_W); offset: -1 -1; }\r
+                               }\r
+                       }\r
+                       part { name: "mode_item";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative:  0.0 0.0; offset: 0 0; }\r
+                                       rel2 { relative: TOOLBAR_RIGHT_ITEM_H/MAIN_H (1 - (MAIN_W - TOOLBAR_W)/MAIN_W); offset: -1 -1; }\r
+                               }\r
+                       }\r
+                       part { name: "quickview_item";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: QUICKVIEW_Y/MAIN_H (1 - (QUICKVIEW_X+QUICKVIEW_W)/MAIN_W); offset: 0 0; }\r
+                                       rel2 { relative: (QUICKVIEW_Y+QUICKVIEW_H)/MAIN_H (1 - QUICKVIEW_X/MAIN_W); offset: -1 -1; }\r
+                               }\r
+                       }\r
+                       part { name: "backbutton_item";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: BACKBTN_Y/MAIN_H (1 - (BACKBTN_X+BACKBTN_W)/MAIN_W); offset: 0 0; }\r
+                                       rel2 { relative: (BACKBTN_Y+BACKBTN_H)/MAIN_H (1 - BACKBTN_X/MAIN_W); offset: -1 -1; }\r
+                               }\r
+                       }\r
+                       part { name: "capture_button_item";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: CAPTUREBTN_Y/MAIN_H (1 - (MAIN_W-10)/MAIN_W); offset: 0 0; }\r
+                                       rel2 { relative: (CAPTUREBTN_Y+108)/MAIN_H (1 - CAPTUREBTN_X/MAIN_W); offset: -1 -1; }\r
+                               }\r
+                       }\r
+\r
+               }/*end parts*/\r
+\r
+               programs {\r
+                       program {\r
+                               name: "shortcuts,normal";\r
+                               source: "prog";\r
+                               signal: "shortcuts,normal";\r
+                               script: {\r
+                                       set_state(PART:"shortcuts_popup", "default", 0.0);\r
+                                       set_state(PART:"shortcuts_popup_description", "default", 0.0);\r
+                               }\r
+                       }\r
+                       program {\r
+                               name: "shortcuts,wide";\r
+                               source: "prog";\r
+                               signal: "shortcuts,wide";\r
+                               script: {\r
+                                       set_state(PART:"shortcuts_popup", "wide", 0.0);\r
+                                       set_state(PART:"shortcuts_popup_description", "wide", 0.0);\r
+                               }\r
+                       }\r
+                       program {\r
+                               name: "toolbar_bg,show";\r
+                                       source: "program";\r
+                                       signal: "toolbar_bg,show";\r
+                                       action: STATE_SET "default" 0.0;\r
+                                       target: "left_bg";\r
+                       }\r
+\r
+                       program {\r
+                               name: "toolbar_bg,hide";\r
+                                       source: "program";\r
+                                       signal: "toolbar_bg,hide";\r
+                                       action: STATE_SET "hide" 0.0;\r
+                                       target: "left_bg";\r
+                       }\r
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_0_button", "toolbar_0_icon", "toolbar_0_press_sig", "toolbar_0_release_sig", "toolbar_0_click_sig")\r
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_1_button", "toolbar_1_icon", "toolbar_1_press_sig", "toolbar_1_release_sig", "toolbar_1_click_sig")\r
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_2_button", "toolbar_2_icon", "toolbar_2_press_sig", "toolbar_2_release_sig", "toolbar_2_click_sig")\r
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_3_button", "toolbar_3_icon", "toolbar_3_press_sig", "toolbar_3_release_sig", "toolbar_3_click_sig")\r
+                       TOOLBAR_LEFT_ITEM_PROGRAM("toolbar_4_button", "toolbar_4_icon", "toolbar_4_press_sig", "toolbar_4_release_sig", "toolbar_4_click_sig")\r
+               }/*end programs*/\r
+       }/*end group :toolbar*/\r
+\r
+       group {\r
+               name: "toolbar_mode_item";\r
+               min: TOOLBAR_MODE_ITEM_W TOOLBAR_MODE_ITEM_H;\r
+\r
+               images {\r
+                       image:  MODE_BG_VER_IMAGE COMP;\r
+                       image:  MODE_BUTTON_VER_IMAGE COMP;\r
+               }\r
+\r
+               parts {\r
+                       part { name: "rect";\r
+                               type: RECT;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }\r
+                                       color : 0 0 0 0;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "bg";\r
+                               type: IMAGE;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 {\r
+                                               relative: TOOLBAR_MODE_ITEM_BG_Y/TOOLBAR_MODE_ITEM_H\r
+                                                       (1 - (TOOLBAR_MODE_ITEM_BG_X+TOOLBAR_MODE_ITEM_BG_W)/TOOLBAR_MODE_ITEM_W);\r
+                                               offset: 0 0;\r
+                                       }\r
+                                       rel2 {\r
+                                               relative: (TOOLBAR_MODE_ITEM_BG_Y+TOOLBAR_MODE_ITEM_BG_H)/TOOLBAR_MODE_ITEM_H\r
+                                                         (1 - TOOLBAR_MODE_ITEM_BG_X/TOOLBAR_MODE_ITEM_W);\r
+                                               offset: -1 -1;\r
+                                       }\r
+                                       image{ normal: MODE_BG_VER_IMAGE; }\r
+                               }\r
+                               description {\r
+                                       state: "invisible" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+\r
+\r
+                       part { name: "button";\r
+                               type: IMAGE;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }\r
+                                       visible: 0;\r
+                               }\r
+                               description {\r
+                                       state: "camera" 0.0;\r
+                                       rel1 { relative: CAMERA_BUTTON_Y/TOOLBAR_MODE_ITEM_H (1 - (CAMERA_BUTTON_X+CAMERA_BUTTON_W)/TOOLBAR_MODE_ITEM_W); offset: 0 0;}\r
+                                       rel2 { relative: (CAMERA_BUTTON_Y+CAMERA_BUTTON_H)/TOOLBAR_MODE_ITEM_H (1 - CAMERA_BUTTON_X/TOOLBAR_MODE_ITEM_W); offset: -1 -1;}\r
+                                       image{ normal: MODE_BUTTON_VER_IMAGE; }\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "camcorder" 0.0;\r
+                                       rel1 { relative: CAMCORDER_BUTTON_Y/TOOLBAR_MODE_ITEM_H (1 - CAMCORDER_BUTTON_X+CAMCORDER_BUTTON_W)/TOOLBAR_MODE_ITEM_W); offset: 0 0;}\r
+                                       rel2 { relative: (CAMCORDER_BUTTON_Y+CAMCORDER_BUTTON_H)/TOOLBAR_MODE_ITEM_H (1 - CAMCORDER_BUTTON_X/TOOLBAR_MODE_ITEM_W); offset: -1 -1;}\r
+                                       image{ normal: MODE_BUTTON_VER_IMAGE; }\r
+                                       visible: 1;\r
+                               }\r
+                       }\r
+\r
+\r
+\r
+                       part { name: "camera_icon";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       aspect: 1.0 1.0;\r
+                                       align: 0.5 0.5;\r
+                                       rel1 { relative: CAMERA_ICON_Y/TOOLBAR_MODE_ITEM_H (1 - (CAMERA_ICON_X+CAMERA_ICON_W)/TOOLBAR_MODE_ITEM_W); offset: 0 0; }\r
+                                       rel2 { relative: (CAMERA_ICON_Y+CAMERA_ICON_H)/TOOLBAR_MODE_ITEM_H (1 - CAMERA_ICON_X/TOOLBAR_MODE_ITEM_W); offset: -1 -1;}\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "normal" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "dim" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+\r
+\r
+                       part { name: "camcorder_icon";\r
+                               type: SWALLOW;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       aspect: 1.0 1.0;\r
+                                       align: 0.5 0.5;\r
+                                       rel1 { relative: CAMCORDER_ICON_Y/TOOLBAR_MODE_ITEM_H (1 - (CAMCORDER_ICON_X+CAMCORDER_ICON_W)/TOOLBAR_MODE_ITEM_W); offset: 0 0; }\r
+                                       rel2 { relative: (CAMCORDER_ICON_Y+CAMCORDER_ICON_H)/TOOLBAR_MODE_ITEM_H (1 - CAMCORDER_ICON_X/TOOLBAR_MODE_ITEM_W); offset: -1 -1;}\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "normal" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "dim" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+               }/*end parts*/\r
+\r
+               programs{\r
+                       program {\r
+                               name:"prog_set_camera";\r
+                               source: "prog";\r
+                               signal: "SET_MODE_CAMERA";\r
+                               script: {\r
+                                       set_state(PART:"bg", "default", 0.0);\r
+                                       set_state(PART:"button", "camera", 0.0);\r
+                                       set_state(PART:"camera_icon", "normal", 0.0);\r
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);\r
+                               }\r
+                       }\r
+                       program {\r
+                               name: "prog_set_camcorder";\r
+                               source: "prog";\r
+                               signal: "SET_MODE_CAMCORDER";\r
+                               script: {\r
+                                       set_state(PART:"bg", "default", 0.0);\r
+                                       set_state(PART:"button", "camcorder", 0.0);\r
+                                       set_state(PART:"camera_icon", "normal", 0.0);\r
+                                       set_state(PART:"camcorder_icon", "normal", 0.0);\r
+                               }\r
+                       }\r
+                       program {\r
+                               name: "prog_set_invisible";\r
+                               source: "prog";\r
+                               signal: "SET_INVISIBLE";\r
+                               script: {\r
+                                       set_state(PART:"bg", "invisible", 0.0);\r
+                                       set_state(PART:"button", "default", 0.0);\r
+                                       set_state(PART:"camera_icon", "dim", 0.0);\r
+                                       set_state(PART:"camcorder_icon", "dim", 0.0);\r
+                               }\r
+                       }\r
+               }/*end programs*/\r
+       }/*end group:toolbar_mode_item*/\r
+\r
+       group {\r
+               name: "shutter_button";\r
+\r
+               images {\r
+                       image: SHUTTER_NORMAL_VER_IMAGE COMP;\r
+                       image: SHUTTER_PRESS_VER_IMAGE COMP;\r
+                       image: CAMERA_SHUTTER_ICON_IMAGE COMP;\r
+                       image: CAMCORDER_SHUTTER_ICON_IMAGE COMP;\r
+               }\r
+\r
+               parts {\r
+                       part { name: "capture_button";\r
+                               type: IMAGE;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }\r
+                                       visible: 0;\r
+                               }\r
+                               description {\r
+                                       state: "normal" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                                       image { normal: SHUTTER_NORMAL_VER_IMAGE; }\r
+                               }\r
+                               description {\r
+                                       state: "press" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                                       image { normal: SHUTTER_PRESS_VER_IMAGE; }\r
+                               }\r
+                               description {\r
+                                       state: "dim" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "camera_icon";\r
+                               type: SWALLOW;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       aspect: 1.0 1.0;\r
+                                       align: 0.5 0.5;\r
+                                       max: 60 60;\r
+                                       visible: 1;\r
+                               }\r
+\r
+                               description {\r
+                                       state: "normal" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "dim" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+                       part { name: "camcorder_icon";\r
+                               type: SWALLOW;\r
+                               scale: 1;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       aspect: 1.0 1.0;\r
+                                       align: 0.5 0.5;\r
+                                       max: 106 106;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "normal" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 1;\r
+                               }\r
+                               description {\r
+                                       state: "dim" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+               }/*end parts*/\r
+\r
+               programs {\r
+                       TOOLBAR_RIGHT_ITEM_PROGRAM("capture_button", "press_shutter_sig", "release_shutter_sig", "move_shutter_sig")\r
+\r
+                       program {\r
+                               name: "camera_icon,normal";\r
+                               source: "prog";\r
+                               signal: "camera_icon,normal";\r
+                               script: { set_state(PART:"camera_icon", "normal", 0.0); }\r
+                       }\r
+                       program {\r
+                               name: "camera_icon,invisible";\r
+                               source: "prog";\r
+                               signal: "camera_icon,invisible";\r
+                               script: { set_state(PART:"camera_icon", "dim", 0.0); }\r
+                       }\r
+                       program {\r
+                               name: "camcorder_icon,normal";\r
+                               source: "prog";\r
+                               signal: "camcorder_icon,normal";\r
+                               script: { set_state(PART:"camcorder_icon", "normal", 0.0); }\r
+                       }\r
+                       program {\r
+                               name: "camcorder_icon,invisible";\r
+                               source: "prog";\r
+                               signal: "camcorder_icon,invisible";\r
+                               script: { set_state(PART:"camcorder_icon", "dim", 0.0); }\r
+                       }\r
+               }/*end programs*/\r
+       }/*end group*/\r
+\r
+       group {\r
+               name: "toolbar_quickview_item";\r
+\r
+               images {\r
+                       image: THUMBNAIL_BG_NORMAL_IMAGE COMP;\r
+               }\r
+\r
+               parts {\r
+                       part { name: "bg";\r
+                               type: IMAGE;\r
+                               mouse_events: 1;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; }\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1; }\r
+                                       image {\r
+                                               normal: THUMBNAIL_BG_NORMAL_IMAGE ;\r
+                                       }\r
+                               }\r
+                               description {\r
+                                       state: "invisible" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+                       part { name: "thumbnail";\r
+                               type: SWALLOW;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 1/9 1/9; offset: 0 0; to: "bg"; }\r
+                                       rel2 { relative: 8/9 8/9; offset: -1 -1;  to: "bg"; }\r
+                               }\r
+                               description {\r
+                                       state: "invisible" 0.0;\r
+                                       inherit: "default" 0.0;\r
+                                       visible: 0;\r
+                               }\r
+                       }\r
+\r
+                       part { name: "thumbnail_area"; /*note: just for c codes get thumbnail x,y,w,h*/\r
+                               type: RECT;\r
+                               mouse_events: 0;\r
+                               description {\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; to: "thumbnail"; }\r
+                                       rel2 { relative: 1.0 1.0; to: "thumbnail"; }\r
+                                       color: 0 0 0 0;\r
+                               }\r
+                       }\r
+\r
+               }/*end parts*/\r
+\r
+               programs {\r
+                       program {\r
+                               name: "quickview_bg,mouse,down,1";\r
+                               signal: "mouse,down,1";\r
+                               source: "bg";\r
+                               action: SIGNAL_EMIT "landscape,quickview,press"  "toolbar_signal";\r
+                       }\r
+                       program {\r
+                               name: "quickview_bg,mouse,up,1";\r
+                               signal: "mouse,up,1";\r
+                               source: "bg";\r
+                               action: SIGNAL_EMIT "landscape,quickview,release"  "toolbar_signal";\r
+                       }\r
+                       program {\r
+                               name: "prog_set_default";\r
+                               source: "prog";\r
+                               signal: "SET_DEFAULT";\r
+                               script: {\r
+                                       set_state(PART:"bg", "default", 0.0);\r
+                                       set_state(PART:"thumbnail", "default", 0.0);\r
+                               }\r
+                       }\r
+                       program {\r
+                               name: "prog_set_invisible";\r
+                               source: "prog";\r
+                               signal: "SET_INVISIBLE";\r
+                               script: {\r
+                                       set_state(PART:"bg", "invisible", 0.0);\r
+                                       set_state(PART:"thumbnail", "invisible", 0.0);\r
+                               }\r
+                       }\r
+               }/*end programs*/\r
+       }/*end toolbar_quickview_item*/\r
+\r
+       group{\r
+               name: "toolbar_backbutton_item";\r
+\r
+               images{\r
+                       image: BACK_BUTTON_NORMAL_IMAGE COMP;\r
+                       image: BACK_BUTTON_PRESS_IMAGE COMP;\r
+               }\r
+\r
+               parts{\r
+                       part{\r
+                               name: "back_button";\r
+                               type: IMAGE;\r
+                               mouse_events: 1;\r
+                               description{\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}\r
+                                       image {\r
+                                               normal : BACK_BUTTON_NORMAL_IMAGE;\r
+                                       }\r
+                               }\r
+                               description{\r
+                                       state: "press" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}\r
+                                       image {\r
+                                               normal : BACK_BUTTON_PRESS_IMAGE;\r
+                                       }\r
+                               }\r
+                       }\r
+               }/*end parts*/\r
+\r
+               programs {\r
+                       program {\r
+                               name: "back_button_press";\r
+                               signal: "mouse,down,1";\r
+                               source: "back_button";\r
+                               action: STATE_SET  "press" 0.0;\r
+                               target:  "back_button";\r
+                       }\r
+                       program {\r
+                               name: "back_button_release";\r
+                               signal: "mouse,up,1";\r
+                               source: "back_button";\r
+                               action: STATE_SET  "default" 0.0;\r
+                               target:  "back_button";\r
+                       }\r
+                       program {\r
+                               name: "back_button_clicked";\r
+                               signal: "mouse,clicked,1";\r
+                               source: "back_button";\r
+                               action: SIGNAL_EMIT "landscape,backbutton,clicked"  "toolbar_signal";\r
+                       }\r
+               }/*end programs*/\r
+       }/*end toolbar_backbutton_item*/\r
+\r
+       group{\r
+               name: "toolbar_capture_button_item";\r
+\r
+               images{\r
+                       image: SNAPSHOT_PRESS_IMAGE COMP;\r
+                       image: SNAPSHOT_NORMAL_IMAGE COMP;\r
+               }\r
+\r
+               parts{\r
+                       part{\r
+                               name: "capture_button";\r
+                               type: IMAGE;\r
+                               mouse_events: 1;\r
+                               description{\r
+                                       state: "default" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}\r
+                                       image {\r
+                                               normal : SNAPSHOT_NORMAL_IMAGE;\r
+                                       }\r
+                               }\r
+                               description{\r
+                                       state: "press" 0.0;\r
+                                       rel1 { relative: 0.0 0.0; offset: 0 0;}\r
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;}\r
+                                       image {\r
+                                               normal : SNAPSHOT_PRESS_IMAGE;\r
+                                       }\r
+                               }\r
+                       }\r
+               }/*end parts*/\r
+\r
+               programs {\r
+                       program {\r
+                               name: "capture_button_press";\r
+                               signal: "mouse,down,1";\r
+                               source: "capture_button";\r
+                               action: STATE_SET  "press" 0.0;\r
+                               target:  "capture_button";\r
+                       }\r
+                       program {\r
+                               name: "capture_button_release";\r
+                               signal: "mouse,up,1";\r
+                               source: "capture_button";\r
+                               action: STATE_SET  "default" 0.0;\r
+                               target:  "capture_button";\r
+                       }\r
+                       program {\r
+                               name: "capture_button_clicked";\r
+                               signal: "mouse,clicked,1";\r
+                               source: "capture_button";\r
+                               action: SIGNAL_EMIT "capture_button_click"  "capture_button_click";\r
+                       }\r
+               }/*end programs*/\r
+       }\r
+}/*end collections*/\r
+//end file\r
diff --git a/edc/cam_toolbar_layout_vertical_inverse_inc.edc b/edc/cam_toolbar_layout_vertical_inverse_inc.edc
new file mode 100644 (file)
index 0000000..2fe63a1
--- /dev/null
@@ -0,0 +1,396 @@
+/*\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
+\r
+\r
+#ifndef __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+#define __H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__\r
+\r
+#define SETTING_TOOLBAR_W 1156\r
+#define SETTING_TOOLBAR_H 116\r
+\r
+#define TOOLBAR_ITEM_W    86\r
+#define TOOLBAR_ITEM_H    86\r
+\r
+#define TOOLBAR_0_X            38\r
+#define TOOLBAR_0_Y            593\r
+\r
+#define TOOLBAR_1_X            38\r
+#define TOOLBAR_1_Y            455\r
+\r
+#define TOOLBAR_2_X            38\r
+#define TOOLBAR_2_Y            317\r
+\r
+#define TOOLBAR_3_X            38\r
+#define TOOLBAR_3_Y            179\r
+\r
+#define TOOLBAR_4_X            38\r
+#define TOOLBAR_4_Y            41\r
+\r
+\r
+#define SHUTTER_X              1160\r
+#define SHUTTER_Y              254\r
+#define SHUTTER_W              108\r
+#define SHUTTER_H              214\r
+\r
+#define QUICKVIEW_X            1162\r
+#define QUICKVIEW_Y            604\r
+#define QUICKVIEW_W    108\r
+#define QUICKVIEW_H    108\r
+\r
+#define THUMBNAIL_H    108\r
+#define THUMBNAIK_W    108\r
+\r
+#define BACKBTN_X              1173\r
+#define BACKBTN_Y              615\r
+#define BACKBTN_W              86\r
+#define BACKBTN_H              86\r
+\r
+#define CAPTUREBTN_X           1162\r
+#define CAPTUREBTN_Y           68\r
+\r
+/*NOTE:below is for toolbar mode item*/\r
+#define TOOLBAR_MODE_ITEM_BG_X 33\r
+#define TOOLBAR_MODE_ITEM_BG_Y 58\r
+#define TOOLBAR_MODE_ITEM_BG_W 71\r
+#define TOOLBAR_MODE_ITEM_BG_H 119\r
+\r
+#define CAMERA_BUTTON_X                38\r
+#define CAMERA_BUTTON_Y                65\r
+#define CAMERA_BUTTON_W                61\r
+#define CAMERA_BUTTON_H                61\r
+#define CAMCORDER_BUTTON_X     38\r
+#define CAMCORDER_BUTTON_Y     109\r
+#define CAMCORDER_BUTTON_W     61\r
+#define CAMCORDER_BUTTON_H     61\r
+#define CAMERA_ICON_X 38\r
+#define CAMERA_ICON_Y 10\r
+#define CAMERA_ICON_W 56\r
+#define CAMERA_ICON_H 48\r
+#define CAMCORDER_ICON_X 38\r
+#define CAMCORDER_ICON_Y 170\r
+#define CAMCORDER_ICON_W 56\r
+#define CAMCORDER_ICON_H 48\r
+\r
+#define TOOLBAR_MODE_ITEM_W TOOLBAR_W\r
+#define TOOLBAR_MODE_ITEM_H TOOLBAR_RIGHT_ITEM_H\r
+\r
+images {\r
+       /*item_button*/\r
+       image: BUTTON_BG_NORMAL_IMAGE COMP;\r
+       image: BUTTON_BG_PRESS_IMAGE COMP;\r
+\r
+       image: SNAPSHOT_PRESS_IMAGE COMP;\r
+       image: SNAPSHOT_NORMAL_IMAGE COMP;\r
+       image: LEFT_TOOLBAR_BG_VER_IMAGE COMP;\r
+       image: RIGHT_TOOLBAR_BG_VER_IMAGE COMP;\r
+}\r
+\r
+#define TOOLBAR_BACKGROUND_IMAGE(part_name, x, y, w, h, img) \\r
+                       part {                          \\r
+                               name: part_name;        \\r
+                               type: IMAGE;    \\r
+                               description {   \\r
+                                       state: "default" 0.0;\\r
+                                      rel1 { relative: (y)/MAIN_H (1 - (x+w)/MAIN_W); }                \\r
+                                      rel2 { relative: (y+h)/MAIN_H (1 - (x)/MAIN_W); }             \\r
+                                       image { normal: img; }  \\r
+                               }     \\r
+                               description{ \\r
+                                       state: "hide" 0.0; \\r
+                                       inherit:"default" 0.0; \\r
+                                       visible: 0; \\r
+                               } \\r
+                       }\\r
+\r
+\r
+#define TOOLBAR_ITEM_BUTTON_WITH_BG(button_name, x, y, bg_w, bg_h) \\r
+       part { name: button_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (y)/(bg_h) (1 - (x+TOOLBAR_ITEM_W)/(bg_w));} \\r
+                       rel2 { relative: (y+TOOLBAR_ITEM_H)/(bg_h) (1 - (x)/(bg_w));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_NORMAL_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: BUTTON_BG_PRESS_IMAGE; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (y)/(bg_h) (1 - (x+w)/(bg_w));} \\r
+                       rel2 { relative: (y+h)/(bg_h) (1 - (x)/(bg_w));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 0; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(icon_name, x, y, w, h, bg_w, bg_h) \\r
+       part { name: icon_name; \\r
+               type: SWALLOW; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       aspect: 1.0 1.0; \\r
+                       align: 0.5 0.5; \\r
+                       rel1 { relative: (y)/(bg_h) (1 - (x+w)/(bg_w));} \\r
+                       rel2 { relative: (y+h)/(bg_h) (1 - (x)/(bg_w));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_ICON_WITH_DIM(icon_name, x, y, w, h, bg_w, bg_h, img_normal, img_press, img_dim) \\r
+       part { name: icon_name; \\r
+               type: IMAGE; \\r
+               mouse_events: 1; \\r
+               description { \\r
+                       state: "default" 0.0; \\r
+                       rel1 { relative: (y)/(bg_h) (1 - (x+w)/(bg_w));} \\r
+                       rel2 { relative: (y+h)/(bg_h) (1 - (x)/(bg_w));} \\r
+                       visible: 0; \\r
+               } \\r
+               description { \\r
+                       state: "normal" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_normal; } \\r
+               } \\r
+               description { \\r
+                       state: "press" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_press; } \\r
+               } \\r
+               description { \\r
+                       state: "dim" 0.0; \\r
+                       inherit: "default" 0.0; \\r
+                       visible: 1; \\r
+                       image { normal: img_dim; } \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_LEFT_ITEM_PROGRAM(button_name, icon_name, press_signal, release_signal, click_signal) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( press_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               emit( release_signal, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( click_signal, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: icon_name",invisible"; \\r
+               source: "prog"; \\r
+               signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",normal"; \\r
+               source: "prog"; \\r
+               signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",edit"; \\r
+               source: "prog"; \\r
+               signal: icon_name",edit"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "normal", 0.0); \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+       program { \\r
+               name: icon_name",dim"; \\r
+               source: "prog"; \\r
+               signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:button_name, "default", 0.0); \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+\r
+#define TOOLBAR_RIGHT_ITEM_PROGRAM(icon_name, press_signal_name, release_signal_name, move_signal_name) \\r
+       program {       \\r
+               name: "mouse_down_"icon_name; \\r
+               signal: "mouse,down,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "press", 0.0);\\r
+                               emit( press_signal_name, "toolbar_signal" );\\r
+                       } \\r
+               }\\r
+       } \\r
+       program { \\r
+               name: "mouse_up_"icon_name; \\r
+               signal: "mouse,up,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) { \\r
+                               set_state(PART:icon_name, "normal", 0.0);\\r
+                       } \\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_move_"icon_name;  \\r
+               signal: "mouse,move"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( move_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+       program { \\r
+               name: "mouse_clicked_"icon_name;  \\r
+               signal: "mouse,clicked,1"; \\r
+               source: icon_name; \\r
+               script {\\r
+                       new st[31];\\r
+                       new Float:vl;\\r
+                       get_state(PART:icon_name, st, 30, vl);\\r
+                       if (strcmp(st, "dim") != 0) \\r
+                               emit( release_signal_name, "toolbar_signal" );\\r
+               }\\r
+       }\\r
+        program { \\r
+            name: icon_name",invisible"; \\r
+            source: "prog"; \\r
+            signal: icon_name",invisible"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "default", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",normal"; \\r
+            source: "prog"; \\r
+            signal: icon_name",normal"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "normal", 0.0); \\r
+               } \\r
+       } \\r
+        program { \\r
+            name: icon_name",dim"; \\r
+            source: "prog"; \\r
+            signal: icon_name",dim"; \\r
+               script: { \\r
+                       set_state(PART:icon_name, "dim", 0.0); \\r
+               } \\r
+       }\r
+\r
+#define TOOLBAR_ITEM_BUTTON(name, x, y) \\r
+       TOOLBAR_ITEM_BUTTON_WITH_BG(name, x, y, MAIN_W, MAIN_H)\r
+\r
+#define TOOLBAR_ITEM_ICON(name, x, y, w, h, img_normal, img_press) \\r
+       TOOLBAR_ITEM_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H, img_normal, img_press)\r
+\r
+#define TOOLBAR_ITEM_SWALLOW_ICON(name, x, y, w, h) \\r
+       TOOLBAR_ITEM_SWALLOW_ICON_WITH_BG(name, x, y, w, h, MAIN_W, MAIN_H)\r
+\r
+#endif /*__H_EDC_CAM_TOOLBAR_LAYOUT_INC_EDC_H__*/\r
+//end files\r
+\r
diff --git a/edc/cam_utils.edc b/edc/cam_utils.edc
new file mode 100644 (file)
index 0000000..25fb440
--- /dev/null
@@ -0,0 +1,227 @@
+/*
+ * 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 "cam_funcs.edc"
+#include "../include/edc_image_name.h"
+
+#define CAM_FOCUS_IMG "CAMERA_FOCUS_IMG"
+
+images {
+       image: FOCUS_GUIDE_NOTREADY_IMAGE COMP;
+       image: FOCUS_GUIDE_FOCUSED_IMAGE COMP;
+       image: FOCUS_GUIDE_FAILED_IMAGE COMP;
+       image: SHOTTING_MODE_POPUP_BG_IMAGE COMP;
+       image: TIMER_ICON_BG_IMAGE COMP;
+}
+
+styles {
+       style {
+               name: "textblock_style";
+               base: "font=system_content  font_size=34 align=center valign=top color=#ffffff  wrap=word";
+               tag:  "br"        "  \n";
+       }
+}
+
+collections {
+       group { name: "focus_image";
+               min: CAMERA_FOCUS_W CAMERA_FOCUS_H;
+               max: CAMERA_FOCUS_W CAMERA_FOCUS_H;
+               parts{
+                       part {
+                               name: CAM_FOCUS_IMG;
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1 { relative: 0.0 0.0; }
+                                       rel2 { relative: 1.0 1.0; }
+                               }
+                               description {
+                                       state: "notready" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image{ normal: FOCUS_GUIDE_NOTREADY_IMAGE; }
+                               }
+                               description {
+                                       state: "focused" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image{ normal: FOCUS_GUIDE_FOCUSED_IMAGE; }
+                               }
+                               description {
+                                       state: "failed" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       image{ normal: FOCUS_GUIDE_FAILED_IMAGE; }
+                               }
+                       }
+               }
+
+               programs {
+                       program { name: "focus,hide";
+                               source: "program";
+                               signal: "focus,hide";
+                               action: STATE_SET "default" 0.0;
+                               target: CAM_FOCUS_IMG;
+                       }
+                       program { name: "focus,notready";
+                               source: "program";
+                               signal: "focus,notready";
+                               action: STATE_SET "notready" 0.0;
+                               target: CAM_FOCUS_IMG;
+                       }
+                       program { name: "focus,focused";
+                               source: "program";
+                               signal: "focus,focused";
+                               action: STATE_SET "focused" 0.0;
+                               target: CAM_FOCUS_IMG;
+                       }
+                       program { name: "focus,failed";
+                               source: "program";
+                               signal: "focus,failed";
+                               action: STATE_SET "failed" 0.0;
+                               target: CAM_FOCUS_IMG;
+                       }
+               }
+       }
+
+#define PX_POPUP_BOX_X 180
+#define PX_POPUP_BOX_Y 84
+#define PX_POPUP_BOX_W 440
+#define PX_POPUP_BOX_H 242
+
+#define PX_POPUP_TEXT_Y 40
+
+#define PX_POPUP_BAR_X 40
+#define PX_POPUP_BAR_Y 182
+#define PX_POPUP_BAR_W 350
+#define PX_POPUP_BAR_H 14
+
+       group { name: "progress_popup";
+               parts {
+                       part {
+                               name: "progress_popup_bg";
+                               type: IMAGE;
+                               mouse_events: 0;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: PX_POPUP_BOX_X/MAIN_W_AUTO PX_POPUP_BOX_Y/MAIN_H_AUTO; }
+                                       rel2 { relative: (PX_POPUP_BOX_X+PX_POPUP_BOX_W)/MAIN_W_AUTO (PX_POPUP_BOX_Y+PX_POPUP_BOX_H)/MAIN_H_AUTO; }
+                                       image{ normal: SHOTTING_MODE_POPUP_BG_IMAGE; }
+                               }
+                       }
+                       part {
+                               name: "progress_popup_text";
+                               type: TEXTBLOCK;
+                               description {
+                                               state: "default" 0.0;
+                                               fixed: 1 1;
+                                               rel1 { relative: 0.0 PX_POPUP_TEXT_Y/PX_POPUP_BOX_H; to:  progress_popup_bg; }
+                                               rel2 { relative: 1.0 1.0;  to:  progress_popup_bg; }
+                                               color: FONT_COLOR;
+                                               text {
+                                                       style: "textblock_style";
+                                                       min: 0 1;
+                                               }
+                               }
+                       }
+                       //to swallow progressbar
+                       part {
+                               name: "progress_popup_bar";
+                               type: SWALLOW;
+                               description {
+                                               state: "default" 0.0;
+                                               fixed: 1 1;
+                                               rel1 { relative: PX_POPUP_BAR_X/PX_POPUP_BOX_W  PX_POPUP_BAR_Y/PX_POPUP_BOX_H;
+                                                                       to:  progress_popup_bg; }
+                                               rel2 { relative: (PX_POPUP_BAR_X+PX_POPUP_BAR_W)/PX_POPUP_BOX_W         (PX_POPUP_BAR_Y+PX_POPUP_BAR_H)/PX_POPUP_BOX_H;
+                                                                       to:  progress_popup_bg; }
+                               }
+                       }
+               }
+       }
+
+#define TIMER_ICON_W 188
+#define TIMER_ICON_H 158
+       group{ name: "timer_icon_landscape";
+
+               parts{
+                       part {
+                               name: "icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - TIMER_ICON_W/MAIN_W)/2 (1 - TIMER_ICON_H/MAIN_H)/2; offset: 0 0; }
+                                       rel2 { relative: (1 + TIMER_ICON_W/MAIN_W)/2 (1 + TIMER_ICON_H/MAIN_H)/2; offset: -1 -1; }
+                                       image { normal: TIMER_ICON_BG_IMAGE; }
+                               }
+                       }
+                       part {
+                               name: "text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; to:  "icon"; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;  to:  "icon"; }
+                                       color: COLOR_1;
+                                       text {
+                                               font: FONT_NAME;
+                                               size: 60;
+                                               min: 1 1;
+                                               align: 0.8 0.8;
+                                       }
+                               }
+                       }
+               }
+       }
+
+       group{ name: "timer_icon_portrait";
+
+               parts{
+                       part {
+                               name: "icon";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - TIMER_ICON_W/MAIN_H)/2 (1 - TIMER_ICON_H/MAIN_W)/2; offset: 0 0; }
+                                       rel2 { relative: (1 + TIMER_ICON_W/MAIN_H)/2 (1 + TIMER_ICON_H/MAIN_W)/2; offset: -1 -1; }
+                                       image { normal: TIMER_ICON_BG_IMAGE; }
+                               }
+                       }
+                       part {
+                               name: "text";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 0.0; offset: 0 0; to:      "icon"; }
+                                       rel2 { relative: 1.0 1.0; offset: -1 -1;  to:  "icon"; }
+                                       color: COLOR_1;
+                                       text {
+                                               font: FONT_NAME;
+                                               size: 60;
+                                               min: 1 1;
+                                               align: 0.8 0.8;
+                                       }
+                               }
+                       }
+               }
+       }
+}
+
diff --git a/edc/cam_zoom_layout.edc b/edc/cam_zoom_layout.edc
new file mode 100644 (file)
index 0000000..a7f2560
--- /dev/null
@@ -0,0 +1,131 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "../include/edc_string.h"
+
+#define ZOOM_BG_X      (1280 - 250)
+#define ZOOM_BG_Y      89
+#define ZOOM_BG_W      96
+#define ZOOM_BG_H      542
+
+#define ZOOM_TEXT_X    0
+#define ZOOM_TEXT_Y    26
+#define ZOOM_TEXT_W    96
+#define ZOOM_TEXT_H    44
+
+#define ZOOM_SLIDE_X   0
+#define ZOOM_SLIDE_Y   104
+
+
+images {
+       image: ZOOM_BG_IMAGE COMP;
+       image: ZOOM_BG_VER_IMAGE COMP;
+}
+
+collections {
+       group {
+               name: "main";
+
+               parts {
+                       part {
+                               name: "bg_image";
+                               type: IMAGE;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: ZOOM_BG_X/MAIN_W ZOOM_BG_Y/MAIN_H;}
+                                       rel2 { relative: (ZOOM_BG_X+ZOOM_BG_W)/MAIN_W (ZOOM_BG_Y+ZOOM_BG_H)/MAIN_H;}
+                                       image { normal: ZOOM_BG_IMAGE; }
+                               }
+                       }
+                       part {
+                               name: "text_min";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (ZOOM_BG_H-ZOOM_TEXT_H-ZOOM_TEXT_Y)/ZOOM_BG_H; to: "bg_image"; }
+                                       rel2 { relative: 1.0 (ZOOM_BG_H-ZOOM_TEXT_Y)/ZOOM_BG_H; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "text_max";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 ZOOM_TEXT_Y/ZOOM_BG_H; to: "bg_image"; }
+                                       rel2 { relative: 1.0 (ZOOM_TEXT_Y+ZOOM_TEXT_H)/ZOOM_BG_H; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "slider";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 ZOOM_SLIDE_Y/ZOOM_BG_H; to: "bg_image"; }
+                                       rel2 { relative: 1.0 (ZOOM_BG_H-ZOOM_SLIDE_Y)/ZOOM_BG_H; to: "bg_image"; }
+                               }
+                       }
+                       programs {
+                               program {
+                                       name:"set.zoom.default";
+                                       source: "prog";
+                                       signal: "set.zoom.default";
+                                       script: {
+                                               set_state(PART:"bg_image", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.landscape_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.landscape_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "landscape_inverse", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait_inverse", 0.0);
+                                       }
+                               }
+                       }
+               }
+       }
+}
+//end files
diff --git a/edc/cam_zoom_layout_inverse.edc b/edc/cam_zoom_layout_inverse.edc
new file mode 100644 (file)
index 0000000..0499c99
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "../include/edc_string.h"
+
+#define ZOOM_BG_X      (1280 - 250)
+#define ZOOM_BG_Y      89
+
+#define ZOOM_BG_W      96
+#define ZOOM_BG_H      542
+
+#define ZOOM_TEXT_X    0
+#define ZOOM_TEXT_Y    26
+#define ZOOM_TEXT_W    96
+#define ZOOM_TEXT_H    44
+
+#define ZOOM_SLIDE_X   0
+#define ZOOM_SLIDE_Y   104
+
+
+images {
+       image: ZOOM_BG_IMAGE COMP;
+       image: ZOOM_BG_VER_IMAGE COMP;
+}
+
+collections {
+       group {
+               name: "main";
+
+               parts {
+                       part {
+                               name: "bg_image";
+                               type: IMAGE;
+                               description {
+                                       state: "landscape_inverse" 0.0;
+                                       rel1 { relative: (1 - (ZOOM_BG_X+ZOOM_BG_W)/MAIN_W) (1 - (ZOOM_BG_Y+ZOOM_BG_H)/MAIN_H) ; offset: 0 0; }
+                                       rel2 { relative: (1 - ZOOM_BG_X/MAIN_W) (1 - ZOOM_BG_Y/MAIN_H); offset: -1 -1; }
+                                       image { normal: ZOOM_BG_IMAGE; }
+
+                               }
+                       }
+                       part {
+                               name: "text_min";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (1 - (ZOOM_BG_H-ZOOM_TEXT_Y)/ZOOM_BG_H); to: "bg_image"; }
+                                       rel2 { relative: 1.0 (1 - (ZOOM_BG_H-ZOOM_TEXT_H-ZOOM_TEXT_Y)/ZOOM_BG_H); to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "text_max";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (1.0 - (ZOOM_TEXT_Y+ZOOM_TEXT_H)/ZOOM_BG_H); to: "bg_image"; }
+                                       rel2 { relative: 1.0 (1.0 - ZOOM_TEXT_Y/ZOOM_BG_H); to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "slider";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: 0.0 (1.0 - (ZOOM_BG_H-ZOOM_SLIDE_Y)/ZOOM_BG_H); to: "bg_image"; }
+                                       rel2 { relative: 1.0 (1.0 - ZOOM_SLIDE_Y/ZOOM_BG_H); to: "bg_image"; }
+                               }
+                       }
+                       programs {
+                               program {
+                                       name:"set.zoom.default";
+                                       source: "prog";
+                                       signal: "set.zoom.default";
+                                       script: {
+                                               set_state(PART:"bg_image", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.landscape_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.landscape_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "landscape_inverse", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait_inverse", 0.0);
+                                       }
+                               }
+                       }
+               }
+       }
+}
+//end files
diff --git a/edc/cam_zoom_layout_vertical.edc b/edc/cam_zoom_layout_vertical.edc
new file mode 100644 (file)
index 0000000..2c68582
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "../include/edc_string.h"
+
+#define ZOOM_BG_X      (1280 - 250)
+#define ZOOM_BG_Y      89
+
+#define ZOOM_BG_W      96
+#define ZOOM_BG_H      542
+
+#define ZOOM_TEXT_X    0
+#define ZOOM_TEXT_Y    26
+#define ZOOM_TEXT_W    96
+#define ZOOM_TEXT_H    44
+
+#define ZOOM_SLIDE_X   0
+#define ZOOM_SLIDE_Y   104
+
+
+images {
+       image: ZOOM_BG_IMAGE COMP;
+       image: ZOOM_BG_VER_IMAGE COMP;
+}
+
+collections {
+       group {
+               name: "main";
+
+               parts {
+                       part {
+                               name: "bg_image";
+                               type: IMAGE;
+                               description {
+                                       state: "portrait" 0.0;
+                                       rel1 { relative: (1 - (ZOOM_BG_Y+ZOOM_BG_H)/MAIN_H) ZOOM_BG_X/MAIN_W ; }
+                                       rel2 { relative: (1 - ZOOM_BG_Y/MAIN_H) (ZOOM_BG_X+ZOOM_BG_W)/MAIN_W;}
+                                       image { normal: ZOOM_BG_VER_IMAGE; }
+
+                               }
+                       }
+                       part {
+                               name: "text_min";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (ZOOM_BG_H-ZOOM_TEXT_Y)/ZOOM_BG_H) 0.0; to: "bg_image"; }
+                                       rel2 { relative: (1 - (ZOOM_BG_H-ZOOM_TEXT_H-ZOOM_TEXT_Y)/ZOOM_BG_H) 1.0; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "text_max";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (ZOOM_TEXT_Y+ZOOM_TEXT_H)/ZOOM_BG_H) 0.0; to: "bg_image"; }
+                                       rel2 { relative: (1 - ZOOM_TEXT_Y/ZOOM_BG_H) 1.0 ; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "slider";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (1 - (ZOOM_BG_H-ZOOM_SLIDE_Y)/ZOOM_BG_H) 0.0 ; to: "bg_image"; }
+                                       rel2 { relative: (1 - ZOOM_SLIDE_Y/ZOOM_BG_H) 1.0; to: "bg_image"; }
+                               }
+                       }
+                       programs {
+                               program {
+                                       name:"set.zoom.default";
+                                       source: "prog";
+                                       signal: "set.zoom.default";
+                                       script: {
+                                               set_state(PART:"bg_image", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.landscape_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.landscape_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "landscape_inverse", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait_inverse", 0.0);
+                                       }
+                               }
+                       }
+               }
+       }
+}
+//end files
diff --git a/edc/cam_zoom_layout_vertical_inverse.edc b/edc/cam_zoom_layout_vertical_inverse.edc
new file mode 100644 (file)
index 0000000..e258c20
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "../include/edc_string.h"
+
+#define ZOOM_BG_X      (1280 - 250)
+#define ZOOM_BG_Y      89
+
+#define ZOOM_BG_W      96
+#define ZOOM_BG_H      542
+
+#define ZOOM_TEXT_X    0
+#define ZOOM_TEXT_Y    26
+#define ZOOM_TEXT_W    96
+#define ZOOM_TEXT_H    44
+
+#define ZOOM_SLIDE_X   0
+#define ZOOM_SLIDE_Y   104
+
+
+images {
+       image: ZOOM_BG_IMAGE COMP;
+       image: ZOOM_BG_VER_IMAGE COMP;
+}
+
+collections {
+       group {
+               name: "main";
+
+               parts {
+                       part {
+                               name: "bg_image";
+                               type: IMAGE;
+                               description {
+                                       state: "portrait_inverse" 0.0;
+                                       rel1 { relative: ZOOM_BG_Y/MAIN_H (1 - (ZOOM_BG_X+ZOOM_BG_W)/MAIN_W); offset: 0 0; }
+                                       rel2 { relative: (ZOOM_BG_Y+ZOOM_BG_H)/MAIN_H (1 - ZOOM_BG_X/MAIN_W); offset: -1 -1; }
+                                       image { normal: ZOOM_BG_VER_IMAGE; }
+
+                               }
+                       }
+                       part {
+                               name: "text_min";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: (ZOOM_BG_H-ZOOM_TEXT_H-ZOOM_TEXT_Y)/ZOOM_BG_H 0.0 ; to: "bg_image"; }
+                                       rel2 { relative: (ZOOM_BG_H-ZOOM_TEXT_Y)/ZOOM_BG_H 1.0; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "text_max";
+                               type: TEXT;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: ZOOM_TEXT_Y/ZOOM_BG_H 0.0; to: "bg_image"; }
+                                       rel2 { relative: (ZOOM_TEXT_Y+ZOOM_TEXT_H)/ZOOM_BG_H 1.0; to: "bg_image"; }
+                                       text {
+                                               font : FONT_NAME;
+                                               size : 40;
+                                               align: 0.5 0.5;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "slider";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1 { relative: ZOOM_SLIDE_Y/ZOOM_BG_H 0.0; to: "bg_image"; }
+                                       rel2 { relative: (ZOOM_BG_H-ZOOM_SLIDE_Y)/ZOOM_BG_H 1.0; to: "bg_image"; }
+                               }
+                       }
+                       programs {
+                               program {
+                                       name:"set.zoom.default";
+                                       source: "prog";
+                                       signal: "set.zoom.default";
+                                       script: {
+                                               set_state(PART:"bg_image", "default", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.landscape_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.landscape_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "landscape_inverse", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait", 0.0);
+                                       }
+                               }
+                               program {
+                                       name:"set.zoom.portrait_inverse";
+                                       source: "prog";
+                                       signal: "set.zoom.portrait_inverse";
+                                       script: {
+                                               set_state(PART:"bg_image", "portrait_inverse", 0.0);
+                                       }
+                               }
+                       }
+               }
+       }
+}
+//end files
diff --git a/edc/style_ctxpopup_camera.edc b/edc/style_ctxpopup_camera.edc
new file mode 100644 (file)
index 0000000..9c6acee
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+
+
+
+collections {
+
+       group { name: "camera_ev";
+
+               parts {
+                       part {
+                               name: "elm.swallow.title";
+                               type:  TEXT;
+                               mouse_events:  0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 1 58;
+                                       max: 999999 36;
+                                       fixed: 0 1;
+                                       align: 0.5 0;
+                                       text {
+                                               font: "SLP:style=Helveca";
+                                               size: 30;
+                                               align: 0.5 0.5;
+                                               min: 1 1;
+                                               text: "Shooting mode";
+                                       }
+                               }
+                       }
+                       part {
+                               name: "title_line";
+                               type: RECT;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       min: 1 1;
+                                       max: 999999 1;
+                                       rel1 {to:"elm.swallow.title"; relative: 0 1;}
+                                       align: 0.5 0;
+                                       fixed: 0 1;
+                               }
+                       }
+                       part {
+                               name: "left_top_padding";
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: 8 8;
+                                       max: 8 8;
+                                       rel1 {to:"title_line"; relative: 0 1;}
+                                       align: 0 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.slider";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       color:0 0 0 255;
+                                       rel1 { to: "left_top_padding";  relative: 1 1;}
+                                       rel2 { to: "right_bottom_padding"; relative: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "right_bottom_padding";
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: 8 8;
+                                       max: 8 8;
+                                       align: 1 1;
+                                       visible: 0;
+                               }
+                       }
+               }
+       }
+
+
+       group { name: "camera_guide_screen";
+
+               parts {
+                       part {
+                               name: "left_top_padding";
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: 5 5;
+                                       max: 5 5;
+                                       align: 0 0;
+                                       visible: 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.txt";
+                               type: SWALLOW;
+                               scale: 1;
+                               mouse_events: 0;
+                               description {
+                                       rel1 { to: "left_top_padding";  relative: 1 1;}
+                                       rel2 { to: "right_bottom_padding"; relative: 0 0;}
+                               }
+                       }
+                       part {
+                               name: "right_bottom_padding";
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       min: 5 5;
+                                       max: 5 5;
+                                       align: 1 1;
+                                       visible: 0;
+                               }
+                       }
+               }
+       }
+}
+
diff --git a/edc/style_ctxpopup_camera_with_radio.edc b/edc/style_ctxpopup_camera_with_radio.edc
new file mode 100644 (file)
index 0000000..c3f8ba9
--- /dev/null
@@ -0,0 +1,2257 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "../include/edc_string.h"
+#include "cam_funcs.edc"
+#define CONTROLBAR_SMALL_H 72 //65
+//Ctxpopup Camera Shooting mode
+
+//Content Layout
+collections {
+group {
+       name:"camera/layout";
+       parts {
+               part {
+                       name: "elm.text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 60;
+                               max: 999999 60;
+                               fixed: 0 1;
+                               align: 0.5 0;
+                               text {
+                                       font: FONT_NAME;
+                                       size:     30;
+                                       align:    0.036 0.5;
+                                       min: 1 1;
+                                       text: "Shooting mode";
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.box";
+                       type: SWALLOW;
+                       description {
+                               rel1 { to: "elm.text"; relative: 0 1; }
+                               rel2 { offset: -1 -5;}
+                       }
+               }
+       }
+}
+
+group {
+       name:"camera/layout/setting";
+       parts {
+               part {
+                       name: "elm.text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 60;
+                               max: 999999 60;
+                               fixed: 0 1;
+                               align: 0.5 0;
+                               text {
+                                       font: FONT_NAME;
+                                       size:     30;
+                                       align:    0.033 0.5;
+                                       min: 1 1;
+                                       text: "Shooting mode";
+                               }
+                       }
+               }
+               part {
+                       name: "elm.swallow.box";
+                       type: SWALLOW;
+                       description {
+                               rel1 { to: "elm.text"; relative: 0 1; }
+                               rel2 { offset: -1 -5;}
+                       }
+               }
+       }
+}
+
+
+#define MENU(part_name, relx1, rely1, relx2, rely2, to_part)  \
+       part { \
+               name: "row."part_name; \
+               type: SWALLOW; \
+               scale: 1; \
+               mouse_events: 1; \
+               description { \
+                       state: "default" 0.0;   \
+                       visible: 1; \
+                       min: (180) (180); \
+                       max: (180) (180); \
+                       align: 0.5 0.5; \
+                       aspect: 1.0 1.0; \
+                       fixed: 1 1; \
+                       rel1 { relative: (relx1/720) (rely1/1280);  to:to_part;} \
+                       rel2 { relative: (relx2/720) (rely2/1280);  to:to_part;} \
+               } \
+       } \
+
+//Item Layout
+group {
+       name: "camera/item";
+       script {
+               public disabled_v;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       scale: 1;
+                       mouse_events: 0;
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               color: 0 0 0 0;
+                               min: 160 103;
+                               max: 550 103;
+                       }
+               }
+               part {
+                       name: "seprator";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               min: 1 1;
+                               max: 999999 1;
+                               fixed: 0 1;
+                               color: 52 55 55 255;
+                               align: 0.5 0;
+                               rel1 { offset: 4 0; }
+                               rel2 { offset: -5 -1; }
+                       }
+               }
+               part {
+                       name: "event_blocker";
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "check_left_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 15 50;
+                               max: 15 50;
+                               align: 0 0;
+                               fixed: 1 1;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.radio";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 32 32;
+                               max: 32 32;
+                               fixed: 1 1;
+                               align: 0 0.5;
+                               rel1 { to:"check_left_padding"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "icon_left_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 50;
+                               max: 1 50;
+                               align: 0 0;
+                               fixed: 1 1;
+                               visible: 0;
+                               rel1 { to_x: "elm.swallow.radio"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 64 64;
+                               max: 64 64;
+                               align: 0 0.5;
+                               aspect: 1.0 1.0;
+                               rel1 { to:"icon_left_padding"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "icon_right_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 50;
+                               max: 8 50;
+                               align: 0 0.5;
+                               fixed: 1 1;
+                               visible: 0;
+                               rel1 { to:"elm.swallow.icon"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 200 20;
+                               max: 200 50;
+                               fixed: 0 1;
+                               align: 0.5 0.5;
+                               rel1 {relative: 1.0 0.0; to_x: "icon_right_padding";}
+                               rel2 {relative: 1.0 1.0; }
+                               color: 255 255 255 255;
+                               text {
+                                       font: FONT_NAME;
+                                       size:     30;
+                                       align:    0.0 0.5;
+                                       min: 0 0;
+                               }
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               color: 255 255 0 255;
+                       }
+               }
+               part {
+                       name: "elm.title_text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 20;
+                               max: 999999 50;
+                               fixed: 0 1;
+                               //align: 0.5 0.5;
+                               rel1 {relative: 1.0 0.0; to_x: "check_left_padding";}
+                               rel2 {relative: 1.0 1.0; }
+                               color: 255 255 255 255;
+                               text {
+                                       font: FONT_NAME;
+                                       size:     30;
+                                       align:    0.0 0.5;
+                                       min: 1 1;
+                               }
+                       }
+               }
+               part {
+                       name: "over1";
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit:  "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "over2";
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               color: 255 255 255 255;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name:   "item_unclick3";
+                       signal: "mouse,up,1";
+                       source: "over1";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       after: "disable_text";
+               }
+               program {
+                       name: "disable_text";
+                       script {
+                               set_state(PART:"elm.text", "disabled", 0.0);
+                               set_int( disabled_v, 1 );
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       after: "enable_text";
+               }
+               program {
+                       name: "enable_text";
+                       script {
+                               set_state(PART:"elm.text", "enabled", 0.0);
+                               set_int( disabled_v, 0 );
+                       }
+               }
+               program {
+                       name:   "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       script {
+                               if(!get_int( disabled_v)) {
+                                       set_state(PART:"elm.text", "clicked", 0.0);
+                                       emit("elm.action.mouse.down", "");
+                               }
+                       }
+               }
+               program {
+                       name:   "button_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       script {
+                               if(!get_int( disabled_v)) {
+                                       set_state(PART:"elm.text", "default", 0.0);
+                                       emit("elm.action.mouse.clicked", "");
+                               }
+                       }
+               }
+
+       }
+       program {
+               name:   "button_unclick";
+               signal: "mouse,up,1";
+               source: "over2";
+               script {
+                       if(!get_int(disabled_v)) {
+                               set_state(PART:"elm.text", "default", 0.0);
+                       }
+               }
+       }
+}
+
+//setting Item Layout
+group {
+       name: "camera/item/setting";
+       script {
+               public disabled_v;
+       }
+       parts {
+               part {
+                       name: "bg";
+                       scale: 1;
+                       mouse_events: 0;
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 1;
+                               color: 0 0 0 0;
+                               min: 400 103;
+                               max: 400 103;
+                       }
+               }
+               part {
+                       name: "seprator";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               min: 1 1;
+                               max: 999999 1;
+                               fixed: 0 1;
+                               color: 52 55 55 255;
+                               align: 0.5 0;
+                               rel1 { offset: 4 0; }
+                               rel2 { offset: -5 -1; }
+                       }
+               }
+               part {
+                       name: "event_blocker";
+                       mouse_events: 1;
+                       description {
+                               state: "default" 0.0;
+                       }
+               }
+               part {
+                       name: "check_left_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 15 50;
+                               max: 15 50;
+                               align: 0 0;
+                               fixed: 1 1;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "elm.swallow.radio";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 32 32;
+                               max: 32 32;
+                               fixed: 1 1;
+                               align: 0 0.5;
+                               rel1 { to:"check_left_padding"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "icon_left_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 50;
+                               max: 1 50;
+                               align: 0 0;
+                               fixed: 1 1;
+                               visible: 0;
+                               rel1 { to_x: "elm.swallow.radio"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "elm.swallow.icon";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 64 64;
+                               max: 64 64;
+                               align: 0 0.5;
+                               aspect: 1.0 1.0;
+                               rel1 { to:"icon_left_padding"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "icon_right_padding";
+                       type: RECT;
+                       scale: 1;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                               min: 8 50;
+                               max: 8 50;
+                               align: 0 0.5;
+                               fixed: 1 1;
+                               visible: 0;
+                               rel1 { to:"elm.swallow.icon"; relative: 1 0; }
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 200 20;
+                               max: 200 50;
+                               fixed: 0 1;
+                               align: 0.5 0.5;
+                               rel1 {relative: 1.0 0.0; to_x: "icon_right_padding";}
+                               rel2 {relative: 1.0 1.0; }
+                               color: 255 255 255 255;
+                               text {
+                                       font:FONT_NAME;
+                                       size:     30;
+                                       align:    0.0 0.5;
+                                       min: 0 0;
+                               }
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               inherit: "default" 0.0;
+                               color: 255 255 0 255;
+                       }
+               }
+               part {
+                       name: "elm.title_text";
+                       type:  TEXT;
+                       mouse_events:  0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: 1 60;
+                               max: 999999 60;
+                               fixed: 0 1;
+                               //align: 0.5 0.5;
+                               rel1 {relative: 1.0 0.0; to_x: "check_left_padding";}
+                               rel2 {relative: 1.0 1.0; }
+                               color: 255 255 255 255;
+                               text {
+                                       font: FONT_NAME;
+                                       size:     30;
+                                       align:    0.0 0.5;
+                                       min: 1 1;
+                               }
+                       }
+               }
+               part {
+                       name: "over1";
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       ignore_flags: ON_HOLD;
+                       description {
+                               state: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit:  "default" 0.0;
+                               visible: 0;
+                       }
+               }
+               part {
+                       name: "over2";
+                       mouse_events: 1;
+                       repeat_events: 1;
+                       description {
+                               state: "default" 0.0;
+                               color: 255 255 255 0;
+                       }
+                       description {
+                               state: "clicked" 0.0;
+                               color: 255 255 255 255;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name:   "item_unclick3";
+                       signal: "mouse,up,1";
+                       source: "over1";
+                       action: SIGNAL_EMIT "elm,action,click" "";
+               }
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       after: "disable_text";
+               }
+               program {
+                       name: "disable_text";
+                       script {
+                               set_state(PART:"elm.text", "disabled", 0.0);
+                               set_int( disabled_v, 1 );
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       after: "enable_text";
+               }
+               program {
+                       name: "enable_text";
+                       script {
+                               set_state(PART:"elm.text", "enabled", 0.0);
+                               set_int( disabled_v, 0 );
+                       }
+               }
+               program {
+                       name:   "button_click";
+                       signal: "mouse,down,1";
+                       source: "over2";
+                       script {
+                               if(!get_int( disabled_v)) {
+                                       set_state(PART:"elm.text", "clicked", 0.0);
+                                       emit("elm.action.mouse.down", "");
+                               }
+                       }
+               }
+               program {
+                       name:   "button_clicked";
+                       signal: "mouse,clicked,1";
+                       source: "over2";
+                       script {
+                               if(!get_int( disabled_v)) {
+                                       set_state(PART:"elm.text", "default", 0.0);
+                                       emit("elm.action.mouse.clicked", "");
+                               }
+                       }
+               }
+       }
+       program {
+               name:   "button_unclick";
+               signal: "mouse,up,1";
+               source: "over2";
+               script {
+                       if(!get_int(disabled_v)) {
+                               set_state(PART:"elm.text", "default", 0.0);
+                       }
+               }
+       }
+}
+
+//Radio Button Style
+styles {
+       style {
+               name: "radio_label_textblock_style";
+               base: "font=SLP:style=Medium font_size=14 align=left color=#ffffff wrap=char";
+               tag: "br" "\n";
+               tag: "hilight" "+ font=SLP:style=Bold";
+               tag: "b" "+ font=SLP:style=Bold";
+               tag: "whitecolor" "+ color=#ffffff";
+               tag: "tab" "\t";
+       }
+       style {
+               name: "radio_label_textblock_disabled_style";
+               base: "font=SLP:style=Medium font_size=14 align=left color=#888888 color3=#000000 wrap=char";
+               tag: "br" "\n";
+               tag: "hilight" "+ font=SLP:style=Bold";
+               tag: "b" "+ font=SLP:style=Bold";
+               tag: "whitecolor" "+ color=#ffffff";
+               tag: "tab" "\t";
+       }
+}
+
+group {
+       name: "elm/radio/base/beat_winset_test/camera";
+       images {
+               image: SETTING_POPUP_RADIO_BUTTON_OFF_IMAGE COMP;
+               image: SETTING_POPUP_RADIO_BUTTON_ON_IMAGE COMP;
+       }
+       parts {
+               part { name: "bg";
+                       mouse_events: 0;
+                       scale: 1;
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               rel1.offset: 0 0;
+                               rel2.relative: 0.0 1.0;
+                               rel2.offset: 0 0;
+                               fixed: 1 0;
+                               align: 0.0 0.5;
+                               min: 60 60;
+                               max: 60 60;
+                               color: 0 0 0 0;
+                       }
+               }
+               part {
+                       name: "radio";
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               rel1 {
+                                       to: "bg";
+                                       offset: 0 0;
+                               }
+                               rel2 {
+                                       to: "bg";
+                                       offset: 0 0;
+                               }
+                               visible: 1;
+                               color: 255 255 255 255;
+                               image.normal: SETTING_POPUP_RADIO_BUTTON_OFF_IMAGE;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: SETTING_POPUP_RADIO_BUTTON_ON_IMAGE;
+
+                       }
+                       description {
+                               state: "pressed" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: SETTING_POPUP_RADIO_BUTTON_ON_IMAGE;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: SETTING_POPUP_RADIO_BUTTON_OFF_IMAGE;
+                       }
+                       description {
+                               state: "disabled_visible" 0.0;
+                               inherit: "default" 0.0;
+                               image.normal: SETTING_POPUP_RADIO_BUTTON_OFF_IMAGE;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 0;
+                               visible: 0;
+                               color: 255 255 255 255;
+                               align: 0.0 0.5;
+                               rel1.to_x: "bg";
+                               rel1.relative: 1.0 0.0;
+                               rel1.offset: 1 1;
+                               rel2.to_x: "bg";
+                               rel2.relative: 1.0 1.0;
+                               rel2.offset: 2 -2;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 1;
+                               aspect: 1.0 1.0;
+                               aspect_preference: VERTICAL;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                               color: 128 128 128 128;
+                       }
+                       description {
+                               state: "disabled_visible" 0.0;
+                               inherit: "default" 0.0;
+                               color: 128 128 128 128;
+                               fixed: 1 1;
+                               visible: 1;
+                               aspect: 1.0 1.0;
+                       }
+               }
+               part {
+                       name: "elm.text";
+                       type: TEXTBLOCK;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                               fixed: 0 1;
+                               rel1 { relative: 1.0 0.5; offset: 1 1; to_x: "elm.swallow.content"; }
+                               rel2 { relative: 1.0 0.5; offset: -2 -2; }
+                               color: 255 255 255 255;
+                               align: 0.0 0.5;
+                               text {
+                                       style: "radio_label_textblock_style";
+                                       min: 0 0;
+                               }
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               text.min: 1 1;
+                       }
+                       description {
+                               state: "disabled" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "disabled_visible" 0.0;
+                               inherit: "default" 0.0;
+                               visible: 1;
+                               text {
+                                       style: "radio_label_textblock_disabled_style";
+                                       min: 1 1;
+                               }
+                       }
+               }
+               part {
+                       name: "events";
+                       type: RECT;
+                       ignore_flags: ON_HOLD;
+                       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;
+                               color: 0 0 0 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "click";
+                       signal: "mouse,up,1";
+                       source: "events";
+                       action: SIGNAL_EMIT "elm,action,radio,toggle" "";
+               }
+               program {
+                       name: "bg_normal";
+                       script {
+                               set_state(PART:"bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "mouseout";
+                       signal: "mouse,out";
+                       source: "events";
+                       after: "bg_radio_normal";
+               }
+               program {
+                       name: "bg_radio_normal";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"radio", st, 30, vl);
+                               if (!strcmp(st, "pressed"))
+                                       set_state(PART:"radio", "default", 0.0);
+                               set_state(PART:"bg", "default", 0.0);
+                       }
+               }
+               program {
+                       name: "pressed";
+                       signal: "mouse,down,1";
+                       source: "events";
+                       script {
+                               new st[31];
+                               new Float:vl;
+                               get_state(PART:"radio", st, 30, vl);
+                               if (!strcmp(st, "default"))
+                                       set_state(PART:"radio", "pressed", 0.0);
+                       }
+               }
+               program {
+                       name: "radio_on";
+                       signal: "elm,state,radio,on";
+                       source: "elm";
+                       action:  STATE_SET "visible" 0.0;
+                       target: "radio";
+               }
+               program {
+                       name: "radio_off";
+                       signal: "elm,state,radio,off";
+                       source: "elm";
+                       action:  STATE_SET "default" 0.0;
+                       target: "radio";
+               }
+               program {
+                       name: "text_show";
+                       signal: "elm,state,text,visible";
+                       source: "elm";
+                       action:  STATE_SET "visible" 0.0;
+                       target: "elm.text";
+               }
+               program {
+                       name: "text_hide";
+                       signal: "elm,state,text,hidden";
+                       source: "elm";
+                       action:  STATE_SET "default" 0.0;
+                       target: "elm.text";
+               }
+               program {
+                       name: "icon_show";
+                       signal: "elm,state,icon,visible";
+                       source: "elm";
+                       action:  STATE_SET "visible" 0.0;
+                       target: "elm.swallow.content";
+               }
+               program {
+                       name: "icon_hide";
+                       signal: "elm,state,icon,hidden";
+                       source: "elm";
+                       action:  STATE_SET "default" 0.0;
+                       target: "elm.swallow.content";
+               }
+               program {
+                       name: "disable";
+                       signal: "elm,state,disabled";
+                       source: "elm";
+                       action: STATE_SET "disabled" 0.0;
+                       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);
+
+                               get_state(PART:"elm.swallow.content", st, 30, vl);
+                               if (!strcmp(st, "visible"))
+                                       set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+                               else
+                                       set_state(PART:"elm.swallow.content", "disabled", 0.0);
+
+                               get_state(PART:"radio", st, 30, vl);
+                               if (!strcmp(st, "visible"))
+                                       set_state(PART:"radio", "disabled_visible", 0.0);
+                               else
+                                       set_state(PART:"radio", "disabled", 0.0);
+                       }
+               }
+               program {
+                       name: "enable";
+                       signal: "elm,state,enabled";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       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);
+
+                               get_state(PART:"elm.swallow.content", st, 30, vl);
+                               if (!strcmp(st, "disabled_visible"))
+                                       set_state(PART:"elm.swallow.content", "visible", 0.0);
+                               else
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+
+                               get_state(PART:"radio", st, 30, vl);
+                               if (!strcmp(st, "disabled_visible"))
+                                       set_state(PART:"radio", "visible", 0.0);
+                               else
+                                       set_state(PART:"elm.swallow.content", "default", 0.0);
+                       }
+               }
+       }
+}
+
+//Ctxpopup Style
+#define CTXPOPUP_CAMERA_FRAME_WIDTH_MAX 720
+#define CTXPOPUP_CAMERA_FRAME_HEIGHT_MAX 1280
+#define CTXPOPUP_CAMERA_CONTENT_WIDTH_MAX 720
+#define CTXPOPUP_CAMERA_CONTENT_HEIGHT_MAX 1280
+/*#define CTXPOPUP_CAMERA_ARROW_SIZE 28        */
+
+group {
+       name: "elm/scroller/base/beat_winset_test/camera";
+       script {
+               public sbvis_v, sbvis_h, sbalways_v, sbalways_h, sbvis_timer;
+               public timer0(val) {
+                       new v;
+               v = get_int(sbvis_v);
+                       if (v) {
+                               v = get_int(sbalways_v);
+                               if(!v) {
+                                       emit("do-hide-vbar", "");
+                               set_int(sbvis_v, 0);
+                       }
+               }
+                       v = get_int(sbvis_h);
+                       if (v) {
+                               v = get_int(sbalways_h);
+                               if(!v) {
+                                       emit("do-hide-hbar", "");
+                                       set_int(sbvis_h, 0);
+                               }
+                       }
+               set_int(sbvis_timer, 0);
+               return 0;
+               }
+       }
+
+       parts {
+               part {
+                       name: "clipper";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               max: CTXPOPUP_CAMERA_CONTENT_WIDTH_MAX CTXPOPUP_CAMERA_CONTENT_HEIGHT_MAX;
+                       }
+               }
+               part {
+                       name: "elm.swallow.content";
+                       clip_to: "clipper";
+                       type: SWALLOW;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               max: CTXPOPUP_CAMERA_CONTENT_WIDTH_MAX CTXPOPUP_CAMERA_CONTENT_HEIGHT_MAX;
+                               align: 0.5 0.5;
+                       }
+               }
+               part {
+                       name: "sb_vbar_clip_master";
+               type: RECT;
+               mouse_events: 0;
+               description {
+                       state: "default" 0.0;
+                       }
+               description {
+                       state: "hidden" 0.0;
+                               visible: 0;
+                       color: 255 255 255 0;
+               }
+               }
+               part {
+                       name: "sb_vbar_clip";
+                       clip_to:"sb_vbar_clip_master";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel2{ to:"clipper"; relative: 1.0 1.0;}
+                       }
+                       description {
+                               state: "hidden" 0.0;
+                               visible: 0;
+                               color: 255 255 255 0;
+                       }
+               }
+               part {
+                       name: "sb_vbar";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 0;
+                               align: 1.0 0.0;
+                               rel1{ to:"clipper"; relative: 1.0 0.0; }
+                               rel2{ to:"clipper"; relative: 1.0 1.0;}
+                       }
+               }
+               part {
+                       name: "elm.dragable.vbar";
+                       clip_to: "sb_vbar_clip";
+                       mouse_events: 0;
+                       scale: 1;
+                       dragable {
+                               x: 0 0 0;
+                               y: 1 1 0;
+                               confine: "sb_vbar";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               min: 14 32;
+                               rel1 {
+                                       relative: 0.5  0.5;
+                                       to: "sb_vbar";
+                               }
+                               rel2 {
+                                       relative: 0.5  0.5;
+                                       to: "sb_vbar";
+                               }
+                       }
+               }
+               part {
+                       name: "sb_hbar_clip_master";
+                       type: RECT;
+                       mouse_events: 0;
+                       description {
+                               state: "default" 0.0;
+                       }
+                       description {
+                               state: "hidden" 0.0;
+                               visible: 0;
+                               color: 255 255 255 0;
+                       }
+               }
+               part {
+                       name: "sb_hbar_clip";
+                       clip_to: "sb_hbar_clip_master";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               align: 0.0 0.0;
+                               rel2{ to:"clipper"; relative: 1.0 1.0;}
+                       }
+                       description {
+                               state: "hidden" 0.0;
+                               visible: 0;
+                               color: 255 255 255 0;
+                       }
+               }
+               part {
+                       name: "sb_hbar";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               fixed: 1 1;
+                               visible: 0;
+                               align: 0.0 1.0;
+                               rel1 {to:"clipper"; relative: 0.0 1.0;}
+                               rel2 {to:"clipper"; relative: 1.0 1.0;}
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "load";
+                       signal: "load";
+                       source: "";
+                       script {
+                               set_state(PART:"sb_vbar_clip", "hidden", 0.0);
+                               set_state(PART:"sb_hbar_clip", "hidden", 0.0);
+                               set_int(sbvis_v, 0);
+                               set_int(sbvis_h, 0);
+                               set_int(sbalways_v, 0);
+                               set_int(sbalways_h, 0);
+                               set_int(sbvis_timer, 0);
+                       }
+               }
+               program {
+                       name: "vbar_show";
+                       signal: "elm,action,show,vbar";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "sb_vbar_clip_master";
+               }
+               program {
+                       name: "vbar_hide";
+                       signal: "elm,action,hide,vbar";
+                       source: "elm";
+               action:  STATE_SET "hidden" 0.0;
+               target: "sb_vbar_clip_master";
+               }
+               program {
+                       name: "vbar_show_always";
+                       signal: "elm,action,show_always,vbar";
+                       source: "elm";
+               script {
+                       new v;
+                       v = get_int(sbvis_v);
+                       v |= get_int(sbalways_v);
+                       if (!v) {
+                       set_int(sbalways_v, 1);
+                               emit("do-show-vbar", "");
+                               set_int(sbvis_v, 1);
+                       }
+               }
+               }
+               program {
+                       name: "vbar_show_notalways";
+               signal: "elm,action,show_notalways,vbar";
+               source: "elm";
+               script {
+                       new v;
+                       v = get_int(sbalways_v);
+                       if (v) {
+                               set_int(sbalways_v, 0);
+                               v = get_int(sbvis_v);
+                               if (!v) {
+                               emit("do-hide-vbar", "");
+                               set_int(sbvis_v, 0);
+                       }
+                       }
+               }
+               }
+               program {
+                       name: "sb_vbar_show";
+                       signal: "do-show-vbar";
+                       source: "";
+                       action:  STATE_SET "default" 0.0;
+                       transition: LINEAR 1.0;
+                       target: "sb_vbar_clip";
+               }
+               program {
+                       name: "sb_vbar_hide";
+                       signal: "do-hide-vbar";
+                       source: "";
+                       action:  STATE_SET "hidden" 0.0;
+                       transition: LINEAR 1.0;
+                       target: "sb_vbar_clip";
+               }
+               program {
+                       name: "hbar_show";
+                       signal: "elm,action,show,hbar";
+                       source: "elm";
+               action:  STATE_SET "default" 0.0;
+               target: "sb_hbar_clip_master";
+               }
+               program {
+                       name: "hbar_hide";
+                       signal: "elm,action,hide,hbar";
+                       source: "elm";
+               action:  STATE_SET "hidden" 0.0;
+               target: "sb_hbar_clip_master";
+               }
+               program {
+                       name: "hbar_show_always";
+               signal: "elm,action,show_always,hbar";
+               source: "elm";
+               script {
+                       new v;
+                       v = get_int(sbvis_h);
+                       v |= get_int(sbalways_h);
+                       if (!v) {
+                               set_int(sbalways_h, 1);
+                               emit("do-show-hbar", "");
+                               set_int(sbvis_h, 1);
+                       }
+               }
+               }
+               program {
+                       name: "hbar_show_notalways";
+                       signal: "elm,action,show_notalways,hbar";
+                       source: "elm";
+                       script {
+                               new v;
+                       v = get_int(sbalways_h);
+                       if (v) {
+                               set_int(sbalways_h, 0);
+                       v = get_int(sbvis_h);
+                       if (!v) {
+                               emit("do-hide-hbar", "");
+                               set_int(sbvis_h, 0);
+                                       }
+                               }
+                       }
+               }
+               program {
+                       name: "sb_hbar_show";
+                       signal: "do-show-hbar";
+                       source: "";
+                       action:  STATE_SET "default" 0.0;
+                       transition: LINEAR 1.0;
+                       target: "sb_hbar_clip";
+               }
+               program {
+                       name: "sb_hbar_hide";
+                       signal: "do-hide-hbar";
+                       source: "";
+                       action:  STATE_SET "hidden" 0.0;
+                       transition: LINEAR 1.0;
+                       target: "sb_hbar_clip";
+               }
+               program {
+                       name: "scroll";
+                       signal: "elm,action,scroll";
+                       source: "elm";
+                       action:  STATE_SET "default" 0.0;
+                       script {
+                               new v;
+                               v = get_int(sbvis_v);
+                               v |= get_int(sbalways_v);
+                               if (!v) {
+                                       emit("do-show-vbar", "");
+                                       set_int(sbvis_v, 1);
+                               }
+                               v = get_int(sbvis_h);
+                               v |= get_int(sbalways_h);
+                               if(!v) {
+                                       emit("do-show-hbar", "");
+                                       set_int(sbvis_h, 1);
+                               }
+                               v = get_int(sbvis_timer);
+                               if (v > 0) cancel_timer(v);
+                               v = timer(2.0, "timer0", 0);
+                               set_int(sbvis_timer, v);
+                       }
+               }
+       }
+}
+
+group {
+       name: "elm/ctxpopup/bg/beat_winset_test/camera";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                       visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show";
+                       signal: "elm,state,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       target: "bg";
+               }
+               program {
+                       name: "hide";
+                       signal: "elm,state,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "bg";
+               }
+       }
+}
+
+//Ctxpopup Style
+#define CTXPOPUP_CAMERA_ARROW_SIZE 41
+#define CTXPOPUP_FRAME_CORNER_SIZE 4 4
+#define CTXPOPUP_BORDER_CORNER_SIZE 9 9
+
+
+///////////////////////////////////////////////////////////////////////////////
+group {
+       name: "elm/ctxpopup/base/beat_winset_test/camera";
+       images {
+               image: CTXPOPUP_BG_IMAGE COMP;
+       }
+       parts {
+               part {
+                       name: "ctxpopup_frame_left_top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 0 0;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_right_top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 1 0;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_left_bottom";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 0 1;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_right_bottom";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 1 1;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part { name: "arrow_area_left";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 40 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 {
+                                       relative: 0 1;
+                                       to_y: "ctxpopup_frame_left_top";
+                               }
+                               rel2 {
+                                       relative:0 0;
+                                       to:"ctxpopup_frame_left_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_right";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 40 0;
+                               fixed: 1 1;
+                               align: 0 0.5;
+                               rel1 {
+                                       relative: 1 1;
+                                       to:"ctxpopup_frame_right_top";
+                               }
+                               rel2 {
+                                       relative: 1 0;
+                                       to_y: "ctxpopup_frame_right_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_up";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 0 40;
+                               fixed: 1 1;
+                               align: 0.5 1;
+                               rel1 {
+                                       relative: 1 0;
+                                       to_x: "ctxpopup_frame_left_top";
+                               }
+                               rel2 {
+                                       relative: 0 0;
+                                       to:"ctxpopup_frame_right_top";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_down";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 0 40;
+                               fixed: 1 1;
+                               align: 0.5 0;
+                               rel1 {
+                                       relative: 1 1;
+                                       to:"ctxpopup_frame_left_bottom";
+                               }
+                               rel2 {
+                                       relative: 0 1;
+                                       to_x: "ctxpopup_frame_right_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+
+               part { name: "elm.swallow.arrow_up";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_up";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_down";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_down";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_left";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_left";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_right";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_right";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part {
+                       name: "ctxpopup_frame";
+                       type: IMAGE;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description {
+                               align: 1 1;
+                               /*color: 0 0 0 85;*/
+                               image {
+                                       normal: CTXPOPUP_BG_IMAGE;
+                                       border: 67 67 92 42;
+                                       border_scale: 1;
+                               }
+                               rel1 {to: "ctxpopup_frame_left_top"; relative: 0.5 0.5;}
+                               rel2 {to: "ctxpopup_frame_right_bottom"; relative: 0.5 0.5;}
+
+                       //      color : 255 255 255 200;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       clip_to: "ctxpopup_clip";
+                       description {
+                               state: "default" 0.0;
+                               rel1 {to: "ctxpopup_frame_left_top"; relative: 0.5 0.5;}
+                               rel2 {to: "ctxpopup_frame_right_bottom"; relative: 0.5 0.5;}
+                       }
+               }
+
+               part { name: "ctxpopup_clip";
+                       type: RECT;
+                       description { state: "default" 0.0;
+                       color: 255 255 255 0;
+                       rel1 { to:"ctxpopup_frame_left_top"; relative: 0.5 0.5; }
+                       rel2 { to:"ctxpopup_frame_right_bottom"; relative: 0.5 0.5; }
+                       }
+                       description { state: "show_up" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_down"; relative: 0 1; }
+                               rel2 { to:"arrow_area_down"; relative: 1 1; }
+                       }
+                       description { state: "show_left" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_right"; relative: 1 0; }
+                               rel2 { to:"arrow_area_right"; relative: 1 1; }
+                       }
+                       description { state: "show_right" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_left"; relative: 0 0; }
+                               rel2 { to:"arrow_area_left"; relative: 0 1; }
+                       }
+                       description { state: "show_down" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_up"; relative: 0 0; }
+                               rel2 { to:"arrow_area_up"; relative: 1 0; }
+                       }
+                       description { state: "hide_up" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_down"; relative: 0 1; }
+                               rel2 { to:"arrow_area_down"; relative: 1 1; }
+                       }
+                       description { state: "hide_left" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_right"; relative: 1 0; }
+                               rel2 { to:"arrow_area_right"; relative: 1 1; }
+                       }
+                       description { state: "hide_right" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_left"; relative: 0 0; }
+                               rel2 { to:"arrow_area_left"; relative: 0 1; }
+                       }
+                       description { state: "hide_down" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_up"; relative: 0 0; }
+                               rel2 { to:"arrow_area_up"; relative: 1 0; }
+                       }
+                       description { state: "visible" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to_x:"arrow_area_left"; to_y:"arrow_area_up"; }
+                               rel2 { to_x:"arrow_area_right"; to_y:"arrow_area_down"; }
+                       }
+               }
+       }
+       programs {
+               program { name: "show";
+                       signal: "elm,state,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_up";
+                       signal: "elm,state,show,up";
+                       source: "elm";
+                       action: STATE_SET "show_up" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_left";
+                       signal: "elm,state,show,left";
+                       source: "elm";
+                       action: STATE_SET "show_left" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_right";
+                       signal: "elm,state,show,right";
+                       source: "elm";
+                       action: STATE_SET "show_right" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_down";
+                       signal: "elm,state,show,down";
+                       source: "elm";
+                       action: STATE_SET "show_down" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "hide_up";
+                       signal: "elm,state,hide,up";
+                       source: "elm";
+                       action: STATE_SET "hide_up" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_left";
+                       signal: "elm,state,hide,left";
+                       source: "elm";
+                       action: STATE_SET "hide_left" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_right";
+                       signal: "elm,state,hide,right";
+                       source: "elm";
+                       action: STATE_SET "hide_right" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_down";
+                       signal: "elm,state,hide,down";
+                       source: "elm";
+                       action: STATE_SET "hide_down" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+       }
+}
+
+group { name: "elm/ctxpopup/arrow/beat_winset_test/camera";
+       images {
+               image: CTXPOPUP_LEFT_ARROW_IMAGE COMP;
+               image: CTXPOPUP_RIGHTT_ARROW_IMAGE COMP;
+               image: CTXPOPUP_TOP_ARROW_IMAGE COMP;
+               image: CTXPOPUP_BOTTOM_ARROW_IMAGE COMP;
+       }
+       parts {
+               part {
+                       name: "ctxpopup_arrow";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               visible: 0;
+                               align: 0.5 0.5;
+                               rel1.relative: 0.0 -0.5;
+                               rel2.relative: 0.0 1.0;
+
+                       }
+                       description {
+                               state: "left" 0.0;
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               align: 0.0 0.5;
+                               image {
+                                       normal: CTXPOPUP_LEFT_ARROW_IMAGE;
+                               }
+               //              color : 255 255 255 178;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               align: 1.0 0.5;
+                               image {
+                                       normal: CTXPOPUP_RIGHTT_ARROW_IMAGE;
+                               }
+               //              color : 255 255 255 178;
+
+                       }
+                       description {
+                               state: "top" 0.0;
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               align: 0.5 0.0;
+                               image {
+                                       normal: CTXPOPUP_TOP_ARROW_IMAGE;
+                               }
+               //              color : 255 255 255 178;
+
+                       }
+                       description {
+                               state: "bottom" 0.0;
+                       //      rel1 { relative: 0.0 -0.3; }
+                       //      rel2 { relative: 1.0 0.7;}
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               align: 0.5 1.0;
+                               image {
+                                       normal: CTXPOPUP_BOTTOM_ARROW_IMAGE;
+                               }
+               //              color : 255 255 255 178;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "enable_left_arrow";
+                       signal: "elm,state,left";
+                       source: "elm";
+                       action: STATE_SET "left" 0.0;
+                       target: "ctxpopup_arrow";
+               }
+               program {
+                       name: "enable_right_arrow";
+                       signal: "elm,state,right";
+                       source: "elm";
+                       action: STATE_SET "right" 0.0;
+                       target: "ctxpopup_arrow";
+               }
+               program {
+                       name: "enable_top_arrow";
+                       signal: "elm,state,top";
+                       source: "elm";
+                       action: STATE_SET "top" 0.0;
+                       target: "ctxpopup_arrow";
+               }
+               program {
+                       name: "enable_bottom_arrow";
+                       signal: "elm,state,bottom";
+                       source: "elm";
+                       action: STATE_SET "bottom" 0.0;
+                       target: "ctxpopup_arrow";
+               }
+       }
+}
+
+group {
+       name: "elm/ctxpopup/bg/beat_winset_test/camera_no_arrow";
+       parts {
+               part {
+                       name: "bg";
+                       type: RECT;
+                       description {
+                               state: "default" 0.0;
+                               visible: 0;
+                       }
+                       description {
+                               state: "visible" 0.0;
+                               visible: 0;
+                       }
+               }
+       }
+       programs {
+               program {
+                       name: "show";
+                       signal: "elm,state,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       target: "bg";
+               }
+               program {
+                       name: "hide";
+                       signal: "elm,state,hide";
+                       source: "elm";
+                       action: STATE_SET "default" 0.0;
+                       target: "bg";
+               }
+       }
+}
+
+group {
+       name: "elm/ctxpopup/base/beat_winset_test/camera_no_arrow";
+       images {
+               image: CTXPOPUP_BG_2DEPTH_IMAGE COMP;
+       }
+       parts {
+               part {
+                       name: "ctxpopup_frame_left_top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 0 0;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_right_top";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 1 0;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_left_bottom";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 0 1;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame_right_bottom";
+                       type: RECT;
+                       scale: 1;
+                       description {
+                               visible:0;
+                               align: 1 1;
+                               min: CTXPOPUP_FRAME_CORNER_SIZE;
+                               max: CTXPOPUP_FRAME_CORNER_SIZE;
+                       }
+               }
+
+               part { name: "arrow_area_left";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 40 0;
+                               fixed: 1 1;
+                               align: 1 0.5;
+                               rel1 {
+                                       relative: 0 1;
+                                       to_y: "ctxpopup_frame_left_top";
+                               }
+                               rel2 {
+                                       relative:0 0;
+                                       to:"ctxpopup_frame_left_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_right";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 40 0;
+                               fixed: 1 1;
+                               align: 0 0.5;
+                               rel1 {
+                                       relative: 1 1;
+                                       to:"ctxpopup_frame_right_top";
+                               }
+                               rel2 {
+                                       relative: 1 0;
+                                       to_y: "ctxpopup_frame_right_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_up";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 0 40;
+                               fixed: 1 1;
+                               align: 0.5 1;
+                               rel1 {
+                                       relative: 1 0;
+                                       to_x: "ctxpopup_frame_left_top";
+                               }
+                               rel2 {
+                                       relative: 0 0;
+                                       to:"ctxpopup_frame_right_top";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+               part { name: "arrow_area_down";
+                       type: RECT;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description { state: "default" 0.0;
+                               visible: 0;
+                               min: 0 40;
+                               fixed: 1 1;
+                               align: 0.5 0;
+                               rel1 {
+                                       relative: 1 1;
+                                       to:"ctxpopup_frame_left_bottom";
+                               }
+                               rel2 {
+                                       relative: 0 1;
+                                       to_x: "ctxpopup_frame_right_bottom";
+                               }
+                               color : 255 255 255 0;
+                       }
+               }
+
+               part { name: "elm.swallow.arrow_up";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_up";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_down";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_down";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_left";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_left";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+               part { name: "elm.swallow.arrow_right";
+                       type: SWALLOW;
+                       mouse_events: 0;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       dragable {
+                               x: 1 1 0;
+                               y: 1 1 0;
+                               confine: "arrow_area_right";
+                       }
+                       description {
+                               state: "default" 0.0;
+                               min: 40 40;
+                               fixed: 1 1;
+                               visible: 1;
+                       }
+               }
+
+               part {
+                       name: "ctxpopup_frame";
+                       type: IMAGE;
+                       scale: 1;
+                       clip_to: "ctxpopup_clip";
+                       description {
+                               align: 1 1;
+                               /*color: 0 0 0 85;*/
+                               image {
+                                       normal: CTXPOPUP_BG_2DEPTH_IMAGE;
+                                       border: 67 67 92 42;
+                                       border_scale: 1;
+                               }
+                               rel1 {to: "ctxpopup_frame_left_top"; relative: 0.5 0.5;}
+                               rel2 {to: "ctxpopup_frame_right_bottom"; relative: 0.5 0.5;}
+
+                       //      color : 255 255 255 200;
+                       }
+               }
+
+               part {
+                       name: "elm.swallow.content";
+                       type: SWALLOW;
+                       clip_to: "ctxpopup_clip";
+                       description {
+                               state: "default" 0.0;
+                               rel1 {to: "ctxpopup_frame_left_top"; relative: 0.5 0.5;}
+                               rel2 {to: "ctxpopup_frame_right_bottom"; relative: 0.5 0.5;}
+                       }
+               }
+
+               part { name: "ctxpopup_clip";
+                       type: RECT;
+                       description { state: "default" 0.0;
+                       color: 255 255 255 0;
+                       rel1 { to:"ctxpopup_frame_left_top"; relative: 0.5 0.5; }
+                       rel2 { to:"ctxpopup_frame_right_bottom"; relative: 0.5 0.5; }
+                       }
+                       description { state: "show_up" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_down"; relative: 0 1; }
+                               rel2 { to:"arrow_area_down"; relative: 1 1; }
+                       }
+                       description { state: "show_left" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_right"; relative: 1 0; }
+                               rel2 { to:"arrow_area_right"; relative: 1 1; }
+                       }
+                       description { state: "show_right" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_left"; relative: 0 0; }
+                               rel2 { to:"arrow_area_left"; relative: 0 1; }
+                       }
+                       description { state: "show_down" 0.0;
+                               color: 255 255 255 0;
+                               rel1 { to:"arrow_area_up"; relative: 0 0; }
+                               rel2 { to:"arrow_area_up"; relative: 1 0; }
+                       }
+                       description { state: "hide_up" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_down"; relative: 0 1; }
+                               rel2 { to:"arrow_area_down"; relative: 1 1; }
+                       }
+                       description { state: "hide_left" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_right"; relative: 1 0; }
+                               rel2 { to:"arrow_area_right"; relative: 1 1; }
+                       }
+                       description { state: "hide_right" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_left"; relative: 0 0; }
+                               rel2 { to:"arrow_area_left"; relative: 0 1; }
+                       }
+                       description { state: "hide_down" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to:"arrow_area_up"; relative: 0 0; }
+                               rel2 { to:"arrow_area_up"; relative: 1 0; }
+                       }
+                       description { state: "visible" 0.0;
+                               color: 255 255 255 255;
+                               rel1 { to_x:"arrow_area_left"; to_y:"arrow_area_up"; }
+                               rel2 { to_x:"arrow_area_right"; to_y:"arrow_area_down"; }
+                       }
+               }
+       }
+       programs {
+               program { name: "show";
+                       signal: "elm,state,show";
+                       source: "elm";
+                       action: STATE_SET "visible" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_up";
+                       signal: "elm,state,show,up";
+                       source: "elm";
+                       action: STATE_SET "show_up" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_left";
+                       signal: "elm,state,show,left";
+                       source: "elm";
+                       action: STATE_SET "show_left" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_right";
+                       signal: "elm,state,show,right";
+                       source: "elm";
+                       action: STATE_SET "show_right" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "show_down";
+                       signal: "elm,state,show,down";
+                       source: "elm";
+                       action: STATE_SET "show_down" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+               }
+               program { name: "hide_up";
+                       signal: "elm,state,hide,up";
+                       source: "elm";
+                       action: STATE_SET "hide_up" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_left";
+                       signal: "elm,state,hide,left";
+                       source: "elm";
+                       action: STATE_SET "hide_left" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_right";
+                       signal: "elm,state,hide,right";
+                       source: "elm";
+                       action: STATE_SET "hide_right" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_down";
+                       signal: "elm,state,hide,down";
+                       source: "elm";
+                       action: STATE_SET "hide_down" 0.0;
+                       transition: LINEAR 0.25;
+                       target: "ctxpopup_clip";
+                       after: "hide_finished";
+               }
+               program { name: "hide_finished";
+                       action: SIGNAL_EMIT "elm,action,hide,finished" "";
+               }
+       }
+}
+
+group { name: "elm/ctxpopup/arrow/beat_winset_test/camera_no_arrow";
+       parts {
+               part {
+                       name: "ctxpopup_arrow";
+                       type: IMAGE;
+                       scale: 1;
+                       description {
+                               state: "default" 0.0;
+                               min: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               max: CTXPOPUP_CAMERA_ARROW_SIZE CTXPOPUP_CAMERA_ARROW_SIZE;
+                               fixed: 1 1;
+                               visible: 0;
+                               align: 0.5 0.5;
+                               rel1.relative: 0.0 -0.5;
+                               rel2.relative: 0.0 1.0;
+
+                       }
+                       description {
+                               state: "left" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "right" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "top" 0.0;
+                               inherit: "default" 0.0;
+                       }
+                       description {
+                               state: "bottom" 0.0;
+                               inherit: "default" 0.0;
+                       }
+               }
+       }
+}
+
+#include "style_tizen_hd_inc.edc"
+#include "style_genlist_macro.edc"
+#include "style_genlist_normal.edc"
+
+}
+
diff --git a/edc/style_genlist_macro.edc b/edc/style_genlist_macro.edc
new file mode 100644 (file)
index 0000000..c08c6cf
--- /dev/null
@@ -0,0 +1,847 @@
+/*
+ * 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_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BG \
+         part { name: "bg"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            description { state: "hide" 0.0; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.025 0.0; } \
+               rel2 { relative: 1.025 1.0; } \
+            } \
+            description { state: "hide" 0.1;  \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.13 0.0; } \
+               rel2 { relative: 1.13 1.0; } \
+            } \
+            description { state: "hide" 0.2; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 0.5 0.0; } \
+               rel2 { relative: 1.5 1.0; } \
+            } \
+            description { state: "hide" 0.3; \
+               inherit: "default" 0.0; \
+               rel1 { relative: 1.0 0.0; } \
+               rel2 { relative: 2.0 1.0; } \
+            } \
+         }
+
+#define GENLIST_PART_BG_IMAGE \
+         part { name: "bg_image"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               color: GENLIST_PART_LIST_BG_COLOR_INC; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+         }
+
+#define GENLIST_PART_BOTTOM_EFFECT_LINE \
+         part { name: "bottom_line"; \
+            type: RECT; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               min: 0 1; \
+               fixed: 0 1; \
+               visible: 1; \
+               color: GENLIST_PART_LIST_LINE_COLOR_INC; \
+               rel1 { \
+                  relative: 0.0 1.0; \
+                  offset: 0 -1; \
+               } \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_PADDING_TOP( param_padding_size ) \
+       part { name: "elm.padding.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_TEXT_TOP( param_padding_size ) \
+       part { name: "elm.padding.text.top"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel2.relative: 1.0 0.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_BOTTOM( param_padding_size ) \
+       part { name: "elm.padding.bottom"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_padding_size; \
+               fixed: 0 1; \
+               visible: 0; \
+               rel1.relative: 0.0 1.0; \
+               align: 0.0 1.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_LEFT( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_PADDING_RIGHT( param_padding_size ) \
+       part { name: "elm.padding.right"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1.relative: 1.0  0.0; \
+               align: 1.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            clip_to: "disclip"; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: LAYOUT_GROUP_LIST_BG_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+         }
+
+#define GENLIST_PART_DIALOGUE_EXPANDABLE_ITEM \
+         part { name: "elm.rect.dialogue"; \
+            type: RECT; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: GENLIST_PADDING_12_INC 0; \
+               fixed: 1 0; \
+               color: GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC; \
+               rel2.relative: 0.0 1.0; \
+               align: 0.0 0.0; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_SWALLOW_END( param_padding_size ) \
+         part { name: "elm.padding.left.swallow.end";\
+            clip_to: "disclip"; \
+            type: RECT;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               min: param_padding_size 0;\
+               fixed: 1 0;\
+               visible: 0; \
+               rel1.to_x: "elm.swallow.end";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.swallow.end";\
+               }\
+               align: 1.0 0.5;\
+            }\
+         }\
+         part { name: "elm.swallow.end";\
+            clip_to: "disclip"; \
+            type: SWALLOW;\
+            scale: 1;\
+            description { state: "default" 0.0;\
+               fixed: 1 0;\
+               align: 1.0 0.5;\
+               rel1.to_x: "elm.padding.right";\
+               rel2 {\
+                  relative: 0.0  1.0;\
+                  to_x: "elm.padding.right";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_DISCLIP \
+        part { name: "disclip"; \
+            type: RECT; \
+            description { state: "default" 0.0; \
+            } \
+            description { state: "disabled" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_DISCLIP_COLOR_INC; \
+            } \
+         }
+
+#define GENLIST_EXPANDABLE_PART_PERSPECTIVE_POINT() \
+               part { name: "point"; \
+                       type: RECT; \
+                       scale: 1; \
+                        description { \
+                                state: "default" 0.0; \
+                                color: 0 0 0 0; \
+                                rel1 { relative: 0.0 0.0; } \
+                                rel2 { relative: 1.0 0.0; } \
+                        } \
+                }
+
+#define GENLIST_PART_MAP_START( param_x, param_y, param_z ) \
+               description { state: "map_transition" 0.0; \
+                   inherit: "default" 0.0; \
+                   color: 50 50 50 100; \
+                   map { \
+                      perspective: "point"; \
+                      on: 1; \
+                      smooth: 1; \
+                      perspective_on: 1; \
+                      backface_cull: 1; \
+                      rotation { \
+                         center: "point"; \
+                         x: param_x; \
+                         y: param_y; \
+                         z: param_z; \
+                      } \
+                  } \
+                } \
+                description { \
+                        state: "hide" 0.0; \
+                        inherit: "default" 0.0; \
+                        visible: 0; \
+                }
+
+#define GENLIST_PART_MAP_FINISH( param_x, param_y, param_z ) \
+                description { \
+                        state: "map_rotate" 0.0; \
+                        inherit: "default" 0.0; \
+                        map { \
+                                perspective: "point"; \
+                                on: 1; \
+                                smooth: 1; \
+                                perspective_on: 1; \
+                                backface_cull: 1; \
+                                rotation { \
+                                        center: "point"; \
+                                        x: param_x; \
+                                        y: param_y; \
+                                        z: param_z; \
+                                } \
+                       } \
+               } \
+
+#define GENLIST_PART_MAP_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_EXPANDABLE_PART_BASE( GE_HEIGHT , GE_COLOR ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 GE_HEIGHT; \
+               color: GE_COLOR; \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               color: GENLIST_PART_LIST_PRESS_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_START() \
+                name: "rotaion_transition"; \
+                signal: "flip_item"; \
+                action: STATE_SET "map_transition" 0.0; \
+                after: "rotation";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_EXPAND_FINISH( second ) \
+                name: "rotation"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation_end";
+
+#define GENLIST_PROGRAM_MAP_EXPAND_END() \
+                name: "rotation_end"; \
+                action: STATE_SET "default" 0.0;
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_START() \
+                name: "rotation_transition2"; \
+                signal: "elm,state,contract_flip"; \
+                action: STATE_SET "map_rotate" 0.0; \
+                after: "rotation2";
+
+#define GENLIST_PROGRAM_MAP_ROTATE_CONTRACT_FINISH( second ) \
+                name: "rotation2"; \
+                action: STATE_SET "map_transition" 0.0; \
+                transition: LINEAR second; \
+                after: "rotation3";
+
+#define GENLIST_PROGRAM_MAP_CONTRACT_END() \
+                name: "rotation3"; \
+                action: STATE_SET "hide" 0.0;
+
+#define GENLIST_PART_EXPANDABLE2_NOSHADOW_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+
+#define GENLIST_PART_EXPANDABLE_SWALLOW_PADDING \
+         part { name: "elm.swallow.pad"; \
+            type: SWALLOW; \
+            description { state: "default" 0.0; \
+               fixed: 1 0; \
+               align: 0.0 0.5; \
+               rel1 { \
+                  relative: 1.0 0.0;\
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2.to_x: "elm.padding.left"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         } \
+
+#define GENLIST_PART_PADDING_LEFT_SLIDE( param_padding_size ) \
+         part { name: "elm.padding.left"; \
+            type: RECT; \
+            scale: 1; \
+            description { \
+               state: "default" 0.0; \
+               min: param_padding_size 0; \
+               fixed: 1 0; \
+               visible: 0; \
+               rel1 { relative: 0.0 0.0; to: "bg"; } \
+               rel2 { relative: 0.0 1.0; to: "bg"; } \
+               align: 0.0 0.0; \
+            } \
+         }
+
+/* only for demo */
+#define GENLIST_PART_BUTTON( param_name, param_text_name, param_text, param_left, param_right, param_top, param_bottom ) \
+       part { name: param_name; \
+         mouse_events: 1; \
+         description { state: "default" 0.0; \
+            visible: 1; \
+            rel1 { relative: param_left param_top; offset: 0 0; } \
+            rel2 { relative: param_right param_bottom; offset: -1 -1; } \
+            image { \
+               normal: "btn_normal.png"; \
+               border: 10 10 10 10; \
+               border_scale: 1; \
+            } \
+            image.middle: SOLID; \
+            fill.smooth: 0; \
+         } \
+         description { state: "selected" 0.0;  \
+            inherit: "default" 0.0;  \
+            image { \
+               normal: "btn_selected.png"; \
+            } \
+         } \
+      } \
+      part { name: param_text_name;  \
+         type: TEXT;  \
+         mouse_events: 0; \
+         scale: 1; \
+         description {  \
+            align: 0.0 0.0; \
+            state: "default" 0.0;  \
+            color: 0 0 0 255;  \
+            rel1 { relative: 0.0 0.0; to: param_name; } \
+            rel2 { relative: 1.0 1.0; to: param_name; } \
+            text {  \
+               text: param_text; \
+               font: "SLP:style=Roman"; \
+               size: 24;  \
+               min: 1 1;  \
+               align: 0.5 0.5;  \
+            }  \
+         }  \
+      }
+
+/* only for demo */
+#define GENLIST_PROGRAM_BUTTON( param_name_focused, param_name_normal, param_part_name ) \
+      program { name: param_name_focused; \
+         source: param_part_name; \
+         signal: "mouse,down,1"; \
+         action:  STATE_SET "selected" 0.0;  \
+         target: param_part_name; \
+      } \
+      program { name: param_name_normal; \
+         source: param_part_name; \
+         signal: "mouse,up,1"; \
+         action:  STATE_SET "default" 0.0;  \
+         target: param_part_name; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE_WITH_AFTER( param_name, param_state, param_next ) \
+      program { name: param_name; \
+         action:  STATE_SET "hide" param_state; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+         after: param_next; \
+      }
+
+#define GENLIST_PROGRAM_SLIDE( param_name, param_state_name, param_state_value ) \
+      program { name: param_name; \
+         action:  STATE_SET param_state_name param_state_value; \
+         target: "bg"; \
+         transition: LINEAR 0.3; \
+      }
+
+#define DESC_FLIP_IMAGE( param_state_value, param_image_file_name ) \
+      description { state: "flipping" param_state_value; \
+         inherit: "default" 0.0; \
+         image { normal: param_image_file_name; } \
+      }
+
+#define DESC_TEXT_HIDE( param_state_value ) \
+   description { state: "hide" param_state_value; \
+      inherit: "default" 0.0; \
+      color: 0 0 0 (255*(1-param_state_value/0.20)); \
+   }
+
+#define GENLIST_EDIT_PART_BASE( param_item_height ) \
+         part { name: "base"; \
+            type: RECT; \
+            repeat_events: 0; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               min: 0 param_item_height; \
+               color: 0 0 0 0; \
+            } \
+         }
+
+#define GENLIST_PART_FLIP \
+         part { name: "elm.flip.content"; \
+            clip_to: "disclip"; \
+            type: SWALLOW; \
+            mouse_events: 1; \
+            scale: 1; \
+            description { state: "default" 0.0; \
+               visible: 0; \
+               fixed: 1 1; \
+               rel1 { \
+                  relative: 1.0  0.5; \
+                  to_x: "elm.padding.left"; \
+               } \
+               rel2 { \
+                  relative: 0.0  0.5; \
+                  to_x: "elm.padding.right"; \
+               } \
+            } \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 1; \
+            } \
+         }
+
+#define GENLIST_DESCRIPTION_INVISIBLE_SELECTED \
+            description { state: "selected" 1.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_DESCRIPTION_FLIP_ENABLED \
+            description { state: "flip_enabled" 0.0; \
+               inherit: "default" 0.0; \
+               visible: 0; \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) \
+                  set_state(PART:"elm.text", "selected", 1.0); \
+               else \
+                  set_state(PART:"elm.text", "selected", 0.0); \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_2TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_3TEXT \
+            script { \
+               new st[31]; \
+               new Float:vl; \
+               get_state(PART:"elm.text.1", st, 30, vl); \
+               set_state(PART:"bg_image", "selected", 0.0); \
+               if (!strcmp(st, "flip_enabled")) { \
+                  set_state(PART:"elm.text.1", "selected", 1.0); \
+                  set_state(PART:"elm.text.2", "selected", 1.0); \
+                  set_state(PART:"elm.text.3", "selected", 1.0); \
+               } \
+               else { \
+                  set_state(PART:"elm.text.1", "selected", 0.0); \
+                  set_state(PART:"elm.text.2", "selected", 0.0); \
+                  set_state(PART:"elm.text.3", "selected", 0.0); \
+               } \
+            }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_1TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+             target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_2TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_1ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_2ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.flip.content"; \
+         }
+
+#define GENLIST_PROGRAM_FLIP_3TEXT_3ICON \
+         program { name: "flip_enabled"; \
+            signal: "elm,state,flip,enabled"; \
+            source: "elm"; \
+            action: STATE_SET "flip_enabled" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         } \
+         program { name: "flip_disabled"; \
+            signal: "elm,state,flip,disabled"; \
+            source: "elm"; \
+            action: STATE_SET "default" 0.0; \
+            target: "elm.text.1"; \
+            target: "elm.text.2"; \
+            target: "elm.text.3"; \
+            target: "elm.icon.1"; \
+            target: "elm.icon.2"; \
+            target: "elm.icon.3"; \
+            target: "elm.flip.content"; \
+         }
+
diff --git a/edc/style_genlist_normal.edc b/edc/style_genlist_normal.edc
new file mode 100644 (file)
index 0000000..7505bd8
--- /dev/null
@@ -0,0 +1,634 @@
+/*
+ * 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.
+ */
+
+   group { name: "elm/genlist/item/camera/1text.1icon/default";
+      alias: "elm/genlist/item_odd/camera/1text.1icon/default";
+      alias: "elm/genlist/item_compress/camera/1text.1icon/default";
+      alias: "elm/genlist/item_compress_odd/camera/1text.1icon/default";
+      data.item: "stacking" "above";
+      data.item: "selectraise" "on";
+      data.item: "texts" "elm.text";
+      data.item: "contents" "elm.icon";
+      data.item: "flips" "elm.flip.content";
+
+      parts {
+         GENLIST_PART_BASE( GENLIST_HEIGHT_103_INC )
+         GENLIST_PART_BG_IMAGE
+         GENLIST_PART_BOTTOM_LINE
+         GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_34_INC )
+         GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_14_INC )
+         part { name: "elm.icon";
+            clip_to: "disclip";
+            type: SWALLOW;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+                          min: 86 84;
+                          max: 86 84;
+                          aspect: 1.0 1.0;
+               rel1.to_x: "elm.padding.right";
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.right";
+               }
+               align: 1 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_14_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";
+            clip_to: "disclip";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               rel1 {
+                  relative: 1.0 0.0;
+                  to_x: "elm.padding.left";
+               }
+               rel2 {
+                  relative: 0.0 1.0;
+                  to_x: "elm.padding.icon.left";
+               }
+               align: 0.0 0.5;
+               color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+               text {
+                  font: "SLP:style=Helveca";
+                  size: GENLIST_FONT_40_INC;
+                  min: 0 1;
+                  align: 0.0 0.5;
+               }
+            }
+            description { state: "selected" 0.0;
+               inherit: "default" 0.0;
+               color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+            }
+            GENLIST_DESCRIPTION_FLIP_ENABLED
+         }
+         GENLIST_PART_FLIP
+         GENLIST_PART_DISCLIP
+      }
+      programs {
+         program { name: "go_active";
+            signal: "elm,state,selected";
+            source: "elm";
+            action: STATE_SET "selected" 0.0;
+            target: "bg_image";
+            target: "elm.text";
+         }
+         program { name: "go_passive";
+            signal: "elm,state,unselected";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "bg_image";
+            target: "elm.text";
+            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";
+         }
+         GENLIST_PROGRAM_FLIP_1TEXT_1ICON
+      }
+   }
+   // 4.1.2
+         group { name: "elm/genlist/item/camera/dialogue/1text.1icon/default";
+                alias: "elm/genlist/item_odd/camera/dialogue/1text.1icon/default";
+                alias: "elm/genlist/item_compress/camera/dialogue/1text.1icon/default";
+                alias: "elm/genlist/item_compress_odd/camera/dialogue/1text.1icon/default";
+                alias: "elm/layout/dialogue/1text.1icon";
+                data.item: "stacking" "above";
+                data.item: "selectraise" "on";
+                data.item: "texts" "elm.text";
+                data.item: "contents" "elm.icon";
+                data.item: "flips" "elm.flip.content";
+                parts {
+                       GENLIST_PART_BASE( GENLIST_HEIGHT_113_INC )
+                       GENLIST_PART_BG_IMAGE
+                       GENLIST_PART_BOTTOM_LINE
+                       GENLIST_PART_PADDING_LEFT( GENLIST_PADDING_32_INC )
+                       GENLIST_PART_PADDING_RIGHT( GENLIST_PADDING_16_INC )
+                       GENLIST_PART_DIALOGUE_ITEM
+                       part { name: "elm.icon";
+                          clip_to: "disclip";
+                          type: SWALLOW;
+                          scale: 1;
+                          description { state: "default" 0.0;
+                                 fixed: 1 1;
+                                 rel1.to_x: "elm.padding.right";
+                                 rel2 {
+                                        relative: 0.0 1.0;
+                                        to_x: "elm.padding.right";
+                                 }
+                                 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";
+                          clip_to: "disclip";
+                          type: TEXT;
+                          mouse_events: 0;
+                          scale: 1;
+                          description { state: "default" 0.0;
+                                 rel1 {
+                                        relative: 1.0 0.0;
+                                        to_x: "elm.padding.left";
+                                 }
+                                 rel2 {
+                                        relative: 0.0 1.0;
+                                        to_x: "elm.padding.icon.left";
+                                 }
+                                 align: 0.0 0.0;
+                                 color: GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC;
+                                 text {
+                                        font: "SLP:style=Roman";
+                                        size: GENLIST_FONT_44_INC;
+                                        min: 0 1;
+                                        align: 0.0 0.5;
+                                 }
+                          }
+                          description { state: "selected" 0.0;
+                                 inherit: "default" 0.0;
+                                 color: GENLIST_PART_TEXT_PRESS_COLOR_INC;
+                          }
+                          GENLIST_DESCRIPTION_INVISIBLE_SELECTED
+                          GENLIST_DESCRIPTION_FLIP_ENABLED
+                       }
+                       GENLIST_PART_FLIP
+                       GENLIST_PART_DISCLIP
+                }
+                programs {
+                       program { name: "go_active";
+                          signal: "elm,state,selected";
+                          source: "elm";
+                          action: STATE_SET "selected" 0.0;
+                          GENLIST_PROGRAM_SCRIPT_FLIP_SELECT_1TEXT
+                       }
+                       program { name: "go_passive";
+                          signal: "elm,state,unselected";
+                          source: "elm";
+                          action: STATE_SET "default" 0.0;
+                          target: "bg_image";
+                          target: "elm.text";
+                          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";
+                       }
+                       GENLIST_PROGRAM_FLIP_1TEXT_1ICON
+                }
+         }
+
+////////////////////////////////////////////////////////////////////////////////
+   group { name: "elm/check/base/genlist/on&off";
+      data {
+         item: "label_1" "text.on On";
+         item: "label_2" "text.off Off";
+      }
+      images {
+         image: "00_check_off.png" COMP;
+         image: "00_check_on.png" COMP;
+      }
+      parts {
+         part { name: "bg";
+            scale: 1;
+            type: RECT;
+            clip_to: "disclip";
+            description { state: "default" 0.0;
+               rel2.relative: 0.0 1.0;
+               fixed: 1 0;
+               align: 0.0 0.5;
+              min: 86 84;
+              max: 86 84;
+
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "check";
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "disclip";
+            description { state: "default" 0.0;
+               rel1.to: "bg";
+               rel2.to: "bg";
+              fixed: 1 0;
+              min: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
+               max: CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC;
+              align: 0.5 0.5;
+               image {
+                  normal: "00_check_off.png";
+                  border: CHECK_ONOFF_CHECK_IMAGE_BORDER_INC;
+                  border_scale: 1;
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "00_check_on.png";
+            }
+            description { state: "pressed" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "00_check_off.png";
+            }
+            description { state: "visible_pressed" 0.0;
+               inherit: "default" 0.0;
+               image.normal: "00_check_on.png";
+            }
+         }
+         part { name: "text.on";
+            type: TEXT;
+            mouse_events: 0;
+            clip_to: "disclip";
+            scale:1;
+            description { state: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 0.0 0.0;
+                  to: "check";
+               }
+               rel2 {
+                  relative: 1.0 0.5;
+                  to: "check";
+               }
+               text {
+                  font: "SLP:style=Medium";
+                  size: CHECK_ONOFF_ON_FONT_SIZE_INC;
+                  fit: 1 1;
+                  align: 0.2 0.5;
+                  size_range: 12 CHECK_ONOFF_ON_FONT_SIZE_INC;
+                  min: 0 0;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "on" 0.0;
+               inherit: "default" 0.0;
+               visible:1;
+               color: 255 255 255 255;
+               rel1 {
+                  relative: 0.0 0.5;
+                  to: "check";
+               }
+               rel2 {
+                  relative: 1.0 1.0;
+                  to: "check";
+               }
+               text {
+                  font: "SLP:style=Medium";
+                  size: CHECK_ONOFF_ON_FONT_SIZE_INC;
+                  align: 0.2 0.5;
+                  fit: 1 1;
+                  size_range: 12 CHECK_ONOFF_ON_FONT_SIZE_INC;
+                  min: 0 0;
+               }
+            }
+         }
+         part { name: "text.off";
+            type: TEXT;
+            mouse_events: 0;
+            clip_to: "disclip";
+            scale:1;
+            description { state: "default" 0.0;
+               color: 107 107 81 255;
+               rel1.to: "check";
+               rel2 {
+                  relative: 1.0 0.5;
+                  to: "check";
+               }
+               text {
+                  font: "SLP:style=Medium";
+                  size: CHECK_ONOFF_OFF_FONT_SIZE_INC;
+                  fit: 1 1;
+                  align: 0.2 0.5;
+                  size_range: 12 CHECK_ONOFF_OFF_FONT_SIZE_INC;
+                  min: 0 0;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "off" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+               rel1 {
+                  relative: 0.0 0.5;
+                  to: "check";
+               }
+               rel2.to: "check";
+               text {
+                  font: "SLP:style=Medium";
+                  size: CHECK_ONOFF_OFF_FONT_SIZE_INC;
+                  align: 0.2 0.5;
+                  fit: 1 1;
+                  size_range: 12 CHECK_ONOFF_OFF_FONT_SIZE_INC;
+                  min: 0 0;
+               }
+            }
+         }
+         part { name: "elm.swallow.content";
+            type: SWALLOW;
+            clip_to: "disclip";
+            description { state: "default" 0.0;
+               fixed: 1 0;
+               visible: 0;
+               color: 255 255 255 255;
+               align: 0.0 0.5;
+               rel1 {
+                  to_x: "bg";
+                  relative: 1.0 0.0;
+                  offset: 1 1;
+               }
+               rel2 {
+                  to_x: "bg";
+                  relative: 1.0 1.0;
+                  offset: 2 -2;
+               }
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               fixed: 1 1;
+               visible: 1;
+               aspect: 1.0 1.0;
+            }
+         }
+         part { name: "elm.text";
+            type: TEXTBLOCK;
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "disclip";
+            description { state: "default" 0.0;
+               visible: 0;
+               fixed: 0 1;
+               rel1 {
+                  relative: 1.0 0.5;
+                  offset: 1 1;
+                  to_x: "elm.swallow.content";
+               }
+               rel2 {
+                  relative: 1.0 0.5;
+                  offset: -2 -2;
+               }
+               align: 0.0 0.5;
+               text {
+                  style: "check_label_textblock_style";
+                  min: 0 0;
+               }
+               color: CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC;
+            }
+            description { state: "visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+            }
+            description { state: "disabled_visible" 0.0;
+               inherit: "default" 0.0;
+               visible: 1;
+               text.min: 1 1;
+            }
+         }
+         part { name: "events";
+            type: RECT;
+            ignore_flags: ON_HOLD;
+            description { state: "default" 0.0;
+               color: 0 0 0 0;
+            }
+         }
+         part { name: "disclip";
+            type: RECT;
+            mouse_events: 0;
+            description { state: "default" 0.0;
+               color: 255 255 255 255;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               color: 255 255 255 64;
+            }
+         }
+         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: "click";
+            signal: "mouse,up,1";
+            source: "events";
+            action: SIGNAL_EMIT "elm,action,check,toggle" "";
+         }
+         program { name: "pressed";
+            signal: "mouse,down,1";
+            source: "events";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"check", "visible_pressed", 0.0);
+               else if (!strcmp(st, "default"))
+                 set_state(PART:"check", "pressed", 0.0);
+            }
+         }
+         program { name: "mouseout";
+            signal: "mouse,out";
+            source: "events";
+            after: "bg_check_normal";
+         }
+         program { name: "bg_check_normal";
+            script {
+               new st[31];
+               new Float:vl;
+               get_state(PART:"check", st, 30, vl);
+               if (!strcmp(st, "pressed"))
+                 set_state(PART:"check", "default", 0.0);
+               else if (!strcmp(st, "visible_pressed"))
+                 set_state(PART:"check", "visible", 0.0);
+            }
+         }
+         program { name: "check_on";
+            signal: "elm,state,check,on";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "check";
+            after:"text_off_off" ;
+         }
+         program { name: "text_off_off";
+            action: STATE_SET "off" 0.0;
+            target: "text.off";
+            after: "text_on";
+         }
+         program { name: "text_on";
+            action: STATE_SET "on" 0.0;
+            target: "text.on";
+         }
+         program { name: "check_off";
+            signal: "elm,state,check,off";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "check";
+            after: "text_on_off";
+         }
+         program { name: "text_on_off";
+            action: STATE_SET "default" 0.0;
+            target: "text.on";
+            after: "text_off";
+         }
+         program { name: "text_off";
+            action: STATE_SET "default" 0.0;
+            target: "text.off";
+         }
+         program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.text";
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            action: STATE_SET "visible" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "elm.swallow.content";
+         }
+         program { name: "disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action: STATE_SET "disabled" 0.0;
+            target: "disabler";
+            target: "disclip";
+            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);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "disabled", 0.0);
+            }
+         }
+         program { name: "enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action: STATE_SET "default" 0.0;
+            target: "disabler";
+            target: "disclip";
+            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);
+               get_state(PART:"elm.swallow.content", st, 30, vl);
+               if (!strcmp(st, "visible"))
+                 set_state(PART:"elm.swallow.content", "visible", 0.0);
+               else
+                 set_state(PART:"elm.swallow.content", "default", 0.0);
+            }
+         }
+      }
+   }
+
+///////////////////////////////////////////////////////////////////////////////////////
+
+
+//end file
diff --git a/edc/style_slider_camera.edc b/edc/style_slider_camera.edc
new file mode 100644 (file)
index 0000000..697f290
--- /dev/null
@@ -0,0 +1,839 @@
+/*
+ * 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 "../include/edc_image_name.h"
+#include "style_tizen_hd_inc.edc"
+
+images {
+       image: SLIDER_BAR_IMAGE COMP;
+       image: SLIDER_BAR_VER_IMAGE COMP;
+       image: SLIDER_HANDLER_IMAGE COMP;
+}
+
+collections {
+
+       group { name: "elm/slider/vertical/camera";
+               parts {
+                       part {
+                               name: "base";
+                               mouse_events: 0;
+                               description { state: "default" 0.0;
+                                       max: 20 99999;
+                                       min: 6 0;
+                                       rel1 { to: "bg"; offset: 1 0; }
+                                       rel2 { to: "bg"; offset: -2 -1; }
+                                       image.normal: SLIDER_BAR_IMAGE;
+                                       fill.smooth: 0;
+                               }
+                       }
+                       part {
+                               name: "bg";
+                               type: RECT;
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       rel1.to: "elm.swallow.bar";
+                                       rel2.to: "elm.swallow.bar";
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.bar";
+                               type: SWALLOW;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 58;
+                                       max: 20 9999;
+                                       align: 0.5 1.0;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.icon";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 0.0;
+                                       rel1 { offset: 0 4; to_x: "elm.swallow.bar"; }
+                                       rel2 { offset: -1 3; relative: 1.0 0.0; to_x: "elm.swallow.bar"; }
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       aspect: 1.0 1.0;
+                                       aspect_preference: HORIZONTAL;
+                                       rel2.offset: -1 4;
+                               }
+                       }
+                       part {
+                               name: "elm.swallow.end";
+                               type: SWALLOW;
+                               description {
+                                       state: "default" 0.0;
+                                       visible: 0;
+                                       align: 0.5 1.0;
+                                       rel1 { offset: 0 -4; relative: 0.0 1.0; to_x: "elm.swallow.bar"; }
+                                       rel2 { offset: -1 -3; to_x: "elm.swallow.bar"; }
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       aspect: 1.0 1.0;
+                                       aspect_preference: HORIZONTAL;
+                                       rel2.offset: -1 -4;
+                               }
+                       }
+                       part {
+                               name: "elm.dragable.slider";
+                               type: GROUP;
+                               source: "elm/slider/vertical/indicator/camera";
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               scale: 1;
+                               dragable {
+                                       x: 0 0 0;
+                                       y: 1 1 0;
+                                       confine: "bg";
+                               }
+                               description {
+                                       state: "default" 0.0;
+                                       min: 20 0;
+                                       max: 20 0;
+                                       fixed: 1 1;
+                                       rel1 { relative: 0.5  0.0; to_y: "bg"; }
+                                       rel2 { relative: 0.5  1.0; to_y: "bg"; }
+                                       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: "icon_show";
+                               signal: "elm,state,icon,visible";
+                               source: "elm";
+                               action:  STATE_SET "visible" 0.0;
+                               target: "elm.swallow.icon";
+                       }
+                       program {
+                               name: "icon_hide";
+                               signal: "elm,state,icon,hidden";
+                               source: "elm";
+                               action:  STATE_SET "default" 0.0;
+                               target: "elm.swallow.icon";
+                       }
+                       program {
+                               name: "end_show";
+                               signal: "elm,state,end,visible";
+                               source: "elm";
+                               action:  STATE_SET "visible" 0.0;
+                               target: "elm.swallow.end";
+                       }
+                       program {
+                               name: "end_hide";
+                               signal: "elm,state,end,hidden";
+                               source: "elm";
+                               action:  STATE_SET "default" 0.0;
+                               target: "elm.swallow.end";
+                       }
+                       program {
+                               name:   "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "disabler";
+                               after: "disable_ind";
+                       }
+                       program {
+                               name: "disable_ind";
+                               action: SIGNAL_EMIT "elm.dragable.slider:elm,state,disabled" "elm";
+                       }
+                       program {
+                               name: "enable";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "disabler";
+                               after: "enable_ind";
+                       }
+                       program {
+                               name: "enable_ind";
+                               action: SIGNAL_EMIT "elm.dragable.slider:elm,state,enabled" "elm";
+                       }
+               }
+       }
+
+       group {
+               name: "elm/slider/vertical/indicator/camera";
+               script {
+                       public value_hide = 0;
+                       public set_value_show() {
+                               set_int(value_hide, 0);
+                       }
+                       public set_value_hide() {
+                               set_int(value_hide, 1);
+                       }
+                       public thumb_down() {
+                               if (get_int(value_hide) == 1) {
+                                       set_state(PART:"elm.indicator", "default", 0.0);
+                               } else {
+                                       set_state(PART:"elm.indicator", "visible", 0.0);
+                               }
+                       }
+                       public thumb_up() {
+                               set_state(PART:"elm.indicator", "default", 0.0);
+                       }
+               }
+
+               parts {
+                       part {
+                               name: "button_events";
+                               type: RECT;
+                               mouse_events: 1;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 60 60;
+                                       aspect: 1.0 1.0;
+                                       aspect_preference: VERTICAL;
+                                       color: 0 0 0 0;
+                               }
+                       }
+                       part {
+                               name: "button0";
+                               mouse_events: 0;
+                               scale: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       fixed: 1 1;
+                                       min: 60 60;
+                                       image {
+                                               normal: SLIDER_HANDLER_IMAGE;
+                                               border: 5 5 5 10;
+                                       }
+                                       fill.smooth: 0;
+                               }
+                               description {
+                                       state: "disabled" 0.0;
+                                       inherit: "default" 0.0;
+                                       image {
+                                               normal: SLIDER_HANDLER_IMAGE;
+                                               border: 5 5 5 10;
+                                       }
+                               }
+                       }
+                       part {
+                               name: "elm.indicator";
+                               type: TEXT;
+                               mouse_events: 0;
+                               effect: SOFT_SHADOW;
+                               scale: 1;
+                               description { state: "default" 0.0;
+                                       visible: 0;
+                                       fixed: 1 1;
+                                       align: 0.5 1.0;
+                                       rel1 { to: "button0"; relative: 0.0 -0.25; offset: 0 0; }
+                                       rel2 { to_x: "button0"; relative: 1.0 -0.25; offset: -1 0; }
+                                       color: 224 224 224 255;
+                                       color3: 0 0 0 64;
+                                       text {
+                                               font:     "Sans,Edje-Vera";
+                                               size:     10;
+                                               min:      0 0;
+                                               align:    0.5 0.5;
+                                       }
+                               }
+                               description {
+                                       state: "visible" 0.0;
+                                       inherit: "default" 0.0;
+                                       visible: 1;
+                                       text.min: 1 1;
+                                       rel1.offset: 0 -1;
+                                       rel2.offset: -1 -1;
+                               }
+                       }
+               }
+
+               programs {
+                       program {
+                               name: "set_val_show";
+                               signal: "elm,state,val,show";
+                               source: "elm";
+                               script {
+                                       set_value_show();
+                               }
+                       }
+                       program {
+                               name: "set_val_hide";
+                               signal: "elm,state,val,hide";
+                               source: "elm";
+                               script {
+                                       set_value_hide();
+                               }
+                       }
+                       program {
+                               name: "val_show";
+                               signal: "mouse,down,*";
+                               source: "button_events";
+                               script {
+                                       thumb_down();
+                               }
+                       }
+                       program {
+                               name: "val_hide";
+                               signal: "mouse,up,*";
+                               source: "button_events";
+                               script {
+                                       thumb_up();
+                               }
+                       }
+                       program {
+                               name: "go_disabled";
+                               signal: "elm,state,disabled";
+                               source: "elm";
+                               action: STATE_SET "disabled" 0.0;
+                               target: "button0";
+                       }
+                       program {
+                               name: "go_enabled";
+                               signal: "elm,state,enabled";
+                               source: "elm";
+                               action: STATE_SET "default" 0.0;
+                               target: "button0";
+                       }
+               }
+       }
+
+/*hor edc*/
+/////////////////////////////////////////////////////////////////
+group { name: "elm/slider/horizontal/indicator/camera";
+
+      parts {
+         part { name: "button_events";
+            type: RECT;
+            mouse_events: 1;
+            scale: 1;
+            description { state: "default" 0.0;
+               fixed: 1 1;
+               min: 60 60;
+               aspect: 1.0 1.0;
+               aspect_preference: VERTICAL;
+               color: 0 0 0 0;
+            }
+            description { state: "disabled" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+            }
+         }
+
+         part { name: "button0";
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                       fixed: 1 1;
+                       min: SLIDER_INDICATOR_WIDTH_INC SLIDER_INDICATOR_HEIGHT_INC;
+                       max: 90 SLIDER_INDICATOR_HEIGHT_INC;
+                       rel1 {
+                               to: "elm.indicator";
+                       }
+                       rel2 {
+                               to: "elm.indicator";
+                       }
+                       image {
+                               normal: SLIDER_HANDLER_IMAGE;
+                       }
+                       fill.smooth: 0;
+               }
+         }
+         part { name: "elm.indicator";
+            type: TEXT;
+            mouse_events: 0;
+            scale: 1;
+            description { state: "default" 0.0;
+               visible: 1;
+               color: SLIDER_INDICATOR_TEXT_COLOR_INC;
+              fixed: 1 1;
+               min: 60 60;
+               text {
+                  font: "SLP:style=Medium";
+                  size: SLIDER_INDICATOR_TEXT_SIZE_INC;
+                  min: 1 1;
+                  align: 0.5 0.5;
+                  text_class: "slp_medium";
+               }
+            }
+            description { state: "hide" 0.0;
+               inherit: "default" 0.0;
+               visible: 0;
+             }
+         }
+      }
+      programs {
+         program { name: "set_val_show";
+            signal: "elm,state,val,show";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.indicator";
+         }
+         program { name: "set_val_hide";
+            signal: "elm,state,val,hide";
+            source: "elm";
+            action:  STATE_SET "hide" 0.0;
+            target: "elm.indicator";
+         }
+         program { name: "slider_disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action:  STATE_SET "disabled" 0.0;
+            target: "button0";
+            target: "button_events";
+         }
+         program { name: "slider_enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "button0";
+            target: "button_events";
+         }
+      }
+   }
+
+/////////////////////////////////////////////////////////////
+       group { name: "elm/slider/horizontal/camera";
+       script {
+               public invert_on = 0;
+               public set_invert_on() {
+                       set_state(PART:"level", "inverted", 0.0);
+                       set_state(PART:"level2", "inverted", 0.0);
+                       set_int(invert_on, 1);
+               }
+               public set_invert_off() {
+                       set_state(PART:"level", "default", 0.0);
+                       set_state(PART:"level2", "default", 0.0);
+                       set_int(invert_on, 0);
+               }
+               public thumb_down() {
+                       if(get_int(invert_on) == 0)
+                               set_state(PART:"level", "pressed", 0.0);
+                       else if(get_int(invert_on) == 1)
+                               set_state(PART:"level2", "pressed", 0.0);
+               }
+               public thumb_up() {
+                       if(get_int(invert_on) == 0)
+                               set_state(PART:"level", "default", 0.0);
+                       else if(get_int(invert_on) == 1)
+                               set_state(PART:"level2", "inverted", 0.0);
+                       }
+               }
+         parts {
+            part { name: "base";
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  min: 0 20;
+                  max: 99999 20;
+                  rel1 { to: "bg"; offset: 1 0; }
+                 rel2 { to: "bg"; offset: -2 -1; }
+                  image.normal: SLIDER_BAR_VER_IMAGE;
+                 fill.smooth: 0;
+               }
+            }
+
+            part { name: "bg";
+               type: RECT;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  rel1.to: "elm.swallow.bar";
+                  rel2.to: "elm.swallow.bar";
+                 color: 0 0 0 0;
+               }
+            }
+
+            part { name: "elm.swallow.bar";
+               type: SWALLOW;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                         min: 58 20;
+                         max: 99999 20;
+                         align: 1.0 0.5;
+                         rel1 {
+                            to_x: "bar_left_padding";
+                            relative: 1.0 0.0;
+                         }
+                         rel2 {
+                            to_x: "bar_right_padding";
+                            relative: 0.0 1.0;
+                         }
+                      }
+            }
+            part {
+               name: "bar_left_padding";
+               type: SWALLOW;
+               scale: 1;
+               description {
+                  state: "default" 0.0;
+                  visible: 0;
+                  min: 4 0;
+                  fixed: 1 1;
+                  rel1 {
+                     relative: 1.0  0.5;
+                     to_x: "elm.text";
+                  }
+                  rel2 {
+                     relative: 1.0  0.5;
+                     to_x: "elm.text";
+                  }
+                  align: 0.0 0.5;
+                 color: 0 0 0 0;
+               }
+            }
+            part {
+               name: "bar_right_padding";
+               type: SWALLOW;
+               scale: 1;
+               description {
+                  state: "default" 0.0;
+                  visible: 0;
+                  min: 0 0;
+                  fixed: 1 1;
+                  rel1 {
+                     relative: 0.0  0.5;
+                     to_x: "elm.units";
+                  }
+                  rel2 {
+                     relative: 0.0  0.5;
+                     to_x: "elm.units";
+                  }
+                  align: 1.0 0.5;
+               }
+            }
+
+            part { name: "level";
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  fixed: 1 1;
+                  rel1.to: "base";
+                  rel2 {
+                     to_y: "base";
+                     to_x: "elm.dragable.slider";
+                     relative: 0.5 1.0;
+                  }
+                  image.normal: SLIDER_BAR_VER_IMAGE;
+                 fill.smooth: 0;
+               }
+               description { state: "inverted" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 0;
+               }
+               description { state: "pressed" 0.0;
+                  inherit: "default" 0.0;
+                  image.normal: SLIDER_BAR_VER_IMAGE;
+                 fill.smooth: 0;
+               }
+            }
+            part { name: "level2";
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  fixed: 1 1;
+                  visible: 0;
+                  rel1 {
+                     to_y: "base";
+                     to_x: "elm.dragable.slider";
+                     relative: 0.5 0.0;
+                  }
+                  rel2.to: "base";
+                  image.normal: SLIDER_BAR_VER_IMAGE;
+                 fill.smooth: 0;
+               }
+               description { state: "inverted" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+               }
+               description { state: "pressed" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+                 image.normal: SLIDER_BAR_VER_IMAGE;
+                fill.smooth: 0;
+               }
+            }
+            part { name: "elm.swallow.icon";
+               type: SWALLOW;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  align: 0.0 0.5;
+                  rel1 {
+                     to_y: "elm.swallow.bar";
+                  }
+                  rel2 {
+                     relative: 0.0 1.0;
+                     to_y: "elm.swallow.bar";
+                  }
+               }
+               description { state: "visible" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+                  aspect: 1.0 1.0;
+                  aspect_preference: VERTICAL;
+               }
+            }
+            part { name: "elm.text";
+               type: TEXT;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  fixed: 1 1;
+                  align: 0.0 0.5;
+                  rel1.to_x: "elm.swallow.icon";
+                  rel1.relative: 1.0 0.0;
+                  rel2.to_x: "elm.swallow.icon";
+                  color: SLIDER_UNITS_TEXT_COLOR_INC;
+                  text {
+                     font: "SLP:style=Medium";
+                     size: SLIDER_UNITS_TEXT_SIZE_INC;
+                     min: 0 0;
+                     align: 0.0 0.5;
+                     text_class: "slp_medium";
+                  }
+               }
+               description { state: "visible" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+                  text.min: 1 1;
+               }
+            }
+            part { name: "elm.swallow.end";
+               type: SWALLOW;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  align: 1.0 0.5;
+                  rel1 {
+                     relative: 1.0 0.0;
+                     to_y: "elm.swallow.bar";
+                  }
+                  rel2 {
+                     relative: 1.0 1.0;
+                     to_y: "elm.swallow.bar";
+                  }
+               }
+               description { state: "visible" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+                  aspect: 1.0 1.0;
+                  aspect_preference: VERTICAL;
+               }
+            }
+            part { name: "units";
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  rel1 {
+                     to_x: "elm.units";
+                  }
+               }
+               description { state: "visible" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+               }
+            }
+            part { name: "elm.units";
+               type: TEXT;
+               mouse_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  fixed: 1 1;
+                  align: 1.0 0.5;
+                  rel1.to_x: "elm.swallow.end";
+                  rel2.relative: 0.0 1.0;
+                  rel2.to_x: "elm.swallow.end";
+                  color: SLIDER_UNITS_TEXT_COLOR_INC;
+                  text {
+                     font: "SLP:style=Bold";
+                     size: SLIDER_UNITS_TEXT_SIZE_INC;
+                     min: 0 0;
+                     align: 0.0 0.5;
+                     text_class: "slp_bold";
+                  }
+               }
+               description { state: "visible" 0.0;
+                  inherit: "default" 0.0;
+                  fixed: 1 1;
+                  visible: 1;
+                  text.min: 1 1;
+               }
+            }
+            part { name: "elm.dragable.slider";
+               type: GROUP;
+               source: "elm/slider/horizontal/indicator/camera";
+               mouse_events: 1;
+               scale: 1;
+               dragable {
+                  x: 1 1 0;
+                  y: 0 0 0;
+                  confine: "bg";
+               }
+               description { state: "default" 0.0;
+                  min: 20 20;
+                  fixed: 1 1;
+                  align: 0.5 0.5;
+                  color: 0 0 0 0;
+               }
+            }
+            part { name: "disabler";
+               type: RECT;
+               mouse_events: 1;
+               repeat_events: 0;
+               scale: 1;
+               description { state: "default" 0.0;
+                  visible: 0;
+                  min: 1 1;
+                  color: SLIDER_DISABLER_PART_COLOR_INC;
+               }
+               description { state: "disabled" 0.0;
+                  inherit: "default" 0.0;
+                  visible: 1;
+               }
+            }
+         }
+         programs {
+            program { name: "text_show";
+            signal: "elm,state,text,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.text";
+         }
+         program { name: "text_hide";
+            signal: "elm,state,text,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.text";
+         }
+         program { name: "icon_show";
+            signal: "elm,state,icon,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.swallow.icon";
+         }
+         program { name: "icon_hide";
+            signal: "elm,state,icon,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.swallow.icon";
+         }
+         program { name: "end_show";
+            signal: "elm,state,end,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.swallow.end";
+         }
+         program { name: "end_hide";
+            signal: "elm,state,end,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.swallow.end";
+         }
+         program { name: "units_show";
+            signal: "elm,state,units,visible";
+            source: "elm";
+            action:  STATE_SET "visible" 0.0;
+            target: "elm.units";
+            target: "units";
+         }
+         program { name: "units_hide";
+            signal: "elm,state,units,hidden";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "elm.units";
+            target: "units";
+         }
+
+         program { name: "invert_on";
+            signal: "elm,state,inverted,on";
+            source: "elm";
+            script {
+               set_invert_on();
+            }
+         }
+         program { name: "invert_off";
+            signal: "elm,state,inverted,off";
+            source: "elm";
+            script {
+               set_invert_off();
+            }
+         }
+         program { name: "val_show";
+            signal: "mouse,down,*";
+            source: "elm.dragable.slider";
+            script {
+               thumb_down();
+            }
+         }
+         program { name: "val_hide";
+            signal: "mouse,up,*";
+            source: "elm.dragable.slider";
+            script {
+               thumb_up();
+            }
+         }
+         program { name: "slider_disable";
+            signal: "elm,state,disabled";
+            source: "elm";
+            action:  STATE_SET "disabled" 0.0;
+            target: "disabler";
+         }
+         program { name: "slider_enable";
+            signal: "elm,state,enabled";
+            source: "elm";
+            action:  STATE_SET "default" 0.0;
+            target: "disabler";
+         }
+      }
+   }
+///////////////////////////////////////////
+}
+
+//end file
+
diff --git a/edc/style_tizen_hd_inc.edc b/edc/style_tizen_hd_inc.edc
new file mode 100644 (file)
index 0000000..dcef987
--- /dev/null
@@ -0,0 +1,1150 @@
+/*
+ * 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 BG_DEFAULT_COLOR_INC 249 249 249 255
+#define BG_EDIT_MODE_COLOR_INC 218 210 201 255
+#define BG_GROUP_LIST_COLOR_INC 242 238 233 255
+#define BG_TRANSPARENT_COLOR_INC 0 0 0 0
+
+#define LAYOUT_BG_COLOR_INC 249 249 249 255
+#define LAYOUT_EDIT_MODE_BG_COLOR_INC 218 210 201 255
+#define LAYOUT_GROUP_LIST_BG_COLOR_INC 242 238 233 255
+#define LAYOUT_INDICATOR_HEIGHT_INC 50
+#define LAYOUT_INDICATOR_COLOR_INC 0 0 0 255
+
+#define NAVIFRAME_TITLE_H_INC 108
+#define NAVIFRAME_SEGMENT_TITLE_H_INC 124
+#define NAVIFRAME_OH_OPENED_H_INC 106
+#define NAVIFRAME_OH_CONTENT_H_INC 74
+#define NAVIFRAME_OH_PADDING_INC 16
+#define NAVIFRAME_OH_ARROW_SIZE_INC 19 12
+#define NAVIFRAME_OH_OPENED_DOUBLE_H_INC 196
+#define NAVIFRAME_PREV_BTN_W_INC 124
+#define NAVIFRAME_TITLE_FUNC_BTN_SIZE_INC 124 80
+#define NAVIFRAME_TITLE_PREV_BTN_BG_SIZE_INC 144
+#define NAVIFRAME_TEXT_PADDING_INC 144
+#define NAVIFRAME_NO_BUTTON_ICON_PADDING_INC 52
+#define NAVIFRAME_TEXT_PADDING_ICON_VISIBLE_INC 186
+#define NAVIFRAME_TITLE_SEGMENT_H_INC 64
+#define NAVIFRAME_TITLE_SEGMENT_FONT_SIZE_INC 32
+#define NAVIFRAME_TITLE_SEGMENT_TEXT_H_INC 50
+#define NAVIFRAME_TITLE_FONT_SIZE_INC 40
+#define NAVIFRAME_SUBTITLE_FONT_SIZE_INC 32
+#define NAVIFRAME_ICON_SIZE_INC 32 32
+#define NAVIFRAME_ICON_PADDING_INC 16 0
+#define NAVIFRAME_CONTROLBAR_BG_COLOR_INC 100 85 66 255
+#define NAVIFRAME_TITLE_TEXT_COLOR_INC 73 44 7 255
+#define NAVIFRAME_SUBTITLE_TEXT_COLOR_INC 73 44 7 255
+#define NAVIFRAME_TITLE_BG_COLOR_INC 219 201 174 255
+#define NAVIFRAME_OH_BORDER_INC 0 0 4 0
+
+#define PROGRESSBAR_TITLE_FONT_SIZE_INC 28
+#define PROGRESSBAR_STATUS_TEXT_FONT_SIZE_INC 20
+
+#define POPUP_DEFAULT_TITLE_TEXT_COLOR_INC 255 255 255 255
+#define POPUP_DEFAULT_DESCRIPTION_TEXT_COLOR_INC "#000000"
+#define POPUP_DIM_BG_COLOR_INC 61 59 56 204
+#define POPUP_DIM_BG_CLICKED_COLOR_INC 61 59 56 250
+#define POPUP_DIM_BG_TRANS_COLOR_INC 0 0 0 0
+#define POPUP_DIM_BG_CLICKED_TRANS_COLOR_INC 0 0 0 50
+#define POPUP_CUSTOMSTYLE_TITLE_BOTTOM_LINE_COLOR_INC 199 199 199 255
+#define POPUP_CUSTOMSTYLE_TITLE_TEXT_COLOR_INC 0 0 0 255
+
+#define CTXPOPUP_SEPARATOR_COLOR_INC 199 199 199 255
+#define CTXPOPUP_TP_BG_COLOR_INC 221 134 21 255
+#define CTXPOPUP_ITEM_TEXT_SIZE_INC 44
+#define CTXPOPUP_ITEM_HEIGHT_INC 110
+#define CTXPOPUP_ITEM_ICON_INC 160 110
+#define CTXPOPUP_ICON_WIDTH_INC 80
+#define CTXPOPUP_ICON_HEIGHT_INC 80
+#define CTXPOPUP_ARROW_SIZE_INC 48 48
+#define CTXPOPUP_CONTENT_WIDTH_MAX_INC 630
+#define CTXPOPUP_ITEM_PADDING_INC 25
+#define CTXPOPUP_IE_ARROW_SIZE_INC 52
+#define CTXPOPUP_IE_FONT_SIZE_INC 40
+#define CTXPOPUP_IE_ITEM_PADDING_INC 22
+#define CTXPOPUP_IE_ITEM_HEIGHT_INC 75
+#define CTXPOPUP_IE_CONTENT_WIDTH_MAX_INC 720
+#define CTXPOPUP_IE_ICON_WIDTH_INC 60
+#define CTXPOPUP_IE_ICON_HEIGHT_INC 60
+#define CTXPOPUP_TP_ARROW_SIZE_INC 30
+#define CTXPOPUP_TP_HEIGHT_INC 106
+
+#define DISKSELECTOR_DF_FONT_COLOR_INC         231 171 92 255
+#define DISKSELECTOR_DF_FONT_MOUSE_DOWN_COLOR_INC 255 201 122 255
+#define DISKSELECTOR_DF_ITEM_MIN_SIZE_INC      70 106;
+#define DISKSELECTOR_DF_FONT_SIZE_INC          44
+#define DISKSELECTOR_DF_DATA_MIN_HEIGHT_INC    "106"
+
+#define LABEL_TEXT_BLOCK_STYLE_COLOR_INC "#000000"
+#define LABEL_FONT_SIZE_INC 36
+#define LABEL_MIN_FONT_SIZE_INC 27
+#define LABEL_MAX_FONT_SIZE_INC 90
+
+#define GENGRID_FONT_STYLE_18_INC "26"
+#define GENGRID_PART_BG_COLOR_INC 0 0 0 0
+#define GENGRID_PART_ITEM_BG_COLOR_INC 239 239 239 255
+#define GENGRID_PART_REORDER_BG_COLOR_INC 0 0 0 128
+#define GENGRID_PART_TEXTBLOCK_STYLE_COLOR_INC "#F9F9F9"
+
+#define GENLIST_HEIGHT_1_INC 1
+#define GENLIST_HEIGHT_16_INC 16
+#define GENLIST_HEIGHT_33_INC 33
+#define GENLIST_HEIGHT_49_INC 49
+#define GENLIST_HEIGHT_62_INC 62
+#define GENLIST_HEIGHT_65_INC 65
+#define GENLIST_HEIGHT_73_INC 73
+#define GENLIST_HEIGHT_77_INC 77
+#define GENLIST_HEIGHT_89_INC 89
+#define GENLIST_HEIGHT_93_INC 93
+#define GENLIST_HEIGHT_97_INC 97
+#define GENLIST_HEIGHT_103_INC 103
+#define GENLIST_HEIGHT_113_INC 113
+#define GENLIST_HEIGHT_129_INC 129
+#define GENLIST_HEIGHT_177_INC 177
+#define GENLIST_HEIGHT_182_INC 182
+#define GENLIST_HEIGHT_190_INC 190
+#define GENLIST_HEIGHT_207_INC 207
+#define GENLIST_HEIGHT_260_INC 260
+#define GENLIST_HEIGHT_291_INC 291
+#define GENLIST_HEIGHT_454_INC 454
+#define GENLIST_HEIGHT_566_INC 566
+
+#define GENLIST_PADDING_4_INC 4
+#define GENLIST_PADDING_5_INC 5
+#define GENLIST_PADDING_6_INC 6
+#define GENLIST_PADDING_8_INC 8
+#define GENLIST_PADDING_10_INC 10
+#define GENLIST_PADDING_11_INC 11
+#define GENLIST_PADDING_12_INC 12
+#define GENLIST_PADDING_13_INC 13
+#define GENLIST_PADDING_14_INC 14
+#define GENLIST_PADDING_16_INC 16
+#define GENLIST_PADDING_18_INC 18
+#define GENLIST_PADDING_21_INC 21
+#define GENLIST_PADDING_22_INC 22
+#define GENLIST_PADDING_24_INC 24
+#define GENLIST_PADDING_27_INC 27
+#define GENLIST_PADDING_32_INC 32
+#define GENLIST_PADDING_34_INC 34
+#define GENLIST_PADDING_46_INC 46
+#define GENLIST_PADDING_48_INC 48
+#define GENLIST_PADDING_64_INC 64
+#define GENLIST_PADDING_74_INC 74
+#define GENLIST_PADDING_88_INC 88
+#define GENLIST_PADDING_124_INC 124
+
+#define GENLIST_FONT_27_INC 27
+#define GENLIST_FONT_28_INC 28
+#define GENLIST_FONT_30_INC 30
+#define GENLIST_FONT_32_INC 32
+#define GENLIST_FONT_STYLE_32_INC "32"
+#define GENLIST_FONT_36_INC 36
+#define GENLIST_FONT_STYLE_36_INC "36"
+#define GENLIST_FONT_40_INC 40
+#define GENLIST_FONT_STYLE_40_INC "40"
+#define GENLIST_FONT_42_INC 42
+#define GENLIST_FONT_STYLE_42_INC "42"
+#define GENLIST_FONT_44_INC 44
+#define GENLIST_FONT_STYLE_44_INC "44"
+#define GENLIST_FONT_48_INC 48
+#define GENLIST_FONT_STYLE_48_INC "48"
+
+#define GENLIST_SIZE_6_INC 6
+#define GENLIST_SIZE_8_INC 8
+#define GENLIST_SIZE_10_INC 10
+#define GENLIST_SIZE_13_INC 13
+#define GENLIST_SIZE_16_INC 16
+#define GENLIST_SIZE_18_INC 18
+#define GENLIST_SIZE_21_INC 21
+#define GENLIST_SIZE_32_INC 32
+#define GENLIST_SIZE_35_INC 35
+#define GENLIST_SIZE_38_INC 38
+#define GENLIST_SIZE_40_INC 40
+#define GENLIST_SIZE_42_INC 42
+#define GENLIST_SIZE_44_INC 44
+#define GENLIST_SIZE_45_INC 45
+#define GENLIST_SIZE_46_INC 46
+#define GENLIST_SIZE_48_INC 48
+#define GENLIST_SIZE_54_INC 54
+#define GENLIST_SIZE_56_INC 56
+#define GENLIST_SIZE_57_INC 57
+#define GENLIST_SIZE_61_INC 61
+#define GENLIST_SIZE_SLIDE_60_INC 60
+#define GENLIST_SIZE_64_INC 64
+#define GENLIST_SIZE_80_INC 80
+#define GENLIST_SIZE_90_INC 90
+#define GENLIST_SIZE_96_INC 96
+#define GENLIST_SIZE_112_INC 112
+#define GENLIST_SIZE_116_INC 116
+#define GENLIST_SIZE_128_INC 128
+#define GENLIST_SIZE_133_INC 133
+#define GENLIST_SIZE_141_INC 141
+#define GENLIST_SIZE_144_INC 144
+#define GENLIST_SIZE_154_INC 154
+#define GENLIST_SIZE_160_INC 160
+#define GENLIST_SIZE_163_INC 163
+#define GENLIST_SIZE_168_INC 168
+#define GENLIST_SIZE_174_INC 174
+#define GENLIST_SIZE_SLIDE_165_INC 165
+#define GENLIST_SIZE_176_INC 176
+#define GENLIST_SIZE_177_INC 177
+#define GENLIST_SIZE_192_INC 192
+#define GENLIST_SIZE_195_INC 195
+#define GENLIST_SIZE_206_INC 206
+#define GENLIST_SIZE_234_INC 234
+#define GENLIST_SIZE_235_INC 235
+#define GENLIST_SIZE_SLIDE_220_INC 220
+#define GENLIST_SIZE_390_INC 390
+#define GENLIST_SIZE_448_INC 448
+#define GENLIST_SIZE_560_INC 560
+#define GENLIST_SIZE_576_INC 576
+#define GENLIST_SIZE_672_INC 672
+
+#define GENLIST_TREESIZE_16_INC 16
+#define GENLIST_TREESIZE_32_INC 32
+
+//new
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_READ_COLOR_INC 158 158 158 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_COLOR_INC 129 129 129 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_SETTINGS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_LIST_SUB_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_FLEXIBLE_TEXT_SUB_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_INDEX_LIST_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_COLOR_INC 70 70 70 255
+#define GENLIST_PART_FONT_EDITFIELD_TEXT_CURSOR_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_MULTILINE_TEXT_COLOR_INC 149 149 149 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_UNREAD_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_COLOR_INC 104 137 152 255
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONVERTOR_STYLE_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_UNREAD_EMAIL_COLOR_INC 249 249 249 255
+#define GENLIST_PART_FONT_CONTENTS_TEXT_COLOR_INC 210 210 210 255
+#define GENLIST_PART_FONT_NAME_TEXT_COLOR_INC 129 129 129 255
+#define GENLIST_PART_FONT_NAME_TEXT_DIM_COLOR_INC 0 140 210 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_TIME_COLOR_INC 96 96 96 255
+#define GENLIST_PART_FONT_BUBBLE_SENT_MESSAGE_COLOR_INC 0 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_SOS_MESSAGE_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_DATE_COLOR_INC 164 164 164 255
+#define GENLIST_PART_FONT_BUBBLE_LINK_MESSAGE_COLOR_INC 34 129 157 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_FAILED_COLOR_INC 211 0 0 255
+#define GENLIST_PART_FONT_BUBBLE_READ_MESSAGE_NAME_COLOR_INC 57 166 215 255
+#define GENLIST_PART_FONT_BUBBLE_MESSAGE_HELP_COLOR_INC 146 146 146 255
+#define GENLIST_PART_FONT_SWEEP_STYLE_COLOR_INC 118 118 118 255
+
+#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 "#646464FF"
+#define GENLIST_PART_FONT_MULTILINE_TEXT_STYLE_COLOR_INC "#646464FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_READ_STYLE_COLOR_INC "#9E9E9EFF"
+#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 "#688998FF"
+#define GENLIST_PART_FONT_3LINE_MAIN_TEXT_2_FOCUS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_FONT_HELP_TEXT_STYLE_COLOR_INC "#929292FF"
+
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 64
+#define GENLIST_PART_BG_COLOR_INC 0 0 0 0
+#define GENLIST_PART_LIST_BG_COLOR_INC 0 0 0 0
+#define GENLIST_PART_LIST_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_LIST_PRESS_COLOR_INC 0 140 210 255
+#define GENLIST_PART_TEXT_PRESS_COLOR_INC 249 249 249 255
+#define GENLIST_PART_EXPANDABLE_2ND_DEPTH_BG_COLOR_INC 31 31 31 255
+#define GENLIST_PART_EXPANDABLE_3ND_DEPTH_BG_COLOR_INC 46 46 46 255
+#define GENLIST_PART_EDIT_SELECT_ALL_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_REORDER_BG_COLOR_INC 36 36 36 255
+#define GENLIST_PART_EDIT_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_PART_BUBBLE_DATE_BG_COLOR_INC 66 66 66 255
+#define GENLIST_PART_BUBBLE_1PIXEL_LINE_COLOR_INC 153 153 153 255
+#define GENLIST_PART_INDEX_LIST_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_PART_INDEX_LIST_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+               }\
+            }\
+         }
+
+#define GENLIST_PART_TEXT_PRESS_STYLE_COLOR_INC "#F9F9F9FF"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#31A1FF"
+
+#define GENLIST_DIALOGUE_FONT_SUB_TITLE_COLOR_INC 102 102 102 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_01_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_DIM_COLOR_INC 63 141 173 255
+#define GENLIST_DIALOGUE_FONT_EDIT_MODE_TEXT_02_FOCUS_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_MAIN_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_TEXT_SUB_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_NAME_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_APPS_INC_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_RATING_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_ORIGINAL_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_SALE_COLOR_INC 221 134 21 255
+#define GENLIST_DIALOGUE_FONT_APPS_PRICE_FREE_COLOR_INC 0 140 210 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_TITLE_COLOR_INC 153 153 153 255
+#define GENLIST_DIALOGUE_FONT_PASSWORD_INPUT_TEXT_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_WORD_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_PRONUNCIATION_COLOR_INC 152 89 0 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_NATION_COLOR_INC 146 146 146 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_01_COLOR_INC 249 249 249 255
+#define GENLIST_DIALOGUE_FONT_DETAIL_INFO_02_COLOR_INC 146 146 146 255
+
+#define GENLIST_DIALOGUE_GROUP_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LIST_BG_COLOR_INC 36 36 36 255
+#define GENLIST_DIALOGUE_GROUP_LEFT_BG_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_ICON_1PIXEL_LINE_COLOR_INC 68 68 68 255
+#define GENLIST_DIALOGUE_PHOTO_ID_1PIXEL_LINE_COLOR_INC 68 68 68 255
+
+//old
+#if 0
+#define GENLIST_PART_DISCLIP_COLOR_INC 255 255 255 64
+#define GENLIST_PART_BG_COLOR_INC 249 249 249 255
+#define GENLIST_PART_BG_SELECTED_COLOR_INC 199 185 164 255
+#define GENLIST_PART_BG_UNSELECTED_COLOR_INC 199 185 164 0
+#define GENLIST_PART_DIALOGUE_BG_COLOR_INC 242 238 233 255
+#define GENLIST_PART_SELECT_ALL_BG_COLOR_INC 239 237 230 255
+#define GENLIST_PART_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_PART_TEXT_SELECTED_COLOR_INC 255 255 255 255
+#define GENLIST_PART_SUB_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_PART_SUB_TEXT_SETTINGS_COLOR_INC 226 144 1 255
+#define GENLIST_PART_MULTILINE_TEXT_COLOR_INC GENLIST_PART_TEXT_COLOR_INC
+#define GENLIST_PART_MULTILINE_TITLE_COLOR_INC 78 73 69 255
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_COLOR_INC "#4E4E4EFF"
+#define GENLIST_PART_MULTILINE_TITLE_STYLE_SELECTED_COLOR_INC "#4E4E4EFF"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_COLOR_INC "#000000"
+#define GENLIST_PART_MULTILINE_SUB_TEXT_STYLE_COLOR_INC "#6C6C6C"
+#define GENLIST_PART_MULTILINE_TEXT_STYLE_SELECTED_COLOR_INC "#FFFFFF"
+#define GENLIST_PART_MULTILINE_HELP_STYLE_COLOR_INC "#9c8e7d"
+#define GENLIST_PART_MATCH_TAG_COLOR_INC "+ color=#31A1FF"
+#define GENLIST_PART_SLIDE_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_BOTTOM_LINE_INC 199 199 199 255
+#define GENLIST_PART_DIALOGUE_SUBTITLE_TEXT_COLOR_INC 156 156 156 255
+#define GENLIST_PART_DIALOGUE_INDICATOR_BG_COLOR_INC 199 199 199 255
+#define GENLIST_PART_EMAIL_READ_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_PART_EMAIL_UNREAD_TEXT_COLOR_INC 0 0 0 255
+#define GENLIST_PART_EMAIL_URGENCY_UNREAD_TEXT_COLOR_INC 207 37 37 255
+#define GENLIST_PART_EMAIL_URGENCY_READ_TEXT_COLOR_INC 171 82 82 255
+#endif
+#define GENLIST_PART_EMAIL_MSGCOUNT_TEXT_COLOR_INC 255 255 255 255
+#define GENLIST_PART_TEXTBLOCK_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_TEXTBLOCK_STYLE_SELECTED_COLOR_INC "#FFFFFF"
+#define GENLIST_PART_TEXTBLOCK_READ_STYLE_COLOR_INC "#989898FF"
+#define GENLIST_PART_TEXTBLOCK_UNREAD_STYLE_COLOR_INC "#000000FF"
+#define GENLIST_PART_TEXTBLOCK_SUB_STYLE_COLOR_INC "#6C6C6C"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_READ_STYLE_COLOR_INC "#AB5252"
+#define GENLIST_PART_TEXTBLOCK_URGENCY_UNREAD_STYLE_COLOR_INC "#CF2525"
+#if 0
+#define GENLIST_GROUP_PART_TEXT_COLOR_INC 108 108 108 255
+#define GENLIST_GROUP_PART_BASE_EVENT_INC \
+         part { name: "base_event";\
+            type: RECT;\
+            repeat_events: 0;\
+            description { state: "default" 0.0;\
+               color: 0 0 0 0;\
+            }\
+         }
+#define GENLIST_GROUP_PART_BASE_IMAGE_INC \
+         part { name: "base_image";\
+            repeat_events: 1;\
+            description { state: "default" 0.0;\
+               rel1.to: "rect";\
+               rel2.to: "rect";\
+               image {\
+                  normal: "00_index list_bg.png";\
+               }\
+            }\
+         }
+#define GENLIST_GROUP_BG_COLOR_DEFAULT_INC 0 0 0 0
+#define GENLIST_GROUP_BG_COLOR_ALPHA_OFF_INC 0 0 0 0
+#define GENLIST_GROUP_LEFT_BG_COLOR_INC 210 206 191 255
+#define GENLIST_EDIT_PART_LINE_INC 187 187 187 150
+#define GENLIST_EDIT_PART_BOTTOM_LINE_INC 82 82 82 255
+#define GENLIST_EDIT_BG_COLOR_INC 234 230 217 255
+#define GENLIST_EDIT_SELECT_ALL_BG_COLOR_INC 239 237 230 255
+#define GENLIST_EXPANDABLE_PART_BG_COLOR_INC GENLIST_PART_BG_COLOR_INC
+#define GENLIST_EXPANDABLE2_PART_BG_COLOR_INC 242 238 233 255
+#define GENLIST_EXPANDABLE3_PART_BG_COLOR_INC 218 212 205 255
+#define GENLIST_EXPANDABLE2_NOSHADOW_BG_COLOR_INC 242 238 233 255
+#define GENLIST_EXPANDABLE_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+          }
+#define GENLIST_PART_BG_EXPANDABLE3_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_bg.png"; \
+                  border: 0 0 12 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_EXPANDABLE3_NOSHADOW_PART_BG_IMAGE_INC \
+         part { name: "bg_image"; \
+            clip_to: "disclip"; \
+            mouse_events: 0; \
+            description { state: "default" 0.0; \
+               image { \
+                  normal: "00_list_expandable_2_noshadow_bg.png"; \
+                  border: 0 0 0 6; \
+                  border_scale: 1; \
+               } \
+            } \
+            description { state: "selected" 0.0; \
+               inherit: "default" 0.0; \
+               image.normal: "00_list_bar_press_1x80.png"; \
+            } \
+            GENLIST_PART_MAP_START(-90.0, 0.0, 0.0) \
+            GENLIST_PART_MAP_FINISH(0.0, 0.0, 0.0) \
+         }
+#define GENLIST_DIALOGUE_EXPANDABLE2_PART_BG_COLOR_INC 242 238 233 255
+#define GENLIST_DIALOGUE_EXPANDABLE3_PART_BG_COLOR_INC 218 212 205 255
+#define GENLIST_GROUP_PART_BUBBLE_TEXT_COLOR_INC 76 75 73 255
+#define GENLIST_GROUP_PART_BUBBLE_BG_COLOR_INC 220 211 198 255
+#define GENLIST_BUBBLE_BG_COLOR_INC 192 192 192 255
+#endif
+
+#define CONTACT_DISPLAY_NAME_FONT_COLOR_INC  0 0 0 255
+#define CONTACT_DISPLAY_NAME_FONT_GRAY_COLOR_INC 167 167 167 255
+
+#define BUTTON_TEXT_STYLE1_NORMAL_COLOR_INC 78 73 69 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_TEXT_DISABLED_COLOR_INC 160 151 1 255
+
+#define BUTTON_TEXT_NAVIFRAME_NORMAL_COLOR_INC 78 73 69 255
+#define BUTTON_TEXT_NAVIFRAME_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_NAVIFRAME_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_NAVIFRAME_DISABLED_COLOR_INC 185 185 185 255
+
+#define BUTTON_ICON_TEXT_NORMAL_COLOR_INC 90 73 40 255
+#define BUTTON_ICON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_ICON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_ICON_TEXT_DISABLED_COLOR_INC 154 144 123 255
+
+#define BUTTON_POPUP_BUTTON_TEXT_NORMAL_COLOR_INC 53 45 39 255
+#define BUTTON_POPUP_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_POPUP_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_POPUP_BUTTON_TEXT_DISABLED_COLOR_INC 87 87 87 255
+
+#define BUTTON_SWEEP_BUTTON_TEXT_NORMAL_COLOR_INC 78 73 69 255
+#define BUTTON_SWEEP_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_SWEEP_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_SWEEP_BUTTON_TEXT_DISABLED_COLOR_INC 185 185 185 255
+
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_NORMAL_COLOR_INC 78 73 69 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_DEFAULT_STYLE_BUTTON_TEXT_DISABLED_COLOR_INC 185 185 185 255
+
+#define BUTTON_CONTACT_BUTTON_BG_NORMAL_COLOR_INC 195 160 107 255
+#define BUTTON_CONTACT_BUTTON_BG_PRESSED_COLOR_INC 103 79 43 255
+
+#define BUTTON_CONTACT_BUTTON_TEXT_NORMAL_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_CONTACT_BUTTON_TEXT_DISABLED_COLOR_INC 255 255 255 255
+
+#define BUTTON_HIDDEN_BUTTON_TEXT_NORMAL_COLOR_INC 0 0 0 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+#define BUTTON_HIDDEN_BUTTON_TEXT_DISABLED_COLOR_INC 154 144 123 255
+
+#define BUTTON_TEXT_CONTACTS_DELETE_NORMAL_COLOR_INC 207 41 41 255
+#define BUTTON_TEXT_CONTACTS_DELETE_PRESSED_COLOR_INC 255 255 255 255
+#define BUTTON_TEXT_CONTACTS_DELETE_DISABLED_COLOR_INC 0 0 0 128
+
+#define BUTTON_NUMBERED_TEXT_NORMAL_COLOR_INC 78 73 69 255
+
+#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_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 20 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 32
+
+#define BUTTON_TEXT_STYLE2_BG_MIN_INC 100 74
+#define BUTTON_TEXT_STYLE2_VISIBLE_BG_MIN_INC 148 74
+#define BUTTON_TEXT_STYLE2_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_TEXT_STYLE2_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TEXT_STYLE2_PADDING_MIN_INC 5 5
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_TEXT_STYLE2_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_STYLE2_FONT_SIZE_INC 32
+
+#define BUTTON_CIRCLE_STYLE_BG_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_IMAGE_MIN_MAX_INC 64 64
+#define BUTTON_CIRCLE_STYLE_CONTENT_MIN_MAX_INC 35 35
+
+#define BUTTON_POPUP_BG_NORMAL_MIN_INC 30 74
+#define BUTTON_POPUP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_POPUP_PADDING_MIN_INC 8 5
+#define BUTTON_POPUP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 8 0
+#define BUTTON_POPUP_ICON_ICONONLY_MIN_INC 38 38
+#define BUTTON_POPUP_TEXT_MIN_INC 64 20
+#define BUTTON_POPUP_TEXT_FONT_SIZE_INC 32
+
+#define BUTTON_EDIT_STYLE_BG_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_IMAGE_NORMAL_MIN_MAX_INC 74 74
+#define BUTTON_EDIT_STYLE_BORDER_INC 8 0 5 5
+
+#define BUTTON_EDIT_NORMAL_MIN_WIDTH_INC 54
+#define BUTTON_EDIT_NORMAL_MIN_HEIGHT_INC 54
+#define BUTTON_EDIT_EXTENDED_MIN_WIDTH_INC 64
+#define BUTTON_EDIT_EXTENDED_MIN_HEIGHT_INC 80
+
+#define BUTTON_SWEEP_BG_NORMAL_MIN_INC 12 60
+#define BUTTON_SWEEP_BG_BORDER_INC 5 5 5 5
+#define BUTTON_SWEEP_PADDING_MIN_INC 5 5
+#define BUTTON_SWEEP_ICON_RECT_MIN_INC 0 28
+#define BUTTON_SWEEP_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_SWEEP_ICONONLY_ICON_MIN_INC 28 28
+#define BUTTON_SWEEP_TEXT_MIN_INC 90 28
+#define BUTTON_SWEEP_FONT_SIZE_INC 32
+
+#define BUTTON_SEARCHBAR_BG_NORMAL_MIN_INC 12 74
+#define BUTTON_SEARCHBAR_BG_BORDER_INC 6 6 6 6
+#define BUTTON_SEARCHBAR_PADDING_MIN_INC 5 5
+#define BUTTON_SEARCHBAR_ICON_RECT_MIN_INC 0 28
+#define BUTTON_SEARCHBAR_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_SEARCHBAR_ICONONLY_ICON_MIN_INC 28 28
+#define BUTTON_SEARCHBAR_TEXT_MIN_INC 90 28
+#define BUTTON_SEARCHBAR_FONT_SIZE_INC 32
+
+#define BUTTON_HIDDEN_BG_NORMAL_MIN_INC 12 60
+#define BUTTON_HIDDEN_BG_BORDER_INC 5 5 5 5
+#define BUTTON_HIDDEN_PADDING_MIN_INC 5 5
+#define BUTTON_HIDDEN_ICON_RECT_MIN_INC 0 28
+#define BUTTON_HIDDEN_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_HIDDEN_ICON_ICONONLY_MIN_INC 28 28
+#define BUTTON_HIDDEN_TEXT_MIN_INC 90 28
+#define BUTTON_HIDDEN_FONT_SIZE_INC 38
+
+#define BUTTON_EXPANDABLE_NUMBER_BG_NORMAL_MIN_MAX_INC 108 44
+#define BUTTON_EXPANDABLE_NUMBER_BG_BORDER_INC 5 5 5 5
+#define BUTTON_EXPANDABLE_NUMBER_PADDING_MIN_INC 16 1
+#define BUTTON_EXPANDABLE_NUMBER_ICON_RECT_EXPAND__MIN_MAX_INC 16 22
+#define BUTTON_EXPANDABLE_NUMBER_TEXT_MIN_MAX_INC 44 44
+#define BUTTON_EXPANDABLE_NUMBER_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_DELETE_BG_NORMAL_MIN_INC 50 74
+#define BUTTON_CONTACT_DELETE_BG_BORDER_INC 8 0 5 5
+#define BUTTON_CONTACT_DELETE_PADDING_LEFT_TOP_MIN_INC 36 2
+#define BUTTON_CONTACT_DELETE_PADDING_RIGHT_BOTTOM_MIN_INC 14 2
+#define BUTTON_CONTACT_DELETE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_CONTACT_DELETE_ICON_ICONONLY_MIN_INC 42 42
+#define BUTTON_CONTACT_DELETE_FONT_SIZE_INC 32
+
+#define BUTTON_CONTACT_BG_NORMAL_MIN_INC 66 44
+#define BUTTON_CONTACT_PADDING_MIN_INC 16 1
+#define BUTTON_CONTACT_FONT_SIZE_INC 38
+
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_MIN_MAX_INC 106 74
+#define BUTTON_NAVIFRAME_BACK_BUTTON_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_BACK_BUTTON_MIN_MAX_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
+
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_MIN_INC 22 46
+#define BUTTON_NAVIFRAME_CENTER_BG_NORMAL_BORDER_INC 4 4 4 4
+#define BUTTON_NAVIFRAME_CENTER_PADDING_MIN_MAX_INC 16 2
+#define BUTTON_NAVIFRAME_CENTER_ICON_RECT_VISIBLE_MIN_SIZE 36 36
+#define BUTTON_NAVIFRAME_CENTER_PADDING_AFTER_ICON_VISIBLE_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_PADDING_BEFORE_TEXT_DEFAULT_MIN_INC 6 0
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_VISIBLE_MIN_MAX_INC 36 36
+#define BUTTON_NAVIFRAME_CENTER_SWALLOW_ICONONLY_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_CENTER_TEXT_FONT_SIZE_INC 32
+#define BUTTON_NAVIFRAME_MULTILINE_TEXT_FONT_SIZE_INC 24
+
+#define BUTTON_NAVIFRAME_BG_MIN_INC 124 74
+#define BUTTON_NAVIFRAME_VISIBLE_BG_MIN_INC 124 74
+#define BUTTON_NAVIFRAME_ICONONLY_BG_MIN_INC 74 74
+#define BUTTON_NAVIFRAME_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_PADDING_MIN_INC 5 5
+#define BUTTON_NAVIFRAME_VISIBLE_ICON_RECT_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_VISIBLE_PADDING_ICON_TEXT_MIN_INC 10 0
+#define BUTTON_NAVIFRAME_VISIBLE_ICON_MIN_MAX_INC 38 38
+#define BUTTON_NAVIFRAME_ICONONLY_ICON_MIN_MAX_INC 38 38
+#define BUTTON_TEXT_NAVIFRAME_FONT_SIZE_INC 28
+#define BUTTON_NAVIFRAME_TITLE_BUTTON_MIN_INC 124 74
+
+#define BUTTON_NAVIFRAME_MORE_BG_MIN_MAX_INC 82 64
+#define BUTTON_NAVIFRAME_MORE_BG_BORDER_INC 5 5 5 5
+#define BUTTON_NAVIFRAME_MORE_DEFAULT_IMAGE_MIN_MAX_INC 50 50
+
+#define BUTTON_TICKERNOTI_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_VISIBLE_BG_MIN_INC 62 34
+#define BUTTON_TICKERNOTI_ICONONLY_BG_MIN_INC 54 54
+#define BUTTON_TICKERNOTI_BG_BORDER_INC 5 5 5 5
+#define BUTTON_TICKERNOTI_PADDING_MIN_INC 5 5
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_RECT_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_VISIBLE_PADDING_ICON_TEXT_MIN_INC 8 0
+#define BUTTON_TICKERNOTI_VISIBLE_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_ICONONLY_ICON_MIN_MAX_INC 44 44
+#define BUTTON_TICKERNOTI_FONT_SIZE_INC 28
+
+#define BUTTON_PICKER_TEXT_DEFAULT_COLOR_INC 78 73 69 255
+#define BUTTON_PICKER_TEXT_CLICKED_COLOR_INC 255 255 255 255
+#define BUTTON_PICKER_TEXT_DISABLED_COLOR_INC 0 0 0 128
+#define BUTTON_PICKER_TEXT_FOCUSED_COLOR_INC 255 255 255 255
+
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_MIN_INC 16 5
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_ICON_RECT_MIN_INC 0 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_CONTENT_ICON_ONLY_MIN_INC 56 56
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_PREV_TEXT_DEFAULT_TEXT_VISIBLE_MIN_INC 96 56
+
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_MIN_MAX_INC 74 66
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_BG_DEFAULT_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_PREV_ICON_DEFAULT_IMAGE_MIN_MAX_INC 32 32
+
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_MIN_INC 74 66
+#define BUTTON_PICKER_BAR_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 5 5 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_MIN_INC 5 5
+#define BUTTON_PICKER_BAR_DEFAULT_ICON_RECT_DEFAULT_MIN_INC 0 56
+#define BUTTON_PICKER_BAR_DEFAULT_PADDING_ICON_RECT_TEXT_MIN_INC 5 0
+#define BUTTON_PICKER_BAR_DEFAULT_CONTENT_ICONONLY_MIN_INC 56 56
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_FONT_SIZE_INC 32
+#define BUTTON_PICKER_BAR_DEFAULT_TEXT_VISIBLE_MIN_INC 128 56
+
+#define BUTTON_COLORSELECTOR_BG_DEFAULT_MIN_INC 74 60
+
+#define BUTTON_DEFAULT_STYLE_BG_MIN_INC 28 74
+#define BUTTON_DEFAULT_STYLE_BG_BORDER_INC 5 5 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_MIN_INC 5 5
+#define BUTTON_DEFAULT_STYLE_PADDING_ICON_TEXT_VISIBLE_MIN_INC 5 0
+#define BUTTON_DEFAULT_STYLE_ICONONLY_ICON_MIN_INC 38 38
+#define BUTTON_DEFAULT_STYLE_TEXT_MIN_INC 135 38
+#define BUTTON_DEFAULT_STYLE_FONT_SIZE_INC 32
+
+#define CHECK_DELETE_TEXT_DELETE_NORMAL_COLOR_INC 207 41 41 255
+#define CHECK_DELETE_TEXT_DELETE_PRESS_COLOR_INC 255 255 255 255
+
+#define CHECK_DEFAULT_TEXT_FONT_SIZE_INC 32
+
+#define CHECK_ONOFF_BG_NORMAL_MIN_MAX_INC 60 80
+#define CHECK_ONOFF_CHECK_IMAGE_BORDER_INC 5 5 5 5
+#define CHECK_ONOFF_ON_FONT_SIZE_INC 24
+#define CHECK_ONOFF_OFF_FONT_SIZE_INC 24
+
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 64
+#define CHECK_STYLE_FAVORITE_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 75
+#define CHECK_STYLE_FAVORITE_BG_NORMAL_MIN_MAX_INC 64 64
+
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 42
+#define CHECK_STYLE_DEFAULT_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 42
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 60
+#define CHECK_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_HEIGHT_INC 75
+#define CHECK_STYLE_DEFAULT_BG_NORMAL_MIN_MAX_INC 42 42
+
+#define CHECK_STYLE_DELETE_BUTTON_BG_IMAGE_MIN_MAX_WIDTH_INC 74 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_IMAGE_MIN_MAX_WIDTH_INC 124 74
+#define CHECK_STYLE_DELETE_BUTTON_BG_EXPAND_BORDER_INC 8 0 5 5
+#define CHECK_STYLE_DELETE_BUTTON_TEXT_FONT_SIZE_INC 32
+
+#define INDEX_BG_NINEPATCH_INC 3 3 3 3
+#define INDEX_ITEM_WIDTH_INC 30
+#define INDEX_ITEM_HEIGHT_INC 30
+#define INDEX_LEVEL_PADDING_INC 70
+#define INDEX_1ST_LEVEL_POPUP_WIDTH_INC 138
+#define INDEX_2ND_LEVEL_POPUP_WIDTH_INC 168
+#define INDEX_POPUP_HEIGHT_INC 140
+#define INDEX_ROLLOVER_TEXT_SIZE_INC 22
+#define INDEX_POPUP_TEXT_SIZE_INC 78
+#define INDEX_POPUP_BG_NINEPATCH_INC 12 16 12 22
+#define INDEX_ROLLOVER_TEXT_COLOR_INC 93 93 93 255
+#define INDEX_ROLLOVER_ACTIVE_TEXT_COLOR_INC 58 60 9 255
+#define INDEX_POPUP_TEXT_COLOR_INC 88 83 79 255
+
+#define INDEX_PAGECONTROL_IND_INC 52 52
+#define INDEX_PAGECONTROL_IND_MIN_INC 24 24
+#define INDEX_PAGECONTROL_FONT_SIZE_INC 28
+#define INDEX_PAGECONTROL_FONT_COLOR_INC 120 120 120
+
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_WIDTH_INC 42
+#define RADIO_STYLE_DEFAULT_BG_IMAGE_MIN_HEIGHT_INC 42
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 50
+#define RADIO_STYLE_DEFAULT_EXTENDED_BG_IMAGE_MIN_WIDTH_INC 50
+#define RADIO_STYLE_DEFAULT_BG_MIN_MAX_INC 42 42
+#define RADIO_STYLE_DEFAULT_FONT_SIZE_INC 32
+
+#define PANES_STYLE_DEFAULT_MOVABLE_SIZE_INC 48
+#define PANES_STYLE_DEFAULT_MIDDLE_SIZE_INC 44
+#define PANES_STYLE_DEFAULT_FIXED_SIZE_INC 6
+#define PANES_STYLE_DEFAULT_ARROW_SIZE_INC 55
+#define PANES_STYLE_DEFAULT_ARROW_FROM_INC 15
+#define PANES_STYLE_DEFAULT_ARROW_TO_INC 30
+
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 244 212 174 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 0 0 0 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 0 0 0 255
+#define SEGMENT_CONTROL_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 244 212 174 255
+#define SEGMENT_CONTROL_ITEM_1PX_LEFT_PADDING_COLOR_INC 172 112 16 255
+#define SEGMENT_CONTROL_ITEM_1PX_RIGHT_PADDING_COLOR_INC 201 114 54 255
+
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_NORMAL_INC 149 145 136 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_PRESSED_INC 255 255 255 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_SELECTED_INC 255 255 255 255
+#define SEGMENT_CONTROL_BODY_STYLE_ITEM_TITLE_TEXT_COLOR_DISABLED_INC 149 145 136 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_LEFT_PADDING_COLOR_INC 203 193 182 255
+#define SEGMENT_CONTROL_BODY_ITEM_1PX_RIGHT_PADDING_COLOR_INC 255 250 239 255
+
+#define SEGMENT_CONTROL_MULTILINE_TEXT_SIZE_INC 26
+#define SEGMENT_CONTROL_TEXT_SIZE_INC 28
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MIN_INC 12
+#define SEGMENT_CONTROL_TEXT_SIZE_RANGE_MAX_INC 28
+
+#define EDITFIELD_TITLE_SIZE_INC 32
+#define EDITFIELD_TITLE_COLOR_INC 73 73 73 255
+#define EDITFIELD_GUIDE_TEXT_COLOR_INC 189 189 189 255
+#define EDITFIELD_DEFAULT_ERASER_MINW_INC 48
+#define EDITFIELD_DEFAULT_ERASER_MINH_INC 48
+#define EDITFIELD_SEARCHBAR_ERASER_MINW_INC 38
+#define EDITFIELD_SEARCHBAR_ERASER_MINH_INC 38
+#define EDITFIELD_DEFAULT_MINH_INC 112
+#define EDITFIELD_SEARCHBAR_MINH_INC 50
+#define EDITFIELD_DEFAULT_TOP1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_TOP1_MULTI_INC 45
+#define EDITFIELD_DEFAULT_TOP2_INC 6
+#define EDITFIELD_DEFAULT_LEFT1_INC 0
+#define EDITFIELD_DEFAULT_LEFT2_INC 0
+#define EDITFIELD_DEFAULT_LEFT3_INC 1
+#define EDITFIELD_DEFAULT_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_DEFAULT_RIGHT2_INC 0
+#define EDITFIELD_DEFAULT_BOTTOM1_SINGLE_INC 20
+#define EDITFIELD_DEFAULT_BOTTOM1_MULTI_INC 5
+#define EDITFIELD_DEFAULT_BOTTOM2_SINGLE_INC 32
+#define EDITFIELD_DEFAULT_BOTTOM2_MULTI_INC 12
+#define EDITFIELD_DEFAULT_BOTTOM3_SINGLE_INC 85
+#define EDITFIELD_DEFAULT_BOTTOM3_MULTI_INC 60
+#define EDITFIELD_SEARCHBAR_TOP1_SINGLE_INC 6
+#define EDITFIELD_SEARCHBAR_TOP1_MULTI_INC 10
+#define EDITFIELD_SEARCHBAR_TOP2_INC 10
+#define EDITFIELD_SEARCHBAR_LEFT1_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT2_INC 0
+#define EDITFIELD_SEARCHBAR_LEFT3_INC 1
+#define EDITFIELD_SEARCHBAR_RIGHT1_ERASER_SHOW_INC 56
+#define EDITFIELD_SEARCHBAR_RIGHT2_INC 5
+#define EDITFIELD_SEARCHBAR_BOTTOM1_SINGLE_INC 8
+#define EDITFIELD_SEARCHBAR_BOTTOM1_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM2_SINGLE_INC 16
+#define EDITFIELD_SEARCHBAR_BOTTOM2_MULTI_INC 2
+#define EDITFIELD_SEARCHBAR_BOTTOM3_SINGLE_INC 50
+#define EDITFIELD_SEARCHBAR_BOTTOM3_MULTI_INC 50
+
+#define BUTTON_TICKERNOTI_NORMAL_COLOR_INC        255 255 255 255
+#define BUTTON_TICKERNOTI_PRESSED_COLOR_INC       255 255 255 255
+#define BUTTON_TICKERNOTI_DISABLED_COLOR_INC      185 185 185 255
+
+#define CHECK_DEFAULT_TEXT_NORMAL_COLOR_INC        0 0 0 255
+#define CHECK_DEFAULT_TEXT_PRESSED_COLOR_INC      255 255 255 255
+#define CHECK_DEFAULT_TEXT_DISABLED_COLOR_INC          136 136 136 136
+
+#define RADIO_DEFAULT_TEXT_NORMAL_COLOR_INC        0 0 0 255
+#define RADIO_DEFAULT_TEXT_PRESSED_COLOR_INC      255 255 255 255
+#define RADIO_DEFAULT_TEXT_DISABLED_COLOR_INC          136 136 136 136
+
+#define CONTROLBAR_LARGE_HEIGHT_INC 122
+#define CONTROLBAR_SMALL_HEIGHT_INC 102
+#define CONTROLBAR_WIDTH_INC 122
+#define CONTROLBAR_SEPARATEBAR_DARK_COLOR_INC 73 62 47 255
+#define CONTROLBAR_SEPARATEBAR_BRIGHT_COLOR_INC 136 121 100 255
+
+#define MULTIBUTTONENTRY_NORMAL_BUTTON_COLOR_INC 195 160 107 255
+#define MULTIBUTTONENTRY_PRESSED_BUTTON_COLOR_INC 103 79 43 255
+#define MULTIBUTTONENTRY_LABEL_TEXT_COLOR_INC 0 0 0 255
+#define MULTIBUTTONENTRY_GUIDETEXT_COLOR_INC 189 189 189 255
+#define MULTIBUTTONENTRY_BUTTON_TEXT_COLOR_INC "#FFFFFF"
+#define MULTIBUTTONENTRY_WIDTH_PAD_INC 15
+#define MULTIBUTTONENTRY_HEIGHT_PAD_INC 20
+#define MULTIBUTTONENTRY_BUTTON_MAX_SIZE_INC 300
+#define MULTIBUTTONENTRY_BUTTON_BASE_SIZE_INC 66
+#define MULTIBUTTONENTRY_BUTTON_NINEPATCH_INC 5 5 0 0
+#define MULTIBUTTONENTRY_BUTTON_TOP_BUTTOM_PAD_INC 12
+#define MULTIBUTTONENTRY_BUTTON_LEFT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_INNER_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_RIGHT_PAD_INC 15
+#define MULTIBUTTONENTRY_BUTTON_TEXT_SIZE_INC 38
+#define MULTIBUTTONENTRY_GUIDETEXT_SIZE_INC 44
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_SIZE_INC 60
+#define MULTIBUTTONENTRY_CLOSEDBUTTON_AREA_HEIGHT_INC 60
+#define MULTIBUTTONENTRY_LABEL_RIGHT_PAD_INC 27
+#define MULTIBUTTONENTRY_LABEL_TEXT_SIZE_INC 42
+#define MULTIBUTTONENTRY_LABEL_MIN_HEIGHT_INC 75
+
+#define SEARCHBAR_BACKGROUND_COLOR_INC          242 238 233 255
+#define SEARCHBAR_CANCEL_BUTTON_W_INC 134
+#define SEARCHBAR_CANCEL_BUTTON_WITH_PADDING_W_INC 150
+#define SEARCHBAR_CANCEL_BUTTON_WITH_DOUBLE_PADDING_W_INC 166
+#define SEARCHBAR_TOP_PADDING_INC 18
+#define SEARCHBAR_BOTTOM_PADDING_INC 18
+#define SEARCHBAR_HEIGHT_INC 74
+#define SEARCHBAR_LEFT_PADDING_INC 16
+#define SEARCHBAR_RIGHT_PADDING_INC 16
+#define SEARCHBAR_INPUTFIELD_BORDER_INC 6 6 6 6
+#define SEARCHBAR_LEFT_ICON_PADDING_INC 16
+#define SEARCHBAR_ICON_MIN_W_INC 42
+#define SEARCHBAR_ICON_MIN_H_INC 42
+#define SEARCHBAR_LEFT_PADDING_SEARCHFIELD_INC 16
+#define SEARCHBAR_RIGHT_PADDING_SEARCHFIELD_INC 8
+#define SEARCHBAR_SEARCH_TEXTFIELD_H_INC 60
+#define SEARCHBAR_H_INC 107
+
+#define SELECTION_INFO_BACKGROUND_COLOR_INC          217 147 26 255
+#define SELECTION_INFO_TEXT_COLOR_INC          255 255 255 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       150
+#define SELECTION_INFO_MIN_VER_BOTTOM_86_H_INC       186
+
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_MIN_INC 588 0
+#define POPUP_DESCRIPTION_DEFAULT_TEXT_FONT_SIZE_INC 42
+
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_DEFAULT_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_DEFAULT_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_DEFAULT_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_PADDING_MIN_MAX_INC 16 0
+#define POPUP_BASE_DEFAULT_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_DEFAULT_CONTENT_DEFAULT_MIN_MAX_INC 620 0
+#define POPUP_BASE_DEFAULT_BUTTON_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_DEFAULT_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_DEFAULT_TEXT_FONT_SIZE_INC 38
+
+#define POPUP_CONTENT_DEFAULT_PADDING_TOP_MIN_INC 0 22
+#define POPUP_CONTENT_DEFAULT_PADDING_LEFT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_RIGHT_MIN_INC 16 0
+#define POPUP_CONTENT_DEFAULT_PADDING_BOTTOM_MIN_INC 0 22
+#define POPUP_CONTENT_DEFAULT_CONTENT_DEFAULT_MIN_INC 588 0
+
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BASE_MAX_INC 620 1120
+#define POPUP_BASE_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_IMAGE_BORDER_MIN_INC 3 3 3 3
+#define POPUP_BASE_VERTICAL_BUTTON_TITLE_ICON_MIN_MAX_INC 62 62
+#define POPUP_BASE_VERTICAL_BUTTON_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_VERTICAL_BUTTON_BUTTONAREA_DEFAULT_MIN_INC 620 286
+
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_TOP_MIN_INC 0 16
+#define POPUP_BUTTON_VERTICAL_ACTION_AREA_HEIGHT "286"
+#define POPUP_BUTTON3_VERTICAL_BUTTON_BUTTON_MIN_MAX_INC 356 74
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MIN_INC 0 16
+#define POPUP_BUTTON3_VERTICAL_BUTTON_PADDING_BUTTON_MAX_INC 9999 16
+
+#define POPUP_CONTENT_LISTSTYLE_PADDING_TOP_MIN_MAX_INC 3 3
+#define POPUP_CONTENT_LISTSTYLE_CONTENT_DEFAULT_MIN_INC 614 408
+#define POPUP_CONTENT_LISTSTYLE_PADDING_RIGHT_MIN_INC 3 0
+
+#define POPUP_CONTENT_MINSTYLE_CONTENT_DEFAULT_MIN_INC 614 0
+
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BASE_DEFAULT_MAX_INC 620 1120
+#define POPUP_BASE_CUSTOMSTYLE_BG_DEFAULT_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_DEFAULT_MIN_INC 620 64
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_BOTTOM_LINE_MIN_INC 0 1
+#define POPUP_BASE_CUSTOMSTYLE_TITLE_ICON_DEFAULT_MIN_MAX_INC 62 62
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_DEFAULT_MIN_INC 620 0
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 620 96
+#define POPUP_BASE_CUSTOMSTYLE_BUTTONAREA_BG_IMAGE_BORDER_INC 3 3 3 3
+#define POPUP_BASE_CUSTOMSTYLE_TEXT_FONT_SIZE_INC 38
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_WIDTH_INC 620
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_HEIGHT_INC 146
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_SIDE_PADDING_INC 70
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_ENTRY_MIN_INC 90 90
+#define POPUP_BASE_CUSTOMSTYLE_CONTENT_CENTER_PADDING_MIN_INC 40
+
+#define POPUP_CONTENT_CUSTOMSTYLE_DEFAULT_MIN_INC 620 0
+#define POPUP_BUTTON_DEFAULT_ACTION_AREA_HEIGHT "96"
+#define POPUP_BUTTON1_DEFAULT_BUTTON1_DEFAULT_MIN_MAX_INC 402 74
+#define POPUP_BUTTON2_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 274 74
+#define POPUP_BUTTON2_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 74
+#define POPUP_BUTTON3_DEFAULT_BUTTON_DEFAULT_MIN_MAX_INC 186 74
+#define POPUP_BUTTON3_DEFAULT_PADDING_BUTTON_MIN_MAX_INC 10 74
+
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BASE_DEFAULT_MAX_INC 624 1120
+#define POPUP_BASE_VOLUMEBAR_STYLE_TITLE_DEFAULT_IMAGE_BORDER_INC 3 3 6 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 624 0
+#define POPUP_BASE_VOLUMEBAR_STYLE_BUTTONAREA_BG_DEFAULT_MIN_INC 624 96
+
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_TOP_MIN_INC 0 31
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_LEFT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_RIGHT_MIN_INC 40 0
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_CONTENT_DEFAULT_MIN_INC 544 64
+#define POPUP_CONTENT_VOLUMEBAR_STYLE_PADDING_BOTTOM_MIN_INC 0 31
+
+#define PROGRESSBAR_DEFAULT_STYLE_TEXT_COLOR_INC          224 224 224 255
+#define PROGRESSBAR_DEFAULT_STYLE_STATUS_TEXT_COLOR_INC          255 255 255 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_TEXT_COLOR_INC          0 0 0 255
+#define PROGRESSBAR_LIST_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC          224 224 224 255
+#define PROGRESSBAR_LIST_TITLE_PROGRESS_STYLE_STATUS_TEXT_COLOR_INC      108 108 108 255
+#define PROGRESSBAR_LIST_PROCESS_WIDTH_INC 66
+#define PROGRESSBAR_LIST_PROCESS_HEIGHT_INC 66
+#define PROGRESSBAR_LIST_PROCESS_SMALL_INC 35
+#define PROGRESSBAR_LIST_PROCESS_SMALL_IMAGE "32x32"
+#define PROGRESSBAR_LIST_PROGRESS_HEIGHT_INC 16
+#define PROGRESSBAR_LIST_PENDING_HEIGHT_INC 16
+
+#define NOCONTENT_TEXT_BLOCK_STYLE_COLOR_INC  173 170 165 255
+#define NOCONTENT_TEXT_BLOCK_TEXT_SIZE_INC    42
+#define NOCONTENT_MIDDLE_PADDING_INC          54
+#define NOCONTENT_BASE_SEARCH_PADDING_INC     40
+#define NOCONTENT_IMAGE_REL1_WIDTH_HEIGHT_INC 0.282 0.294
+#define NOCONTENT_IMAGE_REL2_WIDTH_HEIGHT_INC 0.718 0.54
+#define NOCONTENT_BG_COLOR_INC                249 249 249 255
+#define NOCONTENT_TEXT_STYLE_BG_MIN_INC       0 120
+
+#define ENTRY_TEXT_SIZE_INC 44
+#define ENTRY_TEXT_COLOR_INC "#000000"
+#define ENTRY_CURSOR_COLOR_INC 217 147 26 255
+#define ENTRY_PREEDIT_BACKGROUND_COLOR_INC "#000000"
+#define ENTRY_PREEDIT_TEXT_COLOR_INC "#FFFFFF"
+#define ENTRY_SELECTION_BG_COLOR 204 230 224 127
+#define ENTRY_SELECTION_BLOCK_HANDLE_MIN_SIZE 48 67
+#define MAGNIFIER_HEIGHT_FILL 182
+#define MAGNIFIER_HEIGHT_FIXED 108
+#define MAGNIFIER_WIDTH_FIXED 358
+
+#define ENTRY_BUBBLE_EX_PAD 15
+#define ENTRY_BUBBLE_IX_PAD 22
+#define ENTRY_BUBBLE_Y_PAD 15
+#define ENTRY_BUBBLE_BOTTOM_PAD 22
+#define ENTRY_BUBBLE_CALLERID_PAD 16
+#define ENTRY_BUBBLE_CALLERID_WIDTH 60
+#define ENTRY_BUBBLE_CALLERID_HEIGHT 60
+#define ENTRY_BUBBLE_DATE_AREA_TEXT_SIZE_INC 26
+
+#define PANES_DEFAULT_FIXED_SEPERATOR_NORMAL_COLOR_INC 219 219 219 255
+
+#define DAYSELECTOR_BACKGROUND_COLOR_INC       199 199 199 255
+#define DAYSELECTOR_WEEKDAY_COLOR_INC          78 73 69 255
+#define DAYSELECTOR_SATURDAY_COLOR_INC         8 96 170 255
+#define DAYSELECTOR_SUNDAY_COLOR_INC           225 49 8 255
+#define DAYSELECTOR_DAY_PRESSED_COLOR_INC      255 255 255 255
+#define DAYSELECTOR_DAY_FONT_SIZE_INC 32
+#define DAYSELECTOR_CHECK_WIDTH_INC 94
+#define DAYSELECTOR_CHECK_HEIGHT_INC 90
+
+#define SLIDER_INDICATOR_TEXT_COLOR_INC      217 147 26 255
+#define SLIDER_UNITS_TEXT_COLOR_INC      122 122 122 255
+#define SLIDER_UNITS_TEXT_SIZE_INC  30
+#define SLIDER_INDICATOR_TEXT_SIZE_INC  40
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_BASE_MIN_WIDTH_INC 375
+#define SLIDER_BASE_HEIGHT_INC  16
+#define SLIDER_SWALLOW_BAR_MIN_WIDTH_INC  58
+#define SLIDER_SWALLOW_BAR_HEIGHT_INC  58
+#define SLIDER_INDICATOR_WIDTH_INC 58
+#define SLIDER_INDICATOR_HEIGHT_INC 58
+#define SLIDER_EBOOK_HEIGHT_INC  23
+#define SLIDER_EBOOK_UNITS_TEXT_COLOR_INC   164 160 149 255
+#define SLIDER_EBOOK_UNITS_TEXT_SIZE_INC  48
+#define SLIDER_EBOOK_INDICATOR_TEXT_COLOR_INC   241 150 27 255
+#define SLIDER_EBOOK_INDICATOR_DEFAULT_TEXT_SIZE_INC 36
+#define SLIDER_EBOOK_INDICATOR_DRAG_TEXT_SIZE_INC 48
+#define SLIDER_EBOOK_INDICATOR_WIDTH_INC 54
+#define SLIDER_EBOOK_INDICATOR_HEIGHT_INC 54
+#define SLIDER_DISABLER_PART_COLOR_INC   185 185 185 100
+
+#define TICKER_NOTI_DEFAULT_TEXT_COLOR_INC "#f4f4f4"
+
+#define DATETIME_FIELD_MIN_SIZE_INC                60 60
+#define DATETIME_SEPARATOR_MIN_SIZE_INC            40 60
+#define DATETIME_TEXT_FONT_SIZE_INC                36
+#define DATETIME_TEXT_NORMAL_COLOR_INC             0 0 0 255
+#define DATETIME_SEPARATOR_TEXT_COLOR_INC          100 100 100 255
+#define DATETIME_TEXT_SELECTED_COLOR_INC           224 134 21 255
+
+#define COLORSELECTOR_MIN_W_INC 624
+#define COLORSELECTOR_MIN_H_INC 336
+#define COLORSELECTOR_MAX_W_INC 1014
+#define COLORSELECTOR_COLORBAR_IMAGE0_BORDER 13 13 10 3
+#define COLORSELECTOR_COLORBAR_IMAGE1_BORDER 4 4 3 3
+#define COLORSELECTOR_COLORBAR_IMAGE2_BORDER 13 13 3 15
+#define COLORSELECTOR_COLORBAR_HEIGHT 112
+#define COLORSELECTOR_COLORBAR_LEFT_PADDING 136
+#define COLORSELECTOR_COLORBAR_RIGHT_PADDING 136
+#define COLORSELECTOR_BUTTON_TOP_PADDING 19
+#define COLORSELECTOR_ARROW_BG_LEFT_PADDING 133
+#define COLORSELECTOR_ARROW_BG_RIGHT_PADDING 133
+#define COLORSELECTOR_ARROW_MIN_WIDTH 16
+#define COLORSELECTOR_ARROW_MIN_HEIGHT 80
+#define COLORSELECTOR_DRAGGABLE_EVENT_AREA 80 80
+#define COLORSELECTOR_BUTTON_LEFT_PADDING 42
+#define COLORSELECTOR_BUTTON_RIGHT_PADDING 42
+#define COLORSELECTOR_BUTTON_WIDTH 74
+#define COLORSELECTOR_BUTTON_HEIGHT 74
+#define COLORSELECTOR_BUTTON_BORDER 6 6 6 6
+#define COLORSELECTOR_PADDING_COLOR_INC 199 199 199 255
+
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_WIDTH_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_MIN_HEIGHT_INC 86
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_WIDTH_INC 84
+#define COLORSELECTOR_PALETTE_COLORBG_FOCUS_MIN_HEIGHT_INC 84
+#define COLORSELECTOR_PORTRAIT_HOR_PAD_INC "50"
+#define COLORSELECTOR_PORTRAIT_VER_PAD_INC "26"
+#define COLORSELECTOR_LANDSCAPE_HOR_PAD_INC "36"
+#define COLORSELECTOR_LANDSCAPE_VER_PAD_INC "0"
+#define COLORSELECTOR_PALETTE_BORDER_INC 14 14 14 14
+
+#define CALENDAR_DAY_FONT_SIZE_INC 24
+#define CALENDAR_DATE_FONT_SIZE_INC 32
+#define CALENDAR_MONTH_FONT_SIZE_INC 38
+#define CALENDAR_MONTH_FONT_COLOR_INC 0 0 0 255
+#define CALENDAR_SATURDAY_FONT_COLOR_INC 47 120 220 255
+#define CALENDAR_SUNDAY_FONT_COLOR_INC 226 20 20 255
+#define CALENDAR_WEEKDAY_FONT_COLOR_INC 0 0 0 255
+#define CALENDAR_SELECTED_DATE_FONT_COLOR_INC 255 255 255 255
+#define CALENDAR_SEPERATOR_FONT_COLOR_INC 176 176 176 255
+#define CALENDAR_BACKGROUND_COLOR_INC 230 230 230 255
+#define CALENDAR_BUTTON_HEIGHT_INC 66
+#define CALENDAR_BUTTON_WIDTH_INC 74
+#define CALENDAR_ARROW_WIDTH_INC 30
+#define CALENDAR_ARROW_HEIGHT_INC 36
+#define CALENDAR_BASE_MIN_WIDTH_INC 692
+#define CALENDAR_BASE_MIN_HEIGHT_INC 420
+#define CALENDAR_HEADER_MIN_WIDTH_INC 98
+#define CALENDAR_HEADER_MIN_HEIGHT_INC 90
+
+#define CTXPOPUP_ENTRY_CENTER_IMAGE_BORDER 5 5 5 5
+#define CTXPOPUP_ENTRY_IMAGE_BORDER_WIDTH 6
+#define CTXPOPUP_ENTRY_ITEM_TEXT_COLOR   249 249 249 255
+#define CTXPOPUP_ENTRY_ITEM_LEFT_SEPARATOR_COLOR 61 61 61 255
+#define CTXPOPUP_ENTRY_ITEM_RIGHT_SEPARATOR_COLOR 148 148 148 255
+#define CTXPOPUP_ENTRY_SEPARATOR_WIDTH 1
+#define CTXPOPUP_ENTRY_SEPARATOR_HEIGHT 48
+#define CTXPOPUP_ENTRY_ITEM_HEIGHT 73
+#define CTXPOPUP_ENTRY_ITEM_PADDING_WIDTH 16
+#define CTXPOPUP_ENTRY_ITEM_FONT_SIZE 28
+#define CTXPOPUP_ENTRY_ICON_SIZE 57
+#define CTXPOPUP_ENTRY_ITEM_WIDTH_MAX 240
+#define CTXPOPUP_ENTRY_LIST_SHADOW_PADDING 3
+#define CTXPOPUP_ENTRY_ITEM_DISABLED_COLOR 200 200 200 127
+#define CTXPOPUP_ENTRY_ARROW_SIZE_HEIGHT 18
+#define CTXPOPUP_ENTRY_ARROW_SIZE_WIDTH 36
+
+#define TICKERNOTI_DEFAULT_BG_MIN_HEIGHT_INC 98
+#define TICKERNOTI_DEFAULT_BG_BOTTOM_MIN_HEIGHT_INC 8
+#define TICKERNOTI_DEFAULT_BG_BORDER_INC 0 0 0 8
+#define TICKERNOTI_DEFAULT_BG_PADDING_LEFT_TOP_INC 16 13
+#define TICKERNOTI_DEFAULT_BG_PADDING_RIGHT_BOTTOM_INC 16 13
+#define TICKERNOTI_DEFAULT_PADDING_AFTER_ICON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_MIN_INC 0 60
+#define TICKERNOTI_DEFAULT_BUTTON_MIN_INC 90 54
+#define TICKERNOTI_DEFAULT_BUTTON_MAX_INC 90 54
+#define TICKERNOTI_DEFAULT_ICON_MIN_INC 64 64
+#define TICKERNOTI_DEFAULT_PADDING_BEFORE_BUTTON_INC 16 0
+#define TICKERNOTI_DEFAULT_TEXT_FONT_SIZE_INC 30
+#define TICKERNOTI_INFO_BG_MIN_HEIGHT_INC 50
+#define TICKERNOTI_INFO_BG_PADDING_LEFT_TOP_INC 8 5
+#define TICKERNOTI_INFO_BG_PADDING_RIGHT_BOTTOM_INC 8 5
+#define TICKERNOTI_BG_PADDING_AFTER_ICON_INC 15 0
+#define TICKERNOTI_INFO_TEXT_FONT_SIZE_INC 28
+
+#define SCROLLER_DEFAULT_SCROLLBAR_VBAR_MIN_SIZE_INC 10 80
+#define SCROLLER_DEFAULT_SCROLLBAR_HBAR_MIN_SIZE_INC 80 10
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIN_SIZE_INC 48 214
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIN_SIZE_INC 214 48
+#define SCROLLER_HANDLER_SCROLLBAR_VBAR_MIDDLE_MIN_SIZE_INC 48 26
+#define SCROLLER_HANDLER_SCROLLBAR_HBAR_MIDDLE_MIN_SIZE_INC 26 48
+#define SCROLLER_HANDLER_SCROLLBAR_PADDING_INC 10
diff --git a/images/00_check_off.png b/images/00_check_off.png
new file mode 100644 (file)
index 0000000..49a5552
Binary files /dev/null and b/images/00_check_off.png differ
diff --git a/images/00_check_on.png b/images/00_check_on.png
new file mode 100644 (file)
index 0000000..2d1f4c8
Binary files /dev/null and b/images/00_check_on.png differ
diff --git a/images/Touch AF_rect/camera_focus_fail.png b/images/Touch AF_rect/camera_focus_fail.png
new file mode 100644 (file)
index 0000000..7e2c9a3
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_fail.png differ
diff --git a/images/Touch AF_rect/camera_focus_fail_1.png b/images/Touch AF_rect/camera_focus_fail_1.png
new file mode 100644 (file)
index 0000000..2202cd3
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_fail_1.png differ
diff --git a/images/Touch AF_rect/camera_focus_fail_2.png b/images/Touch AF_rect/camera_focus_fail_2.png
new file mode 100644 (file)
index 0000000..860df9f
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_fail_2.png differ
diff --git a/images/Touch AF_rect/camera_focus_fail_3.png b/images/Touch AF_rect/camera_focus_fail_3.png
new file mode 100644 (file)
index 0000000..d417840
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_fail_3.png differ
diff --git a/images/Touch AF_rect/camera_focus_fail_4.png b/images/Touch AF_rect/camera_focus_fail_4.png
new file mode 100644 (file)
index 0000000..7f04431
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_fail_4.png differ
diff --git a/images/Touch AF_rect/camera_focus_notready.png b/images/Touch AF_rect/camera_focus_notready.png
new file mode 100644 (file)
index 0000000..ba69ea5
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_notready.png differ
diff --git a/images/Touch AF_rect/camera_focus_notready_1.png b/images/Touch AF_rect/camera_focus_notready_1.png
new file mode 100644 (file)
index 0000000..3423bef
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_notready_1.png differ
diff --git a/images/Touch AF_rect/camera_focus_notready_2.png b/images/Touch AF_rect/camera_focus_notready_2.png
new file mode 100644 (file)
index 0000000..95f8b0b
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_notready_2.png differ
diff --git a/images/Touch AF_rect/camera_focus_notready_3.png b/images/Touch AF_rect/camera_focus_notready_3.png
new file mode 100644 (file)
index 0000000..49e0785
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_notready_3.png differ
diff --git a/images/Touch AF_rect/camera_focus_notready_4.png b/images/Touch AF_rect/camera_focus_notready_4.png
new file mode 100644 (file)
index 0000000..a602bd8
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_notready_4.png differ
diff --git a/images/Touch AF_rect/camera_focus_ready_1.png b/images/Touch AF_rect/camera_focus_ready_1.png
new file mode 100644 (file)
index 0000000..913dfe2
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_ready_1.png differ
diff --git a/images/Touch AF_rect/camera_focus_ready_2.png b/images/Touch AF_rect/camera_focus_ready_2.png
new file mode 100644 (file)
index 0000000..551521d
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_ready_2.png differ
diff --git a/images/Touch AF_rect/camera_focus_ready_3.png b/images/Touch AF_rect/camera_focus_ready_3.png
new file mode 100644 (file)
index 0000000..fe2c719
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_ready_3.png differ
diff --git a/images/Touch AF_rect/camera_focus_ready_4.png b/images/Touch AF_rect/camera_focus_ready_4.png
new file mode 100644 (file)
index 0000000..fe7b307
Binary files /dev/null and b/images/Touch AF_rect/camera_focus_ready_4.png differ
diff --git a/images/Touch AF_rect/camera_ready.png b/images/Touch AF_rect/camera_ready.png
new file mode 100644 (file)
index 0000000..9a8e7f0
Binary files /dev/null and b/images/Touch AF_rect/camera_ready.png differ
diff --git a/images/Touch AF_rect/touch_af_focus_rect_01.9.png b/images/Touch AF_rect/touch_af_focus_rect_01.9.png
new file mode 100644 (file)
index 0000000..ffed3cd
Binary files /dev/null and b/images/Touch AF_rect/touch_af_focus_rect_01.9.png differ
diff --git a/images/Touch AF_rect/touch_af_focus_rect_02.9.png b/images/Touch AF_rect/touch_af_focus_rect_02.9.png
new file mode 100644 (file)
index 0000000..54302bb
Binary files /dev/null and b/images/Touch AF_rect/touch_af_focus_rect_02.9.png differ
diff --git a/images/Touch AF_rect/touch_af_focus_rect_03.9.png b/images/Touch AF_rect/touch_af_focus_rect_03.9.png
new file mode 100644 (file)
index 0000000..30fe515
Binary files /dev/null and b/images/Touch AF_rect/touch_af_focus_rect_03.9.png differ
diff --git a/images/camara_icon_back.png b/images/camara_icon_back.png
new file mode 100644 (file)
index 0000000..2a655a2
Binary files /dev/null and b/images/camara_icon_back.png differ
diff --git a/images/camara_icon_back_press.png b/images/camara_icon_back_press.png
new file mode 100644 (file)
index 0000000..dcd6b7c
Binary files /dev/null and b/images/camara_icon_back_press.png differ
diff --git a/images/camcorder_recording_shutter.png b/images/camcorder_recording_shutter.png
new file mode 100644 (file)
index 0000000..c1b2a2c
Binary files /dev/null and b/images/camcorder_recording_shutter.png differ
diff --git a/images/camcorder_standby_shutter.png b/images/camcorder_standby_shutter.png
new file mode 100644 (file)
index 0000000..9932e49
Binary files /dev/null and b/images/camcorder_standby_shutter.png differ
diff --git a/images/camera_action_bar_icon.png b/images/camera_action_bar_icon.png
new file mode 100644 (file)
index 0000000..4861d35
Binary files /dev/null and b/images/camera_action_bar_icon.png differ
diff --git a/images/camera_handle.png b/images/camera_handle.png
new file mode 100644 (file)
index 0000000..f35088e
Binary files /dev/null and b/images/camera_handle.png differ
diff --git a/images/camera_help_image.png b/images/camera_help_image.png
new file mode 100644 (file)
index 0000000..a8749d7
Binary files /dev/null and b/images/camera_help_image.png differ
diff --git a/images/camera_menu_bg.png b/images/camera_menu_bg.png
new file mode 100644 (file)
index 0000000..9fc1362
Binary files /dev/null and b/images/camera_menu_bg.png differ
diff --git a/images/camera_menu_bg_press.png b/images/camera_menu_bg_press.png
new file mode 100644 (file)
index 0000000..cf07a41
Binary files /dev/null and b/images/camera_menu_bg_press.png differ
diff --git a/images/camera_menu_tab_hold.png b/images/camera_menu_tab_hold.png
new file mode 100644 (file)
index 0000000..de0c3dd
Binary files /dev/null and b/images/camera_menu_tab_hold.png differ
diff --git a/images/camera_mode_shutter_icon.png b/images/camera_mode_shutter_icon.png
new file mode 100644 (file)
index 0000000..10b2004
Binary files /dev/null and b/images/camera_mode_shutter_icon.png differ
diff --git a/images/camera_mode_shutter_normal.png b/images/camera_mode_shutter_normal.png
new file mode 100644 (file)
index 0000000..582d306
Binary files /dev/null and b/images/camera_mode_shutter_normal.png differ
diff --git a/images/camera_mode_shutter_press.png b/images/camera_mode_shutter_press.png
new file mode 100644 (file)
index 0000000..8c963e6
Binary files /dev/null and b/images/camera_mode_shutter_press.png differ
diff --git a/images/camera_mode_thumbnail_bg.png b/images/camera_mode_thumbnail_bg.png
new file mode 100644 (file)
index 0000000..823b3ea
Binary files /dev/null and b/images/camera_mode_thumbnail_bg.png differ
diff --git a/images/camera_mode_thumbnail_bg_press.png b/images/camera_mode_thumbnail_bg_press.png
new file mode 100644 (file)
index 0000000..2ac7bcd
Binary files /dev/null and b/images/camera_mode_thumbnail_bg_press.png differ
diff --git a/images/camera_normal_left.png b/images/camera_normal_left.png
new file mode 100644 (file)
index 0000000..3a56573
Binary files /dev/null and b/images/camera_normal_left.png differ
diff --git a/images/camera_normal_opacity_l_bg.png b/images/camera_normal_opacity_l_bg.png
new file mode 100644 (file)
index 0000000..5e03665
Binary files /dev/null and b/images/camera_normal_opacity_l_bg.png differ
diff --git a/images/camera_normal_opacity_r_bg.png b/images/camera_normal_opacity_r_bg.png
new file mode 100644 (file)
index 0000000..05654b5
Binary files /dev/null and b/images/camera_normal_opacity_r_bg.png differ
diff --git a/images/camera_normal_right.png b/images/camera_normal_right.png
new file mode 100644 (file)
index 0000000..96156c6
Binary files /dev/null and b/images/camera_normal_right.png differ
diff --git a/images/camera_option_popup_anker.png b/images/camera_option_popup_anker.png
new file mode 100644 (file)
index 0000000..7266092
Binary files /dev/null and b/images/camera_option_popup_anker.png differ
diff --git a/images/camera_option_popup_bg.png b/images/camera_option_popup_bg.png
new file mode 100644 (file)
index 0000000..7db92a1
Binary files /dev/null and b/images/camera_option_popup_bg.png differ
diff --git a/images/camera_option_popup_bg_2depth.png b/images/camera_option_popup_bg_2depth.png
new file mode 100644 (file)
index 0000000..1012ffe
Binary files /dev/null and b/images/camera_option_popup_bg_2depth.png differ
diff --git a/images/camera_option_popup_scroll.png b/images/camera_option_popup_scroll.png
new file mode 100644 (file)
index 0000000..cb17f85
Binary files /dev/null and b/images/camera_option_popup_scroll.png differ
diff --git a/images/camera_option_popup_shadow_01.png b/images/camera_option_popup_shadow_01.png
new file mode 100644 (file)
index 0000000..a1783a4
Binary files /dev/null and b/images/camera_option_popup_shadow_01.png differ
diff --git a/images/camera_option_popup_shadow_02.png b/images/camera_option_popup_shadow_02.png
new file mode 100644 (file)
index 0000000..6442457
Binary files /dev/null and b/images/camera_option_popup_shadow_02.png differ
diff --git a/images/camera_popup_bg.9.png b/images/camera_popup_bg.9.png
new file mode 100644 (file)
index 0000000..d5e8007
Binary files /dev/null and b/images/camera_popup_bg.9.png differ
diff --git a/images/camera_popup_ex.png b/images/camera_popup_ex.png
new file mode 100644 (file)
index 0000000..703c8d6
Binary files /dev/null and b/images/camera_popup_ex.png differ
diff --git a/images/camera_popup_ex_bar.png b/images/camera_popup_ex_bar.png
new file mode 100644 (file)
index 0000000..c5c5d4d
Binary files /dev/null and b/images/camera_popup_ex_bar.png differ
diff --git a/images/camera_popup_ex_line.png b/images/camera_popup_ex_line.png
new file mode 100644 (file)
index 0000000..278ca17
Binary files /dev/null and b/images/camera_popup_ex_line.png differ
diff --git a/images/camera_popup_zoom.png b/images/camera_popup_zoom.png
new file mode 100644 (file)
index 0000000..03ebf29
Binary files /dev/null and b/images/camera_popup_zoom.png differ
diff --git a/images/camera_popup_zoom_bar.png b/images/camera_popup_zoom_bar.png
new file mode 100644 (file)
index 0000000..8f27573
Binary files /dev/null and b/images/camera_popup_zoom_bar.png differ
diff --git a/images/camera_radio_btn_off.png b/images/camera_radio_btn_off.png
new file mode 100644 (file)
index 0000000..5ac28c8
Binary files /dev/null and b/images/camera_radio_btn_off.png differ
diff --git a/images/camera_radio_btn_on.png b/images/camera_radio_btn_on.png
new file mode 100644 (file)
index 0000000..8d86bc9
Binary files /dev/null and b/images/camera_radio_btn_on.png differ
diff --git a/images/camera_shoot_share_popup.png b/images/camera_shoot_share_popup.png
new file mode 100644 (file)
index 0000000..f060a37
Binary files /dev/null and b/images/camera_shoot_share_popup.png differ
diff --git a/images/camera_shortcut_line_h_01.png b/images/camera_shortcut_line_h_01.png
new file mode 100644 (file)
index 0000000..1d88543
Binary files /dev/null and b/images/camera_shortcut_line_h_01.png differ
diff --git a/images/camera_shortcut_line_v_01.png b/images/camera_shortcut_line_v_01.png
new file mode 100644 (file)
index 0000000..d3a4012
Binary files /dev/null and b/images/camera_shortcut_line_v_01.png differ
diff --git a/images/camera_shortcut_line_v_02.png b/images/camera_shortcut_line_v_02.png
new file mode 100644 (file)
index 0000000..31fb062
Binary files /dev/null and b/images/camera_shortcut_line_v_02.png differ
diff --git a/images/camera_shrtcut_edit_bg.png b/images/camera_shrtcut_edit_bg.png
new file mode 100644 (file)
index 0000000..b0f6838
Binary files /dev/null and b/images/camera_shrtcut_edit_bg.png differ
diff --git a/images/camera_shrtcut_menubar_bg.png b/images/camera_shrtcut_menubar_bg.png
new file mode 100644 (file)
index 0000000..64f356f
Binary files /dev/null and b/images/camera_shrtcut_menubar_bg.png differ
diff --git a/images/camera_shrtcut_text_bg.png b/images/camera_shrtcut_text_bg.png
new file mode 100644 (file)
index 0000000..eadd845
Binary files /dev/null and b/images/camera_shrtcut_text_bg.png differ
diff --git a/images/camera_timer_popup.png b/images/camera_timer_popup.png
new file mode 100644 (file)
index 0000000..fc69ff6
Binary files /dev/null and b/images/camera_timer_popup.png differ
diff --git a/images/indicator/camera_indicator_battery_00.png b/images/indicator/camera_indicator_battery_00.png
new file mode 100644 (file)
index 0000000..a060ac7
Binary files /dev/null and b/images/indicator/camera_indicator_battery_00.png differ
diff --git a/images/indicator/camera_indicator_battery_01.png b/images/indicator/camera_indicator_battery_01.png
new file mode 100644 (file)
index 0000000..aaec3f6
Binary files /dev/null and b/images/indicator/camera_indicator_battery_01.png differ
diff --git a/images/indicator/camera_indicator_battery_02.png b/images/indicator/camera_indicator_battery_02.png
new file mode 100644 (file)
index 0000000..014ca72
Binary files /dev/null and b/images/indicator/camera_indicator_battery_02.png differ
diff --git a/images/indicator/camera_indicator_battery_03.png b/images/indicator/camera_indicator_battery_03.png
new file mode 100644 (file)
index 0000000..5e119ac
Binary files /dev/null and b/images/indicator/camera_indicator_battery_03.png differ
diff --git a/images/indicator/camera_indicator_battery_04.png b/images/indicator/camera_indicator_battery_04.png
new file mode 100644 (file)
index 0000000..00c1a06
Binary files /dev/null and b/images/indicator/camera_indicator_battery_04.png differ
diff --git a/images/indicator/camera_indicator_battery_05.png b/images/indicator/camera_indicator_battery_05.png
new file mode 100644 (file)
index 0000000..3eb7cd4
Binary files /dev/null and b/images/indicator/camera_indicator_battery_05.png differ
diff --git a/images/indicator/camera_indicator_battery_charge.png b/images/indicator/camera_indicator_battery_charge.png
new file mode 100644 (file)
index 0000000..d5d2d5b
Binary files /dev/null and b/images/indicator/camera_indicator_battery_charge.png differ
diff --git a/images/indicator/camera_indicator_battery_full.png b/images/indicator/camera_indicator_battery_full.png
new file mode 100644 (file)
index 0000000..92c3584
Binary files /dev/null and b/images/indicator/camera_indicator_battery_full.png differ
diff --git a/images/indicator/camera_rec.png b/images/indicator/camera_rec.png
new file mode 100644 (file)
index 0000000..c61e047
Binary files /dev/null and b/images/indicator/camera_rec.png differ
diff --git a/images/pinch_zoom_focus_rect_01.9.png b/images/pinch_zoom_focus_rect_01.9.png
new file mode 100644 (file)
index 0000000..ffed3cd
Binary files /dev/null and b/images/pinch_zoom_focus_rect_01.9.png differ
diff --git a/images/short cut/camera_mode_effect_Black and white_nor.png b/images/short cut/camera_mode_effect_Black and white_nor.png
new file mode 100644 (file)
index 0000000..8232df0
Binary files /dev/null and b/images/short cut/camera_mode_effect_Black and white_nor.png differ
diff --git a/images/short cut/camera_mode_effect_Black and white_press.png b/images/short cut/camera_mode_effect_Black and white_press.png
new file mode 100644 (file)
index 0000000..669fc5e
Binary files /dev/null and b/images/short cut/camera_mode_effect_Black and white_press.png differ
diff --git a/images/short cut/camera_mode_effect_negative_nor.png b/images/short cut/camera_mode_effect_negative_nor.png
new file mode 100644 (file)
index 0000000..3783d5a
Binary files /dev/null and b/images/short cut/camera_mode_effect_negative_nor.png differ
diff --git a/images/short cut/camera_mode_effect_negative_press.png b/images/short cut/camera_mode_effect_negative_press.png
new file mode 100644 (file)
index 0000000..1d3df43
Binary files /dev/null and b/images/short cut/camera_mode_effect_negative_press.png differ
diff --git a/images/short cut/camera_mode_effect_none_nor.png b/images/short cut/camera_mode_effect_none_nor.png
new file mode 100644 (file)
index 0000000..accc141
Binary files /dev/null and b/images/short cut/camera_mode_effect_none_nor.png differ
diff --git a/images/short cut/camera_mode_effect_none_press.png b/images/short cut/camera_mode_effect_none_press.png
new file mode 100644 (file)
index 0000000..a87d130
Binary files /dev/null and b/images/short cut/camera_mode_effect_none_press.png differ
diff --git a/images/short cut/camera_mode_effect_sepia_nor.png b/images/short cut/camera_mode_effect_sepia_nor.png
new file mode 100644 (file)
index 0000000..3a50411
Binary files /dev/null and b/images/short cut/camera_mode_effect_sepia_nor.png differ
diff --git a/images/short cut/camera_mode_effect_sepia_press.png b/images/short cut/camera_mode_effect_sepia_press.png
new file mode 100644 (file)
index 0000000..1638d6c
Binary files /dev/null and b/images/short cut/camera_mode_effect_sepia_press.png differ
diff --git a/images/short cut/camera_mode_guidelines_off_nor.png b/images/short cut/camera_mode_guidelines_off_nor.png
new file mode 100644 (file)
index 0000000..e97ccf4
Binary files /dev/null and b/images/short cut/camera_mode_guidelines_off_nor.png differ
diff --git a/images/short cut/camera_mode_guidelines_off_press.png b/images/short cut/camera_mode_guidelines_off_press.png
new file mode 100644 (file)
index 0000000..4125cb1
Binary files /dev/null and b/images/short cut/camera_mode_guidelines_off_press.png differ
diff --git a/images/short cut/camera_mode_guidelines_on_nor.png b/images/short cut/camera_mode_guidelines_on_nor.png
new file mode 100644 (file)
index 0000000..f11d1c1
Binary files /dev/null and b/images/short cut/camera_mode_guidelines_on_nor.png differ
diff --git a/images/short cut/camera_mode_guidelines_on_press.png b/images/short cut/camera_mode_guidelines_on_press.png
new file mode 100644 (file)
index 0000000..ff1bf5b
Binary files /dev/null and b/images/short cut/camera_mode_guidelines_on_press.png differ
diff --git a/images/short cut/camera_mode_refresh_nor.png b/images/short cut/camera_mode_refresh_nor.png
new file mode 100644 (file)
index 0000000..1a60fe1
Binary files /dev/null and b/images/short cut/camera_mode_refresh_nor.png differ
diff --git a/images/short cut/camera_mode_refresh_press.png b/images/short cut/camera_mode_refresh_press.png
new file mode 100644 (file)
index 0000000..266f819
Binary files /dev/null and b/images/short cut/camera_mode_refresh_press.png differ
diff --git a/images/short cut/camera_mode_reset_nor.png b/images/short cut/camera_mode_reset_nor.png
new file mode 100644 (file)
index 0000000..fdf04c7
Binary files /dev/null and b/images/short cut/camera_mode_reset_nor.png differ
diff --git a/images/short cut/camera_mode_reset_press.png b/images/short cut/camera_mode_reset_press.png
new file mode 100644 (file)
index 0000000..607ca88
Binary files /dev/null and b/images/short cut/camera_mode_reset_press.png differ
diff --git a/images/short cut/camera_mode_setting_nor.png b/images/short cut/camera_mode_setting_nor.png
new file mode 100644 (file)
index 0000000..3ea443b
Binary files /dev/null and b/images/short cut/camera_mode_setting_nor.png differ
diff --git a/images/short cut/camera_mode_setting_press.png b/images/short cut/camera_mode_setting_press.png
new file mode 100644 (file)
index 0000000..e97d4f1
Binary files /dev/null and b/images/short cut/camera_mode_setting_press.png differ
diff --git a/images/short cut/camera_mode_timer_10_nor.png b/images/short cut/camera_mode_timer_10_nor.png
new file mode 100644 (file)
index 0000000..7049da3
Binary files /dev/null and b/images/short cut/camera_mode_timer_10_nor.png differ
diff --git a/images/short cut/camera_mode_timer_10_press.png b/images/short cut/camera_mode_timer_10_press.png
new file mode 100644 (file)
index 0000000..bcec218
Binary files /dev/null and b/images/short cut/camera_mode_timer_10_press.png differ
diff --git a/images/short cut/camera_mode_timer_2_nor.png b/images/short cut/camera_mode_timer_2_nor.png
new file mode 100644 (file)
index 0000000..1baaa17
Binary files /dev/null and b/images/short cut/camera_mode_timer_2_nor.png differ
diff --git a/images/short cut/camera_mode_timer_2_press.png b/images/short cut/camera_mode_timer_2_press.png
new file mode 100644 (file)
index 0000000..7d466ab
Binary files /dev/null and b/images/short cut/camera_mode_timer_2_press.png differ
diff --git a/images/short cut/camera_mode_timer_5_nor.png b/images/short cut/camera_mode_timer_5_nor.png
new file mode 100644 (file)
index 0000000..b17a80f
Binary files /dev/null and b/images/short cut/camera_mode_timer_5_nor.png differ
diff --git a/images/short cut/camera_mode_timer_5_press.png b/images/short cut/camera_mode_timer_5_press.png
new file mode 100644 (file)
index 0000000..c7dab2f
Binary files /dev/null and b/images/short cut/camera_mode_timer_5_press.png differ
diff --git a/images/short cut/camera_mode_timer_off_nor.png b/images/short cut/camera_mode_timer_off_nor.png
new file mode 100644 (file)
index 0000000..0184a88
Binary files /dev/null and b/images/short cut/camera_mode_timer_off_nor.png differ
diff --git a/images/short cut/camera_mode_timer_off_press.png b/images/short cut/camera_mode_timer_off_press.png
new file mode 100644 (file)
index 0000000..55250a0
Binary files /dev/null and b/images/short cut/camera_mode_timer_off_press.png differ
diff --git a/images/smale_shot_g.png b/images/smale_shot_g.png
new file mode 100644 (file)
index 0000000..4951408
Binary files /dev/null and b/images/smale_shot_g.png differ
diff --git a/images/smale_shot_o.png b/images/smale_shot_o.png
new file mode 100644 (file)
index 0000000..c1d910f
Binary files /dev/null and b/images/smale_shot_o.png differ
diff --git a/images/smale_shot_w.png b/images/smale_shot_w.png
new file mode 100644 (file)
index 0000000..c7d790d
Binary files /dev/null and b/images/smale_shot_w.png differ
diff --git a/images/tmp/11_camcorder_standby_press.png b/images/tmp/11_camcorder_standby_press.png
new file mode 100644 (file)
index 0000000..94e09c2
Binary files /dev/null and b/images/tmp/11_camcorder_standby_press.png differ
diff --git a/images/tmp/11_camcorder_standby_press_ver.png b/images/tmp/11_camcorder_standby_press_ver.png
new file mode 100644 (file)
index 0000000..ed19b81
Binary files /dev/null and b/images/tmp/11_camcorder_standby_press_ver.png differ
diff --git a/images/tmp/11_camera_mode_bg.png b/images/tmp/11_camera_mode_bg.png
new file mode 100644 (file)
index 0000000..b741abd
Binary files /dev/null and b/images/tmp/11_camera_mode_bg.png differ
diff --git a/images/tmp/11_camera_mode_bg_ver.png b/images/tmp/11_camera_mode_bg_ver.png
new file mode 100644 (file)
index 0000000..0d3aca7
Binary files /dev/null and b/images/tmp/11_camera_mode_bg_ver.png differ
diff --git a/images/tmp/11_camera_mode_button.png b/images/tmp/11_camera_mode_button.png
new file mode 100644 (file)
index 0000000..513d118
Binary files /dev/null and b/images/tmp/11_camera_mode_button.png differ
diff --git a/images/tmp/11_camera_mode_button_ver.png b/images/tmp/11_camera_mode_button_ver.png
new file mode 100644 (file)
index 0000000..6cc056f
Binary files /dev/null and b/images/tmp/11_camera_mode_button_ver.png differ
diff --git a/images/tmp/11_camera_mode_camcorder_off.png b/images/tmp/11_camera_mode_camcorder_off.png
new file mode 100644 (file)
index 0000000..e4dc964
Binary files /dev/null and b/images/tmp/11_camera_mode_camcorder_off.png differ
diff --git a/images/tmp/11_camera_mode_camcorder_on.png b/images/tmp/11_camera_mode_camcorder_on.png
new file mode 100644 (file)
index 0000000..e4dc964
Binary files /dev/null and b/images/tmp/11_camera_mode_camcorder_on.png differ
diff --git a/images/tmp/11_camera_mode_camera_off.png b/images/tmp/11_camera_mode_camera_off.png
new file mode 100644 (file)
index 0000000..b51ec43
Binary files /dev/null and b/images/tmp/11_camera_mode_camera_off.png differ
diff --git a/images/tmp/11_camera_mode_camera_on.png b/images/tmp/11_camera_mode_camera_on.png
new file mode 100644 (file)
index 0000000..b51ec43
Binary files /dev/null and b/images/tmp/11_camera_mode_camera_on.png differ
diff --git a/images/tmp/11_camera_mode_recording_normal.png b/images/tmp/11_camera_mode_recording_normal.png
new file mode 100644 (file)
index 0000000..73efa2e
Binary files /dev/null and b/images/tmp/11_camera_mode_recording_normal.png differ
diff --git a/images/tmp/11_camera_mode_recording_normal_ver.png b/images/tmp/11_camera_mode_recording_normal_ver.png
new file mode 100644 (file)
index 0000000..fcb07b1
Binary files /dev/null and b/images/tmp/11_camera_mode_recording_normal_ver.png differ
diff --git a/images/tmp/11_camera_mode_recording_press.png b/images/tmp/11_camera_mode_recording_press.png
new file mode 100644 (file)
index 0000000..150a6dc
Binary files /dev/null and b/images/tmp/11_camera_mode_recording_press.png differ
diff --git a/images/tmp/11_camera_mode_recording_press_ver.png b/images/tmp/11_camera_mode_recording_press_ver.png
new file mode 100644 (file)
index 0000000..b1115c0
Binary files /dev/null and b/images/tmp/11_camera_mode_recording_press_ver.png differ
diff --git a/images/tmp/11_camera_snapshot.png b/images/tmp/11_camera_snapshot.png
new file mode 100644 (file)
index 0000000..21804b6
Binary files /dev/null and b/images/tmp/11_camera_snapshot.png differ
diff --git a/images/tmp/11_camera_snapshot_press.png b/images/tmp/11_camera_snapshot_press.png
new file mode 100644 (file)
index 0000000..7a1becc
Binary files /dev/null and b/images/tmp/11_camera_snapshot_press.png differ
diff --git a/images/tmp/37_guideline_1.png b/images/tmp/37_guideline_1.png
new file mode 100644 (file)
index 0000000..2e35a79
Binary files /dev/null and b/images/tmp/37_guideline_1.png differ
diff --git a/images/tmp/37_guideline_2.png b/images/tmp/37_guideline_2.png
new file mode 100644 (file)
index 0000000..297e159
Binary files /dev/null and b/images/tmp/37_guideline_2.png differ
diff --git a/images/tmp/37_guideline_opa_1.png b/images/tmp/37_guideline_opa_1.png
new file mode 100644 (file)
index 0000000..74e42a5
Binary files /dev/null and b/images/tmp/37_guideline_opa_1.png differ
diff --git a/images/tmp/37_guideline_opa_2.png b/images/tmp/37_guideline_opa_2.png
new file mode 100644 (file)
index 0000000..1844d7f
Binary files /dev/null and b/images/tmp/37_guideline_opa_2.png differ
diff --git a/images/tmp/37_shootingmode_popup_bg.png b/images/tmp/37_shootingmode_popup_bg.png
new file mode 100644 (file)
index 0000000..770cee9
Binary files /dev/null and b/images/tmp/37_shootingmode_popup_bg.png differ
diff --git a/images/tmp/imageeditor_bottom_arrow.png b/images/tmp/imageeditor_bottom_arrow.png
new file mode 100644 (file)
index 0000000..f2dc0d8
Binary files /dev/null and b/images/tmp/imageeditor_bottom_arrow.png differ
diff --git a/images/tmp/imageeditor_left_arrow.png b/images/tmp/imageeditor_left_arrow.png
new file mode 100644 (file)
index 0000000..558a555
Binary files /dev/null and b/images/tmp/imageeditor_left_arrow.png differ
diff --git a/images/tmp/imageeditor_right_arrow.png b/images/tmp/imageeditor_right_arrow.png
new file mode 100644 (file)
index 0000000..e07767d
Binary files /dev/null and b/images/tmp/imageeditor_right_arrow.png differ
diff --git a/images/tmp/imageeditor_top_arrow.png b/images/tmp/imageeditor_top_arrow.png
new file mode 100644 (file)
index 0000000..79c9fef
Binary files /dev/null and b/images/tmp/imageeditor_top_arrow.png differ
diff --git a/images/vertical/camera_mode_bg_ver.png b/images/vertical/camera_mode_bg_ver.png
new file mode 100644 (file)
index 0000000..c1ad3c4
Binary files /dev/null and b/images/vertical/camera_mode_bg_ver.png differ
diff --git a/images/vertical/camera_mode_button_ver.png b/images/vertical/camera_mode_button_ver.png
new file mode 100644 (file)
index 0000000..b2540df
Binary files /dev/null and b/images/vertical/camera_mode_button_ver.png differ
diff --git a/images/vertical/camera_mode_option_bg_ver.PNG b/images/vertical/camera_mode_option_bg_ver.PNG
new file mode 100644 (file)
index 0000000..3d38f85
Binary files /dev/null and b/images/vertical/camera_mode_option_bg_ver.PNG differ
diff --git a/images/vertical/camera_mode_option_bg_ver_press.PNG b/images/vertical/camera_mode_option_bg_ver_press.PNG
new file mode 100644 (file)
index 0000000..d02381b
Binary files /dev/null and b/images/vertical/camera_mode_option_bg_ver_press.PNG differ
diff --git a/images/vertical/camera_mode_shutter_normal_ver.png b/images/vertical/camera_mode_shutter_normal_ver.png
new file mode 100644 (file)
index 0000000..0cea4b3
Binary files /dev/null and b/images/vertical/camera_mode_shutter_normal_ver.png differ
diff --git a/images/vertical/camera_mode_shutter_press_ver.png b/images/vertical/camera_mode_shutter_press_ver.png
new file mode 100644 (file)
index 0000000..b8ee585
Binary files /dev/null and b/images/vertical/camera_mode_shutter_press_ver.png differ
diff --git a/images/vertical/camera_normal_bg_ver.png b/images/vertical/camera_normal_bg_ver.png
new file mode 100644 (file)
index 0000000..313e962
Binary files /dev/null and b/images/vertical/camera_normal_bg_ver.png differ
diff --git a/images/vertical/camera_normal_bg_ver2.png b/images/vertical/camera_normal_bg_ver2.png
new file mode 100644 (file)
index 0000000..7c09aad
Binary files /dev/null and b/images/vertical/camera_normal_bg_ver2.png differ
diff --git a/images/vertical/camera_normal_bg_ver2_01.png b/images/vertical/camera_normal_bg_ver2_01.png
new file mode 100644 (file)
index 0000000..0371449
Binary files /dev/null and b/images/vertical/camera_normal_bg_ver2_01.png differ
diff --git a/images/vertical/camera_normal_bg_ver_01.png b/images/vertical/camera_normal_bg_ver_01.png
new file mode 100644 (file)
index 0000000..edac7f7
Binary files /dev/null and b/images/vertical/camera_normal_bg_ver_01.png differ
diff --git a/images/vertical/camera_option_popup_anker_vertical.png b/images/vertical/camera_option_popup_anker_vertical.png
new file mode 100644 (file)
index 0000000..71b4154
Binary files /dev/null and b/images/vertical/camera_option_popup_anker_vertical.png differ
diff --git a/images/vertical/camera_popup_ex_bar_ver.png b/images/vertical/camera_popup_ex_bar_ver.png
new file mode 100644 (file)
index 0000000..8e5ea75
Binary files /dev/null and b/images/vertical/camera_popup_ex_bar_ver.png differ
diff --git a/images/vertical/camera_popup_ex_line_ver.png b/images/vertical/camera_popup_ex_line_ver.png
new file mode 100644 (file)
index 0000000..331aacd
Binary files /dev/null and b/images/vertical/camera_popup_ex_line_ver.png differ
diff --git a/images/vertical/camera_popup_exposure_vertical_bg.png b/images/vertical/camera_popup_exposure_vertical_bg.png
new file mode 100644 (file)
index 0000000..117d401
Binary files /dev/null and b/images/vertical/camera_popup_exposure_vertical_bg.png differ
diff --git a/images/vertical/camera_popup_zoom_bar_ver.png b/images/vertical/camera_popup_zoom_bar_ver.png
new file mode 100644 (file)
index 0000000..269a3d3
Binary files /dev/null and b/images/vertical/camera_popup_zoom_bar_ver.png differ
diff --git a/images/vertical/camera_popup_zoom_ver.png b/images/vertical/camera_popup_zoom_ver.png
new file mode 100644 (file)
index 0000000..e6bf638
Binary files /dev/null and b/images/vertical/camera_popup_zoom_ver.png differ
diff --git a/images/vertical/camera_shrtcut_edit_bg_02_ver.png b/images/vertical/camera_shrtcut_edit_bg_02_ver.png
new file mode 100644 (file)
index 0000000..0a0e510
Binary files /dev/null and b/images/vertical/camera_shrtcut_edit_bg_02_ver.png differ
diff --git a/images/vertical/camera_shrtcut_edit_bg_ver.png b/images/vertical/camera_shrtcut_edit_bg_ver.png
new file mode 100644 (file)
index 0000000..ed7dd12
Binary files /dev/null and b/images/vertical/camera_shrtcut_edit_bg_ver.png differ
diff --git a/images/vertical/camera_shrtcut_menubar_bg_ver.png b/images/vertical/camera_shrtcut_menubar_bg_ver.png
new file mode 100644 (file)
index 0000000..19b343c
Binary files /dev/null and b/images/vertical/camera_shrtcut_menubar_bg_ver.png differ
diff --git a/images/vertical/camera_shrtcut_text_bg_ver.png b/images/vertical/camera_shrtcut_text_bg_ver.png
new file mode 100644 (file)
index 0000000..5d58a2f
Binary files /dev/null and b/images/vertical/camera_shrtcut_text_bg_ver.png differ
diff --git a/include/CamDeviceCapacity.h b/include/CamDeviceCapacity.h
new file mode 100755 (executable)
index 0000000..0053bd2
--- /dev/null
@@ -0,0 +1,82 @@
+/*\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
+\r
+\r
+#ifndef _CCAM_DEVICE_CAPACITY_H_\r
+#define _CCAM_DEVICE_CAPACITY_H_\r
+\r
+#include "cam_property.h"\r
+\r
+class CCamDeviceCapacity\r
+{\r
+       //===========================================================================\r
+       // Constructor & Destructor\r
+public:\r
+\r
+protected:\r
+       CCamDeviceCapacity();\r
+       virtual ~CCamDeviceCapacity();\r
+\r
+\r
+       //===========================================================================\r
+       // Attributes\r
+protected:\r
+       static CCamDeviceCapacity* m_pInstance;\r
+\r
+       typedef struct _DevCapsSupported\r
+       {\r
+               bool    bChecked;\r
+               bool    bSupported;\r
+       }DevCapsSupported;\r
+\r
+       typedef struct _DevCapsMinMax\r
+       {\r
+               bool    bChecked;\r
+               bool    bSupported;\r
+               int     nMin;\r
+               int     nMax;\r
+       }DevCapsMinMax;\r
+\r
+       typedef struct _DevCapsRange\r
+       {\r
+               bool bChecked;\r
+               bool bSupported;\r
+               unsigned int unCaps;\r
+       }DevCapsRange;\r
+\r
+       DevCapsRange m_Effect;\r
+       DevCapsMinMax   m_Zoom;\r
+\r
+       unsigned int m_uFuncCaps;\r
+       //===========================================================================\r
+       // Interfaces\r
+public:\r
+\r
+       static CCamDeviceCapacity*      GetInstance();\r
+       void                                    Destroy();\r
+       void                                    ResetCaps();\r
+\r
+       void            GetCamDevFuncCaps(unsigned int *eType, void *user_data);\r
+       bool            GetCamDevEffectCaps(unsigned int *uCapacity, void *user_data);\r
+       bool            GetCamDevZoomCaps(int *min, int *max);\r
+\r
+private:\r
+       bool            IsSupported(unsigned int type, CamDeviceType deviceType, void *user_data);\r
+};\r
+\r
+\r
+#endif //_CCAM_DEVICE_CAPACITY_H_\r
+\r
diff --git a/include/CamTypeConverter.h b/include/CamTypeConverter.h
new file mode 100755 (executable)
index 0000000..5d3bb47
--- /dev/null
@@ -0,0 +1,33 @@
+/*\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
+\r
+\r
+#ifndef CAM_TYPECONVERTER_H_\r
+#define CAM_TYPECONVERTER_H_\r
+\r
+#include "camera.h"\r
+#include "cam_property.h"\r
+\r
+class CCamTypeConverter {\r
+\r
+public:\r
+static unsigned int CamEffectDevConvertCaps(camera_attr_effect_mode_e effect);\r
+static unsigned int CamEffectCamConvertCaps(CamSettingsEffects effect);\r
+\r
+};\r
+\r
+#endif                         /*  CAM_TYPECONVERTER_H_ */\r
+\r
diff --git a/include/cam.h b/include/cam.h
new file mode 100755 (executable)
index 0000000..ab12bb8
--- /dev/null
@@ -0,0 +1,411 @@
+/*
+ * 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 __DEF_CAM_H__
+#define __DEF_CAM_H__
+
+
+#include <Elementary.h>
+#include <Ecore.h>
+#include <Ecore_X.h>
+#include <dlfcn.h>
+#include <utilX.h>
+
+#include "cam_property.h"
+#include "cam_app.h"
+#include "edc_string.h"
+#include <fcntl.h>
+
+#include <vconf.h>
+#include <ui-gadget.h>
+#include <app.h>
+#include <media_content.h>
+
+
+#define DISABLE_FOR_DEMO 0
+
+#ifdef USE_FIFO_THREAD
+#define CAM_FIFO_PATH "/tmp/cam_cmd_fifo"
+
+#define CAM_FIFO_CMD_EXIT      "EXIT"
+#define CAM_FIFO_CMD_START     "START"
+
+#define CAM_CAPTURE_AUTO_START "CAPTURE_AUTO_START"
+
+#define MAX_NUM_OF_FIFO_TOKEN  6
+#endif
+
+#ifndef PREFIX
+#  define PREFIX                                               "/opt/apps/org.tizen.camera-app/"
+#endif
+
+#define PACKAGE                                                        "camera"
+#define GRP_MAIN                                               "main"
+#define LOCALEDIR                                              PREFIX"/res/locale"
+
+#define EDJ_PATH                                               PREFIX"/res/edje"
+#define CAM_IMAGE_PATH                                 PREFIX"/res/images/"
+
+#define CAM_MAIN_LAYOUT_EDJ_NAME                                               EDJ_PATH"/cam_main_layout.edj"
+
+#define CAM_RECORDING_EDJ_NAME                                                 EDJ_PATH"/cam_recording_edje.edj"
+#define CAM_RECORDING_INVERSE_EDJ_NAME                                 EDJ_PATH"/cam_recording_edje_inverse.edj"
+#define CAM_RECORDING_VERTICAL_EDJ_NAME                                        EDJ_PATH"/cam_recording_edje_vertical.edj"
+#define CAM_RECORDING_VERTICAL_INVERSE_EDJ_NAME                        EDJ_PATH"/cam_recording_edje_vertical_inverse.edj"
+
+#define CAM_TOOLBAR_LAYOUT_EDJ_NAME                                            EDJ_PATH"/cam_toolbar_layout.edj"
+#define CAM_TOOLBAR_LAYOUT_INVERSE_EDJ_NAME                            EDJ_PATH"/cam_toolbar_layout_inverse.edj"
+#define CAM_TOOLBAR_LAYOUT_VERTICAL_EDJ_NAME                   EDJ_PATH"/cam_toolbar_layout_vertical.edj"
+#define CAM_TOOLBAR_LAYOUT_VERTICAL_INVERSE_EDJ_NAME   EDJ_PATH"/cam_toolbar_layout_vertical_inverse.edj"
+
+#define CAM_SETTING_POPUP_STYLE_EDJ_NAME                               EDJ_PATH"/style_ctxpopup_camera.edj"
+#define CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME            EDJ_PATH"/style_ctxpopup_camera_with_radio.edj"
+#define CAM_SETTING_POPUP_LAYOUT_EDJ_NAME                              EDJ_PATH"/cam_setting_popup_layout.edj"
+#define CAM_SLIDER_STYLE_EDJ_NAME                                              EDJ_PATH"/style_slider_camera.edj"
+#define CAM_SHOTCUTS_EDIT_CTXPOPUP_EDJ_NAME                            EDJ_PATH"/cam_ctxpopup_shortcuts.edj"
+
+#define CAM_UTILS_EDJ_NAME                                                             EDJ_PATH"/cam_utils.edj"
+#define CAM_INDICATOR_EDJ_NAME                                                 EDJ_PATH"/cam_indicator_layout.edj"
+#define CAM_ZOOM_EDJ_NAME                                                              EDJ_PATH"/cam_zoom_layout.edj"
+#define CAM_ZOOM_EDJ_INVERSE_NAME                                              EDJ_PATH"/cam_zoom_layout_inverse.edj"
+#define CAM_ZOOM_EDJ_VERTICAL_NAME                                             EDJ_PATH"/cam_zoom_layout_vertical.edj"
+#define CAM_ZOOM_EDJ_VERTICAL_INVERSE_NAME                             EDJ_PATH"/cam_zoom_layout_vertical_inverse.edj"
+
+#define IMAGE_VIEWER_VIEW_MODE_KEY_NAME "View Mode"
+#define IMAGE_VIEWER_FILE_PATH_KEY_NAME "Path"
+#define IMAGE_VIEWER_SET_AS_TYPE "Setas type"
+#define IMAGE_VIEWER_UG_NAME "image-viewer-efl"
+
+#define AF_FAIL                                                        PREFIX"/share/camera/sounds/af_fail.wav"
+#define SHUTTER                                                        PREFIX"/share/camera/sounds/Shutter_02.wav"
+#define RECORD_START_SOUND  PREFIX"/share/camera/sounds/cam_start_01.wav"
+#define RECORD_STOP_SOUND   PREFIX"/share/camera/sounds/cam_stop_01.wav"
+
+#define PICTURE_PATH                           PREFIX"/share/camera/pictures"
+#define VIDEO_PATH                                     PREFIX"/share/camera/videos"
+
+#define PREVIEW_WIDTH                          640
+#define PREVIEW_HEIGHT                 480
+
+#define WINDOW_W                                       640     /* 400 */ /*1280*/
+#define WINDOW_H                                       480     /* 240 */ /*720*/
+
+#define AUL_SERVICE_MIME_TYPE_IMAGE    "image/jpg"
+#define AUL_SERVICE_MIME_TYPE_VIDEO    "video/3gp"
+#define APP_SERVICE_DEFAULT_CALLER_NAME "3rd_Party_App"
+#define APP_SERVICE_MESSAGE_APP        "message"
+
+#define FAKE_IMAGE_PKG_NAME    "org.tizen.camera"
+
+#define DEFAULT_WIN_ANGLE (270)
+
+#define CAM_FILE_PATH_MAX 1024
+#define EFL_TEMP_CODE
+/* #define USE_CAMERA_APP_SHUTTER_SOUND 1 */
+/* #define ENABLE_CAPTURE_ANIMATION */
+
+struct appdata {
+       Evas *evas;
+       Ecore_Evas *ee;
+       Evas_Object *win_main;
+       Ecore_X_Window main_xid;
+       Ecore_Pipe *main_pipe;
+       CamLaunchType launch_type;
+       CamAppCoreState appcore_state;
+
+
+       app_device_orientation_e rot_current;
+       app_device_orientation_e rot_previous;
+
+
+       int angle_pre;
+       int angle;
+       int rotate_angle;
+       int previous_win_rotate_angle;
+       gboolean is_rotating;
+
+       int camcorder_rotate;
+
+       Evas_Object *layout_main;       /* layout widget based on EDJ */
+       Evas_Object *black_screen;
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+       Evas_Object *shutter_screen;
+       Evas_Object *shutter_move_image;
+
+       CamRectangle shutter_src_rect;
+       CamRectangle shutter_des_rect;
+#endif
+
+       int win_width;
+       int win_height;
+
+       int camfw_video_width;
+       int camfw_video_height;
+
+       double af_start_x;      /* area start coordination */
+       double af_start_y;      /* area start coordination */
+       int af_outside;
+       int af_x;
+       int af_y;
+       double camera_focus_w;  /* size of focus image */
+       double camera_focus_h;  /* size of focus image */
+
+       int touch_lcd_x;        /* lcd x */
+       int touch_lcd_y;        /* lcd y */
+
+       int preview_offset_x;
+       int preview_offset_y;
+       int preview_w;
+       int preview_h;
+
+       int target_direction;
+       Evas_Object *toolbar_edje;
+
+       Evas_Object *toolbar_edje_landscape;
+       Evas_Object *toolbar_edje_portrait;
+       Evas_Object *toolbar_edje_landscape_inverse;
+       Evas_Object *toolbar_edje_portrait_inverse;
+       char *toolbar_edj_file;
+       struct {
+
+               struct {
+                       Evas_Object *edje_landscape;
+                       Evas_Object *edje_portrait;
+                       Evas_Object *edje_landscape_inverse;
+                       Evas_Object *edje_portrait_inverse;
+
+                       Evas_Object *edje;
+                       Evas_Object *camera_icon;
+                       Evas_Object *camcorder_icon;
+                       bool is_dimmed;
+               } mode_item;
+
+               struct {
+                       Evas_Object *edje;
+                       Evas_Object *edje_landscape;
+                       Evas_Object *edje_portrait;
+                       Evas_Object *edje_landscape_inverse;
+                       Evas_Object *edje_portrait_inverse;
+
+                       Evas_Object *thumbnail_image;
+               } quickview_item;
+
+               Ecore_Timer *conti_shot_timer;
+       } toolbar;
+
+       Evas_Object *toolbar_0_icon; /*setting icon*/
+       Evas_Object *toolbar_1_icon;
+       Evas_Object *toolbar_2_icon;
+       Evas_Object *toolbar_3_icon;
+       Evas_Object *toolbar_4_icon;
+
+       int toolbar_0_type;
+       int toolbar_1_type;
+       int toolbar_2_type;
+       int toolbar_3_type;
+       int toolbar_4_type;
+
+       Evas_Object *shutterbtn;
+       Evas_Object *shutterbtn_camera_icon;
+       Evas_Object *shutterbtn_camcorder_icon;
+
+       Evas_Object *backbtn;
+
+       Evas_Object *focus_edje;
+       Evas_Object *indicator_edje;
+       Evas_Object *zoom_edje;
+       Evas_Object *zoom_text_min_edje;
+       Evas_Object *zoom_text_max_edje;
+       Evas_Object *recording_edje;
+       Evas_Object *capturebtn_edje;
+
+
+#ifdef GUIDE_LINE_ENALBE
+       Evas_Object *guideline_edje;
+#endif
+
+       Evas_Object *progressbar_edje;
+       Evas_Object *progressbar;
+
+       Elm_Object_Item *timer_item;
+       Elm_Object_Item *setting_select_item;
+
+       Evas_Object *radio;     /* radio button */
+       Evas_Object *guideline_radio;   /* radio button */
+       Evas_Object *timer_radio;
+       Evas_Object *genlist;
+
+       int effect_radio_index;
+       int timer_radio_index;
+
+       Evas_Object *toolbar_popup; /*I think this evas_object have no use,fix me*/
+       Evas_Object *toolbar_setting_popup;
+       Evas_Object *toolbar_setting_ctxpopup;
+       Evas_Object *toolbar_setting_popup_content;
+       bool toolbar_show_setting_popup;
+       Ecore_Idler *toolbar_setting_popup_idler;
+
+       bool toolbar_show_edit_shortcuts_popup;
+
+       Evas_Object *setting_ctxpopup;
+       Evas_Object *ctxpopup_area;
+       Evas_Object *setting_ctxpopup_area;
+
+       Evas_Object *edit_shortcuts_popup;
+       Evas_Object *edit_shortcuts_popup_ctx;
+       Evas_Object *edit_shortcuts_popup_scroll;
+       Evas_Object *edit_shortcuts_popup_description;/*note: text part*/
+       /* continous */
+       struct {
+               Evas_Object *layout_edje;
+               Evas_Object *gengrid;
+               Eina_List *item_list;
+       } conti_review;
+
+       Evas_Object *progress_popup;
+       Evas_Object *progress_popup_bar;
+
+       Ecore_Event_Handler *key_up;
+       Ecore_Event_Handler *key_down;
+       Ecore_Event_Handler *mouse_up;
+       Ecore_Event_Handler *mouse_down;
+       Ecore_Event_Handler *mouse_move;
+
+       Ecore_Idler *recording_commit;
+
+       /* Idle handler of capture callback. wh01.cho@samsung.com. 2010-12-15. */
+       Ecore_Idler *still_captured_idle;
+       Ecore_Idler *capture_idle;
+       GList *capture_cb_list;
+#ifdef ENABLE_CAPTURE_ANIMATION
+       MMCamcorderCaptureDataType capture_datatype;
+#endif
+
+       Ecore_Timer *rec_icon_updater;
+       Ecore_Timer *rec_time_updater;
+       Ecore_Timer *rec_pause_timer;
+
+       Ecore_Timer *popup_timer;
+       Evas_Object *waring_popup;
+       Evas_Object *confirm_popup;
+       int recording_state;
+
+       /* auto shot */
+       Ecore_Idler *auto_shot_idle;
+
+       /* general */
+       Ecore_Timer *timeout_checker;
+       Ecore_Timer *auto_close_timer;
+       Ecore_Timer *setting_toolbar_hide_timer;
+
+       Ecore_Timer *continuous_af_timer;
+
+       Ecore_Timer *toolbar_toggle_timer;
+       int toolbar_hided;
+
+       bool timer_activated;
+       Ecore_Timer *timer_timer;
+       int timer_count;
+       Evas_Object *timer_icon_edje;
+
+       CamAppData *camapp_handle;
+       ShortCutData *shortcut_data; /*save now moving or touch shortcut*/
+
+       /* Launching Mode */
+       int launching_mode;
+       /*app service mime type*/
+       char *aul_service_mime;
+       /*camera app is called by this app using app service */
+       char *appsvc_caller;
+       /* exe args */
+       CamExeArgs *exe_args;
+
+       /* Thread for file register */
+#ifdef USE_FILE_REG_THREAD
+       pthread_t file_reg_thread;
+       pthread_mutex_t file_reg_mutex;
+       pthread_cond_t file_reg_cond;
+       GQueue *file_reg_queue;
+#endif
+
+       pthread_t camera_start_thread;
+
+       ui_gadget_h imageviewer_ug;
+       gboolean ug_is_deleting_process; /*note: now ug is deleting process, and run into camera preview process*/
+       service_h imageviewer_service;
+
+       int mm_state;
+       gboolean isGrabed;
+
+       Ecore_Idler *update_thumbnail_idler;
+       Ecore_Timer *thumbnail_hide_timer;
+
+       Ecore_Timer *longpress_timer;
+       gboolean up_key;
+       gboolean shutter_move;
+       /*checking exist result snapshot popup*/
+       gboolean is_showing_snapshot_popup;
+
+       int cancel_key_press;
+       int is_recording;
+
+       gboolean path_in_return;
+       int show_menu;
+       int displayed_setting_popup;
+       int enable_mode_change;
+       int stop_continuous_shot;
+       /*check out low battery */
+       gboolean battery_status;
+       /*check torch light*/
+       gboolean torchlight_on;
+
+       /* during the call */
+       int is_calling;
+       int foucs_out_from_quickview;
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       int play_rec_sound;
+#endif
+       Evas_Object *auto_close_popup;
+       Evas_Object *restore_default_popup;
+       Evas_Object *zoom_warring_popup;
+       int auto_close_count;
+
+       int last_camera_zoom_mode;
+
+       /* guide screen */
+       Evas_Object *shot_mode_guide_popup;
+
+       service_h service_handle;
+       cam_menu_composer* setting_menu_composer;
+
+       /*note: remained_count*/
+       int remained_count;
+};
+
+
+
+extern void *handle;
+gboolean open_cam_ext_handle();
+gboolean open_cam_handle(void* data);
+void close_cam_ext_handle();
+gboolean cam_toolbar_menu_config_init(void *data, int mode);
+gboolean cam_toolbar_menu_config_update(void *data);
+
+int update_ts_main(void *data);
+
+#endif                         /* __DEF_CAM_H__ */
diff --git a/include/cam_animation.h b/include/cam_animation.h
new file mode 100644 (file)
index 0000000..0bfc155
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * 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 "cam.h"
+#include "cam_app.h"
+#ifdef ENABLE_CAPTURE_ANIMATION
+
+static gboolean cam_app_create_screennail_and_start_animation(void *data);
+static gboolean __cam_save_captured_file(void *data);
+static gboolean cam_app_shutter_screen_show(void *data);
+#endif
diff --git a/include/cam_app.h b/include/cam_app.h
new file mode 100755 (executable)
index 0000000..711c7a5
--- /dev/null
@@ -0,0 +1,438 @@
+/*
+ * 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 __DEF_cam_app_H_
+#define __DEF_cam_app_H_
+
+
+
+#include <Elementary.h>
+#include <Ecore_X.h>
+#include <Edje.h>
+#include <utilX.h>
+#include <glib.h>
+#include <glib-object.h>
+
+#include <libintl.h>
+#include <aul.h>
+#include <aul_service.h>
+#include <app.h>
+
+#include "cam_property.h"
+#include "cam_debug.h"
+
+#include <media_content.h>
+
+#define ENABLE_MOUSE_CONTROL 1
+
+#define USE_FIFO_THREAD
+#define USE_FILE_REG_THREAD
+#define EFL_TEMP_CODE
+#ifdef USE_FILE_REG_THREAD
+#define REG_THREAD_EXIT "REG_THREAD_EXIT"
+#endif
+
+#define USE_VCONF_CAMERA_KEY
+/* next define statement will be deleted */
+#define TODO_SURRPORT
+#include <camera.h>
+#define BEAT_UI
+#ifdef BEAT_UI
+#define DISABLE_TOOLBAR_TOGGLE
+/* #define DISABLE_INDICATOR */
+#endif
+
+
+struct text_part {
+       char *part;
+       char *msgid;
+};
+
+/*
+  * example
+GValue value = {0, };
+CAM_GVALUE_SET_INT(value, 10);
+*/
+
+#define CAM_GVALUE_SET_INT(g_value/*GValue */, n_value) \
+{ \
+       g_value_init(&g_value, G_TYPE_INT); \
+       g_value_set_int(&g_value, n_value); \
+}
+
+#define CAM_GVALUE_SET_UINT(g_value/*GValue */, n_value) \
+{ \
+       g_value_init(&g_value, G_TYPE_UINT); \
+       g_value_set_uint(&g_value, n_value); \
+}
+
+#define CAM_GVALUE_SET_BOOLEAN(g_value/*GValue */, n_value) \
+{ \
+       g_value_init(&g_value, G_TYPE_BOOLEAN); \
+       g_value_set_boolean(&g_value, n_value); \
+}
+
+#define CAM_GVALUE_SET_STRING(g_value/*GValue */, n_value) \
+{ \
+       g_value_init(&g_value, G_TYPE_STRING); \
+       g_value_set_string(&g_value, n_value); \
+}
+
+#define _EDJ(x)  (Evas_Object *)elm_layout_edje_get(x)
+
+#define UYVY_GUIDE_RECT_GREEN  (unsigned long)0xC262C212;
+#define UYVY_GUIDE_RECT_ORANGE         (unsigned long)0xA6BAA621;
+#define UYVY_GUIDE_RECT_RED    (unsigned long)0x52FA5270;
+#define UYVY_GUIDE_RECT_WHITE  (unsigned long)0xFE7FFE80;
+#define YUYV_GUIDE_RECT_GREEN  (unsigned long)0x62C212C2;
+#define YUYV_GUIDE_RECT_ORANGE         (unsigned long)0xBAA621A6;
+#define YUYV_GUIDE_RECT_RED            (unsigned long)0xFA527052;
+#define YUYV_GUIDE_RECT_WHITE  (unsigned long)0x7FFE80FE;
+
+enum {
+       NORMAL_BATTERY_STATUS = 0,
+       LOW_BATTERY_WARNING_STATUS,
+       LOW_BATTERY_CRITICAL_STATUS,
+};
+
+enum {
+       DISPLAY_NONE_POPUP = 0,
+       DISPLAY_EDIT_SHOTCUTS_POPUP,
+       DISPLAY_TIMER_POPUP,
+       DISPLAY_EFFECTS_POPUP,
+       DISPLAY_GUIDELINES_POPUP,
+       DISPLAY_RESET_POPUP,
+};
+
+enum {
+       CAM_POPUP_RESPONSE_NONE = 0,
+       CAM_POPUP_RESPONSE_TIMEOUT,
+       CAM_POPUP_RESPONSE_OK,
+       CAM_POPUP_RESPONSE_CANCEL,
+       CAM_POPUP_RESPONSE_CLOSE,
+  } ;
+
+
+typedef struct _CamApp CamAppData;
+
+struct _CamApp {
+       gint camera_mode;
+       gint shooting_mode;
+       gint recording_mode;
+       gint focus_mode;
+       gint resolution;
+       gint fps;
+       gint effect;
+       gint af_mode;
+       gint flash;
+       gint timer;
+       gint image_quality;
+       gint video_quality;
+       gint audio_quality;
+       gint default_preview_width;
+       gint default_preview_height;
+       gint battery_level;
+       gint battery_charging;
+       Ecore_Timer *battery_ani_timer;
+
+       gint zoom;
+       gint zoom_min;
+       gint zoom_max;
+       gint zoom_mode;
+       gint storage;
+
+       gboolean audio_recording;
+       gboolean guideline;
+       gboolean review;
+       gboolean enable_touch_af;
+
+       gint image_count;
+       gint shutter_sound;
+       gint size_limit;
+       gint size_limit_type;
+       guint rec_elapsed;
+       guint rec_filesize;
+       guint rec_stop_type;
+
+       guint focus_state;
+
+       /* timeout check */
+       gdouble last_time;
+       gdouble start_time;     /* setting toolbar */
+
+       gulong guide_rect_color;
+
+       /* file */
+       gchar *filename;
+       char *thumbnail_name;
+
+       gboolean zoom_lock;
+
+       int key_lock;
+       int mouse_lock;
+
+       /*set guide rect color */
+       gulong guide_rect_green;
+       gulong guide_rect_orange;
+       gulong guide_rect_red;
+       gulong guide_rect_white; /*store white color of yuyv or uvuv*/
+
+       /*camera callback*/
+       camera_state_changed_cb state_cb;
+       camera_focus_changed_cb focus_cb;
+       camera_error_cb error_cb;
+       camera_capturing_cb capture_cb;
+       camera_capture_completed_cb capture_completed_cb;
+       camera_preview_cb preview_cb;
+       camera_interrupted_cb cam_interrupted_cb;
+
+       /*recorder callbak*/
+       recorder_recording_status_cb recording_status_cb;
+       recorder_state_changed_cb recording_state_changed_cb;
+       recorder_recording_limit_reached_cb recording_limit_reached_cb;
+       recorder_interrupted_cb rec_interrupted_cb;
+
+       /*face detect callback*/
+       camera_face_detected_cb face_detect_cb;
+
+};
+
+typedef struct _CamVideoRectangle CamVideoRectangle;
+struct _CamVideoRectangle {
+       gint x;
+       gint y;
+       gint w;
+       gint h;
+};
+
+
+/**
+ * Structure of Idler item
+ */
+typedef struct {
+       Ecore_Idler *idler;
+       void *data;
+} CamIdlerItem;
+
+gboolean __cam_single_shot_reg_file(char *file_path);
+
+/* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+Eina_Bool cam_image_capture_handle_idler(void *item);
+Eina_Bool cam_image_capture_handle(void *data);
+Eina_Bool cam_capture_on_recording_handle(void *data);
+
+Eina_Bool cam_app_real_exit(void *data);
+/* gboolean cam_xwin_create(void *data); */
+void *cam_appdata_get(void);
+int cam_appdata_init(void *data);
+int cam_appdata_fini(void *data);
+CamAppData *cam_handle_get(void);
+
+gboolean cam_app_start(void *data);
+Eina_Bool cam_app_stop(void *data);
+gboolean cam_app_resume(void *data);
+gboolean cam_app_pause(void *data);
+
+gboolean cam_app_init(void *data);
+gboolean cam_app_quit(void *data);
+
+gboolean cam_handle_create(void *data);
+gboolean cam_handle_free(void *data);
+gboolean cam_handle_init(void *data, int mode);
+Eina_Bool _auto_shot_idle_cb(void *data);
+
+gboolean cam_app_preview_start(void *data);
+gboolean cam_app_preview_stop(void);
+
+gboolean cam_camera_touch_af_press(void *data);
+gboolean cam_camera_key_press(void *data);
+gboolean cam_camera_key_half_press(void *data);
+gboolean cam_camera_key_release(void *data);
+gboolean cam_camera_key_half_release(void *data);
+Eina_Bool cam_volume_key_press(void *data);
+
+Eina_Bool cam_hard_key_up(void *data, int type, void *event_info);
+Eina_Bool cam_hard_key_down(void *data, int type, void *event_info);
+
+#if ENABLE_MOUSE_CONTROL
+Eina_Bool cam_mouse_button_down(void *data, int type, void *event_info);
+Eina_Bool cam_mouse_button_up(void *data, int type, void *event_info);
+Eina_Bool cam_mouse_move(void *data, int type, void *event_info);
+#endif
+
+gboolean cam_handle_value_set(void *data, int type, const GValue *value);
+
+int cam_app_get_latest_mode(void);
+void cam_app_set_config_group(gint mode);
+
+const gchar *cam_app_get_target_path(void);
+gchar *cam_app_get_next_filename(void);
+gchar *cam_app_get_last_filename(void);
+
+gboolean cam_callback_init(void *data);
+
+gboolean cam_app_run_media_browser(void *data, gchar *filename);
+/* int cam_quick_waiter(void * data); */
+
+gboolean cam_app_clear_engine_data(void *data, gboolean release);
+
+gboolean cam_app_check_wide_resolution(int id);
+
+gboolean cam_app_is_skip_video_stream();
+
+void cam_app_stop_video_stream();
+
+void cam_app_run_video_stream();
+
+Eina_Bool cam_app_capture_idle_cb(void *yuvdata);
+
+/* progress */
+gboolean cam_app_create_progressbar(void *data);
+gboolean cam_app_set_progressbar_value(void *data, double value);
+gboolean cam_app_set_progressbar_text(void *data, const char *text);
+gboolean cam_app_destroy_progressbar(void *data);
+
+/* timeout */
+gboolean cam_app_timeout_checker_init(void *data);
+gboolean cam_app_timeout_checker_remove(void);
+
+#if ENABLE_HAPTIC
+void cam_app_haptic_cb(void *data, Evas_Object *o, const char *emission,
+                      const char *source);
+#endif
+
+#ifdef USE_FIFO_THREAD
+void *cam_app_FIFO_thread_run(void *data);
+void cam_app_FIFO_thread_exit();
+#endif
+
+#ifdef USE_FILE_REG_THREAD
+gboolean cam_app_create_file_register_thread(void *data);
+void *cam_app_file_register_thread_run(void *data);
+void cam_app_file_register_thread_exit(void *data);
+#endif
+
+gboolean cam_app_set_args(void *data, char *args[]);
+gboolean cam_app_init_with_args(void *data);
+
+/* gboolean cam_app_wait_target_state(int target, int wait_time); */
+
+gboolean cam_app_exit(void *data);
+
+gboolean cam_key_grab_init(void *data);
+gboolean cam_key_grab_deinit(void *data);
+
+gboolean cam_app_key_event_init(void *data);
+gboolean cam_app_key_event_deinit(void *data);
+gboolean cam_app_mouse_event_init(void *data);
+gboolean cam_app_mouse_event_deinit(void *data);
+
+gboolean cam_layout_init(void *data);
+gboolean cam_mode_change(void *data, int to_mode);
+gboolean cam_shooting_mode_change(void *data);
+gboolean cam_recording_mode_change(void *data, int rec_mode);
+
+void cam_app_set_progress_value(Evas_Object *pb, double value,
+                               const char *message);
+
+gboolean cam_app_black_screen_show(void *data, int mode);
+gboolean cam_app_black_screen_hide(void *data);
+
+gboolean cam_app_set_vconf_state(int vconf_state);
+gboolean cam_app_get_vconf_state(int *vconf_state);
+
+void cam_app_reset_settings(void *data);
+gboolean cam_toolbar_menu_config_update(void *data);
+
+gboolean cam_app_set_resolution(void *data, int width, int height);
+gboolean cam_app_get_resolution(int *width, int *height);
+gboolean cam_app_reset_resolution(void *data, int width, int height);
+int cam_app_get_aenc_bitrate(void *data);
+int cam_app_get_venc_bitrate(void *data, int quality);
+gboolean cam_app_set_video_quality(void *data, int quality);
+gboolean cam_app_set_recording_mode(void *data, int mode);
+gboolean cam_app_set_size_limit(int max_val, int size_limit_type);
+gboolean cam_app_init_attribute(void *data, CamMode mode);
+
+
+void cam_app_toggle_indicator(void *data, gboolean hide);
+void cam_app_toggle_toolbar(void *data, gboolean hide);
+void cam_app_get_preview_offset_coordinate(void *data);
+void cam_app_draw_af_box(void *data);
+
+void cam_app_set_blocking_popup();
+void cam_app_free_blocking_popup();
+void cam_app_snapshot_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+void cam_app_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+void cam_app_zoom_warring_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+
+Evas_Object *cam_app_create_win(const char *name);
+
+Evas_Object *cam_app_load_edj(Evas_Object *parent, const char *file,
+                             const char *group);
+
+void cam_app_update_ts(Evas_Object *eo, struct text_part *tp);
+
+void cam_app_update_thumbnail();
+
+void cam_set_orient_value(void *data);
+
+
+gboolean cam_app_parse_args(CamExeArgs *args, service_h service);
+
+#ifdef EFL_TEMP_CODE
+void cam_win_transparent_set(void *data);
+#endif
+
+void cam_app_zoom_warring_popup(void *data, const char *msg,
+                         void (*func) (void *data, Evas_Object *obj, void *event_info));
+void cam_app_notice_popup(void *data, const char *msg,
+                          void (*func) (void *data,
+                          Evas_Object *obj,
+                          void *event_info)
+                          );
+void cam_app_snapshot_popup(void *data, const char *msg,
+                         void (*func) (void *data, Evas_Object *obj, void *event_info));
+void cam_app_timeout_notice_response_cb(void *data,
+                                       Evas_Object *obj,
+                                       void *event_info);
+void cam_app_lowbattery_close_flash_cb(void *data, Evas_Object *obj,
+                                       void *event_info);
+gboolean cam_app_run_image_viewer_ug(void *data, char *file_path);
+gboolean cam_image_capture_start(void *data);
+/* update thumbnail to quickview after first launching or return from image viewer */
+void cam_app_update_quickview_icon(void *data);
+/* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+void cam_utils_remove_idler_all(void *data);
+gdouble _get_current_time(void);
+void cam_remove_tmp_file();
+Eina_Bool cam_continuous_af_start(void *data);
+
+Eina_Bool cam_elm_cache_flush();
+void cam_app_mdm_syspopup(void *data);
+
+Eina_Bool cam_app_focus_guide_create(void *data);
+Eina_Bool cam_app_focus_guide_update(void *data);
+
+Eina_Bool cam_screen_rotate(void *data);
+void cam_app_screen_rotate(void *data);
+
+void cam_app_cancel_timer(void *data);
+
+gboolean cam_condition_check_to_start_camera(void *data);
+
+#endif
diff --git a/include/cam_capacity_type.h b/include/cam_capacity_type.h
new file mode 100755 (executable)
index 0000000..9538f1b
--- /dev/null
@@ -0,0 +1,66 @@
+/*\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
+\r
+\r
+\r
+#ifndef _CAM_CAPACITY_TYPE_H_\r
+#define _CAM_CAPACITY_TYPE_H_\r
+\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif // #ifdef __cplusplus\r
+\r
+// EFFECT\r
+#define CAM_CP_EFFECT_NONE                                             0x00000001\r
+#define CAM_CP_EFFECT_BW                                               0x00000002\r
+#define CAM_CP_EFFECT_SEPIA                                            0x00000004\r
+#define CAM_CP_EFFECT_SHARPEN                                  0x00000008\r
+#define CAM_CP_EFFECT_NEGATIVE                                 0x00000010\r
+#define CAM_CP_EFFECT_RED                                              0x00000020\r
+#define CAM_CP_EFFECT_PINK                                             0x00000040\r
+#define CAM_CP_EFFECT_YELLOW                                   0x00000080\r
+#define CAM_CP_EFFECT_GREEN                                            0x00000100\r
+#define CAM_CP_EFFECT_PURPLE                                   0x00000200\r
+#define CAM_CP_EFFECT_INVERT                                   0x00000400\r
+#define CAM_CP_EFFECT_GRAY                                             0x00000800\r
+#define CAM_CP_EFFECT_AQUA                                             0x00001000\r
+#define CAM_CP_EFFECT_EMBOSS                                   0x00002000\r
+#define CAM_CP_EFFECT_OUTLINE                                  0x00004000\r
+#define CAM_CP_EFFECT_ANTIQUE                                  0x00008000\r
+#define CAM_CP_EFFECT_MONO                                             0x00010000\r
+\r
+// FUNCTION\r
+#define CAM_CP_FUNC_EDIR_SHORTCUT      0x00000001\r
+#define CAM_CP_FUNC_TIMER                      0x00000002\r
+#define CAM_CP_FUNC_EFFECT_MODE                0x00000004\r
+#define CAM_CP_FUNC_GUIDE_LINE         0x00000008\r
+#define        CAM_CP_FUNC_RESET                       0x00000010\r
+#define CAM_CP_FUNC_ZOOM                       0x00000020\r
+#define CAM_CP_FUNC_COUNT                      6\r
+\r
+// LCD\r
+#define CAM_CP_LCD_NORMAL                              0x00000001\r
+#define CAM_CP_LCD_WIDE                                        0x00000002\r
+\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif /* __cplusplus */\r
+\r
+#endif // _CAM_CAPACITY_TYPE_H_\r
+\r
+\r
diff --git a/include/cam_config.h b/include/cam_config.h
new file mode 100644 (file)
index 0000000..0590b56
--- /dev/null
@@ -0,0 +1,84 @@
+/*
+ * 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 _CAM_CONFIG_H_
+#define _CAM_CONFIG_H_
+
+#include <glib.h>
+/*
+#include "cam_property.h"
+*/
+#define CONFIG_PATH                                                    "/opt/apps/org.tizen.camera-app/data/.camera.ini"
+
+#define EXTERNAL_MODE_SAVE_PATH                        "/tmp"
+
+typedef enum {
+       CAM_CONFIG_TYPE_COMMON = 0,
+       CAM_CONFIG_TYPE_PREVIEW,
+       CAM_CONFIG_MAX,
+} CamConfigType;
+
+gboolean
+cam_config_set_group_name(CamConfigType config_type,
+                         const gchar *set_group_name);
+
+gboolean cam_config_init(GError **error);
+
+void cam_config_finalize(void);
+
+void cam_config_set_group(const gchar *group_name);
+
+const gchar *cam_config_get_group(void);
+
+void cam_config_save(void);
+
+void cam_config_set_control(gboolean enable);
+
+void cam_config_set_control(gboolean enable);
+
+void cam_config_set_int(const gchar *key, int nval);
+
+void cam_config_set_string(const gchar *key, const gchar *strval);
+
+void cam_config_set_boolean(const gchar *key, gboolean bval);
+
+int cam_config_get_int(const gchar *key, int default_value);
+
+gchar *cam_config_get_string(const gchar *key, const gchar *default_value);
+
+gboolean cam_config_get_boolean(const gchar *key, gboolean default_value);
+
+void cam_config_set_int_by_type(CamConfigType config_type, const gchar *key,
+                               int nval);
+
+void cam_config_set_string_by_type(CamConfigType config_type, const gchar *key,
+                                  const gchar *strval);
+
+void cam_config_set_boolean_by_type(CamConfigType config_type,
+                                   const gchar *key, gboolean bval);
+
+int cam_config_get_int_by_type(CamConfigType config_type, const gchar *key,
+                              int default_value);
+
+gchar *cam_config_get_string_by_type(CamConfigType config_type,
+                                    const gchar *key,
+                                    const gchar *default_value);
+
+gboolean cam_config_get_boolean_by_type(CamConfigType config_type,
+                                       const gchar *key,
+                                       gboolean default_value);
+
+#endif                         /* _CAM_CONFIG_H_ */
diff --git a/include/cam_debug.h b/include/cam_debug.h
new file mode 100644 (file)
index 0000000..731ed1e
--- /dev/null
@@ -0,0 +1,296 @@
+/*
+ * 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 _CAM_DEBUG_H_
+#define _CAM_DEBUG_H_
+
+#include <glib.h>
+#include <glib-object.h>
+#include <stdlib.h>
+
+G_BEGIN_DECLS
+/*
+#define LOG_TO_FILE
+#define  ENABLE_TIME_MEASURE
+#define TRACE_OBJECT
+#define ENABLE_TIME_STAMP
+*/
+#define DEBUG_MESSAGE_ON
+#define USE_DLOG_MESSAGE       /* for dlog */
+#define  TRACE_FENTER_LEAVE
+#define ENABLE_CHECK_MEMORY_OCCUPIED_SIZE
+/* Domain */
+#define LOG_UI "UI"            /* about UI, EFL, */
+#define LOG_MM "MM"            /* about MSL, */
+#define LOG_FILE "FILE"                /* about file */
+#define LOG_SND "SOUND"
+#define LOG_SYS "SYSTEM"
+#define LOG_FWK "FRAMEWROK"
+#define LOG_CONFIG "CONFIG"
+#define LOG_CAM        "CAMERA"        /* #define LOG_CAMERA    0x00000001 */
+#ifdef DEBUG_MESSAGE_ON
+#define GET_FILE_NAME(p, f)    \
+               do { \
+                       p = strrchr(f, '/');    \
+                       if (p)\
+                               p++;\
+                       else \
+                               p = f;\
+               } while (0)
+/*
+#ifdef ENABLE_CHECK_MEMORY_STATUS
+#define CHECK_MEMORY_STATS(s) fprintf(stderr, "[%s]: %s\n", s , __FUNCTION__); \
+                                                             malloc_stats(); \
+                                                             fprintf(stderr, "------------------\n")
+#else
+#define CHECK_MEMORY_STATS(s)                  G_STMT_START{ (void)0; }G_STMT_END
+#endif
+*/
+#ifdef ENABLE_CHECK_MEMORY_OCCUPIED_SIZE
+#include <malloc.h>
+struct mallinfo g_mem_info;
+#endif
+
+#ifdef USE_DLOG_MESSAGE
+
+#include <dlog.h>
+#ifdef LOG_TAG
+#undef LOG_TAG
+#endif
+
+#define LOG_TAG "cam-app"
+
+#define DEBUG_TRACE(fmt, arg...) do { if (TRUE) { \
+                       LOGD("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg);     \
+               } } while (0)
+
+#define debug_msg(domain, fmt, arg...)           LOGD("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+#define cam_debug(domain, fmt, arg...)          LOGD("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+#define cam_info(domain, fmt, arg...)            LOGI("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+#define cam_message(domain, fmt, arg...)        LOGI("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+#define cam_warning(domain, fmt, arg...)        LOGW("[%s : %s : %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+#define cam_critical(domain, fmt, arg...)        LOGE("[%s : %s: %d] "fmt"\n", __FILE__, __FUNCTION__, __LINE__, ##arg)
+
+#ifdef ENABLE_CHECK_MEMORY_OCCUPIED_SIZE
+#define CHECK_MEMORY_STATS(s) g_mem_info = mallinfo(); \
+                                                               LOGD("\n\n[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.hblkhd + (g_mem_info).uordblks)
+#endif
+/*
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "\n\n[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.arena); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.ordblks); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.hblks); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.hblkhd); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.uordblks); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.fordblks); \
+                                                               dlog(MID_CAMERA, DLOG_VERBOSE, "[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.keepcost); \
+*/
+
+#else                          /*  #ifdef USE_DLOG_MESSAGE */
+
+void
+cam_log_func(const gchar *_domain, GLogLevelFlags log_level,
+            const char *file_name, const char *func, int line_number,
+            const char *format, ...);
+
+#define debug_msg(category, fmt, arg...)               cam_log_func(category, G_LOG_LEVEL_DEBUG, __FILE__, __func__, __LINE__, fmt, ##arg)
+#define cam_debug(category, fmt, arg...)               cam_log_func(category, G_LOG_LEVEL_DEBUG, __FILE__, __func__, __LINE__, fmt,  ##arg)
+#define cam_info(category, fmt, arg...)                cam_log_func(category, G_LOG_LEVEL_INFO, __FILE__, __func__, __LINE__, fmt, ##arg)
+#define cam_message(category, fmt, arg...)        cam_log_func(category, G_LOG_LEVEL_MESSAGE, __FILE__,  __func__, __LINE__, fmt, ##arg)
+#define cam_warning(category, fmt, arg...)     cam_log_func(category, G_LOG_LEVEL_WARNING, __FILE__,  __func__, __LINE__, fmt, ##arg)
+#define cam_critical(category, fmt, arg...)    cam_log_func(category, G_LOG_LEVEL_CRITICAL, __FILE__, __func__, __LINE__, fmt, ##arg)
+
+#ifdef ENABLE_CHECK_MEMORY_OCCUPIED_SIZE
+#define CHECK_MEMORY_STATS(s) g_mem_info = mallinfo(); \
+                                                               cam_debug(LOG_SYS, "\n\n[[[[[[[[[[ %s : mem size is %d ]]]]]]]]]]\n", s, g_mem_info.hblkhd + (g_mem_info).uordblks)
+#endif
+
+#endif                         /* DEBUG MESSAGE ON */
+
+#else
+#define debug_msg(domain, fmt, arg...)         G_STMT_START{ (void)0; } G_STMT_END
+#define cam_debug(domain, fmt, arg...)         G_STMT_START{ (void)0; } G_STMT_END
+#define cam_info(domain, fmt, arg...)          G_STMT_START{ (void)0; } G_STMT_END
+#define cam_message(domain, fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#define cam_warning(domain, fmt, arg...)       G_STMT_START{ (void)0; } G_STMT_END
+#define cam_critical(fmt, arg...)                      G_STMT_START{ (void)0; } G_STMT_END
+#ifdef ENABLE_CHECK_MEMORY_OCCUPIED_SIZE
+#define CHECK_MEMORY_STATS(s)                  G_STMT_START{ (void)0; } G_STMT_END
+#endif
+#endif                         /* #ifdef DEBUG_MESSAGE_ON */
+#define warn_msg cam_warning
+#define critical_msg cam_critical
+/* Trace function enter/leave
+ */
+#ifdef TRACE_FENTER_LEAVE
+#define debug_fenter(domain)                           cam_debug(domain, " started");
+#define debug_fleave(domain)                           cam_debug(domain, " leaved");
+#else
+#define debug_fenter(domain)                           G_STMT_START{ (void)0; } G_STMT_END
+#define debug_fleave(domain)                           G_STMT_START{ (void)0; } G_STMT_END
+#endif
+#define cam_ret_if(expr) do { \
+       if (expr) { \
+               return; \
+       } \
+} while (0)
+#define cam_retv_if(expr, val) do { \
+       if (expr) { \
+               return (val); \
+       } \
+} while (0)
+#define cam_retm_if(expr, fmt, arg...) do { \
+       if (expr) { \
+               cam_warning(LOG_UI, fmt, ##arg); \
+               return; \
+       } \
+} while (0)
+#define cam_retvm_if(expr, val, fmt, arg...) do { \
+       if (expr) { \
+               cam_warning(LOG_UI, fmt, ##arg); \
+               return (val); \
+       } \
+} while (0)
+/* Trace module elapsed time
+ */
+#ifdef ENABLE_TIME_MEASURE
+    typedef enum {
+       NORMAL_MEASURE_TYPE = 0,
+       APP_LAUNCHING_TYPE,
+       CAPTURE_MEASURE_TYPE,
+       REGISTER_MEASURE_TYPE,
+       REC_START_MEASURE_TYPE,
+       REC_COMMIT_MEASURE_TYPE,
+       REVIEW_MEASURE_TYPE,
+       AUTO_FOCUSE_TIME,
+       MEASURE_TYPE_MAX,
+} cam_time_meature_type;
+
+void debug_measure_start(cam_time_meature_type meature_type,
+                        const gchar *format, ...);
+void debug_measure_stop(cam_time_meature_type meature_type,
+                       const gchar *format, ...);
+void debug_measure_init();
+void debug_measure_close();
+
+void debug_time_measure_start(const gchar *format, ...);
+void debug_time_measure_stop(void);
+void debug_time_measure_log(const gchar *format, ...);
+
+#define debug_time_measure_fenter(fmt, arg...) debug_time_measure_log("%s(). LINE :%d ", __FUNCTION__, __LINE__, ##arg)
+#define debug_time_measure_fleave(fmt, arg...) debug_time_measure_log("%s(). LINE :%d", __FUNCTION__, __LINE__, ##arg)
+
+#else
+#define debug_time_measure_start(fmt, arg...)  G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_measure_stop()                              G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_measure_log(fmt, arg...)            G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_measure_fenter(fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_measure_fleave(fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#define debug_measure_start(fmt, arg...)       G_STMT_START{ (void)0; } G_STMT_END
+#define debug_measure_stop(fmt, arg...)        G_STMT_START{ (void)0; } G_STMT_END
+#define debug_measure_init()           G_STMT_START{ (void)0; } G_STMT_END
+#define debug_measure_close()  G_STMT_START{ (void)0; } G_STMT_END
+#endif                         /*ENABLE_TIME_MEASURE */
+#ifdef ENABLE_TIME_STAMP
+#include <sys/time.h>
+#include <linux/unistd.h>
+    enum {
+       CAM_MSG_COLOR_DEFAULT = 0,
+       CAM_MSG_COLOR_BLACK = 30,
+       CAM_MSG_COLOR_RED = 31,
+       CAM_MSG_COLOR_GREEN = 32,
+       CAM_MSG_COLOR_YELLOW = 33,
+       CAM_MSG_COLOR_BLUE = 34,
+       CAM_MSG_COLOR_MAGENTA = 35,
+       CAM_MSG_COLOR_CYAN = 36,
+       CAM_MSG_COLOR_WHITE = 37,
+};
+
+static long s_time_sec = 0L;
+static long s_time_usec = 0L;
+static struct timeval s_cur_time;
+
+static pid_t gettid(void)
+{
+       return syscall(__NR_gettid);
+}
+
+#define debug_time_reset(fmt, arg...)  \
+       do {    \
+               struct timeval time;    \
+               gettimeofday(&time, NULL);      \
+               s_cur_time = time; \
+               s_time_sec = time.tv_sec;       \
+               s_time_usec = time.tv_usec;     \
+               debug_color(CAM_MSG_COLOR_RED, "[TIMER],<%03ld.%03ld>, \t000.000 sec (reset timer)\t000.000\t[%-20.20s:%4d]" fmt "\n", s_time_sec, s_time_usec, __FUNCTION__, __LINE__, ##arg); \
+       } while (0)
+
+#define debug_time_stamp(fmt, arg...)  \
+       do {    \
+               struct timeval time;    \
+               long sec, usec; \
+               long a_sec, a_usec; \
+               gettimeofday(&time, NULL);      \
+               a_sec = time.tv_sec - s_cur_time.tv_sec; \
+               if (s_cur_time.tv_usec > time.tv_usec) {        \
+                       a_usec = 1000000L - s_cur_time.tv_usec + time.tv_usec;  \
+                       a_sec--;        \
+               } else {        \
+                       a_usec = time.tv_usec - s_cur_time.tv_usec;     \
+               }       \
+               s_cur_time = time; \
+               sec = time.tv_sec - s_time_sec; \
+               if (s_time_usec > time.tv_usec) {       \
+                       usec = 1000000L - s_time_usec + time.tv_usec;   \
+                       sec--;  \
+               } else {        \
+                       usec = time.tv_usec - s_time_usec;      \
+               }       \
+               debug_color(CAM_MSG_COLOR_RED, "[TIMER],<%03ld.%03ld>, %03ld.%03ld sec (time stamp) %03ld.%03ld\t[%-20.20s:%4d]" fmt "\n", time.tv_sec, time.tv_usec, sec, usec / 1000, a_sec, a_usec/1000, __FUNCTION__, __LINE__, ##arg); \
+       } while (0)
+
+#define debug_time_stamp_simple(fmt, arg...)   \
+       do {    \
+               struct timeval time;    \
+               gettimeofday(&time, NULL);      \
+               debug_color(CAM_MSG_COLOR_RED, "[TIMER],<%03ld.%03ld> (reset timer), [%-20.20s:%4d], TID=%d" fmt "\n", time.tv_sec, time.tv_usec, __FUNCTION__, __LINE__, gettid(), ##arg);     \
+       } while (0)
+
+#define debug_color(color, fmt, arg...) \
+       do {    \
+               fprintf(stderr, "\033[%dm", color);     \
+               fprintf(stderr, fmt, ##arg);    \
+               fprintf(stderr, "\033[%dm", CAM_MSG_COLOR_DEFAULT);     \
+               \
+       } while (0)
+#else
+/*
+ *     NO PROFILING MESSAGE
+ */
+#define debug_time_reset(fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_stamp(fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#define debug_time_stamp_simple(fmt, arg...) G_STMT_START{ (void)0; } G_STMT_END
+#endif
+/* Trace GObject deletion
+ */
+#ifdef TRACE_OBJECT
+void cam_debug_trace_object(gpointer obj, const gchar *format, ...);
+#else
+#define cam_debug_trace_object(obj, fmt, arg...)       G_STMT_START{ (void)0; } G_STMT_END
+#endif
+#define cam_debug_trace_alloc cam_debug_trace_object
+    G_END_DECLS
+#endif /*_CAM_DEBUG_H_*/
diff --git a/include/cam_device_capacity.h b/include/cam_device_capacity.h
new file mode 100755 (executable)
index 0000000..1158a70
--- /dev/null
@@ -0,0 +1,39 @@
+/*\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
+\r
+\r
+\r
+#ifndef _CAM_DEVICE_CAPACITY_H_\r
+#define _CAM_DEVICE_CAPACITY_H_\r
+\r
+#ifdef _cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+void                           ResetCaps();\r
+\r
+void                           GetCamDevFuncCaps(unsigned int *eType, void *user_data);\r
+bool                           GetCamDevEffectCaps(unsigned int *uCapacity, void *user_data);\r
+bool                           GetCamDevZoomCaps(int *min, int *max);\r
+\r
+\r
+#ifdef _cplusplus\r
+}\r
+#endif\r
+\r
+#endif\r
+\r
+\r
diff --git a/include/cam_devman.h b/include/cam_devman.h
new file mode 100644 (file)
index 0000000..2438189
--- /dev/null
@@ -0,0 +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.
+ */
+
+
+#ifndef CAM_DEVMAN_H_
+#define CAM_DEVMAN_H_
+
+#include <glib.h>
+
+gboolean cam_devman_init(void);
+gboolean cam_devman_deinit(void);
+gboolean cam_devman_haptic_play(int milisec);
+
+#endif
diff --git a/include/cam_error.h b/include/cam_error.h
new file mode 100755 (executable)
index 0000000..b048be9
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ * 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 <glib.h>
+#include <errno.h>
+
+#ifndef CAMERROR_H_
+#define CAMERROR_H_
+
+#define CAM_ERROR_CLASS_COMMON                                                 0x90000000
+#define CAM_ERROR_CLASS_SYSTEM                                                 0x90000100
+#define CAM_ERROR_CLASS_FILE                                                           0x90000200
+#define CAM_ERROR_CLASS_MMCAMCORDER                                            0x90000400
+#define CAM_ERROR_CLASS_MMPLAYER                                                       0x90000800
+#define CAM_ERROR_CLASS_MISC                                                           0x90001600
+
+enum {
+       CAM_ERROR_NONE = 0,
+
+       CAM_ERROR_BATTERY_NOT_ENOUGH = CAM_ERROR_CLASS_SYSTEM,
+       CAM_ERROR_MULTIPLE_INSTANCE,
+       CAM_ERROR_ENTER_REJECTED,
+       CAM_ERROR_DEVICE,
+       CAM_ERROR_STORAGE_UNAVAILABLE,
+       CAM_ERROR_STORAGE_INSUFFICIENT,
+
+       CAM_ERROR_FILE = CAM_ERROR_CLASS_FILE,
+       CAM_ERROR_FILE_MANAGER,
+       CAM_ERROR_FILE_MOVE_FAILED,
+       CAM_ERROR_FILE_REGISTER_FAILED,
+       CAM_ERROR_FILE_NOT_EXISTS,
+       CAM_ERROR_FILE_RENAME_FAILED,
+       CAM_ERROR_FILE_DELETE_FAILED,
+
+       CAM_ERROR_MM_CAMCORDER = CAM_ERROR_CLASS_MMCAMCORDER,
+       CAM_ERROR_AUTO_FOCUSING,
+       CAM_ERROR_MISC = CAM_ERROR_CLASS_MISC,
+       CAM_ERROR_QUERY_DB,
+       CAM_ERROR_NCR_LIB,
+       CAM_ERROR_NORMAL,
+       CAM_ERROR_DEVICE_OFF,
+       CAM_ERROR_MEMORY,
+       CAM_ERROR_UNKNOWN,
+};
+
+#define CAMERA_ERROR_QUARK                                             g_quark_from_static_string("camera-error-quark")
+
+#define cam_error_new(code, fmt, arg...)                       g_error_new(CAMERA_ERROR_QUARK, code, fmt, ##arg)
+#define cam_error_new_literal(code, msg)                       g_error_new_literal(CAMERA_ERROR_QUARK, code, msg)
+#define cam_set_error(error, code, fmt, arg...)        g_set_error(error, CAMERA_ERROR_QUARK, code, fmt, ##arg)
+
+#endif                         /* CAMERROR_H_ */
diff --git a/include/cam_file.h b/include/cam_file.h
new file mode 100644 (file)
index 0000000..e8b4d6f
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ * 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 CAM_FILE_H_
+#define CAM_FILE_H_
+
+#include <glib.h>
+#include <glib/gstdio.h>
+#include "cam.h"
+#define INTERNAL_FILE_PATH             "/opt/media/Camera"
+#define EXTERNAL_FILE_PATH             "/opt/storage/sdcard/Camera"
+
+typedef enum {
+       MEDIA_TYPE_JPEG,
+       MEDIA_TYPE_MP4,
+       MEDIA_TYPE_3GP,
+       MEDIA_TYPE_LAST
+} media_type_t;
+
+gboolean cam_file_init(GError **error);
+void cam_file_finalize();
+gboolean cam_file_get_size(const char *filename, guint64 *size);
+gboolean cam_file_check_exists(gchar *filename);
+gboolean cam_file_get_size(const char *filename, guint64 *size);
+
+gboolean cam_file_register(const char *filename, GError **error);
+gboolean cam_file_register_to_DCF(const char *filename, GError **error);
+gboolean cam_file_delete(const gchar *filename, GError **error);
+gboolean cam_file_rename(const gchar *filename, const gchar *new_name,
+                        GError **error);
+const gchar *cam_file_get_dcim_path(void);
+const gchar *cam_file_get_internal_image_path(void);
+const gchar *cam_file_get_internal_video_path(void);
+const gchar *cam_file_get_external_image_path(void);
+const gchar *cam_file_get_external_video_path(void);
+
+gchar *cam_file_get_next_filename_for_multishot(const gchar *storage_root,
+                                               const gchar *first_file_name,
+                                               const gchar *suffix);
+gchar *cam_file_get_next_filename(const gchar *storage_root,
+                                 const gchar *prefix_string,
+                                 const gchar *suffix);
+gchar *cam_file_get_next_dcim_filename(const gchar *storage_root, media_type_t media_type);
+/**
+ * @brief              get latest file path in @storage_root folder
+ * @param[in]  data    camera appdata structure
+ * @param[in]  storage_root    folder path (full path)
+ * @return                     Operation result
+ * @retval     NOT NULL        lateset file path in @storage_root
+ * @retval         NULL        Error or no file
+ */
+gchar *cam_file_get_last_file_path (void *data, const gchar *storage_root);
+/**
+ * @brief              get latest file path folder id in @storage_root folder,folder id is for media-content api
+ * @param[in]  storage_root    folder path (full path)
+ * @return                     Operation result
+ * @retval     NOT NULL        folder id for @storage_root
+ * @retval         NULL        Error
+ */
+char *cam_file_get_cam_storage_folder_id(const gchar *storage_root);
+/**
+ * @brief              get thumbnail full path of @file_path,folder id is for media-content api
+ * @param[in]  file_path       file path (full path)
+ * @param[out] file_path       thumbnail_path of @file_path (full path)
+ * @return                     Operation result
+ * @retval     TRUE    succeed
+ * @retval         FALSE       Error
+ */
+gboolean cam_file_get_cam_file_thumbnail_path(const gchar *file_path, gchar **thumbnail_path);
+
+gboolean cam_check_dir();
+
+
+#endif
diff --git a/include/cam_image_name.h b/include/cam_image_name.h
new file mode 100755 (executable)
index 0000000..e50ee7c
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ * 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 __DEF_cam_image_name_H_
+#define __DEF_cam_image_name_H_
+#include "cam_app.h"
+
+
+/* Timer */
+#define TIMER_OFF_NORMAL_ICON                                          CAM_IMAGE_PATH"short cut/camera_mode_timer_off_nor.png"
+#define TIMER_OFF_RESS_ICON                                                    CAM_IMAGE_PATH"short cut/camera_mode_timer_off_press.png"
+#define TIMER_OFF_DIM_ICON                                                     CAM_IMAGE_PATH"short cut/camera_mode_timer_off_dim.png"
+#define TIMER_2SEC_NORMAL_ICON                                         CAM_IMAGE_PATH"short cut/camera_mode_timer_2_nor.png"
+#define TIMER_2SEC_RESS_ICON                                           CAM_IMAGE_PATH"short cut/camera_mode_timer_2_press.png"
+#define TIMER_2SEC_DIM_ICON                                                    CAM_IMAGE_PATH"short cut/camera_mode_timer_2_dim.png"
+#define TIMER_5SEC_NORMAL_ICON                                         CAM_IMAGE_PATH"short cut/camera_mode_timer_5_nor.png"
+#define TIMER_5SEC_RESS_ICON                                           CAM_IMAGE_PATH"short cut/camera_mode_timer_5_press.png"
+#define TIMER_5SEC_DIM_ICON                                                    CAM_IMAGE_PATH"short cut/camera_mode_timer_5_dim.png"
+#define TIMER_10SEC_NORMAL_ICON                                                CAM_IMAGE_PATH"short cut/camera_mode_timer_10_nor.png"
+#define TIMER_10SEC_RESS_ICON                                          CAM_IMAGE_PATH"short cut/camera_mode_timer_10_press.png"
+#define TIMER_10SEC_DIM_ICON                                           CAM_IMAGE_PATH"short cut/camera_mode_timer_10_dim.png"
+
+/* Effect */
+#define EFFECTS_ICON                                                           CAM_IMAGE_PATH"short cut/camera_mode_effect_%s_%s.png"
+
+/* Guide lines */
+#define GUIDELINE_ON_NORMAL_ICON                                       CAM_IMAGE_PATH"short cut/camera_mode_guidelines_on_nor.png"
+#define GUIDELINE_ON_PRESS_ICON                                                CAM_IMAGE_PATH"short cut/camera_mode_guidelines_on_press.png"
+#define GUIDELINE_ON_DIM_ICON                                          CAM_IMAGE_PATH"short cut/camera_mode_guidelines_on_dim.png"
+#define GUIDELINE_OFF_NORMAL_ICON                                      CAM_IMAGE_PATH"short cut/camera_mode_guidelines_off_nor.png"
+#define GUIDELINE_OFF_PRESS_ICON                                       CAM_IMAGE_PATH"short cut/camera_mode_guidelines_off_press.png"
+#define GUIDELINE_OFF_DIM_ICON                                         CAM_IMAGE_PATH"short cut/camera_mode_guidelines_off_dim.png"
+
+/* Reset setting */
+#define RESET_SETTING_NORMAL_ICON                                      CAM_IMAGE_PATH"short cut/camera_mode_reset_nor.png"
+#define RESET_SETTING_PRESS_ICON                                       CAM_IMAGE_PATH"short cut/camera_mode_reset_press.png"
+
+/* Setting */
+#define SETTING_NORMAL_ICON                                                    CAM_IMAGE_PATH"short cut/camera_mode_setting_nor.png"
+#define SETTING_PRESS_ICON                                                     CAM_IMAGE_PATH"short cut/camera_mode_setting_press.png"
+
+/* Indicator */
+#define INDICATOR_BATTERY_LEVEL_00_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_00.png"
+#define INDICATOR_BATTERY_LEVEL_01_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_01.png"
+#define INDICATOR_BATTERY_LEVEL_02_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_02.png"
+#define INDICATOR_BATTERY_LEVEL_03_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_03.png"
+#define INDICATOR_BATTERY_LEVEL_04_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_04.png"
+#define INDICATOR_BATTERY_LEVEL_05_ICON                                CAM_IMAGE_PATH"indicator/camera_indicator_battery_05.png"
+#define INDICATOR_BATTERY_FULL_ICON                                    CAM_IMAGE_PATH"indicator/camera_indicator_battery_full.png"
+#define INDICATOR_BATTERY_CHARGE_ICON                          CAM_IMAGE_PATH"indicator/camera_indicator_battery_charge.png"
+
+/* Shutter icon */
+#define CAMERA_SHUTTER_ICON                                                    CAM_IMAGE_PATH"camera_mode_shutter_icon.png"
+#define CAMCORDER_SHUTTER_ICON                                         CAM_IMAGE_PATH"camcorder_standby_shutter.png"
+
+/* Mode icon */
+#define MODE_CAMERA_ON_ICON                                                    CAM_IMAGE_PATH"tmp/11_camera_mode_camera_on.png"
+#define MODE_CAMERA_OFF_ICON                                           CAM_IMAGE_PATH"tmp/11_camera_mode_camera_off.png"
+#define MODE_CAMCORDER_ON_ICON                                         CAM_IMAGE_PATH"tmp/11_camera_mode_camcorder_on.png"
+#define MODE_CAMCORDER_OFF_ICON                                                CAM_IMAGE_PATH"tmp/11_camera_mode_camcorder_off.png"
+
+
+#endif
diff --git a/include/cam_long_press.h b/include/cam_long_press.h
new file mode 100644 (file)
index 0000000..e852c17
--- /dev/null
@@ -0,0 +1,42 @@
+/*\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
+\r
+\r
+\r
+\r
+#ifndef __CAM_LONG_PRESS_H_DEF__\r
+#define __CAM_LONG_PRESS_H_DEF__\r
+\r
+typedef  int (*LONG_PRESS_START_CALLBACK)(void*, int, int);\r
+typedef  int (*LONG_PRESS_CANCEL_CALLBACK)(void*, int, int);\r
+int cam_long_press_register(int index, double time,\r
+               LONG_PRESS_START_CALLBACK start_func,\r
+               LONG_PRESS_CANCEL_CALLBACK end_func,\r
+               void *data);\r
+int  cam_long_press_unregister(int index);\r
+void cam_long_press_trigger(int index, Evas_Coord x, Evas_Coord y);\r
+void cam_long_press_validate(int index, Evas_Coord x, Evas_Coord y);\r
+void cam_long_press_cancel(int index);\r
+bool cam_get_long_press_running_state(int index);\r
+\r
+enum {\r
+       LONG_PRESS_ID_EDIT = 0,\r
+       LONG_PRESS_ID_SCROLL,\r
+       LONG_PRESS_ID_MAX_NUMS,\r
+};\r
+#endif /*__CAM_LONG_PRESS_H_DEF__*/\r
+\r
+\r
diff --git a/include/cam_menu_composer.h b/include/cam_menu_composer.h
new file mode 100755 (executable)
index 0000000..8869c22
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * 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 _CAM_MENU_COMPOSER_H_
+#define _CAM_MENU_COMPOSER_H_
+
+#include "cam_property.h"
+#include "cam.h"
+
+
+void cam_compose_setting_menu(cam_menu_composer* composer);
+void cam_compose_menu_effect(cam_menu_composer* composer);
+void cam_compose_free(cam_menu_composer* composer);
+gboolean cam_is_enabled_menu(void *data, const CAM_MENU_ITEM item);
+
+#endif
diff --git a/include/cam_mm.h b/include/cam_mm.h
new file mode 100755 (executable)
index 0000000..2543dc3
--- /dev/null
@@ -0,0 +1,170 @@
+/*
+ * 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 CAM_MM_H_
+#define CAM_MM_H_
+
+#include <glib.h>
+#include <sound_manager.h>
+#include <devman_managed.h>
+#include "cam.h"
+#include "cam_capacity_type.h"
+
+
+/*
+#include "cam_property.h"
+*/
+
+#define CAMERA_ERROR_MM_QUARK  g_quark_from_static_string("camera-error-mm")
+#define cam_set_mm_error(error, code, fmt, arg...) \
+       g_set_error(error, CAMERA_ERROR_MM_QUARK, code, fmt, ##arg)
+
+#define ERROR_CHECK
+
+#ifdef ERROR_CHECK
+#define CHECK_MM_ERROR(expr) \
+{\
+       int ret = 0; \
+       ret = expr; \
+       if (ret != CAMERA_ERROR_NONE) {\
+               printf("[%s:%d] error code : %x \n", __func__, __LINE__, ret); \
+               return FALSE; \
+       } \
+}
+#else
+#define CHECK_MM_ERROR(expr) (expr)
+#endif
+
+gboolean cam_mm_set_camera_interrupted_cb(camera_interrupted_cb callback, void *data);
+gboolean cam_mm_set_recorder_interrupted_cb(recorder_interrupted_cb callback, void *data);
+gboolean cam_mm_recorder_set_state_changed_cb(recorder_state_changed_cb callback, void* user_data);
+gboolean cam_mm_recorder_unset_state_changed_cb(void);
+
+gboolean cam_mm_recorder_set_recording_status_cb(recorder_recording_status_cb callback, void* user_data);
+
+gboolean cam_mm_recorder_unset_recording_status_cb(void);
+
+gboolean cam_mm_recorder_set_recording_limit_reached_cb(recorder_recording_limit_reached_cb callback, void* user_data);
+
+gboolean cam_mm_recorder_unset_recording_limit_reached_cb(void);
+
+gboolean cam_mm_set_error_cb(camera_error_cb error_cb, void *data);
+gboolean cam_mm_unset_error_cb(void);
+gboolean cam_mm_set_state_changed_cb(camera_state_changed_cb state_cb, void *data);
+gboolean cam_mm_unset_state_changed_cb(void);
+gboolean cam_mm_set_focus_changed_cb(camera_focus_changed_cb focus_cb, void *data);
+gboolean cam_mm_unset_focus_changed_cb(void);
+gboolean cam_mm_set_preview_cb(camera_preview_cb preview_cb, void *data);
+gboolean cam_mm_unset_preview_cb(void);
+
+int cam_mm_get_state(void);
+
+gboolean cam_mm_set_delay_setting(gboolean value);
+gboolean cam_mm_get_video_device(int *device);
+gboolean cam_mm_get_video_size(int *width, int *height);
+gboolean cam_mm_set_video_size(int width, int height);
+gboolean cam_mm_get_zoom(int *value);
+gboolean cam_mm_set_zoom(int value);
+gboolean cam_mm_set_fps(camera_attr_fps_e value);
+gboolean cam_mm_get_focus_mode(int *value);
+gboolean cam_mm_set_focus_mode(int value);
+gboolean cam_mm_get_zoom_valid_intrange(int *min, int *max);
+
+gboolean cam_mm_set_af_area(int x, int y, int w, int h);
+gboolean cam_mm_get_detect_mode(int *value);
+gboolean cam_mm_set_detect_mode(int value);
+gboolean cam_mm_get_image_enc_quality(int *value);
+gboolean cam_mm_set_image_enc_quality(int value);
+gboolean cam_mm_get_flash(int *value);
+gboolean cam_mm_set_flash(int value);
+gboolean cam_mm_get_effect(int *value);
+gboolean cam_mm_set_effect(int value);
+gboolean cam_mm_set_audio_recording(gboolean b_on);
+gboolean cam_mm_get_image_count(int *value);
+gboolean cam_mm_set_image_count(int value);
+gboolean cam_mm_get_image_size(int *width, int *height);
+gboolean cam_mm_set_image_size(int width, int height);
+gboolean cam_mm_set_video_encoder_bitrate(int bitrate);
+gboolean cam_mm_set_audio_encoder_bitrate(int bitrate);
+gboolean cam_mm_set_display_device(int display_device, void *xid);
+gboolean cam_mm_set_display_id(void *xid, int size);
+gboolean cam_mm_set_display_rotate(int rotate);
+gboolean cam_mm_set_camera_rotate(int camera_rotate);
+gboolean cam_mm_set_display_scale(int scale);
+gboolean cam_mm_get_front_cam_display_rotate_value(int *display_rotation, int *rotate);
+gboolean cam_mm_get_display_geometry_method(int *value);
+gboolean cam_mm_set_display_geometry_method(int value);
+gboolean cam_mm_set_display_visible(gboolean visible);
+gboolean cam_mm_set_filename(const gchar *filename);
+gboolean cam_mm_get_filename(char **filename, gint *size);
+gboolean cam_mm_get_max_size(int *value);
+gboolean cam_mm_get_max_time(int *value);
+gboolean cam_mm_set_max_size(int max_val);
+gboolean cam_mm_get_tag_enable(int *value);
+gboolean cam_mm_set_tag_enable(gboolean bvalue);
+gboolean cam_mm_set_tag_img_orient(int orient);
+gboolean cam_mm_set_file_format(int format);
+gboolean cam_mm_set_video_profile(void);
+gboolean cam_mm_set_codec(int audio_codec, int video_codec);
+gboolean cam_mm_set_audio_source(int sample_rate, int format, int channel);
+gboolean cam_mm_set_video_source_format(int format);
+gboolean cam_mm_set_shutter_sound(int value);
+gboolean cam_mm_get_shutter_sound(int *value);
+
+gboolean cam_mm_get_video_source_format(const char *attribute_name,
+                                       int *format);
+
+gboolean cam_mm_set_capture_format(int value);
+gboolean cam_mm_set_capture_interval(int value);
+gboolean cam_mm_reset_recording_motion_fps(void);
+gboolean cam_mm_get_recording_motion_fps(int *value);
+
+gint cam_mm_realize(void);
+gboolean cam_mm_preview_start(int mode);
+gboolean cam_mm_unrealize(void);
+gboolean cam_mm_preview_stop(int mode);
+gboolean cam_mm_is_created(void);
+gboolean cam_mm_create(int camera_type, int mode);
+gboolean cam_mm_destory(void);
+gboolean cam_mm_continuous_capture_start(int count, int interval, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb , void *user_data);
+gboolean cam_mm_capture_start(camera_capturing_cb capturing_cb , camera_capture_completed_cb completed_cb , void *user_data);
+gboolean cam_mm_set_capturing_cb(camera_capturing_cb capture_cb, void *data);
+gboolean cam_mm_unset_capturing_cb(void);
+
+gboolean cam_mm_set_capture_completed_cb(camera_capture_completed_cb capture_completed_cb, void *data);
+gboolean cam_mm_unset_capture_completed_cb(void);
+
+
+gboolean cam_mm_capture_stop(gboolean skip_preview, CamMode mode);
+gboolean cam_mm_rec_start();
+gboolean cam_mm_rec_stop(gboolean to_stop);
+gboolean cam_mm_rec_pause();
+gboolean cam_mm_rec_cancel();
+gboolean cam_mm_start_focusing(gint af_mode);
+gboolean cam_mm_stop_focusing();
+gboolean cam_mm_set_recording_motion(double rate);
+gboolean cam_mm_session_init(sound_session_type_e session_type);
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+gboolean cam_mm_get_screennail(MMCamcorderCaptureDataType **scrnl);
+#endif
+
+gboolean cam_mm_get_caps_range(unsigned int type, unsigned int *caps, void *user_data);
+gboolean cam_mm_get_caps_minmax(unsigned int type, int *min, int *max);
+const int cam_mm_get_caps_cb_cnt();
+
+#endif                         /*  CAM_MM_H_ */
diff --git a/include/cam_popup.h b/include/cam_popup.h
new file mode 100644 (file)
index 0000000..d342b05
--- /dev/null
@@ -0,0 +1,76 @@
+/*
+ * 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 CAM_POPUP_H_
+#define CAM_POPUP_H_
+
+#include <Elementary.h>
+#include <glib.h>
+
+/* define USE_ELM_POPUP */
+
+void cam_popup_remove(Evas_Object *popup);
+void cam_popup_remove_all(void);
+
+#ifdef USE_ELM_POPUP
+typedef void (*cam_popup_respons_cb) (void *user_data, Evas_Object *obj,
+                                     void *event_info);
+
+/* popup with one button,  ELM_POPUP_RESPONSE_OK is sent along with response signal. */
+void cam_popup_confirm_add(Evas_Object *window, const char *message,
+                          const char *btn_name, cam_popup_respons_cb callback,
+                          void *user_data);
+
+/* popup with two button, ELM_POPUP_RESPONSE_OK/ELM_POPUP_RESPONSE_CANCEL is sent along with response signal. */
+void cam_popup_question_add(Evas_Object *window, const char *message,
+                           const char *btn_n_1, const char *btn_n_2,
+                           cam_popup_respons_cb callback, void *user_data);
+
+#else
+
+/* popup with one button */
+void
+cam_popup_confirm_add(Evas_Object *window, const char *message,
+                     const char *btn_name,
+                     void (*btn_cb) (void *data, Evas_Object *obj,
+                                     void *event_info));
+
+/* popup with two button */
+void
+cam_popup_question_add(Evas_Object *window, const char *message,
+                      const char *lbtn_name,
+                      void (*left_btn_cb) (void *data, Evas_Object *obj,
+                                           void *event_info),
+                      const char *rbtn_name, void (*right_btn_cb) (void *data,
+                                                                   Evas_Object
+                                                                   *obj,
+                                                                   void
+                                                                   *event_info));
+
+Evas_Object *cam_popup_guide_screen_add(Evas_Object *window,
+                                       const char *message);
+
+#endif
+
+
+
+gboolean cam_progress_popup_create(void *data);
+gboolean cam_progress_popup_set_text(void *data, char *text);
+gboolean cam_progress_popup_set_bar_value(void *data, double value);
+gboolean cam_progress_popup_delete(void *data);
+
+#endif
diff --git a/include/cam_property.h b/include/cam_property.h
new file mode 100755 (executable)
index 0000000..28586c3
--- /dev/null
@@ -0,0 +1,598 @@
+/*
+ * 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 __DEF_CAM_PROPERTY_H_
+#define __DEF_CAM_PROPERTY_H_
+
+#include <glib.h>
+/*#include <mmf/mm_camcorder.h>*/
+#include <camera.h>
+#include <recorder.h>
+#include <Evas.h>
+#include <Eina.h>
+
+#define USE_CAM_STORAGE_SETTING
+#define CAPI_CAMERA_NEW
+
+//#define PREVIEW_PINCH_ENALBE
+#define GUIDE_LINE_ENALBE
+#define CAM_LCD_WVGA
+
+#define PI (4 * atan(1))
+#define NEW_GUI
+/* Macros
+ */
+#define HIWORD(x)                                                      ((x) >> 16)
+#define LOWORD(y)                                                      (((y) << 16) >> 16)
+#define MAKE_DWORD(x, y)                                               ((x) << 16 | (y))
+
+/* Resolution
+ */
+#define PREVIEW_W                                          (640)
+#define PREVIEW_WIDE_W                               (800)
+#define PREVIEW_H                                           (480)
+
+#define FRONT_CAM_W    (352)
+#define FRONT_CAM_H    (288)
+
+#define CAM_RESOLUTION(w, h)                                   MAKE_DWORD(w, h)
+#define CAM_RESOLUTION_W(r)                                    HIWORD(r)
+#define CAM_RESOLUTION_H(r)                                    LOWORD(r)
+
+
+#define CAM_RESOLUTION_3264x2448 /*8M*/                                        CAM_RESOLUTION(3264, 2448)
+#define CAM_RESOLUTION_3264x1960 /*6M_WIDE*/                   CAM_RESOLUTION(3264, 1960)
+#define CAM_RESOLUTION_3264x1836 /*6M_WIDE*/                   CAM_RESOLUTION(3264, 1836)
+#define CAM_RESOLUTION_2800x1920 /*5M_WIDE*/                   CAM_RESOLUTION(2800, 1920)
+#define CAM_RESOLUTION_2560x1920 /*5M*/                                        CAM_RESOLUTION(2560, 1920)
+#define CAM_RESOLUTION_2560x1536 /*4M_WIDE*/                   CAM_RESOLUTION(2560, 1536)
+#define CAM_RESOLUTION_2560x1440 /*3M_WIDE*/                   CAM_RESOLUTION(2560, 1440)
+#define CAM_RESOLUTION_2048x1536 /*3M*/                                        CAM_RESOLUTION(2048, 1536)
+#define CAM_RESOLUTION_2048x1152 /*2.4M*/                              CAM_RESOLUTION(2048, 1152)
+#define CAM_RESOLUTION_1920x1080 /*2M_WIDE*/                   CAM_RESOLUTION(1920, 1080)
+#define CAM_RESOLUTION_1600x1200 /*2M*/                                        CAM_RESOLUTION(1600, 1200)
+#define CAM_RESOLUTION_1280x720  /*0.9M*/                      CAM_RESOLUTION(1280, 720)
+#define CAM_RESOLUTION_1280x960  /*1M*/                                        CAM_RESOLUTION(1280, 960)
+
+
+#define CAM_RESOLUTION_FULLHD                          CAM_RESOLUTION(1920, 1080)
+#define CAM_RESOLUTION_HD                                      CAM_RESOLUTION(1280, 720)
+#define CAM_RESOLUTION_SVGA                            CAM_RESOLUTION(800, 600)
+#define CAM_RESOLUTION_WVGA                            CAM_RESOLUTION(800, 480)
+#define CAM_RESOLUTION_WVGA2                           CAM_RESOLUTION(720, 480)
+#define CAM_RESOLUTION_VGA                             CAM_RESOLUTION(640, 480)
+#define CAM_RESOLUTION_WQVGA                           CAM_RESOLUTION(400, 240)
+#define CAM_RESOLUTION_QVGA                            CAM_RESOLUTION(320, 240)
+#define CAM_RESOLUTION_CIF                                     CAM_RESOLUTION(352, 288)
+#define CAM_RESOLUTION_QCIF                            CAM_RESOLUTION(176, 144)
+
+/* resolution string for AUL */
+#define CAM_CAPTURE_RES_BIG    "BIG"   /* 8M */
+#define CAM_CAPTURE_RES_BIG_WIDE       "BIG_WIDE"      /* 5M wide */
+#define CAM_CAPTURE_RES_MIDDLE "MIDDLE"        /* 3M */
+#define CAM_CAPTURE_RES_MIDDLE_WIDE    "MIDDLE_WIDE"   /* 3M wide */
+#define CAM_CAPTURE_RES_SMALL                  "SMALL" /*  1M */
+#define CAM_CAPTURE_RES_SMALL_WIDE     "SMALL_WIDE"    /*  1M wide */
+#define CAM_CAPTURE_RES_VGA                    "VGA"
+
+#define CAM_RECORDING_RES_HD                   "HD"
+#define CAM_RECORDING_RES_VGA                  "VGA"
+#define CAM_RECORDING_RES_QCIF         "QCIF"
+
+#define CAM_SETTINGS_RESOLUTION_NUMS 14
+#define CAM_RESOULUTION_NUMS 6
+#define CAMCORDER_RESOULUTION_NUMS 6
+
+#define CAM_PREVIEW_FORMAT                                     MM_PIXEL_FORMAT_UYVY    /* UYVY */
+#define CAM_RAW_CAPTURE_FORMAT                         MM_PIXEL_FORMAT_UYVY    /* UYVY */
+
+#define CAM_MM_ZOOM_MAX (30)
+#define CAM_MM_ZOOM_MIN (10)
+#define CAM_MM_ZOOM_INTERVAL (2)
+
+#define CAM_REC_NORMAL_MAX_SIZE (2*1024*1024)  /* kbyte */
+#define CAM_REC_MMS_MAX_SIZE (295)     /* kbyte */
+
+#define STILL_MINIMAL_SPACE                            (100*1024)      /* byte */
+#define REC_NORMAL_MIN_SPACE (1024*1024)       /* byte */
+#define REC_MMS_MIN_SPACE       (300*1024)     /* byte */
+
+#define CAM_TIME_FORMAT "u:%02u:%02u"
+#define CAM_TIME_FORMAT2 "02u:%02u"
+
+#define CAM_TIME_ARGS(t) \
+       (uint) (t / (60*60)), \
+       (uint) ((t / 60) % 60), \
+       (uint) (t % 60)
+
+#define CAM_TIME_ARGS2(t) \
+       (uint) ((t / 60) % 60), \
+       (uint) (t % 60)
+
+#define REMOVE_TIMER(timer) \
+       if (timer != NULL) {\
+               ecore_timer_del(timer); \
+               timer = NULL; \
+       }
+
+#define REMOVE_IDLER(idler) \
+       if (idler != NULL) {\
+               ecore_idler_del(idler); \
+               idler = NULL; \
+       }
+
+#define DEL_EVAS_OBJECT(eo) \
+               if (eo != NULL) {\
+                       evas_object_del(eo); \
+                       eo = NULL; \
+               }
+
+#define SCALED_W(w)            (int)((double)w/MAIN_W*((struct appdata *)cam_appdata_get())->win_width)
+#define SCALED_H(h)            (int)((double)h/MAIN_H*((struct appdata *)cam_appdata_get())->win_height)
+
+/* set line byte */
+#define        LINEBYTES_BGR565(w)             (((w) * 2 + 3) >> 2 << 2)
+#define        LINEBYTES_YUV420(w)             (((w) + 3) >> 2 << 2)
+#define        LINEBYTES_YUV422(w)             (((w) * 2))
+#define        LINEBYTES_RGB888(w)             (((w) * 3))
+
+#define CAMERA_APP_TIMEOUT (180.0) /* No input for 1 minite, Auto close camera app */
+#define CAM_SETTING_POPUP_TIMEOUT (10)
+#ifndef ABS
+#define ABS(x) ((x) < 0 ? -(x) : (x))
+#endif
+
+#ifndef CLAMP
+#define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x)))
+#endif
+
+#ifndef MIN
+#define MIN(a, b) (((a) < (b)) ? (a) : (b))
+#endif
+
+#ifndef CAM_LCD_WVGA
+#define FIT_TO_RESOLUTION(p1, p2)      (p1)
+#else
+#define FIT_TO_RESOLUTION(p1, p2)      (((p2) == -1) ? ((p1) * 2) : (p2))
+#endif
+
+#ifndef CAM_LCD_WVGA
+#define FIT_TO_FONT_SIZE(s1, s2)       (s1)
+#else
+#define FIT_TO_FONT_SIZE(s1, s2)       (((s2) == -1) ? (s1) : (s2))
+#endif
+
+/* temporary code */
+#ifndef YUV422_SIZE
+#define YUV422_SIZE(width, height) ((width) * (height) *  2)
+#endif                         /* YUV422_SIZE */
+
+#ifndef YUV420_SIZE
+#define YUV420_SIZE(width, height) ((width) * (height) * 3 / 2)
+#endif                         /* YUV420_SIZE */
+
+#define CAM_AUDIO_BITRATE_MMS          (12200)
+#define CAM_AUDIO_BITRATE_NORMAL               (288000)
+
+#define MODE_DEFAULT                   CAM_CAMERA_MODE
+#define SHOTMODE_DEFAULT               CAM_SINGLE_MODE
+#define RECMODE_DEFAULT                CAM_RECORD_NORMAL
+#define RESOLUTION_DEFAULT     CAM_RESOLUTION_VGA
+#define REC_RESOLUTION_DEFAULT         CAM_RESOLUTION_VGA
+#define IMAGE_RESOLUTION_DEFAULT      CAM_RESOLUTION_3264x2448
+#define EFFECT_DEFAULT                 CAM_SETTINGS_EFFECTS_NOR
+#define AF_DEFAULT                             CAM_FOCUS_AUTO
+#define FLASH_DEFAULT                  CAM_FLASH_OFF
+#ifdef GUIDE_LINE_ENALBE
+#define GUIDE_LINE_DEFAULT      FALSE
+#endif
+#define REC_FLASH_DEFAULT              CAM_FLASH_OFF
+#define TIMER_DEFAULT                  CAM_SETTINGS_TIMER_OFF
+#define ZOOM_DEFAULT                   (10)
+#define QUALITY_DEFAULT                CAM_QUALITY_HIGH
+#define FPS_DEFAULT                    (30)
+#define FPS_SLOW                               (15)
+#define IMAGE_COUNT_DEFAULT    (1)
+#define AUDIOREC_DEFAULT               TRUE
+#define STORAGE_DEFAULT                CAM_STORAGE_INTERNAL
+#define BATTERY_LEVEL_DEFAULT   5
+#define REC_SIZE_LIMIT_DEFAULT CAM_REC_NORMAL_MAX_SIZE
+#define SHUTTER_SOUND_DEFAULT CAM_SETTINGS_SOUND_1
+#define SOUND_DEFAULT TRUE
+
+#define REC_MAX_TIME_LIMITED   (60*60) /*  one hour */
+#define DEFAULT_REC_FPS        (1.0)
+#define SLOW_MOTION_REC_FPS    (120)
+#define FAST_MOTION_REC_FPS    (30)
+#define SLOW_MOTION_PLAY_FPS   (0.25)
+#define FAST_MOTION_PLAY_FPS   (4)
+#define CAM_EPSINON (0.000001)
+
+/*note: for focus edje zoom effect */
+#define CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE (1.0)
+#define CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE (1.5)
+#define CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION (0.20)
+/*note: for thumbnail effect*/
+#define CAM_THUMBNAIL_ANTIMATION_EFFECT_DURATION (0.25)
+/*note: for icons animation effect*/
+#define CAM_ROTATE_ICONS_ANTIMATION_DURATION (0.35)
+
+
+typedef struct _cam_rectangle CamRectangle;
+
+struct _cam_rectangle {
+       int x, y, width, height;
+};
+
+/* face */
+typedef struct _cam_face_data CamFaceData;
+struct _cam_face_data {
+       CamRectangle *pFaceRect;
+       int nFace;              /* face count. */
+       int faceOrient;         /* the face angle 1:0angle 2:90angle, 3:270 angle */
+};
+
+/* Eyes */
+typedef struct _cam_eyes_data CamEyesData;
+struct _cam_eyes_data {
+       CamRectangle *pEyesRect;
+       int *nClosedEyesFlag;   /* true is closed eyes otherwise false */
+       int nEyes;
+};
+
+typedef struct _cam_exe_args CamExeArgs;
+struct _cam_exe_args {
+       int cam_mode;
+       int resolution;
+       int width;
+       int height;
+       int size_limit;
+       gboolean review;
+       char *caller;
+};
+
+enum _CamAppProperty {
+       PROP_MODE,
+       PROP_SHOT_MODE,
+       PROP_REC_MODE,
+       PROP_RESOLUTION,
+       PROP_FPS,
+       PROP_EFFECT,
+       PROP_AF_MODE,
+       PROP_FLASH,
+       PROP_TIMER,
+       PROP_IMAGE_QUALITY,
+       PROP_VIDEO_QUALITY,
+       PROP_AUDIO_REC,
+       PROP_AUDIO_QUALITY,
+       PROP_BATTERY_LEVEL,
+       PROP_BATTERY_CHARG,
+       PROP_ZOOM,
+       PROP_STORAGE,
+       PROP_GUIDELINE,
+       PROP_REVIEW,
+       PROP_IMAGE_COUNT,
+       PROP_SHUTTER_SOUND,
+       PROP_SIZE_LIMIT,
+       PROP_SIZE_LIMIT_TYPE,
+       PROP_REC_TIME,
+       PROP_REC_FILE_SIZE,
+
+       PROP_NUMS
+};
+
+#define PROP_MODE_NAME                         "mode"
+#define PROP_SHOT_MODE_NAME                    "shot_mode"
+#define PROP_REC_MODE_NAME                     "rec_mode"
+#define PROP_RESOLUTION_NAME           "resolution"
+#define PROP_FPS_NAME                          "fps"
+#define PROP_EFFECT_NAME                       "effect"
+#define PROP_AF_NAME                           "af_mode"
+#define PROP_FLASH_NAME                                "flash"
+#define PROP_TIMER_NAME                                "timer"
+#define PROP_IMAGE_QUALITY_NAME                "image_quality"
+#define PROP_VIDEO_QUALITY_NAME                "video_quality"
+#define PROP_AUDIO_REC_NAME                    "audio_rec"
+#define PROP_AUDIO_QUALITY_NAME                "audio_quality"
+#define PROP_BATTERY_LEVEL_NAME                "battery_level"
+#define PROP_ZOOM_NAME                         "zoom"
+#define PROP_STORAGE_NAME                      "storage"
+#define PROP_GUIDELINE_NAME                    "guideline"
+#define PROP_REVIEW_NAME                       "review"
+#define PROP_IMAGE_COUNT_NAME          "image_cnt"
+#define PROP_SHUTTER_SOUND_NAME                "shutter_sound"
+#define PROP_SIZE_LIMIT_NAME           "size_limit"
+#define PROP_SIZE_LIMIT_TYPE_NAME      "size_limit_type"
+
+#define PROP_TOOLBAR_0_TYPE_NAME       "toolbar_0"
+#define PROP_TOOLBAR_1_TYPE_NAME       "toolbar_1"
+#define PROP_TOOLBAR_2_TYPE_NAME       "toolbar_2"
+#define PROP_TOOLBAR_3_TYPE_NAME       "toolbar_3"
+#define PROP_TOOLBAR_4_TYPE_NAME       "toolbar_4"
+
+
+typedef enum _CamDeviceType {
+       CAM_DEVICE_MEGA = CAMERA_DEVICE_CAMERA0,
+       CAM_DEVICE_VGA = CAMERA_DEVICE_CAMERA1,
+} CamDeviceType;
+
+typedef enum _CamLaunchingMode {
+       CAM_LAUNCHING_MODE_NORMAL = 0,
+       CAM_LAUNCHING_MODE_EXTERNAL,
+       CAM_LAUNCHING_MODE_NUMS,
+} CamLaunchingMode;
+
+#define CAMCORDER_MODE_IMAGE 1
+#define CAMCORDER_MODE_VIDEO 2
+typedef enum _CamMode {
+       CAM_CAMERA_MODE = CAMCORDER_MODE_IMAGE,
+       CAM_CAMCORDER_MODE = CAMCORDER_MODE_VIDEO,
+       CAM_MODE_NUMS = CAM_CAMCORDER_MODE
+} CamMode;
+
+
+/* storage */
+#define CAM_STORAGE_NUMS 3
+
+typedef enum __CAM_MENU_ITEM{
+       CAM_MENU_EMPTY = -1,
+       CAM_MENU_SHORTCUTS = 0,
+       CAM_MENU_TIMER,
+       CAM_MENU_EFFECTS,
+       CAM_MENU_GUIDELINES,
+       CAM_MENU_RESET,
+       CAM_MENU_EFFECT_NONE,
+       CAM_MENU_EFFECT_NEGATIVE,
+       CAM_MENU_EFFECT_BLACKANDWHITE,
+       CAM_MENU_EFFECT_SEPIA,
+       CAM_MENU_MAX_NUMS,
+}CAM_MENU_ITEM;
+
+typedef enum _CamStorage {
+       CAM_STORAGE_INTERNAL = 0,
+       CAM_STORAGE_EXTERNAL,
+       CAM_STORAGE_DCF,
+       CAM_STORAGE_NUM,
+} CamStorage;
+
+typedef enum _CamToolbarButton {
+       CAM_TOOLBAR_BUTTON_MODE,
+       CAM_TOOLBAR_BUTTON_SHOT,
+       CAM_TOOLBAR_BUTTON_RECORD,
+       CAM_TOOLBAR_BUTTON_SCENE,
+       CAM_TOOLBAR_BUTTON_SETTINGS,
+
+       CAM_TOOLBAR_BUTTON_BACK,
+       CAM_TOOLBAR_BUTTON_FLASH,
+       CAM_TOOLBAR_BUTTON_QUICKVIEW,
+
+       CAM_TOOLBAR_BUTTON_NUM,
+} CamToolbarButton;
+
+typedef enum _CamShotMode {
+       CAM_SINGLE_MODE,
+       CAM_SELF_MODE, /*remove it*/
+       CAM_SHOT_MODE_NUMS
+} CamShotMode;
+
+enum _CamRecordMode {
+       CAM_RECORD_NORMAL,
+       CAM_RECORD_MMS,
+       CAM_RECORD_MODE_NUMS,
+       CAM_RECORD_SELF,
+       CAM_RECORD_SELF_MMS,
+};
+
+#define CAM_FLASH_NUMS 4
+typedef enum _CamFlashMode {
+       CAM_FLASH_OFF = CAMERA_ATTR_FLASH_MODE_OFF,
+       CAM_FLASH_ON = CAMERA_ATTR_FLASH_MODE_ON,
+       CAM_FLASH_AUTO = CAMERA_ATTR_FLASH_MODE_AUTO,
+       CAM_FLASH_MOVIE_ON = CAMERA_ATTR_FLASH_MODE_PERMANENT,
+} CamFlashMode;
+
+#define CAM_FOCUS_NUMS 3
+typedef enum _CamFocusMode {
+       CAM_FOCUS_AUTO = CAMERA_ATTR_AF_NORMAL,
+       CAM_FOCUS_MACRO = CAMERA_ATTR_AF_MACRO,
+       CAM_FOCUS_CAF = CAMERA_ATTR_AF_FULL,
+} CamFocusMode;
+
+typedef enum _CamFocusStatus {
+       CAM_FOCUS_STATUS_RELEASED = 0,
+                                    /**< AF status released.*/
+       CAM_FOCUS_STATUS_ONGOING,    /**< AF in pregress*/
+       CAM_FOCUS_STATUS_FOCUSED,    /**< AF success*/
+       CAM_FOCUS_STATUS_FAILED,     /**< AF fail*/
+       CAM_FOCUS_STATUS_NUM,        /**< Number of AF status*/
+} CamFocusStatus;
+
+typedef enum _CamSettingOnOff {
+       CAM_SETTINGS_OFF,
+       CAM_SETTINGS_ON,
+} CamSettingsOnOff;
+
+typedef enum _CamSettingsTimer {
+       CAM_SETTINGS_TIMER_OFF,
+       CAM_SETTINGS_TIMER_2SEC,
+       CAM_SETTINGS_TIMER_5SEC,
+       CAM_SETTINGS_TIMER_10SEC,
+
+       CAM_SETTINGS_TIMER_NUMS
+} CamSettingsTimer;
+
+
+/*#define CAM_SETTINGS_EFFECTS_NUMS 26*/
+#define CAM_SETTINGS_EFFECTS_NUMS 4
+
+typedef enum _CamSettingsEffects {
+       /*
+          CAM_SETTINGS_EFFECTS_NOR = MM_CAMCORDER_COLOR_TONE_NORMAL,
+        */
+
+       CAM_SETTINGS_EFFECTS_NOR = CAMERA_ATTR_EFFECT_NONE,                     /**< None */
+       CAM_SETTINGS_EFFECTS_MONO = CAMERA_ATTR_EFFECT_MONO,                    /**< Mono */
+       CAM_SETTINGS_EFFECTS_SEPIA = CAMERA_ATTR_EFFECT_SEPIA,                  /**< Sepia */
+       CAM_SETTINGS_EFFECTS_NEGATIVE = CAMERA_ATTR_EFFECT_NEGATIVE,            /**< Negative */
+       CAM_SETTINGS_EFFECTS_BLUE = CAMERA_ATTR_EFFECT_BLUE,                    /**< Blue */
+       CAM_SETTINGS_EFFECTS_GREEN = CAMERA_ATTR_EFFECT_GREEN,                  /**< Green */
+       CAM_SETTINGS_EFFECTS_AQUA = CAMERA_ATTR_EFFECT_AQUA,                    /**< Aqua */
+       CAM_SETTINGS_EFFECTS_VIOLET = CAMERA_ATTR_EFFECT_VIOLET,                        /**< Violet (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_ORANGE = CAMERA_ATTR_EFFECT_ORANGE,                        /**< Orange (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_GRAY = CAMERA_ATTR_EFFECT_GRAY,                    /**< Gray (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_RED = CAMERA_ATTR_EFFECT_RED,                      /**< Red (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_ANTIQUE = CAMERA_ATTR_EFFECT_ANTIQUE,              /**< Antique (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_WARM = CAMERA_ATTR_EFFECT_WARM,                    /**< Warm (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_PINK = CAMERA_ATTR_EFFECT_PINK,                    /**< Pink (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_YELLOW = CAMERA_ATTR_EFFECT_YELLOW,                        /**< Yellow (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_PURPLE = CAMERA_ATTR_EFFECT_PURPLE,                        /**< Purple (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_EMBOSS = CAMERA_ATTR_EFFECT_EMBOSS,                        /**< Emboss (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_OUTLINE = CAMERA_ATTR_EFFECT_OUTLINE,              /**< Outline (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_SOLAR_1 = CAMERA_ATTR_EFFECT_SOLARIZATION, /**< Solarization (Samsung Extension)*/
+       CAM_SETTINGS_EFFECTS_SKETCH_1 = CAMERA_ATTR_EFFECT_SKETCH,              /**< Sketch (Samsung Extension/secondary camera only)*/
+
+       /*CAM_SETTINGS_EFFECTS_ACCENT, */
+       /*CAM_SETTINGS_EFFECTS_SWAP, */
+} CamSettingsEffects;
+
+enum _CamMMSizeLimit {
+       CAM_MM_SIZE_LIMIT_TYPE_BYTE,
+       CAM_MM_SIZE_LIMIT_TYPE_SECOND,
+};
+
+#define CAM_QUALITY_NUMS 3
+enum _CamQuality {
+       CAM_QUALITY_BEST = 100,
+       CAM_QUALITY_HIGH = 95,  /*  still only */
+       CAM_QUALITY_MEDIUM = 80,
+       CAM_QUALITY_LOW = 65,
+};
+
+#define CAM_SETTINGS_SOUND_NUMS 4
+enum _CamSound {
+       CAM_SETTINGS_SOUND_OFF = -1,
+       CAM_SETTINGS_SOUND_1,
+       CAM_SETTINGS_SOUND_2,
+       CAM_SETTINGS_SOUND_3,
+};
+
+typedef enum _CamZoomValue {
+       CAM_ZOOM_VALUE_MIN,
+       CAM_ZOOM_VALUE_01,
+       CAM_ZOOM_VALUE_02,
+       CAM_ZOOM_VALUE_03,
+       CAM_ZOOM_VALUE_04,
+       CAM_ZOOM_VALUE_05,
+       CAM_ZOOM_VALUE_06,
+       CAM_ZOOM_VALUE_07,
+       CAM_ZOOM_VALUE_08,
+       CAM_ZOOM_VALUE_09,
+       CAM_ZOOM_VALUE_MAX
+} CamZoomValue;
+
+enum _CamRecStopType {
+       CAM_REC_STOP_UNEXPECTED = 0,
+       CAM_REC_STOP_NORMAL,
+       CAM_REC_STOP_LOW_BATTERY,
+       CAM_REC_STOP_ASM,
+       CAM_REC_STOP_MAX_SIZE,
+       CAM_REC_STOP_TIME_LIMIT,
+       CAM_REC_STOP_NO_SPACE,
+       CAM_REC_STOP_USB_CONN,
+       CAM_REC_STOP_POWER_KEY,
+       CAM_REC_STOP_NUM,
+};
+
+typedef enum _CamLaunchType {
+       CAM_LAUNCH_FIRST = 0,
+       CAM_LAUNCH_RELAUNCH,
+       CAM_LAUNCH_IS_ALREADY_RUNNING,
+} CamLaunchType;
+
+typedef enum _CamAppCoreState {
+       CAM_APPCORE_PAUSE_STATE = 1,
+       CAM_APPCORE_RESUME_STATE,
+       CAM_APPCORE_RESET_STATE,
+       CAM_APPCORE_TERMINATE_STATE,
+} CamAppCoreState;
+
+typedef enum _CamFoucusMode {
+       CAM_FOCUS_MODE_TOUCH_AUTO = 0,
+       CAM_FOCUS_MODE_CONTINUOUS = 1,
+} CamAppFocusMode;
+
+typedef struct __ShortCutData {
+       /*fixed*/
+       Evas_Object *icon;
+       Evas_Object_Event_Cb func;
+       CAM_MENU_ITEM setting_type;
+       char *icon_filepath;
+       char *name_line_1;
+       char *name_line_2;
+       /*if change, should swap*/
+       int menu_bar_no;/*-1,if -1, not in menubar;0,1,2,3,4, from left to right; now: 0 be always setting */
+       gboolean is_on_menu_bar;
+       /*varible*/
+       Evas_Coord x, y, w, h;
+       int part_index;/*part index*/
+       int list_index; /*list index*/
+       int row;/*unused*/
+       int col;/*unused*/
+
+} ShortCutData;
+
+
+typedef struct __MenuBar_Shortcut {
+       Evas_Object *icon;
+       Evas_Object *icon_button;
+       Evas_Object_Event_Cb func;
+       CAM_MENU_ITEM setting_type;
+       int menu_bar_no;
+}MenuBar_Shortcut;
+
+enum {
+       CAM_MENU_BAR_LEFT_INVALID = -1,
+       CAM_MENU_BAR_LEFT_0 = 0,
+       CAM_MENU_BAR_LEFT_1,
+       CAM_MENU_BAR_LEFT_2,
+       CAM_MENU_BAR_LEFT_3,
+       CAM_MENU_BAR_LEFT_4,
+       CAM_MENU_BAR_LEFT_MAX_NUM,
+};
+
+enum  {
+       CAM_MAIN_PIPE_OP_TYPE_INVAILD = -1,
+       CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL, /*update thumbnail type*/
+       CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR, /*rotate target, start rotate icons*/
+       CAM_MAIN_PIPE_OP_TYPE_MAX_NUM,
+}; /*note: this define for main pipe operation type*/
+
+typedef enum _CamTargetDirection {
+       CAM_TARGET_DIRECTION_LANDSCAPE = 0,
+       CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE,
+       CAM_TARGET_DIRECTION_PORTRAIT,
+       CAM_TARGET_DIRECTION_PORTRAIT_INVERSE,
+       CAM_TARGET_DIRECTION_MAX,
+}CamTargetDirection;
+
+typedef struct __cam_menu_composer{
+       const char* title;
+       Eina_Array* array;
+}cam_menu_composer;
+
+
+#endif                         /* __DEF_CAM_PROPERTY_H_ */
diff --git a/include/cam_rec.h b/include/cam_rec.h
new file mode 100644 (file)
index 0000000..4ec2009
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ * 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 __DEF_cam_rec_H_
+#define __DEF_cam_rec_H_
+
+/* #include <applog.h> */
+#include <Elementary.h>
+/* #include <Imlib2.h> */
+#include <utilX.h>
+#include <glib.h>
+#include <glib-object.h>
+/*#include <mmf/mm_camcorder.h>*/
+
+#include "cam_property.h"
+#define TMPFILE_PATH "/tmp/"
+#define TMPFILE_PREFIX "/.camera_recording_tmp"
+#define TMPFILE_EXTENTION ".3gp"
+
+/* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+Eina_Bool cam_video_capture_handle_idler(void *item);
+Eina_Bool cam_video_capture_handle(void *data);
+gboolean cam_video_record_cancel(void *data);
+gboolean cam_video_record_resume(void *data);
+gboolean cam_video_record_pause(void *data);
+gboolean cam_video_record_start(void *data);
+gboolean cam_video_record_stop(void *data);
+Eina_Bool cam_video_idler_record_stop(void *data);
+
+#endif
diff --git a/include/cam_sound.h b/include/cam_sound.h
new file mode 100644 (file)
index 0000000..33a4e1d
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * 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 _CAM_SOUND_H_
+#define _CAM_SOUND_H_
+
+#include <glib.h>
+
+#define SOUND_PATH                                    "/opt/apps/org.tizen.camera-app/res/sounds"
+
+enum _CamSoundEffect {
+       CAM_SOUND_EFFECT_SHUTTER1,
+       CAM_SOUND_EFFECT_SHUTTER2,
+       CAM_SOUND_EFFECT_SHUTTER3,
+       CAM_SOUND_EFFECT_CONTINUOUS_SHUTTER,
+       CAM_SOUND_EFFECT_CONTINUOUS_READY,
+       CAM_SOUND_EFFECT_REC_START1,
+       CAM_SOUND_EFFECT_REC_START2,
+       CAM_SOUND_EFFECT_REC_START3,
+       CAM_SOUND_EFFECT_REC_PAUSE,
+       CAM_SOUND_EFFECT_REC_RESUME,
+       CAM_SOUND_EFFECT_REC_CANCEL,
+       CAM_SOUND_EFFECT_REC_COMMIT1,
+       CAM_SOUND_EFFECT_REC_COMMIT2,
+       CAM_SOUND_EFFECT_REC_COMMIT3,
+       CAM_SOUND_EFFECT_TICK,
+       CAM_SOUND_EFFECT_AF_OK,
+       CAM_SOUND_EFFECT_AF_FAIL,
+       CAM_SOUND_EFFECT_NUM,
+};
+
+gboolean cam_sound_init(GError **error);
+void cam_sound_finalize(void);
+void cam_sound_set(int index, const gchar *file);
+const gchar *cam_sound_get(int index);
+gboolean cam_sound_is_silent_mode(void);
+/*change audio rute api */
+gboolean cam_sound_set_mic();
+gboolean cam_sound_play(int index, void *data);
+
+#endif /*_CAM_SOUND_H_*/
diff --git a/include/cam_ta.h b/include/cam_ta.h
new file mode 100644 (file)
index 0000000..87401c8
--- /dev/null
@@ -0,0 +1,112 @@
+/*
+ * 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 _CAM_TA_H_
+#define _CAM_TA_H_
+
+#define ENABLE_TA
+#ifdef ENABLE_TA
+#define CAM_TA_MAX_CHECKPOINT  500
+#define CAM_TA_MAX_ACCUM               500
+
+typedef struct _cam_ta_checkpoint {
+       unsigned long timestamp;
+       char *name;
+} cam_ta_checkpoint;
+
+typedef struct _cam_ta_accum_item {
+       unsigned long elapsed_accum;
+       unsigned long num_calls;
+       unsigned long elapsed_min;
+       unsigned long elapsed_max;
+       unsigned long first_start;
+       unsigned long last_end;
+
+       char *name;
+
+       unsigned long timestamp;
+       int on_estimate;
+       int num_unpair;
+} cam_ta_accum_item;
+
+#define CAM_TA_SHOW_STDOUT     0
+#define CAM_TA_SHOW_STDERR     1
+#define CAM_TA_SHOW_FILE       2
+#define CAM_TA_RESULT_FILE "/tmp/cam-ta.log"
+
+int cam_ta_init(void);
+int cam_ta_release(void);
+void cam_ta_set_enable(int enable);
+char *cam_ta_fmt(const char *fmt, ...);
+
+int cam_ta_add_checkpoint(char *name, int show, char *filename, int line);
+void cam_ta_show_checkpoints(void);
+void cam_ta_show_diff(char *name1, char *name2);
+
+int cam_ta_get_numof_checkpoints();
+unsigned long cam_ta_get_diff(char *name1, char *name2);
+char *cam_ta_get_name(int idx);
+
+int cam_ta_accum_item_begin(char *name, int show, char *filename, int line);
+int cam_ta_accum_item_end(char *name, int show, char *filename, int line);
+void cam_ta_accum_show_result(int direction);
+
+#define CAM_TA_INIT()                                                          (cam_ta_init())
+#define CAM_TA_RELEASE()                                                       (cam_ta_release())
+#define CAM_TA_SET_ENABLE(enable)                                      (cam_ta_set_enable(enable))
+
+#define CAM_TA_ADD_CHECKPOINT(name, show)              (cam_ta_add_checkpoint(name, show, __FILE__, __LINE__))
+#define CAM_TA_SHOW_CHECKPOINTS()                              (cam_ta_show_checkpoints())
+#define CAM_TA_SHOW_DIFF(name1, name2)                 (cam_ta_show_diff(name1, name2))
+#define CAM_TA_GET_NUMOF_CHECKPOINTS()                 (cam_ta_get_numof_checkpoints())
+#define CAM_TA_GET_DIFF(name1, name2)                          (cam_ta_get_diff(name1, name2))
+#define CAM_TA_GET_NAME(idx)                                           (cam_ta_get_name(idx))
+
+#define CAM_TA_ACUM_ITEM_BEGIN(name, show)             (cam_ta_accum_item_begin(name, show, __FILE__, __LINE__))
+#define CAM_TA_ACUM_ITEM_END(name, show)                       (cam_ta_accum_item_end(name, show, __FILE__, __LINE__))
+#define CAM_TA_ACUM_ITEM_SHOW_RESULT()                 (cam_ta_accum_show_result(CAM_TA_SHOW_STDOUT))
+#define CAM_TA_ACUM_ITEM_SHOW_RESULT_TO(x)             (cam_ta_accum_show_result(x))
+
+#define __cam_ta__(name, x) \
+CAM_TA_ACUM_ITEM_BEGIN(name, 0); \
+x \
+CAM_TA_ACUM_ITEM_END(name, 0);
+
+#define __cam_tafmt__(fmt, args...)                    (cam_ta_fmt(fmt, ##args))
+
+#else
+
+#define CAM_TA_INIT()
+#define CAM_TA_RELEASE()
+#define CAM_TA_SET_ENABLE(enable)
+
+#define CAM_TA_ADD_CHECKPOINT(name, show)
+#define CAM_TA_SHOW_CHECKPOINTS()
+#define CAM_TA_SHOW_DIFF(name1, name2)
+#define CAM_TA_GET_NUMOF_CHECKPOINTS()
+#define CAM_TA_GET_DIFF(name1, name2)
+#define CAM_TA_GET_NAME(idx)
+
+#define CAM_TA_ACUM_ITEM_BEGIN(name, show)
+#define CAM_TA_ACUM_ITEM_END(name, show)
+#define CAM_TA_ACUM_ITEM_SHOW_RESULT()
+#define CAM_TA_ACUM_ITEM_SHOW_RESULT_TO(x)
+#define __cam_ta__(name, x) x
+#define __cam_tafmt__(fmt, args...)
+
+#endif
+#endif
diff --git a/include/cam_typeconverter.h b/include/cam_typeconverter.h
new file mode 100755 (executable)
index 0000000..9ddd328
--- /dev/null
@@ -0,0 +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 CAM_TYPECONVERTER_H_
+#define CAM_TYPECONVERTER_H_
+
+
+#ifdef _cplusplus
+extern "C" {
+#endif
+
+
+#include "camera.h"
+#include "cam_property.h"
+
+
+unsigned int cam_effect_dev_convert_caps(camera_attr_effect_mode_e effect);
+unsigned int cam_effect_cam_convert_caps(CamSettingsEffects effect);
+
+#ifdef _cplusplus
+}
+#endif
+
+
+
+#endif                         /*  CAM_TYPECONVERTER_H_ */
diff --git a/include/cam_ui_effect_utils.h b/include/cam_ui_effect_utils.h
new file mode 100644 (file)
index 0000000..03227f4
--- /dev/null
@@ -0,0 +1,80 @@
+/*\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
+\r
+\r
+#ifndef __H_CAM_UI_EFFECT_UTILS_H__\r
+#define __H_CAM_UI_EFFECT_UTILS_H__\r
+\r
+#include "cam.h"
+/*\r
+* for thumbnail animation\r
+*/\r
+struct cam_ui_effect_custom_effect\r
+{\r
+       Evas_Coord x, y;\r
+       struct _size\r
+       {\r
+               Evas_Coord w, h;\r
+       } from, to;\r
+};\r
+
+/**\r
+ * @brief              get @focus object zoom or origin state\r
+ * @return                     Operation result\r
+ * @return                     TRUE: origin state, not zoom; FALSE: zoom state.\r
+ */\r
+gboolean cam_ui_effect_utils_get_zoom_state();
+/**\r
+ * @brief              set @obj zoom from @from_rate to @to_rate and then go back origin size\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  from_rate       start size\r
+ * @param[in]  to_rate                 end size\r
+ * @param[in]  duration        effect duration time\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_effect_utils_set_zoom_inout_effect(Evas_Object *obj, float from_rate, float to_rate, double duration);\r
+/**\r
+ * @brief              set @obj zoom from @from_rate to @to_rate\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  from_rate       start size\r
+ * @param[in]  to_rate                 end size\r
+ * @param[in]  duration        effect duration time\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_effect_utils_set_zoom_effect(Evas_Object *obj, float from_rate, float to_rate, double duration);\r
+
+/**\r
+ * @brief              set @obj resize at x,y h: fixed value @h; w: from 0 to @w\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  x       x coordinate\r
+ * @param[in]  y       y coordinate\r
+ * @param[in]  w       @obj max width\r
+ * @param[in]  h       @obj max height\r
+ * @param[in]  duration        effect duration time\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_effect_utils_set_thumbnail_effect(Evas_Object *obj,\r
+                                                               Evas_Coord x,\r
+                                                               Evas_Coord y,\r
+                                                               Evas_Coord w,\r
+                                                               Evas_Coord h,\r
+                                                               double duration);
+\r
+#endif /* __H_CAM_UI_EFFECT_UTILS_H__ */\r
+//end file\r
diff --git a/include/cam_ui_rotate_utils.h b/include/cam_ui_rotate_utils.h
new file mode 100644 (file)
index 0000000..ee591df
--- /dev/null
@@ -0,0 +1,101 @@
+/*\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
+\r
+\r
+#ifndef __H_CAM_UI_ROTATE_UTILS_H__\r
+#define __H_CAM_UI_ROTATE_UTILS_H__\r
+\r
+#include "cam.h"\r
+\r
+struct cam_ui_rotate_obj_params\r
+{\r
+       Evas_Coord x, y;/*start_x, start_y*/\r
+       double degree;\r
+\r
+       Evas_Object *obj;\r
+};\r
+\r
+/**\r
+ * @brief              set @obj rotate @degree, the @obj left_top coordinate (start_x, start_y)\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  start_x         left_top coordinate x,\r
+ * @param[in]  start_y         left_top coordinate y,\r
+ * @param[in]  degree  the rotate angle\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_rotate_utils_map_rotate(Evas_Object *obj,\r
+                                               Evas_Coord start_x,\r
+                                               Evas_Coord start_y,\r
+                                               double degree);\r
+/**\r
+ * @brief              set @obj rotate from@from_degree to @to_degree, the time is @duration\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  from_degree     start angle\r
+ * @param[in]  to_degree       end angle\r
+ * @param[in]  duration        effect duration time\r
+ * @param[in]  cb              callback function, it will be called in the rotation end\r
+ * @param[in]  data            @cb user data.\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_rotate_utils_rotation_effect(Evas_Object *obj,\r
+                                                       float from_degree,\r
+                                                       float to_degree,\r
+                                                       double duration,\r
+                                                       void (*cb) (void *data, Elm_Transit *transit),\r
+                                                       void *data);\r
+/**\r
+ * @brief              set @setting popup rotate,  @degree, the @obj left_top coordinate (start_x, start_y)\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  start_x         left_top coordinate x,\r
+ * @param[in]  start_y         left_top coordinate y,\r
+ * @param[in]  degree  the rotate angle\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_rotate_utils_map_setting_popup_rotate(Evas_Object *obj,\r
+                                                                       Evas_Coord start_x,\r
+                                                                       Evas_Coord start_y,\r
+                                                                       double degree);\r
+/**\r
+ * @brief              @data appdata, rotate the camera ui icons\r
+ * @param[in]  data    appdata\r
+ * @param[in]  duration        effect duration time\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+gboolean cam_ui_rotate_utils_rotate_start(void *data, double duration);\r
+/**\r
+ * @brief              set @obj,  self rotate @degree, using evas_map.\r
+ * @param[in]  obj     The object to be set\r
+ * @param[in]  degree  the rotate angle\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+void cam_ui_rotate_utils_map_self_rotate(Evas_Object *obj,\r
+                                                       double degree);\r
+/**\r
+ * @brief              @data appdata, rotate the camera ui:toolbar shortcust icons\r
+ * @param[in]  data    appdata\r
+ * @param[in]  duration        effect duration time\r
+ * @return                     Operation result\r
+ * @return                     void\r
+ */\r
+gboolean cam_ui_rotate_utils_rotate_toolbar_shortcuts(void *data, double duration);\r
+\r
+#endif /* __H_CAM_UI_ROTATE_UTILS_H__ */\r
+//end file\r
diff --git a/include/camera_utils.h b/include/camera_utils.h
new file mode 100755 (executable)
index 0000000..63e189d
--- /dev/null
@@ -0,0 +1,147 @@
+/*
+ * 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 __DEF_camera_utils_H_
+#define __DEF_camera_utils_H_
+
+#include <sys/vfs.h>
+
+#include "cam.h"
+
+typedef unsigned char byte;
+
+
+typedef enum {
+       CAM_IMG_ROTATION_LEFT = 0,
+       CAM_IMG_ROTATION_RIGHT,
+} CamRorationAngle;
+
+gboolean cam_utils_check_battery_warning_low(void);
+gboolean cam_utils_check_battery_critical_low(void);
+
+
+int cam_utils_get_battery_level(void);
+
+gint cam_utils_get_charging_status(void);
+
+void *cam_utils_YUV422_to_ARGB(byte *frame, int width, int height);
+
+void *cam_utils_IYUV_to_ARGB(byte *frame, int width, int height);
+
+gboolean
+cam_utils_save_to_jpg_file(int storage_id, gchar *filename, void *frame,
+                          int width, int height, GError **error);
+
+gboolean
+cam_utils_save_to_jpg_memory(byte **memory, unsigned int *size, void *src_frame,
+                            int width, int height);
+
+void
+cam_utils_draw_guide_rectangle(void *data, void *frame, int x_org, int y_org,
+                              int width, int height);
+
+void cam_utils_convert_YUYV_to_UYVY(unsigned char *dst, unsigned char *src, gint length);      /* fast convert , but lost 1pixel Y data. */
+
+void cam_utils_convert_UYVY_to_YUYV(char *dst, char *src, gint length);
+
+#if 1
+void
+cam_utils_convert_YUYV_to_YUV420P(unsigned char *pInBuf, unsigned char *pOutBuf,
+                                 int width, int height);
+#else
+void
+cam_utils_convert_YUYV_to_YUV420P(byte *src, byte *dst, gint width,
+                                 gint height);
+#endif
+
+void *cam_utils_load_fake_yuv_image(); /* This function load memory address of 640*480 yuyv (16bit) image */
+
+void *cam_utils_get_fake_yuv_image();
+
+void cam_utils_free_fake_yuv_image();
+
+guint64 cam_system_get_remain_rec_time(void *data);
+
+gint64 cam_system_get_still_count_by_resolution(void *data);
+
+gint64 cam_get_free_space(const gchar *path);
+
+gint64 cam_get_capacity_space(const gchar *path);
+
+void *cam_utils_load_temp_file(gchar *filepath, gint *pfilesize);
+
+gboolean cam_utils_check_torchlight_status(void *data);
+
+gboolean cam_utils_check_mmc_for_writing(GError **error);
+
+gboolean cam_utils_check_mmc_for_inserted_stats(void *data);
+
+int cam_utils_check_mmc_status(void);
+
+int cam_utils_get_storage_id_from_filepath(const char *filepath);
+
+gboolean cam_utils_safety_file_copy(const char *dst, const char *src,
+                                   GError **error);
+
+gboolean cam_utils_check_wide_resolution(int resol_w, int resol_h);
+
+gboolean cam_utils_parse_args(int argc, char *argv[], CamExeArgs *args);
+
+gboolean cam_utils_check_fake_image_exist(const char *fake_image_path);
+
+int cam_utils_captured_image_select(void *data, const char *file_path);
+
+gboolean cam_utils_image_rotate(char *src, int src_width, int src_height,
+                               char *dst, int *dst_width, int *dst_height,
+                               int degree);
+gboolean cam_utils_set_guide_rect_color(void *data);
+/**
+ * @brief      change video stream xy to windos xy
+ *     while target is 0 degree(landscape):the coordinate sytem:
+ *     win     ----------------------------------(width:horizontal)
+ *             -offset -       video           -offset -
+ *             -<--->-<--------------->-<----->-
+ *             -       -                       -       -
+ *height(vertical)----------------------------------
+ * @param[in]  faces           camera_detected_face_s array
+ * @param[in]  count           face count
+ * @param[in]  data            user_data, it should be appdata
+ * @return     void
+ */
+void cam_utils_set_videos_xy_to_windows_xy(CamVideoRectangle src,
+                                                               CamVideoRectangle *result,
+                                                               void *data);
+/**
+ * @brief      change windos stream xy to video xy
+ *     while target is 0 degree(landscape):the coordinate sytem:
+ *     win     ----------------------------------(width:horizontal)
+ *             -offset -       video           -offset -
+ *             -<--->-<--------------->-<----->-
+ *             -       -                       -       -
+ *height(vertical)----------------------------------
+ * @param[in]  faces           camera_detected_face_s array
+ * @param[in]  count           face count
+ * @param[in]  data            user_data, it should be appdata
+ * @return     void
+ */
+
+void cam_utils_set_windows_xy_to_videos_xy(CamVideoRectangle src,
+                                                               CamVideoRectangle *result,
+                                                               void *data);
+
+
+#endif                         /* __DEF_camera_utils_H__ */
diff --git a/include/edc-callback/cam_common_edc_callback.h b/include/edc-callback/cam_common_edc_callback.h
new file mode 100755 (executable)
index 0000000..ce51246
--- /dev/null
@@ -0,0 +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.
+ */
+
+
+#ifndef __DEF_camera_common_edc_H_
+#define __DEF_camera_common_edc_H_
+/* #include "cam_property.h" */
+
+void cam_layout_del_all(void *data);
+
+int cam_get_menu_item_to_index(int menu_type, int item);
+int cam_get_value_to_index(int menu_type, int value);
+int cam_convert_menu_item_to_mmfw_value(int mode);
+int cam_convert_effect_to_menu_item(int mode);
+
+
+/* Evas_Object* create_image_for_smart(Evas *evas, Evas_Object *obj, const char *edj_file, const char *image_name); */
+void define_mouse_callback(Evas_Object *edje, Evas_Object *parent);
+int shot_mode_set(void *data, int mode);
+#endif /* __DEF_camera_common_edc_H_ */
diff --git a/include/edc-callback/cam_indicator_edc_callback.h b/include/edc-callback/cam_indicator_edc_callback.h
new file mode 100755 (executable)
index 0000000..6134ab2
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * 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 __DEF_camera_indicator_H_
+#define __DEF_camera_indicator_H_
+int cam_indicator_create(struct appdata *ad);
+int cam_indicator_destory(struct appdata *ad);
+int cam_indicator_rotate(struct appdata *ad);
+void indicator_toggle(struct appdata *ad, gboolean hide);
+void indicator_update_battery(struct appdata *ad, int level);
+void load_setting_values(struct appdata *ad);
+
+#endif /* __DEF_camera_indicator_H_ */
+
diff --git a/include/edc-callback/cam_recording_edc_callback.h b/include/edc-callback/cam_recording_edc_callback.h
new file mode 100644 (file)
index 0000000..0e347b1
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * 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 __DEF_camera_recording_H_
+#define __DEF_camera_recording_H_
+int load_recording_edje(struct appdata *ad);
+int unload_recording_edje(struct appdata *ad);
+int cam_recording_rotate(struct appdata *ad);
+
+/* you can use this function to set time text for recording */
+void recording_set_time(void *data, int hh, int mm, int ss);
+
+#endif /* __DEF_camera_recording_H_ */
+
diff --git a/include/edc-callback/cam_toolbar_edc_callback.h b/include/edc-callback/cam_toolbar_edc_callback.h
new file mode 100644 (file)
index 0000000..e763b77
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ * 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 __DEF_CAM_TOOLBAR_EDC_H_
+#define __DEF_CAM_TOOLBAR_EDC_H_
+
+#include "cam_property.h"
+#include "cam.h"
+int cam_toolbar_create(struct appdata *ad);
+void cam_toolbar_destroy(struct appdata *ad);
+void cam_toolbar_update(struct appdata *ad);
+int cam_toolbar_rotate(struct appdata *ad);
+int show_toolbar_edje(struct appdata *ad);
+int hide_toolbar_edje(struct appdata *ad);
+
+gboolean toolbar_update_quickview_thumbnail(struct appdata *ad);
+/**
+ * @brief              update thumbnail
+ * @param[in]  data    appdata
+ * @return                     Operation result
+ * @return                     gboolean
+ */
+gboolean toolbar_update_quickview_thumbnail_no_animation(struct appdata *ad);
+
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+int toolbar_update_quickview_thumbnail_by_screennail(struct appdata *ad);
+
+#endif
+void cam_toolbar_and_setting_popup_del(void *data);
+void toolbar_destroy_setting_popup(struct appdata *ad);
+int cam_toolbar_setting_popup_create(struct appdata *ad);
+int cam_toolbar_setting_popup_delayed_create(struct appdata *ad);
+void toolbar_hide_setting_popup(struct appdata *ad);
+Eina_Bool cam_animation_effect(void *data, char *type, Evas_Object *obj);
+Eina_Bool cam_icon_animation_effect(void *data);
+int toolbar_shot_guide_popup_create(struct appdata *ad, int shot_mode);
+int toolbar_shot_guide_popup_destory(struct appdata *ad);
+int toolbar_shot_guide_popup_move();
+gboolean cam_setting_toolbar_execution_time_checker_remove(struct appdata
+                                                            *ad);
+Eina_Bool cam_setting_toolbar_execution_time_checker_cb(void *data);
+gboolean cam_setting_toolbar_execution_time_checker_start(struct appdata *ad);
+gboolean cam_setting_toolbar_execution_time_checker_update(struct appdata *ad);
+Eina_Bool cam_show_setting_menu(void *data);
+Eina_Bool cam_show_setting_menu_option_popup(void *data);
+gboolean cam_check_timer_is_running(void *data);
+#ifdef GUIDE_LINE_ENALBE
+int cam_guideline_rotate(struct appdata *ad);
+void settings_guideline_refresh(struct appdata *ad);
+#endif
+void toolbar_destroy_shortcuts_popup(struct appdata *ad);
+
+#endif /* __DEF_CAM_TOOLBAR_EDC_H_ */
+
diff --git a/include/edc-callback/cam_zoom_edc_callback.h b/include/edc-callback/cam_zoom_edc_callback.h
new file mode 100755 (executable)
index 0000000..86f057a
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * 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 __DEF_camera_zoom_H_
+#define __DEF_camera_zoom_H_
+
+#include "cam_property.h"
+
+typedef struct _CamCapsRange {
+       int min;
+       int max;
+       int def_val;
+       unsigned int step;
+} CamCapsRange;
+
+int zoom_in(struct appdata *ad, gboolean zoom_in);
+#ifdef PREVIEW_PINCH_ENALBE
+gboolean cam_pinch_zoom_in(struct appdata* ad,gboolean is_zoom_in,int zoom_value);
+#endif
+gboolean load_zoom_edje(struct appdata *ad);
+gboolean update_zoom_edje(struct appdata *ad);
+gboolean unload_zoom_edje(struct appdata *ad);
+#endif /* __DEF_camera_zoom_H_ */
diff --git a/include/edc_image_name.h b/include/edc_image_name.h
new file mode 100755 (executable)
index 0000000..6995ca6
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ * 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 __DEF_edc_image_name_H_
+#define __DEF_edc_image_name_H_
+
+
+/**** tmp image shoud be removed ****/
+
+/**cam_recording_edje.edj**/
+#define RECORDING_IMAGE_REC_IMAGE                              "indicator/camera_rec.png"
+#define SHUTTER_REC_NORMAL_IMAGE                               "tmp/11_camera_mode_recording_normal.png"
+#define SHUTTER_REC_PRESS_IMAGE                                        "tmp/11_camera_mode_recording_press.png"
+#define SHUTTER_REC_NORMAL_VERTICAL_IMAGE              "tmp/11_camera_mode_recording_normal_ver.png"
+#define SHUTTER_REC_PRESS_VERTICAL_IMAGE               "tmp/11_camera_mode_recording_press_ver.png"
+#define RECORDING_PRESS_IMAGE_ANI                              "tmp/11_camcorder_standby_press.png"
+#define RECORDING_PRESS_IMAGE_ANI_VER                  "tmp/11_camcorder_standby_press_ver.png"
+
+/** cam_toolbar_layout.edj **/
+/* toolbar bg */
+#define LEFT_TOOLBAR_BG_IMAGE                                  "camera_normal_opacity_l_bg.png"
+#define RIGHT_TOOLBAR_BG_IMAGE                                 "camera_normal_opacity_r_bg.png"
+#define LEFT_TOOLBAR_BG_VER_IMAGE                              "vertical/camera_normal_bg_ver_01.png"
+#define RIGHT_TOOLBAR_BG_VER_IMAGE                             "vertical/camera_normal_bg_ver2_01.png"
+/* item_button */
+#define BUTTON_BG_NORMAL_IMAGE                                 "camera_menu_bg.png"
+#define BUTTON_BG_PRESS_IMAGE                                  "camera_menu_tab_hold.png"
+/* mode item icons */
+#define MODE_BG_IMAGE                                                  "tmp/11_camera_mode_bg.png"
+#define MODE_BUTTON_IMAGE                                              "tmp/11_camera_mode_button.png"
+#define MODE_BG_VER_IMAGE                                              "tmp/11_camera_mode_bg_ver.png"
+#define MODE_BUTTON_VER_IMAGE                                  "tmp/11_camera_mode_button_ver.png"
+/* shutter button */
+#define SHUTTER_NORMAL_IMAGE                                   "camera_mode_shutter_normal.png"
+#define SHUTTER_NORMAL_VER_IMAGE                               "vertical/camera_mode_shutter_normal_ver.png"
+#define SHUTTER_PRESS_IMAGE                                            "camera_mode_shutter_press.png"
+#define SHUTTER_PRESS_VER_IMAGE                                        "vertical/camera_mode_shutter_press_ver.png"
+#define CAMERA_SHUTTER_ICON_IMAGE                              "camera_mode_shutter_icon.png"
+#define CAMCORDER_SHUTTER_ICON_IMAGE                   "camcorder_standby_shutter.png"
+#define SNAPSHOT_PRESS_IMAGE                                   "tmp/11_camera_snapshot_press.png"
+#define SNAPSHOT_NORMAL_IMAGE                                  "tmp/11_camera_snapshot.png"
+/* thumbnail */
+#define THUMBNAIL_BG_NORMAL_IMAGE                              "camera_mode_thumbnail_bg.png"
+#define THUMBNAIL_BG_PRESS_IMAGE                               "camera_mode_thumbnail_bg_press.png"
+/* back button */
+#define BACK_BUTTON_NORMAL_IMAGE                               "camara_icon_back.png"
+#define BACK_BUTTON_PRESS_IMAGE                                        "camara_icon_back_press.png"
+
+/** cam_util.edj **/
+#define FOCUS_GUIDE_NOTREADY_IMAGE                             "Touch AF_rect/camera_focus_notready.png"
+#define FOCUS_GUIDE_FOCUSED_IMAGE                              "Touch AF_rect/camera_ready.png"
+#define FOCUS_GUIDE_FAILED_IMAGE                               "Touch AF_rect/camera_focus_fail.png"
+#define TIMER_ICON_BG_IMAGE                                            "camera_timer_popup.png"
+
+/* guide line image */
+#define GUDIE_LINE_1_IMAGE                                             "tmp/37_guideline_1.png"
+#define GUDIE_LINE_2_IMAGE                                             "tmp/37_guideline_2.png"
+#define GUDIE_OPA_LINE_1_IMAGE                                 "tmp/37_guideline_opa_1.png"
+#define GUDIE_OPA_LINE_2_IMAGE                                 "tmp/37_guideline_opa_2.png"
+
+/* shortcut image */
+#define SHOTCUTS_LINE_H_IMAGE                                  "camera_shortcut_line_h_01.png"
+#define SHOTCUTS_LINE_V_IMAGE                                  "camera_shortcut_line_v_01.png"
+#define SHOTCUTS_EDIT_BG_H_IMAGE                               "camera_shrtcut_edit_bg.png"
+#define SHOTCUTS_EDIT_BG_V_IMAGE                               "vertical/camera_shrtcut_edit_bg_ver.png"
+#define SHOTCUTS_EDIT_MENU_BG_H_IMAGE                  "camera_shrtcut_menubar_bg.png"
+#define SHOTCUTS_EDIT_MENU_BG_V_IMAGE                  "vertical/camera_shrtcut_menubar_bg_ver.png"
+
+/* popup bg image */
+#define SHOTTING_MODE_POPUP_BG_IMAGE                   "tmp/37_shootingmode_popup_bg.png"
+
+/** cam_zoom_layout.edj **/
+#define ZOOM_BG_IMAGE                                                  "camera_popup_zoom.png"
+#define ZOOM_BG_VER_IMAGE                                              "vertical/camera_popup_zoom_ver.png"
+
+/** style_ctxpopuup_camera_with_radio.edj **/
+#define CTXPOPUP_BG_IMAGE                                              "camera_option_popup_bg.png"
+#define CTXPOPUP_BG_2DEPTH_IMAGE                               "camera_option_popup_bg_2depth.png"
+#define CTXPOPUP_LEFT_ARROW_IMAGE                              "tmp/imageeditor_left_arrow.png"
+#define CTXPOPUP_RIGHTT_ARROW_IMAGE                            "tmp/imageeditor_right_arrow.png"
+#define CTXPOPUP_TOP_ARROW_IMAGE                               "tmp/imageeditor_top_arrow.png"
+#define CTXPOPUP_BOTTOM_ARROW_IMAGE                            "tmp/imageeditor_bottom_arrow.png"
+
+#define SETTING_POPUP_RADIO_BUTTON_ON_IMAGE            "camera_radio_btn_on.png"
+#define SETTING_POPUP_RADIO_BUTTON_OFF_IMAGE   "camera_radio_btn_off.png"
+
+/** style_slider_camera.edj **/
+#define SLIDER_BAR_IMAGE                                               "camera_popup_zoom_bar.png"
+#define SLIDER_BAR_VER_IMAGE                                   "vertical/camera_popup_zoom_bar_ver.png"
+#define SLIDER_HANDLER_IMAGE                                   "camera_handle.png"
+
+#endif
diff --git a/include/edc_string.h b/include/edc_string.h
new file mode 100755 (executable)
index 0000000..181382d
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ * 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 __DEF_STRING_H_
+#define __DEF_STRING_H_
+
+/*  share between EDC and C code. */
+
+#define ENABLE_HAPTIC 0
+
+/* #define NEW_RECORDING_LAYOUT */
+
+#define INVALID_INDEX -1
+
+#define CAM_COMMON_STRING_LEN 80
+
+#define CAM_UI_LOG(fmt, args...)       cam_debug(LOG_UI, fmt, ##args)
+
+#define BG_BLACK       40
+#define FG_RED         31
+#define FG_GREEN       32
+#define FG_YELLOW      33
+#define FG_PUPPLE      35
+#define FG_CYAN        36
+#define FG_BLUE        34
+
+#define UI_TEST_LOG(fmt, args...) \
+       do { \
+               printf("\x1b[%dm\x1b[%dm[CAM_UI_LOG] [%s:%d] : "fmt, BG_BLACK, FG_GREEN, __func__, __LINE__, ##args); \
+               printf("\x1b[0m\n"); \
+       } while (0)
+
+#define MAIN_W 1280
+#define MAIN_H 720
+#define VER_MAIN_W MAIN_H
+#define VER_MAIN_H MAIN_W
+
+#define MAIN_W_AUTO 800
+#define MAIN_H_AUTO 480
+#define VER_MAIN_W_AUTO MAIN_H_AUTO
+#define VER_MAIN_H_AUTO MAIN_W_AUTO
+
+
+#define TOOLBAR_W 128
+#define TOOLBAR_RIGHT_ITEM_H 225
+
+/* camera focus */
+#define CAMERA_FOCUS_W  150
+#define CAMERA_FOCUS_H  97
+
+#define SETTINGS_TAB_BACK_W 71
+#define SETTINGS_TAB_BACK_H 71
+
+#define INDICATOR_BATTERY "INDICATOR_BATTERY"
+#define INDI_REC_BATTERY "INDI_REC_BATTERY"
+
+/* recording */
+#define RECORDING_IMAGE "recording_image"
+#define RECORDING_TEXT "recording_text"
+#define RECORDING_LEFT_TEXT "recording_left_text"
+
+#define RECORDING_STOP_BUTTON "recording_stop_button"
+
+#define REC_PAUSE "rec_pause"
+#define REC_REC "rec_rec"
+#define REC_STOP "rec_stop"
+#define REC_REC_SIG "rec_rec_sig"
+#define REC_PAUSE_SIG "rec_pause_sig"
+#define REC_STOP_SIG "rec_stop_sig"
+#define REC_SIG_SRC "rec_sig_src"
+
+/* haptic */
+#define HAPTIC_SIG_SRC "HAPTIC_SIG_SRC"
+#define HAPTIC_SIG "HAPTIC_SIG"
+
+#define CONTI_REVIEW_BACK "conti_review_back"
+#define CONTI_REVIEW_THUMB "conti_review_thumb"
+#define CONTI_REVIEW_BTN_SIG_SRC "conti_review_sig_source"
+#define CONTI_REVIEW_BACK_BTN_SIG "conti_review_back_SIG"
+
+/* captured image */
+#define CAPTURED_IMAGE_SCREEN "captured_image_screen"
+#define CAPTURED_IMAGE_SAVE "captured_image_save_btn"
+#define CAPTURED_IMAGE_RETRY "capture_image_save_bnt"
+
+/* Font related */
+#define COLOR_1        255 255 255 255
+#define COLOR_2        0 0 0 255
+#define COLOR_65       164 215 255 255
+#define COLOR_73       150 150 150 255
+
+#define FONT_NAME                      "font=SLP:style=Roman"
+#define FONT_COLOR                     COLOR_1
+
+#endif
diff --git a/org.tizen.camera-app.png b/org.tizen.camera-app.png
new file mode 100644 (file)
index 0000000..4937f45
Binary files /dev/null and b/org.tizen.camera-app.png differ
diff --git a/org.tizen.camera-app.xml b/org.tizen.camera-app.xml
new file mode 100644 (file)
index 0000000..f6ef370
--- /dev/null
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" package="org.tizen.camera-app" version="0.3.1.58" install-location="internal-only">
+       <label>Camera</label>
+       <author email="h2.seo@samsung.com" href="www.samsung.com">Hyunho Seo</author>
+       <description>Camera Application</description>
+       <ui-application appid="org.tizen.camera-app" exec="/opt/apps/org.tizen.camera-app/bin/camera" nodisplay="false" multiple="false" type="capp" taskmanage="true">
+               <label>Camera</label>
+               <icon>org.tizen.camera-app.png</icon>
+               <label xml:lang="en-us">Camera</label>
+               <label xml:lang="nl-nl">Camera</label>
+               <label xml:lang="de-de">Kamera</label>
+               <label xml:lang="zh-hk">相機</label>
+               <label xml:lang="zh-cn">照相机</label>
+               <label xml:lang="ru-ru">Камера</label>
+               <label xml:lang="zh-tw">照相机</label>
+               <label xml:lang="ja-jp">カメラ</label>
+               <label xml:lang="es-es">Cámara</label>
+               <label xml:lang="el-gr">Κάμερα</label>
+               <label xml:lang="it-it">Fotocamera</label>
+               <label xml:lang="tr-tr">Kamera</label>
+               <label xml:lang="pt-pt">Câmara</label>
+               <label xml:lang="fr-fr">Appareil photo</label>
+               <label xml:lang="ko-kr">카메라</label>
+               <application-service>
+                       <operation name="http://tizen.org/appsvc/operation/create_content" />
+                       <mime name="image/jpg" />
+                       <mime name="video/3gp" />
+               </application-service>
+       </ui-application>
+</manifest>
\ No newline at end of file
diff --git a/org.tizen.camera.jpg b/org.tizen.camera.jpg
new file mode 100644 (file)
index 0000000..a8ebc88
Binary files /dev/null and b/org.tizen.camera.jpg differ
diff --git a/packaging/org.tizen.camera-app.spec b/packaging/org.tizen.camera-app.spec
new file mode 100644 (file)
index 0000000..66bc921
--- /dev/null
@@ -0,0 +1,72 @@
+%define _optdir        /opt
+%define _appdir        %{_optdir}/apps
+
+
+Name:       org.tizen.camera-app
+Summary:    camera application
+Version:    0.3.34
+Release:    1
+Group:      misc
+License:    Flora
+Source0:    %{name}-%{version}.tar.gz
+BuildRequires:  cmake
+BuildRequires:  prelink
+BuildRequires:  gettext-tools
+BuildRequires:  edje-tools
+BuildRequires:  pkgconfig(gconf-2.0)
+BuildRequires:  pkgconfig(utilX)
+BuildRequires:  pkgconfig(dlog)
+BuildRequires:  pkgconfig(vconf)
+BuildRequires:  pkgconfig(devman)
+BuildRequires:  pkgconfig(elementary)
+BuildRequires:  pkgconfig(ui-gadget-1)
+BuildRequires:  pkgconfig(ecore-x)
+BuildRequires:  pkgconfig(ecore)
+BuildRequires:  pkgconfig(ecore-evas)
+BuildRequires:  pkgconfig(ecore-input)
+BuildRequires:  pkgconfig(eina)
+BuildRequires:  pkgconfig(capi-appfw-application)
+BuildRequires:  pkgconfig(capi-content-media-content)
+BuildRequires:  pkgconfig(capi-location-manager)
+BuildRequires:  pkgconfig(capi-media-camera)
+BuildRequires:  pkgconfig(capi-media-image-util)
+BuildRequires:  pkgconfig(capi-media-recorder)
+BuildRequires:  pkgconfig(capi-media-sound-manager)
+BuildRequires:  pkgconfig(capi-media-wav-player)
+BuildRequires:  pkgconfig(capi-system-haptic)
+BuildRequires:  pkgconfig(capi-system-power)
+BuildRequires:  pkgconfig(syspopup-caller)
+
+%description
+Description: org.tizen.camera-app
+
+
+%prep
+%setup -q
+
+%build
+cmake . -DCMAKE_INSTALL_PREFIX=%{_appdir}/org.tizen.camera-app
+
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+execstack -c %{buildroot}%{_appdir}/org.tizen.camera-app/bin/camera
+
+%post
+/usr/bin/aul_service.sh org.tizen.camera-app take_picture record_video
+chown 5000:5000 /opt/apps/org.tizen.camera-app/data/
+chown 5000:5000 /opt/apps/org.tizen.camera-app/data/.camera.ini
+
+%files
+%defattr(-,root,root,-)
+%{_optdir}/share/icons/default/small/org.tizen.camera-app.png
+%{_appdir}/org.tizen.camera-app/res/edje/*
+%{_appdir}/org.tizen.camera-app/res/locale/*/LC_MESSAGES/*
+%{_appdir}/org.tizen.camera-app/res/images/*
+%{_appdir}/org.tizen.camera-app/res/sounds/*
+%{_appdir}/org.tizen.camera-app/bin/camera
+%{_optdir}/share/packages/org.tizen.camera-app.xml
+%{_appdir}/org.tizen.camera-app/data/.camera.ini
+
diff --git a/po/CMakeLists.txt b/po/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0f7b318
--- /dev/null
@@ -0,0 +1,26 @@
+# for i18n
+
+SET(POFILES ar.po bg.po cs.po de.po en.po es.po fr.po hi.po hu.po it.po ko.po lv.po nl.po pl.po ro.po sk.po sr.po th.po uk.po zh_CN.po zh_TW.po
+ca.po da.po el.po en_US.po fi.po he.po hr.po id.po ja.po lt.po ms.po no.po pt.po ru.po sl.po sv.po tr_TR.po vi.po zh_HK.po)
+
+SET(MSGFMT "/usr/bin/msgfmt")
+
+FOREACH(pofile ${POFILES})
+       SET(pofile ${CMAKE_CURRENT_SOURCE_DIR}/${pofile})
+       MESSAGE("PO: ${pofile}")
+       GET_FILENAME_COMPONENT(absPofile ${pofile} ABSOLUTE)
+       GET_FILENAME_COMPONENT(lang ${absPofile} NAME_WE)
+       SET(moFile ${CMAKE_CURRENT_BINARY_DIR}/${lang}.mo)
+       ADD_CUSTOM_COMMAND(
+                       OUTPUT ${moFile}
+                       COMMAND ${MSGFMT} -o ${moFile} ${absPofile}
+                       DEPENDS ${absPofile}
+       )
+       INSTALL(FILES ${moFile}
+                       DESTINATION ${LOCALEDIR}/${lang}/LC_MESSAGES RENAME
+                       ${PROJECT_NAME}-app.mo)
+       SET(moFiles ${moFiles} ${moFile})
+ENDFOREACH(pofile)
+
+MESSAGE(".mo files: ${moFiles}")
+ADD_CUSTOM_TARGET(po ALL DEPENDS ${moFiles})
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644 (file)
index 0000000..9b3a641
--- /dev/null
@@ -0,0 +1,37 @@
+# List of source files containing translatable strings.
+camera.c
+#camera_utils.c
+#cam_mm.c
+#cam_app.c
+#cam_sound.c
+#cam_debug.c
+#cam_config.c
+#cam_px.c
+#cam_file.c
+#cam_smile.c
+#cam_ta.c
+#edc-callback/cam_common_edc_callback.c
+edc-callback/cam_toolbar_edc_callback.c
+#edc-callback/cam_shot_mode_edc_callback.c
+#edc-callback/cam_scene_edc_callback.c
+#edc-callback/cam_settings_edc_callback.c
+#edc-callback/cam_flash_edc_callback.c
+#edc-callback/cam_focus_edc_callback.c
+#edc-callback/cam_brightness_edc_callback.c
+#edc-callback/cam_indicator_edc_callback.c
+#edc-callback/cam_zoom_edc_callback.c
+#edc-callback/cam_settings_resolution_callback.c
+#edc-callback/cam_settings_timer_callback.c
+#edc-callback/cam_settings_wb_callback.c
+#edc-callback/cam_settings_effects_callback.c
+#edc-callback/cam_settings_adjustment_callback.c
+#edc-callback/cam_settings_metering_callback.c
+#edc-callback/cam_settings_sound_callback.c
+#edc-callback/cam_settings_quality_callback.c
+#edc-callback/cam_settings_storage_callback.c
+#edc-callback/cam_settings_iso_callback.c
+#edc-callback/cam_mosaic_callback.c
+#edc-callback/cam_frame_callback.c
+#edc-callback/cam_recording_edc_callback.c
+#edc-callback/cam_conti_review_callback.c
+
diff --git a/po/ar.po b/po/ar.po
new file mode 100644 (file)
index 0000000..06273ae
--- /dev/null
+++ b/po/ar.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 ثوان"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "ثانيتان"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 ثوان"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "ضد الاهتزاز"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "التسجيل الصوتي"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "تلقائي"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "توضيح تلقائي"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "الجمال"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "أسود و أبيض"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "أزرق"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "تركيز على المنتصف"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "غائم"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "ضوء النهار"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "كشف الوجه"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "فشل في إنشاء صور بانورامية. حاول لاحقا"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "فلاش"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "مشع"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "تركيز"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "أفق"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "جودة الصورة"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "أفقي"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "ماكرو"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "مصفوفة"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "القياس"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "رسالة وسائط"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "أجهزتي"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "نيجاتيف"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "لا شيء"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "إيقاف تشغيل"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "مفعل"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "الرجاء الانتظار أثناء إنشاء بانوراما"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "أحمر"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "شاشة المراجعة"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "الغسق/الفجر"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "صورة شخصية"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "بني داكن"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "ظل"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "بانوراما"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "فردي"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "الحركة البطيئة"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "نقطة"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "مكان التخزين"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "يتعذر الحفظ. الذاكرة غير كافية"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "جودة الفيديو"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "براق"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "لقطة الحركة"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "قديم"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "لقطة جمالية"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "قيمة الإضاءة"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "ليلي"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "المزيد"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "بانوراما"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "عرض سريع"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "نمط التصوير"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "الحركة البطيئة"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "وضع المستخدم"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "توازن اللون الأبيض"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "خطأ في الالتقاط"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "تجاوز وقت الالتقاط. البدء مرة أخرى"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "إدراج بطاقة الذاكرة لاستخدام الكاميرا"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "يتعذر بدء تشغيل الكاميرا"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "يتعذر بدء الكاميرا أثناء المكالمة"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "تمكين استخدام الأقمار الصناعية لنظام GPS‬ في الإعدادات لاستخدام علامة GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "الخروج من الكاميرا‬؟"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "خطأ معاينة"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "قم بإغلاق الكاميرا خلال %d ثوان"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "تفعيل خدمة تحديد المواقع‬ في الإعدادات لاستخدام علامة GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "الصوت"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "خطوط الإرشاد"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "اضغط على الغالق"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "حرك الكاميرا ببطء في اتجاه السهم"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "القائمة غير مدعومة"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "علامة GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "سياسة الأمان تقيد استخدام الكاميرا"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "تم الحفظ"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "صورة شخصية"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "صورة لشخص"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "أفقي"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "ليلي"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "ألعاب رياضية"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "حفلة/في الداخل"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "شاطئ/ثلج"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "الغروب"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "الفجر"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "ألعاب نارية"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "نص"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "ضوء الشموع"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "الضوء الخلفي"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "توضيح تلقائي"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "كشف الوجه"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "نمط التسجيل"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "نمط المشهد"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "نمط توضيح الصورة"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "الرؤية في الخارج"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "المؤقت"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "المؤثرات"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "تعديل الاختصارات"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "تباين تلقائي"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "إرجاع"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "إرجاع الضبط؟"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "الضبط"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "لقطة الإبتسامة"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "صور متلاحقة"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "عادي"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "حد الرسالة"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "بطاقة الذاكرة"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "شاطئ/ثلج"
+
diff --git a/po/backup_en_US.po b/po/backup_en_US.po
new file mode 100644 (file)
index 0000000..b41bed7
--- /dev/null
@@ -0,0 +1,521 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-02-23 11:01+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: camera.c:35
+msgid "IDS_COM_BODY_CAMERA"
+msgstr "Camera"
+
+#: camera.c:36
+msgid "Click to exit"
+msgstr "Click to exit"
+
+#: camera.c:224
+msgid "IDS_COM_BODY_LOW_BATTERY"
+msgstr "Low battery"
+
+#: cam_app.c:4904
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Unable to start Camera"
+
+#: cam_app.c:4906
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Capture time exceeded.<br>Start again"
+
+#: cam_app.c:7315
+msgid "IDS_COM_SK_OK"
+msgstr "OK"
+
+#: cam_app.c:7337
+msgid "IDS_COM_SK_YES"
+msgstr "Yes"
+
+#: cam_app.c:7337
+msgid "IDS_COM_SK_NO"
+msgstr "No"
+
+#: cam_app.c:7973 edc-callback/cam_settings_edc_callback.c:1818
+#: edc-callback/cam_settings_storage_callback.c:258
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "My device"
+
+#: cam_app.c:8055
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr ""
+"Please wait while creating\n"
+" panorama"
+
+#: edc-callback/cam_toolbar_edc_callback.c:437
+msgid "IDS_mode_change"
+msgstr "mode change"
+
+#: edc-callback/cam_toolbar_edc_callback.c:440
+msgid "IDS_shot_mode"
+msgstr "shot mode"
+
+#: edc-callback/cam_toolbar_edc_callback.c:443
+msgid "IDS_scene_mode"
+msgstr "scene_mode"
+
+#: edc-callback/cam_toolbar_edc_callback.c:446
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Settings"
+
+#: edc-callback/cam_toolbar_edc_callback.c:449
+msgid "IDS_CAM_BODY_BACK_ABB"
+msgstr "Back"
+
+#: edc-callback/cam_toolbar_edc_callback.c:452
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+#: edc-callback/cam_toolbar_edc_callback.c:455
+#: edc-callback/cam_brightness_edc_callback.c:346
+msgid "IDS_CAM_BODY_BRIGHTNESS"
+msgstr "Brightness"
+
+#: edc-callback/cam_toolbar_edc_callback.c:458
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Quickview"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:679
+#: edc-callback/cam_settings_edc_callback.c:114
+#: edc-callback/cam_settings_edc_callback.c:137
+#: edc-callback/cam_settings_edc_callback.c:1502
+#: edc-callback/cam_settings_edc_callback.c:1653
+#: edc-callback/cam_settings_effects_callback.c:592
+#: edc-callback/cam_settings_metering_callback.c:30
+#: edc-callback/cam_settings_metering_callback.c:262
+#: edc-callback/cam_settings_quality_callback.c:277
+msgid "IDS_CAM_BODY_NORMAL"
+msgstr "Normal"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:680
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:694
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Single"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:695
+msgid "IDS_CAM_BODY_CONTINUOUS"
+msgstr "Continuous"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:696
+msgid "IDS_CAM_BODY_MOSAIC"
+msgstr "Mosaic"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:697
+msgid "IDS_CAM_BODY_FRAME"
+msgstr "Frame"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:698
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:699
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Self-shot"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:700
+msgid "IDS_CAM_BODY_SMILE"
+msgstr "Smile"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:701
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slow motion"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:702
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Beauty shot"
+
+#: edc-callback/cam_shot_mode_edc_callback.c:703
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+#: edc-callback/cam_scene_edc_callback.c:109
+#: edc-callback/cam_scene_edc_callback.c:647
+msgid "IDS_CAM_BODY_NONE"
+msgstr "None"
+
+#: edc-callback/cam_scene_edc_callback.c:110
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "User mode"
+
+#: edc-callback/cam_scene_edc_callback.c:116
+#: edc-callback/cam_scene_edc_callback.c:648
+msgid "IDS_CAM_BODY_SCENEMODE_FALL_COLOR"
+msgstr "Fall colour"
+
+#: edc-callback/cam_scene_edc_callback.c:117
+msgid "IDS_Takes_pictures_in_fall"
+msgstr "Take pictures in fall"
+
+#: edc-callback/cam_scene_edc_callback.c:123
+#: edc-callback/cam_scene_edc_callback.c:649
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Dusk/Dawn"
+
+#: edc-callback/cam_scene_edc_callback.c:124
+msgid "IDS_CAM_BODY_TAKES_PICTURES_OF_SUNSETS_OR_DAWN"
+msgstr ""
+"Takes pictures of sunsets\n"
+" or dawn"
+
+#: edc-callback/cam_scene_edc_callback.c:130
+#: edc-callback/cam_scene_edc_callback.c:650
+msgid "IDS_CAM_BODY_CANDLELIGHT"
+msgstr "Candlelight"
+
+#: edc-callback/cam_scene_edc_callback.c:131
+msgid "IDS_CAM_BODY_HELPTEXT_SCENE_MODE_CANDLE_LIGHT_MSG"
+msgstr "Scenes under candlelight"
+
+#: edc-callback/cam_scene_edc_callback.c:137
+#: edc-callback/cam_scene_edc_callback.c:651
+msgid "IDS_CAM_OPT_BEACH_SNOW_ABB"
+msgstr "Beach snow"
+
+#: edc-callback/cam_scene_edc_callback.c:138
+msgid "IDS_CAM_BODY_TAKES_OCEAN_LAKE_BEACH_AND_SNOWSCAPE"
+msgstr ""
+"Takes ocean, lake, beach\n"
+" and snowscape"
+
+#: edc-callback/cam_scene_edc_callback.c:144
+#: edc-callback/cam_scene_edc_callback.c:652
+msgid "IDS_CAM_BODY_AGAINST_LIGHT"
+msgstr "Against light"
+
+#: edc-callback/cam_scene_edc_callback.c:145
+msgid "IDS_CAM_BODY_TAKES_PORTRAIT_WITHOUT_SHADOWS_CAUSED_BY_BACKLIGHT"
+msgstr ""
+"Takes portrait without\n"
+" shadows caused by backlight"
+
+#: edc-callback/cam_scene_edc_callback.c:151
+#: edc-callback/cam_scene_edc_callback.c:653
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landscape"
+
+#: edc-callback/cam_scene_edc_callback.c:152
+msgid "IDS_CAM_BODY_TAKES_PICTURE_OF_DISTANT_SCENERY"
+msgstr "Takes picture of distant scenery"
+
+#: edc-callback/cam_scene_edc_callback.c:158
+#: edc-callback/cam_scene_edc_callback.c:654
+msgid "IDS_CAM_BODY_NIGHT"
+msgstr "Night"
+
+#: edc-callback/cam_scene_edc_callback.c:159
+msgid "IDS_CAM_BODY_TAKES_STIIL_IMAGE_AT_NIGHT_OR_IN_OTHER_DARK_CONDITIONS"
+msgstr "Takes still-image at night or in other dark conditions"
+
+#: edc-callback/cam_settings_edc_callback.c:86
+#: edc-callback/cam_settings_edc_callback.c:103
+#: edc-callback/cam_settings_edc_callback.c:126
+#: edc-callback/cam_flash_edc_callback.c:308
+#: edc-callback/cam_settings_wb_callback.c:593
+#: edc-callback/cam_settings_iso_callback.c:299
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+#: edc-callback/cam_settings_edc_callback.c:87
+#: edc-callback/cam_focus_edc_callback.c:255
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+#: edc-callback/cam_settings_edc_callback.c:88
+#: edc-callback/cam_focus_edc_callback.c:256
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Face detection"
+
+#: edc-callback/cam_settings_edc_callback.c:95
+#: edc-callback/cam_settings_edc_callback.c:1790
+#: edc-callback/cam_flash_edc_callback.c:306
+#: edc-callback/cam_settings_timer_callback.c:273
+#: edc-callback/cam_settings_sound_callback.c:287
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Off"
+
+#: edc-callback/cam_settings_edc_callback.c:96
+#: edc-callback/cam_settings_timer_callback.c:274
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec"
+
+#: edc-callback/cam_settings_edc_callback.c:97
+#: edc-callback/cam_settings_timer_callback.c:275
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec"
+
+#: edc-callback/cam_settings_edc_callback.c:98
+#: edc-callback/cam_settings_timer_callback.c:276
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec"
+
+#: edc-callback/cam_settings_edc_callback.c:104
+#: edc-callback/cam_settings_wb_callback.c:594
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Daylight"
+
+#: edc-callback/cam_settings_edc_callback.c:105
+#: edc-callback/cam_settings_wb_callback.c:595
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Cloudy"
+
+#: edc-callback/cam_settings_edc_callback.c:106
+#: edc-callback/cam_settings_wb_callback.c:596
+msgid "IDS_Tungsten"
+msgstr "Tungsten"
+
+#: edc-callback/cam_settings_edc_callback.c:107
+#: edc-callback/cam_settings_wb_callback.c:597
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+#: edc-callback/cam_settings_edc_callback.c:108
+#: edc-callback/cam_settings_wb_callback.c:598
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Shade"
+
+#: edc-callback/cam_settings_edc_callback.c:109
+#: edc-callback/cam_settings_wb_callback.c:599
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizon"
+
+#: edc-callback/cam_settings_edc_callback.c:115
+#: edc-callback/cam_settings_effects_callback.c:593
+msgid "IDS_CAM_BODY_ACCENT"
+msgstr "Accent"
+
+#: edc-callback/cam_settings_edc_callback.c:116
+#: edc-callback/cam_settings_effects_callback.c:594
+msgid "IDS_CAM_BODY_SWAP"
+msgstr "Swap"
+
+#: edc-callback/cam_settings_edc_callback.c:117
+#: edc-callback/cam_settings_effects_callback.c:595
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negative"
+
+#: edc-callback/cam_settings_edc_callback.c:118
+#: edc-callback/cam_settings_effects_callback.c:596
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Black and white"
+
+#: edc-callback/cam_settings_edc_callback.c:119
+#: edc-callback/cam_settings_effects_callback.c:597
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+#: edc-callback/cam_settings_edc_callback.c:120
+#: edc-callback/cam_settings_effects_callback.c:598
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blue"
+
+#: edc-callback/cam_settings_edc_callback.c:121
+#: edc-callback/cam_settings_effects_callback.c:599
+msgid "IDS_CAM_BODY_RED"
+msgstr "Red"
+
+#: edc-callback/cam_settings_edc_callback.c:138
+#: edc-callback/cam_settings_metering_callback.c:31
+#: edc-callback/cam_settings_metering_callback.c:263
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+#: edc-callback/cam_settings_edc_callback.c:139
+#: edc-callback/cam_settings_metering_callback.c:32
+#: edc-callback/cam_settings_metering_callback.c:264
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centre-weighted"
+
+#: edc-callback/cam_settings_edc_callback.c:991
+#: edc-callback/cam_settings_edc_callback.c:993
+#: edc-callback/cam_settings_edc_callback.c:1036
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Image quality"
+
+#: edc-callback/cam_settings_edc_callback.c:1007
+#: edc-callback/cam_settings_edc_callback.c:1009
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video quality"
+
+#: edc-callback/cam_settings_edc_callback.c:1027
+msgid "IDS_CAM_BODY_DETAILS_RESOLUTION"
+msgstr "Resolution"
+
+#: edc-callback/cam_settings_edc_callback.c:1028
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+#: edc-callback/cam_settings_edc_callback.c:1029
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "White balance"
+
+#: edc-callback/cam_settings_edc_callback.c:1030
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focus"
+
+#: edc-callback/cam_settings_edc_callback.c:1031
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effects"
+
+#: edc-callback/cam_settings_edc_callback.c:1032
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+#: edc-callback/cam_settings_edc_callback.c:1033
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Metering"
+
+#: edc-callback/cam_settings_edc_callback.c:1034
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Shake"
+
+#: edc-callback/cam_settings_edc_callback.c:1035
+msgid "IDS_CAM_BODY_WIDE_DYNAMIC_RANGE"
+msgstr "Wide dynamic range"
+
+#: edc-callback/cam_settings_edc_callback.c:1037
+msgid "IDS_Adjusting"
+msgstr "Adjusting"
+
+#: edc-callback/cam_settings_edc_callback.c:1499
+#: edc-callback/cam_settings_edc_callback.c:1650
+#: edc-callback/cam_settings_quality_callback.c:276
+msgid "IDS_CAM_BODY_HIGH"
+msgstr "High"
+
+#: edc-callback/cam_settings_edc_callback.c:1505
+#: edc-callback/cam_settings_edc_callback.c:1656
+#: edc-callback/cam_settings_quality_callback.c:278
+msgid "IDS_CAM_BODY_ECONOMY"
+msgstr "Economy"
+
+#: edc-callback/cam_settings_edc_callback.c:1690
+#: edc-callback/cam_settings_edc_callback.c:1693
+#: edc-callback/cam_settings_edc_callback.c:1849
+msgid "IDS_CAM_BODY_GPS_CONNECTION"
+msgstr "GPS connection"
+
+#: edc-callback/cam_settings_edc_callback.c:1703
+#: edc-callback/cam_settings_edc_callback.c:1706
+#: edc-callback/cam_settings_edc_callback.c:1848
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Review screen"
+
+#: edc-callback/cam_settings_edc_callback.c:1720
+#: edc-callback/cam_settings_edc_callback.c:1723
+#: edc-callback/cam_settings_edc_callback.c:1733
+#: edc-callback/cam_settings_edc_callback.c:1736
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Audio recording"
+
+#: edc-callback/cam_settings_edc_callback.c:1766
+#: edc-callback/cam_settings_edc_callback.c:1769
+#: edc-callback/cam_settings_edc_callback.c:1850
+msgid "IDS_CAM_BODY_SETTINGS_SHUTTER_SOUND"
+msgstr "Shutter sound"
+
+#: edc-callback/cam_settings_edc_callback.c:1779
+#: edc-callback/cam_settings_edc_callback.c:1782
+msgid "IDS_CAM_BODY_RECORDING_SOUND"
+msgstr "Recording sound"
+
+#: edc-callback/cam_settings_edc_callback.c:1793
+#: edc-callback/cam_settings_sound_callback.c:288
+msgid "IDS_CAM_BODY_SOUND_1"
+msgstr "Sound 1"
+
+#: edc-callback/cam_settings_edc_callback.c:1796
+#: edc-callback/cam_settings_sound_callback.c:289
+msgid "IDS_CAM_BODY_SOUND_2"
+msgstr "Sound 2"
+
+#: edc-callback/cam_settings_edc_callback.c:1799
+#: edc-callback/cam_settings_sound_callback.c:290
+msgid "IDS_CAM_BODY_SOUND_3"
+msgstr "Sound 3"
+
+#: edc-callback/cam_settings_edc_callback.c:1821
+#: edc-callback/cam_settings_storage_callback.c:259
+msgid "IDS_CAM_BODY_MEMORY_CARD"
+msgstr "Memory card"
+
+#: edc-callback/cam_settings_edc_callback.c:1847
+msgid "IDS_CAM_BODY_GUIDELINES"
+msgstr "Guidelines"
+
+#: edc-callback/cam_settings_edc_callback.c:1851
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Storage"
+
+#: edc-callback/cam_flash_edc_callback.c:307
+msgid "IDS_CAM_BODY_ON"
+msgstr "On"
+
+#: edc-callback/cam_focus_edc_callback.c:254
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Auto focus"
+
+#: edc-callback/cam_settings_adjustment_callback.c:269
+msgid "IDS_CAM_BODY_CONTRAST"
+msgstr "Contrast"
+
+#: edc-callback/cam_settings_adjustment_callback.c:270
+msgid "IDS_CAM_BODY_SATURATION"
+msgstr "Saturation"
+
+#: edc-callback/cam_settings_adjustment_callback.c:271
+msgid "IDS_CAM_BODY_SHARPNESS"
+msgstr "Sharpness"
+
+msgid "IDS_CAM_BODY_BLINK_DETECTION"
+msgstr "Blink Detection"
+
+msgid "IDS_CAM_POP_NOT_ENOUGH_MEMORY"
+msgstr "Not enough memory"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Failed to build panoramic images.\n"
+" Try later"
+
+msgid "IDS_CAM_POP_REMOVE_MMC_RECORDING"
+msgstr "Memory card removed.<br>The data is not saved"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action shot"
+
+msgid "IDS_CAM_POP_MEMORY_CARD_REMOVED"
+msgstr "Memory card removed"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Unable to save. Not enough memory"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS"
+msgstr "Reset settings"
+
+msgid "IDS_CAM_POP_RESET_CAMERA_SETTINGS"
+msgstr "Reset camera settings?"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Capture error"
+
+
+
diff --git a/po/bg.po b/po/bg.po
new file mode 100644 (file)
index 0000000..93a87b7
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 сек"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 сек"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 сек"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Система срещу разклащане"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Аудио запис"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Авто"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Красота"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Черно и бяло"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Син"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Централно - претеглено"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Облачно"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Дневна светлина"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Разпознаване на лице"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Неуспешно изграждане на панорамни изображения. Опитайте по-късно"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Светкавица"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Флуоресцентен"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Фокус"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Хоризонт"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Качество на изображ."
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Пейзажно"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Макрос"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Матрица"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Измерване"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Моето устройство"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Негатив"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Нищо"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Изключено"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Моля, изчакайте да се създаде панорама"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Червен"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Екран за предв. преглед"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Здрач/зазоряване"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Сепия"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Светлосянка"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Единична"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Бавно движение"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Зона"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Устройство за съхранение на данни"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Не може да се запамети Няма достатъчно памет"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Видео качество"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Изкуствено осветление"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Екшън снимка"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Реколта"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Красива снимка"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Стойност на експонацията"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Нощ"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Още"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Бърз преглед"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Режим на снимане"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Бавно движение"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Потребителски режим"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Баланс на бялото"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Грешка при заснемане"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Превишена продължителност на снимане. Започнете отново"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Поставете карта с памет, за да използвате камерата"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Камерата не може да се стартира"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Не може да пусне камерата\nпо време на разговор"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Активирайте Използване на GPS сателити в Настройки, за да използвате GPS етикет"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Излизане от Камера?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Грешка при преглед"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Камерата се затваря след %d секунди"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Активирайте услугата за местоположение в Настройки, за да използвате GPS етикет"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Направляващи линии"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Натиснете затвора"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Движете бавно камерата по посока на стрелката"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Менюто не е поддържано"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS таг"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Правилата за защита ограничават използването на камерата"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Записан"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Портрет"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Пейзажно"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Нощ"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Спорт"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Парти/На закрито"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Плаж/Сняг"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Залез"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Зазоряване"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Фойерверки"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Текст"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "На свещи"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Фонова светлина"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Разпознаване на лице"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Режим на запис"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Режим Сцени"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Режим фокус"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Видимост на открито"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Таймер"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Ефекти"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Редактиране на бързи клавиши"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Авто-контраст"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Нyлиране"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Нyлиране на настройките?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Усмивка"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Бързо снимане"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Нормален"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Ограничение за съобщение"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Карта с памет"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Плаж/Сняг"
+
diff --git a/po/ca.po b/po/ca.po
new file mode 100644 (file)
index 0000000..5663fa5
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 seg"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 seg"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 seg"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Vibració"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Gravació d'àudio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Enfocament automàtic"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Bellesa"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Blanc i negre"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Enfocat"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Ennuvolat"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Llum diürna"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detecció de cares"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Error en construir imatges panoràmiques. Intenti-ho més tard"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flaix"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Enfocar"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horitzó"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Qualitat imatge"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Horitzontal"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriu"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mesurament"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "El meu dispositiu"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatiu"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Cap"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Desactivat"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Activat"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Esperi mentre es crea la imatge panoràmica"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Vermell"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Pantalla de revisió"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Vespre/Alba"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoretrat"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sèpia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Ombra"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Senzill"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Càmera lenta"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punt"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Emmagatzematge"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "No es pot desar. No hi ha prou memòria"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Qualitat de vídeo"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescent"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Foto d'acció"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Antic"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Captura embellida"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valor d'exposició"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nit"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Més"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Vista ràpida"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Mode disparament"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Càmera lenta"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Mode d'usuari"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balanç de blancs"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Error en capturar"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "S'ha excedit el temps de captura. Torni a començar"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Introdueixi la targeta de memòria per utilitzar la Càmera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "No es pot iniciar la Càmera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "No es pot iniciar la càmera durant la trucada"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Habiliti l'ús de satèl·lits GPS a Ajustaments per utilitzar l'etiqueta GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Sortir de la càmera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Error de previsualització"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Tancar càmera en %d segons"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Habiliti el servei d'ubicació a Ajustaments per utilitzar l'etiqueta GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "So"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Instruccions"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Premi l'obturador"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Mogui al càmera suaument en la direcció de la fletxa"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menú no compatible"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Etiqueta GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "La política de seguretat restringeix l'ús de la càmera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Desat"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoretrat"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Vertical"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Horitzontal"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nit"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Esports"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Festa/Interior"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Platja/Neu"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Posta de sol"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Albada"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Foc d'artifici"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Espelmes"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Retroil·luminació"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Enfocament automàtic"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detecció de cares"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Mode de gravació"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Mode escena"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Mode d'enfocament"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilitat exterior"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Temporitzador"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efectes"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Editar accessos directes"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contrast automàtic"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Restablir"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Restablir ajustaments?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Ajustaments"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Disparament somriure"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Ràfega"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Límit de missatges"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Targeta de memòria"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Platja/Neu"
+
diff --git a/po/camera.pot b/po/camera.pot
new file mode 100644 (file)
index 0000000..bc88f69
--- /dev/null
@@ -0,0 +1,37 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2010-01-30 12:29+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: camera.c:35
+msgid "camera"
+msgstr ""
+
+#: camera.c:36
+msgid "Click to exit"
+msgstr ""
+
+#: camera.c:102 camera.c:333
+msgid "Ok"
+msgstr ""
+
+#: camera.c:177
+msgid "FONT_NAME"
+msgstr ""
+
+#: camera.c:332
+msgid "LOW BATTERY"
+msgstr ""
diff --git a/po/cs.po b/po/cs.po
new file mode 100644 (file)
index 0000000..1189dc5
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 s"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 s"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 s"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilizace obrazu"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Nahrávání zvuku"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automaticky"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automatické zaostření"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Krása"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Černobílý"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Ve středu"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Oblačno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Denní světlo"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Rozpoznání obličeje"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nepodařilo se vytvořit panoramatické obrázky. Opakujte akci později"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Blesk"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Zářivka"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Zaostření"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kvalita obrázku"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Na šířku"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matice"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Měření"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Toto zařízení"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativní"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Žádný"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Vypnout"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Zapnout"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Počkejte při fotografování panoramatického snímku"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Červená"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Kontrolní obrazovka"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Soumrak/úsvit"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportrét"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sépie"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Stín"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Jeden snímek"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Pomalý pohyb"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Bod"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Úložiště"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nelze uložit. Nedostatek paměti"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kvalita videa"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Žhnoucí"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akční snímek"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Krása"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Hodnota expozice"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noc"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Další"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Rychlý náhled"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Režim fotografování"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Pomalý pohyb"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Uživatelský"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Vyvážení bílé"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Při fotografování došlo k chybě"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Byla překročena doba fotografování. Začněte znovu"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Chcete-li použít fotoaparát, vložte paměťovou kartu"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Fotoaparát nelze spustit"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Během hovoru nelze\nspustit fotoaparát"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Chcete-li použít značku GPS, zapněte funkci Použít satelity GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Ukončit fotoaparát?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Chyba náhledu"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Fotoaparát se zavře za %d sekund"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Chcete-li použít značku GPS, zapněte v Nastavení službu určování polohy"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Vodící linky"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Stiskněte spoušť"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Pomalu pohybujte fotoaparátem ve směru šipky"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu není podporováno"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Značka GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Zásady zabezpečení omezují použití fotoaparátu"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Uloženo"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportrét"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Na výšku"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Na šířku"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noc"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Večírek/uvnitř"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pláž/sníh"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Západ slunce"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Úsvit"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Ohňostroj"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Světlo svíčky"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Podsvícení"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automatické zaostření"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Rozpoznání obličeje"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Režim nahrávání"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Režim Krajina"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Režim zaostření"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Viditelnost venku"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Samospoušť"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekty"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Upravit zástupce"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatický kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Vynulovat"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Vynulovat nastavení?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Nastavení"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Úsměv"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Sériové snímání"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normální"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limit zpráv"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Paměťová karta"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pláž/sníh"
+
diff --git a/po/da.po b/po/da.po
new file mode 100644 (file)
index 0000000..13fd9b7
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-ryst"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Lydoptagelse"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Skønhed"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Sort-hvid"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centervægtet"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Skyet"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dagslys"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Ansigtsdetektering"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Kunne ikke opbygge panoramabilleder. Prøv senere"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Kameralys"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescerende"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horisont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Billedkvalitet"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landskab"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Måling"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "Mms"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Min enhed"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Fra"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Til"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Vent, mens der oprettes et panoramabillede"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rød"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Gennemse skærm"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Skumring/daggry"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Selvportræt"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Skygge"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Enkelt"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punkt"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Kunne ikke gemme. Ikke tilstrækkelig hukommelse"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videokvalitet"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Hvidglødende"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Handlingsbillede"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Klassisk"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Forskønnet optagelse"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Eksponeringsværdi"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nat"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Mere"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Hurtigvisning"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Optagelsestilstand"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Brugertilstand"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Hvidbalance"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Optagefejl"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Optagetid overskredet. Start igen"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Isæt hukommelseskort for at bruge kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kan ikke starte kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Kan ikke starte kamera\nunder opkald"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Slå Brug GPS-satellitter til i Indstillinger for at bruge GPS-tag"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Afslut kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Visningsfejl"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Luk kamera om %d sekunder"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktivér placeringstjeneste under Indstillinger for at bruge GPS-tag"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Lyd"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Hjælpelinjer"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Tryk på Lukker"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Bevæg kameraet langtsomt i pilens retning"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu understøttes ikke"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Sikkerhedspolitik begrænser brug af kamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Gemt"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Selvportræt"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portræt"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landskab"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nat"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Fest/indendørs"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/sne"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Solnedgang"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Daggry"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fyrværkeri"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Stearinlys"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Baggrundslys"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Ansigtsdetektering"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Optagelsestilstand"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scenetilstand"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokustilstand"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Udendørs synlighed"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Selvudløser"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effekter"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Rediger genveje"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatisk kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Nulstil"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Nulstil indstillinger?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Indstillinger"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smilbillede"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Burst-billede"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Meddelelsesgrænse"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Hukommelseskort"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/sne"
+
diff --git a/po/de.po b/po/de.po
new file mode 100644 (file)
index 0000000..2baacd6
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 Sek."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 Sek."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 Sek."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Bildstabilisator"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Audioaufnahme"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beauty"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Schwarz/Weiß"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blau"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Mittenbetont"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Bewölkt"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Tageslicht"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Gesichtserkennung"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Panoramabild konnte nicht erstellt werden. Versuchen Sie es später erneut"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Fotolicht"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluoreszierend"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Bildqualität"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landschaft"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Messung"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mein Gerät"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Keine"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Aus"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Ein"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Panorama wird erstellt, bitte warten"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rot"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Bildschirm überprüfen"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Abenddämmerung/Morgendämmerung"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Selbstporträt"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Schatten"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Einzeln"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Zeitlupe"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Speicher"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Speichern nicht möglich. Nicht genügend Speicher"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videoqualität"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Glühlampenlicht"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Actionaufnahme"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Klassisch"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Beautyaufnahme"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Belichtungswert"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nacht"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Optionen"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Schnellansicht"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Aufnahmemodus"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Zeitlupe"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Benutzermodus"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Weißabgl."
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Aufnahmefehler"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Aufnahmezeit überschritten. Erneut starten"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Speicherkarte zur Verwendung der Kamera einlegen"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kamera kann nicht gestartet werden"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Starten der Kamera während\nAnruf nicht möglich"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Verwendung von GPS-Satelliten in Einstellungen aktivieren, um GPS-Tag zu verwenden."
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Kamera schließen?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Vorschaufehler"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Kamera in %d Sekunden schließen"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktivieren Sie die Verwendung des Standortdiensts in “Einstellungen”, um GPS-Tag zu verwenden."
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Ton"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Hilfslinien"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Auslöser drücken"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Bewegen Sie die Kamera langsam in Pfeilrichtung."
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menü nicht unterstützt"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-Tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Sicherheitsrichtlinie schränkt die Verwendung der Kamera ein."
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Gespeichert"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Selbstportr."
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrait"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landschaft"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nacht"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Party/Innen"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/Schnee"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Sonnenuntergang"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Morgendämmerung"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Feuerwerk"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Kerzenlicht"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Gegenlicht"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Gesichtserkennung"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Aufnahmemodus"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Szenen-Modus"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusmodus"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Sichtbarkeit im Freien"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Selbstauslöser"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effekte"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Schnellzugriffe bearbeiten"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatischer Kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Zurücksetzen"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Einstellungen zurücksetzen?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Einstellungen"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smile"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Serienbildaufnahme"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Nachrichtenbeschränkung"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Speicherkarte"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/Schnee"
+
diff --git a/po/el.po b/po/el.po
new file mode 100644 (file)
index 0000000..425b20e
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 δευτ."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 δευτ."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 δευτ."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Shake"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Εγγραφή ήχου"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Αυτόματο"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Αυτόματη εστίαση"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Ομορφιά"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Ασπρόμαυρο"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Μπλε"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Με εστίαση στο κέντρο"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Συννεφιά"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Φως ημέρας"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Ανίχνευση προσώπου"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Αποτυχία δημιουργίας πανοραμικών εικόνων. Δοκιμάστε αργότερα"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Φλας"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Φθορισμού"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Εστίαση"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Ορίζοντας"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Ποιότητα εικόνας"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Οριζόντια"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Μέτρηση"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Η συσκευή μου"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Αρνητικό"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Κανένα"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Ανενεργό"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Ενεργό"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Περιμένετε μέχρι να δημιουργηθεί το πανόραμα"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Κόκκινο"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Οθόνη προβολής"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Σούρουπο/Αυγή"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Αυτοφωτογράφηση"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Σέπια"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Σκίαση"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Πανόραμα"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Μονή"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Αργή ταχύτητα"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Σημείο"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Αποθήκευση"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Δεν είναι δυνατή η αποθήκευση. Ανεπαρκής μνήμη"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Ποιότητα βίντεο"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Πυρακτώσεως"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Λήψη ενέργειας"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Για ομορφότερη λήψη"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Τιμή έκθεσης"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Νύχτα"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Περισσότερα"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Πανόραμα"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Γρήγορη προβολή"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Λειτουργία λήψης"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Αργή ταχύτητα"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Λειτουργία χρήστη"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Εξισορρόπ.λευκού"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Σφάλμα καταγραφής"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Έγινε υπέρβαση του μέγιστου χρόνου καταγραφής. Έναρξη ξανά"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Εισάγετε κάρτα μνήμης για να χρησιμοποιήσετε την Κάμερα"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Δεν είναι δυνατή η έναρξη της Κάμερας"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Δεν είναι δυνατή η εκκίνηση κάμερας\nκατά την κλήση"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Για να χρησιμοποιήσετε την ετικέτα GPS, ενεργοπ. την επιλογή “Χρήση δορυφόρων GPS” από τις Ρυθμίσεις"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Έξοδος από κάμερα;"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Σφάλμα προεπισκόπισης"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Κλείσιμο κάμερας σε %d δευτερόλεπτα"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Για τη χρήση της ετικέτας GPS, ενεργοποιήστε την υπηρεσία εντοπισμού θέσης από τις Ρυθμίσεις"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Ήχος"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Οδηγίες"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Πατήστε το διάφραγμα"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Μετακινήστε την κάμερα αργά προς την κατεύθυνση του βέλους"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Το μενού δεν υποστηρίζεται"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Ετικέτα GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Η πολιτική ασφαλείας περιορίζει τη χρήση της κάμερας"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Αποθηκεύτηκε"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Αυτοφωτογρ."
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Πορτραίτο"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Οριζόντια"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Νύχτα"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Αθλητικά"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Πάρτι/Εσωτερικά"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Παραλία/Χιόνι"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Ηλιοβασίλεμα"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Αυγή"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Πυροτέχνημα"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Κείμενο"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Φως κεριού"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Φωτισμός"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Αυτόματη εστίαση"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Ανίχνευση προσώπου"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Λειτουργία εγγραφής"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Λειτουργία σκηνών"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Λειτουργία εστίασης"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Ορατότητα εξωτερικού χώρου"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Χρονομετρητής"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Εφέ"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Επεξεργασία συντομεύσεων"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Αυτόματη αντίθεση"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Επαναφορά"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Επαναφορά ρυθμίσεων;"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Ρυθμίσεις"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Λήψη χαμόγελου"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Λειτ. συνεχούς λήψης"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Κανονικό"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Όριο μηνυμάτων"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Κάρτα μνήμης"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Παραλία/Χιόνι"
+
diff --git a/po/en.po b/po/en.po
new file mode 100644 (file)
index 0000000..57bce2d
--- /dev/null
+++ b/po/en.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 secs"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 secs"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 secs"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-shake"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Audio recording"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beauty"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Black and white"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centre-weighted"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Cloudy"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Daylight"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Face detection"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Failed to build panoramic images. Try later"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizon"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Image quality"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Metering"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negative"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "None"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Please wait while creating panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Red"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Review screen"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Dusk/Dawn"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Self-portrait"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Shade"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Single"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Storage"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Unable to save. Not enough memory"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video quality"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescent"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action shot"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Beauty shot"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Exposure value"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Night"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "More"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Quickview"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Shooting mode"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "User mode"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "White balance"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Capture error"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Capture time exceeded. Start again"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Insert memory card to use Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Unable to start Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Unable to start Camera during call"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Enable Use GPS satellites in Settings to use GPS tag"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Exit Camera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Preview error"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Close camera in %d seconds"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Enable location service in Settings to use GPS tag"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Guidelines"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Press Shutter"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Move camera slowly in direction of arrow"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu not supported"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Security policy restricts use of Camera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Saved"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Self-portrait"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrait"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Night"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sports"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Party/Indoor"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Beach/Snow"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Sunset"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Dawn"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Firework"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Candlelight"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Backlight"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Face detection"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Recording mode"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scene mode"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Focus mode"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Outdoor visibility"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effects"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Edit shortcuts"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Auto contrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Reset"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Reset settings?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smile shot"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Burst shot"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Message limit"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Memory card"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Beach/Snow"
+
diff --git a/po/en_US.po b/po/en_US.po
new file mode 100644 (file)
index 0000000..ff4c11a
--- /dev/null
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Shake"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Audio recording"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beauty"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Black and white"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blue"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Center-weighted"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Cloudy"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Daylight"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Face detection"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Failed to build panoramic images. Try later"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focus  "
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizon"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Image quality"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Metering"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "My device"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negative"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "None"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Off"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "On"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Please wait while creating panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Red"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Review screen"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Dusk/Dawn"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Self-portrait"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Shade"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Single"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Storage"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Unable to save. Not enough memory"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video quality"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescent"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action shot"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Beauty shot"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Exposure value"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Night"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "More"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Quickview"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Shooting mode"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "User mode"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "White balance"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Capture error"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Capture time exceeded. Start again"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Insert memory card to use Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Unable to start Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Unable to start camera during call"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Enable Use GPS satellites in Settings to use GPS tag"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Exit Camera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Preview error"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Close camera in %d seconds"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Enable location service in Settings to use GPS tag"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Sound"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Guidelines"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Press Shutter"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Move camera slowly in direction of arrow"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu not supported"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Security policy restricts use of Camera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Saved"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Self-portrait"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrait"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Night"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sports"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Party/Indoor"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Beach/Snow"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Sunset"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Dawn"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Firework"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Candlelight"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Backlight"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Face detection"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Recording mode"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scene mode"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Focus mode"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Outdoor visibility"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effects"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Edit shortcuts"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Auto contrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Reset"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Reset settings?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Settings"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smile shot"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Burst shot"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Message limit"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Memory card"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Beach/Snow"
+
diff --git a/po/es.po b/po/es.po
new file mode 100644 (file)
index 0000000..18e55ed
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 seg"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 seg"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 seg"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Antimovimiento"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Grabación de audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Enfoque automático"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Belleza"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Blanco y negro"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centr-compensado"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Nublado"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Luz del día"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detección de rostro"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Error al generar imágenes panorámicas. Intentarlo más tarde"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescente"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Enfocar"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizonte"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Calidad de imagen"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Paisaje"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriz"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Medición"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mi dispositivo"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativo"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ninguno"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Desactivada"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Activado"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Espere mientras se crea la imagen panorámica"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rojo"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Pantalla de revisión"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Anochecer/Amanecer"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autorretrato"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Sombra"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorámica"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Sencillo"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Cámara lenta"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punto"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Almacenamiento"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "No se puede guardar. No hay memoria suficiente"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Calidad de vídeo"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescente"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Toma de acción"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Antiguo"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Disparo belleza"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valor de exposición"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noche"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Más"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorámica"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Vista rápida"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Modo de disparo"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Cámara lenta"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Modo de usuario"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balance blanco"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Error de captura"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Tiempo de captura superado. Comience de nuevo"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Inserte la tarjeta de memoria para utilizar la cámara"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "No se puede iniciar la cámara"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "No se puede iniciar la cámara durante la llamada"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Active uso de satélites GPS en Ajustes para utilizar la etiqueta GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "¿Salir de la cámara?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Vista previa del error"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Cerrar cámara en %d segundos"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activar servicio de ubicación en Ajustes para utilizar la etiqueta GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Sonido"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Instrucciones"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Pulse Obturador"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Mueve la cámara lentamente hacia donde indica la flecha"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menú no admitido"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Etiqueta GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "La política de seguridad restringe el uso de la cámara"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Guardado"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autorretrato"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Retrato"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Paisaje"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noche"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Deportes"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Fiesta/Interior"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Playa/Nieve"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Puesta de sol"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Amanecer"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fuegos artificiales"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Texto"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Velas"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Retroiluminación"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Enfoque automático"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detección de rostro"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Modo de grabación"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Modo Escena"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Modo de enfoque"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilidad de exterior"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Temporizador"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efectos"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Editar accesos directos"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contraste automático"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Restablecer"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "¿Restablecer ajustes?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Ajustes"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Disparo por sonrisa"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Disparo continuo"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Límite de mensajes"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Tarjeta de memoria"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Playa/Nieve"
+
diff --git a/po/fi.po b/po/fi.po
new file mode 100644 (file)
index 0000000..6bc0238
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 s"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 s"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 s"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Tärinänesto"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Äänitallennus"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automaattinen"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automaattinen tarkennus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Kauneus"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Mustavalkoinen"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Sininen"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Keskipainotettu"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Pilvinen"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Päivänvalo"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Kasvontunnistus"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Panoraamakuvien muodostaminen epäonnistui. Yritä myöhemmin uudelleen"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Salama"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Loistevalo"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Tarkennus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horisontti"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kuvanlaatu"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Maisema"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriisimittaus"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mittaus"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "Multimediaviesti"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Oma laite"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatiivi"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ei mitään"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Pois"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Päällä"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Odota, panoraamakuvaa luodaan"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Punainen"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Näytön tarkastelu"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Ilta/aamu"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Muotokuva"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Seepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Varjostin"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoraama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Yksi"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Hidas liike"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Pistemittaus"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Tallennustila"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Tallennus epäonnistui. Muisti ei riitä"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videokuvan laatu"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Hehkulampun valo"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Toimintakuva"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vanha"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Kaunis kuva"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valotusarvo"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Yö"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Lisää"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoraama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Pikanäkymä"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Kuvaustila"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Hidas liike"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Käyttäjätila"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Valkotasapaino"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Virhe kuvaa otettaessa"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Kuvausaika ylitetty. Aloita alusta"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Aseta muistikortti kameran käyttöä varten"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kameraa ei voi käynnistää"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Kameraa ei voi käyttää puhelun aikana"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Ota Käytä GPS-satelliitteja Asetukset-kohdassa käyttöön GPS-tunnisteen käyttöä varten"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Suljetaanko kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Esikatseluvirhe"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Sulje kamera %d sekunnin kuluttua"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Ota sijaintipalvelu Asetukset-kohdassa käyttöön GPS-tunnisteen käyttöä varten"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Ääni"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Suuntaviivat"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Paina laukaisinta"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Liikuta kameraa hitaasti nuolen suuntaan"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Valikkoa ei tueta"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-tunniste"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Suojauskäytäntö estää kameran käytön"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Tallennettu"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Muotokuva"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Muotokuva"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Maisema"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Yö"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Urheilu"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Juhlat/Sisätila"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Ranta/lumi"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Auringonlasku"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Aamu"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Ilotulitus"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Teksti"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Kynttilänvalo"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Taustavalo"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automaattinen tarkennus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Kasvontunnistus"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Tallennustila"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Ohjelmatila"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Tarkennustila"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Näkyvyys ulkona"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Ajastin"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Tehosteet"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Muokkaa pikavalintoja"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Autom. kontrasti"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Nollaa"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Nollataanko asetukset?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Asetukset"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Hymykuvaus"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Sarjakuvaus"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normaali"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Viestirajoitus"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Muistikortti"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Ranta/lumi"
+
diff --git a/po/fr.po b/po/fr.po
new file mode 100644 (file)
index 0000000..298d717
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilisateur"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Enreg. audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto."
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beauté"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Noir et blanc"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Bleu"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Mesure pondérée centrale"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Nuageux"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Lumière naturelle"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Détect. portrait"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Echec de création des images panoramiques. Essayez plus tard"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizon"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Qualité d'image"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Paysage"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrice"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mesure"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mon appareil"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Négatif"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Aucun"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Désactivé"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Activé"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Veuillez patienter pendant la création du panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rouge"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Ecran de visualisation"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Crépuscule/aube"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportrait"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sépia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Ombre"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Célibataire"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Mouvement lent"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Stockage"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Echec de l'enregistrement. Mémoire insuffisante"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Qualité vidéo"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescent"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Prise de vue améliorée"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valeur d'exposition"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nuit"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Plus"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Aperçu"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Mode de capture"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Mouvement lent"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Mode utilisateur"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balance des blancs"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Erreur de capture"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Délai de capture dépassé. Recommencer"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Insérez une carte mémoire pour utiliser l'appareil photo"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Impossible de démarrer l'appareil photo"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Appareil photo non disponible\npendant appel"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activez l'option Utiliser satellites GPS dans Paramètres pour utiliser la balise GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Quitter l'appareil photo ?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Erreur de prévisualisation"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Fermer l'appareil photo dans %d secondes"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activer le service de localisation dans Paramètres pour utiliser la balise GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Son"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Guide"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Appuyez sur l'obturateur"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Déplacez lentement l'appareil photo dans le sens de la flèche"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu non pris en charge"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Balise GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "La politique de sécurité limite l'utilisation de l'appareil photo"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Enregistré"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportrait"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrait"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Paysage"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nuit"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sports"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Fête/Intérieur"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plage/Neige"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Coucher de soleil"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Aube"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Feu d'artifice"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Texte"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Bougie"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Rétroéclairage"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Auto focus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Détect. portrait"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Mode d'enregistrement"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Mode scène"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Mode mise au point"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilité extérieure"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Retardateur"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effets"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Modifier les raccourcis"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contraste auto"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Réinitialiser"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Réinitialiser les paramètres ?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Paramètres"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Sourire"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Rafale"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limite pour MMS"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Carte mémoire"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plage/Neige"
+
diff --git a/po/he.po b/po/he.po
new file mode 100644 (file)
index 0000000..5933300
--- /dev/null
+++ b/po/he.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 שנ'"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 שנ'"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 שנ'"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "מייצב תמונה"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "הקלטת שמע"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "אוטומטי"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "מיקוד אוטומטי"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "פנים"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "שחור לבן"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "כחול"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "משקל מרכזי"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "מעונן"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "אור יום"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "זיהוי פנים"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "בניית תמונות פנורמיות נכשלה. נסה מאוחר יותר"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "מבזק"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "פלורוסנט"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "מיקוד"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "אופק"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "איכות תמונה"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "נוף"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "מאקרו"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "מטריצה"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "מדידה"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "ההתקן שלי"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "תשליל"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "ללא"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "כבוי"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "מופעל"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "המתן בעת יצירת פנורמה"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "אדום"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "סקור מסך"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "בין ערביים/זריחה"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "דיוקן-עצמי"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "חום כהה"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "גוון"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "פנורמה"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "בודד"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "הילוך איטי"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "ספוט"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "אחסון"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "לא ניתן לשמור. אין די זיכרון"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "איכות וידאו"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "זוהר"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "צילום פעולה"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "עתיק"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "צילום יופי"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "ערך חשיפה"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "לילה"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "עוד"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "פנורמה"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "תצוגה מהירה"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "מצב צילום"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "הילוך איטי"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "מצב משתמש"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "איזון לבן"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "שגיאת לכידה"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "זמן הצילום חלף. התחל שוב"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "הכנס כרטיס זיכרון לשימוש במצלמה"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "לא ניתן להפעיל את המצלמה"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "לא ניתן להפעיל מצלמה במהלך שיחה"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "הפעל שימוש בלווייני GPS‬ תחת הגדרות כדי להשתמש בתגית GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "לצאת מהמצלמה?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "שגיאת תצוגה מקדימה"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "סגור מצלמה בעוד %d שניות"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "הפעל שימוש בשירות מיקום תחת ’הגדרות’ כדי להשתמש בתגית GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "צלילים"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "קווים מנחים"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "לחץ על הצמצם"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "הזז את המצלמה באיטיות בכיוון החץ"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "התפריט לא נתמך"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "תגית GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "מדיניות האבטחה מגבילה את השימוש במצלמה"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "נשמר"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "דיוקן-עצמי"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "דיוקן"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "נוף"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "לילה"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "ספורט"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "ביתי/מסיבה"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "חוף/שלג"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "שקיעה"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "זריחה"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "זיקוקים"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "טקסט"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "אור נר"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "תאורה אח'"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "מיקוד אוטומטי"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "זיהוי פנים"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "מצב הקלטה"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "מצב סצנה"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "מצב מיקוד"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "תאורת מסך בחוץ"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "טיימר"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "אפקטים"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "ערוך קיצורי דרך"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "ניגודיות אוטומטית"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "איפוס"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "לאפס הגדרות?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "הגדרות"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "צילום חיוך"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "צילום ברצף"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "רגיל"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "מגבלת הודעות"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "כרטיס זיכרון"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "חוף/שלג"
+
diff --git a/po/hi.po b/po/hi.po
new file mode 100644 (file)
index 0000000..9750a71
--- /dev/null
+++ b/po/hi.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 से."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 से."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 से."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "एंटी-शेक"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "ऑडियो रिकॉर्डिंग"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "स्वतः"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "ऑटो फोकस"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "ब्यूटी"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "काला और सफेद"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "नीला"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "सेंटर-वेटिड"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "क्लाउडी"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "डेलाइट"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "चेहरा पहचान"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "विशालदर्शी इमेजेस बनाने में विफल. बाद में कोशिश करें"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "चमक"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "प्रतिदीप्ति"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "केन्द्रित"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "क्षितिज"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "इमेज गुणवत्ता"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "आईएसओ"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "लैंडस्केप"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "मैक्रो"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "मैट्रिक्स"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "मीटरिंग"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "एमएमएस"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "मेरा डिवाइस"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "नकारात्मक"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "कुछ भी नहीं"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "बंद"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "चालू"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "पैनोरमा बनाते समय कृपया प्रतीक्षा करें"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "लाल"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "स्‍क्रीन की समीक्षा करें"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "डस्क/डान"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "अपना चित्र"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "सेपिया"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "शेड"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "पैनोरमा"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "एकल"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "धीमी गति"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "केंद्र"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "स्टोरेज"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "सेव करने में अक्षम. पर्याप्‍त मेमोरी नहीं"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "वीडियो गुणवत्ता"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "उज्‍ज्वल"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "कार्रवाई शॉट"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "विंटेज"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "सौन्दर्य शॉट"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "एक्सपोज़र मान"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "रात्रि"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "जीपीएस"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "अधिक"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "पैनोरमा"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "तुरन्त देखना"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "शूटिंग मोड"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "धीमी गति"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "उपयोगकर्ता मोड"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "ह्वाइट बैलेंस"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "गलती पकड़ें"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "कैप्चर समय सीमा से अधिक हो गया. फिर से शुरू करें"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "कैमरा का उपयोग करने के लिए मेमरी कार्ड डालें"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "कैमरा शुरू करने में अक्षम"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "कॉल के दौरान कैमरा चालू करने में अक्षम"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "जीपीएस टैग का उपयोग करने के लिए सेटिंग्स में जीपीएस सैटेलाइट्‍स उपयोग सक्षम करें"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "कैमरा से बाहर निकलें?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "पूर्वावलोकन त्रुटि"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "%d सेकंडों में कैमरा बंद करें"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS टैग का उपयोग करने के लिए सेटिंग्स में स्थान सेवा सक्षम करें"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "ध्वनि"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "गाइडलाइंस"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "शटर दबाएँ"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "तीर की दिशा में कैमरे को धीरे ले जाएँ"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "मेनू समर्थित नहीं"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "जीपीएस टैग"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "सुरक्षा नीति कैमरा के उपयोग को प्रतिबंधित करती है"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "सुरक्षित किया"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "अपना चित्र"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "चित्र"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "लैंडस्केप"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "रात्रि"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "खेल"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "पार्टी/इंडोर"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "बीच/बर्फ"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "सूर्यास्त"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "डॉन"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "फायरवर्क"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "टेक्स्ट"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "कैंडललाइट"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "बैकलाइट"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "ऑटो फोकस"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "चेहरा पहचान"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "रिकॉर्डिंग मोड"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "सीन मोड"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "केंद्रित मोड"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "आउटडोर दृश्यता"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "टाइमर"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "प्रभाव"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "शॉर्टकट्स संपादित करें"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "स्वतः कंट्रास्ट"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "रीसेट"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "सेटिंग्स रीसेट करें?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "सेटिंग्स"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "स्माइल शॉट"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "बर्स्ट शॉट"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "सामान्य"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "सन्देश सीमा"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "मेमोरी कार्ड"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "बीच/बर्फ"
+
diff --git a/po/hr.po b/po/hr.po
new file mode 100644 (file)
index 0000000..b80bcdd
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilizacija"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Snimanje zvuka"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Auto fokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Ljepota"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Crno-bijelo"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centar"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Oblačno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dnevna"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Prepoznavanje lica"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Neuspješna izrada panoramskih slika. Pokušajte kasnije"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Bljeskalica"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent."
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kvaliteta slike"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Pejzaž"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrica"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mjerenje"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ništa"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Isključi"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Uključi"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Pričekajte..."
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Crvena"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Zaslon pregleda"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Sumrak/zora"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sephia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Sjena"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Jedna"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Usporeno"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Točke"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Spremanje"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nemoguće spremiti. Nedovoljno memorije"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video kvaliteta"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Žarulja"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akcija"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Starinski"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Ljepota"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Vrijednost ekspozicije"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noćno"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Više"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Brzi pregled"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Način fotografiranja"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Usporeno"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Korisnički način"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Korekcija bijele boje"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Greška snimanja"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Prekoračeno vrijeme snimanja. Ponovite"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Umetnite mem. karticu prije upotrebe kamere"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Nemoguće pokrenuti kameru"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Nemoguće pokrenuti kameru tijekom poziva"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Uključite korištenje GPS satelita u postavkama kako biste koristili GPS oznaku"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Prekid kamere?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Greška prikaza"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Zatvori kameru u %d sek"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Uključite lokacijsku uslugu u postavkama kako biste koristili GPS oznaku"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Smjernice"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Pritisnite okidač"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Polako pomičite kameru u smjeru strelice"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meni nepodržan"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS oznaka"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Sigurnosne odredbe ograničavaju korištenje fotoaparata"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Spremljeno"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Pejzaž"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noćno"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Zabava/Interijer"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plaža/snijeg"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Zalazak sunca"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Zora"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Vatromet"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Svijeća"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Pozadinsko osvjetljenje"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Auto fokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Prepoznavanje lica"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Način snimanja"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scene način"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusiranje"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Vidljivost na otvorenom"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Odbrojavanje"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekti"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Uredi prečace"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Auto. kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Poništavanje"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Poništiti postavke?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Postavke"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Osmijeh"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Uzastopna snimka"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Granica poruke"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Mem. kartica"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plaža/snijeg"
+
diff --git a/po/htm2po.py b/po/htm2po.py
new file mode 100644 (file)
index 0000000..683240e
--- /dev/null
@@ -0,0 +1,97 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+import sys, re
+from BeautifulSoup import BeautifulSoup
+
+help = """
+arg 1 : input file
+arg 2 : the locale field which you wanna extract
+arg 3 : output po file
+"""
+
+DESIGN_ID = "Design ID"
+dString = {}
+
+def findindexof( word, tds ):
+       for i, td in enumerate(tds):
+               try:
+                       if td.contents[0]==word:
+                               return i
+               except IndexError:
+                       pass
+       return -1
+
+if __name__=="__main__":
+       if len(sys.argv)>3:
+               in_file = sys.argv[1]
+               locale = sys.argv[2]
+               po_file = sys.argv[3]
+       else:
+               print help
+               sys.exit()
+
+       print 'input file :', in_file
+       print 'locale :', locale
+       print 'po file :', po_file
+
+       f = open( in_file, 'rt' )
+       soup = BeautifulSoup( f.read() )
+       f.close()
+
+       for i, tr in enumerate(soup('tr')):
+               tds = tr('td')
+               if i==0: 
+                       iID = findindexof( DESIGN_ID, tds )
+                       iLocale = findindexof( locale, tds )
+                       print 'index of design id :',iID, ", index of",locale,":", iLocale
+                       if iID<0 or iLocale<0: 
+                               print 'index failed'
+                               sys.exit()
+                       continue
+
+               bPass = True;
+               for j,td in enumerate(tds):
+                       try:
+                               if j==iID: ID = td.contents[0]  
+                               elif j==iLocale: szLocale = td.contents[0]
+                       except IndexError:
+                               bPass = False;
+                               pass
+
+               if bPass: 
+                       dString[ID] = szLocale
+                       #print i, '\t', ID, '\t' ,szLocale
+
+       #modify po file
+       f = open( po_file, 'rt' )
+       po = f.read().decode('utf-8')
+       f.close()
+
+       for k, v in dString.items():
+               #find key
+               msg = 'msgid "'+ k + '"'
+               sp = po.find( msg )
+
+               #if yes, replace
+               if sp>-1:
+                       lines = po.split('\n')
+                       for i, line in enumerate(lines):
+                               if line.find( msg )>-1:
+                                       #replace next line
+                                       print 'replace :',k
+                                       v = v.replace('\r', '')                 #remove linefeed
+                                       v = v.replace('\n ', '\\n') #remove carriage return
+                                       lines[i+1] = 'msgstr "' + v + '"'
+                       po = "\n".join( lines )
+
+               #if no, append
+               #if sp<0:       
+               #       print 'append', k
+               #       po += 'msgid "' + k + '"\n'
+               #       po += 'msgstr "' + v + '"\n\n' 
+
+       newfile = po_file+'.new'
+       f = open( newfile , 'wt' )
+       f.write( po.encode('utf-8') )
+       f. close()
+       print newfile, 'is created'
diff --git a/po/hu.po b/po/hu.po
new file mode 100644 (file)
index 0000000..7365be6
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 mp"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 mp"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 mp"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Képstabilizáló"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Hangfelvétel"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto."
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automatikus fókusz"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Szépség"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Fekete-fehér"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Kék"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Középre súlyozott"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Felhős"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Nappali fény"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Arcészlelés"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nem sikerült panorámaképet kialakítani. Próbálja meg később"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Mobilfény"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fénycső"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fókusz"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Képminőség"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Tájkép"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makró"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Mátrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mérés"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Saját eszköz"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatív"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nincs"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Ki"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Be"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Kis türelmet, a panoráma létrehozása folyamatban van"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Piros"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Megtekintő képernyő"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Alkony/hajnal"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Önarckép"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Szépia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Árnyék"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Egyszerű"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Lassítás"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Pontszerű"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Tárhely"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nem lehet menteni. Nincs elég memória"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videó minősége"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Lámpafény"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akciófelvétel"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vignettálás"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Csinos felvétel"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Fényérték"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Éjszakai"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Egyebek"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Gyorsnézet"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Fénykép mód"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Lassítás"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Felhasználói mód"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Fehéregyensúly"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Rögzítési hiba"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Túllépte a rögzítési időt. Kezdje újra"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "A Kamera használatához helyezzen be memóriakártyát"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Nem indítható el a Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Hívás közben a Kamera\nnem indítható el"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS-címke használatához engedélyezze a GPS-műholdak használatát a Beállításokban"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Bezárja a Kamerát?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Előnézet-hiba"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "%d másodpercen belül zárja be a kamerát"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS-címke használatához engedélyezze a helymeghatározó szolgáltatást a Beállításokban"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Hang"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Segédvonalak"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Nyomja le a zárgombot"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Lassan mozgassa a fényképezőt a nyíllal jelzett irányba"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "A menü nincs támogatva"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-címke"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "A biztonsági irányelv korlátozza a Kamera használatát"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Mentve"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Önarckép"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portré"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Tájkép"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Éjszakai"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Buli/beltér"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/hó"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Naplemente"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Hajnal"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Tűzijáték"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Szöveg"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Gyertyafény"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Háttérfény"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automatikus fókusz"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Arcészlelés"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Felvételmód"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Éjszakai mód"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fókuszmód"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Láthatóság külső fényben"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Időzítő"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effektusok"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Ikonok szerkesztése"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatikus kontraszt"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Visszaállítás"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Alapbeáll. visszaállítja?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Beállítások"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Mosoly felvétele"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Sorozatfelvétel"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normál"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Üzenetkorlát"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Memóriakártya"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/hó"
+
diff --git a/po/id.po b/po/id.po
new file mode 100644 (file)
index 0000000..56f36f4
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 dtk"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 dtk"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 dtk"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Shake"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Rekam audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Otomatis"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Fokus otomatis"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Keindahan"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Hitam dan putih"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Biru"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Terpusat"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Mendung"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Siang hari"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Deteksi wajah"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Gagal membuat gambar panorama. Coba nanti"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Lampu kilat"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Berpijar"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horison"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kualitas gambar"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriks"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Pengukuran"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Perangkat saya"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatif"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Tdk ada"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Mati"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Hidup"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Harap tunggu sembari buat panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Merah"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Layar pratinjau"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Senja/Fajar"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Self-potrait"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Warna"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Tunggal"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Gerak perlahan"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Bintik"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Penyimpanan"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Tidak bisa menyimpan. Memori tidak cukup"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kualitas video"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Pijar"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action shot"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Kuno"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Bidikan indah"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Nilai pembukaan"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Malam"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Lainnya"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Lihat cepat"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Mode Shooting"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Gerak perlahan"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Modus pengguna"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "White balance"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Gangguan pengambilan"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Waktu pengambilan terlampaui. Mulai lagi"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Masukkan kartu memori untuk menggunakan Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Tidak bisa memulai kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Tdk dapat menaktifkan kamera\nselama panggilan"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Memungkinkan Gunakan satelit GPS pada Pengaturan untuk menggunakan tag GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Keluar dr kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Kesalahan pratinjau"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Tutup kamera dalam %d detik"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktifkan layanan lokasi di Pengaturan untuk menggunakan tag GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Suara"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Garis petunjuk"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Tekan Shutter"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Gerakkan kamera perlahan ke arah tanda panah"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu tdk mendukung"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Tag GPS tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Kebijakan pengaman membatasi penggunaan Kamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Tersimpan"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Self-potrait"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Potret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landscape"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Malam"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Olahraga"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Party / Indoor"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pantai/Salju"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Senja"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Fajar"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Firework"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Teks"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Cahaya lilin"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Cahaya layar"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Fokus otomatis"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Deteksi wajah"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Mode merekam"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Mode scene"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Mode Fokus"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilitas luar ruangan"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efek"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Edit pemintas"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Kontras otomatis"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Reset"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Reset pengaturan?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Pengaturan"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smile shot"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Bidikan burst"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Batasan pesan"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Kartu memori"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pantai/Salju"
+
diff --git a/po/it.po b/po/it.po
new file mode 100644 (file)
index 0000000..c3d6ed3
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Antivibrazione"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Registraz. audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatica"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Messa a fuoco automatica"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Estetica"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Bianco e nero"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blu"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Calibrato al centro"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Nuvoloso"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Luce naturale"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Rilevamento volti"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Impossibile generare immagini panoramiche. Riprovare più tardi"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescente"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fuoco"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Orizzonte"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Qualità immagini"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrice"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Misurazione"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Dispositivo personale"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativo"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nessuno"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Non attivo"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Attivo"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Attendere durante la creazione del panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rosso"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Schermata di verifica"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Crepuscolo/Alba"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoritratto"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Seppia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Ombra"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Singola"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Memoria"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Impossibile salvare. Memoria insufficiente"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Qualità video"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescente"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Scatto azione"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Scatto Beauty"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valore esposizione"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Notte"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Altro"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Anteprima"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Modalità scatto"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slow motion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Modalità utente"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Bilanc. bianco"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Errore acquisizione"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Tempo per la cattura scaduto. Riprovare"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Inserire la scheda di memoria per usare la Fotocamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Impossibile avviare fotocamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Impossibile avviare fotocamera\ndurante la chiamata"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Attivare Utilizzo satelliti GPS in Impostazioni per utilizzare il tag GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Uscire dalla Fotocamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Errore anteprima"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Chiudi fotocamera tra %d secondi"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Attivate il servizio di localizzazione in Impostazioni per utilizzare il tag GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Suono"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Linee guida"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Premi Otturatore"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Spostare lentamente la fotocamera nella direzione della freccia"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu non supp."
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Tag GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "I criteri di sicurezza limitano l'uso della fotocamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Salvato"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoritratto"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Ritratto"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Notte"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Festa/Interni"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Spiaggia/Neve"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Tramonto"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Alba"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fuochi d'artificio"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Testo"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Luce di candela"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Controluce"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Messa a fuoco automatica"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Rilevamento volti"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Modalità registrazione"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Modalità scene"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Messa a fuoco"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilità all'aperto"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effetti"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Modifica collegamenti"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contrasto auto"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Ripristina"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Ripristinare le impostazioni?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Impostazioni"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Scatta con sorriso"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Scatto multiplo"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normale"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limite messaggi"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Scheda di memoria"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Spiaggia/Neve"
+
diff --git a/po/ja.po b/po/ja.po
new file mode 100644 (file)
index 0000000..2a7db5c
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10秒"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2秒"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5秒"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "手振れ補正"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "音声録音"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "自動"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "オート​フォーカス"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "美肌​モード"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "モノクロ"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "ブルー"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "中央部重点測光"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "曇り"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "晴天"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "顔​検出"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "パノラマ​写真​を​作成​して​います。​後​ほど​お試し​ください"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "フラッシュ"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "蛍光灯"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "フォーカス"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "水平"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "画質設定"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "マクロ"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "多分割​測光"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "測光"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "マイ​デバイス"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "ネガポジ​反転"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "なし"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "OFF"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "ON"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "パノラマを​作成​しています。​しばらく​お待ち​ください..."
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "レッド"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "プレビュー画面"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "夕暮れ・夜明け"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "自分​撮り"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "セピア"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "影"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "パノラマ"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "シングル"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "スロー​モーション"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "スポット​測光"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "ストレージ"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "保存できません。メモリが不足しています。"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "動画の​画質"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "白熱灯"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "アクション​撮影"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "ビンテージ\n撮影"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "ビューティ​ショット"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "露出​補正"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "夜景"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "その他"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "パノラマ"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "クイックビュー"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "撮影​モード"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "スロー​モーション"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "ユーザー​モード"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "ホワイト​バランス"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "キャプチャ​エラー​です"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "撮影​時間​が​超過​しました。​もう​一度​開始​しますか?"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "外部SDカードを​挿入して​カメラを​使用して​ください。"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "カメラを​起動できません"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "通話中​には、​カメラを​起動​できません。"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS​タグ​を​使用​する​[設定]​にしてから、​GPS​衛星​の​使用​を​有効​に​してください"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "カメラを終了しますか?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "プレビュー​の​エラー​です"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "%d秒後にカメラを終了します。"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPSタグを使うには、設定で位置情報サービスを有効にしてください。"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "サウンド"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "補助​グリッド"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "シャッターを​タップして​ください。"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "カメラ​を​矢印​の​方向​に​ゆっくり​動かしてください"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "メニュー​未対応"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS​タグ"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "カメラの​使用は、​セキュリティ​ポリシーによって制限されています。"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "保存​しま​した。"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "自分​撮り"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "ポートレート"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "夜景"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "スポーツ"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "パーティー/​室内"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "ビーチ/​スキー場"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "夕焼け"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "夜明け"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "花火"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "テキスト"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "キャンドル"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "逆光"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "オート​フォーカス"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "顔​検出"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "録画​モード"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "シーン撮影"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "フォーカス​"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "アウト​ドア​モード"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "タイマー"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "撮影効果"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "ショートカットを​編集"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "コントラ​スト"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "リセット"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "設定​を​リセット​しますか?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "スマイル​撮影"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "連写"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "標準"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "メール添付制限"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "外部​SDカード"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "ビーチ/​スキー場"
+
diff --git a/po/ko.po b/po/ko.po
new file mode 100644 (file)
index 0000000..fa00a7b
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10초"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2초"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5초"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "손떨림 보정"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "소리 녹음"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "자동"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "자동 초점"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "뷰티"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "흑백"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "파란색"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "중앙 측광"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "흐린날"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "태양광"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "얼굴 인식"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "파노라마 사진을 생성하지 못하였습니다. 잠시 후 다시 시도하세요"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "플래시"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "형광등"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "선택 영역"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "수평선"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "화질"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "풍경"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "접사"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "다분할"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "측광 방식"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "내 디바이스"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "반전"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "없음"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "끄기"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "켜기"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "파노라마 사진 생성 중... 잠시만 기다리세요."
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "빨간색"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "촬영 사진 보기"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "저녁/새벽"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "셀프촬영"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "세피아"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "그늘"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "파노라마"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "일반"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "슬로 모션"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "스팟"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "저장소"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "저장할 수 없습니다. 메모리가 부족합니다"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "동영상 화질"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "백열등"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "액션 샷"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "빈티지"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "뷰티 샷"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "노출"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "야간"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "더보기"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "파노라마"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "바로 보기"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "촬영 모드"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "슬로 모션"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "사용자 모드"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "화이트밸런스"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "촬영 오류가 발생하였습니다"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "촬영 시간이 초과되었습니다. 다시 시작하세요"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "카메라를 사용하려면 메모리 카드를 삽입하세요"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "카메라를 실행할 수 없습니다"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "통화 중에는 카메라를 실행할 수 없습니다"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS 태그를 사용하려면 설정에서 GPS 위성 사용을 활성화하세요"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "카메라를 종료할까요?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "미리보기 오류가 발생하였습니다"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "카메라가 %d초 후에 종료됩니다"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS 태그를 사용하려면 [설정]에서 위치 서비스를 실행하세요"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "소리"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "안내선 표시"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "카메라 셔터를 누르세요"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "화살표 방향을 따라 카메라를 천천히 움직이세요"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "메뉴가 없습니다"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS 태그"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "보안 정책에 따라 카메라 사용이 제한됩니다"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "저장되었습니다"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "셀프촬영"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "인물"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "풍경"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "야간"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "스포츠"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "파티/실내"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "해변/설경"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "일몰"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "새벽"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "불꽃놀이"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "문자"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "촛불"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "역광"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "자동 초점"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "얼굴 인식"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "촬영 모드"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "장면 모드"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "초점 모드"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "야외 자동 밝기 조절"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "타이머"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "효과"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "바로가기 편집"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "자동 대비"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "초기화"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "초기화할까요?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "설정"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "스마일"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "연속 촬영"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "일반"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "메시지 제한"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "메모리 카드"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "해변/설경"
+
diff --git a/po/lt.po b/po/lt.po
new file mode 100644 (file)
index 0000000..ad33cb3
--- /dev/null
+++ b/po/lt.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "“Anti-Shake” funkcija"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Garso įrašymas"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatinis"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automatinis fokusavimas"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Grožis"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Nespalvotas"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Mėlyna"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centruotas"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Debesuota"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dienos šviesa"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Veido aptikimas"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nepavyko sukurti panoraminių vaizdų. Bandykite vėliau"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Blykstė"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescentinis"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokusavimas"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizontas"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Nuotraukos kokybė"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Peizažas"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrica"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Matavimas"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mano įrenginys"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatyvas"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nėra"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Išjungti"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Įjungti"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Palaukite kol kuriama panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Raudona"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Ekrano peržiūra"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Prieblanda/aušra"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportretas"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Tamsiai rusvas"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Šešėlis"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Vienas"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Sulėtintai"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Taškas"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Saugykla"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Negalima įrašyti. Nepakanka atminties"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Vaizdo įrašo kokybė"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Kaitinamoji lempa"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Veiksmo kadras"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Sena nuotrauka"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Retušuotas portretas"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Ekspozicijos vertė"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Naktis"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Daugiau"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "„Quickview“"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Fotografavimo režimas"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Sulėtintai"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Naudotojo režimas"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balt. sp. bal."
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Įrašymo klaida"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Viršytas fotografavimo laikas. Pradėti dar kartą"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Norėdami naudoti fotoaparatą įdėkite atminties kortelę"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Neįmanoma paleisti fotoaparato"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Pokalbio metu\nfotoaparato įjungti negalima"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Norėdami naudotis GPS žyma, nustatymuose įjunkite GPS palydovų naudojimą"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Išjungti fotoaparatą?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Peržiūros klaida"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Uždarykite fotoaparatą po %d sek."
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Nustatymuose įjunkite buvimo vietos paslaugą, kad galėtumėte naudotis GPS žymėjimo funkcija"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Garsas"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Instrukcijos"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Paspauskite užraktą"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Judinkite fotoaparatą iš lėto rodyklės kryptimi"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meniu funkcija nepalaikoma"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS žymėjimas"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Saugos strategija riboja naudojimąsi fotoaparatu"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Išsaugota"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportretas"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portretas"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Peizažas"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Naktis"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sportas"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Vakarėlis / viduje"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pliažas/sniegas"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Saulėlydis"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Aušra"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fejerverkai"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekstas"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Žvakės šviesa"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Foninis apšvietimas"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automatinis fokusavimas"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Veido aptikimas"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Įrašymo režimas"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scenos režimas"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusavimo režimas"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Matomumas lauke"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Laikmatis"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efektai"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Redaguoti nuorodas"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatinis kontrastas"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Nustatymas iš naujo"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Iš naujo nustatyti nustatymus?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Nustat."
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Šypsenos fot."
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Nepertrauk. fotogr."
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Įprastas"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Žinutės riba"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Atminties kortelė"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pliažas/sniegas"
+
diff --git a/po/lv.po b/po/lv.po
new file mode 100644 (file)
index 0000000..844b774
--- /dev/null
+++ b/po/lv.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Prettriecienu aizsardzība"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Audio ierakstīšana"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automātiski"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automātiskā fokusēšana"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Skaistums"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Melnbalts"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Zils"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centrēts"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Mākoņains"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dienasgaisma"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Sejas noteikšana"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Neizdevās izveidot panorāmas attēlus. Mēģiniet vēlāk"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Zibspuldze"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Dienasgaismas lampa"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokuss"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizonts"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Attēla kvalitāte"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Ainava"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrica"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mērīšana"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mana ierīce"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatīvs"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Neviens"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Izslēgt"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Ieslēgt"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Lūdzu uzgaidiet, kamēr tiek veidots panorāmas attēls"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Sarkans"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Apskates ekrāns"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Krēsla/rītausma"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Pašportrets"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sēpija"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Nokrāsa"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorāma"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Viens"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Lēna kustība"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punkts"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Krātuve"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nevar saglabāt. Nepietiek atmiņas"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video kvalitāte"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Kvēlspuldze"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Kustību fotogr."
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Antīka attēla efekts"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Ādas retušēšana"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Ekspozīcijas vērtība"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nakts"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Citi"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorāma"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Ātrā apskate"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Fotografēšanas režīms"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Lēna kustība"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Lietotāja režīms"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Baltā balanss"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Tvēruma kļūda"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Pārsniegts uzņemšanas laiks. Sāciet vēlreiz"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Lai lietotu kameru, ievietojiet atmiņas karti"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Nevar aktivizēt kameru"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Zvana laikā nevar\nstartēt kameru"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Lai izmantotu GPS atzīmes, izvēlnē Iestatījumi iespējojiet funkciju Lietot GPS satelītus"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Vai aizvērt kameru?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Priekšskatījuma kļūda"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Pēc %d sekundēm aizveriet kameru"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Lai izmantotu GPS atzīmi, sadaļā Iestatījumi aktivizējiet atrašanās vietas pakalpojumu"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Skaņa"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Instrukcija"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Nospiest aizslēgu"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Lēnām pārvietojiet fotokameru bultiņas virzienā"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Neatbalstīta izvēlne"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS atzīme"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Drošības politika ierobežo kameras lietošanu"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Saglabāts"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Pašportrets"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrets"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Ainava"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nakts"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sports"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Viesības/Iekštelpa"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pludmale/Sniegs"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Saulriets"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Rītausma"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Uguņošana"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Teksts"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Sveču gaisma"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Apgaismojums"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automātiskā fokusēšana"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Sejas noteikšana"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Ierakstīšanas režīms"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Ainavas režīms"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusa režīms"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Pārskatāmība āra apstākļos"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Taimeris"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekti"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Rediģēt īsceļus"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automātiskais kontrasts"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Atiestatīt"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Vai atjaunot iestatījumus?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Iestatījumi"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smaidošs uzņ."
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Sērijveida foto"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Parasts"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Ziņu ierobežojums"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Atmiņas karte"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pludmale/Sniegs"
+
diff --git a/po/ms.po b/po/ms.po
new file mode 100644 (file)
index 0000000..7e0ee8a
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 saat"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 saat"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 saat"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-Bergegar"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Rakaman audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatik"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Fokus auto"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Cantik"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Hitam dan putih"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Biru"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Berwajaran tengah"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Berawan"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Siang hari"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Pengesan muka"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Gagal untuk membina imej panorama. Cuba kemudian"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Lampu flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Kalimantan"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Kaki langit"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kualiti imej"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriks"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Bermeter"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Alatan saya"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatif"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Tiada"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Matikan"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Hidup"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Sila tunggu sementara mencipta panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Merah"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Skrin pratonton"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Senja/Subuh"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Potret-diri"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Rona"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Tunggal"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Gerakan perlahan"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Bintik"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Penyimpanan"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Tidak boleh simpan. Memori tidak mencukupi"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kualiti video"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Berpijar"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Tangkapan tindakan"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintaj"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Tangkapan cantik"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Nilai pendedahan"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Malam"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Lebih"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Pandangan cepat"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Mod tangkapan"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Gerakan perlahan"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Mod pengguna"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Imbangan putih"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Ralat tangkapan"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Melebihi masa tangkapan. Mulakan sekali lagi"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Sisipkan kad memori untuk menggunakan Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Tidak boleh memulakan Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Tdk dpt mula kamera semasa panggilan"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktifkan Guna satelit GPS dalam Aturan untuk menggunakan tag GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Keluar dari Kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Ralat pratonton"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Tutup kamera dalam %d saat"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktifkan perkhidmatan lokasi dalam Aturan untuk menggunakan tag GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Bunyi"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Panduan"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Tekan Pengatup"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Alih kamera dengan perlahan mengikut arah anak panah"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu tidak disokong"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Tag GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Polisi keselamatan mengehadkan penggunaan Kamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Tersimpan"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Potret-diri"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Potret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Malam"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sukan"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Parti/dalam"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pantai/Salji"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Matahari terbit"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Subuh"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Bunga api"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Teks"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Cahaya lilin"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Cahaya belakang"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Fokus auto"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Pengesan muka"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Mod rakaman"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Mod pemandangan"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Mod fokus"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Keterlihatan luar"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Pemasa"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Kesan"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Sunting pintasan"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Auto kontras"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Tetap semula"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Tetapkan semula aturan?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Aturan"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Tangkapan senyum"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Tangkapan pecah"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Biasa"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Had mesej"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Kad memori"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pantai/Salji"
+
diff --git a/po/nl.po b/po/nl.po
new file mode 100644 (file)
index 0000000..ba7446b
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-trilling"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Geluidsopname"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatisch"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofocus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beauty-shot"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Zwart-wit"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blauw"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Nadruk centrum"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Bewolkt"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Daglicht"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Gezicht detecteren"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Kan geen panoramafoto's maken. Probeer het later opnieuw"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flitser"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "TL-verlichting"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizon"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Beeldkwaliteit"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landschap"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrix"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Meting"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Mijn apparaat"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatief"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Geen"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Uit"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Aan"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Panorama-opname wordt gemaakt. Even geduld..."
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rood"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Controlescherm"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Dageraad/schemering"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Zelfportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Schaduw"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Eén"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spotmeting"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Opslag"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Kan niet opslaan. Onvoldoende geheugen"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videokwaliteit"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Kunstlicht"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Actiefoto"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Beauty-shot"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Belichtingswaarde"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Nacht"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Meer"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "QuickView"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Fotostand"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Gebruikerstand"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Witbalans"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Fout bij maken foto"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Opnametijd overschreden. Begin opnieuw"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Plaats geheugenkaart om camera te gebruiken"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kan camera niet starten"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Kan camera tijdens\noproep niet starten"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS-satellieten gebruiken inschakelen in Instellingen om GPS-tag te gebruiken"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Camera afsluiten?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Fout bij weergeven voorbeeld"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Sluit camera binnen %d seconden"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Locatieservice inschakelen in Instellingen om GPS-tag te gebruiken"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Geluid"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Richtlijnen"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Druk sluiter"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Beweeg camera langzaam in richting van pijl"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu niet ondersteund"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-tag"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Gebruik van camera beperkt door beveiligingsbeleid"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Opgeslagen"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Zelfportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landschap"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Nacht"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Feestje/binnenshuis"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/Sneeuw"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Zonsondergang"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Dageraad"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Vuurwerk"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Kaarslicht"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Verlichting"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofocus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Gezicht detecteren"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Videostand"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scène modus"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Scherpstellen"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Zichtbaarheid buiten"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Timer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effecten"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Sneltoetsen wijzigen"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatisch contrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Resetten"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Instellingen resetten?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Instellingen"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smile shot"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Continu-opname"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normaal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Berichtlimiet"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Geheugenkaart"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/Sneeuw"
+
diff --git a/po/no.po b/po/no.po
new file mode 100644 (file)
index 0000000..a0be057
--- /dev/null
+++ b/po/no.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Bildestabilisator"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Lydinnspilling"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Skjønnhet"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Svart/hvitt"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Sentrert"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Overskyet"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dagslys"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Ansikts-gjenkjenning"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Kunne ikke opprette panoramiske bilder. Prøv igjen senere"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Fotolys"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescerende"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horisont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Bildekvalitet"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrise"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Lysmåler"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Vent mens panorama opprettes"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rød"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Visningsskjerm"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Skumring/daggry"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Selvportrett"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Skygge"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Enkel"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Sakte film"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Kan ikke lagre. Ikke nok minne"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videokvalitet"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Hvitglødende"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action-bilde"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Skjønnhetsbilde"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Eksponeringsverdi"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Natt"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Mer"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Hurtigvisning"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Bildemodus"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Sakte film"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Brukermodus"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Hvitbalanse"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Opptaksfeil"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Opptakstid oversteget. Start på nytt"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Sett inn minnekort for å bruke kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kan ikke starte kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Kan ikke starte kamera\nunder en samtale"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktiver Bruk GPS-satellitter i Innstillinger for å bruke GPS-tagg"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Avslutte kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Forhåndsvisningsfeil"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Lukk kameraet om %d sekunder"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktiver posisjonstjeneste i Innstillinger for å bruke GPS-tagg"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Lyd"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Hjelpelinjer"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Trykk på Lukker"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Beveg kameraet sakte i pilretningen"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meny ikke støttet"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-tagg"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Sikkerhetspolicy begrenser bruk av kamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Lagret"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Selvportrett"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portrett"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Natt"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Fest/innendørs"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/snø"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Solnedgang"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Soloppgang"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fyrverkeri"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Stearinlys"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Bakgrunnslys"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Ansikts-gjenkjenning"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Opptaksmodus"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scenemodus"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusmodus"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Utendørs synlighet"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Selvutløser"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effekter"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Rediger snarveier"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Autokontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Nullstilling"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Nullstille innstillinger?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Innstillinger"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Smilebilde"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Bildeserie"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Meldingsgrense"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Minnekort"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/snø"
+
diff --git a/po/pl.po b/po/pl.po
new file mode 100644 (file)
index 0000000..4c791e2
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilizacja obrazu"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Nagrywanie z dźwiękiem"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatyczny"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Wł."
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Upiększanie"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Czarno-białe"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Niebieski"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centralnie-ważony"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Pochmurno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Słonecznie"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detekcja twarzy"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nie można utworzyć obrazów panoramicznych. Spróbuj później"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flesz"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Jarzeniowe"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Auto Focus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horyzont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Jakość obrazu"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Pocztówka"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrycowy"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Pomiar"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Moje urządzenie"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatyw"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Brak"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Wył."
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Wł."
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Zaczekaj na utworzenie panoramy"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Czerwony"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Ekran podglądu"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Zmierzch/świt"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "W cieniu"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Jedno zdjęcie"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Powolny ruch"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punktowy"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Domyślna pamięć"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nie można zapisać. Za mało pamięci"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Jakość wideo"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Żarowe"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Zdjęcie akcji"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Winietowanie"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Upiększanie"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Wartość ekspozycji"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Tryb nocny"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "Lokalizacja"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Więcej"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Szybki podgląd"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Tryb fotografowania"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Powolny ruch"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Tryb użytkownika"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balans bieli"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Błąd przechwytywania"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Przekroczono czas przechwytywania. Rozpocznij ponownie"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Aby używać kamery, włóż kartę pamięci"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Nie można uruchomić aparatu"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "W trakcie połączenia\nnie można uruchomić aparatu"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aby użyć etykiety GPS, włącz używanie sygnału GPS w Ustawieniach"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Wyjść z aparatu?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Bład podglądu"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Zamknij aparat za %d s"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aby użyć etykiety GPS, włącz usługę lokalizacji"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Dźwięk"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Linie pomocnicze"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Naciśnij spust migawki"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Przesuń powoli aparat w kierunku wskazywanym przez strzałkę"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu nieobsługiwane"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Etykieta GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Zasady zabezpieczeń ograniczają użycie aparatu"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Zapisano"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Pocztówka"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Tryb nocny"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "W pomieszczeniu"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plaża/śnieg"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Zachód słońca"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Świt"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fajerwerki"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Światło świecy"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Pod słońce"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Wł."
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detekcja twarzy"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Tryb nagrywania"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Tryb scenerii"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Auto Focus"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Ekstra jasność wyśw."
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Samowyzwalacz"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekty"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Edytuj skróty"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Kontrast automatyczny"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Ust.fabryczne"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Wyzerować ustawienia?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Ustawienia"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Detekcja uśmiechu"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Zdj. w trybie burst"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normalny"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limit wiadomości"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Karta pamięci"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plaża/śnieg"
+
diff --git a/po/pt.po b/po/pt.po
new file mode 100644 (file)
index 0000000..d0afdd0
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 segs."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 segs."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 segs."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Anti-vibrações"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Gravação de som"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automático"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Focagem automática"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Beleza"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Preto e branco"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Azul"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Medido ao centro"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Nublado"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Luz solar"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detecção de rosto"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Falha ao construir imagens panorâmicas. Tente mais tarde"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescente"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focagem"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizonte"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Qualidade de imagem"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Paisagem"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matriz"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Medição"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "O meu dispositivo"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativo"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nenhuma"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Desligar"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Ligar"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Aguarde enquanto está a ser criado panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Vermelho"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Ecrã de revisão"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Anoitecer/Amanhecer"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Auto-retrato"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sépia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Sombreado"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Único"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Câmara lenta"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Ponto"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Armazenamento"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Impossível guardar. Memória insuficiente"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Qualidade de vídeo"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescente"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Disparo de acção"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Disparo de beleza"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valor de exposição"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noite"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Mais"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Visualização rápida"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Modo de disparo"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Câmara lenta"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Modo de utilizador"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Equilíbrio brancos"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Erro de captura"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Tempo de captura excedido. Inicie novamente"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Insira o cartão de memória para utilizar a Câmara"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Impossível iniciar câmara"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Impossível iniciar a câmara\ndurante chamadas"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activar Utilizar satélites GPS em Definições para utilizar a etiqueta GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Sair da câmara?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Erro de pré-visualização"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Fechar a câmara dentro de %d segundos"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activar o serviço de localização em Definições para utilizar etiqueta GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Som"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Directrizes"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Premir obturador"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Mova a câmara lentamente na direcção da seta"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu não suportado"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Etiqueta GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "A política de segurança restringe a utilização da Câmara"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Guardado"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Auto-retrato"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Retrato"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Paisagem"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noite"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Desporto"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Festa/Interior"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Praia/Neve"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Pôr do sol"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Amanhecer"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fogo de artifício"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Texto"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Luz de velas"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Luz de fundo"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Focagem automática"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detecção de rosto"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Modo de gravação"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Modo de cena"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Modo de focagem"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Visibilidade exterior"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Temporizador"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efeitos"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Editar atalhos"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contraste automático"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Repor"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Repor definições?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Definições"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Disp. sorriso"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Disparos contínuos"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "MMS"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Cartão de memória"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Praia/Neve"
+
diff --git a/po/ro.po b/po/ro.po
new file mode 100644 (file)
index 0000000..1f12d09
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sec"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sec"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sec"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilizare de imagine"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Înregistrare audio"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automat"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Focalizare automată"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Înfrumuseţare"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Alb-negru"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Albastru"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Centrat"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Înnorat"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Lumina zilei"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detectare faţă"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Crearea imaginilor panoramice a eşuat. Încercaţi mai târziu"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Bliţ"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescent"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Focalizare"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Orizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Calitate imagine"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Peisaj"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrice"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Măsurare"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Dispozitivul meu"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nici unul"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Oprit"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Pornit"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Aşteptaţi până se creează panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Roşu"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Examinare ecran"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Apus/răsărit"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Umbră"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoramă"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Singur"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Cu încetinit."
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Stocare"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Imposibil de salvat. Memorie insuficientă"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Calitate video"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Incandescent"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Foto. cu acţiune"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "De epocă"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Fotografiere cu înfrumuseţare"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Valoare expunere"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noapte"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Mai multe"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoramă"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Vizualizare"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Mod fotografiere"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Cu încetinit."
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Mod utilizator"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balans de alb"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Eroare captură"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Durata capturării a fost depăşită. Începeţi din nou"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Inseraţi cartela de memorie pentru a utiliza Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Imposibil de pornit Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Imposibil de pornit aparat foto\nîn timpul apelului"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activaţi Utilizare sateliţi GPS din Setări pentru a utiliza eticheta GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Ieşiţi din Camera foto?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Eroare examinare"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Închidere cameră în %d secunde"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Activaţi serviciul de locaţie din Setări pentru a utiliza eticheta GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Sunet"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Grilă"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Apăsaţi pe Declanşator"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Mişcaţi încet camera foto în direcţia săgeţii"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meniu neacceptat"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Etichetă GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Politica de securitate restricţionează utilizarea camerei foto"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Salvat"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Peisaj"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noapte"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sporturi"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Petrecere/interior"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plajă/zăpadă"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Apus"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Răsărit"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Artificii"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Lumânare"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Lumină fundal"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Focalizare automată"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detectare faţă"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Mod înregistrare"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Mod scenă"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Mod focalizare"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Vizibilitate la exterior"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Temporizator"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efecte"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Editare comenzi rapide"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Contrast automat"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Reiniţializare"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Reiniţializaţi setările?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Setări"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Fotografiere zâmbet"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Fotograf. continuă"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limită mesaj"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Cartelă de memorie"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plajă/zăpadă"
+
diff --git a/po/ru.po b/po/ru.po
new file mode 100644 (file)
index 0000000..bba8f5e
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 секунд"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 секунды"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 секунд"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Стабилизация изображения"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Запись звука"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Авто"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Красивое лицо"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Черно-белое"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Синий"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Центровзвешенный"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Облачно"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Дневной свет"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Обнаружение лица"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Сбой при построении панорамных изображений. Попробуйте позже"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Вспышка"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Флуоресцентный свет"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Фокус"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Горизонт"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Качество изображения"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Пейзаж"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Макросъемка"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Матрица"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Экспозамер"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Мое устройство"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Негатив"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Нет"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Выключено"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Включено"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Подождите... идет создание панорамы"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Красный"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Экран просмотра"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Сумерки/рассвет"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Сепия"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Затемнение"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Один снимок"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Замедленное движение"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Точечный замер"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Память"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Невозможно сохранить. Недостаточно памяти"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Качество видео"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Лампа накаливания"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Снимок в движении"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Винтаж"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Красивый снимок"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Значение экспозиции"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Ночь"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Опции"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Быстрый просмотр"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Режим съемки"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Замедленное движение"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Пользовательский режим"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Баланс белого"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Ошибка съемки"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Превышено время съемки. Начните снова"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Чтобы использовать камеру, вставьте карту памяти"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Невозможно запустить камеру"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Невозможно запустить камеру\nво время вызова"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Чтобы использовать теги GPS, включите спутники GPS в разделе 'Параметры'"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Выключить камеру?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Ошибка просмотра"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Камера выключится через %d сек."
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Для использования тегов GPS включите службу определения местоположения в меню 'Настройки'"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Сетка"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Нажмите клавишу съемки"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Медленно перемещайте камеру в направлении, заданном стрелкой"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Меню не поддерживается"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Тег GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Политика безопасности ограничивает использование камеры"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Соxранено"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Портрет"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Пейзаж"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Ночь"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Спорт"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Вечеринка/в помещении"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Пляж/снег"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Закат"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Рассвет"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Фейерверк"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Текст"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Сумерки"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Подсветка"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Обнаружение лица"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Режим записи"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Сюжет"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Режим фокуса"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Видимость на улице"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Таймер"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Эффекты"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Изменить ссылки"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Автоконтрастность"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Сброс"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Сбросить настройки?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Настройки"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Распознавание улыбки"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Непрерывная съемка"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Обычный"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Ограничение размера"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Карта памяти"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Пляж/снег"
+
diff --git a/po/sk.po b/po/sk.po
new file mode 100644 (file)
index 0000000..a7cc323
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 s"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 s"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 s"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Stabilizácia obrazu"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Záznam zvuku"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automaticky"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Automatické zaostrovanie"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Krása"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Čiernobiely"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Modrá"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "S vyvážením na stred"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Oblačno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Denné svetlo"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detekcia tváre"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nepodarilo sa vytvoriť panoramatické obrázky. Skúste to neskôr"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Blesk"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Žiarivka"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Zaostrené"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kvalita obrázka"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Na šírku"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Maticové"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Meranie"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Moje zariadenie"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatív"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Žiadny"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Vyp."
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Zap."
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Počkajte, prosím, kým sa vytvorí panoráma"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Červená"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Obrazovka s ukážkou"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Súmrak/úsvit"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportrét"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sépia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Tieň"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Jediný"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Spomalený pohyb"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Bodové"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Úložisko"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nedá sa uložiť. Nedostatok pamäte"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kvalita videa"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Žiarovka"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akčný záber"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Špičkový"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Krásna snímka"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Hodnota expozície"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noc"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Ďalšie"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoráma"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Rýchly náhľad"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Režim fotografovania"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Spomalený pohyb"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Používateľský režim"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Vyváženie bielej"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Chyba záznamu"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Čas snímania bol prekročený. Začnite odznova"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Pred použitím fotoaparátu vložte pamäťovú kartu"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Fotoaparát sa nedá spustiť"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Počas hovoru nie je možné\nspustiť fotoaparát"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Pred použitím značky GPS povoľte funkciu Použiť satelity GPS v menu Nastavenia"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Ukončiť aplikáciu Fotoaparát?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Chyba ukážky"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Zatvorte fotoaparát v priebehu %d sekúnd"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Pred použitím značky GPS povoľte lokalizačnú službu v menu Nastavenia"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Vodiace čiary"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Stlačte spúšť"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Pohybujte fotoaparátom pomaly v smere šípky"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu nie je podporované"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Značka GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Politika zabezpečenia obmedzuje použitie fotoaparátu"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Uložené"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportrét"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Na výšku"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Na šírku"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noc"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Šport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Oslava/interiér"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Pláž/Sneh"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Západ slnka"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Súmrak"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Ohňostroj"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Svetlo sviečky"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Zadné osvetlenie"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Automatické zaostrovanie"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detekcia tváre"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Režim nahrávania"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scénický mód"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Režim zaostrovania"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Viditeľnosť v exteriéri"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Časovač"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekty"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Upraviť odkazy"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatický kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Vynulovať"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Vynulovať nastavenia?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Nastavenia"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Detekcia úsmevu"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Sériové snímanie"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normálny"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Limit správy"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Pamäťová karta"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Pláž/Sneh"
+
diff --git a/po/sl.po b/po/sl.po
new file mode 100644 (file)
index 0000000..a4639fe
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sek"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sek"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sek"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Odpravljanje tresenja"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Snemanje zvoka"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Samodejno"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Samodejno ostrenje"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Lepota"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Črno-belo"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Modro"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Sredinsko uteženo"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Oblačno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dnevna svetloba"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Zaznavanje obraza"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Panoramske slike ni bilo mogoče sestaviti. Poskusite pozneje"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Bliskavica"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Fluorescentno"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Žarišče"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Obzorje"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kakovost slike"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Pokrajina"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrika"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Merjenje"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Moja naprava"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Brez"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Izključeno"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Vključeno"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Počakajte, da se ustvari panorama"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Rdeče"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Ogled na zaslonu"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Svit/mrak"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Avtoportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Senca"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Enojno"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Počasno gibanje"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Točkovno"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Shranjevanje"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Ni mogoče shraniti, ker ni dovolj pomnilnika"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kakovost videa"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Žarnica"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akcijski posnetek"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintage (postaranje)"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Lepotni posnetek"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Vrednost osvetlitve"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noč"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Več"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Predogled"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Snemalni način"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Počasno gibanje"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Način uporabnika"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Ravnotežje beline"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Napaka zajemanja"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Čas zajema je presežen. Začnite znova"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Za uporabo kamere vstavite pomnilniško kartico"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Ni mogoče zagnati kamere"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Ne morem vključiti kamere\nmed klicem"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "V Nastavitvah omogočite uporabo satelitov GPS, če želite uporabljati oznake GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Želite zapreti kamero?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Napaka predogleda"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Zapri kamero čez %d sekund"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "V Nastavitvah omogočite lokacijske storitve, če želite uporabljati oznake GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Zvok"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Smernice"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Pritisnite Zaklop"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Kamero počasi premaknite v smeri puščice"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meni ni podprt."
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Oznaka GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Varnostni pravilnik omejuje uporabo kamere"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Shranjeno"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Avtoportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portret"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Pokrajina"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noč"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Šport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Zabava/znotraj"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plaža/sneg"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Sončni zahod"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Zora"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Ognjemet"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Besedilo"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Sveča"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Osvetlitev"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Samodejno ostrenje"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Zaznavanje obraza"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Snemalni način"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Način prizorišča"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Način ostrenja"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Vidnost na prostem"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Časovnik"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Učinki"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Uredi bližnjice"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Samodejni kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Ponastavi"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Ponastavitev nastavitev?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Nastavitve"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Posn. nasmeška"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Rafalni posnetek"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normalno"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Omejitev sporočila"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Pomnilniška kartica"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plaža/sneg"
+
diff --git a/po/sr.po b/po/sr.po
new file mode 100644 (file)
index 0000000..15cfab1
--- /dev/null
+++ b/po/sr.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 s."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 s."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 s."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Kompenzacija drmanja"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Snimanje zvuka"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Automatski"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Lepota"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Crno-belo"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Plava"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Središnje procenjeno"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Oblačno"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dnevna svetlost"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Detekcija lica"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Nije uspela izrada panoramske slike. Probaj kasnije"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Blic"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Flourescentno"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horizont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Kvalitet snimka"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Pejzaž"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matrično"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Merenje"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Moj uređaj"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Nema"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Isključeno"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Uključeno"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Sačekaj dok se kreira panoramski snimak"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Crvena"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Pregledaj ekran"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Sumrak/Svitanje"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Senka"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Pojedinačni"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Usporeni prikaz"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Tačkasto"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Memorija"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Nemoguće sačuvati. Nedovoljna memorija"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Kvalitet video zapisa"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Usijanje"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Akcioni snimak"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Vintidž"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Ulepšani snimak"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Nivo ekspozicije"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Noć"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Još"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Brz pregled"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Način snimanja"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Usporeni prikaz"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Korisnički režim"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Balans bele boje"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Greška pri snimanju"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Vreme za 'hvatanje' je isteklo. Početi ponovo"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Ubaci memorijsku karticu radi korišćenja kamere"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Nemoguće pokrenuti kameru"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Nemoguće uključiti kameru tokom poziva"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Omogući korišćenje GPS satelita u Podešavanjima za korišćenje GPS oznake"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Napustiti kameru?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Greška pri pregledanju"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Isključi kameru za %d sekunde/i"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Omogući uslugu lokacije u podešavanjima za korišćenje GPS oznake"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Zvuk"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Smernice"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Pritisni okidač"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Polako pomeri telefon u pravcu strelice"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Meni nije podržan"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS oznaka"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Politika bezbednosti ograničava upotrebu kamere"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Sačuvano"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Autoportret"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Uspravno"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Pejzaž"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Noć"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sportovi"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Žurka/Unutra"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plaža/Sneg"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Zalazak sunca"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Zora"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Vatromet"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Tekst"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Svetlost sveća"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Pozadinsko svetlo"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Detekcija lica"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Režim snimanja"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Režim Scena"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Režim fokusiranja"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Vidljivost napolju"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Tajmer"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efekti"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Izmeni prečice"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatski kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Resetuj"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Resetovanje podešavanja?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Podešavanja"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Snimanje osmeha"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Rafalni snimak"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normalan"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Ograničenje poruka"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Memorijska kartica"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plaža/Sneg"
+
diff --git a/po/sv.po b/po/sv.po
new file mode 100644 (file)
index 0000000..5b86f19
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 s"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 s"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 s"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Bildstabilisering"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Ljudinspelning"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Auto"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Skönhet"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Svartvitt"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Blå"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Mittviktad"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Mulet"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Dagsljus"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Ansiktssökning"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Det gick inte att bygga panoramabilder. Försök senare"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Fotolampa"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Lysrör"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Fokus"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Horisont"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Bildkvalitet"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matris"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Mätning"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "Bildmeddelande"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Min enhet"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negativ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Ingen"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Av"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "På"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Vänta medan panoramat skapas"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Röd"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Granska"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Skymning/Soluppgång"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Självporträtt"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepia"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Skugga"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "En"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Punkt"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Lagring"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Det går inte att spara. Otillräckligt minne"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Videokvalitet"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Glödlampa"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Action-bild"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Antik"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Skönhetsbild"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Exponeringsvärde"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Natt"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Mer"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panorama"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Snabbvisning"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Fotoläge"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Slowmotion"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Användarläge"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Vitbalans"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Tagningsfel"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Tagningstiden har överskridits. Starta igen"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Sätt i minneskortet för att använda Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Det går inte att starta Kamera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Det går inte att\nstarta kameran\nunder samtal"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktivera Använda GPS-satelliter i Inställningarna för att använda GPS-tagg"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Avsluta kamera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Fel vid förhandsgranskning"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Stäng kameran om %d sekunder"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Aktivera platstjänsten i Inställningarna för att använda GPS-tagg"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Ljud"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Riktlinjer"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Tryck på avtryckaren"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Flytta kameran långsamt i pilens riktning"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menyn stöds inte"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS-tagg"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Säkerhetspolicy begränsar användningen av kamera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Sparad"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Självporträtt"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Porträtt"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Landskap"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Natt"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Sport"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Fest/Inomhus"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Strand/snö"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Solnedgång"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Gryning"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Fyrverkeri"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Text"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Levande ljus"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Bakgrundsbelysning"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Autofokus"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Ansiktssökning"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Inspelningsläge"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Scenläge"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Fokusläge"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Synlighet utomhus"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Självutlösare"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Effekter"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Redigera genvägar"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Automatisk kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Nollställ"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Återställa inställningar?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Inställningar"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Leendeavkänning"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Serietagning"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Meddelandegräns"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Minneskort"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Strand/snö"
+
diff --git a/po/th.po b/po/th.po
new file mode 100644 (file)
index 0000000..5c9ba68
--- /dev/null
+++ b/po/th.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 ​วินาที"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 ​วินาที"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 ​วินาที"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "ระบบป้องการสั่นไหว"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "การ​บันทึก​เสียง"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "อัตโนมัติ"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "ออ​โต้​โฟกัส"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "บิวตี้"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "ขาวดำ​"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "สี​น้ำเงิน"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "เน้น​ตรง​กลาง"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "มีเมฆเป็นส่วน\nมาก"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "แสง​จ้า"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "ตรวจ​จับ​ใบ​หน้า"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "ไม่​สามารถ​สร้าง​ภาพ​แบบ​พา​โนรามา ลอง​ใหม่​ภาย​หลัง"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "แฟลช"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "ฟลูออ\nเรสเซนท์"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "โฟกัส"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "ขอบ​ฟ้า"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "คุณภาพ​รูป​ภาพ"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "ทิวทัศน์"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "มาโคร"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "เมท​ริกซ์"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "เครื่อง​วัด"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "อุปกรณ์ส่วนตัว"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "เนกาทีฟ"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "ไม่​มี"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "ปิด"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "เปิด"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "โปรด​รอ​สัก​ครู่​ใน​ขณะ​ที่​สร้าง​ภาพ​มุม​กว้าง"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "สี​แดง"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "แสดง​หน้า​จอ"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "เวลา​เย็น​ก่อน​ค่ำ/​พระ​อาทิตย์​ขึ้น"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "ถ่ายตัวเอง"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "ซีเปีย"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "เงา"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "พา​นอรา​ม่า"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "ชอท​เดียว"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "เคลื่อน\n​ไหว​ช้า"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "ตำแหน่ง"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "ที่​เก็บ"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "ไม่​สามารถ​บันทึก​ได้ หน่วย​ความ​จำ​ไม่​พอ"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "คุณภาพ​วี​ดี​โอ"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "อินแคน\nเดสเซนท์"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "ถ่าย​ภาพ​แอ​คชั่น"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "วิ​นเท​จ"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "บิวตี้ชอท"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "ค่า​​ชดเชยแสง"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "กลาง​คืน"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "เพิ่ม​เติม"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "พา​นอรา​ม่า"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "แสดง​ด่วน"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "โหมด​ถ่าย​รูป"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "เคลื่อน\n​ไหว​ช้า"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "โหมด​ผู้​ใช้"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "สมดุล​สี​ขาว"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "การจับ​ภาพ​ผิด​พลาด"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "การจับ​ภาพ​เกิน​เวลา เริ่ม​ใหม่​อีก​ครั้ง"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "ใส่​การ์ด​ความ​จำ​เพื่อ​ใช้​กล้อง"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "ไม่​สามารถ​เริ่ม​ใช้​งานกล้อง​ถ่าย​รูป"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "ใช้​กล้อง​ระหว่าง\n​โทร​ไม่​ได้"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "ให้​เปิด​ใช้​งาน ใช้​ดาว​เทียม GPS ​ใน​การ​ตั้ง​ค่า​เพื่อ​ใช้​แท็ก GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "ออก​จากกล้อง​ถ่าย​รูป?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "ดู​ตัวอย่าง​ผิด​พลาด"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "ปิด​กล้อง​ถ่าย​รูป​ใน %d ​วินาที"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "เปิด​ใช้​งานบริการ​ระบุ​ตำแหน่ง​ใน การ​ตั้ง​ค่า เพื่อ​ใช้​แท็ก GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "เสียง"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "ไก​ด์​ไลน์"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "กด​ปุ่ม​ชัตเตอร์"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "ขยับ​กล้อง​ช้าๆ ตาม​ทิศ​ทาง​ลูก​ศร"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "เมนู​ไม่​รอง​รับ"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "แท็ก GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "นโยบาย​ความ​ปลอดภัย​จำกัด​การ​ใช้​กล้อง​ถ่าย​รูป"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "บันทึก\nเรียบร้อย"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "ถ่ายตัวเอง"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "รูป​คน"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "ทิวทัศน์"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "กลาง​คืน"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "กีฬา"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "ปาร์ตี้ / ​ใน​ร่ม"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "ชาย​หาด/​หิมะ"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "พระ​อาทิตย์​ตก"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "พระ​อาทิตย์​ขึ้น"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "ดอกไม้ไฟ"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "ตัว​อักษร"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "แสง​เทียน"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "ย้อนแสง"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "ออ​โต้​โฟกัส"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "ตรวจ​จับ​ใบ​หน้า"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "โหมด​การ​บันทึก"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "โหมด​ซีน"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "โหมด​โฟกัส"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "ถ่ายกลางแจ้ง"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "การ​ตั้ง​เวลา"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "เอ​ฟเฟ็ค​ส์"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "แก้ไข​ทาง​ลัด"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "ปรับ​ความ​คม​ชัด​อัตโนมัติ"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "ตั้ง​​ใหม่"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "​ตั้ง​ค่าใหม่?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "การตั้งค่า"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "สไมล์​ชอท"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "การ​ถ่าย​ภาพ​ต่อ​เนื่อง"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "ปกติ"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "​จำกัด​ข้อ​ความ"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "การ์ด​\nความ​จำ"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "ชาย​หาด/​หิมะ"
+
diff --git a/po/tr_TR.po b/po/tr_TR.po
new file mode 100644 (file)
index 0000000..d5c1bf9
--- /dev/null
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 sn"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 sn"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 sn"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Sarsıntı önleme"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Ses kayıt"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Otomatik"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Otomatik odaklama"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Güzellik"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Siyah beyaz"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Mavi"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Orta-ağırlıklı"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Bulutlu"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Günışığı"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Yüz algılama"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Panoramik resimler oluşturulamadı. Daha sonra deneyin"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flaş"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Floresan"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Odak"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Ufuk"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Resim kalitesi"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Manzara"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Makro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Matris"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Metreleme"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Cihazım"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Negatif"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Hiçbiri"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Kapalı"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Açık"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Panorama oluşturulurken lütfen bekleyin"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Kırmızı"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "İnceleme ekranı"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Alacakaranlık/Şafak"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Otoportre"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Sepya"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Gölge"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Panoramik"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Tek"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Yavaş hareketli"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Spot"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Kayıt yeri"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Kaydedilemiyor. Yeterli hafıza yok"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Video kalitesi"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Parlak"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Hareketli çekim"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Nostalji"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Güzellik çekimi"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Poz değeri"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Gece"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Diğer"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Panoramik"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Hızlı görüntü"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Çekim modu"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Yavaş hareketli"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Kullanıcı modu"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Beyaz dengesi"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Yakalama hatası"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Yakalama süresi aşıldı. Yeniden başlatın"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Kamera kullanmak için hafıza kartı takın"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Kamera başlatılamıyor"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Arama sırasında\nkamera başlatılamaz"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS etiketi kullanmak için Ayarlar'dan GPS uyduyu etkinleştirin"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Kamera kapatılsın mı?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Önizleme hatası"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Kamerayı %d saniye içinde kapat"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "GPS etiketi kullanmak için Ayarlar'dan konum servisini etkinleştirin"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Ses"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Yönergeler"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Deklanşöre Basın"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Kamerayı yavaşça ok yönünde hareket ettirin"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menü desteklenmedi"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS imi"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Güvenlik ilkesi Kamera kullanımını kısıtlıyor"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Kaydedildi"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Otoportre"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Portre"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Manzara"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Gece"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Spor"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Parti/Kapalı alan"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Plaj/Kar"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Gün batımı"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Şafak"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Havai fişek"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Metin"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Mum Işığı"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Aydınlatma"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Otomatik odaklama"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Yüz algılama"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Kayıt modu"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Sahne modu"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Odaklama modu"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Açık hava görünürlüğü"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Zamanlayıcı"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Efektler"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Kısayolları düzenle"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Otomatik kontrast"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Sıfırla"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Ayarlar sıfırlansın mı?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Ayarlar"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Gülücük yakala :-)"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Çoklu çekim"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Normal"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Mesaj sınırı"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Hafıza kartı"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Plaj/Kar"
+
diff --git a/po/uk.po b/po/uk.po
new file mode 100644 (file)
index 0000000..5f3c77c
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 сек."
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 сек."
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 сек."
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Стабілізація зображення"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Запис звуку"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Авто"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Краса"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Чорно-біле"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Синій"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Відцентро\nвано"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Хмарно"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Денне світло"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Розпізнавання обличчя"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Не вдалося створити панорамні зображення. Спробуйте пізніше"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Спалах"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Флуоресцентний"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Шрифт меню"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Горизонт"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Якість зображення"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Пейзаж"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Макро"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Матриця"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Замірювання"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Мій пристрій"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Негатив"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Немає"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Вимкнено"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Увімкнено"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Зачекайте, доки створюється панорама"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Червоний"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Екран перегляду"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Сутінки/світанок"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Сепія"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Тінь"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Одинарний"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Сповільнення"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Точковий замір"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Пам'ять"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Неможливо зберегти. Недостатньо пам’яті"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Якість відео"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Штучне світло"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Знімок дії"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Вінтаж"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Прикрашення знімку"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Значення витримки"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Ніч"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "Більше"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Панорама"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Швидкий перегляд"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Режим зйомки"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Сповільнення"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Режим користувача"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Баланс білого"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Помилка зйомки"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Час зйомки перевищено. Розпочніть знову"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Вставте карту пам’яті, щоб скористатися камерою"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Неможливо запустити камеру"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Неможливо запустити камеру\nпід час виклику"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Увімкніть функцію 'Використовувати GPS-супутники' в установках, щоб скористатися тегом GPS"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Вийти з камери?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Помилка попереднього перегляду"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Закриття камери через %d сек."
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Увімкніть послугу розташування в розділі Установки, щоб скористатися тегом GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Звук"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Вказівки"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Натисніть клавішу затвору"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Повільно переміщуйте камеру в напрямку стрілки"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Меню не підтримується"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Тег GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Використання камери обмежено політикою безпеки"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Збережено"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Автопортрет"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Портрет"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Пейзаж"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Ніч"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Спорт"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Вечірка/У приміщенні"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Пляж/сніг"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Захід сонця"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Світанок"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Феєрверк"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Текст"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Сутінки"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Підсвічування"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Автофокус"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Розпізнавання обличчя"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Режим відеозйомки"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Режим сцени"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Режим фокусування"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Видимість на вулиці"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Таймер"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Ефекти"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Редагувати клавіші шв. доступу"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Автоконтрастність"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Скинути"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Скинути параметри?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Установки"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Знімок посмішки"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Серійна зйомка"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Звичайна"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Обмеження повідомлення"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Карта пам’яті"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Пляж/сніг"
+
diff --git a/po/update-po.sh b/po/update-po.sh
new file mode 100644 (file)
index 0000000..c5be4bf
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+PACKAGE=camera
+SRCROOT=..
+POTFILES=POTFILES.in
+
+#ALL_LINGUAS= am az be ca cs da de el en_CA en_GB es et fi fr hr hu it ja ko lv mk ml ms nb ne nl pa pl pt pt_BR ru rw sk sl sr sr@Latn sv ta tr uk vi zh_CN zh_TW
+ALL_LINGUAS="en_US en_GB ja ko zh_CN"
+
+XGETTEXT=/usr/bin/xgettext
+MSGMERGE=/usr/bin/msgmerge
+
+echo -n "Make ${PACKAGE}.pot  "
+if [ ! -e $POTFILES ] ; then
+       echo "$POTFILES not found"
+       exit 1
+fi
+
+$XGETTEXT --default-domain=${PACKAGE} --directory=${SRCROOT} \
+               --add-comments --keyword=_ --keyword=N_ --files-from=$POTFILES \
+&& test ! -f ${PACKAGE}.po \
+       || (rm -f ${PACKAGE}.pot && mv ${PACKAGE}.po ${PACKAGE}.pot)
+
+if [ $? -ne 0 ]; then
+       echo "error"
+       exit 1
+else
+       echo "done"
+fi
+
+for LANG in $ALL_LINGUAS; do 
+       echo "$LANG : "
+
+       if [ ! -e $LANG.po ] ; then
+               sed 's/CHARSET/UTF-8/g' ${PACKAGE}.pot > ${LANG}.po
+               echo "${LANG}.po created"
+       else
+               if $MSGMERGE ${LANG}.po ${PACKAGE}.pot -o ${LANG}.new.po ; then
+                       if cmp ${LANG}.po ${LANG}.new.po > /dev/null 2>&1; then
+                               rm -f ${LANG}.new.po
+                       else
+                               if mv -f ${LANG}.new.po ${LANG}.po; then
+                                       echo "" 
+                               else
+                                       echo "msgmerge for $LANG.po failed: cannot move $LANG.new.po to $LANG.po" 1>&2
+                                       rm -f ${LANG}.new.po
+                                       exit 1
+                               fi
+                       fi
+               else
+                       echo "msgmerge for $LANG failed!"
+                       rm -f ${LANG}.new.po
+               fi
+       fi
+       echo ""
+done
+
diff --git a/po/vi.po b/po/vi.po
new file mode 100644 (file)
index 0000000..4b74ad3
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 giây"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 giây"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 giây"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "Chống rung"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "Ghi âm"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "Tự động"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "Chỉnh tiêu điểm tự động"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "Vẻ đẹp"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "Đen trắng"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "Xanh dương"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "Trọng tâm"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "Mây"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "Ban ngày"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "Nhận diện khuôn mặt"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "Không thể tạo ảnh toàn cảnh. Thử lại sau"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "Flash"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "Huỳnh quang"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "Tiêu điểm"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "Chân trời"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "Chất lượng ảnh"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "Phong cảnh"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "Macro"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "Ma trận"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "Đo sáng"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "Thiết bị của bạn"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "Âm bản"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "Không có"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "Tắt"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "Bật"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "Xin hãy chờ trong khi tạo toàn cảnh"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "Đỏ"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "Xem tren màn hình"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "Bóng tối/Bình minh"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "Chụp chân dung"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "Nâu đỏ"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "Độ tối"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "Toàn cảnh"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "Đơn"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "Di chuyển chậm"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "Điểm"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "Lưu trữ"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "Không thể lưu. Không đủ bộ nhớ"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "Chất lượng video"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "Sáng chói"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "Chụp hành động"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "Tối ở mép ảnh"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "Chụp vẻ đẹp"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "Giá trị phơi sáng"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "Ban đêm"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "L.chọn"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "Toàn cảnh"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "Xem nhanh"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "Chế độ chụp"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "Di chuyển chậm"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "Chế độ người dùng"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "Cân bằng trắng"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "Lỗi chụp"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "Đã vượt quá thời gian chụp. Bắt đầu lại"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "Lắp thẻ nhớ để sử dụng Máy ảnh"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "Không thể chạy Camera"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "Không thể khởi động máy chụp ảnh\n khi đang gọi"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Bật sử dụng vệ tinh GPS tại Cài đặt để sử dụng GPS tag"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "Thoát Camera?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "Lỗi xem trước"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "Đóng camera sau %d giây"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "Hiệu lực hóa dịch vụ định vị trong Cài đặt để dùng thẻ GPS"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "Âm thanh"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "Hướng dẫn"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "Nhấn Bấm máy"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "Từ từ di chuyển máy ảnh theo hướng mũi tên"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "Menu không được hỗ trợ"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "Thẻ GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "Chính sách bảo mật hạn chế việc sử dụng Camera"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "Đã lưu"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "Chụp chân dung"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "Chân dung"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "Phong cảnh"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "Ban đêm"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "Thể thao"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "Tiệc/ Trong nhà"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "Biển/Tuyết"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "Hoàng hôn"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "Bình minh"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "Pháo hoa"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "Văn bản"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "Ánh sáng nến"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "Ngược sáng"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "Chỉnh tiêu điểm tự động"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "Nhận diện khuôn mặt"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "Chế độ ghi"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "Chế độ phong cảnh"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "Chế độ tiêu điểm"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "Độ rõ khi ở ngoài trời"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "Bộ đếm thời gian"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "Hiệu ứng"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "Sửa phím tắt"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "Tự động tương phản"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "Xóa"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "Khởi động lại các cài đặt?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "Cài đặt"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "Chụp nụ cười"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "Chụp liên tiếp"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "Bình thường"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "Giới hạn tin nhắn"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "Thẻ nhớ"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "Biển/Tuyết"
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644 (file)
index 0000000..53c3f06
--- /dev/null
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 秒"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 秒"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 秒"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "防震"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "录音"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "自动"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "自动对焦"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "美肌"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "黑白"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "蓝色"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "中心重点测光"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "阴天"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "白天"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "人脸识别"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "创建全景图像失败。 请稍后再试"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "闪光灯"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "荧光"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "聚焦"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "地平线"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "图像质量"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "感光度"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "风景"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "微距"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "矩阵"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "测光"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "彩信"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "我的设备"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "负片"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "无"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "关"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "开"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "正在创建全景图,请稍等"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "红色"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "查看屏幕"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "黄昏/黎明"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "自拍"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "深褐色"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "阴影"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "全景拍摄"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "单一拍摄"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "慢动作"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "点"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "存储器"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "无法保存。存储空间不足"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "视频质量"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "白炽光"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "动态照片"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "仿旧"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "美肌拍摄"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "曝光值"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "夜间拍摄"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "更多"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "全景拍摄"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "快速查看"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "拍摄模式"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "慢动作"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "用户模式"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "白平衡"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "拍摄错误"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "拍摄时间已过。重新启动"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "插入存储卡以使用照相机"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "无法启动照相机"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "无法启动照相机 通话中"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "在设置中启动使用GPS卫星以使用GPS标签"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "退出相机?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "预览错误"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "在 %d 秒内关闭摄像头"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "在设置中启用位置服务以使用 GPS 标记"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "声音"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "构图线"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "按下快门"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "沿着箭头方向缓慢移动照相机"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "不支持功能表"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS标签"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "安全政策限制使用照相机"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "已保存"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "自拍"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "肖像"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "风景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "夜间拍摄"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "运动"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "宴会/室内"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "海滩/雪景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "日落"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "黎明"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "焰火"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "文本"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "烛火"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "背景光"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "自动对焦"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "人脸识别"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "录制模式"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "场景模式"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "聚焦模式"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "户外能见度"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "定时器"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "效果"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "编辑快捷方式"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "自动调整对比度"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "重置"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "要复位设置吗?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "设定"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "微笑拍摄"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "急速连拍"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "正常"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "信息限制"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "存储卡"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "海滩/雪景"
+
diff --git a/po/zh_HK.po b/po/zh_HK.po
new file mode 100644 (file)
index 0000000..eef2f31
--- /dev/null
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 秒"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 秒"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 秒"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "防震"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "錄音"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "自動"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "自動對焦"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "美麗"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "黑白"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "中央重點"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "陰天"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "白天"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "面孔偵測"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "無法建立全景影像。請稍後再試"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "閃光燈"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "日光燈"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "對焦"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "地平線"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "圖像品質"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "微距"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "矩陣"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "測光"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "MMS"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "底片"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "無"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "開啟"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "請稍候,正在建立全景"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "紅色"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "預覽螢幕"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "黃昏/黎明"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "自拍"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "深褐色"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "影子"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "全景"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "單張"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "慢動作"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "點"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "儲存位置"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "無法儲存。記憶體不足"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "影片品質"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "高色溫光管"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "動作拍攝"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "復古"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "美麗拍攝"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "曝光值"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "夜間"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "更多"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "全景"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "快速查看"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "拍攝模式"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "慢動作"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "用戶模式"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "白平衡"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "拍攝錯誤"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "拍攝時間已過。請重新開始"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "插入記憶卡以使用相機"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "無法啟動相機"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "通話期間無法啟動相機"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "在設定中開啟使用 GPS 衛星以使用 GPS 標籤"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "退出相機嗎?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "預覽錯誤"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "在 %d 秒內關閉相機"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "啟用設定中的位置服務以使用 GPS 標籤"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "聲音"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "指引"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "按下快門"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "順著箭頭方向緩慢移動相機"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "功能表不受支援"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS 標籤"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "安全政策限制使用相機"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "已儲存"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "自拍"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "人像"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "夜間"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "運動"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "派對/室內"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "海灘/雪景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "日落"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "日出"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "煙花"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "文字"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "燭光"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "背光"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "自動對焦"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "面孔偵測"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "錄製模式"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "場景模式"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "對焦模式"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "戶外能見度"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "計時器"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "效果"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "編輯快捷鍵"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "自動調整對比度"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "重設"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "要重設設定嗎?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "一笑即拍"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "連續快拍"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "正常"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "訊息限制"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "記憶卡"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "海灘/雪景"
+
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644 (file)
index 0000000..4ffd12c
--- /dev/null
@@ -0,0 +1,327 @@
+msgid "IDS_CAM_BODY_10_SEC"
+msgstr "10 秒"
+
+msgid "IDS_CAM_BODY_2_SEC"
+msgstr "2 秒"
+
+msgid "IDS_CAM_BODY_5_SEC"
+msgstr "5 秒"
+
+msgid "IDS_CAM_BODY_ANTI_SHAKE"
+msgstr "防手震"
+
+msgid "IDS_CAM_BODY_AUDIO_RECORDING"
+msgstr "錄製聲音"
+
+msgid "IDS_CAM_BODY_AUTO"
+msgstr "自動"
+
+msgid "IDS_CAM_BODY_AUTO_FOCUS"
+msgstr "自動對焦"
+
+msgid "IDS_CAM_BODY_BEAUTY"
+msgstr "美顏模式"
+
+msgid "IDS_CAM_BODY_BLACK_AND_WHITE"
+msgstr "黑白"
+
+msgid "IDS_CAM_BODY_BLUE"
+msgstr "藍色"
+
+msgid "IDS_CAM_BODY_CENTER_WEIGHTED"
+msgstr "中央權重中央加重"
+
+msgid "IDS_CAM_BODY_CLOUDY"
+msgstr "陰天"
+
+msgid "IDS_CAM_BODY_DAYLIGHT"
+msgstr "白天"
+
+msgid "IDS_CAM_BODY_FACE_DETECTION"
+msgstr "臉部偵測"
+
+msgid "IDS_CAM_BODY_FAILED_TO_BUILD_PANORAMIC_IMAGES_TRY_LATER"
+msgstr "無法組建全景影像。請稍後再試"
+
+msgid "IDS_CAM_BODY_FLASH"
+msgstr "閃光燈"
+
+msgid "IDS_CAM_BODY_FLUORESCENT"
+msgstr "螢光燈"
+
+msgid "IDS_CAM_BODY_FOCUS"
+msgstr "對焦"
+
+msgid "IDS_CAM_BODY_HORIZON"
+msgstr "水平線"
+
+msgid "IDS_CAM_BODY_IMAGE_QUALITY"
+msgstr "影像品質"
+
+msgid "IDS_CAM_BODY_ISO"
+msgstr "ISO"
+
+msgid "IDS_CAM_BODY_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_BODY_MACRO"
+msgstr "近拍"
+
+msgid "IDS_CAM_BODY_MATRIX"
+msgstr "矩陣"
+
+msgid "IDS_CAM_BODY_METERING"
+msgstr "測光"
+
+msgid "IDS_CAM_BODY_MMS"
+msgstr "多媒體訊息"
+
+msgid "IDS_CAM_BODY_MY_DEVICE"
+msgstr "我的裝置"
+
+msgid "IDS_CAM_BODY_NEGATIVE"
+msgstr "負片"
+
+msgid "IDS_CAM_BODY_NONE"
+msgstr "無"
+
+msgid "IDS_CAM_BODY_OFF"
+msgstr "關"
+
+msgid "IDS_CAM_BODY_ON"
+msgstr "開啟"
+
+msgid "IDS_CAM_BODY_PLEASE_WAIT_WHILE_CREATING_PANORAMA"
+msgstr "請稍候,正在建立全景"
+
+msgid "IDS_CAM_BODY_RED"
+msgstr "紅色"
+
+msgid "IDS_CAM_BODY_REVIEW_SCREEN"
+msgstr "檢視畫面"
+
+msgid "IDS_CAM_BODY_SCENEMODE_DUSK_DAWN"
+msgstr "黃昏/黎明"
+
+msgid "IDS_CAM_BODY_SELF_SHOT"
+msgstr "自拍"
+
+msgid "IDS_CAM_BODY_SEPIA"
+msgstr "褐色"
+
+msgid "IDS_CAM_BODY_SHADE"
+msgstr "陰影"
+
+msgid "IDS_CAM_BODY_SHOOTING_MODE_PANORAMA"
+msgstr "全景"
+
+msgid "IDS_CAM_BODY_SINGLE"
+msgstr "單拍"
+
+msgid "IDS_CAM_BODY_SLOW_MOTION"
+msgstr "慢動作"
+
+msgid "IDS_CAM_BODY_SPOT"
+msgstr "點"
+
+msgid "IDS_CAM_BODY_STORAGE"
+msgstr "儲存空間"
+
+msgid "IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"
+msgstr "無法儲存。記憶體不足"
+
+msgid "IDS_CAM_BODY_VIDEO_QUALITY"
+msgstr "影片品質"
+
+msgid "IDS_CAM_BODY_WHITEBALANCE_INCANDESCENT"
+msgstr "白熾燈"
+
+msgid "IDS_CAM_BUTTON_ACTION_SHOT"
+msgstr "動作"
+
+msgid "IDS_CAM_BUTTON_VINTAGE"
+msgstr "復古"
+
+msgid "IDS_CAM_OPT_BEAUTY_SHOT"
+msgstr "美顏模式"
+
+msgid "IDS_CAM_OPT_CAMERAEXPOSUREVALUE"
+msgstr "曝光值"
+
+msgid "IDS_CAM_OPT_CAMERASCENESNIGHT"
+msgstr "夜間"
+
+msgid "IDS_CAM_OPT_GPS"
+msgstr "GPS"
+
+msgid "IDS_CAM_OPT_MORE"
+msgstr "更多"
+
+msgid "IDS_CAM_OPT_PANORAMA"
+msgstr "全景"
+
+msgid "IDS_CAM_OPT_QUICKVIEW"
+msgstr "快速檢視"
+
+msgid "IDS_CAM_OPT_SHOOTING_MODE"
+msgstr "拍攝模式"
+
+msgid "IDS_CAM_OPT_SLOW_MOTION"
+msgstr "慢動作"
+
+msgid "IDS_CAM_OPT_USER_MODE"
+msgstr "使用者模式"
+
+msgid "IDS_CAM_OPT_WHITE_BALANCE_ABB"
+msgstr "白平衡"
+
+msgid "IDS_CAM_POP_CAPTURE_ERROR"
+msgstr "拍攝錯誤"
+
+msgid "IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"
+msgstr "已超過拍攝時間。請重新開始"
+
+msgid "IDS_CAM_POP_INSERT_MEMORY_CARD_TO_USE_CAMERA"
+msgstr "插入記憶卡使用照相機"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA"
+msgstr "無法啟動相機"
+
+msgid "IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"
+msgstr "通話期間無法啟動相機"
+
+msgid "IDS_CAM_POP_ENABLE_USE_GPS_SATELLITES_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "在設定中開啟使用 GPS 衛星以使用 GPS 標籤"
+
+msgid "IDS_CAM_POP_EXIT_CAMERA_Q"
+msgstr "離開相機嗎?"
+
+msgid "IDS_CAM_POP_PREVIEW_ERROR"
+msgstr "預覽錯誤"
+
+msgid "IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS"
+msgstr "在 %d 秒內關閉相機"
+
+msgid "IDS_CAM_POP_ENABLE_LOCATION_SERVICE_IN_SETTINGS_TO_USE_GPS_TAG"
+msgstr "啟用設定中的位置服務以使用 GPS 標籤"
+
+msgid "IDS_CAM_BODY_SOUND"
+msgstr "音效"
+
+msgid "IDS_CAM_BODY_GUIDELINE"
+msgstr "指引線"
+
+msgid "IDS_CAM_POP_PRESS_SHUTTER"
+msgstr "按快門"
+
+msgid "IDS_CAM_POP_MOVE_CAMERA_SLOWLY_IN_DIRECTION_OF_ARROW"
+msgstr "依據箭頭方式緩慢移動相機"
+
+msgid "IDS_CAM_POP_ERROR_MESSAGE"
+msgstr "選單不受支援"
+
+msgid "IDS_CAM_BODY_GPS_TAG"
+msgstr "GPS"
+
+msgid "IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"
+msgstr "由於安全政策,使用相機被限制"
+
+msgid "IDS_CAM_POP_SAVED"
+msgstr "已儲存"
+
+msgid "IDS_CAM_BUTTON2_SELF_PORTRAIT"
+msgstr "自拍"
+
+msgid "IDS_CAM_OPT_SCENE_PORTRAIT"
+msgstr "人像"
+
+msgid "IDS_CAM_OPT_SCENE_LANDSCAPE"
+msgstr "風景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_NIGHT"
+msgstr "夜間"
+
+msgid "IDS_CAM_OPT_SCENE_SPORTS"
+msgstr "運動"
+
+msgid "IDS_CAM_OPT_SCENEMODE_PARTY_INDOOR"
+msgstr "派對/室內"
+
+msgid "IDS_CAM_BODY_BEACH_SNOW"
+msgstr "海灘/雪景"
+
+msgid "IDS_CAM_OPT_SCENEMODE_SUNSET"
+msgstr "日落"
+
+msgid "IDS_CAM_OPT_SCENE_DAWN"
+msgstr "黎明"
+
+msgid "IDS_CAM_BODY_SCENEMODE_FIREWORK"
+msgstr "煙火"
+
+msgid "IDS_CAM_BODY_SCENEMODE_TEXT"
+msgstr "文字"
+
+msgid "IDS_CAM_OPT_SCENEMODE_CANDLELIGHT"
+msgstr "燭光下"
+
+msgid "IDS_CAM_OPT_SCENE_BACKLIGHT"
+msgstr "背光"
+
+msgid "IDS_CAM_OPT_AUTO_FOCUS"
+msgstr "自動對焦"
+
+msgid "IDS_CAM_OPT_FACE_DETECTION"
+msgstr "臉部偵測"
+
+msgid "IDS_CAM_OPT_RECORDING_MODE"
+msgstr "錄製模式"
+
+msgid "IDS_CAM_BODY_SCENE_MODE"
+msgstr "場景模式"
+
+msgid "IDS_CAM_BODY_FOCUS_MODE"
+msgstr "對焦模式"
+
+msgid "IDS_CAM_BODY_OUTDOOR_VISIBILITY"
+msgstr "戶外能見度"
+
+msgid "IDS_CAM_BODY_TIMER"
+msgstr "計時器"
+
+msgid "IDS_CAM_BODY_EFFECTS"
+msgstr "效果"
+
+msgid "IDS_CAM_OPT_EDIT_SHORTCUTS"
+msgstr "編輯快捷鍵"
+
+msgid "IDS_CAM_BODY_AUTO_CONTRAST"
+msgstr "自動對比"
+
+msgid "IDS_CAM_BODY_RESET_SETTINGS_RESET"
+msgstr "重設"
+
+msgid "IDS_CAM_POP_RESET_SETTINGS_Q"
+msgstr "要重設設定嗎?"
+
+msgid "IDS_CAM_BODY_SETTINGS"
+msgstr "設定"
+
+msgid "IDS_CAM_OPT_SMILE_SHOT"
+msgstr "微笑拍攝"
+
+msgid "IDS_CAM_OPT_BURST_SHOT_ABB"
+msgstr "連續快拍"
+
+msgid "IDS_CAM_BODY_RECORDINGMODE_NORMAL"
+msgstr "正常"
+
+msgid "IDS_CAM_OPT_MESSAGE_LIMIT"
+msgstr "訊息限制"
+
+msgid "IDS_CAM_OPT_MEMORY_CARD"
+msgstr "記憶卡"
+
+msgid "IDS_CAM_OPT_BEACH_SNOW"
+msgstr "海灘/雪景"
+
diff --git a/sounds/Shutter_01.wav b/sounds/Shutter_01.wav
new file mode 100644 (file)
index 0000000..3752fc4
Binary files /dev/null and b/sounds/Shutter_01.wav differ
diff --git a/sounds/Shutter_02.wav b/sounds/Shutter_02.wav
new file mode 100644 (file)
index 0000000..55a121a
Binary files /dev/null and b/sounds/Shutter_02.wav differ
diff --git a/sounds/Shutter_03.wav b/sounds/Shutter_03.wav
new file mode 100644 (file)
index 0000000..ba210d7
Binary files /dev/null and b/sounds/Shutter_03.wav differ
diff --git a/sounds/af_fail.wav b/sounds/af_fail.wav
new file mode 100644 (file)
index 0000000..cfc50c0
Binary files /dev/null and b/sounds/af_fail.wav differ
diff --git a/sounds/af_ok.wav b/sounds/af_ok.wav
new file mode 100644 (file)
index 0000000..bf2b432
Binary files /dev/null and b/sounds/af_ok.wav differ
diff --git a/sounds/cam_start_01.wav b/sounds/cam_start_01.wav
new file mode 100644 (file)
index 0000000..afb9ab9
Binary files /dev/null and b/sounds/cam_start_01.wav differ
diff --git a/sounds/cam_start_02.wav b/sounds/cam_start_02.wav
new file mode 100644 (file)
index 0000000..f02ac17
Binary files /dev/null and b/sounds/cam_start_02.wav differ
diff --git a/sounds/cam_start_03.wav b/sounds/cam_start_03.wav
new file mode 100644 (file)
index 0000000..5f89edd
Binary files /dev/null and b/sounds/cam_start_03.wav differ
diff --git a/sounds/cam_stop_01.wav b/sounds/cam_stop_01.wav
new file mode 100644 (file)
index 0000000..cccf7dc
Binary files /dev/null and b/sounds/cam_stop_01.wav differ
diff --git a/sounds/cam_stop_02.wav b/sounds/cam_stop_02.wav
new file mode 100644 (file)
index 0000000..365d385
Binary files /dev/null and b/sounds/cam_stop_02.wav differ
diff --git a/sounds/cam_stop_03.wav b/sounds/cam_stop_03.wav
new file mode 100644 (file)
index 0000000..5f89edd
Binary files /dev/null and b/sounds/cam_stop_03.wav differ
diff --git a/sounds/count.wav b/sounds/count.wav
new file mode 100644 (file)
index 0000000..e2bdb68
Binary files /dev/null and b/sounds/count.wav differ
diff --git a/src/CamDeviceCapacity.cpp b/src/CamDeviceCapacity.cpp
new file mode 100755 (executable)
index 0000000..206e159
--- /dev/null
@@ -0,0 +1,183 @@
+/*\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
+\r
+\r
+\r
+#include <stdlib.h>\r
+#include <stdio.h>\r
+\r
+#include "CamDeviceCapacity.h"\r
+#include "cam_capacity_type.h"\r
+\r
+\r
+extern "C" {\r
+#include "cam_mm.h"\r
+#include "cam_debug.h"\r
+}\r
+\r
+#define CAM_ATTR_NOT_SUPPORTED (1)\r
+#define CAM_CP_FUNC_UNMARKED (0)\r
+CCamDeviceCapacity* CCamDeviceCapacity::m_pInstance = NULL;\r
+\r
+/////////////////////////////////////////////////////////////////////////////\r
+// Construction/Destruction\r
+/////////////////////////////////////////////////////////////////////////////\r
+CCamDeviceCapacity::CCamDeviceCapacity()\r
+{\r
+       ResetCaps();\r
+}\r
+\r
+CCamDeviceCapacity::~CCamDeviceCapacity()\r
+{\r
+       Destroy();\r
+}\r
+\r
+void\r
+CCamDeviceCapacity::ResetCaps()\r
+{\r
+       m_Effect.bChecked = FALSE;\r
+       m_Zoom.bChecked = FALSE;\r
+\r
+       m_uFuncCaps = 0;\r
+}\r
+\r
+CCamDeviceCapacity*\r
+CCamDeviceCapacity::GetInstance()\r
+{\r
+       if(m_pInstance == NULL)\r
+               m_pInstance = new CCamDeviceCapacity;\r
+       return m_pInstance;\r
+}\r
+\r
+void\r
+CCamDeviceCapacity::Destroy()\r
+{\r
+       if(m_pInstance)\r
+       {\r
+               delete m_pInstance;\r
+               m_pInstance = NULL;\r
+       }\r
+}\r
+\r
+void\r
+CCamDeviceCapacity::GetCamDevFuncCaps(unsigned int *uCapacity, void *user_data)\r
+{\r
+       unsigned int uSearchCaps = CAM_CP_FUNC_EDIR_SHORTCUT;\r
+       unsigned int uCaps = 0;\r
+\r
+       int deviceType = 0;\r
+       if (!cam_mm_get_video_device(&deviceType)) {\r
+               cam_debug(LOG_CAM, "cam_mm_get_video_device() fail");\r
+               *uCapacity = 0;\r
+               return;\r
+       }\r
+\r
+       if (m_uFuncCaps == CAM_CP_FUNC_UNMARKED) {\r
+               for(int i = 0; i < CAM_CP_FUNC_COUNT; i++) {\r
+                       if (IsSupported(uSearchCaps, (CamDeviceType)deviceType, user_data))\r
+                               uCaps |= uSearchCaps;\r
+\r
+                       uSearchCaps *= 2;\r
+                       cam_debug(LOG_CAM, "i[%d] uSearchCaps [0x%x]", i, uSearchCaps);\r
+               }\r
+\r
+               m_uFuncCaps = uCaps;\r
+       }\r
+\r
+       *uCapacity = m_uFuncCaps;\r
+}\r
+\r
+\r
+bool\r
+CCamDeviceCapacity::GetCamDevEffectCaps(unsigned int* uCapacity, void *user_data)\r
+{\r
+       cam_retvm_if(uCapacity == NULL, FALSE, "input param is NULL");\r
+\r
+       unsigned int uCaps = 0;\r
+       *uCapacity = 0;\r
+\r
+       if (!m_Effect.bChecked) {\r
+               if (!cam_mm_get_caps_range(CAM_CP_FUNC_EFFECT_MODE, &uCaps, user_data)) {\r
+                       cam_debug(LOG_CAM, "cam_mm_get_caps_range() fail");\r
+                       return FALSE;\r
+               }\r
+\r
+               if (cam_mm_get_caps_cb_cnt() > CAM_ATTR_NOT_SUPPORTED)\r
+                       m_Effect.bSupported = TRUE;\r
+               else\r
+                       m_Effect.bSupported = FALSE;\r
+\r
+               m_Effect.bChecked = TRUE;\r
+               m_Effect.unCaps = uCaps;\r
+       }\r
+\r
+       *uCapacity = m_Effect.unCaps;\r
+       return TRUE;\r
+}\r
+\r
+bool\r
+CCamDeviceCapacity::GetCamDevZoomCaps(int *min, int *max)\r
+{\r
+       int nMin, nMax = 0;\r
+\r
+       if (!m_Zoom.bChecked) {\r
+               if (!cam_mm_get_caps_minmax(CAM_CP_FUNC_ZOOM, &nMin, &nMax)) {\r
+                       cam_debug(LOG_CAM, "cam_mm_get_caps_range() fail");\r
+                       return FALSE;\r
+               }\r
+\r
+               if ((min == 0) && (max == 0))\r
+                       m_Zoom.bSupported = FALSE;\r
+               else\r
+                       m_Zoom.bSupported = TRUE;\r
+\r
+               m_Zoom.bChecked = TRUE;\r
+               m_Zoom.nMin = nMin;\r
+               m_Zoom.nMax = nMax;\r
+       }\r
+\r
+       *min = m_Zoom.nMin;\r
+       *max = m_Zoom.nMax;\r
+       return TRUE;\r
+}\r
+\r
+// private\r
+bool\r
+CCamDeviceCapacity::IsSupported(unsigned int type, CamDeviceType deviceType, void *user_data)\r
+{\r
+       bool ret = FALSE;\r
+       unsigned int uCaps = 0;\r
+\r
+       switch(type) {\r
+       case CAM_CP_FUNC_EFFECT_MODE:\r
+               {\r
+                       if (GetCamDevEffectCaps(&uCaps, user_data))\r
+                               ret = m_Effect.bSupported;\r
+               }\r
+               break;\r
+       case CAM_CP_FUNC_EDIR_SHORTCUT:\r
+       case CAM_CP_FUNC_TIMER:\r
+       case CAM_CP_FUNC_GUIDE_LINE:\r
+       case CAM_CP_FUNC_RESET:\r
+               ret = TRUE;\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+\r
+       return ret;\r
+}\r
+\r
diff --git a/src/CamTypeConverter.cpp b/src/CamTypeConverter.cpp
new file mode 100755 (executable)
index 0000000..7718a82
--- /dev/null
@@ -0,0 +1,104 @@
+/*\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
+\r
+\r
+\r
+#include "CamTypeConverter.h"\r
+#include "cam_capacity_type.h"\r
+\r
+\r
+unsigned int\r
+CCamTypeConverter::CamEffectDevConvertCaps(camera_attr_effect_mode_e effect)\r
+{\r
+       unsigned int ret = 0;\r
+\r
+       switch(effect){\r
+       case CAMERA_ATTR_EFFECT_NONE:\r
+               ret = CAM_CP_EFFECT_NONE;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_MONO:\r
+               ret = CAM_CP_EFFECT_MONO;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_SEPIA:\r
+               ret = CAM_CP_EFFECT_SEPIA;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_NEGATIVE:\r
+               ret = CAM_CP_EFFECT_NEGATIVE;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_AQUA:\r
+               ret = CAM_CP_EFFECT_AQUA;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_GRAY:\r
+               ret = CAM_CP_EFFECT_GRAY;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_ANTIQUE:\r
+               ret = CAM_CP_EFFECT_ANTIQUE;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_EMBOSS:\r
+               ret = CAM_CP_EFFECT_EMBOSS;\r
+               break;\r
+       case CAMERA_ATTR_EFFECT_OUTLINE:\r
+               ret = CAM_CP_EFFECT_OUTLINE;\r
+               break;\r
+\r
+       default:\r
+               break;\r
+       }\r
+\r
+       return ret;\r
+}\r
+\r
+unsigned int\r
+CCamTypeConverter::CamEffectCamConvertCaps(CamSettingsEffects effect)\r
+{\r
+       unsigned int ret = 0;\r
+\r
+       switch(effect){\r
+       case CAM_SETTINGS_EFFECTS_NOR:\r
+               ret = CAM_CP_EFFECT_NONE;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_MONO:\r
+               ret = CAM_CP_EFFECT_MONO;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_SEPIA:\r
+               ret = CAM_CP_EFFECT_SEPIA;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_NEGATIVE:\r
+               ret = CAM_CP_EFFECT_NEGATIVE;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_AQUA:\r
+               ret = CAM_CP_EFFECT_AQUA;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_GRAY:\r
+               ret = CAM_CP_EFFECT_GRAY;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_ANTIQUE:\r
+               ret = CAM_CP_EFFECT_ANTIQUE;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_EMBOSS:\r
+               ret = CAM_CP_EFFECT_EMBOSS;\r
+               break;\r
+       case CAM_SETTINGS_EFFECTS_OUTLINE:\r
+               ret = CAM_CP_EFFECT_OUTLINE;\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+\r
+       return ret;\r
+}\r
+\r
+\r
diff --git a/src/cam.c b/src/cam.c
new file mode 100755 (executable)
index 0000000..949885f
--- /dev/null
+++ b/src/cam.c
@@ -0,0 +1,731 @@
+/*
+ * 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 <stdio.h>
+#include <pthread.h>
+#include <X11/Xlib.h>
+#include <utilX.h>
+#include <power.h>
+#include "cam.h"
+#include "cam_app.h"
+#include "camera_utils.h"
+#include "cam_ta.h"
+#include "cam_mm.h"
+#include "cam_debug.h"
+#include "cam_toolbar_edc_callback.h"
+#include "cam_zoom_edc_callback.h"
+#include "cam_indicator_edc_callback.h"
+#include "cam_common_edc_callback.h"
+#include "cam_rec.h"
+#include "cam_file.h"
+#include "cam_menu_composer.h"
+#include "cam_device_capacity.h"
+
+
+static int __is_idle_lock(void);
+
+static int _is_running(void)
+{
+#ifdef CHECK_RUNNING_PROC
+       GDir *dir = NULL;
+       GError *error = NULL;
+       const gchar *dir_name;
+       char path[255] = { 0, };
+       char proc_name[255] = { 0, };
+       int fd = 0, count = 0;
+       dir = g_dir_open("/proc", 0, &error);
+
+       if (dir) {
+               while ((dir_name = g_dir_read_name(dir)) != NULL) {
+                       if (!isdigit(dir_name[0]))
+                               continue;
+
+                       snprintf(path, sizeof(path), "/proc/%s/cmdline",
+                                dir_name);
+                       fd = open(path, O_RDONLY);
+                       read(fd, proc_name, sizeof(proc_name) - 1);
+                       close(fd);
+                       if (strstr(proc_name, "camera")) {
+                               static int pid = 0;
+                               count++;
+                               if (count > 1) {
+                                       g_dir_close(dir);
+                                       printf
+                                           ("camera application[PID: %d] is already running !!!!\n\n",
+                                            pid);
+                                       return 1;
+                               }
+                               pid = atoi(dir_name);
+                       }
+               }
+               g_dir_close(dir);
+       } else {
+               printf("cannot open proc directory [%s]", error->message);
+       }
+
+       if (error)
+               g_error_free(error);
+
+       return 0;
+#else
+       return 0;
+#endif
+}
+
+static bool cam_create(void *data)
+{
+       CAM_TA_ACUM_ITEM_BEGIN("==cam_create==", 0);
+       cam_debug(LOG_UI, "************** cam_create START **************");
+
+       if (__is_idle_lock()) {
+               return FALSE;/*fix crash*/
+       }
+
+       struct appdata *ad = data;
+       Ecore_X_Display *dpy = NULL;
+       debug_fenter(LOG_CAM);
+
+       /* create main window */
+       ad->win_main = cam_app_create_win(PACKAGE);
+       cam_retvm_if(ad->win_main == NULL, FALSE, "cam_app_create_win failed");
+#ifdef EFL_TEMP_CODE
+       cam_win_transparent_set(ad);
+#endif
+       /* remove effect */
+       dpy = ecore_x_display_get();
+       if (dpy) {
+               Ecore_X_Window win;
+               win = elm_win_xwindow_get(ad->win_main);
+
+               printf("dpy is not null .. set no effect to display = %d\n",
+                      win);
+               utilx_set_window_effect_style(dpy, win,
+                                             UTILX_EFFECT_TYPE_ROTATION,
+                                             UTILX_EFFECT_STYLE_NONE);
+       }
+
+       /* set indicator. */
+#ifndef        CAMERA_MACHINE_I686
+       elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_HIDE);
+#endif
+
+
+       ad->evas = evas_object_evas_get(ad->win_main);
+       ad->ee = ecore_evas_ecore_evas_get(ad->evas);
+       ad->main_xid = elm_win_xwindow_get(ad->win_main);
+       ad->launch_type = CAM_LAUNCH_FIRST;
+
+       /* camera application initialization */
+       CAM_TA_ACUM_ITEM_BEGIN("  cam_app_init", 0);
+       if (!cam_app_init(ad))
+               return FALSE;
+       CAM_TA_ACUM_ITEM_END("  cam_app_init", 0);
+
+       /*add camera exteral engine lib load*/
+       open_cam_ext_handle();
+       evas_object_show(ad->win_main);
+
+       cam_debug(LOG_UI, "******** cam_create END**********");
+       CAM_TA_ACUM_ITEM_END("==cam_create==", 0);
+
+       return true;
+}
+
+
+
+static void cam_terminate(void *data)
+{
+       cam_debug(LOG_UI, "############## cam_terminate ##############");
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       ad->appcore_state = CAM_APPCORE_TERMINATE_STATE;
+
+
+       debug_fenter(LOG_CAM);
+
+       CAM_TA_ACUM_ITEM_BEGIN("cam_terminate", 0);
+
+       cam_key_grab_deinit(ad);
+
+#ifdef USE_FIFO_THREAD
+       cam_app_FIFO_thread_exit();
+#endif
+
+#ifdef USE_FILE_REG_THREAD
+       cam_app_file_register_thread_exit(ad);
+#endif
+
+       CAM_TA_ACUM_ITEM_BEGIN("  cam_app_quit", 0);
+       cam_app_quit(ad);
+       CAM_TA_ACUM_ITEM_END("  cam_app_quit", 0);
+
+       power_unlock_state(POWER_STATE_NORMAL);
+
+       CAM_TA_ACUM_ITEM_END("app_terminate", 0);
+
+       CAM_TA_ACUM_ITEM_SHOW_RESULT_TO(CAM_TA_SHOW_FILE);
+       CAM_TA_RELEASE();
+
+       close_cam_ext_handle();
+}
+
+static void cam_pause(void *data)
+{
+       cam_debug(LOG_UI, "############## cam_pause ##############");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+       debug_fenter(LOG_CAM);
+       ad->appcore_state = CAM_APPCORE_PAUSE_STATE;
+
+       if ( ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               int mm_state = 0;
+               mm_state = cam_mm_get_state();
+               ad->appcore_state = CAM_APPCORE_PAUSE_STATE;
+
+               if (mm_state < CAMERA_STATE_CAPTURING) { /* MM_CAMCORDER_STATE_CAPTURING < MM_CAMCORDER_STATE_RECORDING */
+                       if (ad->imageviewer_ug) { /*Is this paused by Video player ? */
+                               DEBUG_TRACE("###### ug_pause() ######");
+                               ug_pause();
+                               return;
+                       } else {
+                               cam_app_exit(ad);
+                               return;
+                       }
+               } else if (mm_state == RECORDER_STATE_RECORDING && camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       if (!cam_video_record_stop(ad)) {
+                               DEBUG_TRACE("record stop fail");
+                               return;
+                       }
+               }
+       }
+
+       if (ad->imageviewer_ug) {
+               DEBUG_TRACE("###### ug_pause() ######");
+               ug_pause();
+       }
+
+       if (ad->foucs_out_from_quickview == TRUE) {
+               DEBUG_TRACE("image viewer UG->image editor");
+               ad->foucs_out_from_quickview = FALSE;
+               return;
+       }
+       CAM_TA_ACUM_ITEM_BEGIN("app_stop", 0);
+       DEBUG_TRACE(" ");
+       ad->foucs_out_from_quickview = FALSE;
+       ad->launch_type = CAM_LAUNCH_RELAUNCH;  /* set launch type */
+       cam_app_pause(ad);
+
+       power_unlock_state(POWER_STATE_NORMAL);
+       CAM_TA_ACUM_ITEM_END("app_stop", 0);
+
+}
+
+static void cam_resume(void *data)
+{
+       cam_debug(LOG_UI, "############## cam_resume ##############");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       debug_fenter(LOG_CAM);
+       DEBUG_TRACE(" ");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       ad->appcore_state = CAM_APPCORE_RESUME_STATE;
+
+       if (!cam_check_dir()) {
+               cam_app_notice_popup(data, "Cannot make default path",
+                        cam_app_timeout_notice_response_cb);
+               return;
+       }
+       if (!cam_utils_check_torchlight_status(ad)) {
+               DEBUG_TRACE("Can not get torchlight status");
+       }
+
+       if (ad->imageviewer_ug) {       /* bug fix camera app overlab with imageviewer_ug */
+               DEBUG_TRACE("####### ug_resume() ######");
+               ug_resume();
+               return;
+       }
+       else
+               power_lock_state(POWER_STATE_NORMAL, 0);
+
+       CAM_TA_INIT();
+
+       if (ad) {
+               CAM_TA_ACUM_ITEM_BEGIN("  cam_app_resume", 0);
+               if (!cam_app_resume(ad))
+                       return;
+               CAM_TA_ACUM_ITEM_END("  cam_app_resume", 0);
+       }
+
+}
+
+void *cam_start_thread_run(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, NULL);
+
+       if (cam_app_start(ad) == FALSE)
+               cam_critical(LOG_CAM, "cam_app_start failed");
+
+       pthread_exit(NULL);
+
+       return NULL;
+}
+
+static void cam_service(service_h service, void *user_data)
+{
+       CAM_TA_ACUM_ITEM_BEGIN("==cam_service==", 0);
+       cam_debug(LOG_UI, "############## cam_service START##############");
+       struct appdata *ad = (struct appdata *)user_data;
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       DEBUG_TRACE("ad->launch_type = %d ", ad->launch_type);
+       gint latest_mode = 0;
+       ad->appcore_state = CAM_APPCORE_RESET_STATE;
+
+       if (!cam_check_dir()) {
+               cam_app_notice_popup(ad, "Cannot make default path",
+                        cam_app_timeout_notice_response_cb);
+               return;
+       }
+       if (!cam_utils_check_torchlight_status(ad)) {
+               DEBUG_TRACE("Can not get torchlight status");
+       }
+       if (ad->launch_type == CAM_LAUNCH_IS_ALREADY_RUNNING) {
+               cam_app_notice_popup(ad, "Camera is alreay running.",
+                                    cam_app_popup_response_cb);
+               return;
+       }
+       /* remove exe args */
+       if (ad->exe_args) {
+               if (ad->exe_args->caller) {
+                       free(ad->exe_args->caller);
+                       ad->exe_args->caller = NULL;
+               }
+               free(ad->exe_args);
+               ad->exe_args = NULL;
+       }
+
+       char *operation = NULL;
+
+       int ret = service_get_operation(service, &operation);
+       if (ret != SERVICE_ERROR_NONE)
+       {
+               cam_debug(LOG_UI, "service_get_operation failed");
+               return;
+       }
+
+       if ( operation == NULL )
+       {
+               cam_debug(LOG_UI, "operation is null");
+               return;
+       }
+
+       ret = service_clone(&ad->service_handle, service);
+       if (ret != SERVICE_ERROR_NONE)
+       {
+               cam_debug(LOG_UI, "service_clone failed");
+               return;
+       }
+
+       CamExeArgs *args = (CamExeArgs *)malloc(sizeof(CamExeArgs));
+       if (args == NULL) {
+               return;
+       }
+       memset(args,0,sizeof(CamExeArgs));
+
+       if (!cam_app_parse_args(args, service)) {
+               return;
+       }
+       ad->exe_args = args;
+
+       if( strcmp(operation, SERVICE_OPERATION_CREATE_CONTENT ) == 0){
+               cam_debug(LOG_UI, "Operation is SERVICE_OPERATION_CREATE_CONTENT");
+
+               ad->launching_mode = CAM_LAUNCHING_MODE_EXTERNAL;
+
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_handle_init", 0);
+               if (!cam_handle_init(ad, ad->exe_args->cam_mode)) {
+                       cam_critical(LOG_CAM, "cam_handle_init failed");
+                       return;
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_handle_init", 0);
+
+               cam_app_init_with_args(ad);
+       } else {
+               ad->launching_mode = CAM_LAUNCHING_MODE_NORMAL;
+
+               latest_mode = cam_app_get_latest_mode();
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_handle_init", 0);
+               if (!cam_handle_init(ad, latest_mode)) {
+                       cam_critical(LOG_CAM, "cam_handle_init failed");
+                       return;
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_handle_init", 0);
+       }
+
+       if (ad->launch_type == CAM_LAUNCH_FIRST) {
+               debug_fenter(LOG_CAM);
+
+               if (!cam_condition_check_to_start_camera(ad)) {
+                       cam_critical(LOG_CAM, "cannot start camera");
+                       return;
+               }
+
+               if (!open_cam_handle((void*)ad)) {
+                       cam_critical(LOG_CAM, "open_cam_handle failed");
+                       return;
+               }
+
+               if (pthread_create(&(ad->camera_start_thread), NULL, cam_start_thread_run, (void *)ad) < 0) {
+                       cam_critical(LOG_CAM, "Create camera start thread failed");
+                       return;
+               }
+
+               power_lock_state(POWER_STATE_NORMAL, 0);
+
+               /*elm_win_alpha_set(ad->win_main, EINA_TRUE);*/
+
+               ad->setting_menu_composer = NULL;
+
+               if( ad->setting_menu_composer == NULL){
+                       ad->setting_menu_composer = malloc(sizeof(ad->setting_menu_composer));
+                       cam_compose_setting_menu(ad->setting_menu_composer);
+               }
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_layout_init", 0);
+               if (!cam_layout_init(ad)) {
+                       cam_critical(LOG_UI, "cam_layout_init failed");
+                       return;
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_layout_init", 0);
+       } else {
+               /* RELUNCHING!! //in paused -> Camera process is called by External process  */
+
+               cam_debug(LOG_SYS, "RELUNCHING !!!");
+
+               /*remove GUI*/
+               if (ad->imageviewer_ug) {
+                       DEBUG_TRACE("destory imageviewer");
+                       ug_destroy(ad->imageviewer_ug);
+                       ad->imageviewer_ug = NULL;
+               }
+
+               cam_layout_del_all(ad);
+
+               power_lock_state(POWER_STATE_NORMAL, 0);
+
+               if (ad->exe_args == NULL)
+                       return;
+
+               if (!cam_condition_check_to_start_camera(ad)) {
+                       cam_critical(LOG_CAM, "cannot start camera");
+                       return;
+               }
+
+               if (pthread_create(&(ad->camera_start_thread), NULL, cam_start_thread_run, (void *)ad) < 0) {
+                       cam_critical(LOG_CAM, "Create camera start thread failed");
+                       return;
+               }
+
+               ResetCaps();
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_layout_init", 0);
+               if (!cam_layout_init(ad)) {
+                       cam_critical(LOG_UI, "cam_layout_init failed");
+                       return;
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_layout_init", 0);
+
+               evas_object_raise(ad->win_main);
+       }
+
+       cam_debug(LOG_UI, "############## cam_service END##############");
+       CAM_TA_ACUM_ITEM_END("==cam_service==", 0);
+}
+
+static int __is_idle_lock(void)
+{
+
+       int vconf_val = 0;
+       int vconf_ret = 0;
+
+       vconf_ret = vconf_get_int(VCONFKEY_IDLE_LOCK_STATE, &vconf_val);
+       if(vconf_ret == 0){
+               if (vconf_val == VCONFKEY_IDLE_LOCK) {
+                       DEBUG_TRACE("  IDLE IN LOCK STATE  ");
+                       return 1;
+               }
+       }
+
+       return 0;
+
+}
+
+#define CAM_EXT_LIB_PATH "/usr/lib/libcamera-external-engine.so"
+
+void *handle = NULL;
+gboolean open_cam_ext_handle()
+{
+
+       if (!handle) {
+               handle = dlopen(CAM_EXT_LIB_PATH, RTLD_NOW);
+               if ( !handle ) {
+                       return FALSE;
+               }
+       }
+       return TRUE;
+}
+
+void close_cam_ext_handle()
+{
+
+       if (handle) {
+               dlclose(handle);
+               handle = NULL;
+       }
+}
+
+gboolean open_cam_handle(void* data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int session_type;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               DEBUG_TRACE("session_type : SOUND_SESSION_TYPE_SHARE");
+               session_type = SOUND_SESSION_TYPE_SHARE;
+       } else {
+               DEBUG_TRACE("session_type : SOUND_SESSION_TYPE_EXCLUSIVE");
+               session_type = SOUND_SESSION_TYPE_EXCLUSIVE;
+       }
+       if (!cam_mm_session_init(session_type)) {
+               cam_critical(LOG_MM, "cam_mm_session_init faild");
+               return FALSE;
+       }
+
+/*open camera handle*/
+       if (!cam_mm_create(CAM_DEVICE_MEGA, camapp->camera_mode)) {
+               cam_critical(LOG_MM, "cam_mm_create failed");
+               cam_app_notice_popup(ad, "UNABLE TO LAUNCH CAMERA", cam_app_timeout_notice_response_cb);
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+static void cam_low_power_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_info(LOG_SYS, "Low battery !!");
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+       if (evas_object_visible_get(ad->win_main)) {
+               int state = cam_mm_get_state();
+               if ((state == RECORDER_STATE_RECORDING
+                   || state == RECORDER_STATE_PAUSED)
+                   &&camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       camapp->rec_stop_type = CAM_REC_STOP_LOW_BATTERY;
+                       ad->recording_commit =
+                           ecore_idler_add(cam_video_idler_record_stop, ad);
+               } else {
+                       cam_app_exit(ad);
+               }
+       }
+
+}
+
+static void cam_update_ts_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_info(LOG_SYS, "#################Update String !!");
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       char *path = NULL;
+
+       elm_win_indicator_mode_set(ad->win_main, 0);
+
+       path = vconf_get_str(VCONFKEY_LANGSET);
+       if (!path) {
+               return;
+       }
+
+
+       /* update main */
+       update_ts_main(data);
+
+       enum ug_event ev = UG_EVENT_LANG_CHANGE;
+       ug_send_event(ev);
+}
+
+static void cam_device_orientation_cb(app_device_orientation_e mode, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->appcore_state == CAM_APPCORE_TERMINATE_STATE
+               || ad->appcore_state == CAM_APPCORE_PAUSE_STATE) {/*NOTE: in pause state, and terminate state, not cb*/
+               return;
+       }
+       cam_retm_if(ad->camapp_handle == NULL, "ad->camapp_handle is NULL");
+
+       cam_debug(LOG_UI, "rotated : %d", mode);
+
+       /*TODO: now just return, if the last rotated is not finished*/
+       if (ad->is_rotating) {
+               return;
+       }
+
+       int angle = 0;
+       ui_gadget_h ug = NULL;
+
+       enum ug_event ev = UG_EVENT_ROTATE_LANDSCAPE;
+       ad->rot_previous = ad->rot_current;
+       ad->rot_current = mode;
+
+       if (ad->toolbar_edj_file)
+               free(ad->toolbar_edj_file);
+       ad->toolbar_edj_file = NULL;
+
+       switch (mode) {
+       case APP_DEVICE_ORIENTATION_0:
+               angle = 0;
+               ad->target_direction = CAM_TARGET_DIRECTION_PORTRAIT;
+               ev = UG_EVENT_ROTATE_PORTRAIT;
+               ad->camcorder_rotate = CAMERA_ROTATION_90;
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_VERTICAL_EDJ_NAME);
+               break;
+       case APP_DEVICE_ORIENTATION_270:
+               angle = 270;
+               ad->target_direction = CAM_TARGET_DIRECTION_LANDSCAPE;
+               ev = UG_EVENT_ROTATE_LANDSCAPE;
+               ad->camcorder_rotate = CAMERA_ROTATION_NONE;
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_EDJ_NAME);
+               break;
+       case APP_DEVICE_ORIENTATION_180:
+               angle = 180;
+               ad->target_direction = CAM_TARGET_DIRECTION_PORTRAIT_INVERSE;
+               ev = UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN;
+               ad->camcorder_rotate = CAMERA_ROTATION_270;
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_VERTICAL_INVERSE_EDJ_NAME);
+               break;
+       case APP_DEVICE_ORIENTATION_90:
+               angle = 90;
+               ad->target_direction = CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE;
+               ev = UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN;
+               ad->camcorder_rotate = CAMERA_ROTATION_180;
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_INVERSE_EDJ_NAME);
+               break;
+
+       default:
+               break;
+       }
+       ad->angle = angle;
+
+       if (ad->imageviewer_ug) {
+               ug = ad->imageviewer_ug;
+       }
+       if (ug) {
+               enum ug_mode md = ug_get_mode(ug);
+               if (md == UG_MODE_FULLVIEW) {
+                       if(ev == UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN)
+                               return;
+                       elm_win_rotation_with_resize_set(ad->win_main, angle);
+                       /* send event to ug      */
+                       ug_send_event(ev);
+               }
+       } else {
+
+
+               unsigned int *main_pipe_op_type = NULL;
+               main_pipe_op_type = (unsigned int *)calloc(1, sizeof(unsigned int));
+               if (main_pipe_op_type)
+                       *main_pipe_op_type = CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR;
+               ecore_pipe_write(ad->main_pipe, (void *)main_pipe_op_type, sizeof(unsigned int));
+       }
+}
+
+int main(int argc, char *argv[])
+{
+       DEBUG_TRACE(" ");
+
+       int i = 0;
+       struct appdata ad;
+       if (_is_running())
+               return 0;
+
+       /*set appdata init variable*/
+       memset(&ad, 0x0, sizeof(struct appdata));
+
+       g_type_init();
+
+       CAM_TA_INIT();
+       DEBUG_TRACE("argc = %d", argc, argv);
+       for (i = 0; i < argc; i++) {
+               DEBUG_TRACE("argv[%d] = %s", i, argv[i]);
+       }
+
+       app_event_callback_s event_callbacks;
+
+       event_callbacks.create = cam_create;
+       event_callbacks.terminate = cam_terminate;
+       event_callbacks.pause = cam_pause;
+       event_callbacks.resume = cam_resume;
+       event_callbacks.service = cam_service;
+
+       event_callbacks.language_changed = cam_update_ts_cb;
+       event_callbacks.low_battery = cam_low_power_cb;
+       event_callbacks.device_orientation = cam_device_orientation_cb;
+
+       event_callbacks.low_memory = NULL;
+       event_callbacks.region_format_changed = NULL;
+
+       setenv("ELM_ENGINE", "gl", 1); /*add open gl support for 3D slide_show of image viewer*/
+
+       return app_efl_main(&argc, &argv, &event_callbacks, &ad);
+
+}
+
+int update_ts_main(void *data)
+{
+       DEBUG_TRACE(" ");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       if (ad && ad->layout_main)
+               edje_object_part_text_set(_EDJ(ad->layout_main), "txt_title", dgettext("sys_string", "IDS_COM_BODY_CAMERA"));
+
+       return TRUE;
+}
+//end file
diff --git a/src/cam_animation.c b/src/cam_animation.c
new file mode 100644 (file)
index 0000000..e8aefd0
--- /dev/null
@@ -0,0 +1,389 @@
+/*
+ * 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 "cam_file.h"
+#ifdef ENABLE_CAPTURE_ANIMATION
+#include "cam_animation.h"
+
+static gboolean __cam_save_captured_file(void *data)
+{
+       cam_debug(LOG_MM, " __cam_save_captured_file \n\n ");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       CamAppData *camapp = NULL;
+
+       gchar *filename = NULL;
+       FILE *fp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+/* save file */
+
+       filename = cam_app_get_next_filename();
+       if (filename == NULL) {
+               cam_critical(LOG_SYS, " Get next filename FAILED");
+               return FALSE;
+       }
+
+       fp = fopen(filename, "w+");
+       if (fp == NULL) {
+               cam_critical(LOG_SYS, "FileOPEN error!!");
+               return FALSE;
+       } else {
+               cam_debug(LOG_SYS, "FileOPEN success");
+
+               if (fwrite
+                   (ad->capture_datatype.data, ad->capture_datatype.length, 1,
+                    fp) != 1) {
+                       cam_critical(LOG_SYS, "File write error!!");
+                       fclose(fp);
+                       return FALSE;
+               }
+               /*fsync(fp->_fileno);*/ /*block for increasing formance of shot-to-shot */
+               cam_debug(LOG_SYS, "File write success");
+               fclose(fp);
+       }
+       if (camapp->filename)
+               free(camapp->filename);
+       camapp->filename = strdup(filename);
+       free(filename);
+
+       free(ad->capture_datatype.data);
+
+       return TRUE;
+
+}
+
+static Eina_Bool __cam_shutter_image_move_animate(void *data)
+{
+       cam_debug(LOG_MM, " __cam_shutter_image_move_animate \n\n ");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       CamAppData *camapp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       Evas_Coord des_x_l, des_x_r, des_y_t, des_y_d, des_w, des_h;
+
+       Evas_Coord src_x_l = ad->shutter_src_rect.x;
+       Evas_Coord src_x_r =
+           ad->shutter_src_rect.x + ad->shutter_src_rect.width;
+       Evas_Coord src_y_t = ad->shutter_src_rect.y;
+       Evas_Coord src_y_d =
+           ad->shutter_src_rect.y + ad->shutter_src_rect.height;
+
+       Evas_Coord cur_x_l, cur_x_r, cur_y_t, cur_y_d, cur_w, cur_h;
+
+       static float cur_progress = 0.0;
+
+       des_x_l = ad->shutter_des_rect.x;
+       des_y_t = ad->shutter_des_rect.y;
+       des_w = ad->shutter_des_rect.width;
+       des_h = ad->shutter_des_rect.height;
+
+       des_x_r = des_x_l + des_w;
+       des_y_d = des_y_t + des_h;
+
+       cur_x_l = src_x_l * (1.0 - cur_progress) + des_x_l * cur_progress;
+       cur_x_r = src_x_r * (1.0 - cur_progress) + des_x_r * cur_progress;
+       cur_y_t = src_y_t * (1.0 - cur_progress) + des_y_t * cur_progress;
+       cur_y_d = src_y_d * (1.0 - cur_progress) + des_y_d * cur_progress;
+
+       cur_w = cur_x_r - cur_x_l;
+       cur_h = cur_y_d - cur_y_t;
+
+       evas_object_resize(ad->shutter_move_image, cur_w, cur_h);
+       evas_object_move(ad->shutter_move_image, cur_x_l, cur_y_t);
+
+       cur_progress += 0.1;
+
+       if (cur_progress > 1.0) {
+               edje_object_signal_emit(_EDJ(ad->shutter_screen), "bright", "");
+               toolbar_update_quickview_thumbnail_by_screennail(ad);
+               DEL_EVAS_OBJECT(ad->shutter_move_image);
+
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+
+#if 1
+                       /* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+                       CamIdlerItem *item = NULL;
+                       item = (CamIdlerItem *) g_malloc(sizeof(CamIdlerItem));
+                       if (item == NULL)
+                               return FALSE;
+
+                       if (item) {
+                               item->data = ad;
+                               item->idler =
+                                   ecore_idler_add
+                                   (cam_image_capture_handle_idler, item);
+
+                               if (item->idler)
+                                       ad->capture_cb_list =
+                                           g_list_append(ad->capture_cb_list,
+                                                         item->idler);
+
+                               cam_info(LOG_UI,
+                                        "image capture idler add : %p ",
+                                        item->idler);
+                       } else {
+                               cam_critical(LOG_UI,
+                                            "malloc failed for CamIdlerItem",
+                                            item->idler);
+                       }
+#endif
+               }
+
+               cur_progress = 0.0;
+
+               return EINA_FALSE;
+       } else {
+               return EINA_TRUE;
+       }
+}
+
+Eina_Bool cam_start_capture_animation(void *data)
+{
+       cam_debug(LOG_MM, " cam_start_capture_animation \n\n ");
+
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       Evas_Coord x, y, w, h;
+
+       int window_width, window_height;
+       int pre_width, pre_height;
+
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL,
+                    "camapp_handle is NULL");
+
+       window_width = ad->win_width;
+       window_height = ad->win_height;
+       pre_width = ad->preview_w;
+       pre_height = ad->preview_h;
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL)
+               evas_object_geometry_get(ad->backbtn, &x, &y, &w, &h);
+       else
+               evas_object_geometry_get(ad->toolbar.quickview_item.edje, &x, &y, &w, &h);
+
+       ad->shutter_des_rect.x = x;
+       ad->shutter_des_rect.y = y;
+       ad->shutter_des_rect.width = w;
+       ad->shutter_des_rect.height = h;
+
+       if (pre_width < window_width) {
+               ad->shutter_src_rect.x = (window_width - pre_width) / 2;
+               ad->shutter_src_rect.width = pre_width;
+       } else {
+               ad->shutter_src_rect.x = 0;
+               ad->shutter_src_rect.width = window_width;
+       }
+
+       if (pre_height < window_height) {
+               ad->shutter_src_rect.y = (window_height - pre_height) / 2;
+               ad->shutter_src_rect.height = pre_height;
+       } else {
+               ad->shutter_src_rect.y = 0;
+               ad->shutter_src_rect.height = window_height;
+       }
+
+#if 0
+       ad->shutter_move_image =
+           evas_object_image_add(evas_object_evas_get(ad->shutter_screen));
+
+       evas_object_image_filled_set(ad->shutter_move_image, 1);
+       evas_object_image_file_set(ad->shutter_move_image, camapp->filename,
+                                  NULL);
+#endif
+
+       evas_object_stack_above(ad->shutter_move_image, ad->shutter_screen);
+
+       evas_object_resize(ad->shutter_move_image, ad->shutter_src_rect.width,
+                          ad->shutter_src_rect.height);
+       evas_object_move(ad->shutter_move_image, ad->shutter_src_rect.x,
+                        ad->shutter_src_rect.y);
+
+       evas_object_show(ad->shutter_move_image);
+
+       edje_object_signal_emit(_EDJ(ad->shutter_screen), "dim", "");
+
+       ecore_animator_frametime_set(0.03);
+       ecore_animator_add(__cam_shutter_image_move_animate, ad);
+
+       return EINA_TRUE;
+}
+
+static gboolean cam_app_create_screennail_and_start_animation(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       MMCamcorderCaptureDataType *scrnl = NULL;
+
+       if (cam_mm_get_screennail(&scrnl)) {
+               int output_width, output_height;
+
+               imgp_info _imgp_info;   /* init imgp_info _imgp_info */
+               _imgp_info.imgp_gstcs_info = (imgp_gstcs_internal_info *)
+                   malloc(sizeof(imgp_gstcs_internal_info));
+               cam_retv_if(_imgp_info.imgp_gstcs_info == NULL, FALSE);
+
+               imgp_dlopen_type imgp_type = IMGP_GSTCS;
+
+               _imgp_info.imgp_gstcs_info->input_buf = (char *)malloc((sizeof(char)) * scrnl->length); /* nvbuffer_size is scrnl->length */
+               cam_retv_if(_imgp_info.imgp_gstcs_info->input_buf == NULL,
+                           FALSE);
+
+               memcpy(_imgp_info.imgp_gstcs_info->input_buf, scrnl->data, scrnl->length);      /*  nvbuffer_pointer is scrnl->data */
+
+               mm_set_imgp_dlopen_info(imgp_type, &_imgp_info, "NV12", scrnl->width, scrnl->height, "RGBA8888", scrnl->width, scrnl->height, 0);       /* set input value to imgp_dlopen */
+
+               int ret = mm_imgp_dlopen(imgp_type, &_imgp_info);       /* after this function call below value is set. The conversion time is about 120ms */
+               if (ret == 0) {
+                       char *output_buf =
+                           _imgp_info.imgp_gstcs_info->output_buf;
+                       output_width = _imgp_info.imgp_gstcs_info->output_stride;       /* width */
+                       output_height = _imgp_info.imgp_gstcs_info->output_elevation;   /* height  */
+
+                       int new_width;
+                       int new_height;
+
+                       char *tmp_buf = (char *)malloc((sizeof(char)) * output_width * output_height * 4);      /* nvbuffer_size is scrnl->length */
+                       cam_retv_if(tmp_buf == NULL, FALSE);
+
+                       if (!cam_utils_image_rotate
+                           (output_buf, output_width, output_height, tmp_buf,
+                            &new_width, &new_height, (ad->angle + 90) % 360)) {
+                               free(output_buf);
+                               free(tmp_buf);
+                               free(_imgp_info.imgp_gstcs_info->input_buf);
+                               free(_imgp_info.imgp_gstcs_info);
+                               return FALSE;
+                       }
+
+                       ad->shutter_move_image =
+                           evas_object_image_add(evas_object_evas_get
+                                                 (ad->shutter_screen));
+
+                       evas_object_image_smooth_scale_set
+                           (ad->shutter_move_image, 1);
+                       evas_object_image_filled_set(ad->shutter_move_image, 1);
+
+                       evas_object_image_alpha_set(ad->shutter_move_image, 0);
+                       evas_object_image_size_set(ad->shutter_move_image,
+                                                  new_width, new_height);
+
+/*rename param data to img_data,for this param has save name with others in the same func*/
+                       unsigned char *img_data =
+                           evas_object_image_data_get(ad->shutter_move_image,
+                                                      1);
+
+                       if (img_data == NULL) {
+                               DEBUG_TRACE("evas_object_image_data_get FAILED!");
+                               return FALSE;
+                       }
+
+                       memcpy(img_data, tmp_buf, new_width * new_height * 4);  /* nvbuffer_pointer is scrnl->data */
+
+                       evas_object_image_data_set(ad->shutter_move_image,
+                                                  (void *)img_data);
+                       evas_object_image_data_update_add
+                           (ad->shutter_move_image, 0, 0, new_width,
+                            new_height);
+
+/*                   evas_object_image_save(ad->shutter_move_image,"/opt/media/screennail.jpg",NULL,"quality=100 compress=9"); */
+                       free(output_buf);
+                       free(tmp_buf);
+
+                       cam_start_capture_animation(ad);
+
+               }
+
+               free(_imgp_info.imgp_gstcs_info->input_buf);
+               free(_imgp_info.imgp_gstcs_info);
+
+               return TRUE;
+
+       } else
+               return FALSE;
+}
+
+static void __cam_app_shutter_animation_finished(void *data, Evas_Object *obj,
+                                                const char *emission,
+                                                const char *source)
+{
+       cam_debug(LOG_MM, " __cam_app_shutter_animation_finished \n\n ");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       DEL_EVAS_OBJECT(ad->shutter_screen);
+
+}
+
+static gboolean cam_app_shutter_screen_show(void *data)
+{
+       struct appdata *ad = data;
+       Evas_Coord witdh = 0, height = 0;
+
+       char *group_name = "shutter_image";
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_app_shutter_screen_show", 0);
+
+       if (ad->shutter_screen) {
+               evas_object_del(ad->shutter_screen);
+               ad->shutter_screen = NULL;
+       }
+
+       ad->shutter_screen =
+           cam_app_load_edj(ad->win_main, CAM_MAIN_LAYOUT_EDJ_NAME,
+                            group_name);
+       if (ad->shutter_screen == NULL) {
+               cam_critical(LOG_UI, "shutter_screen load failed ");
+               CAM_TA_ACUM_ITEM_END("      cam_app_shutter_screen_show", 0);
+               return FALSE;
+       }
+
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &witdh, &height);
+       evas_object_resize(ad->shutter_screen, witdh, height);
+       /* evas_object_resize(ad->black_screen, ad->win_width, ad->win_height); */
+
+       evas_object_lower(ad->shutter_screen);
+       evas_object_show(ad->shutter_screen);
+       evas_object_show(ad->win_main);
+/*       evas_render(ad->evas); */
+
+       edje_object_signal_emit(_EDJ(ad->shutter_screen), "start_animation",
+                               "");
+
+       edje_object_signal_callback_add(_EDJ(ad->shutter_screen),
+                                       "animation_finish", "*",
+                                       __cam_app_shutter_animation_finished,
+                                       ad);
+
+/*      ecore_timer_add(0.1, cam_app_shutter_timer_cb, ad); */
+
+       CAM_TA_ACUM_ITEM_END("      cam_app_shutter_screen_show", 0);
+       return TRUE;
+}
+#endif
diff --git a/src/cam_app.c b/src/cam_app.c
new file mode 100755 (executable)
index 0000000..63dcb0c
--- /dev/null
@@ -0,0 +1,7642 @@
+/*
+ * 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 <X11/Xlib.h>
+#include <X11/keysymdef.h>
+#include <sys/wait.h>
+#include <pthread.h>
+#include <unistd.h>
+#include <aul.h>
+#include <power.h>
+#include <syspopup_caller.h>
+
+#include "cam.h"
+#include "cam_app.h"
+#include "edc_string.h"
+#include "cam_sound.h"
+#include "cam_file.h"
+#include "cam_ta.h"
+#include "cam_error.h"
+#include "cam_config.h"
+#include "cam_mm.h"
+#include "cam_rec.h"
+#include "cam_devman.h"
+#include "cam_popup.h"
+
+#include "cam_common_edc_callback.h"
+#include "cam_indicator_edc_callback.h"
+#include "cam_recording_edc_callback.h"
+#include "cam_toolbar_edc_callback.h"
+#include "cam_zoom_edc_callback.h"
+#include "camera_utils.h"
+
+#include "cam_ui_effect_utils.h"
+#include "cam_ui_rotate_utils.h"
+
+#include "cam_menu_composer.h"
+#include "cam_device_capacity.h"
+
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+#include "cam_animation.h"
+#endif
+
+#define ZSL_MAX_REL (1280*720) /* 1m wide */
+#define FOCUS_FOCUSED_TIME_OUT 3
+#define FOCUS_FAILED_TIME_OUT 2
+#define THUMBNAIL_UPDATE_WAIT_TIME (100*1000)
+
+
+/* 5m ZSL TEST*/
+/* #define ZSL_5M_TEST (2560*1920) */
+
+#define NEW_NOTI_API
+
+static CamAppData *cam_handle = NULL;
+static struct appdata *app_handle = NULL;
+
+/* static Ecore_Idler *spy_rotation_idler=NULL; */
+
+#define TEMP_SAVE_PATH "/tmp/temp_image.jpg"   /* not used maybe... */
+#define SELF_SHOT_TEMP_SAVE_PATH "/tmp/self_temp_shot.jpg"
+
+#define LONG_PRESS_INTERVAL 0.5        /* sec */
+
+#define INAGE_FILE_NAME                        "IMAGE"
+#define VIDEO_FILE_NAME                        "VIDEO"
+#define TEMP_FILE_NAME                         ".camera_result"
+#define IMAGE_FILE_EXTENSION           ".jpg"
+#define VIDEO_FILE_EXTENSION           ".3gp"
+
+#define SHUTTER_W_RATIO        0.1
+#define SHUTTER_H_RATIO        0.34
+#define SCREEN_RATIO 1.0
+#define AUTO_CLOSE_COUNT       10
+/* #define CAMAPP_SIG_HANDLING */
+
+/* #define ENABLE_CHECK_CAM_STATUS       //provent camera hang,  */
+
+#ifdef ENABLE_CHECK_CAM_STATUS
+#define CAM_CHECK_STATUS_INTERVAL_TIME 10
+#ifndef CAMAPP_SIG_HANDLING
+#define CAMAPP_SIG_HANDLING
+#endif
+#endif
+
+
+static int cam_app_start_rotate(struct appdata *ad, bool bInitial);
+static void cam_app_get_win_size(struct appdata *ad);
+#ifdef ENABLE_CHECK_CAM_STATUS
+static void cam_app_check_status();
+#endif
+
+#ifndef DISABLE_TOOLBAR_TOGGLE
+static Eina_Bool _cam_app_toolbar_toggle_timer(void *data);
+#endif
+
+static gboolean cam_power_key_press(void *data);
+static gboolean cam_app_return_ext_app(void *data, const char *r_file_path);
+
+/* vconf changed cb */
+static void cam_app_battery_update_cb(keynode_t *key, void *data);
+static void cam_app_battery_status_cb(keynode_t *key, void *data);
+static void cam_mmc_state_change_cb(keynode_t *key, void *data);
+static void cam_idle_lockstate_change_cb(keynode_t *key, void *data);
+static void cam_usb_state_change_cb(keynode_t *key, void *data);
+static void cam_torchlight_update_cb(keynode_t *key, void *data);
+
+void cam_app_preview_start_coordinate(CamVideoRectangle src,
+                                     CamVideoRectangle dst,
+                                     CamVideoRectangle *result);
+void cam_app_timeout_notice_response_cb(void *data, Evas_Object *obj, void *event_info);
+static void cam_app_capture_error_popup_response_cb(void *data, Evas_Object *obj, void *event_info);
+Eina_Bool cam_app_launch_after_preview_began(void *data);
+
+static void cam_app_auto_close_popup_response_cancel_cb(void *data, Evas_Object *obj, void *event_info);
+static void cam_app_auto_close_popup_response_ok_cb(void *data, Evas_Object *obj, void *event_info);
+static void cam_app_timer_update_count(void *data);
+
+
+/* video streamming */
+static gboolean video_stream_skip_flag = false;
+
+/* thumbnail image check count */
+static int g_thumbnail_image_check_count = 0;
+
+/*popup */
+gboolean g_blocking_popup = false;
+
+void cam_app_set_blocking_popup()
+{
+       g_blocking_popup = true;
+}
+
+void cam_app_free_blocking_popup()
+{
+       g_blocking_popup = false;
+}
+
+gboolean cam_app_check_blocking_popup()
+{
+       return !g_blocking_popup;
+}
+
+struct noti_callback {
+       char *setting_key;
+       void (*noti_func) (keynode_t *, void *);
+};
+
+#define CAMERA_NOTI_MAX                7
+struct noti_callback notis[CAMERA_NOTI_MAX] = {
+       {VCONFKEY_SYSMAN_BATTERY_CAPACITY, *cam_app_battery_update_cb},
+       {VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, *cam_app_battery_update_cb},
+       {VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, *cam_app_battery_status_cb},
+       {VCONFKEY_SYSMAN_MMC_STATUS, *cam_mmc_state_change_cb},
+       {VCONFKEY_IDLE_LOCK_STATE, *cam_idle_lockstate_change_cb},
+       {VCONFKEY_SYSMAN_USB_STATUS, *cam_usb_state_change_cb},
+       {VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, *cam_torchlight_update_cb}
+};
+
+#ifdef CAMAPP_SIG_HANDLING
+#include <signal.h>
+static struct sigaction cam_app_act;
+static struct sigaction cam_app_act_old;
+
+static void cam_app_register_sigsegv(void);
+static void cam_app_sigsegv_handler(int signal_no, siginfo_t *info,
+                                   void *context);
+#endif
+
+static void cam_app_pipe_handler(void *data, void *buffer, unsigned int nbyte);
+static int cam_app_state_manager(int previous, int current, gboolean by_asm);
+static void cam_app_close_ug(void *data);
+Eina_Bool __ug_destory_postprocessing(void *data);
+
+/* timeout */
+static gboolean cam_app_timeout_checker_update();
+static Eina_Bool cam_app_timeout_checker_cb(void *data);
+
+gdouble _get_current_time(void)
+{
+       struct timeval tv;
+       gettimeofday(&tv, NULL);
+       return (gdouble) tv.tv_sec + (gdouble) tv.tv_usec / 1E6;
+}
+void cam_app_zoom_warring_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+}
+void cam_app_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+}
+
+void cam_app_snapshot_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+       ad->is_showing_snapshot_popup = FALSE;
+       DEBUG_TRACE("ad->is_showing_snapshot_popup = FALSE");
+}
+
+static Eina_Bool cam_delay_popup(void *data)
+{
+
+       cam_app_notice_popup(data,_("IDS_CAM_POP_UNABLE_TO_START_CAMERA_DURING_CALL"),
+                            cam_app_timeout_notice_response_cb);
+       return EINA_FALSE;
+
+}
+static void cam_add_longpress_key_timer(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (!ad->longpress_timer) {
+               ad->longpress_timer =
+                       ecore_timer_add(LONG_PRESS_INTERVAL, cam_volume_key_press, ad);
+       }
+}
+
+static void cam_del_longpress_key_timer(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->longpress_timer) {
+               ecore_timer_del(ad->longpress_timer);
+               ad->longpress_timer = 0;
+       }
+}
+
+Eina_Bool _message_popup_destroy_and_exit(void *data)
+{
+       Evas_Object *obj = (Evas_Object *)data;
+       cam_popup_remove(obj);
+       elm_exit();
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+Eina_Bool cam_app_real_exit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       debug_fenter(LOG_UI);
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+       if (ad->timeout_checker) {
+               ecore_timer_del(ad->timeout_checker);
+               ad->timeout_checker = NULL;
+       }
+
+       cam_app_key_event_deinit(ad);
+
+       elm_exit();
+
+       return 0;
+}
+#ifdef EFL_TEMP_CODE
+void cam_win_transparent_set(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+
+       Evas *evas;
+       Evas_Object *rect;
+       int width =0, height=0;
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &height, &width);
+       evas = evas_object_evas_get(ad->win_main);
+       rect = evas_object_rectangle_add(evas);
+       evas_object_color_set(rect, 0, 0, 0, 0);
+       evas_object_render_op_set(rect, EVAS_RENDER_COPY);
+       if (width >= height) {
+               evas_object_resize(rect, width, width);
+       } else {
+               evas_object_resize(rect, height, height);
+       }
+       evas_object_show(rect);
+}
+#endif
+void cam_set_orient_value(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       int orient_value = 0;
+#if 0
+       CamAppData *camapp = ad->camapp_handle;
+       if (camapp->shooting_mode == CAM_SELF_MODE) {
+               switch (ad->rot_current) {
+               case APPCORE_RM_PORTRAIT_NORMAL:
+                       orient_value = 1;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APPCORE_RM_PORTRAIT_REVERSE:
+                       orient_value = 3;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APPCORE_RM_LANDSCAPE_NORMAL:
+                       orient_value = 8;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APPCORE_RM_LANDSCAPE_REVERSE:
+                       orient_value = 6;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               default:
+                       break;
+               }
+       } else {
+#endif
+               switch (ad->rot_current) {
+               case APP_DEVICE_ORIENTATION_0:
+                       orient_value = 6;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APP_DEVICE_ORIENTATION_180:
+                       orient_value = 8;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APP_DEVICE_ORIENTATION_90:
+                       orient_value = 3;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               case APP_DEVICE_ORIENTATION_270:
+                       orient_value = 1;
+                       DEBUG_TRACE("rot_cuttent=%d orient_value=%d\n",
+                                   ad->rot_current, orient_value);
+                       break;
+               default:
+                       break;
+               }
+
+       /*orient_value = CAMERA_ATTR_TAG_ORIENTATION_TOP_LEFT;*/
+
+       if (cam_mm_set_tag_img_orient(orient_value))
+               DEBUG_TRACE("set image orient succeed %d", orient_value);
+       else
+               DEBUG_TRACE("set image orient failed %d", orient_value);
+
+}
+
+int cam_noti_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       int i = 0;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, EXIT_FAILURE, "appdata is NULL");
+
+
+       /* setting noti */
+       for (i = 0; i < CAMERA_NOTI_MAX; i++) {
+               if (0 !=
+                   vconf_notify_key_changed(notis[i].setting_key,
+                                            notis[i].noti_func, ad)) {
+                       cam_critical(LOG_SYS,
+                                    "vconf_notify_key_changed() failed. count=%d ",
+                                    i);
+               }
+       }
+       return EXIT_SUCCESS;
+}
+
+int cam_noti_deinit(void *data)
+{
+       int i;
+       struct appdata *ad = (struct appdata *)data;
+
+       debug_fenter(LOG_SYS);
+
+       cam_retvm_if(ad == NULL, EXIT_FAILURE, "appdata is NULL");
+
+
+
+
+       for (i = 0; i < CAMERA_NOTI_MAX; i++) {
+               vconf_ignore_key_changed(notis[i].setting_key,
+                                        notis[i].noti_func);
+       }
+
+       return EXIT_SUCCESS;
+}
+
+void *cam_appdata_get(void)
+{
+       if (app_handle) {
+               return app_handle;
+       }
+       return NULL;
+}
+
+static void cam_app_get_win_size(struct appdata *ad)
+{
+       DEBUG_TRACE();
+
+       cam_ret_if(ad == NULL || ad->win_main == NULL);
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &(ad->win_height),
+                                &(ad->win_width));
+
+       cam_debug(LOG_UI, "main window ----- win_width, win_height: [%d, %d]",
+                 ad->win_width, ad->win_height);
+}
+
+int cam_appdata_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+
+
+       app_handle = ad;
+
+       ad->main_pipe = ecore_pipe_add(cam_app_pipe_handler, ad);
+       ad->rot_current = app_get_device_orientation();
+       ad->rot_previous = ad->rot_current;
+
+       cam_app_get_win_size(ad);
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_handle_create", 0);
+       if (!cam_handle_create(data)) {
+               cam_critical(LOG_CAM, "cam_handle_create failed");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("      cam_handle_create", 0);
+
+       ad->last_camera_zoom_mode = 1;
+
+       return 1;
+}
+
+int cam_appdata_fini(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+
+       cam_layout_del_all(ad);
+
+       if (ad->imageviewer_service) {
+               service_destroy(ad->imageviewer_service);
+               ad->imageviewer_service = NULL;
+       }
+       if (ad->timeout_checker) {
+               ecore_timer_del(ad->timeout_checker);
+               ad->timeout_checker = NULL;
+       }
+       if (ad->key_down) {
+               ecore_event_handler_del(ad->key_down);
+               ad->key_down = NULL;
+       }
+       if (ad->key_up) {
+               ecore_event_handler_del(ad->key_up);
+               ad->key_up = NULL;
+       }
+       if (ad->mouse_up) {
+               ecore_event_handler_del(ad->mouse_up);
+               ad->mouse_up = NULL;
+       }
+       if (ad->mouse_down) {
+               ecore_event_handler_del(ad->mouse_down);
+               ad->mouse_down = NULL;
+       }
+       if (ad->recording_commit) {
+               ecore_idler_del(ad->recording_commit);
+               ad->recording_commit = NULL;
+       }
+       if (ad->still_captured_idle) {
+               ecore_idler_del(ad->still_captured_idle);
+               ad->still_captured_idle = NULL;
+       }
+       if (ad->capture_idle) {
+               ecore_idler_del(ad->capture_idle);
+               ad->capture_idle = NULL;
+       }
+       /* Remove Idle handler of capture callback. wh01.cho@samsung.com. 2010-12-15. */
+       if (ad->capture_cb_list) {
+               cam_utils_remove_idler_all(ad);
+       }
+       if (ad->auto_shot_idle) {
+               ecore_idler_del(ad->auto_shot_idle);
+               ad->auto_shot_idle = NULL;
+       }
+       if (ad->update_thumbnail_idler) {
+               ecore_idler_del(ad->update_thumbnail_idler);
+               ad->update_thumbnail_idler = NULL;
+       }
+       if (ad->timer_timer) {
+               ecore_timer_del(ad->timer_timer);
+               ad->timer_timer = NULL;
+       }
+       if (ad->timeout_checker) {
+               ecore_timer_del(ad->timeout_checker);
+               ad->timeout_checker = NULL;
+       }
+       if (ad->rec_icon_updater) {
+               ecore_timer_del(ad->rec_icon_updater);
+               ad->rec_icon_updater = NULL;
+       }
+       if (ad->rec_time_updater) {
+               ecore_timer_del(ad->rec_time_updater);
+               ad->rec_time_updater = NULL;
+       }
+       if( ad->setting_menu_composer != NULL){
+               cam_compose_free(ad->setting_menu_composer);
+       }
+       if (ad->camapp_handle) {
+               cam_handle_free(ad);
+       }
+       if (ad->exe_args) {
+               if (ad->exe_args->caller) {
+                       free(ad->exe_args->caller);
+                       ad->exe_args->caller = NULL;
+               }
+               free(ad->exe_args);
+               ad->exe_args = NULL;
+       }
+#ifdef USE_FILE_REG_THREAD
+
+       if (ad->file_reg_thread) {
+               pthread_join(ad->file_reg_thread, NULL);
+       }
+
+       if (ad->file_reg_queue) {
+               while (!g_queue_is_empty(ad->file_reg_queue)) {
+                       char *filename = NULL;
+                       filename = g_queue_pop_head(ad->file_reg_queue);
+
+                       cam_critical(LOG_FILE, "[%s] didn't processed",
+                                    filename);
+
+                       if (!strcmp(REG_THREAD_EXIT, filename)) {
+                               free(filename);
+                       } else {
+                               __cam_single_shot_reg_file(filename);
+                               free(filename);
+                               cam_debug(LOG_FILE, " register done.");
+                       }
+               }
+               g_queue_free(ad->file_reg_queue);
+               ad->file_reg_queue = NULL;
+       }
+#endif
+
+       if (ad->main_pipe) {
+               ecore_pipe_del(ad->main_pipe);
+               ad->main_pipe = NULL;
+       }
+       /* init global handle */
+       app_handle = NULL;
+
+       return 1;
+}
+
+CamAppData *cam_handle_get(void)
+{
+       if (cam_handle) {
+               return cam_handle;
+       }
+       return NULL;
+}
+
+gboolean cam_app_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       GError *error = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_appdata_init", 0);
+       if (!cam_appdata_init(ad)) {
+               cam_critical(LOG_CAM, "cam_appdata_init failed");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_appdata_init", 0);
+
+       cam_retvm_if(ad->camapp_handle == NULL, FALSE, "camapp_handle is NULL");
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_config_init", 0);
+       if (!cam_config_init(&error)) {
+               cam_critical(LOG_SYS, "cam_config_init failed");
+               if (error != NULL) {
+                       cam_critical(LOG_SYS, "cam_config_init error [%s]",
+                                    error->message);
+                       g_error_free(error);
+                       error = NULL;
+               }
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_config_init", 0);
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_noti_init", 0);
+       if (EXIT_FAILURE == cam_noti_init(ad)) {
+               cam_critical(LOG_CAM, "cam_noti_init failed");
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_noti_init", 0);
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_file_init", 0);
+       if (!cam_file_init(&error)) {
+               cam_critical(LOG_FILE, "cam_file_init failed");
+               if (error != NULL) {
+                       cam_critical(LOG_FILE, "cam_file_init error [%s]",
+                                    error->message);
+                       g_error_free(error);
+                       error = NULL;
+               }
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_file_init", 0);
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_sound_init", 0);
+       if (!cam_sound_init(&error)) {
+               cam_critical(LOG_SND, "cam_sound_init failed");
+               if (error != NULL) {
+                       cam_critical(LOG_SND, "cam_sound_init error [%s]",
+                                    error->message);
+                       g_error_free(error);
+                       error = NULL;
+               }
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_sound_init", 0);
+
+#ifdef USE_FILE_REG_THREAD
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_create_file_register_thread", 0);
+       if (!cam_app_create_file_register_thread(ad)) {
+               cam_critical(LOG_SYS,
+                            " cam_app_create_file_register_thread failed");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_app_create_file_register_thread", 0);
+#endif
+
+#ifdef CAMAPP_SIG_HANDLING
+       /* register singal handler */
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_create_file_register_thread", 0);
+       cam_app_register_sigsegv();
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_create_file_register_thread", 0);
+#endif
+
+#if ENABLE_HAPTIC
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_devman_init", 0);
+       if (!cam_devman_init(ad)) {
+               cam_critical(LOG_SYS, " cam_devman_init failed");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_devman_init", 0);
+#endif
+
+       if(media_content_connect() == MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("connection is success");
+       } else {
+               cam_critical(LOG_SYS, " media_content_connect failed");
+               return FALSE;
+       }
+
+       if (error != NULL) {
+               g_error_free(error);
+               error = NULL;
+       }
+       return TRUE;
+}
+
+gboolean cam_app_start(void *data)
+{
+       CAM_TA_ACUM_ITEM_BEGIN("#########cam_app_start", 0);
+
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       /*int session_type;*/
+
+       debug_fenter(LOG_CAM);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       /*init guideline value*/
+#ifdef GUIDE_LINE_ENALBE
+       camapp->guideline = FALSE;
+#endif
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_mm_create", 0);
+       if (cam_mm_is_created() == FALSE) {
+               if (!cam_mm_create(CAM_DEVICE_MEGA, camapp->camera_mode)) {
+                       cam_critical(LOG_MM, "cam_mm_create failed");
+                       cam_app_notice_popup(ad, "UNABLE TO LAUNCH CAMERA", cam_app_timeout_notice_response_cb);
+                       return FALSE;
+               }
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_mm_create", 0);
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_callback_init", 0);
+       if (!cam_callback_init(ad)) {
+               cam_critical(LOG_CAM, "cam_init_mm_callback failed");
+               cam_app_notice_popup(ad, "UNABLE TO START PREVIEW", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_callback_init", 0);
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_app_init_attribute", 0);
+       if (!cam_app_init_attribute(ad, camapp->camera_mode)) {
+               cam_critical(LOG_MM, "cam_app_init_attribute failed");
+//             return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("      cam_app_init_attribute", 0);
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_preview_start", 0);
+
+       /*
+       *       TODO: this func dealt with efl ui api, but cam_app_start is called in thread.
+       *               We should consider it carefully.
+       */
+       cam_continuous_af_start(ad);
+       if (!cam_app_preview_start(ad)) {
+               if (ad->is_calling == CAMERA_ERROR_SOUND_POLICY ||ad->is_calling == RECORDER_ERROR_SOUND_POLICY) {
+                       DEBUG_TRACE(" MM CAMCARORDER ERROR\n");
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup, (void *)ad);
+                       return FALSE;
+               }
+
+               cam_critical(LOG_MM, "cam_app_preview_start failed");
+               cam_app_notice_popup(ad, "UNABLE TO START PREVIEW", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_app_preview_start", 0);
+
+       if(!cam_key_grab_init(ad))
+               DEBUG_TRACE("cam_key_grab_init fail");
+       cam_app_key_event_init(ad);
+       cam_app_timeout_checker_init(ad);
+
+#ifdef ENABLE_CHECK_CAM_STATUS
+       alarm(CAM_CHECK_STATUS_INTERVAL_TIME);  /* start alarm */
+#endif
+       CAM_TA_ACUM_ITEM_END("#########cam_app_start", 0);
+
+       return TRUE;
+}
+
+gboolean cam_app_pause(void *data)
+{
+       DEBUG_TRACE("#############cam_app_pause - START #############\n");
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       int mm_state = 0;
+       mm_state = cam_mm_get_state();
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               if ((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "contacts") == 0)) {
+                       DEBUG_TRACE(" contact is paused ");
+                       service_h reply;
+                       service_create(&reply);
+                       service_add_extra_data(reply, "camera_end", "1");
+                       service_reply_to_launch_request(reply, ad->service_handle, SERVICE_RESULT_CANCELED);
+                       service_destroy(reply);
+               }
+       }
+
+       if ((mm_state == RECORDER_STATE_RECORDING
+           || mm_state == RECORDER_STATE_PAUSED)
+           &&(camapp->camera_mode == CAM_CAMCORDER_MODE)) {
+               int shutter_sound_state = 0;
+               /* get current sound */
+               cam_mm_get_shutter_sound(&shutter_sound_state);
+               /* disable shutter sound */
+               cam_mm_set_shutter_sound(FALSE);
+               /*stop recording */
+               cam_video_record_stop(ad);
+               /*restore shutter sound */
+               cam_mm_set_shutter_sound(shutter_sound_state);
+       } else if (mm_state == CAMERA_STATE_CAPTURING
+               && (camapp->camera_mode == CAM_CAMERA_MODE)) {
+               cam_mm_capture_stop(TRUE, CAM_CAMERA_MODE);
+       }
+
+       if (ad->imageviewer_ug) {       /*  image viewer is running and camera app is fous out */
+               ad->foucs_out_from_quickview = TRUE;
+       }
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_preview_stop", 0);
+       if (!cam_app_preview_stop()) {
+               cam_critical(LOG_MM, "cam_app_preview_stop fail");
+       }
+       CAM_TA_ACUM_ITEM_END("    cam_app_preview_stop", 0);
+
+       cam_app_key_event_deinit(ad);
+       if (!cam_key_grab_deinit(ad)) {
+               DEBUG_TRACE("cam_key_grab_deinit fail");
+       }
+
+       cam_app_timeout_checker_init(ad);
+
+       DEBUG_TRACE("#############cam_app_pause - END #############\n");
+       return TRUE;
+}
+
+gboolean cam_app_resume(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       int cam_state = -1;
+       debug_fenter(LOG_CAM);
+
+       if (!cam_condition_check_to_start_camera(ad)) {
+               cam_critical(LOG_CAM, "cannot start camera");
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       cam_app_timeout_checker_init(ad);
+
+       if (ad->imageviewer_ug == NULL) { /* home key destory imageviewer_ug */
+               elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_HIDE);
+               cam_state = cam_mm_get_state();
+               cam_app_get_preview_offset_coordinate(ad);
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_app_preview_start", 0);
+               if (!cam_app_preview_start(ad)) {
+                       if (ad->is_calling == CAMERA_ERROR_SOUND_POLICY || ad->is_calling == RECORDER_ERROR_SOUND_POLICY) {
+                               DEBUG_TRACE(" MM CAMCARORDER ERROR\n");
+                               cam_app_black_screen_show(ad, 2);
+                               ecore_timer_add(0.01, cam_delay_popup, (void *)ad);
+                               return TRUE;
+                       }
+
+                       cam_critical(LOG_MM, "cam_app_preview_start failed");
+                       cam_app_notice_popup(ad,
+                        "PREVIEW START FAILED !!",
+                        cam_app_timeout_notice_response_cb);
+                       return FALSE;
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_app_preview_start", 0);
+       }
+
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_key_grab_init", 0);
+
+   if (!ad->imageviewer_ug) {
+               if (!cam_key_grab_init(ad))
+                       DEBUG_TRACE("cam_key_grab_init fail");
+               CAM_TA_ACUM_ITEM_END("    cam_key_grab_init", 0);
+               cam_app_key_event_init(ad);
+       }
+#ifdef ENABLE_CHECK_CAM_STATUS
+       alarm(CAM_CHECK_STATUS_INTERVAL_TIME);  /* start alarm */
+#endif
+
+       return TRUE;
+}
+
+Eina_Bool cam_app_stop(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       char *filename = NULL;
+       debug_fenter(LOG_CAM);
+       cam_retvm_if(ad == NULL, EXIT_FAILURE, "appdata is NULL");
+
+       CAM_TA_ACUM_ITEM_BEGIN("  cam_app_stop", 0);
+
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, EXIT_FAILURE, "camapp_handle is NULL");
+
+       /* return aul result path */
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               if (ad->exe_args == NULL) {
+                       DEBUG_TRACE("ad->exe_args is NULL");
+                       return EXIT_FAILURE;
+               }
+               if (ad->path_in_return) {
+                       if ((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "contacts") == 0)) {
+                               DEBUG_TRACE("contacts -not need sending result");
+                       } else {
+                               if (ad->appcore_state != CAM_APPCORE_PAUSE_STATE) {
+                                       if (camapp->filename != NULL) {
+                                               filename = strdup(camapp->filename);
+                                               cam_app_return_ext_app(ad, filename);
+                                       }
+                               }
+                       }
+               } else {
+                       cam_app_return_ext_app(ad, filename);
+               }
+       }
+
+       if (ad->imageviewer_ug) {
+               cam_app_close_ug(ad);
+       }
+
+       cam_popup_remove_all();
+       cam_toolbar_destroy(ad);
+       cam_app_clear_engine_data(ad, true);
+
+       if (ad->timer_activated) {
+               ad->timer_activated = false;
+
+               DEL_EVAS_OBJECT(ad->timer_icon_edje);
+               REMOVE_TIMER(ad->timer_timer);
+       }
+       REMOVE_TIMER(ad->toolbar_toggle_timer);
+       cam_app_timeout_checker_remove();
+       if (ad->auto_close_timer) {
+               ecore_timer_del(ad->auto_close_timer);
+               ad->auto_close_timer = NULL;
+       }
+#if 1
+       if (EXIT_FAILURE == cam_noti_deinit(ad)) {
+               cam_critical(LOG_UI, "cam_noti_deinit failed");
+       }
+#endif
+       cam_app_key_event_deinit(ad);
+       if(!cam_key_grab_deinit(ad))
+               DEBUG_TRACE("cam_key_grab_deinit fail");
+
+       /* destory camcorder */
+       if (cam_mm_is_created()) {
+               int state = 0;
+               state = cam_mm_get_state();
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       switch (state) {
+                       case CAMERA_STATE_NONE:
+                       case CAMERA_STATE_CREATED:
+                               break;
+                       case CAMERA_STATE_PREVIEW:
+                               break;
+                       case CAMERA_STATE_CAPTURING:
+                               cam_mm_capture_stop(TRUE, CAM_CAMERA_MODE);
+                               break;
+                       case CAMERA_STATE_CAPTURED:
+                               break;
+                       default:
+                               /*g_assert_not_reached();*/
+                               break;
+                       }
+               }else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       switch (state) {
+                       case RECORDER_STATE_NONE:
+                       case RECORDER_STATE_CREATED:
+                               break;
+                       case RECORDER_STATE_READY:
+                               break;
+                       case RECORDER_STATE_RECORDING:
+                       case RECORDER_STATE_PAUSED:
+                               cam_video_record_stop(ad);
+                               break;
+                       default:
+                               /*g_assert_not_reached();*/
+                               break;
+                       }
+
+               }
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_app_preview_stop", 0);
+               if (!cam_app_preview_stop()) {
+                       cam_critical(LOG_MM, "cam_app_preview_stop faild");
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_app_preview_stop", 0);
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_mm_destory", 0);
+               if (!cam_mm_destory()) {
+                       cam_critical(LOG_MM, "cam_mm_destory faild");
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_mm_destory", 0);
+       }
+
+       cam_config_save();
+       ad->toolbar_hided = FALSE;
+       cam_app_toggle_indicator(ad, FALSE);
+       cam_app_toggle_toolbar(ad, FALSE);
+
+       /* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+       cam_app_destroy_progressbar(ad);
+       cam_utils_remove_idler_all(ad);
+
+       if (filename != NULL) {
+               free(filename);
+               filename = NULL;
+       }
+
+       CAM_TA_ACUM_ITEM_END("  cam_app_stop", 0);
+
+       CAM_TA_ACUM_ITEM_SHOW_RESULT_TO(CAM_TA_SHOW_FILE);
+       CAM_TA_RELEASE();
+
+       return EXIT_SUCCESS;
+
+}
+
+gboolean cam_app_quit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (cam_mm_is_created()) {
+               /*TODO: new logic will be add for save file while camera process is killed*/
+               /*stop*/
+               int state = 0;
+               state = cam_mm_get_state();
+               if (ad->camapp_handle) {
+                       if (ad->camapp_handle->camera_mode == CAM_CAMCORDER_MODE) {
+                               switch (state) {
+                               case RECORDER_STATE_NONE:
+                               case RECORDER_STATE_CREATED:
+                                       break;
+                               case RECORDER_STATE_READY:
+                                       break;
+                               case RECORDER_STATE_RECORDING:
+                               case RECORDER_STATE_PAUSED:
+                                       cam_video_record_stop(ad);
+                                       break;
+                               default:
+                                       /*g_assert_not_reached();*/
+                                       break;
+                               }
+                       }
+               }
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_app_preview_stop", 0);
+               if (!cam_app_preview_stop()) {
+                       cam_critical(LOG_MM, "cam_app_preview_stop failed");
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_app_preview_stop", 0);
+
+               CAM_TA_ACUM_ITEM_BEGIN("    cam_mm_destory", 0);
+               if (!cam_mm_destory()) {
+                       cam_critical(LOG_MM, "cam_mm_destory failed");
+               }
+               CAM_TA_ACUM_ITEM_END("    cam_mm_destory", 0);
+       }
+#if ENABLE_HAPTIC
+       cam_devman_deinit();
+#endif
+
+       if (EXIT_FAILURE == cam_noti_deinit(ad)) {
+               cam_critical(LOG_UI, "cam_noti_deinit failed");
+       }
+       /* crear data & engine */
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_app_clear_engine_data", 0);
+       cam_app_clear_engine_data(data, true);
+       CAM_TA_ACUM_ITEM_END("    cam_app_clear_engine_data", 0);
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_file_finalize", 0);
+       cam_file_finalize();
+       CAM_TA_ACUM_ITEM_END("    cam_file_finalize", 0);
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_sound_finalize", 0);
+       cam_sound_finalize();
+       CAM_TA_ACUM_ITEM_END("    cam_sound_finalize", 0);
+       /*  clean config */
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_config_finalize", 0);
+       cam_config_finalize();
+       CAM_TA_ACUM_ITEM_END("    cam_config_finalize", 0);
+
+       /*  disconnect media content */
+       CAM_TA_ACUM_ITEM_BEGIN("    media_content_disconnect", 0);
+
+       if(media_content_disconnect() == MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("dis connection is success");
+       } else {
+               cam_critical(LOG_SYS, " media_content_disconnect failed");
+       }
+
+       CAM_TA_ACUM_ITEM_END("    media_content_disconnect", 0);
+
+       /*  cam_handle_free(ad); */
+       cam_appdata_fini(ad);
+
+       return TRUE;
+}
+
+gboolean cam_app_preview_start(void *data)
+{
+       CAM_TA_ACUM_ITEM_BEGIN("----cam_app_preview_start", 0);
+       DEBUG_TRACE
+           ("------------------------------START---------------------------------");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp is NULL");
+
+       int state = cam_mm_get_state();
+       DEBUG_TRACE("state: %d ", state);
+
+       if (state < CAMERA_STATE_NONE || state < RECORDER_STATE_NONE)
+               return FALSE;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               switch(state) {
+               case CAMERA_STATE_CREATED:
+               case CAMERA_STATE_CAPTURED:
+                       {
+                               CAM_TA_ACUM_ITEM_BEGIN("          cam_mm_preview_start", 0);
+                               if (!cam_mm_preview_start(camapp->camera_mode)) {
+                                       cam_critical(LOG_MM, "cam_mm_preview_start failed");
+                                       return FALSE;
+                               }
+                               CAM_TA_ACUM_ITEM_END("          cam_mm_preview_start", 0);
+                       }
+                       break;
+               case CAMERA_STATE_CAPTURING:
+                       {
+                               if (cam_mm_capture_stop(FALSE, camapp->camera_mode) == FALSE) {
+                                       cam_critical(LOG_MM, "cam_mm_capture_stop failed");
+                                       return FALSE;
+                               }
+                       }
+                       break;
+               default:
+                       break;
+               }
+       }else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               switch(state) {
+               case RECORDER_STATE_CREATED:
+               case RECORDER_STATE_PAUSED:
+                       {
+                               if (!cam_mm_preview_start(camapp->camera_mode)) {
+                                       cam_critical(LOG_MM, "cam_mm_preview_start failed");
+                                       return FALSE;
+                               }
+                       }
+                       break;
+               default:
+                       break;
+
+               }
+       }
+
+       CAM_TA_ACUM_ITEM_END("----cam_app_preview_start", 0);
+       return TRUE;
+}
+
+gboolean cam_app_preview_stop(void)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       if (ad == NULL)
+               return FALSE;
+       CamAppData *camapp = ad->camapp_handle;
+       if (camapp == NULL)
+               return FALSE;
+       if (!cam_mm_preview_stop(camapp->camera_mode)) {
+               cam_critical(LOG_MM, "cam_mm_preview_stop failed");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+static void
+_main_layout_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       if (!ad)
+               return;
+
+       unload_zoom_edje(ad);
+
+       if (ad->setting_ctxpopup || ad->toolbar_popup) {
+               /* destroy toolbar popup and setting popup */
+               ad->show_menu = FALSE;
+               ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+               cam_toolbar_and_setting_popup_del(ad);
+               if (ad->shot_mode_guide_popup)
+                       toolbar_shot_guide_popup_create(ad, ad->camapp_handle->shooting_mode);
+       } else if (ad->toolbar_show_setting_popup == TRUE) {
+               ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+               ad->show_menu = FALSE;
+               toolbar_hide_setting_popup(ad);
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) {
+                       toolbar_destroy_shortcuts_popup(ad);
+                       ad->toolbar_show_edit_shortcuts_popup = FALSE;
+               }
+       } else if (ad->toolbar_show_edit_shortcuts_popup == TRUE) {
+               toolbar_destroy_shortcuts_popup(ad);
+               ad->toolbar_show_edit_shortcuts_popup = FALSE;
+       } else {
+               if (ad->camapp_handle->enable_touch_af == TRUE) {
+                       REMOVE_TIMER(ad->continuous_af_timer);
+                       cam_camera_touch_af_press(ad);
+               }
+       }
+
+       return;
+}
+
+static void cam_app_timer_icon_rotate(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       DEL_EVAS_OBJECT(ad->timer_icon_edje);
+       cam_app_timer_update_count(ad);
+}
+
+static int cam_app_start_rotate(struct appdata *ad, bool bInitial)
+{
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+       cam_debug(LOG_UI, "rotated : %d, window rotation angle=%d", ad->rot_current);   /*, elm_win_rotation_get(ad->win_main)); */
+
+
+       int angle = 0;
+
+       switch (ad->rot_current) {
+       case APP_DEVICE_ORIENTATION_0:
+               ad->camcorder_rotate = CAMERA_ROTATION_90;
+               ad->target_direction = CAM_TARGET_DIRECTION_PORTRAIT;
+               angle = 0;
+               break;
+
+       case APP_DEVICE_ORIENTATION_180:
+               ad->camcorder_rotate = CAMERA_ROTATION_270;
+               ad->target_direction = CAM_TARGET_DIRECTION_PORTRAIT_INVERSE;
+               angle = 180;
+               break;
+
+       case APP_DEVICE_ORIENTATION_270:
+               ad->camcorder_rotate = CAMERA_ROTATION_NONE;
+               ad->target_direction = CAM_TARGET_DIRECTION_LANDSCAPE;
+               angle = 270;
+               break;
+
+       case APP_DEVICE_ORIENTATION_90:
+               ad->camcorder_rotate = CAMERA_ROTATION_180;
+               ad->target_direction = CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE;
+               angle = 90;
+               break;
+
+       default:
+               break;
+       }
+       ad->angle = angle;
+       ad->angle_pre = ad->angle;
+
+
+////////////////////////////////////////////////////////////////////////////
+       if (ad->toolbar_edj_file) {
+               free(ad->toolbar_edj_file);
+               ad->toolbar_edj_file = NULL;
+       }
+       /*ad->angle = 270;*/
+       switch (ad->angle) {
+       case 270:
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_EDJ_NAME);
+               break;
+       case 0:
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_VERTICAL_EDJ_NAME);
+               break;
+       case 90:
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_INVERSE_EDJ_NAME);
+               break;
+       case 180:
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_VERTICAL_INVERSE_EDJ_NAME);
+               break;
+       default:
+               ad->toolbar_edj_file = strdup(CAM_TOOLBAR_LAYOUT_EDJ_NAME);
+               break;
+
+       }
+
+       elm_win_rotation_with_resize_set(ad->win_main, ad->angle);
+
+       /* cam_app_get_win_size(ad); */
+       cam_app_get_preview_offset_coordinate(ad);
+
+       if (!bInitial) {
+               if (ad->toolbar_edje)
+                       cam_toolbar_rotate(ad);
+
+               if (ad->indicator_edje)
+                       cam_indicator_rotate(ad);
+
+               if (ad->recording_edje)
+                       cam_recording_rotate(ad);
+
+               if (ad->timer_icon_edje)
+                       cam_app_timer_icon_rotate(ad);
+
+               if (ad->zoom_edje) {
+                       unload_zoom_edje(ad);
+                       load_zoom_edje(ad);
+               }
+               /* guideline */
+#ifdef GUIDE_LINE_ENALBE
+               if (ad->guideline_edje)
+                       settings_guideline_refresh(ad);
+#endif
+
+       }
+       return 0;
+}
+
+gboolean cam_layout_init(void *data)
+{
+       DEBUG_TRACE("START");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->win_main == NULL) {
+               cam_critical(LOG_UI, "win_main is NULL");
+               return FALSE;
+       }
+
+       elm_win_indicator_mode_set(ad->win_main, ELM_WIN_INDICATOR_HIDE);
+
+       cam_app_start_rotate(ad, TRUE);
+       DEBUG_TRACE("ad->angle = %d", ad->angle);
+       /*elm_win_rotation_with_resize_set(ad->win_main, 270);*/
+       cam_app_get_preview_offset_coordinate(ad);
+       elm_theme_extension_add(NULL, CAM_SETTING_POPUP_STYLE_EDJ_NAME);
+       elm_theme_extension_add(NULL, CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME);
+       elm_theme_extension_add(NULL, CAM_SLIDER_STYLE_EDJ_NAME);
+
+       CAM_TA_ACUM_ITEM_BEGIN("      layout_main load", 0);
+       if (ad->layout_main == NULL) {
+               ad->layout_main =
+                   cam_app_load_edj(ad->win_main, CAM_MAIN_LAYOUT_EDJ_NAME,
+                                    "main_layout");
+               if (ad->layout_main == NULL) {
+                       CAM_TA_ACUM_ITEM_END("      layout_main load", 0);
+                       cam_critical(LOG_UI, "layout_main load failed ");
+                       return FALSE;
+               }
+
+#ifndef        CAMERA_MACHINE_I686
+               evas_object_smart_callback_del(_EDJ(ad->layout_main),
+                                              "mouse.click",
+                                              _main_layout_click_cb);
+
+               evas_object_smart_callback_add(_EDJ(ad->layout_main),
+                                              "mouse.click",
+                                              _main_layout_click_cb, ad);
+
+               define_mouse_callback(_EDJ(ad->layout_main),
+                                     _EDJ(ad->layout_main));
+#endif
+       }
+       CAM_TA_ACUM_ITEM_END("      layout_main load", 0);
+
+       cam_app_focus_guide_create(ad);
+
+       CAM_TA_ACUM_ITEM_BEGIN("      load_toolbar_edje", 0);
+       if (cam_toolbar_create(ad)) {
+               CAM_TA_ACUM_ITEM_END("      load_toolbar_edje", 0);
+               cam_critical(LOG_UI, " load_toolbar_edje failed ");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("      load_toolbar_edje", 0);
+
+#ifndef DISABLE_INDICATOR
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_indicator_create", 0);
+       if (ad->indicator_edje) {
+               evas_object_hide(ad->indicator_edje);
+               cam_indicator_destory(ad);
+       }
+       if (cam_indicator_create(ad)) {
+               CAM_TA_ACUM_ITEM_END("      cam_indicator_create", 0);
+               cam_critical(LOG_UI, "cam_indicator_create failed ");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("      cam_indicator_create", 0);
+#endif
+
+       cam_app_update_quickview_icon(ad);
+
+       DEBUG_TRACE("END");
+
+       return TRUE;
+}
+
+gboolean cam_handle_create(void *data)
+{
+       CAM_TA_ACUM_ITEM_BEGIN("------cam_handle_create", 0);
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_CAM);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->camapp_handle && cam_handle) {
+               cam_handle_free(ad);
+       }
+
+       camapp = (CamAppData *)malloc(sizeof(CamAppData));
+       cam_retv_if(camapp == NULL, FALSE);
+       memset(camapp, 0x00, sizeof(CamAppData));
+
+       cam_handle = camapp;
+       ad->camapp_handle = camapp;
+       CAM_TA_ACUM_ITEM_END("------cam_handle_create", 0);
+
+       return TRUE;
+}
+
+gboolean cam_handle_free(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_CAM);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_config_save();
+
+       if (camapp && cam_handle) {
+               if (camapp->battery_ani_timer) {
+                       ecore_timer_del(camapp->battery_ani_timer);
+                       camapp->battery_ani_timer = NULL;
+               }
+
+               if (camapp->filename) {
+                       free(camapp->filename);
+                       camapp->filename = NULL;
+               }
+
+               if (camapp->thumbnail_name) {
+                       free(camapp->thumbnail_name);
+                       camapp->thumbnail_name = NULL;
+               }
+
+               if (camapp) {
+                       free(camapp);
+                       camapp = NULL;
+               }
+               DEBUG_TRACE();
+               ad->camapp_handle = NULL;
+               cam_handle = NULL;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_toolbar_menu_config_init(void *data, int mode) {
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       ad->toolbar_1_type = cam_config_get_int( PROP_TOOLBAR_1_TYPE_NAME, CAM_MENU_EMPTY);
+       ad->toolbar_2_type = cam_config_get_int( PROP_TOOLBAR_2_TYPE_NAME, CAM_MENU_EMPTY);
+       ad->toolbar_3_type = cam_config_get_int( PROP_TOOLBAR_3_TYPE_NAME, CAM_MENU_EMPTY);
+       ad->toolbar_4_type = cam_config_get_int( PROP_TOOLBAR_4_TYPE_NAME, CAM_MENU_EMPTY);
+       DEBUG_TRACE("ad->toolbar_1_type= %d", ad->toolbar_1_type);
+       DEBUG_TRACE("ad->toolbar_2_type= %d", ad->toolbar_2_type);
+       DEBUG_TRACE("ad->toolbar_3_type= %d", ad->toolbar_3_type);
+       DEBUG_TRACE("ad->toolbar_4_type= %d", ad->toolbar_4_type);
+
+       return TRUE;
+}
+
+gboolean cam_toolbar_menu_config_update(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       int toolbar_1_type;
+       int toolbar_2_type;
+       int toolbar_3_type;
+       int toolbar_4_type;
+
+       toolbar_1_type = cam_config_get_int( PROP_TOOLBAR_1_TYPE_NAME, CAM_MENU_EMPTY);
+       toolbar_2_type = cam_config_get_int( PROP_TOOLBAR_2_TYPE_NAME, CAM_MENU_EMPTY);
+       toolbar_3_type = cam_config_get_int( PROP_TOOLBAR_3_TYPE_NAME, CAM_MENU_EMPTY);
+       toolbar_4_type = cam_config_get_int( PROP_TOOLBAR_4_TYPE_NAME, CAM_MENU_EMPTY);
+
+       if (toolbar_1_type != ad->toolbar_1_type)
+               cam_config_set_int(PROP_TOOLBAR_1_TYPE_NAME, ad->toolbar_1_type);
+       if (toolbar_2_type != ad->toolbar_2_type)
+               cam_config_set_int(PROP_TOOLBAR_2_TYPE_NAME, ad->toolbar_2_type);
+       if (toolbar_3_type != ad->toolbar_3_type)
+               cam_config_set_int(PROP_TOOLBAR_3_TYPE_NAME, ad->toolbar_3_type);
+       if (toolbar_4_type != ad->toolbar_4_type)
+               cam_config_set_int(PROP_TOOLBAR_4_TYPE_NAME, ad->toolbar_4_type);
+
+       return TRUE;
+
+}
+
+gboolean cam_handle_init(void *data, int mode)
+{
+       struct appdata *ad = data;
+       CamAppData *camapp = NULL;
+       int charging = 0;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_info(LOG_UI, "mode : %d ", mode);
+       camapp->camera_mode = mode;
+
+       cam_info(LOG_UI, "camera_mode = %d ", camapp->camera_mode);
+
+       cam_config_set_int_by_type(CAM_CONFIG_TYPE_COMMON, PROP_MODE_NAME, mode);
+
+       cam_app_set_config_group(camapp->camera_mode);
+
+#ifdef USE_CAM_STORAGE_SETTING
+       camapp->storage = cam_config_get_int( PROP_STORAGE_NAME, CAM_STORAGE_INTERNAL);
+#else
+       vconf_get_int(VCONFKEY_SETAPPL_DEFAULT_MEM_CAMERA_INT, &(camapp->storage));
+#endif
+
+       /* use shot mode as default value */
+       camapp->recording_mode = RECMODE_DEFAULT;
+       camapp->shooting_mode = SHOTMODE_DEFAULT;
+
+       camapp->af_mode = AF_DEFAULT;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               camapp->flash = cam_config_get_int(PROP_FLASH_NAME, FLASH_DEFAULT);
+       } else {
+               camapp->flash = cam_config_get_int(PROP_FLASH_NAME, REC_FLASH_DEFAULT);
+       }
+
+#ifdef GUIDE_LINE_ENALBE
+       camapp->guideline = cam_config_get_boolean(PROP_GUIDELINE_NAME, GUIDE_LINE_DEFAULT);
+       DEBUG_TRACE("camapp->guideline = %d" ,camapp->guideline);
+#endif
+
+       camapp->effect = EFFECT_DEFAULT;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE)
+               DEBUG_TRACE("default resolution will be got from FW API");
+       else
+               camapp->resolution = cam_config_get_int(PROP_RESOLUTION_NAME, REC_RESOLUTION_DEFAULT);
+
+       camapp->image_quality = cam_config_get_int(PROP_IMAGE_QUALITY_NAME, QUALITY_DEFAULT);
+       camapp->video_quality = cam_config_get_int(PROP_VIDEO_QUALITY_NAME, QUALITY_DEFAULT);
+       camapp->audio_recording = AUDIOREC_DEFAULT;
+       camapp->review = cam_config_get_boolean(PROP_REVIEW_NAME, FALSE);
+
+       camapp->battery_level = cam_utils_get_battery_level();
+       charging = cam_utils_get_charging_status();
+       if (charging == 1)
+               camapp->battery_charging = charging;
+       else
+               camapp->battery_charging = 0;
+
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       camapp->shutter_sound =
+           cam_config_get_int(PROP_SHUTTER_SOUND_NAME, SHUTTER_SOUND_DEFAULT);
+#endif
+       /*sound*/
+       cam_mm_set_shutter_sound(SOUND_DEFAULT);
+       camapp->shutter_sound = SHUTTER_SOUND_DEFAULT;  /* on */
+
+       /* below item had been saved in ini file */
+       camapp->zoom_mode = 1;
+       camapp->image_count = IMAGE_COUNT_DEFAULT;
+       camapp->size_limit_type = CAM_MM_SIZE_LIMIT_TYPE_BYTE;
+       camapp->size_limit = REC_SIZE_LIMIT_DEFAULT;
+       camapp->timer = TIMER_DEFAULT;
+       camapp->fps = FPS_DEFAULT;
+
+       camapp->enable_touch_af = TRUE;
+       camapp->key_lock = FALSE;
+
+       /*init toolbar menu config */
+       cam_toolbar_menu_config_init((void*)ad, mode);
+
+       return TRUE;
+}
+
+gboolean cam_handle_value_set(void *data, int type, const GValue *value)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_debug(LOG_CAM, "type : %d", type);
+
+       switch (type) {
+       case PROP_MODE:
+               {
+                       gint current = 0;
+                       gint tempval = g_value_get_int(value);
+
+                       current = camapp->camera_mode;
+                       if (!cam_mode_change(ad, tempval)) {
+                               cam_critical(LOG_CAM,
+                                            "MODE CHANGE IS FAILED by MIDDLE WARE");
+                               cam_app_notice_popup(data,
+                                                    "MODE CHANGE FAILED !!",
+                                                    cam_app_timeout_notice_response_cb);
+                       }
+               }
+               break;
+
+       case PROP_SHOT_MODE:
+               {
+                       gint tempval = g_value_get_int(value);
+                       gint cur_mode = camapp->shooting_mode;
+
+                       camapp->shooting_mode = tempval;
+
+                       if (!cam_shooting_mode_change(ad)) {
+                               cam_critical(LOG_UI, "shot mode set fail");
+                               camapp->shooting_mode = cur_mode;
+                               return FALSE;
+                       }
+                       printf(" ##### %s %d tempval = %d\n", __FUNCTION__,
+                              __LINE__, tempval);
+                       cam_config_set_int(PROP_SHOT_MODE_NAME, tempval);
+                       cam_app_focus_guide_update(ad);
+               }
+               break;
+       case PROP_REC_MODE:
+               {
+                       gint tempval = g_value_get_int(value);
+                       /* set recording mode */
+                       camapp->recording_mode = tempval;
+                       cam_config_set_int(PROP_REC_MODE_NAME, tempval);
+
+                       if (!cam_recording_mode_change(ad, tempval)) {
+                               cam_critical(LOG_UI, "rec mode change fail - mode[%d]", tempval);
+                               return FALSE;
+                       }
+
+               }
+               break;
+       case PROP_RESOLUTION:
+               {
+                       gint tempval = g_value_get_int(value);
+                       /* int af_x,af_y; */
+
+                       DEBUG_TRACE
+                           ("*******************************************************");
+                       DEBUG_TRACE("value set : PROP_RESOLUTION setting");
+                       DEBUG_TRACE(" tempval = %d ", tempval);
+                       DEBUG_TRACE
+                           ("CAM_RESOLUTION_W = %d ,CAM_RESOLUTION_H=%d ",
+                            CAM_RESOLUTION_W(tempval),
+                            CAM_RESOLUTION_H(tempval));
+                       DEBUG_TRACE
+                           ("*******************************************************");
+
+
+                       cam_critical(LOG_FILE, "1111111111");
+
+                       if (!cam_app_reset_resolution(ad, CAM_RESOLUTION_W(tempval), CAM_RESOLUTION_H(tempval))) {
+                               cam_warning(LOG_UI, "resolution set fail");
+                               return FALSE;
+                       }
+#ifdef GUIDE_LINE_ENALBE
+                       settings_guideline_refresh(ad);
+#endif
+                       camapp->resolution = tempval;
+                       cam_critical(LOG_FILE, " camapp->resolution %d", camapp->resolution);
+
+                       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                               cam_app_set_video_quality(ad, camapp->video_quality);
+                               /*  cam_mm_set_video_quality(camapp->recording_mode, camapp->video_quality); */
+                       }
+
+                       if ((camapp->camera_mode == CAM_CAMERA_MODE
+                            && camapp->shooting_mode == CAM_SINGLE_MODE)
+                           || (camapp->camera_mode == CAM_CAMCORDER_MODE
+                               && camapp->recording_mode == CAM_RECORD_NORMAL)) {
+                               cam_debug(LOG_UI,
+                                         "resolution saved : [%d]x[%d]",
+                                         CAM_RESOLUTION_W(tempval),
+                                         CAM_RESOLUTION_H(tempval));
+                               cam_config_set_int(PROP_RESOLUTION_NAME,
+                                                  tempval);
+                       }
+                       cam_app_get_preview_offset_coordinate(ad);
+                       ad->remained_count = cam_system_get_still_count_by_resolution(ad);
+               }
+               break;
+       case PROP_FPS:
+               {               /*  fps may not set it alone */
+                       gint tempval = g_value_get_int(value);
+                       /* set fps */
+                       if (!cam_mm_set_fps(tempval)) {
+                               cam_warning(LOG_UI, "fps set fail");
+                               return FALSE;
+                       }
+                       camapp->fps = tempval;
+               }
+               break;
+       case PROP_EFFECT:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_mm_set_effect(tempval)) {
+                               cam_warning(LOG_UI, "effect set fail : %d",
+                                           tempval);
+                               return FALSE;
+                       }
+                       camapp->effect = tempval;
+                       cam_config_set_int(PROP_EFFECT_NAME, tempval);
+               }
+               break;
+       case PROP_AF_MODE:
+               {
+                       gint tempval = g_value_get_int(value);
+                       gint oldval = cam_config_get_int(PROP_AF_NAME, CAM_FOCUS_AUTO);
+
+                       if ((tempval == CAM_FOCUS_AUTO)
+                                  || (tempval == CAM_FOCUS_MACRO)) {
+                               if (!cam_mm_set_focus_mode(tempval)) {
+                                       cam_warning(LOG_UI, "af mode set fail");
+                                       return FALSE;
+                               }
+
+                       } else {
+                               cam_warning(LOG_UI, "unknow af mode : %d",
+                                           tempval);
+                               return FALSE;
+                       }
+                       camapp->af_mode = tempval;
+                       cam_app_focus_guide_update(ad);
+                       if (camapp->camera_mode == CAM_CAMERA_MODE
+                           && camapp->shooting_mode == CAM_SINGLE_MODE) {
+                               cam_config_set_int(PROP_AF_NAME, tempval);
+                       }
+               }
+               break;
+       case PROP_FLASH:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_mm_set_flash(tempval)) {
+                               cam_warning(LOG_UI, "flash set fail");
+                               return FALSE;
+                       }
+                       camapp->flash = tempval;
+                       /*fix me ,why only when in camera single mode ,
+                               save the FLASH setting value to config file*/
+                       if ((camapp->camera_mode == CAM_CAMERA_MODE
+                            && camapp->shooting_mode == CAM_SINGLE_MODE)
+                           || camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                               cam_config_set_int(PROP_FLASH_NAME, tempval);
+                       }
+               }
+               break;
+       case PROP_TIMER:
+               {
+                       gint tempval = g_value_get_int(value);
+                       /*set timer */
+                       camapp->timer = tempval;
+               }
+               break;
+       case PROP_IMAGE_QUALITY:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_mm_set_image_enc_quality(tempval)) {
+                               cam_warning(LOG_UI,
+                                           "image quality[%d] set fail",
+                                           tempval);
+                               return FALSE;
+                       }
+                       /*set quality */
+                       camapp->image_quality = tempval;
+                       cam_config_set_int(PROP_IMAGE_QUALITY_NAME, tempval);
+               }
+               break;
+       case PROP_VIDEO_QUALITY:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_app_set_video_quality(ad, tempval)) {
+                               cam_warning(LOG_UI,
+                                           "video quality[%d] set fail",
+                                           tempval);
+                               return FALSE;
+                       }
+                       /* set quality */
+                       camapp->video_quality = tempval;
+                       cam_config_set_int(PROP_VIDEO_QUALITY_NAME, tempval);
+               }
+               break;
+       case PROP_AUDIO_REC:
+               {
+                       gboolean tempval = g_value_get_boolean(value);
+                       if (!cam_mm_set_audio_recording(tempval)) {
+                               cam_warning(LOG_UI, "audio_recording set fail");
+                               return FALSE;
+                       }
+                       camapp->audio_recording = tempval;
+                       cam_config_set_boolean(PROP_AUDIO_REC_NAME, tempval);
+
+               }
+               break;
+       case PROP_AUDIO_QUALITY:
+               {
+                       gint tempval = g_value_get_int(value);
+                       /* set audio quality */
+                       camapp->audio_quality = tempval;
+                       cam_config_set_int(PROP_AUDIO_QUALITY_NAME, tempval);
+               }
+               break;
+       case PROP_BATTERY_CHARG:
+               {
+                               gint tempval_charging = g_value_get_int(value);
+
+                               DEBUG_TRACE("charging = %d", tempval_charging);
+                               camapp->battery_charging = tempval_charging;
+                               camapp->battery_level = cam_utils_get_battery_level();
+                               indicator_update_battery(ad, camapp->battery_level);
+               }
+               break;
+       case PROP_BATTERY_LEVEL:
+               {
+                       gint tempval = g_value_get_int(value);
+                       camapp->battery_charging = cam_utils_get_charging_status();
+                       camapp->battery_level = tempval;
+                       indicator_update_battery(ad, camapp->battery_level);
+
+               }
+               break;
+       case PROP_ZOOM:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_mm_set_zoom(tempval)) {
+                               cam_warning(LOG_UI, "zoom set fail");
+                               return FALSE;
+                       }
+                       camapp->zoom = tempval;
+               }
+               break;
+       case PROP_STORAGE:
+               {
+                       gint tempval = g_value_get_int(value);
+
+                       camapp->storage = tempval;
+                       cam_config_set_int(PROP_STORAGE_NAME, tempval);
+               }
+               break;
+       case PROP_GUIDELINE:
+               {
+                       gboolean tempval = g_value_get_boolean(value);
+
+                       camapp->guideline = tempval;
+                       cam_config_set_boolean(PROP_GUIDELINE_NAME, tempval);
+               }
+               break;
+       case PROP_REVIEW:
+               {
+                       gboolean tempval = g_value_get_boolean(value);
+                       camapp->review = tempval;
+                       cam_config_set_boolean(PROP_REVIEW_NAME, tempval);
+               }
+               break;
+       case PROP_IMAGE_COUNT:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_mm_set_image_count(tempval)) {
+                               cam_warning(LOG_UI, "image_count set fail");
+                               return FALSE;
+                       }
+                       camapp->image_count = tempval;
+               }
+               break;
+       case PROP_SHUTTER_SOUND:
+               {
+                       gint tempval = g_value_get_int(value);
+                       camapp->shutter_sound = tempval;
+                       cam_config_set_int(PROP_SHUTTER_SOUND_NAME, tempval);
+               }
+               break;
+       case PROP_SIZE_LIMIT:
+               {
+                       gint tempval = g_value_get_int(value);
+                       if (!cam_app_set_size_limit
+                           (tempval, camapp->size_limit_type)) {
+                               cam_warning(LOG_UI, "size_limit set fail");
+                               return FALSE;
+                       }
+                       camapp->size_limit = tempval;
+               }
+               break;
+       case PROP_SIZE_LIMIT_TYPE:
+               {
+                       gint tempval = g_value_get_int(value);
+                       camapp->size_limit_type = tempval;
+               }
+               break;
+       case PROP_REC_TIME:
+               {
+                       guint tempval = g_value_get_uint(value);
+                       camapp->rec_elapsed = tempval;
+               }
+               break;
+       case PROP_REC_FILE_SIZE:
+               {
+                       guint tempval = g_value_get_uint(value);
+                       camapp->rec_filesize = tempval;
+               }
+               break;
+       default:
+               cam_warning(LOG_UI, "unknow type :%d ", type);
+               return FALSE;
+               break;
+       }
+       /* indicator should be updated here!!! */
+/*      change_indicator_mode_icons(ad); */
+       return TRUE;
+}
+
+gboolean cam_mode_change(void *data, int to_mode)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+
+       int session_type;
+       debug_fenter(LOG_UI);
+
+       cam_elm_cache_flush();
+
+       evas_object_hide(ad->timer_icon_edje);
+       REMOVE_TIMER(ad->timer_timer);
+       ad->timer_activated = false;
+       DEL_EVAS_OBJECT(ad->timer_icon_edje);
+#ifdef GUIDE_LINE_ENALBE
+       DEL_EVAS_OBJECT(ad->guideline_edje);
+       camapp->guideline = FALSE;
+#endif
+       cam_app_timeout_checker_remove();
+       /* draw to_mode icon in preview area */
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       if (ad->play_rec_sound != 0)
+               return TRUE;
+#endif
+       /*cam_app_black_screen_show(ad, to_mode);*/
+
+       if (cam_mm_get_state() == CAMERA_STATE_CAPTURING
+               && (camapp->camera_mode == CAM_CAMERA_MODE)) {
+               cam_mm_capture_stop(true, CAM_CAMERA_MODE);
+       }
+
+       /*  stop preview and destory mmfw handle */
+       if (!cam_app_preview_stop()) {
+               cam_critical(LOG_MM, "cam_app_preview_stop faild");
+               goto MODE_CHANGE_FAILED;
+
+       }
+
+       if (!cam_mm_destory()) {
+               cam_critical(LOG_MM, "cam_mm_destory faild");
+               cam_app_notice_popup(data,
+                                    "cam_mm_destory faild BY MIDDLE WARE",
+                                    cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+
+       if (to_mode == CAM_CAMERA_MODE) {
+               DEBUG_TRACE("session_type :SOUND_SESSION_TYPE_SHARE");
+               session_type = SOUND_SESSION_TYPE_SHARE;
+       } else {
+               DEBUG_TRACE("session_type :SOUND_SESSION_TYPE_EXCLUSIVE");
+               session_type = SOUND_SESSION_TYPE_EXCLUSIVE;
+       }
+       if (!cam_mm_session_init(session_type)) {
+               cam_critical(LOG_MM, "cam_mm_session_init faild");
+               goto MODE_CHANGE_FAILED;
+
+       }
+       if (!cam_mm_create(CAM_DEVICE_MEGA, to_mode)) {
+               cam_critical(LOG_MM, "cam_mm_create failed");
+               goto MODE_CHANGE_FAILED;
+
+       }
+       /* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+       cam_utils_remove_idler_all(ad);
+
+       if (to_mode == CAM_CAMCORDER_MODE) {
+               ad->last_camera_zoom_mode = camapp->zoom_mode;
+       }
+
+       if (!cam_handle_create(ad)) {
+               cam_critical(LOG_CAM, "cam_handle_create faild");
+               goto MODE_CHANGE_FAILED;
+
+       }
+
+       if (!cam_handle_init(ad, to_mode)) {
+               cam_critical(LOG_CAM, "cam_handle_init faild");
+               goto MODE_CHANGE_FAILED;
+
+       }
+
+       else if (to_mode == CAM_CAMERA_MODE) {
+               camapp->zoom_mode = ad->last_camera_zoom_mode;
+       }
+       if (!cam_callback_init(ad)) {
+               cam_critical(LOG_MM, "cam_init_mm_callback failed");
+               goto MODE_CHANGE_FAILED;
+
+       }
+       DEBUG_TRACE("camera mode = %d", to_mode);
+       if (!cam_app_init_attribute(ad, to_mode)) {
+               cam_critical(LOG_MM, "cam_app_init_attribute failed");
+//             goto MODE_CHANGE_FAILED;
+       }
+
+       cam_app_get_preview_offset_coordinate(ad);
+
+       cam_continuous_af_start(ad);
+       if (!cam_app_preview_start(ad)) {
+               cam_critical(LOG_MM, "cam_app_preview_start failed");
+               goto MODE_CHANGE_FAILED;
+
+       }
+       cam_app_timeout_checker_init(ad);
+       ResetCaps();
+
+       /*update toolbar shortcuts*/
+       cam_toolbar_destroy(ad);
+       cam_toolbar_create(ad);
+       cam_app_update_quickview_icon((void *)ad);
+
+       return TRUE;
+
+MODE_CHANGE_FAILED:
+       cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
+       return FALSE;
+}
+
+gboolean cam_recording_mode_change(void *data, int rec_mode)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       CamDeviceType device_type = CAM_DEVICE_MEGA;
+       GValue value = { 0 };
+       int video_dev = 0;
+       gboolean cam_reset = FALSE;
+
+       debug_fenter(LOG_CAM);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_app_timeout_checker_remove();
+
+       g_value_init(&value, G_TYPE_INT);
+
+       cam_mm_get_video_device(&video_dev);
+       if (((camapp->recording_mode == CAM_RECORD_SELF || camapp->recording_mode == CAM_RECORD_SELF_MMS )&& video_dev == CAM_DEVICE_MEGA)
+           || ((camapp->recording_mode != CAM_RECORD_SELF || camapp->recording_mode == CAM_RECORD_SELF_MMS) && video_dev == CAM_DEVICE_VGA)) {
+
+               /*  stop preview and destory mmfw handle */
+               cam_reset = TRUE;
+               if (!cam_app_preview_stop()) {
+                       cam_critical(LOG_MM, "cam_app_preview_stop faild");
+                       return FALSE;
+               }
+               if (!cam_mm_destory()) {
+                       cam_critical(LOG_MM, "cam_mm_destory faild");
+                       return FALSE;
+               }
+               if (camapp->recording_mode == CAM_RECORD_SELF ||camapp->recording_mode == CAM_RECORD_SELF_MMS ) {
+                       device_type = CAM_DEVICE_VGA;
+               } else {
+                       device_type = CAM_DEVICE_MEGA;
+               }
+
+               if (!cam_mm_create(device_type, camapp->camera_mode)) {
+                       cam_critical(LOG_MM, "cam_mm_create failed");
+                       cam_app_notice_popup(ad, "cam_app_preview_start failed", cam_app_timeout_notice_response_cb);
+                       return FALSE;
+               }
+               cam_mm_get_video_size( &camapp->default_preview_width, &camapp->default_preview_height);
+               DEBUG_TRACE("default_width = %d,default_height = %d", camapp->default_preview_width, camapp->default_preview_height);
+
+       }else {
+               if (!cam_app_preview_stop()) {
+                       cam_critical(LOG_MM, "cam_app_preview_stop faild");
+                       return FALSE;
+               }
+       }
+
+       ad->camapp_handle->enable_touch_af = TRUE;
+
+       if(rec_mode == CAM_RECORD_SELF) {
+
+               ad->camapp_handle->enable_touch_af = FALSE;
+               g_value_set_int(&value, FPS_SLOW);
+               if (!cam_handle_value_set(ad, PROP_FPS, &value)) {
+                       cam_critical(LOG_UI, "fps set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, CAM_RESOLUTION_VGA);
+               if (!cam_handle_value_set(ad, PROP_RESOLUTION, &value)) {
+                       cam_critical(LOG_UI, "resolution set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, REC_SIZE_LIMIT_DEFAULT);
+               if (!cam_handle_value_set(ad, PROP_SIZE_LIMIT, &value)) {
+                       cam_critical(LOG_UI, "size limit set fail");
+                       return FALSE;
+               }
+
+               if (!cam_mm_reset_recording_motion_fps()) {
+                       cam_critical(LOG_UI,
+                                    "slow motion fps set fail");
+                       return FALSE;
+               }
+               camapp->recording_mode = CAM_RECORD_SELF;
+       } else if (rec_mode == CAM_RECORD_MMS ||rec_mode == CAM_RECORD_SELF_MMS ) {
+               g_value_set_int(&value, FPS_SLOW);
+               if (!cam_handle_value_set(ad, PROP_FPS, &value)) {
+                       cam_critical(LOG_UI, "fps set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, CAM_RESOLUTION_QCIF);
+               if (!cam_handle_value_set(ad, PROP_RESOLUTION, &value)) {
+                       cam_critical(LOG_UI, "resolution set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, CAM_REC_MMS_MAX_SIZE);
+               if (!cam_handle_value_set(ad, PROP_SIZE_LIMIT, &value)) {
+                       cam_critical(LOG_UI, "size limit set fail");
+                       return FALSE;
+               }
+
+               if (!cam_mm_reset_recording_motion_fps()) {
+                       cam_critical(LOG_UI,
+                                    "slow motion fps set fail");
+                       return FALSE;
+               }
+               if (rec_mode == CAM_RECORD_MMS)
+                       camapp->recording_mode = CAM_RECORD_MMS;
+               else
+                       camapp->recording_mode = CAM_RECORD_SELF_MMS;
+
+       } else {
+               int resolution_n =
+                   cam_config_get_int(PROP_RESOLUTION_NAME,  REC_RESOLUTION_DEFAULT);
+
+               g_value_set_int(&value, FPS_DEFAULT);
+               if (!cam_handle_value_set(ad, PROP_FPS, &value)) {
+                       cam_critical(LOG_UI, "fps set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, resolution_n);
+               if (!cam_handle_value_set(ad, PROP_RESOLUTION, &value)) {
+                       cam_critical(LOG_UI, "resolution set fail");
+                       return FALSE;
+               }
+
+               g_value_set_int(&value, REC_SIZE_LIMIT_DEFAULT);
+               if (!cam_handle_value_set(ad, PROP_SIZE_LIMIT, &value)) {
+                       cam_critical(LOG_UI, "size limit set fail");
+                       return FALSE;
+               }
+
+               if (!cam_mm_reset_recording_motion_fps()) {
+                       cam_critical(LOG_UI,
+                                    "slow motion fps set fail");
+                       return FALSE;
+               }
+               camapp->recording_mode = CAM_RECORD_NORMAL;
+
+       }
+       if (cam_reset) {
+               if (!cam_app_init_attribute(ad, camapp->camera_mode)) {
+                       cam_critical(LOG_MM, "cam_app_init_attribute failed");
+//                             return FALSE;
+               }
+       } else {
+               if (!cam_app_set_recording_mode(ad, rec_mode)) {
+                       DEBUG_TRACE("cam_app_set_recording_mode failed");
+//                             return FALSE;
+               }
+       }
+
+       cam_app_get_preview_offset_coordinate(ad);
+
+       if (!cam_callback_init(ad)) {
+               cam_critical(LOG_MM, "cam_init_mm_callback failed");
+               cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+
+       cam_continuous_af_start(ad);
+       if (!cam_app_preview_start(ad)) {
+               cam_critical(LOG_MM, "cam_app_preview_start failed");
+               cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+
+       cam_app_timeout_checker_init(ad);
+
+       return TRUE;
+
+}
+
+static gboolean cam_app_set_capture_format_shooting_mode(int mode)
+{
+       switch (mode) {
+       case CAM_SINGLE_MODE:
+       case CAM_SELF_MODE:
+               if (!cam_mm_set_capture_format(CAMERA_PIXEL_FORMAT_JPEG))
+                       return FALSE;
+               break;
+       default:
+               break;
+       }
+
+       cam_debug(LOG_UI,
+                 "\n################# shooting mode set return success : %d\n",
+                 mode);
+
+       return TRUE;
+}
+
+static void cam_shooting_mode_reset(void *data)
+{
+       return;
+}
+
+gboolean cam_shooting_mode_change(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       CamDeviceType device_type = CAM_DEVICE_MEGA;
+       GValue value = { 0 };
+       int video_dev = 0;
+       gboolean cam_reset = FALSE;
+
+       debug_fenter(LOG_CAM);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_elm_cache_flush();
+
+       cam_app_stop_video_stream();
+       cam_app_timeout_checker_remove();
+       cam_shooting_mode_reset(ad);
+       cam_mm_get_video_device(&video_dev);
+
+       if ((camapp->shooting_mode == CAM_SELF_MODE && video_dev == CAM_DEVICE_MEGA)
+           || (camapp->shooting_mode != CAM_SELF_MODE && video_dev == CAM_DEVICE_VGA)) {
+               /*  stop preview and destory mmfw handle */
+               cam_reset = TRUE;
+               if (!cam_app_preview_stop()) {
+                       cam_critical(LOG_MM, "cam_app_preview_stop faild");
+                       return FALSE;
+               }
+               if (!cam_mm_destory()) {
+                       cam_critical(LOG_MM, "cam_mm_destory faild");
+                       return FALSE;
+               }
+               if (camapp->shooting_mode == CAM_SELF_MODE) {
+                       device_type = CAM_DEVICE_VGA;
+               } else {
+                       device_type = CAM_DEVICE_MEGA;
+               }
+               DEBUG_TRACE("device_type = %d" ,device_type);
+               if (!cam_mm_create(device_type, camapp->camera_mode)) {
+                       cam_critical(LOG_MM, "cam_mm_create failed");
+                       cam_app_notice_popup(ad, "cam_app_preview_start faild ", cam_app_timeout_notice_response_cb);
+                       return FALSE;
+               }
+               cam_mm_get_video_size( &camapp->default_preview_width, &camapp->default_preview_height);
+               DEBUG_TRACE("default_width = %d,default_height = %d", camapp->default_preview_width, camapp->default_preview_height);
+
+               cam_continuous_af_start(ad);
+       }
+
+       g_value_init(&value, G_TYPE_INT);
+
+       cam_debug(LOG_CAM, "Shooting mode = %d ", camapp->shooting_mode);
+
+       if (ad->shot_mode_guide_popup)
+               toolbar_shot_guide_popup_destory(ad);
+
+       switch (camapp->shooting_mode) {
+       case CAM_SINGLE_MODE:
+               {
+                       int resolution = 0, flash = 0, auto_focus = 0;
+                       resolution = cam_config_get_int(PROP_RESOLUTION_NAME,  IMAGE_RESOLUTION_DEFAULT);
+                       flash =
+                           cam_config_get_int(PROP_FLASH_NAME, FLASH_DEFAULT);
+                       auto_focus =
+                           cam_config_get_int(PROP_AF_NAME, AF_DEFAULT);
+                       /* set resolution */
+                       g_value_set_int(&value, resolution);
+                       cam_handle_value_set(ad, PROP_RESOLUTION, &value);
+
+                       /* set flash off */
+                       g_value_set_int(&value, flash);
+                       cam_handle_value_set(ad, PROP_FLASH, &value);
+
+                       /* set auto focus */
+                       g_value_set_int(&value, auto_focus);
+                       cam_handle_value_set(ad, PROP_AF_MODE, &value);
+
+                       /* set capture count */
+                       g_value_set_int(&value, IMAGE_COUNT_DEFAULT);
+                       cam_handle_value_set(ad, PROP_IMAGE_COUNT, &value);
+               }
+               break;
+
+       case CAM_SELF_MODE:
+               /* set resolution */
+                g_value_set_int(&value, CAM_RESOLUTION_VGA);
+               cam_handle_value_set(ad, PROP_RESOLUTION, &value);
+
+               /* set flash off */
+               g_value_set_int(&value, CAM_FLASH_OFF);
+               cam_handle_value_set(ad, PROP_FLASH, &value);
+
+               /* set auto focus */
+               g_value_set_int(&value, CAM_FOCUS_AUTO);
+               cam_handle_value_set(ad, PROP_AF_MODE, &value);
+
+               /* set capture count */
+               g_value_set_int(&value, IMAGE_COUNT_DEFAULT);
+               cam_handle_value_set(ad, PROP_IMAGE_COUNT, &value);
+               break;
+       default:
+               break;
+       }
+
+       if (cam_reset) {
+               if (!cam_app_init_attribute(ad, camapp->camera_mode)) {
+                       cam_critical(LOG_MM, "cam_app_init_attribute failed");
+               }
+       } else {
+               /* cam_app_set_source_format_shooting_mode(camapp->shooting_mode); */
+               cam_app_set_capture_format_shooting_mode(camapp->shooting_mode);
+       }
+
+       cam_app_get_preview_offset_coordinate(ad);
+
+       if (!cam_callback_init(ad)) {
+               cam_critical(LOG_MM, "cam_init_mm_callback failed");
+               cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+
+       if (!cam_app_preview_start(ad)) {
+               cam_critical(LOG_MM, "cam_app_preview_start failed");
+               cam_app_notice_popup(ad, "PREVIEW START FAILED !!", cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+       cam_app_timeout_checker_init(ad);
+       return TRUE;
+}
+
+gboolean __cam_single_shot_reg_file(char *file_path)
+{
+       GError *error = NULL;
+
+       if (file_path) {
+               DEBUG_TRACE("register file : %s", file_path);
+
+               if (!cam_file_register(file_path, &error)) {
+                       cam_critical(LOG_FILE, "cam_file_register fail");
+                       if (error != NULL) {
+                               if (error->message != NULL) {
+                                       cam_critical(LOG_FILE,
+                                                    "cam_file_register error [%s]",
+                                                error->message);
+                               } else {
+                                       cam_critical(LOG_FILE,
+                                                    "cam_file_register error but error message is NULL");
+                               }
+                               g_error_free(error);
+                               error = NULL;
+                       }
+               }
+       } else {
+               cam_warning(LOG_FILE, " file path is NULL...");
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+static void cam_app_timer_update_count(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       char count_string[3] = "";
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       cam_debug(LOG_UI, "timer count ... [ %d ]", ad->timer_count);
+
+       if (ad->timer_icon_edje == NULL) {
+               switch (ad->target_direction) {
+               case CAM_TARGET_DIRECTION_LANDSCAPE:
+               case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+                       ad->timer_icon_edje = cam_app_load_edj(ad->win_main, CAM_UTILS_EDJ_NAME, "timer_icon_landscape");
+                       break;
+               case CAM_TARGET_DIRECTION_PORTRAIT:
+               case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+                       ad->timer_icon_edje = cam_app_load_edj(ad->win_main, CAM_UTILS_EDJ_NAME, "timer_icon_portrait");
+                       break;
+               default:
+                       DEBUG_TRACE("Invalid direction type!!!");
+               }
+
+               cam_ret_if(ad->timer_icon_edje == NULL);
+       }
+
+       snprintf(count_string, sizeof(count_string), "%d", ad->timer_count);
+
+       edje_object_part_text_set(_EDJ(ad->timer_icon_edje), "text", count_string);
+
+       evas_object_show(ad->timer_icon_edje);
+
+       return;
+}
+
+static Eina_Bool cam_app_timer_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, ECORE_CALLBACK_CANCEL);
+
+       CamAppData *camapp = NULL;
+
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               cam_critical(LOG_UI, "camapp_handle is NULL");
+               ad->timer_timer = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       ad->timer_count = ad->timer_count - 1;
+
+       if (ad->timer_count > 0) {
+               cam_debug(LOG_UI, "timer continue ... ");
+               cam_app_timer_update_count(ad);
+               if (camapp->shutter_sound != CAM_SETTINGS_SOUND_OFF)
+                       cam_sound_play(CAM_SOUND_EFFECT_TICK, ad);
+               return ECORE_CALLBACK_RENEW;
+       } else {
+               cam_debug(LOG_UI, "timer terminated ...");
+
+               ad->timer_activated = false;
+
+               if (ad->timer_icon_edje != NULL) {
+                       evas_object_del(ad->timer_icon_edje);
+                       ad->timer_icon_edje = NULL;
+               }
+
+               cam_toolbar_update(ad);
+
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       cam_set_orient_value(ad);
+                       cam_image_capture_start(ad);
+               } else {
+                       cam_video_record_start(ad);
+               }
+
+               ad->timer_timer = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+}
+
+static void cam_app_start_timer(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       ad->timer_activated = true;
+
+       switch (ad->camapp_handle->timer) {
+       case CAM_SETTINGS_TIMER_2SEC:
+               ad->timer_count = 2;
+               break;
+       case CAM_SETTINGS_TIMER_5SEC:
+               ad->timer_count = 5;
+               break;
+       case CAM_SETTINGS_TIMER_10SEC:
+               ad->timer_count = 10;
+               break;
+
+       case CAM_SETTINGS_TIMER_OFF:
+       default:
+               CAM_UI_LOG("can not reach here");
+               return;
+       }
+
+       cam_toolbar_update(ad);
+
+       cam_app_timer_update_count(ad);
+
+       if (ad->timer_timer != NULL) {
+               ecore_timer_del(ad->timer_timer);
+               ad->timer_timer = NULL;
+       }
+
+       ad->timer_timer = ecore_timer_add(1.0, cam_app_timer_cb, ad);
+}
+
+void cam_app_cancel_timer(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       ad->timer_activated = FALSE;
+
+       REMOVE_TIMER(ad->timer_timer);
+       DEL_EVAS_OBJECT(ad->timer_icon_edje);
+
+       cam_toolbar_update(ad);
+}
+
+static void _popup_cancel_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       /* cam_app_free_blocking_popup(); */
+       Evas_Object *notify = (Evas_Object *)data;
+       cam_popup_remove(notify);
+       /* evas_object_del(notify); */
+}
+
+gboolean cam_image_capture_start(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       gint64 remain = 0;
+       gboolean ret = TRUE;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_image_capture_start", 0);
+
+       remain = cam_system_get_still_count_by_resolution(ad);
+
+       cam_set_orient_value(ad);
+
+       switch (camapp->shooting_mode) {
+       case CAM_SELF_MODE:
+       case CAM_SINGLE_MODE:
+               ret = cam_mm_capture_start(camapp->capture_cb, camapp->capture_completed_cb, (void*)ad);
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+               cam_sound_play(camapp->shutter_sound, ad);
+#ifdef ENABLE_CAPTURE_ANIMATION
+               cam_app_shutter_screen_show(ad);
+#endif
+
+#endif
+               break;
+       default:
+               ret = cam_mm_capture_start(camapp->capture_cb, camapp->capture_completed_cb, (void*)ad); /*capture on recoring */
+               break;
+       }
+
+       CAM_TA_ACUM_ITEM_END("    cam_image_capture_start", 0);
+       CAM_TA_ACUM_ITEM_BEGIN("    capture_start to capturecallback", 0);
+       return ret;
+}
+
+static gboolean cam_image_capture_stop(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_UI);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       return TRUE;
+}
+
+Eina_Bool cam_image_capture_handle_idler(void *itm)
+{
+       CamIdlerItem *item = (CamIdlerItem *) itm;
+       struct appdata *ad = NULL;
+       cam_retvm_if(!item, ECORE_CALLBACK_CANCEL, "CamIdlerItem is NULL");
+
+       ad = (struct appdata *)item->data;
+       cam_retvm_if(!ad, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+
+       cam_info(LOG_UI, "call idler[ %p] ", item->idler);
+       ad->capture_cb_list = g_list_remove(ad->capture_cb_list, item->idler);
+       if (item->idler) {
+               ecore_idler_del(item->idler);
+               item->idler = NULL;
+       }
+       free(item);
+       item = NULL;
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+       __cam_save_captured_file(ad);
+#endif
+
+       return cam_image_capture_handle(ad);
+}
+Eina_Bool cam_capture_on_recording_handle(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL,
+                    "camapp_handle is NULL");
+       gboolean preview_skip = FALSE;
+       char *str = NULL;
+       char popup_str[256] = { 0 };
+
+
+       if (camapp->filename) {
+#ifdef USE_FILE_REG_THREAD
+               cam_debug(LOG_SYS,
+                         "#########camapp->filename=%s",
+                         camapp->filename);
+               CAM_TA_ACUM_ITEM_BEGIN
+                   ("    send signal to register thread",
+                    0);
+               g_queue_push_tail(ad->file_reg_queue,
+                                 strdup
+                                 (camapp->filename));
+               pthread_cond_signal(&ad->file_reg_cond);
+               CAM_TA_ACUM_ITEM_END("    send signal to register thread", 0);
+#else
+               __cam_single_shot_reg_file(camapp->filename);
+#endif
+       } else {
+               cam_app_notice_popup(ad,
+                    "Your storage have trouble ",
+                       cam_app_popup_response_cb);
+       }
+       if (!cam_mm_capture_stop (preview_skip, CAM_CAMERA_MODE)) {
+               cam_critical(LOG_MM, " cam_mm_capture_stop error ");
+       }
+       str = strrchr(camapp->filename, '/');
+       snprintf(popup_str, sizeof(popup_str), "%s %s", (str+1), _("IDS_CAM_POP_SAVED"));
+       cam_app_snapshot_popup(ad, popup_str, cam_app_snapshot_popup_response_cb);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+Eina_Bool cam_image_capture_handle(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+/*      gboolean last_capture = FALSE; */
+       gboolean bClosedEyesFoundFlag = FALSE;
+       gboolean preview_skip = FALSE;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL,
+                    "camapp_handle is NULL");
+
+       CAM_TA_ACUM_ITEM_END("    captured message to cam_image_capture_handle",
+                            0);
+       CAM_TA_ACUM_ITEM_BEGIN("    cam_image_capture_handle", 0);
+
+       switch (camapp->shooting_mode) {
+       case CAM_SINGLE_MODE:
+       case CAM_SELF_MODE:
+
+               cam_app_destroy_progressbar(ad);
+
+               if (!bClosedEyesFoundFlag) {
+                       if (camapp->review) {
+                               if (camapp->filename) {
+                                       __cam_single_shot_reg_file
+                                           (camapp->filename);
+                                       /* run media browser. */
+                                       cam_app_black_screen_show(ad, -1);      /* after capture , to hide preview screen , The hide is in preview_start */
+                               } else {
+                                       cam_app_notice_popup(ad,
+                                                            "Your storage have trouble ",
+                                                            cam_app_popup_response_cb);
+                               }
+                               if (!cam_mm_capture_stop(TRUE, camapp->camera_mode)) {
+                                       cam_critical(LOG_MM, "cam_mm_capture_stop error ");
+                               }
+                               /* del mouse down event - image viewer bug */
+                               cam_app_mouse_event_deinit(ad);
+                               if (!cam_app_run_image_viewer_ug
+                                   (ad, camapp->filename)) {
+                                       cam_app_mouse_event_init(ad);
+                                       return ECORE_CALLBACK_CANCEL;
+                               }
+                       } else {
+                               if (camapp->filename) {
+#ifdef USE_FILE_REG_THREAD
+                                       cam_debug(LOG_SYS,
+                                                 "#########camapp->filename=%s",
+                                                 camapp->filename);
+                                       CAM_TA_ACUM_ITEM_BEGIN
+                                           ("    send signal to register thread",
+                                            0);
+                                       g_queue_push_tail(ad->file_reg_queue,
+                                                         strdup
+                                                         (camapp->filename));
+                                       pthread_cond_signal(&ad->file_reg_cond);
+                                       CAM_TA_ACUM_ITEM_END("    send signal to register thread", 0);
+                                       cam_app_update_thumbnail();
+
+#else
+                                       __cam_single_shot_reg_file(camapp->filename);
+#endif
+                               } else {
+                                       cam_app_notice_popup(ad,
+                                                            "Your storage have trouble ",
+                                                            cam_app_popup_response_cb);
+                               }
+
+                               if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+                                       if(!((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "gallery") == 0))) {
+                                                       preview_skip = TRUE;
+                                       }
+                               }
+
+                               if (!cam_mm_capture_stop (preview_skip, camapp->camera_mode)) {
+                                       cam_critical(LOG_MM,"cam_mm_capture_stop error ");
+                               }
+                               CAM_TA_ACUM_ITEM_BEGIN
+                                   ("    capture stop to preview", 0);
+
+                               if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+                                       if (ad->appcore_state == CAM_APPCORE_PAUSE_STATE) {
+                                               cam_app_exit(ad);
+                                               return ECORE_CALLBACK_CANCEL;
+                                       }
+                                       /* view image select page */
+                                       if(!((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "gallery") == 0))) {
+                                               cam_app_mouse_event_deinit(ad);
+                                               if (!cam_app_run_image_viewer_ug(ad, camapp->filename)) {
+                                                       cam_app_mouse_event_init(ad);
+                                                       return ECORE_CALLBACK_CANCEL;
+                                               }
+                                       }
+                               }
+
+                       }
+               }
+               cam_app_toggle_indicator(ad, ad->toolbar_hided);
+               cam_app_toggle_toolbar(ad, ad->toolbar_hided);
+               cam_app_get_preview_offset_coordinate(ad);
+
+               break;
+
+       default:
+               cam_debug(LOG_UI, " Not matched shooting mode [%d]",
+                         camapp->shooting_mode);
+               break;
+       }
+       ad->remained_count--;
+       CAM_TA_ACUM_ITEM_END("    cam_image_capture_handle", 0);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+gboolean cam_camera_touch_af_press(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       debug_fenter(LOG_UI);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+       camapp->focus_mode = 0;
+       if (ad->af_outside == TRUE) {
+               DEBUG_TRACE("########## out if af area !!");
+               return TRUE;
+       }
+       if (CAM_CAMERA_MODE == camapp->camera_mode) {
+               camapp->focus_mode = CAM_FOCUS_MODE_TOUCH_AUTO;
+
+       } else {
+               camapp->focus_mode = CAM_FOCUS_MODE_CONTINUOUS;
+       }
+
+       cam_app_draw_af_box(ad);
+       evas_object_show(ad->focus_edje);
+       cam_ui_effect_utils_set_zoom_effect(ad->focus_edje,
+                                               CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE,
+                                               CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE,
+                                               CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION);
+
+       if (!ad->camapp_handle->key_lock) {
+               ad->camapp_handle->key_lock = TRUE;
+               if (!cam_camera_key_half_press(ad)) {
+                       DEBUG_TRACE("cam_camera_key_half_press failed");
+                       return FALSE;
+               }
+               ad->camapp_handle->key_lock = FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_camera_key_half_press(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_UI);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       REMOVE_TIMER(ad->toolbar_toggle_timer);
+#ifndef        CAMERA_MACHINE_I686
+       if (camapp->camera_mode == CAM_CAMERA_MODE
+           && camapp->shooting_mode != CAM_SELF_MODE)
+#else
+       if (camapp->camera_mode == CAM_CAMERA_MODE
+           && camapp->shooting_mode != CAM_SELF_MODE
+               && TRUE)
+#endif
+       {
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
+                       cam_app_focus_guide_update(ad);
+               }
+               if (!cam_mm_set_af_area(ad->af_x, ad->af_y, ad->camera_focus_w, ad->camera_focus_h)) {
+                       DEBUG_TRACE("cam_mm_set_af_area failed");
+                       return FALSE;
+               }
+               DEBUG_TRACE("focus mode = %d", camapp->focus_mode);
+               if (!cam_mm_start_focusing(camapp->focus_mode)) {
+                       cam_critical(LOG_MM, " cam_mm_start_focusing error " );
+               }
+
+       }
+
+       return TRUE;
+}
+
+gboolean cam_camera_key_half_release(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+#ifndef        CAMERA_MACHINE_I686
+       if (camapp->camera_mode == CAM_CAMERA_MODE
+           && camapp->shooting_mode != CAM_SELF_MODE)
+#else
+       if (camapp->camera_mode == CAM_CAMERA_MODE
+           && camapp->shooting_mode != CAM_SELF_MODE
+               && TRUE)
+#endif
+       {
+               camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
+               cam_app_focus_guide_update(ad);
+       }
+
+       return TRUE;
+}
+
+gboolean cam_camera_key_press(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int state = 0;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       if (ad->is_rotating)
+               return FALSE;/*note: now is rotating*/
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+       CAM_TA_ACUM_ITEM_BEGIN("  cam_camera_key_press", 0);
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               state = cam_mm_get_state();
+               cam_debug(LOG_UI, " state = %d", state);
+               switch (state) {
+               case CAMERA_STATE_PREVIEW:
+               case CAMERA_STATE_CAPTURED:
+                       cam_app_toggle_indicator(ad, TRUE);
+                       cam_app_toggle_toolbar(ad, TRUE);
+                       if (ad->timer_activated) {
+                               CAM_UI_LOG("timer activated!");
+                       } else if (camapp->timer >
+                                  CAM_SETTINGS_TIMER_OFF) {
+                               CAM_UI_LOG("timer start");
+                               cam_app_start_timer(ad);
+                       } else if (!cam_image_capture_start(ad)) {
+                               return FALSE;
+                       }
+
+                       break;
+               case CAMERA_STATE_CAPTURING:
+                       cam_debug(LOG_UI, "capturing state");
+                       return TRUE;
+                       break;
+               case CAMERA_STATE_NONE:
+               case CAMERA_STATE_CREATED:
+                       return FALSE;
+                       break;
+               default:
+                       return FALSE;
+                       break;
+
+               }
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               state = cam_mm_get_state();
+               cam_debug(LOG_UI, " state = %d", state);
+               switch (state) {
+               case RECORDER_STATE_READY:
+                       {
+                               if (ad->timer_activated) {
+                                       CAM_UI_LOG("timer activated!");
+                               } else if (camapp->timer >
+                                          CAM_SETTINGS_TIMER_OFF) {
+                                       CAM_UI_LOG("timer start");
+                                       cam_app_start_timer(ad);
+                               } else if (!cam_video_record_start(ad)) {
+                                       return FALSE;
+                               }
+                       }
+                       break;
+               case RECORDER_STATE_RECORDING:
+#if 1
+                       camapp->rec_stop_type = CAM_REC_STOP_NORMAL;
+                       if (!cam_video_record_stop(ad)) {
+                               return FALSE;
+                       }
+                       return FALSE;
+#endif
+                       break;
+               case RECORDER_STATE_NONE:
+               case RECORDER_STATE_CREATED:
+               case RECORDER_STATE_PAUSED:
+                       return FALSE;
+                       break;
+               default:
+                       return FALSE;
+                       break;
+
+               }
+       } else {
+               cam_critical(LOG_MM, "Unknow camera mode");
+               return FALSE;
+       }
+       CAM_TA_ACUM_ITEM_END("  cam_camera_key_press", 0);
+       return TRUE;
+}
+
+gboolean cam_camera_key_release(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int state = 0;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+
+               state = cam_mm_get_state();
+               cam_debug(LOG_UI, " state = %d", state);
+               switch (state) {
+               case CAMERA_STATE_CAPTURING:
+                       if (!cam_image_capture_stop(ad)) {
+                               return FALSE;
+                       }
+                       return TRUE;
+                       break;
+               case CAMERA_STATE_PREVIEW:
+               case CAMERA_STATE_CREATED:
+               case CAMERA_STATE_NONE:
+               case CAMERA_STATE_CAPTURED:
+                       return FALSE;
+                       break;
+               default:
+                       return FALSE;
+                       break;
+
+               }
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+#if 0
+               state = cam_mm_get_state();
+               switch (state) {
+               case MM_CAMCORDER_STATE_PREPARE:
+                       if (!cam_video_record_start(ad)) {
+                               return FALSE;
+                       }
+                       break;
+               case MM_CAMCORDER_STATE_RECORDING:
+                       if (!cam_video_record_stop(ad)) {
+                               return FALSE;
+                       }
+                       return FALSE;
+                       break;
+               case MM_CAMCORDER_STATE_NONE:
+               case MM_CAMCORDER_STATE_NULL:
+               case MM_CAMCORDER_STATE_READY:
+               case MM_CAMCORDER_STATE_CAPTURING:
+               case MM_CAMCORDER_STATE_PAUSED:
+                       return FALSE;
+                       break;
+               default:
+                       return FALSE;
+                       break;
+
+               }
+#endif
+       } else {
+               cam_critical(LOG_MM, "Unknow camera mode");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+Eina_Bool cam_continuous_af_start(void *data)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL, "camapp_handle is NULL");
+
+       DEBUG_TRACE("cam_continuous_af_start");
+
+       /* init */
+       ad->af_x = (ad->win_width / 2) - ad->preview_offset_x;
+       ad->af_y = (ad->win_height / 2) - ad->preview_offset_y;
+
+       ad->af_x = (ad->af_x * ad->camfw_video_width) / ad->preview_w;
+       ad->af_y = (ad->af_y * ad->camfw_video_height) / ad->preview_h;
+       /* init */
+       ad->touch_lcd_x = (ad->win_height / 2);
+       ad->touch_lcd_y = (ad->win_width / 2);
+
+       cam_app_draw_af_box(ad);
+       camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
+       cam_app_focus_guide_update(ad);
+
+       evas_object_show(ad->focus_edje);
+
+       camapp->focus_mode = CAM_FOCUS_MODE_CONTINUOUS;
+
+       /* cam_mm_set_af_area include init focusing */
+       DEBUG_TRACE("start continuous AF");
+       if (cam_mm_set_af_area(ad->af_x, ad->af_y, ad->camera_focus_w, ad->camera_focus_h)) {
+               DEBUG_TRACE("cam_mm_set_af_area success!");
+               /*focus guide update*/
+       } else {
+               DEBUG_TRACE("cam_mm_set_af_area error!");
+       }
+       if (!cam_mm_start_focusing(camapp->focus_mode)) {
+               cam_critical(LOG_MM, "cam_mm_start_focusing error");
+       }
+       return ECORE_CALLBACK_CANCEL;
+}
+
+Eina_Bool cam_volume_key_press(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       if (ad->cancel_key_press == TRUE)
+               return ECORE_CALLBACK_CANCEL;
+
+       int state = 0;
+       gboolean up_key = ad->up_key;
+       debug_fenter(LOG_UI);
+
+       state = cam_mm_get_state();
+       cam_debug(LOG_UI, " state = %d", state);
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               switch (state) {
+               case RECORDER_STATE_RECORDING:
+               case RECORDER_STATE_PAUSED:
+               case RECORDER_STATE_READY:
+                       {
+                               if (!camapp->zoom_lock) {
+                                       zoom_in(ad, up_key);
+                               }
+                       }
+                       break;
+               case RECORDER_STATE_NONE:
+               case RECORDER_STATE_CREATED:
+                       break;
+               default:
+                       break;
+               }
+       } else if(camapp->camera_mode == CAM_CAMERA_MODE) {
+               switch (state) {
+               case CAMERA_STATE_PREVIEW:
+               case CAMERA_STATE_CAPTURED:
+                       {
+                               if (!camapp->zoom_lock) {
+                                       zoom_in(ad, up_key);
+                               }
+                       }
+                       break;
+               case CAMERA_STATE_NONE:
+               case CAMERA_STATE_CREATED:
+               case CAMERA_STATE_CAPTURING:
+                       break;
+               default:
+                       break;
+               }
+
+       }
+
+       return ECORE_CALLBACK_RENEW;
+}
+
+static gboolean cam_power_key_press(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       power_lock_state(POWER_STATE_SCREEN_OFF, 0);
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       if (ad->mm_state < CAMERA_STATE_PREVIEW) {
+               goto lock_and_exit;
+       } else if (ad->mm_state == CAMERA_STATE_PREVIEW) {
+               goto lock_and_exit;
+       } else if (ad->mm_state > CAMERA_STATE_PREVIEW) {
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       DEBUG_TRACE("camera mode");
+               } else {
+                       camapp->rec_stop_type = CAM_REC_STOP_POWER_KEY;
+                       if (!cam_video_record_stop(ad)) {
+                               DEBUG_TRACE("record stop fail");
+                       }
+               }
+       }
+       return TRUE;
+
+ lock_and_exit:
+       power_unlock_state(POWER_STATE_SCREEN_OFF);
+
+       return TRUE;
+}
+#if 0
+static gboolean __cam_end_key_grab_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       Ecore_X_Display *disp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       cam_retvm_if(ad->main_xid <= 0, FALSE, "main_xid <= 0");
+
+       disp = ecore_x_display_get();
+       cam_retvm_if(disp == NULL, FALSE, "ecore_x_display_get fail");
+
+       if (utilx_grab_key(disp, ad->main_xid, KEY_END, SHARED_GRAB) == -1) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_END);
+       }
+
+       return TRUE;
+}
+#endif
+gboolean cam_key_grab_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       Ecore_X_Display *disp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       cam_retvm_if(ad->main_xid <= 0, FALSE, "main_xid <= 0");
+       int success = 0;
+       int ret = TRUE;
+
+       if (ad->isGrabed)
+               return TRUE;
+
+       DEBUG_TRACE("key_grab_init############################");
+
+       ad->cancel_key_press = FALSE;
+
+       disp = ecore_x_display_get();
+       cam_retvm_if(disp == NULL, FALSE, "ecore_x_display_get fail");
+
+       /* volume key */
+       if (utilx_grab_key(disp, ad->main_xid, KEY_VOLUMEUP, TOP_POSITION_GRAB) != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_VOLUMEUP);
+               ret = FALSE;
+       }
+       if (utilx_grab_key(disp, ad->main_xid, KEY_VOLUMEDOWN, TOP_POSITION_GRAB) != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_VOLUMEDOWN);
+               ret = FALSE;
+       }
+       /* camera key */
+       if (utilx_grab_key(disp, ad->main_xid, KEY_CAMERA, TOP_POSITION_GRAB)  != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_CAMERA);
+               ret = FALSE;
+       }
+       if (utilx_grab_key(disp, ad->main_xid, KEY_CONFIG, TOP_POSITION_GRAB)  != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_CONFIG);
+               ret = FALSE;
+       }
+       /* power key */
+       if (utilx_grab_key(disp, ad->main_xid, KEY_POWER, SHARED_GRAB) != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_POWER);
+               ret = FALSE;
+       }
+
+       /* etc */
+       if (utilx_grab_key(disp, ad->main_xid, KEY_SEND, SHARED_GRAB) != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_SEND);
+               ret = FALSE;
+       }
+       if (utilx_grab_key(disp, ad->main_xid, KEY_END, SHARED_GRAB) != success) {
+               cam_critical(LOG_SYS, "%s key grap fail", KEY_END);
+               ret = FALSE;
+       }
+
+       ad->isGrabed = TRUE;
+       return ret;
+}
+
+gboolean cam_key_grab_deinit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       Ecore_X_Display *disp = NULL;
+       int success = 0;
+       int ret = TRUE;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       cam_retvm_if(ad->main_xid <= 0, FALSE, "main_xid <= 0");
+
+       if (!ad->isGrabed)
+               return TRUE;
+       DEBUG_TRACE("key_grab_deinit############################");
+
+       disp = ecore_x_display_get();
+       cam_retvm_if(disp == NULL, FALSE, "ecore_x_display_get fail");
+
+       /* volume key */
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_VOLUMEUP) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_VOLUMEUP);
+               ret = FALSE;
+       }
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_VOLUMEDOWN) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_VOLUMEDOWN);
+               ret = FALSE;
+       }
+
+       /* camera key */
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_CAMERA) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_CAMERA);
+               ret = FALSE;
+
+       }
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_CONFIG) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_CONFIG);
+               ret = FALSE;
+       }
+
+       /* power key */
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_POWER) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_POWER);
+               ret = FALSE;
+       }
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_PAUSE) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_PAUSE);
+               ret = FALSE;
+       }
+
+       /* etc */
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_SEND) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_SEND);
+               ret = FALSE;
+       }
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_SELECT) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_SELECT);
+               ret = FALSE;
+       }
+       if (utilx_ungrab_key(disp, ad->main_xid, KEY_END) != success){
+               cam_critical(LOG_SYS, "%s key ungrap fail", KEY_END);
+               ret = FALSE;
+       }
+
+       ad->isGrabed = FALSE;
+       return ret;
+}
+
+gboolean cam_app_mouse_event_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL, maybe not created");
+               return FALSE;
+       }
+#if ENABLE_MOUSE_CONTROL
+       if (ad->mouse_down == NULL) {
+               ad->mouse_down =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
+                                           cam_mouse_button_down, ad);
+       }
+
+       if (ad->mouse_up == NULL) {
+               ad->mouse_up =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
+                                           cam_mouse_button_up, ad);
+       }
+#if 0
+
+       if (ad->mouse_move == NULL) {
+               ad->mouse_down =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
+                                           cam_mouse_move, ad);
+       }
+#endif
+#endif
+
+       return TRUE;
+}
+
+gboolean cam_app_mouse_event_deinit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL, maybe not created");
+               return FALSE;
+       }
+       if (ad->mouse_down) {
+               ecore_event_handler_del(ad->mouse_down);
+               ad->mouse_down = NULL;
+       }
+       if (ad->mouse_up) {
+               ecore_event_handler_del(ad->mouse_up);
+               ad->mouse_up = NULL;
+       }
+       if (ad->mouse_move) {
+               ecore_event_handler_del(ad->mouse_move);
+               ad->mouse_move = NULL;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_app_key_event_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       DEBUG_TRACE("cam_app_key_event_init");
+
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL, maybe not created");
+               return FALSE;
+       }
+       if (ad->key_down == NULL) {
+               ad->key_down =
+                   ecore_event_handler_add(ECORE_EVENT_KEY_DOWN,
+                                           cam_hard_key_down, ad);
+       }
+       if (ad->key_up == NULL) {
+               ad->key_up =
+                   ecore_event_handler_add(ECORE_EVENT_KEY_UP, cam_hard_key_up,
+                                           ad);
+       }
+#if ENABLE_MOUSE_CONTROL
+       if (ad->mouse_down == NULL) {
+               ad->mouse_down =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN,
+                                           cam_mouse_button_down, ad);
+       }
+
+       if (ad->mouse_up == NULL) {
+               ad->mouse_up =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_UP,
+                                           cam_mouse_button_up, ad);
+       }
+#if 0
+
+       if (ad->mouse_move == NULL) {
+               ad->mouse_down =
+                   ecore_event_handler_add(ECORE_EVENT_MOUSE_MOVE,
+                                           cam_mouse_move, ad);
+       }
+#endif
+#endif
+
+       return TRUE;
+}
+
+gboolean cam_app_key_event_deinit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       DEBUG_TRACE("cam_app_key_event_deinit");
+
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL, maybe not created");
+               return FALSE;
+       }
+       if (ad->key_down) {
+               ecore_event_handler_del(ad->key_down);
+               ad->key_down = NULL;
+       }
+       if (ad->key_up) {
+               ecore_event_handler_del(ad->key_up);
+               ad->key_up = NULL;
+       }
+       if (ad->mouse_down) {
+               ecore_event_handler_del(ad->mouse_down);
+               ad->mouse_down = NULL;
+       }
+       if (ad->mouse_up) {
+               ecore_event_handler_del(ad->mouse_up);
+               ad->mouse_up = NULL;
+       }
+       if (ad->mouse_move) {
+               ecore_event_handler_del(ad->mouse_move);
+               ad->mouse_move = NULL;
+       }
+
+       return TRUE;
+}
+
+Eina_Bool cam_hard_key_down(void *data, int type, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+
+       Ecore_Event_Key *kd = (Ecore_Event_Key *) event_info;
+
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+       cam_debug(LOG_UI, "Key name : %s", kd->keyname);
+
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, -1, "camapp_handle is NULL");
+
+       ad->show_menu = FALSE;
+       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+       cam_toolbar_and_setting_popup_del(ad);
+
+       cam_app_timeout_checker_update();
+
+       /*  Camera key Press */
+       if (0 == strcmp(kd->keyname, KEY_CANCEL)) {
+               ad->cancel_key_press = TRUE;
+       }
+       if (0 == strcmp(kd->keyname, KEY_CONFIG)) {     /* camera key - full */
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       CAM_TA_ACUM_ITEM_BEGIN("Total capture time", 0);
+                       CAM_TA_ACUM_ITEM_BEGIN
+                           ("        camera key to capture start", 0);
+                       if (!cam_camera_key_press(ad)) {
+                               cam_warning(LOG_UI,
+                                           "cam_camera_key_press failed");
+                       }
+                       camapp->key_lock = FALSE;
+               }
+       }
+       /*  Camera key HALF press */
+       else if (0 == strcmp(kd->keyname, KEY_CAMERA)) {        /* camera key - half */
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+                       ad->show_menu = FALSE;
+                       cam_toolbar_and_setting_popup_del(ad);
+
+                       if (!cam_camera_key_half_press(ad)) {
+                               cam_warning(LOG_UI,
+                                           "cam_camera_key_half_press failed");
+                       }
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_VOLUMEUP)) {
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       ad->up_key = TRUE;
+                       cam_add_longpress_key_timer(ad);
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_VOLUMEDOWN)) {
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       ad->up_key = FALSE;
+                       cam_add_longpress_key_timer(ad);
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_SELECT)) {
+
+       } else if ((0 == strcmp(kd->keyname, KEY_SELECT))
+                  && ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_POWER)) {
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       power_unlock_state(POWER_STATE_NORMAL);
+                       cam_power_key_press(ad);
+                       camapp->key_lock = FALSE;
+
+               }
+       }
+
+       return 0;
+}
+
+Eina_Bool cam_hard_key_up(void *data, int type, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       Ecore_Event_Key *kd = (Ecore_Event_Key *) event_info;
+       cam_retv_if(ad == NULL, ECORE_CALLBACK_CANCEL);
+
+       cam_debug(LOG_UI, "Key name : %s", kd->keyname);
+
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, ECORE_CALLBACK_CANCEL);
+
+       cam_app_timeout_checker_update();
+
+       if (0 == strcmp(kd->keyname, KEY_CANCEL)) {
+               ad->cancel_key_press = FALSE;
+       }
+
+       if(ad->cancel_key_press == TRUE) {
+               if (ad->longpress_timer) { /*volume key long press */
+                       cam_del_longpress_key_timer(ad);
+                       cam_volume_key_press(ad);
+               }
+               return FALSE;
+       }
+
+
+       if (0 == strcmp(kd->keyname, KEY_CONFIG)) {     /* camera key - full  */
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       if (!cam_camera_key_release(ad)) {
+                               cam_warning(LOG_UI,
+                                           "cam_camera_key_release failed");
+                       }
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_CAMERA)) {      /* camera key - half */
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       if (!cam_camera_key_half_release(ad)) {
+                               cam_warning(LOG_UI,
+                                           "cam_camera_key_release failed");
+                       }
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_VOLUMEUP)
+                  || 0 == strcmp(kd->keyname, KEY_VOLUMEDOWN)) {
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+                       cam_del_longpress_key_timer(ad);
+                       cam_volume_key_press(ad);
+                       camapp->key_lock = FALSE;
+               }
+       } else if (0 == strcmp(kd->keyname, KEY_END)
+                  || 0 == strcmp(kd->keyname, KEY_SELECT)) {
+
+               DEBUG_TRACE("camapp->key_lock = %d", camapp->key_lock);
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+
+                       if ( ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+
+                               int mm_state = 0;
+                               mm_state = cam_mm_get_state();
+                               ad->appcore_state = CAM_APPCORE_PAUSE_STATE;
+                               if (mm_state < CAMERA_STATE_CAPTURING) {
+                                       cam_app_exit(ad);
+                               }
+                               return 0;
+                       }
+
+                       if (ad->imageviewer_ug) {
+                               DEBUG_TRACE("destory imageviewer");
+                               cam_app_close_ug(ad);
+                               cam_app_start_rotate(ad, false);
+                               cam_app_key_event_deinit(ad);
+                               if(!cam_key_grab_deinit(ad))
+                                       DEBUG_TRACE("cam_key_grab_deinit fail");
+                               ad->foucs_out_from_quickview = FALSE;
+                       }
+                       if ((ad->mm_state == RECORDER_STATE_RECORDING
+                           || ad->mm_state == RECORDER_STATE_PAUSED)
+                           &&camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                               camapp->rec_stop_type = CAM_REC_STOP_NORMAL;
+                               ad->recording_commit = ecore_idler_add(cam_video_idler_record_stop, ad);
+                               camapp->key_lock = FALSE;
+                               return 0;
+                       } else if (ad->mm_state == CAMERA_STATE_CAPTURING
+                       &&camapp->camera_mode == CAM_CAMERA_MODE) {
+                               camapp->key_lock = FALSE;
+                               return 0;
+                       } else if ((ad->mm_state == RECORDER_STATE_READY
+                       &&camapp->camera_mode == CAM_CAMERA_MODE)
+                       ||(ad->mm_state == CAMERA_STATE_PREVIEW
+                       &&camapp->camera_mode == CAM_CAMCORDER_MODE)) {
+                               ;
+                       }
+                       if (0 == strcmp(kd->keyname, KEY_END)) {
+                               cam_debug(LOG_UI, " Key up : END Key");
+                               /*cam_app_exit(ad);*/
+                               /*camapp->key_lock = FALSE;*/
+                       }
+                       camapp->key_lock = FALSE;
+
+               } else {
+                       cam_debug(LOG_UI, "key lock status = %d",
+                                 camapp->key_lock);
+               }
+       }
+
+       return 0;
+}
+
+/*note: focus edje zoom in*/
+static void __cam_app_set_focus_zoom_in_effect(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       if (ad->camapp_handle->enable_touch_af == TRUE) {
+               REMOVE_TIMER(ad->continuous_af_timer);
+               cam_camera_touch_af_press(ad);
+       } else {
+               cam_app_draw_af_box(ad);
+               evas_object_show(ad->focus_edje);
+               cam_ui_effect_utils_set_zoom_effect(ad->focus_edje,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION);
+       }
+}
+
+/*note: focus edje zoom out*/
+static void __cam_app_set_focus_zoom_out_effect(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       if (ad->camapp_handle->enable_touch_af == TRUE) {
+               REMOVE_TIMER(ad->continuous_af_timer);
+               cam_camera_touch_af_press(ad);
+       } else {
+               cam_app_draw_af_box(ad);
+               evas_object_show(ad->focus_edje);
+               cam_ui_effect_utils_set_zoom_effect(ad->focus_edje,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_END_RATE,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_START_RATE,
+                                                       CAM_FOCUS_EDJE_ZOOM_EFFECT_DURATION);
+       }
+}
+
+#if ENABLE_MOUSE_CONTROL
+Eina_Bool cam_mouse_button_down(void *data, int type, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, EINA_FALSE, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, EINA_FALSE, "camapp_handle is NULL");
+
+       if (ad->zoom_edje
+               || ad->setting_ctxpopup
+               || (ad->toolbar_show_setting_popup == TRUE)
+               || (ad->toolbar_show_edit_shortcuts_popup == TRUE)) {
+               cam_debug(LOG_UI, "ignore touch event");
+               ad->af_outside = TRUE;
+       }
+
+       int toolbar_width = TOOLBAR_W;
+
+       Ecore_Event_Mouse_Button *md = (Ecore_Event_Mouse_Button *) event_info;
+       cam_debug(LOG_UI, "mouse button down[%d, %d]", md->root.x, md->root.y);
+
+       ad->touch_lcd_x = md->root.x;   /* LCD x */
+       ad->touch_lcd_y = md->root.y;   /* LCD y */
+
+       ad->af_outside = FALSE;
+
+       /* x */
+       if (ad->touch_lcd_y < toolbar_width
+           || ad->touch_lcd_y > (ad->win_width - toolbar_width)) {
+               ad->af_outside = TRUE;
+       } else {
+               ad->af_x = ad->touch_lcd_y - ad->preview_offset_x;
+       }
+       /* y */
+       if (ad->touch_lcd_x < ad->preview_offset_y
+           || ad->touch_lcd_x > (ad->preview_h + ad->preview_offset_y)) {
+               ad->af_outside = TRUE;
+       } else {
+               ad->af_y = ad->preview_h - ad->touch_lcd_x;
+       }
+
+       ad->af_x = (ad->af_x * ad->camfw_video_width) / ad->preview_w;
+       ad->af_y = (ad->af_y * ad->camfw_video_height) / ad->preview_h;
+       DEBUG_TRACE
+           ("*************************************************************************************");
+       DEBUG_TRACE("touched lcd x,y=[%d,%d] af x,y=[%d,%d]\n", ad->touch_lcd_x,
+                   ad->touch_lcd_y, ad->af_x, ad->af_y);
+       DEBUG_TRACE
+           ("*************************************************************************************");
+       if (ad->af_outside == FALSE) {
+               __cam_app_set_focus_zoom_in_effect((void *)ad);
+       }
+       cam_app_timeout_checker_update();
+       cam_setting_toolbar_execution_time_checker_update(ad);
+
+       return EINA_TRUE;
+}
+
+Eina_Bool cam_mouse_button_up(void *data, int type, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       if (ad->zoom_edje
+               || ad->setting_ctxpopup
+               || (ad->toolbar_show_setting_popup == TRUE)
+               || (ad->toolbar_show_edit_shortcuts_popup == TRUE)) {
+               cam_debug(LOG_UI, "ignore touch event");
+               ad->af_outside = TRUE;
+               return EINA_TRUE;
+       }
+
+       Ecore_Event_Mouse_Button *md = (Ecore_Event_Mouse_Button *) event_info;
+       if (ad->shutter_move == TRUE) {
+               double y_gap = 0;
+               double x_gap = 0;
+               double shutter_h_ratio = SHUTTER_H_RATIO;
+               double shutter_w_ratio = SHUTTER_W_RATIO;
+               double screen_ratio = SCREEN_RATIO;
+
+               y_gap = (double)md->root.y /(double)ad->win_width;
+               x_gap = (double)md->root.x /(double)ad->win_height;
+
+               if (x_gap > (screen_ratio -shutter_h_ratio) || x_gap < shutter_h_ratio) {
+                       if (!cam_camera_key_half_release(ad)) {
+                               DEBUG_TRACE("cam_camera_key_half_release");
+                       }
+               } else if (ad->angle == 90 ||ad->angle == 180) {
+                       if (y_gap > shutter_w_ratio) {
+                               if (!cam_camera_key_half_release(ad)) {
+                                       DEBUG_TRACE("cam_camera_key_half_release");
+                               }
+                       }
+               } else {
+                       if (y_gap < screen_ratio -shutter_w_ratio) {
+                               if (!cam_camera_key_half_release(ad)) {
+                                       DEBUG_TRACE("cam_camera_key_half_release");
+                               }
+                       }
+               }
+       }
+
+       cam_retvm_if(ad == NULL, EINA_FALSE, "appdata is NULL");
+       cam_debug(LOG_UI, "mouse button up[%d, %d]", md->root.x, md->root.y);
+       if (ad->af_outside == FALSE) {
+               __cam_app_set_focus_zoom_out_effect((void *)ad);
+       }
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               cam_warning(LOG_UI, "camapp_handle is NULL, maybe not created");
+               return EINA_FALSE;
+       }
+       return EINA_TRUE;
+}
+
+Eina_Bool cam_mouse_move(void *data, int type, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       Ecore_Event_Mouse_Move *md = (Ecore_Event_Mouse_Move *) event_info;
+
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+       cam_debug(LOG_UI, "mouse move[%d, %d]", md->root.x, md->root.y);
+       cam_debug(LOG_UI, "mouse move angle[%lf]", md->multi.angle);
+       cam_debug(LOG_UI, "mouse move pressure[%lf]", md->multi.pressure);
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               cam_warning(LOG_UI, "camapp_handle is NULL, maybe not created");
+               return -1;
+       }
+       cam_app_timeout_checker_update();
+
+       return 0;
+}
+#endif
+
+void cam_app_set_config_group(gint mode)
+{
+       cam_debug(LOG_UI, "mode : %d", mode);
+
+       if (mode == CAM_CAMERA_MODE) {
+               cam_config_set_group_name(CAM_CONFIG_TYPE_PREVIEW, "still");
+       } else {
+               cam_config_set_group_name(CAM_CONFIG_TYPE_PREVIEW, "video");
+       }
+
+       debug_fleave(LOG_UI);
+
+       return;
+}
+
+int cam_app_get_latest_mode(void)
+{
+       cam_config_set_group_name(CAM_CONFIG_TYPE_COMMON, "common");
+       int last_mode =
+           cam_config_get_int_by_type(CAM_CONFIG_TYPE_COMMON, "mode",
+                                      CAM_CAMERA_MODE);
+
+       debug_msg(LOG_UI, "last mode:%d", last_mode);
+       return last_mode;
+}
+
+const gchar *cam_app_get_target_path(void)
+{
+       CamAppData *camapp = NULL;
+
+       camapp = cam_handle_get();
+
+       if (camapp) {
+
+               const gchar *default_path = NULL;
+               switch (camapp->storage) {
+               case CAM_STORAGE_INTERNAL:
+                       default_path =
+                           (camapp->camera_mode == CAM_CAMCORDER_MODE) ?
+                               cam_file_get_internal_video_path() :
+                               cam_file_get_internal_image_path();
+                       break;
+               case CAM_STORAGE_EXTERNAL:
+                       default_path =
+                           (camapp->camera_mode == CAM_CAMCORDER_MODE) ?
+                               cam_file_get_external_video_path() :
+                               cam_file_get_external_image_path();
+                       break;
+               default:
+                       cam_critical(LOG_UI, "Unknow storage type : %d",
+                                    camapp->storage);
+                       break;
+               }
+
+               cam_debug(LOG_UI, "target path : [%s]", default_path);
+               return default_path;
+       } else {
+               cam_critical(LOG_UI, "camapp handle is NULL");
+               return NULL;
+       }
+}
+
+gchar *cam_app_get_last_filename(void)
+{
+       CamAppData *camapp = NULL;
+       gchar *last_file_path = NULL;
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retvm_if(ad == NULL, NULL, "appdata is NULL");
+
+       camapp = cam_handle_get();
+       cam_retvm_if(camapp == NULL, NULL, "cam_handle is NULL");
+
+       last_file_path = cam_file_get_last_file_path(ad, cam_app_get_target_path());
+
+       if (last_file_path) {
+               cam_debug(LOG_UI, "last_file_path  : %s", last_file_path);
+       } else {
+               cam_critical(LOG_UI, "last_file_path is NULL");
+               return NULL;
+       }
+       return last_file_path;
+}
+
+gchar *cam_app_get_next_filename(void)
+{
+
+       CamAppData *camapp = NULL;
+       gchar *new_filename = NULL;
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retvm_if(ad == NULL, NULL, "appdata is NULL");
+
+       camapp = cam_handle_get();
+       cam_retvm_if(camapp == NULL, NULL, "cam_handle is NULL");
+       int mm_state = 0;
+       mm_state = cam_mm_get_state();
+
+       if (mm_state == RECORDER_STATE_RECORDING
+               &&camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               new_filename = cam_file_get_next_filename(cam_app_get_target_path(), INAGE_FILE_NAME, IMAGE_FILE_EXTENSION);
+       } else {
+               new_filename = cam_file_get_next_filename(cam_app_get_target_path(),
+                                         (camapp->camera_mode ==
+                                          CAM_CAMERA_MODE) ?
+                                         INAGE_FILE_NAME :
+                                         VIDEO_FILE_NAME,
+                                         (camapp->camera_mode ==
+                                          CAM_CAMERA_MODE) ?
+                                         IMAGE_FILE_EXTENSION :
+                                         VIDEO_FILE_EXTENSION);
+       }
+
+       if (new_filename) {
+               cam_debug(LOG_UI, "next filename : %s", new_filename);
+       } else {
+               cam_critical(LOG_UI, "new_filename is NULL");
+       }
+
+       return new_filename;
+}
+
+static void __cam_preview_cb(void *stream_buffer, int buffer_size, int width,
+               int height, camera_pixel_format_e format, void *user_data)
+{
+
+       cam_retm_if(user_data == NULL, "data is null");
+       struct appdata *ad = (struct appdata *)user_data;
+
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is null");
+
+}
+
+static void __cam_state_change_cb(camera_state_e previous, camera_state_e current,
+        bool by_policy, void *user_data)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "camapp is null");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is null");
+       DEBUG_TRACE("current= %d, previous = %d, ad->enable_mode_change = %d",
+               current, previous, ad->enable_mode_change);
+       if (current == CAMERA_STATE_PREVIEW) {
+               ad->enable_mode_change = TRUE;
+       } else {
+               ad->enable_mode_change = FALSE;
+       }
+       DEBUG_TRACE("current= %d, previous = %d, ad->enable_mode_change = %d",
+               current, previous, ad->enable_mode_change);
+       cam_app_state_manager(previous, current, by_policy);
+
+}
+
+static void __cam_focus_cb(camera_focus_state_e state, void *user_data) {
+
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       /*
+       *       TODO: perhaps we have to consider: in thread, we should not use any efl api.
+       *               especially:
+       *               try not to operation the global evas object in asynchronous
+       *               callback or thread. Some bs perhaps caused by this.
+       *
+       */
+       /*note: while rotating, return. */
+       if (ad->is_rotating) return;/*note: while rotating, return. */
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+
+
+       cam_debug(LOG_MM, " Focus state changed to [%d]", state);
+
+       if(ad->appcore_state == CAM_APPCORE_PAUSE_STATE)
+               return;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               camapp->focus_state = state ;
+               cam_app_focus_guide_update(ad);
+       } else {
+               camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
+       }
+       switch (state) {
+       case CAMERA_FOCUS_STATE_ONGOING:
+               break;
+       case CAMERA_FOCUS_STATE_FOCUSED:
+               if (ad->mm_state < CAMERA_STATE_CAPTURING) {
+                       if (camapp->shutter_sound != CAM_SETTINGS_SOUND_OFF
+                               && camapp->camera_mode == CAM_CAMERA_MODE )
+                               cam_sound_play (CAM_SOUND_EFFECT_AF_OK, ad);
+
+                       if (camapp->focus_mode == CAM_FOCUS_MODE_TOUCH_AUTO){
+                               REMOVE_TIMER(ad->continuous_af_timer);
+                               DEBUG_TRACE("start caf");
+                               cam_app_focus_guide_create(ad);
+                               cam_app_focus_guide_update(ad);
+                               ad->continuous_af_timer= ecore_timer_add(FOCUS_FOCUSED_TIME_OUT, cam_continuous_af_start, ad);
+                       }
+               }
+               break;
+       case CAMERA_FOCUS_STATE_FAILED:
+               if (ad->mm_state < CAMERA_STATE_CAPTURING) {
+                       if (camapp->shutter_sound != CAM_SETTINGS_SOUND_OFF
+                               && camapp->camera_mode == CAM_CAMERA_MODE)
+                               cam_sound_play (CAM_SOUND_EFFECT_AF_FAIL, ad);
+
+                       if (camapp->focus_mode == CAM_FOCUS_MODE_TOUCH_AUTO) {
+                               REMOVE_TIMER(ad->continuous_af_timer);
+                               DEBUG_TRACE("start caf");
+                               cam_app_focus_guide_create(ad);
+                               cam_app_focus_guide_update(ad);
+                               ad->continuous_af_timer= ecore_timer_add(FOCUS_FAILED_TIME_OUT, cam_continuous_af_start, ad);
+                       }
+               }
+               break;
+       default:
+               break;
+       }
+
+
+}
+
+static void __cam_capture_cb(camera_image_data_s* image,
+       camera_image_data_s* postview,
+       camera_image_data_s* thumbnail,
+       void *user_data)
+{
+       struct appdata *ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+
+       gchar *filename = NULL;
+       FILE *fp = NULL;
+       if ((image->format == CAMERA_PIXEL_FORMAT_YUYV)
+           || (image->format == CAMERA_PIXEL_FORMAT_NV12)) {
+               cam_debug(LOG_UI,
+                         "got raw data - format [%d] data [%p], length [%d], width [%d], height [%d]",
+                         image->format, image->data, image->size, image->width,
+                         image->height);
+               /* encode data */
+               /* MMImageJpegEncodeToFile(filename, src->data, src->width,src->height, src->format, 90); */
+       } else if (image->format == CAMERA_PIXEL_FORMAT_JPEG) {
+               cam_debug(LOG_UI,
+                         "got JPEG data - data [%p], length [%d], width [%d], height [%d]",
+                         image->data, image->size, image->width, image->height);
+
+               /* save file */
+               filename = cam_app_get_next_filename();
+               if (filename == NULL) {
+                       cam_critical(LOG_SYS, " Get next filename FAILED");
+                       return;
+               }
+
+               fp = fopen(filename, "w+");
+               if (fp == NULL) {
+                       cam_critical(LOG_SYS, "FileOPEN error!!");
+                       return;
+               } else {
+                       cam_debug(LOG_SYS, "FileOPEN success");
+                       if (fwrite(image->data, image->size, 1, fp) != 1) {
+                               cam_critical(LOG_SYS, "File write error!!");
+                               fclose(fp);
+                               return;
+                       }
+                       /*fsync(fp->_fileno);*/
+                       /*block for increasing formance of shot-to-shot */
+                       cam_debug(LOG_SYS, "File write success");
+                       fclose(fp);
+               }
+               if (camapp->filename)
+                       free(camapp->filename);
+               camapp->filename = strdup(filename);
+               free(filename);
+       }
+
+}
+
+static void __cam_capture_completed_cb(void *user_data)
+{
+/*     camera_error_e e;*/
+       DEBUG_TRACE();
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       ad = (struct appdata *)user_data;
+       camapp = ad->camapp_handle;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+#ifndef ENABLE_CAPTURE_ANIMATION
+
+                                               /* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+                                               CamIdlerItem *item = NULL;
+                                               item = (CamIdlerItem *)
+                                                   g_malloc(sizeof(CamIdlerItem));
+                                               if (item == NULL)
+                                                       return;
+
+               if (item) {
+                       item->data = user_data;
+                       item->idler = ecore_idler_add(cam_image_capture_handle_idler, item);
+
+                       if (item->idler)
+                               ad->capture_cb_list = g_list_append(ad->capture_cb_list, item->idler);
+
+                       cam_info(LOG_UI, "image capture idler add : %p ", item->idler);
+               }
+#endif
+               DEBUG_TRACE();
+               if (!cam_app_preview_start(ad)) {
+                       cam_critical(LOG_MM, "cam_app_preview_start failed");
+                       cam_app_notice_popup(ad, "cam_app_preview_start faild ",
+                                            cam_app_timeout_notice_response_cb);
+                       return;
+               }
+       }else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+
+               DEBUG_TRACE("MM_MESSAGE_CAMCORDER_VIDEO_SNAPSHOT_CAPTURED");
+               ecore_idler_add(cam_capture_on_recording_handle, ad);
+       }
+       DEBUG_TRACE();
+}
+static void __cam_interrupted_cb(camera_policy_e policy, camera_state_e previous, camera_state_e current, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "cam_handle is NULL");
+       DEBUG_TRACE("policy is [%d]",policy);
+       switch (policy) {
+       case CAMERA_POLICY_SOUND:
+               {
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup, (void *)ad);
+               }
+               break;
+       case CAMERA_POLICY_SECURITY:
+                       cam_app_mdm_syspopup(ad);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __rec_interrupted_cb(recorder_policy_e policy, recorder_state_e previous, recorder_state_e current, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "cam_handle is NULL");
+       DEBUG_TRACE("policy is [%d]",policy);
+
+       switch (policy) {
+       case RECORDER_POLICY_SOUND:
+               {
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup, (void *)ad);
+               }
+               break;
+       case RECORDER_POLICY_SECURITY:
+                       cam_app_mdm_syspopup(ad);
+               break;
+       default:
+               break;
+       }
+}
+
+static void __cam_error_cb(int error, camera_state_e current_state, void *user_data)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+
+       int state = 0;
+       state = current_state;
+       cam_warning(LOG_MM,
+                       "MM ERROR occurs : code [%x], state [%d]",
+                       error, state);
+
+       switch (error) {
+       case CAMERA_ERROR_DEVICE:
+               cam_critical(LOG_SYS,
+                                "      MM CAMCARORDER ERROR ");
+               if (state < CAMERA_STATE_CAPTURING) {
+                       cam_app_notice_popup(ad,
+                               _("IDS_CAM_POP_UNABLE_TO_START_CAMERA"),
+                               cam_app_timeout_notice_response_cb);
+               } else {
+                       cam_app_notice_popup(ad,
+                               _("IDS_CAM_POP_CAPTURE_TIME_EXCEEDED_START_AGAIN"),
+                               cam_app_timeout_notice_response_cb);
+               }
+               break;
+       case CAMERA_ERROR_INVALID_PARAMETER:
+               if (state == CAMERA_STATE_CAPTURING) {
+                       cam_app_notice_popup(ad,
+                               _("IDS_CAM_POP_CAPTURE_ERROR"),
+                               cam_app_timeout_notice_response_cb);
+               }
+               break;
+       case CAMERA_ERROR_SOUND_POLICY:
+               {
+                       DEBUG_TRACE(" MM CAMCARORDER ERROR\n");
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup,
+                                       (void *)ad);
+               }
+               break;
+       case CAMERA_ERROR_INVALID_OPERATION:
+               {
+                       DEBUG_TRACE(" Internal error\n");
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup,
+                                       (void *)ad);
+               }
+               break;
+       case CAMERA_ERROR_OUT_OF_MEMORY:
+               {
+                       DEBUG_TRACE(" Out of memory\n");
+                       cam_app_black_screen_show(ad, 2);
+                       ecore_timer_add(0.01, cam_delay_popup,
+                                       (void *)ad);
+               }
+               break;
+       default:
+               {
+                       DEBUG_TRACE(" MM CAMCARORDER ERROR error code =%x \n", error);
+                       if (state == CAMERA_STATE_CAPTURING
+                               && camapp->camera_mode == CAM_CAMERA_MODE) {
+                               cam_app_notice_popup(ad, _("IDS_CAM_POP_CAPTURE_ERROR"),
+                                       cam_app_capture_error_popup_response_cb);
+                       }
+               }
+               break;
+       }
+
+}
+
+static void __recorder_state_cb(recorder_state_e previous , recorder_state_e current , bool by_policy, void *user_data)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+       if (current == RECORDER_STATE_READY) {
+               ad->enable_mode_change = TRUE;
+       } else {
+               ad->enable_mode_change = FALSE;
+       }
+       cam_app_state_manager(previous, current, by_policy);
+}
+
+void __recording_status_cb(int elapsed_time, int file_size, void *user_data)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+       /* update current time */
+       DEBUG_TRACE();
+       guint elapsed = 0;
+       guint filesize = 0;
+       elapsed = elapsed_time / 1000;
+       filesize = file_size;
+       if (camapp->rec_elapsed < elapsed) {
+               GValue value = { 0, };
+
+               cam_debug(LOG_UI, "time updated: %u ", elapsed);
+               CAM_GVALUE_SET_UINT(value, elapsed);
+               cam_handle_value_set(ad, PROP_REC_TIME, &value);
+       }
+       if (camapp->rec_filesize < filesize) {
+               GValue value = { 0, };
+
+               cam_debug(LOG_UI, "filesize updated: %u ", filesize);
+               CAM_GVALUE_SET_UINT(value, filesize);
+               cam_handle_value_set(ad, PROP_REC_FILE_SIZE, &value);
+       }
+}
+
+void __recording_limit_reached_cb(recorder_recording_limit_type_e type, void *user_data)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+       ad = (struct appdata *)user_data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               camapp->rec_stop_type = type;/*CAM_REC_STOP_TIME_LIMIT;*/
+               ad->recording_commit =
+                       ecore_idler_add(cam_video_idler_record_stop, ad);
+       }
+}
+
+gboolean cam_callback_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+       camapp->error_cb = __cam_error_cb;
+       camapp->focus_cb = __cam_focus_cb;
+       camapp->state_cb = __cam_state_change_cb;
+       camapp->preview_cb = __cam_preview_cb;
+       camapp->capture_completed_cb = __cam_capture_completed_cb;
+       camapp->cam_interrupted_cb = __cam_interrupted_cb;
+
+       camapp->recording_status_cb = __recording_status_cb;
+       camapp->recording_state_changed_cb = __recorder_state_cb;
+       camapp->recording_limit_reached_cb = __recording_limit_reached_cb;
+       camapp->rec_interrupted_cb = __rec_interrupted_cb;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               switch (camapp->shooting_mode) {
+               case CAM_SINGLE_MODE:
+               case CAM_SELF_MODE:
+                       camapp->capture_cb = (camera_capturing_cb)
+                               __cam_capture_cb;
+                       break;
+               default:
+                       break;
+               }
+       } else {
+               camapp->capture_cb = __cam_capture_cb;
+       }
+
+       int ret = 1;
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               /*ret &= cam_mm_recorder_unset_state_changed_cb();*/
+               ret &= cam_mm_set_preview_cb(camapp->preview_cb, (void*)ad);
+               ret &= cam_mm_set_focus_changed_cb(camapp->focus_cb, (void*)ad);
+               ret &= cam_mm_set_state_changed_cb(camapp->state_cb, (void*)ad);
+               ret &= cam_mm_set_error_cb(camapp->error_cb, (void*)ad);
+               ret &= cam_mm_set_camera_interrupted_cb(camapp->cam_interrupted_cb, (void*)ad);
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               ret &= cam_mm_unset_state_changed_cb();
+               /*ret &= cam_mm_unset_preview_cb();*/
+               /*ret &= cam_mm_unset_state_changed_cb();*/
+               /*ret &= cam_mm_unset_error_cb();*/
+               ret &= cam_mm_recorder_set_state_changed_cb(camapp->recording_state_changed_cb, (void*)ad);
+               ret &= cam_mm_recorder_set_recording_status_cb(camapp->recording_status_cb, (void*)ad);
+               ret &= cam_mm_recorder_set_recording_limit_reached_cb(camapp->recording_limit_reached_cb, (void*)ad);
+               ret &= cam_mm_set_recorder_interrupted_cb(camapp->rec_interrupted_cb, (void*)ad);
+       }
+
+
+       return ret;
+}
+
+static void cam_app_close_ug(void *data)
+{
+       cam_debug(LOG_UI, " ");
+       struct appdata *ad = (struct appdata *)data;
+       /* IDS problem */
+
+       cam_info(LOG_UI, "ad->imageviewer_ug : %p", ad->imageviewer_ug);
+       if (ad->imageviewer_ug) {
+               ug_destroy(ad->imageviewer_ug);
+               ad->imageviewer_ug = NULL;
+       }
+       cam_file_init(NULL);
+       return;
+}
+
+static void __ug_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv)
+{
+       cam_debug(LOG_UI, " ");
+
+       struct appdata *ad = (struct appdata *)priv;
+       Evas_Object *base;
+
+       if (!ug || !priv)
+               return;
+
+       base = ug_get_layout(ug);
+       if (!base)
+               return;
+
+       switch (mode) {
+       case UG_MODE_FULLVIEW:
+               evas_object_size_hint_weight_set(base, EVAS_HINT_EXPAND,
+                                                EVAS_HINT_EXPAND);
+               elm_win_resize_object_add(ad->win_main, base);
+               evas_object_show(base);
+               break;
+       default:
+               break;
+       }
+}
+
+void __ug_result_cb(ui_gadget_h ug, service_h result, void *priv)
+{
+
+       cam_debug(LOG_UI, " ");
+
+       struct appdata *ad = (struct appdata *)priv;
+       char *val = NULL;
+
+       CamAppData *camapp = NULL;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "cam_handle is NULL");
+
+       if (ad->imageviewer_ug) {
+               if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+                       if (result == NULL) {
+                               ad->path_in_return = false;
+                               return;
+                       }
+
+                       if ((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "contacts") == 0)) {
+                               service_h reply;
+                               service_create(&reply);
+
+                               service_get_extra_data(result, "crop_image_path", &val);
+                               service_add_extra_data(reply, "crop_image_path", val);
+                               service_get_extra_data(result, "image_path", &val);
+                               service_add_extra_data(reply, "image_path", val);
+
+                               service_reply_to_launch_request(reply, ad->service_handle, SERVICE_RESULT_SUCCEEDED);
+                               service_destroy(reply);
+
+                               ad->path_in_return = true;
+                               cam_app_exit(ad);
+                       } else {
+                               /* get result value. */
+                               service_get_extra_data(result, "Result", &val);
+
+                               if (strcmp(val, "Ok") == 0) {
+                                       ad->path_in_return = true;
+                                       cam_app_exit(ad);
+                               }
+                               else if (strcmp(val, "Cancel") == 0) {
+                                       ad->path_in_return = false;
+                               }
+                       }
+               }
+       }
+}
+
+void __ug_destroy_cb(ui_gadget_h ug, void *priv)
+{
+       cam_debug(LOG_UI, " ");
+
+       if (!ug || !priv)
+               return;
+
+       struct appdata *ad = (struct appdata *)priv;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       ad->ug_is_deleting_process = TRUE;
+
+       cam_app_timeout_checker_init(ad);
+
+       /* add mouse down event - image viewer bug */
+       if (ad->black_screen) {
+               DEL_EVAS_OBJECT(ad->black_screen);
+               ad->black_screen = NULL;
+       }
+
+       if (ad->imageviewer_ug) {
+               ug_destroy(ad->imageviewer_ug);
+               ad->imageviewer_ug = NULL;
+       }
+
+       elm_win_indicator_mode_set(ad->win_main, 0);
+       cam_app_start_rotate(ad, false);
+
+       ecore_idler_add(__ug_destory_postprocessing, ad);
+
+       return;
+}
+
+Eina_Bool __ug_destory_postprocessing(void *data)
+{
+       struct appdata *ad = data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       ad->ug_is_deleting_process = TRUE;
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE,  "cam_handle is NULL");
+
+       cam_app_mouse_event_init(ad);
+
+       show_toolbar_edje(ad);
+
+       if (!cam_file_check_exists(camapp->filename)) {
+               free(camapp->filename);
+               camapp->filename = NULL;
+       }
+       if (!cam_app_preview_start(ad)) {
+               cam_app_notice_popup(ad,
+               "PREVIEW START FAIL !!",
+                cam_app_timeout_notice_response_cb);
+       }
+
+       if (!cam_key_grab_init(ad))
+               DEBUG_TRACE("cam_key_grab_init fail");
+       cam_app_key_event_init(ad);
+       /* update thumbnail to quickview after return from image viewer */
+       cam_app_update_quickview_icon(ad);
+       cam_file_init(NULL);
+       ad->ug_is_deleting_process = FALSE;
+       return ECORE_CALLBACK_CANCEL;
+
+
+}
+
+gboolean cam_app_run_image_viewer_ug(void *data, char *file_path)
+{
+       DEBUG_TRACE("START");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       cam_retvm_if(file_path == NULL, FALSE, "file_path is NULL");
+
+       if (ad->ug_is_deleting_process) /*NOTE:before old ug is not deleted completely, should not create new ug*/
+               return FALSE;
+
+       cam_debug(LOG_UI, " ");
+       cam_debug(LOG_UI, "path :%s", file_path);
+
+       if (ad->imageviewer_ug) {
+               return FALSE;/*NOTE: ug is login, not create ug again.*/
+       }
+
+       /* init */
+       enum ug_option opt;
+       opt = UG_OPT_INDICATOR_LANDSCAPE_ONLY | UG_OPT_INDICATOR_DISABLE;
+       UG_INIT_EFL(ad->win_main, opt);
+
+       struct ug_cbs cbs = { 0, };
+
+       cbs.layout_cb = __ug_layout_cb;
+       cbs.result_cb = __ug_result_cb;
+       cbs.destroy_cb = __ug_destroy_cb;
+       cbs.priv = (void *)data;
+
+       /* param */
+       if (ad->imageviewer_service)
+               service_destroy(ad->imageviewer_service);
+
+       service_create(&ad->imageviewer_service);
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               if ((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "contacts") == 0)) {
+                       service_add_extra_data(ad->imageviewer_service, IMAGE_VIEWER_VIEW_MODE_KEY_NAME, "SETAS");
+                       service_add_extra_data(ad->imageviewer_service, IMAGE_VIEWER_SET_AS_TYPE, "CallerID");
+               } else {
+                       service_add_extra_data(ad->imageviewer_service, IMAGE_VIEWER_VIEW_MODE_KEY_NAME, "DISPLAY");
+               }
+       } else if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+               service_add_extra_data(ad->imageviewer_service, IMAGE_VIEWER_VIEW_MODE_KEY_NAME, "CAMERA");
+       }
+       service_add_extra_data(ad->imageviewer_service, IMAGE_VIEWER_FILE_PATH_KEY_NAME, file_path);
+
+       switch (ad->rot_current) {
+       case APP_DEVICE_ORIENTATION_0:
+               elm_win_rotation_with_resize_set(ad->win_main, 0);
+               break;
+       case APP_DEVICE_ORIENTATION_270:
+       case APP_DEVICE_ORIENTATION_180:
+               break;
+       case APP_DEVICE_ORIENTATION_90:
+               elm_win_rotation_with_resize_set(ad->win_main, 90);
+               break;
+       default:
+               break;
+       }
+
+       /* Create UI gadget */
+       ad->imageviewer_ug =
+           ug_create(NULL, IMAGE_VIEWER_UG_NAME, UG_MODE_FULLVIEW,
+                     ad->imageviewer_service, &cbs);
+
+       if (!ad->imageviewer_ug) {
+               cam_critical(LOG_SYS, "image viewer UI Gadget create fail...");
+               return FALSE;
+       } else {
+
+               if (ad->imageviewer_ug) {
+                       cam_app_key_event_deinit(ad);
+                       if(!cam_key_grab_deinit(ad)){
+                               DEBUG_TRACE("cam_key_grab_deinit fail");
+                       }
+                       cam_app_preview_stop();
+                       power_unlock_state(POWER_STATE_NORMAL);
+               } else {
+                       cam_warning(LOG_UI, "Cannot create imageviewer ug");
+                       cam_file_init(NULL);
+                       return FALSE;
+               }
+       }
+       DEBUG_TRACE("END");
+
+       return TRUE;
+
+}
+
+gboolean cam_app_run_media_browser(void *data, gchar *filename)
+{
+       cam_debug(LOG_UI, "filename = %s", filename);
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int state = 0;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       debug_fenter(LOG_UI);
+       ad->launch_type = CAM_LAUNCH_IS_ALREADY_RUNNING;
+       DEBUG_TRACE("ad->launch_type = %d", ad->launch_type);
+       state = cam_mm_get_state();
+       if (state > CAMERA_STATE_PREVIEW) {
+               cam_warning(LOG_MM, "Invaild state : %d", state);
+               return FALSE;
+       }
+       toolbar_hide_setting_popup(ad);
+       ad->foucs_out_from_quickview = FALSE;
+
+       /* del mouse down event - image viewer bug */
+       cam_app_mouse_event_deinit(ad);
+       if (!cam_app_run_image_viewer_ug(ad, cam_app_get_last_filename())) {
+               DEBUG_TRACE("cam_app_run_image_viewer_ug failed");
+               cam_app_mouse_event_init(ad);
+               return FALSE;
+       }
+
+       if (camapp->thumbnail_name) {   /*  Some image is deleted from image viewer and galler -> BS  */
+               free(camapp->thumbnail_name);
+               camapp->thumbnail_name = NULL;
+       }
+
+       cam_app_timeout_checker_remove();
+       return TRUE;
+}
+
+gboolean cam_app_clear_engine_data(void *data, gboolean release)
+{
+       return TRUE;
+}
+
+gboolean cam_app_check_wide_resolution(int id)
+{
+
+       gfloat get_value = (HIWORD(id) * 3.0) / (LOWORD(id) * 4.0);
+       if (ABS(get_value - 1.0) < CAM_EPSINON
+           || ABS((gfloat)((HIWORD(id) * 25.0) / (LOWORD(id) * 36.0)) - 1.0) < CAM_EPSINON) {
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+gboolean cam_app_is_skip_video_stream()
+{                              /*if true , must finish function in stream callback function */
+       return video_stream_skip_flag;
+}
+
+void cam_app_stop_video_stream()
+{
+       video_stream_skip_flag = TRUE;
+}
+
+void cam_app_run_video_stream()
+{
+       video_stream_skip_flag = FALSE;
+}
+
+Eina_Bool _auto_shot_idle_cb(void *data)
+{
+       debug_fenter(LOG_CAM);
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       if (ad->auto_shot_idle) {
+               ecore_idler_del(ad->auto_shot_idle);
+               ad->auto_shot_idle = NULL;
+       }
+
+       debug_fleave(LOG_CAM);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+gboolean cam_app_create_progressbar(void *data)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_debug(LOG_UI, "");
+
+       cam_app_destroy_progressbar(ad);
+
+       ad->progressbar = elm_progressbar_add(ad->win_main);
+       cam_retvm_if(ad->progressbar == NULL, FALSE,
+                    "Cannot create progressbar object\n");
+
+       elm_object_style_set(ad->progressbar, "list_progress");
+       evas_object_size_hint_align_set(ad->progressbar, EVAS_HINT_FILL,
+                                       EVAS_HINT_FILL);
+
+       evas_object_show(ad->progressbar);
+
+       return TRUE;
+}
+
+gboolean cam_app_set_progressbar_value(void *data, double value)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_debug(LOG_UI, " value [%f]", value);
+
+       if (ad->progressbar)
+               elm_progressbar_value_set(ad->progressbar, value);
+
+       return TRUE;
+}
+
+gboolean cam_app_set_progressbar_text(void *data, const char *text)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_retv_if(text == NULL, FALSE);
+
+       if (ad->progressbar_edje)
+               edje_object_part_text_set(_EDJ(ad->progressbar_edje),
+                                         "progressbar_text", text);
+
+       return TRUE;
+}
+
+gboolean cam_app_destroy_progressbar(void *data)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_debug(LOG_UI, " start");
+       if (ad->progressbar)
+               DEL_EVAS_OBJECT(ad->progressbar);
+       if (ad->progressbar_edje)
+               DEL_EVAS_OBJECT(ad->progressbar_edje);
+
+       cam_debug(LOG_UI, " done");
+
+       return TRUE;
+}
+
+#if ENABLE_HAPTIC
+void
+cam_app_haptic_cb(void *data, Evas_Object *o, const char *emission,
+                 const char *source)
+{
+       debug_fenter(LOG_UI);
+       cam_devman_haptic_play(100);
+/*      haptic_oneshot(100); */
+}
+#endif
+
+static gboolean cam_app_timeout_checker_update()
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+       gdouble c_time = 0.0;
+       cam_debug(LOG_UI, "");
+
+       ad = (struct appdata *)cam_appdata_get();
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       if (ad->timeout_checker) {
+               c_time = _get_current_time();
+               ecore_timer_delay(ad->timeout_checker,
+                                 (c_time - camapp->last_time));
+               camapp->last_time = c_time;
+       }
+
+       return TRUE;
+}
+void cam_app_zoom_warring_popup(void *data, const char *msg,
+                         void (*func) (void *data, Evas_Object *obj, void *event_info))
+{
+       struct appdata *ad = (struct appdata *)(data);
+       ad->zoom_warring_popup = elm_popup_add(ad->win_main);
+       evas_object_size_hint_weight_set(ad->zoom_warring_popup, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_object_text_set(ad->zoom_warring_popup, msg);
+       elm_popup_timeout_set(ad->zoom_warring_popup, 3.0);
+       evas_object_smart_callback_add(ad->zoom_warring_popup, "timeout", func, data);
+       evas_object_show(ad->zoom_warring_popup);
+}
+void cam_app_mdm_syspopup(void *data){
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       bundle *b = NULL;
+       b = bundle_create();
+       if (b != NULL) {
+               bundle_add(b, "_SYSPOPUP_CONTENT_", _("IDS_CAM_POP_SECURITY_POLICY_RESTRICTS_USE_OF_CAMERA"));
+               syspopup_launch("mdm-syspopup", b);
+               bundle_free(b);
+       }
+       ecore_idler_add(cam_app_stop,ad);
+       elm_exit();
+}
+
+
+void cam_app_notice_popup(void *data, const char *msg,
+                         void (*func) (void *data,
+                         Evas_Object *obj,
+                         void *event_info)
+                         )
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       cam_retm_if(ad->win_main == NULL, " ad->win_main is NULL");
+       Evas_Object *popup = NULL;
+       popup = elm_popup_add(ad->win_main);
+       if (popup == NULL)
+               return;
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_object_text_set(popup, msg);
+       /*elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);*/
+       elm_popup_timeout_set(popup, 3.0);
+       evas_object_smart_callback_add(popup, "timeout", func, data);
+       ad->waring_popup = popup;
+       evas_object_show(popup);
+}
+void cam_app_snapshot_popup(void *data, const char *msg,
+                         void (*func) (void *data, Evas_Object *obj, void *event_info))
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       cam_retm_if(ad->win_main == NULL, " ad->win_main is NULL");
+       Evas_Object *popup = NULL;
+       popup = elm_popup_add(ad->win_main);
+       if (popup == NULL)
+               return;
+       evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_object_text_set(popup, msg);
+       /*elm_popup_mode_set(popup, ELM_POPUP_TYPE_ALERT);*/
+       elm_popup_timeout_set(popup, 1.5);
+       evas_object_smart_callback_add(popup, "timeout", func, data);
+       ad->is_showing_snapshot_popup = TRUE; /*result popup is showing*/
+       DEBUG_TRACE("ad->is_showing_snapshot_popup = TRUE");
+       evas_object_show(popup);
+}
+
+static void cam_app_capture_error_popup_response_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, " camapp is NULL");
+       if (obj)
+               evas_object_del(obj);
+       obj = NULL;
+       cam_mm_capture_stop(FALSE, camapp->camera_mode);
+       cam_app_exit(ad);
+}
+
+void cam_app_timeout_notice_response_cb(void *data, Evas_Object *obj,
+                                       void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       if (obj)
+               evas_object_del(obj);
+       obj = NULL;
+       cam_app_exit(ad);
+}
+
+/*set flash close*/
+void cam_close_flash_feature(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, " appdata is NULL");
+       if (camapp->flash > CAM_FLASH_OFF) {
+               GValue value = { 0 };
+               CAM_GVALUE_SET_INT(value, CAM_FLASH_OFF);
+               gint tempval = g_value_get_int(&value);
+               if (!cam_mm_set_flash(tempval)) {
+                       cam_warning(LOG_UI, "flash set fail");
+                       return;
+               }
+               camapp->flash = tempval;
+       }
+}
+/*lowbattery callback*/
+void cam_app_lowbattery_close_flash_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       if (obj)
+               evas_object_del(obj);
+       obj = NULL;
+       cam_close_flash_feature(ad);
+
+       cam_toolbar_update(ad);
+}
+
+static void cam_app_auto_close_popup_response_ok_cb(void *data, Evas_Object *obj,
+                                                void *event_info)
+
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+
+       if (ad->auto_close_timer) {
+               ecore_timer_del(ad->auto_close_timer);
+               ad->auto_close_timer = NULL;
+       }
+       cam_app_timeout_checker_remove();
+       if (ad->auto_close_popup)
+               evas_object_del(ad->auto_close_popup);
+       ad->auto_close_popup = NULL;
+       cam_app_exit(ad);
+
+}
+
+static void cam_app_auto_close_popup_response_cancel_cb(void *data, Evas_Object *obj,
+                                                void *event_info)
+
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       if (ad->auto_close_timer) {
+               ecore_timer_del(ad->auto_close_timer);
+               ad->auto_close_timer = NULL;
+       }
+       if (ad->auto_close_popup)
+               evas_object_del(ad->auto_close_popup);
+       ad->auto_close_popup = NULL;
+       cam_app_timeout_checker_init(ad);
+}
+
+void cam_app_auto_close_popup(void *data, const char *msg,
+                             void (*func) (void *data, Evas_Object *obj,
+                                           void *event_info))
+{
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       if (ad->auto_close_popup) {
+               evas_object_del(ad->auto_close_popup);
+               ad->auto_close_popup = NULL;
+       }
+       ad->auto_close_popup = elm_popup_add(ad->win_main);
+       if (ad->auto_close_popup == NULL)
+               return;
+       evas_object_size_hint_weight_set(ad->auto_close_popup, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_popup_timeout_set(ad->auto_close_popup, 9.0);
+       elm_object_text_set(ad->auto_close_popup, msg);
+       Evas_Object *btn1 = elm_button_add(ad->auto_close_popup);
+       if (btn1 == NULL) {
+               evas_object_del(ad->auto_close_popup);
+               ad->auto_close_popup = NULL;
+               return;
+       }
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(ad->auto_close_popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", cam_app_auto_close_popup_response_ok_cb, (void*)ad);
+       Evas_Object *btn2 = elm_button_add(ad->auto_close_popup);
+       if (btn2 == NULL) {
+               evas_object_del(ad->auto_close_popup);
+               ad->auto_close_popup = NULL;
+               btn1 = NULL;
+               return;
+       }
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(ad->auto_close_popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", cam_app_auto_close_popup_response_cancel_cb, (void*)ad);
+
+       evas_object_show(ad->auto_close_popup);
+
+}
+
+#if 0
+static Eina_Bool cam_app_auto_close_task(void *data)
+{
+       DEBUG_TRACE(" ");
+       int num;
+       char *str = NULL;
+       char *msg = _("IDS_CAM_POP_CLOSE_CAMERA_IN_PD_SECONDS");
+       num = 1+ snprintf(NULL, 0, msg, AUTO_CLOSE_COUNT);
+       DEBUG_TRACE("%d",num);
+       str = (char *)malloc(num);
+       if (str) {
+               memset(str, 0x00, num);
+               snprintf(str, num, msg, AUTO_CLOSE_COUNT);
+               DEBUG_TRACE("%s",str);
+               cam_app_auto_close_popup(data, str, NULL);
+               free(str);
+               str = NULL;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+#endif
+
+static Eina_Bool cam_app_auto_close_timer_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       CamAppData *camapp = NULL;
+       gdouble diff = 0.0;
+       int count = 10;
+
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, 0, "cam_handle is NULL");
+
+       diff = _get_current_time() - camapp->last_time;
+
+       ad->auto_close_count++;
+
+       count = count - ad->auto_close_count;
+
+       if ((cam_mm_get_state() == CAMERA_STATE_PREVIEW)
+           && (diff >= CAMERA_APP_TIMEOUT + 10)) {
+               cam_debug(LOG_UI,
+                         "Quit camera application !!!   diff time : [%lf]",
+                         diff);
+               cam_app_timeout_checker_remove();
+
+               cam_app_exit(ad);
+
+               return ECORE_CALLBACK_CANCEL;
+       }
+       cam_debug(LOG_UI, "####diff time : [%lf]", diff);
+
+       return 1;
+
+}
+
+static Eina_Bool cam_app_timeout_checker_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       CamAppData *camapp = NULL;
+       gdouble diff = 0.0;
+
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, 0, "cam_handle is NULL");
+
+       diff = _get_current_time() - camapp->last_time;
+
+       if ((cam_mm_get_state() == CAMERA_STATE_PREVIEW)
+           && (diff >= CAMERA_APP_TIMEOUT)) {
+               cam_debug(LOG_UI,
+                         "auto close popup is closeed after 10 secondes !!!   diff time : [%lf]",
+                         diff);
+               ad->auto_close_count = 0;
+               ad->auto_close_timer =
+                   ecore_timer_add(1, cam_app_auto_close_timer_cb, ad);
+//             ecore_idler_add(cam_app_auto_close_task, ad);
+
+       }
+       cam_debug(LOG_UI, "diff time : [%lf]", diff);
+       return 1;
+}
+
+gboolean cam_app_timeout_checker_init(void *data)
+{
+       struct appdata *ad = (struct appdata *)(data);
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_CAM);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       if (ad->timeout_checker) {
+               ecore_timer_del(ad->timeout_checker);
+               ad->timeout_checker = NULL;
+       }
+       if (ad->auto_close_timer) {
+               ecore_timer_del(ad->auto_close_timer);
+               ad->auto_close_timer = NULL;
+       }
+       if (ad->auto_close_popup) {
+               evas_object_del(ad->auto_close_popup);
+               ad->auto_close_popup = NULL;
+       }
+       if (ad->timer_timer) {
+               ad->timer_activated = false;
+               DEL_EVAS_OBJECT(ad->timer_icon_edje);
+               REMOVE_TIMER(ad->timer_timer);
+       }
+       ad->timeout_checker =
+           ecore_timer_add(CAMERA_APP_TIMEOUT / 2, cam_app_timeout_checker_cb,
+                           ad);
+       camapp->last_time = _get_current_time();
+
+       return TRUE;
+}
+
+gboolean cam_app_timeout_checker_remove(void)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_CAM);
+
+       ad = (struct appdata *)cam_appdata_get();
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+
+       if (ad->timeout_checker) {
+               ecore_timer_del(ad->timeout_checker);
+               ad->timeout_checker = NULL;
+       }
+       camapp->last_time = 0;
+
+       return TRUE;
+}
+
+#ifdef USE_FIFO_THREAD
+void *cam_app_FIFO_thread_run(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       int fd = 0;
+
+       char buf[128] = { '\0', };
+
+       cam_retvm_if(ad == NULL, NULL, "appdata is NULL");
+
+       if (!access(CAM_FIFO_PATH, F_OK)) {
+               unlink(CAM_FIFO_PATH);
+       }
+
+       if (-1 == mkfifo(CAM_FIFO_PATH, 0666)) {
+               cam_critical(LOG_SYS, " Make CamApp FIFO failed.");
+               elm_exit();
+       }
+
+       fd = open(CAM_FIFO_PATH, O_RDWR);
+       if (fd < 0) {
+               cam_critical(LOG_SYS, " Open CamApp FIFO failed.");
+               elm_exit();
+       }
+
+       cam_debug(LOG_SYS, "Open CamApp FIFO [%s] success", CAM_FIFO_PATH);
+
+       while (1) {
+               memset(buf, 0x00, 128);
+
+               cam_debug(LOG_SYS, " Wait CamApp FIFO write...");
+
+               int count = read(fd, buf, 128);
+               if (count == -1)
+                       cam_debug(LOG_SYS, " read error occur!");
+
+               cam_debug(LOG_SYS, " Read from CamApp FIFO : [%s]", buf);
+
+               if (!strcmp(buf, CAM_CAPTURE_AUTO_START)) {
+                       cam_debug(LOG_SYS, " #### Start _auto_shot_idle_cb");
+                       _auto_shot_idle_cb(data);
+               } else if (!strcmp(buf, CAM_FIFO_CMD_EXIT)) {
+                       break;
+               } else {
+                       /* Error */
+                       cam_warning(LOG_SYS, " Skip this...");
+               }
+       }
+
+       close(fd);
+       unlink(CAM_FIFO_PATH);
+
+       cam_debug(LOG_SYS, " Exit CamApp FIFO thread...");
+
+       return NULL;
+}
+
+void cam_app_FIFO_thread_exit()
+{
+       int fd = open(CAM_FIFO_PATH, O_WRONLY);
+       char *str_write = CAM_FIFO_CMD_EXIT;
+
+       if (fd < 0) {
+               cam_critical(LOG_SYS, " Open CammApp FIFO file[%s] failed",
+                            CAM_FIFO_PATH);
+       } else {
+               int count = write(fd, str_write, strlen(str_write));
+               if (count == -1)
+                       cam_debug(LOG_SYS, " write error occur! ");
+               close(fd);
+
+               cam_debug(LOG_SYS, " Write [%s] to FIFO Done.", str_write);
+       }
+}
+
+#endif
+
+#ifdef USE_FILE_REG_THREAD
+
+gboolean cam_app_create_file_register_thread(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       int err = 0;
+       cam_debug(LOG_SYS, "");
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       err = pthread_mutex_init(&(ad->file_reg_mutex), NULL);
+       if (err != 0) {
+               cam_critical(LOG_CAM,
+                            "Create Camera file register mutex failed");
+               return FALSE;
+       }
+
+       err = pthread_cond_init(&(ad->file_reg_cond), NULL);
+       if (err != 0) {
+               cam_critical(LOG_CAM,
+                            "Create Camera file register cond failed");
+               return FALSE;
+       }
+
+       ad->file_reg_queue = g_queue_new();
+       if (ad->file_reg_queue == NULL) {
+               cam_critical(LOG_CAM,
+                            "Create Camera file register queue failed");
+               return FALSE;
+       }
+
+       err =
+           pthread_create(&(ad->file_reg_thread), NULL,
+                          cam_app_file_register_thread_run, (void *)ad);
+       if (err != 0) {
+               cam_critical(LOG_CAM,
+                            "Create Camera file register thread failed");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+void *cam_app_file_register_thread_run(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       gboolean Exit_loop = FALSE;
+
+       cam_debug(LOG_FILE, "");
+
+       pthread_mutex_lock(&ad->file_reg_mutex);
+
+       while (!Exit_loop) {
+               cam_debug(LOG_FILE, " wait signal...");
+
+               pthread_cond_wait(&ad->file_reg_cond, &ad->file_reg_mutex);
+
+               cam_debug(LOG_FILE, " signal received");
+
+               while (!g_queue_is_empty(ad->file_reg_queue)) {
+                       char *filename = NULL;
+                       filename = g_queue_pop_head(ad->file_reg_queue);
+
+                       if (!strcmp(REG_THREAD_EXIT, filename)) {
+                               free(filename);
+                               Exit_loop = TRUE;
+                               break;
+                       } else {
+                               __cam_single_shot_reg_file(filename);
+                               free(filename);
+                               cam_debug(LOG_FILE, " register done.");
+                       }
+               }
+       }
+
+       pthread_mutex_unlock(&ad->file_reg_mutex);
+
+       pthread_mutex_destroy(&ad->file_reg_mutex);
+       pthread_cond_destroy(&ad->file_reg_cond);
+
+       cam_debug(LOG_SYS, " thread exit...");
+
+       return NULL;
+}
+
+void cam_app_file_register_thread_exit(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       char *exit_cmd = NULL;
+
+       if (ad->file_reg_queue != NULL) {
+               exit_cmd = strdup(REG_THREAD_EXIT);
+               g_queue_push_tail(ad->file_reg_queue, exit_cmd);
+               pthread_cond_signal(&ad->file_reg_cond);
+       }
+       return;
+}
+#endif
+gboolean cam_app_init_with_args(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       cam_retvm_if(ad->camapp_handle == NULL, FALSE, "camapp is NULL");
+
+       cam_debug(LOG_SYS, "");
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               ad->camapp_handle->camera_mode = ad->exe_args->cam_mode;
+               if (CAM_CAMCORDER_MODE == ad->camapp_handle->camera_mode) {
+                       if (ad->exe_args->resolution == CAM_RESOLUTION_QCIF) {
+                               ad->camapp_handle->recording_mode = CAM_RECORD_MMS;
+                               ad->camapp_handle->resolution = CAM_RESOLUTION_QCIF;
+                               ad->camapp_handle->fps = FPS_SLOW;
+                               if (ad->exe_args->size_limit <= 0) {
+                                       ad->camapp_handle->size_limit = CAM_REC_MMS_MAX_SIZE;
+                               } else {
+                                       ad->camapp_handle->size_limit = ad->exe_args->size_limit;
+                               }
+                               ad->camapp_handle->size_limit_type = CAM_MM_SIZE_LIMIT_TYPE_BYTE;
+                       } else {
+                               ad->camapp_handle->recording_mode = CAM_RECORD_NORMAL;
+                               ad->camapp_handle->resolution = ad->exe_args->resolution;
+                               ad->camapp_handle->fps = FPS_DEFAULT;
+                       }
+               } else {
+                       ad->camapp_handle->shooting_mode = CAM_SINGLE_MODE;
+                       if (ad->exe_args->width <= 0
+                           || ad->exe_args->height <= 0) {
+                               ad->camapp_handle->resolution = CAM_RESOLUTION_VGA;
+                       } else {
+                               ad->camapp_handle->resolution = CAM_RESOLUTION(ad->exe_args->width, ad->exe_args->height);
+                       }
+                       ad->camapp_handle->review = ad->exe_args->review;
+               }
+       } else {
+               cam_debug(LOG_SYS, " camera launch mode is normal.");
+               return FALSE;
+       }
+
+       cam_debug(LOG_SYS, " done");
+
+       return TRUE;
+}
+
+Eina_Bool cam_app_focus_guide_create(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, EINA_FALSE);
+
+       DEL_EVAS_OBJECT(ad->focus_edje);
+
+       ad->focus_edje =
+               cam_app_load_edj(ad->layout_main, CAM_UTILS_EDJ_NAME, "focus_image");
+       if (ad->focus_edje == NULL) {
+               cam_critical(LOG_UI, "focus_edje load failed ");
+               return EINA_FALSE;
+       }
+
+       evas_object_resize(ad->focus_edje, ad->camera_focus_w, ad->camera_focus_h);
+       DEBUG_TRACE("#######################################\n");
+       DEBUG_TRACE(" MOVE FOCUS_EDJE : %f, %f", ad->af_start_x, ad->af_start_y);
+       evas_object_move(ad->focus_edje, ad->af_start_x, ad->af_start_y);
+       evas_object_show(ad->focus_edje);
+       DEBUG_TRACE("#######################################\n");
+
+#ifdef CAMERA_MACHINE_I686
+       evas_object_hide(ad->focus_edje);
+#endif
+
+       return EINA_TRUE;
+}
+
+Eina_Bool cam_app_focus_guide_update(void *data)
+{
+#ifndef        CAMERA_MACHINE_I686
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, EINA_FALSE);
+
+       CamAppData *camapp = NULL;
+
+       if (ad->focus_edje == NULL) {
+               return EINA_FALSE;
+       }
+
+       /*note: relocation the focus edje*/
+       evas_object_resize(ad->focus_edje, ad->camera_focus_w, ad->camera_focus_h);
+       evas_object_move(ad->focus_edje, ad->af_start_x, ad->af_start_y);
+       evas_object_show(ad->focus_edje);
+
+       if (ad->setting_ctxpopup
+               || (ad->toolbar_show_setting_popup == TRUE)
+               || (ad->toolbar_show_edit_shortcuts_popup == TRUE)) {
+               cam_debug(LOG_UI, "do not need to update focus");
+               edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+               return EINA_FALSE;
+       }
+
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               return EINA_FALSE;
+       }
+       if (ad->mm_state == CAMERA_STATE_CAPTURING
+               && camapp->camera_mode == CAM_CAMERA_MODE) {
+               return EINA_FALSE;
+       }
+       if (ad->mm_state < CAMERA_STATE_PREVIEW || FALSE) {
+               edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+               return EINA_FALSE;
+       } else {
+               DEBUG_TRACE("focus-state = %d, shooting-mode = %d", camapp->focus_state, camapp->shooting_mode);
+               if (camapp->recording_mode == CAM_RECORD_SELF
+                       || camapp->recording_mode == CAM_RECORD_SELF_MMS
+                       || camapp->shooting_mode == CAM_SELF_MODE) {
+                       edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+               } else {
+                       char signame[30] = { '\0', };
+                       const char *focus_state_name[4] = {
+                               "notready",
+                               "notready",
+                               "focused",
+                               "failed",
+                       };
+
+                       snprintf(signame, sizeof(signame), "%s,%s", "focus", focus_state_name[camapp->focus_state]);
+
+                       cam_debug(LOG_UI, "emit signal : %s", signame);
+                       edje_object_signal_emit(_EDJ(ad->focus_edje), signame, "program");
+               }
+       }
+#endif
+       return EINA_TRUE;
+}
+
+static int cam_app_state_manager(int previous, int current, gboolean by_asm)
+{
+       struct appdata *ad = NULL;
+       CamAppData *camapp = NULL;
+
+       cam_info(LOG_UI, "STATE_CHANGED : %d -> %d ", previous, current);
+
+       ad = (struct appdata *)cam_appdata_get();
+       cam_retv_if(ad == NULL, FALSE);
+
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+
+       ad->mm_state = current;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               if (current == CAMERA_STATE_PREVIEW) {
+                       if (previous == CAMERA_STATE_CAPTURING) {
+                               CAM_TA_ACUM_ITEM_END("    capture stop to preview", 0);
+                               CAM_TA_ACUM_ITEM_END("Total capture time", 0);
+                               cam_debug(LOG_MM, "capture end, preview start");
+                       }
+               }
+
+               if (previous == CAMERA_STATE_CREATED && current == CAMERA_STATE_PREVIEW) {
+                       cam_info(LOG_UI, "!!!!Preview Began");
+#ifndef        CAMERA_MACHINE_I686
+                       if (ad->toolbar_setting_popup == NULL) {
+                               if ((camapp->shooting_mode == CAM_SELF_MODE)
+                                       ||(camapp->recording_mode == CAM_RECORD_SELF)
+                                       ||(camapp->recording_mode == CAM_RECORD_SELF_MMS) ) {
+                                       DEBUG_TRACE("Not need to make setting menu");
+                               } else {
+                                       ecore_idler_add(cam_app_launch_after_preview_began, ad);
+                               }
+                       }
+#endif
+               }
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               if (((previous == RECORDER_STATE_RECORDING)
+                   && (current != RECORDER_STATE_PAUSED))
+                   ||((previous == RECORDER_STATE_PAUSED)
+                   && (current != RECORDER_STATE_RECORDING))) {/*finished recording*/
+
+                       cam_info(LOG_UI, "Set gamma NORMAL");
+                       CamIdlerItem *item = NULL;
+                       item = (CamIdlerItem *)g_malloc(sizeof(CamIdlerItem));
+                       if (item == NULL)
+                               return FALSE;
+
+
+                       if (camapp->filename)
+                               free(camapp->filename);
+                        cam_mm_get_filename(&camapp->filename,0);/*file size not used,so set to 0*/
+                        cam_info(LOG_UI, "Recorded file name [%s] ", camapp->filename);
+
+                       if (item) {
+                               item->data = (void*)ad;
+                               item->idler = ecore_idler_add(cam_video_capture_handle_idler, item);
+
+                               if (item->idler)
+                                       ad->capture_cb_list = g_list_append(ad->capture_cb_list, item->idler);
+
+                               cam_info(LOG_UI, "video capture idler add : %p ", item->idler);
+                       }
+
+               }
+
+               if (previous == RECORDER_STATE_CREATED && current == RECORDER_STATE_READY) {
+                       cam_info(LOG_UI, "!!!!Preview Began");
+#ifndef        CAMERA_MACHINE_I686
+                       if (ad->toolbar_setting_popup == NULL) {
+                               if ((camapp->shooting_mode == CAM_SELF_MODE)
+                                       ||(camapp->recording_mode == CAM_RECORD_SELF)
+                                       ||(camapp->recording_mode == CAM_RECORD_SELF_MMS) ) {
+                                       DEBUG_TRACE("Not need to make setting menu");
+                               } else {
+                                       ecore_idler_add(cam_app_launch_after_preview_began, ad);
+                               }
+                       }
+#endif
+               }
+       }
+       cam_app_focus_guide_update(ad);
+
+       if (ad->main_pipe) {
+               char *buffer = strdup("STATE_CHANGED");
+               ecore_pipe_write(ad->main_pipe, buffer, strlen(buffer) + 1);
+               free(buffer);
+       }
+
+       return 1;
+}
+
+gboolean cam_app_exit(void *data)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_app_stop(ad);
+       elm_exit();
+       return TRUE;
+;
+}
+
+static void cam_mmc_state_change_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int mmc_state = vconf_keynode_get_int(key);
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       cam_debug(LOG_SYS, " start");
+
+       if (mmc_state == VCONFKEY_SYSMAN_MMC_REMOVED
+           && camapp->storage == CAM_STORAGE_EXTERNAL) {
+#ifdef USE_CAM_STORAGE_SETTING
+               GValue value = { 0 };
+#endif
+               int mm_state = cam_mm_get_state();
+
+               if ((mm_state == RECORDER_STATE_RECORDING
+                   || mm_state == RECORDER_STATE_PAUSED)
+                   &&camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       cam_video_record_cancel(ad);
+                       cam_app_notice_popup(ad,
+                               _("IDS_CAM_POP_REMOVE_MMC_RECORDING"),
+                               cam_app_popup_response_cb);
+               }
+#ifndef        CAMERA_MACHINE_I686
+               else if (mm_state != CAMERA_STATE_CAPTURING
+                        &&camapp->camera_mode == CAM_CAMERA_MODE) {
+                       if (cam_app_check_blocking_popup()) {
+                               cam_app_notice_popup(ad,
+                                       _("IDS_CAM_POP_MEMORY_CARD_REMOVED"),
+                                       cam_app_popup_response_cb);
+                       }
+               }
+#endif
+
+#ifdef USE_CAM_STORAGE_SETTING
+               CAM_GVALUE_SET_INT(value, CAM_STORAGE_INTERNAL);
+               cam_handle_value_set(ad, PROP_STORAGE, &value);
+#endif
+               cam_info(LOG_UI, "MMC card is removed");
+       }
+       return;
+}
+
+#ifdef CAMAPP_SIG_HANDLING
+/**
+* This function registers a user space signal handler for the signal SIGSEGV (Signal #11)
+*
+* @return              nothing
+*/
+static void cam_app_register_sigsegv(void)
+{
+       debug_fenter(LOG_SYS);
+
+       /* cam_app_act.sa_flags = SA_SIGINFO | SA_NOCLDSTOP; */
+       cam_app_act.sa_flags = SA_SIGINFO;
+       cam_app_act.sa_handler = (void *)cam_app_sigsegv_handler;
+       sigemptyset(&cam_app_act.sa_mask);
+
+#ifdef ENABLE_CHECK_CAM_STATUS
+       sigaction(SIGALRM, &cam_app_act, &cam_app_act_old);     /* register an action with a previous action */
+#endif
+       sigaction(SIGABRT, &cam_app_act, &cam_app_act_old);
+       sigaction(SIGSEGV, &cam_app_act, &cam_app_act_old);
+       sigaction(SIGILL, &cam_app_act, &cam_app_act_old);
+
+       debug_fleave(LOG_SYS);
+}
+
+static void
+cam_app_sigsegv_handler(int signal_no, siginfo_t *info, void *context)
+{
+       debug_fenter(LOG_SYS);
+
+       cam_debug(LOG_SYS, "signal_no = %d", signal_no);
+
+       if (signal_no == SIGALRM) {     /* if alarm, check the camera status. */
+#ifdef ENABLE_CHECK_CAM_STATUS
+               cam_app_check_status();
+               alarm(CAM_CHECK_STATUS_INTERVAL_TIME);
+#endif
+               return;
+       } else {
+               sigaction(signal_no, &cam_app_act_old, NULL);   /*  register the previous action */
+               raise(signal_no);
+       }
+
+       debug_fleave(LOG_SYS);
+}
+
+#endif
+
+gboolean cam_app_black_screen_show(void *data, int mode)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       Evas_Coord witdh = 0, height = 0;
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_app_black_screen_show", 0);
+
+       cam_debug(LOG_UI, "~~~~~~~~~~~ mode :%d", mode);
+       if (ad->black_screen) {
+               evas_object_del(ad->black_screen);
+               ad->black_screen = NULL;
+       } else {
+               ad->black_screen =
+                   cam_app_load_edj(ad->win_main, CAM_MAIN_LAYOUT_EDJ_NAME,
+                                    "black_screen");
+               if (ad->black_screen == NULL) {
+                       cam_critical(LOG_UI, "black_screen load failed ");
+                       CAM_TA_ACUM_ITEM_END("      cam_app_black_screen_show",
+                                            0);
+                       return FALSE;
+               }
+       }
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &witdh, &height);
+       evas_object_resize(ad->black_screen, witdh, height);
+
+       evas_object_raise(ad->black_screen);
+       evas_object_show(ad->black_screen);
+       evas_object_show(ad->win_main);
+       evas_render(ad->evas);
+
+       CAM_TA_ACUM_ITEM_END("      cam_app_black_screen_show", 0);
+       return TRUE;
+}
+
+gboolean cam_app_black_screen_hide(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_app_black_screen_hide", 0);
+       if (ad->black_screen) {
+               evas_object_del(ad->black_screen);
+               ad->black_screen = NULL;
+               edje_file_cache_flush();
+       }
+/*      evas_render(ad->evas); */
+       CAM_TA_ACUM_ITEM_END("      cam_app_black_screen_hide", 0);
+       return TRUE;
+}
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+
+static void __cam_app_shutter_animation_finished(void *data, Evas_Object *obj,
+                                                const char *emission,
+                                                const char *source)
+{
+       cam_debug(LOG_MM, " __cam_app_shutter_animation_finished \n\n ");
+
+       struct appdata *ad = (struct appdata *)data;
+
+       DEL_EVAS_OBJECT(ad->shutter_screen);
+
+}
+
+static gboolean cam_app_shutter_screen_show(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       Evas_Coord witdh = 0, height = 0;
+
+       char *group_name = "shutter_image";
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_app_shutter_screen_show", 0);
+
+       if (ad->shutter_screen) {
+               evas_object_del(ad->shutter_screen);
+               ad->shutter_screen = NULL;
+       }
+
+       ad->shutter_screen =
+           cam_app_load_edj(ad->win_main, CAM_MAIN_LAYOUT_EDJ_NAME,
+                            group_name);
+       if (ad->shutter_screen == NULL) {
+               cam_critical(LOG_UI, "shutter_screen load failed ");
+               CAM_TA_ACUM_ITEM_END("      cam_app_shutter_screen_show", 0);
+               return FALSE;
+       }
+
+       evas_object_geometry_get(ad->win_main, NULL, NULL, &witdh, &height);
+       evas_object_resize(ad->shutter_screen, witdh, height);
+       /* evas_object_resize(ad->black_screen, ad->win_width, ad->win_height); */
+
+       /*evas_object_lower(ad->shutter_screen);*/
+       evas_object_show(ad->shutter_screen);
+       evas_object_show(ad->win_main);
+/*       evas_render(ad->evas); */
+
+       edje_object_signal_emit(_EDJ(ad->shutter_screen), "start_animation",
+                               "");
+
+       edje_object_signal_callback_add(_EDJ(ad->shutter_screen),
+                                       "animation_finish", "*",
+                                       __cam_app_shutter_animation_finished,
+                                       ad);
+
+/*      ecore_timer_add(0.1, cam_app_shutter_timer_cb, ad); */
+
+       CAM_TA_ACUM_ITEM_END("      cam_app_shutter_screen_show", 0);
+       return TRUE;
+}
+#endif
+#ifdef ENABLE_CHECK_CAM_STATUS
+
+static void cam_app_check_status()
+{
+       cam_debug(LOG_SYS, "check status");
+}
+#endif                         /* ENABLE_CHECK_CAM_STATUS */
+
+static int cam_app_preview_unlock(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retv_if(ad == NULL, FALSE);
+
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               cam_critical(LOG_UI, "handle is NULL");
+               elm_exit();
+       }
+
+       elm_win_indicator_mode_set(ad->win_main, 0);
+
+       return 0;
+}
+
+static int cam_app_preview_lock(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "handle is NULL");
+               elm_exit();
+       }
+
+       evas_object_hide(ad->timer_icon_edje);
+       REMOVE_TIMER(ad->timer_timer);
+       ad->timer_activated = false;
+       DEL_EVAS_OBJECT(ad->timer_icon_edje);
+       cam_app_timeout_checker_remove();
+       if(!cam_key_grab_deinit(ad))
+               DEBUG_TRACE("cam_key_grab_deinit fail");
+       cam_app_key_event_deinit(ad);
+
+       return 0;
+}
+
+static void cam_idle_lockstate_change_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int cam_state = -1;
+       int lock_state = vconf_keynode_get_int(key);
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       cam_debug(LOG_SYS, "#################IDLE LOCK state changed : %d",
+                 lock_state);
+       cam_state = cam_mm_get_state();
+
+       if (lock_state) {
+               DEBUG_TRACE(" ");
+               cam_app_preview_lock(ad);
+       } else if (!lock_state) {
+               DEBUG_TRACE(" ");
+               cam_app_preview_unlock(ad);
+       }
+       return;
+}
+
+static void cam_usb_state_change_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int usb_state = vconf_keynode_get_int(key);
+       int mm_state = cam_mm_get_state();
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       if (usb_state > VCONFKEY_SYSMAN_USB_DISCONNECTED
+           && (mm_state == RECORDER_STATE_RECORDING
+               || mm_state == RECORDER_STATE_PAUSED)
+               &&camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               camapp->rec_stop_type = CAM_REC_STOP_USB_CONN;
+               cam_video_record_stop(ad);
+       }
+       return;
+}
+
+#ifndef DISABLE_TOOLBAR_TOGGLE
+static Eina_Bool _cam_app_toolbar_toggle_timer(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       if (ad == NULL) {
+               goto exit_timer;
+       }
+       if (ad->mm_state != CAMERA_STATE_PREVIEW) {
+               goto exit_timer;
+       }
+
+       ad->toolbar_hided = TRUE;
+       cam_app_toggle_indicator(ad, TRUE);
+       cam_app_toggle_toolbar(ad, TRUE);
+
+ exit_timer:
+       if (ad->toolbar_toggle_timer)
+               ecore_timer_del(ad->toolbar_toggle_timer);
+       ad->toolbar_toggle_timer = NULL;
+       return EINA_FALSE;
+}
+#endif
+
+void cam_app_toggle_indicator(void *data, gboolean hide)
+{
+#ifndef DISABLE_INDICATOR
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       if (ad->toolbar_toggle_timer) {
+               REMOVE_TIMER(ad->toolbar_toggle_timer);
+       }
+
+       indicator_toggle(ad, hide);
+#endif
+       return;
+}
+
+void cam_app_toggle_toolbar(void *data, gboolean hide)
+{
+#ifndef DISABLE_TOOLBAR_TOGGLE
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       if (ad->toolbar_toggle_timer) {
+               REMOVE_TIMER(ad->toolbar_toggle_timer);
+       }
+
+       if (hide) {
+               /* toolbar_hide_all_popup(ad); */
+               unload_settings_edje(ad);
+               hide_toolbar_edje(ad);
+       } else {
+               show_toolbar_edje(ad);
+       }
+#endif
+       return;
+}
+
+static void
+cam_app_reset_settings_launch_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       Evas_Object *notify = (Evas_Object *)data;
+       GValue i_value = { 0, };
+       GValue b_value = { 0, };
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       CamAppData *camapp = NULL;
+
+       cam_debug(LOG_CAM, "!!!!!!!!!cam_app_reset_settings_launch_cb");
+
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, " cam_handle is NULL");
+
+       cam_popup_remove(notify);
+       hide_toolbar_edje(ad);
+
+       cam_mm_preview_stop(camapp->camera_mode);       /* stop preview */
+
+       g_value_init(&i_value, G_TYPE_INT);
+       g_value_init(&b_value, G_TYPE_BOOLEAN);
+
+       /* auto focus */
+
+       g_value_set_int(&i_value, AF_DEFAULT);
+       cam_handle_value_set(ad, PROP_AF_MODE, &i_value);
+
+       /* Timer */
+       g_value_set_int(&i_value, TIMER_DEFAULT);
+       cam_handle_value_set(ad, PROP_TIMER, &i_value);
+
+       /* Effect */
+       g_value_set_int(&i_value, EFFECT_DEFAULT);
+       cam_handle_value_set(ad, PROP_EFFECT, &i_value);
+
+       /* Image quality */
+       g_value_set_int(&i_value, QUALITY_DEFAULT);
+       cam_handle_value_set(ad, PROP_IMAGE_QUALITY, &i_value);
+
+       /* Video quality */
+       g_value_set_int(&i_value, QUALITY_DEFAULT);
+       cam_handle_value_set(ad, PROP_VIDEO_QUALITY, &i_value);
+
+       /* Guide Line */
+       g_value_set_boolean(&b_value, FALSE);
+       cam_handle_value_set(ad, PROP_GUIDELINE, &b_value);
+#ifdef GUIDE_LINE_ENALBE
+       settings_guideline_refresh(ad);
+#endif
+       /* Review */
+       g_value_set_boolean(&b_value, FALSE);
+       cam_handle_value_set(ad, PROP_REVIEW, &b_value);
+
+       /* shutter sound */
+       g_value_set_int(&i_value, SHUTTER_SOUND_DEFAULT);
+       cam_handle_value_set(ad, PROP_SHUTTER_SOUND, &i_value);
+
+       /* audio recording */
+       g_value_set_boolean(&b_value, TRUE);
+       cam_handle_value_set(ad, PROP_AUDIO_REC, &b_value);
+
+       /* storage */
+       g_value_set_int(&i_value, STORAGE_DEFAULT);
+       cam_handle_value_set(ad, PROP_STORAGE, &i_value);
+
+       /* Resolution */
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               g_value_set_int(&i_value, IMAGE_RESOLUTION_DEFAULT);
+       } else {
+               g_value_set_int(&i_value, REC_RESOLUTION_DEFAULT);
+       }
+
+       cam_handle_value_set(ad, PROP_RESOLUTION, &i_value);
+#ifndef DISABLE_INDICATOR
+       if (ad->indicator_edje) {
+               /* delete indicator */
+               evas_object_hide(ad->indicator_edje);
+               cam_indicator_destory(ad);
+       }
+       cam_indicator_create(ad);
+#endif
+       show_toolbar_edje(ad);
+       cam_app_preview_start(ad);
+}
+
+void cam_app_reset_settings(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_popup_question_add(ad->win_main,
+                              _("IDS_CAM_POP_RESET_CAMERA_SETTINGS"),
+                              dgettext("sys_string", "IDS_COM_SK_YES"),
+                              cam_app_reset_settings_launch_cb,
+                              dgettext("sys_string", "IDS_COM_SK_NO"),
+                              _popup_cancel_cb);
+
+}
+
+static gboolean __cam_toolbar_new_thumbnail_create(Evas_Object **obj,
+                                                       struct appdata *ad,
+                                                       Evas_Coord *thumbnail_x,
+                                                       Evas_Coord *thumbnail_y,
+                                                       Evas_Coord *thumbnail_w,
+                                                       Evas_Coord *thumbnail_h)
+{
+       cam_retv_if(ad == NULL, FALSE);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+       cam_retv_if(obj == NULL, FALSE);
+       cam_retv_if(ad->evas == NULL, FALSE);
+       cam_retv_if(ad->toolbar.quickview_item.edje == NULL, FALSE);
+
+       if(camapp->thumbnail_name == NULL) {
+               *obj = NULL;
+               return TRUE;
+       }
+       Evas_Object *new_thumbnail_img = elm_icon_add(ad->toolbar.quickview_item.edje);
+       Evas_Coord x = 0, y = 0, w = 0, h = 0;
+       Evas_Object *layout = NULL;
+       Evas_Object *thumbnail_area = NULL;
+
+       cam_retv_if(new_thumbnail_img == NULL, FALSE);
+       elm_icon_file_set(new_thumbnail_img, camapp->thumbnail_name, NULL);
+       elm_icon_aspect_fixed_set(new_thumbnail_img, EINA_FALSE);
+       elm_icon_resizable_set(new_thumbnail_img, EINA_TRUE, EINA_TRUE);
+
+       layout = elm_layout_edje_get(ad->toolbar.quickview_item.edje);
+       thumbnail_area = (Evas_Object *) edje_object_part_object_get(layout,"thumbnail_area");
+       cam_retv_if(thumbnail_area == NULL, FALSE);
+       evas_object_geometry_get(thumbnail_area, &x, &y, &w, &h);
+       *thumbnail_x = x;
+       *thumbnail_y = y;
+       *thumbnail_w = w;
+       *thumbnail_h = h;
+
+       evas_object_resize(new_thumbnail_img, 0, 0);
+       evas_object_move(new_thumbnail_img, x, y);
+       evas_object_show(new_thumbnail_img);
+       *obj = new_thumbnail_img;
+       return TRUE;
+}
+
+static void cam_app_pipe_handler(void *data, void *buffer, unsigned int nbyte)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (buffer) {
+               DEBUG_TRACE();
+               /* Caution */
+               /* DO NOT free buffer in here */
+               /* buffer is freed by ecore */
+
+               int main_pipe_type = *((int *)buffer);
+               DEBUG_TRACE("main_pipe_type %d", main_pipe_type);
+               switch (main_pipe_type) {
+               case CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL: {
+                               Evas_Object *new_thumbnail_image = NULL;
+                               Evas_Coord x = 0, y = 0, w = 0, h = 0;
+                               gboolean ret = FALSE;
+                               ret = __cam_toolbar_new_thumbnail_create(&new_thumbnail_image, ad, &x, &y, &w, &h);
+                               if (ret == FALSE || !new_thumbnail_image) {
+                                       if (!new_thumbnail_image && ret) {
+                                               DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);
+                                       }
+                                       return;
+                               }
+                               cam_ui_effect_utils_set_thumbnail_effect(new_thumbnail_image,
+                                                                       x,
+                                                                       y,
+                                                                       w,
+                                                                       h,
+                                                                       CAM_THUMBNAIL_ANTIMATION_EFFECT_DURATION);
+                       }
+                       break;
+               case CAM_MAIN_PIPE_OP_TYPE_ROTATE_ANIMATOR: {
+                               ad->is_rotating = TRUE;
+                               cam_ui_rotate_utils_rotate_start(ad, CAM_ROTATE_ICONS_ANTIMATION_DURATION);
+                       }
+                       break;
+               default:
+                       break;
+               }
+       }
+
+       return;
+}
+
+void cam_focus_edje_rotate(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       DEL_EVAS_OBJECT(ad->focus_edje);
+       ad->focus_edje = cam_app_load_edj(ad->layout_main, CAM_UTILS_EDJ_NAME, "focus_image");
+
+       cam_retm_if(ad->focus_edje == NULL, "focus_edje load failed");
+
+       evas_object_resize(ad->focus_edje, ad->camera_focus_w, ad->camera_focus_h);
+       evas_object_move(ad->focus_edje, ad->af_start_x, ad->af_start_y);
+       evas_object_show(ad->focus_edje);
+
+       cam_app_draw_af_box(ad);
+       cam_app_focus_guide_update(ad);
+}
+
+
+Eina_Bool cam_screen_rotate(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+       /*cam_app_get_preview_offset_coordinate(ad);*/
+
+       if (ad->focus_edje)
+               cam_focus_edje_rotate(ad);
+
+       if (ad->timer_icon_edje)
+               cam_app_timer_icon_rotate(ad);
+
+       if (ad->toolbar_edje)
+               cam_toolbar_rotate(ad);
+
+       if (ad->recording_edje)
+               cam_recording_rotate(ad);
+
+       if (ad->indicator_edje) {
+               cam_debug(LOG_CAM, "indicator_edje rotate start");
+               cam_indicator_rotate(ad);
+       }
+
+       if (ad->zoom_edje) {
+               unload_zoom_edje(ad);
+               load_zoom_edje(ad);
+       }
+
+#ifdef GUIDE_LINE_ENALBE
+       if (ad->guideline_edje)
+               settings_guideline_refresh(ad);
+#endif
+
+       /*update thumbnail*/
+       toolbar_update_quickview_thumbnail_no_animation(ad);
+       /* rotate menu */
+       if ((ad->show_menu == TRUE ) ||
+               (ad->show_menu == FALSE && ad->displayed_setting_popup != DISPLAY_NONE_POPUP )
+               || (ad->toolbar_show_edit_shortcuts_popup == TRUE)
+               || (ad->toolbar_show_setting_popup == TRUE)) {
+               /*ecore_idler_add(cam_show_setting_menu, ad);*/
+               /*note: use timer to delay creating the popup*/
+               ecore_timer_add(0.1, cam_show_setting_menu, ad);
+       } else {
+               ad->is_rotating = FALSE;
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static Ecore_Idler *rotate_delay_idler = NULL;
+Eina_Bool cam_app_screen_rotate_idler(void *data)
+{
+       if (rotate_delay_idler) {
+               ecore_idler_del(rotate_delay_idler);
+               rotate_delay_idler = NULL;
+       }
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, ECORE_CALLBACK_CANCEL);
+       if (ad->appcore_state == CAM_APPCORE_TERMINATE_STATE
+               || ad->appcore_state == CAM_APPCORE_PAUSE_STATE) {
+               ad->is_rotating = FALSE;
+               return ECORE_CALLBACK_CANCEL;
+       }
+       /*cam_toolbar_rotate(ad);*/
+       cam_screen_rotate(ad);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void cam_app_screen_rotate(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       if (ad->appcore_state == CAM_APPCORE_TERMINATE_STATE
+               || ad->appcore_state == CAM_APPCORE_PAUSE_STATE) {
+               ad->is_rotating = FALSE;
+               return;
+       }
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_ret_if(cam_handle == NULL);
+       DEBUG_TRACE("");
+
+       if (ad->toolbar_edje) {
+               rotate_delay_idler = ecore_idler_add(cam_app_screen_rotate_idler, data);
+
+       }
+       /*cam_app_get_preview_offset_coordinate(ad);*/
+}
+
+gboolean cam_app_get_resolution(int *width, int *height)
+{
+       cam_retv_if(width == NULL || height == NULL, FALSE);
+
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retvm_if(ad == NULL, FALSE, "ad is NULL");
+
+       if (ad != NULL) {
+               CamAppData *camapp = ad->camapp_handle;
+
+               if (camapp != NULL) {
+                       *width = CAM_RESOLUTION_W(camapp->resolution);
+                       *height = CAM_RESOLUTION_H(camapp->resolution);
+
+                       return TRUE;
+               }
+       }
+
+       return FALSE;
+}
+
+gboolean cam_app_reset_resolution(void *data, int width, int height)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int state = 0;
+       gboolean need_change_state = FALSE;
+       gboolean ret = TRUE;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp is NULL");
+
+       state = cam_mm_get_state();
+       if (state > CAMERA_STATE_CREATED)
+               need_change_state = TRUE;
+
+       cam_debug(LOG_MM,
+                 " reset resolution = [%d x %d], current state = [%d], need_change_state = [%d]",
+                 width, height, state, need_change_state);
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+#ifdef ZSL_5M_TEST
+               if (camapp->shooting_mode == CAM_SINGLE_MODE
+                   && (width * height == ZSL_5M_TEST))
+#else
+               if (0)          /*  camapp->shooting_mode == CAM_SINGLE_MODE  && (width*height <= ZSL_MAX_REL)) */
+#endif
+               {
+                       cam_info(LOG_MM, " set real resolution [%dx%d] for zsl",
+                                width, height);
+
+                       ret &= cam_mm_set_image_size(width, height);
+
+                       if (need_change_state) {
+                               ret &= cam_mm_preview_stop(camapp->camera_mode);
+                               ret &= cam_mm_unrealize();
+                               ret &= cam_mm_set_video_size(width, height);
+                               ret &= cam_mm_realize();
+                               ret &= cam_app_preview_start(ad);
+                       } else {
+                               ret &= cam_mm_set_video_size(width, height);
+                       }
+               } else {
+                       if (camapp->shooting_mode == CAM_SELF_MODE) {
+                               if (need_change_state) {
+                                       ret &= cam_mm_preview_stop(CAM_CAMERA_MODE);
+                                       ret &= cam_mm_set_image_size(width, height);
+                                       ret &= cam_mm_set_video_size(width, height);
+                                       ret &= cam_app_preview_start(ad);
+                               } else {
+                                       ret &= cam_mm_set_image_size(width, height);
+                                       ret &= cam_mm_set_video_size(width, height);
+                               }
+                       } else {
+                               int p_width = 0;        /* preview width */
+                               int p_height = 0;       /* preview height */
+
+                               ret &= cam_mm_get_video_size(&p_width, &p_height);
+                               DEBUG_TRACE("get video size [%d]x[%d]", p_width,
+                                           p_height);
+                                       if (p_height == camapp->default_preview_height && (p_width == camapp->default_preview_width || p_width == PREVIEW_WIDE_W)) {
+                                               /* assume that last mode is normal capture mode */
+                                               int cur_width = 0;
+                                               int cur_height = 0;
+                                               int temp_width = camapp->default_preview_width;
+                                               int temp_height = camapp->default_preview_height;
+                                               gboolean cur_is_wide = FALSE;
+                                               gboolean next_is_wide = FALSE;
+
+                                               ret &= cam_mm_get_image_size(&cur_width, &cur_height);
+                                               cur_is_wide = cam_utils_check_wide_resolution(cur_width, cur_height);
+                                               cam_debug(LOG_MM,
+                                                         "current image Resolution[w] : [%d]x[%d][%d]",
+                                                         cur_width, cur_height,
+                                                         cur_is_wide);
+
+                                               next_is_wide = cam_utils_check_wide_resolution(width, height);
+                                               cam_debug(LOG_MM,
+                                                         "next image Resolution[w] : [%d]x[%d][%d]",
+                                                         width, height, next_is_wide);
+
+                                               if (next_is_wide)
+                                                       temp_width = PREVIEW_WIDE_W;
+
+                                               ret &= cam_mm_set_image_size(width, height);
+
+                                               if ((cur_is_wide != next_is_wide)
+                                                   || (temp_width != p_width)) {
+                                                       if (need_change_state) {
+
+                                                               ret &= cam_mm_preview_stop(camapp->camera_mode);
+                                                               ret &= cam_mm_set_video_size(temp_width, temp_height);
+                                                               ret &= cam_app_preview_start(ad);
+                                                       } else {
+                                                               ret &= cam_mm_set_video_size(temp_width, temp_height);
+                                                       }
+                                               }
+                                       } else {
+                                               /* assume that last mode is zero system lag capture mode */
+                                               int temp_width = camapp->default_preview_width;
+                                               int temp_height = camapp->default_preview_height;
+#ifdef CAMERA_MACHINE_I686
+                                               temp_width = 320;
+                                               temp_height = 240;
+#endif
+                                               if (cam_utils_check_wide_resolution(width, height))
+                                                       temp_width = PREVIEW_WIDE_W;
+
+                                               ret &= cam_mm_set_image_size(width, height);
+
+                                               if (need_change_state) {
+                                                       ret &= cam_mm_preview_stop(camapp->camera_mode);
+                                                       ret &= cam_mm_set_video_size(temp_width, temp_height);
+                                                       ret &= cam_app_preview_start(ad);
+                                               } else {
+                                                       ret &=
+                                                           cam_mm_set_video_size(temp_width, temp_height);
+                                               }
+                                       }
+                       }
+               }
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               if (need_change_state) {
+                       ret &= cam_mm_preview_stop(CAM_CAMCORDER_MODE);
+                       ret &= cam_mm_set_video_size(width, height);
+                       ret &= cam_app_preview_start(ad);
+               } else {
+                               ret &= cam_mm_set_video_size(width, height);
+               }
+       } else {
+               return FALSE;
+       }
+       return ret;
+}
+
+int cam_app_get_aenc_bitrate(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int bitrate = 0;
+
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, 0, "camapp is NULL");
+
+       if ((camapp->recording_mode == CAM_RECORD_MMS) ||(camapp->recording_mode == CAM_RECORD_SELF_MMS)) {
+               bitrate = CAM_AUDIO_BITRATE_MMS;
+       } else {
+               bitrate = CAM_AUDIO_BITRATE_NORMAL;
+       }
+
+       return bitrate;
+}
+
+int cam_app_get_venc_bitrate(void *data, int quality)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int return_val = 0;
+
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, 0, "camapp is NULL");
+
+       if ((camapp->recording_mode == CAM_RECORD_MMS) ||(camapp->recording_mode == CAM_RECORD_SELF_MMS)) {
+               switch (quality) {
+               case CAM_QUALITY_HIGH:
+               case CAM_QUALITY_BEST:
+                       return_val = 64000;
+                       break;
+
+               case CAM_QUALITY_MEDIUM:
+                       return_val = 32000;
+                       break;
+
+               case CAM_QUALITY_LOW:
+                       return_val = 16000;
+                       break;
+
+               default:
+                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                       break;
+               }
+       } else {
+               switch (camapp->resolution) {
+               case CAM_RESOLUTION_FULLHD:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 8000000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 4000000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 2000000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+               case CAM_RESOLUTION_HD:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 10000000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 4000000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 2000000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               case CAM_RESOLUTION_WVGA:
+               case CAM_RESOLUTION_WVGA2:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 4000000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 2000000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 1000000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               case CAM_RESOLUTION_VGA:
+
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 3000000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 1500000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 500000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               case CAM_RESOLUTION_WQVGA:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 2000000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 1000000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 500000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               case CAM_RESOLUTION_QVGA:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 384000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 192000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 64000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               case CAM_RESOLUTION_QCIF:
+                       {
+                               switch (quality) {
+                               case CAM_QUALITY_HIGH:
+                               case CAM_QUALITY_BEST:
+                                       return_val = 384000;
+                                       break;
+
+                               case CAM_QUALITY_MEDIUM:
+                                       return_val = 192000;
+                                       break;
+
+                               case CAM_QUALITY_LOW:
+                                       return_val = 64000;
+                                       break;
+
+                               default:
+                                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                                       break;
+                               }
+                       }
+                       break;
+
+               default:
+                       cam_critical(LOG_MM, "INVALID QUAILTY");
+                       break;
+               }
+       }
+
+       cam_debug(LOG_MM, "videoenc bit rate = %d, current quilty = %d",
+                 return_val, quality);
+       return return_val;
+}
+
+gboolean cam_app_set_video_quality(void *data, int quality)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int v_bitrate = 0;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp is NULL");
+
+       v_bitrate = cam_app_get_venc_bitrate(ad, quality);
+       if (v_bitrate > 0) {
+               cam_mm_set_video_encoder_bitrate(v_bitrate);
+       } else {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+/*TODO:temporily define this*/
+#define AUDIO_FORMAT_PCM_S16_LE 2
+#define AUDIO_CODEC_VORBIS 36
+#define VIDEO_CODEC_THEORA 27
+
+gboolean cam_app_set_recording_mode(void *data, int mode)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       int video_codec = 0, audio_codec = 0, sample_rate = 0;
+       int format = AUDIO_FORMAT_PCM_S16_LE;
+       int channel = 0;
+       int a_bitrate = 0;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp is NULL");
+       DEBUG_TRACE("mode = %d" , mode);
+       if (mode == CAM_RECORD_MMS || mode == CAM_RECORD_SELF_MMS) {
+               DEBUG_TRACE("mode = %d" , mode);
+               video_codec = RECORDER_VIDEO_CODEC_H263;
+               audio_codec = RECORDER_AUDIO_CODEC_AMR;
+               sample_rate = 8000;
+               format = AUDIO_FORMAT_PCM_S16_LE;
+               channel = 1;
+       } else {
+               DEBUG_TRACE("mode = %d" , mode);
+               video_codec = RECORDER_VIDEO_CODEC_MPEG4;
+               audio_codec = RECORDER_AUDIO_CODEC_AAC;
+               sample_rate = 44100;
+               format = AUDIO_FORMAT_PCM_S16_LE;
+               channel = 2;
+       }
+#ifdef CAMERA_MACHINE_I686
+       video_codec = VIDEO_CODEC_THEORA;
+       audio_codec = AUDIO_CODEC_VORBIS;
+#endif
+
+       if (!cam_mm_set_codec(audio_codec, video_codec))
+               return FALSE;
+
+       if (!cam_mm_set_audio_source(sample_rate, format, channel))
+               return FALSE;
+
+       a_bitrate = cam_app_get_aenc_bitrate(ad);
+       if (a_bitrate > 0) {
+               cam_mm_set_audio_encoder_bitrate(a_bitrate);
+       } else {
+               return FALSE;
+       }
+
+       if (!cam_app_set_video_quality(ad, camapp->video_quality))
+               return FALSE;
+
+       return TRUE;
+}
+
+gboolean cam_app_set_size_limit(int max_val, int size_limit_type)
+{
+       int ret = 0;
+
+       switch (size_limit_type) {
+       case CAM_MM_SIZE_LIMIT_TYPE_BYTE:
+               ret = cam_mm_set_max_size(max_val);
+               if (!ret)
+                       return FALSE;
+               break;
+       case CAM_MM_SIZE_LIMIT_TYPE_SECOND:
+               ret = cam_mm_set_max_size(0);
+               if (!ret)
+                       return FALSE;
+               break;
+       default:
+               g_assert_not_reached();
+       }
+       return TRUE;
+}
+
+gboolean cam_app_init_attribute(void *data, CamMode mode)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       gboolean ret = TRUE;
+       int width = 0;
+       int height = 0;
+       int state = 0;
+       int rotate = CAMERA_ROTATION_270;
+       int camera_rotate = CAMERA_ROTATION_NONE;
+       int video_dev = 0;
+       int capture_video_format = -1;
+       #ifdef TODO_SURRPORT
+       int recording_video_format = -1;
+       #endif
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp is NULL");
+
+       state = cam_mm_get_state();
+
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               if (state != RECORDER_STATE_CREATED) {
+                       return FALSE;
+               }
+       } else if(camapp->camera_mode == CAM_CAMERA_MODE) {
+               if (state != CAMERA_STATE_CREATED) {
+                       return FALSE;
+               }
+       }
+
+       cam_mm_get_video_size( &camapp->default_preview_width, &camapp->default_preview_height);
+       DEBUG_TRACE("default_width = %d,default_height = %d", camapp->default_preview_width, camapp->default_preview_height);
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+               /* get proper resolution */
+               cam_mm_get_image_size(&width, &height);
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       camapp->resolution = CAM_RESOLUTION(width, height);
+               }
+       }
+       width = CAM_RESOLUTION_W(camapp->resolution);
+       height = CAM_RESOLUTION_H(camapp->resolution);
+
+#ifdef CAMERA_MACHINE_I686
+       width = 320;
+       height = 240;
+#endif
+
+       if (CAM_CAMERA_MODE == mode) {
+               ret &= cam_mm_set_image_size(width, height);
+               ret &= cam_mm_set_image_count(camapp->image_count);
+#ifdef CAMERA_MACHINE_I686
+               ret &= cam_mm_set_fps(CAMERA_ATTR_FPS_15);
+               ret &= cam_mm_set_video_source_format(CAMERA_PIXEL_FORMAT_I420);
+#else
+               ret &= cam_mm_set_fps(CAMERA_ATTR_FPS_AUTO);
+               ret &=
+                   cam_mm_get_video_source_format
+                   (NULL,
+                    &capture_video_format);
+               ret &= cam_mm_set_video_source_format(capture_video_format);
+#endif
+               ret &=
+                   cam_app_set_capture_format_shooting_mode
+                   (camapp->shooting_mode);
+
+       } else if (CAM_CAMCORDER_MODE == mode) {
+               ret &= cam_mm_set_video_profile();
+#ifdef CAMERA_MACHINE_I686
+               ret &= cam_mm_set_fps(CAMERA_ATTR_FPS_15);
+               ret &= cam_mm_set_video_source_format(CAMERA_PIXEL_FORMAT_I420);
+#else
+               ret &= cam_mm_set_fps(camapp->fps);
+               ret &= cam_mm_get_video_source_format(NULL, &recording_video_format);
+               ret &= cam_mm_set_video_source_format(recording_video_format);
+#endif
+               ret &= cam_mm_set_audio_recording(camapp->audio_recording);
+               ret &= cam_app_set_recording_mode(ad, camapp->recording_mode);
+               DEBUG_TRACE("camapp->size_limit = %d" , camapp->size_limit);
+               DEBUG_TRACE("camapp->size_limit_type = %d" , camapp->size_limit_type);
+               ret &= cam_app_set_size_limit(camapp->size_limit, camapp->size_limit_type);
+       } else {
+               return FALSE;
+       }
+       cam_mm_get_video_device(&video_dev);
+       DEBUG_TRACE("video_dev = %d",video_dev);
+       if (video_dev == CAM_DEVICE_VGA) {
+               int value;
+               cam_mm_get_front_cam_display_rotate_value(&value, &rotate);
+
+               DEBUG_TRACE("get front camera rotate %d value = %d", rotate, value);
+               /*rotate = value;*/
+               #ifdef TODO_SURRPORT
+               rotate = CAMERA_ROTATION_270;
+               #endif /*TODO:if new capi will released, this could be removed,but take care.*/
+
+       }
+       cam_mm_get_zoom_valid_intrange(&camapp->zoom_min,&camapp->zoom_max);
+       DEBUG_TRACE("Zoom range [%d - %d]",camapp->zoom_min, camapp->zoom_max);
+
+       ret &= cam_mm_set_display_device(CAMERA_DISPLAY_TYPE_X11, GET_DISPLAY(ad->main_xid));
+       ret &= cam_mm_set_camera_rotate(camera_rotate);
+       ret &= cam_mm_set_display_rotate(rotate);
+       ret &= cam_mm_set_display_geometry_method(CAMERA_DISPLAY_MODE_LETTER_BOX);
+#ifndef USE_CAMERA_APP_SHUTTER_SOUND
+       ret &= cam_mm_set_shutter_sound(TRUE);
+#endif
+       ret &= cam_app_reset_resolution(ad, width, height);
+       ret &= cam_mm_set_zoom(camapp->zoom_min);
+       ret &= cam_mm_set_effect(camapp->effect);
+       ret &= cam_mm_set_flash(camapp->flash);
+       if (camapp->af_mode == CAM_FOCUS_AUTO
+           || camapp->af_mode == CAM_FOCUS_MACRO) {
+               ret &= cam_mm_set_focus_mode(camapp->af_mode);
+       }
+
+       ret &= cam_mm_set_tag_enable(TRUE);
+
+       ad->enable_mode_change = TRUE;
+       ad->is_recording = FALSE;
+       return ret;
+
+}
+
+static gboolean cam_app_return_ext_app(void *data, const char *r_file_path)
+{
+       struct appdata *ad = (struct appdata *)data;
+       service_h reply;
+       service_create(&reply);
+
+       if (ad->aul_service_mime != NULL){
+               if(r_file_path == NULL){
+                       service_add_extra_data(reply, SERVICE_DATA_SELECTED, "exit");
+                       service_reply_to_launch_request(reply, ad->service_handle, SERVICE_RESULT_FAILED);
+               }else{
+                       service_add_extra_data(reply, SERVICE_DATA_SELECTED, r_file_path);
+                       service_reply_to_launch_request(reply, ad->service_handle, SERVICE_RESULT_SUCCEEDED);
+               }
+       }
+
+       service_destroy(reply);
+       return TRUE;
+
+}
+static void cam_app_battery_status_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       debug_fenter(LOG_UI);
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       int low_status = -1;
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &low_status)) {
+               cam_debug(LOG_UI, "battery status low = %d", low_status);
+               if (low_status <= VCONFKEY_SYSMAN_BAT_WARNING_LOW) {
+                       ad->battery_status = LOW_BATTERY_CRITICAL_STATUS;
+                       cam_app_notice_popup(ad,
+                               dgettext("sys_string", "IDS_COM_BODY_LOW_BATTERY"),
+                        cam_app_timeout_notice_response_cb);
+               } else {
+                       ad->battery_status = NORMAL_BATTERY_STATUS;
+               }
+       }
+
+       return;
+}
+/*if torch light vconf key value is changed, this cb is called*/
+static void cam_torchlight_update_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       int key_value = vconf_keynode_get_bool(key); /* -1: error, 1:True, 0:False */
+       if (key_value == -1) {
+               DEBUG_TRACE("vconf_keynode_get_bool failed");
+               return;
+       }
+       DEBUG_TRACE("VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT is changed to %d", key_value);
+       if (key_value) {
+               /* disable flash icon */
+               ad->torchlight_on = TRUE;
+
+       } else {
+               /* enable flash icon */
+               ad->torchlight_on = FALSE;
+       }
+       cam_toolbar_update(ad); /*update flash icon*/
+       return;
+}
+
+static void cam_app_battery_update_cb(keynode_t *key, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       char *keyname = NULL;
+
+       debug_fenter(LOG_UI);
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       keyname = vconf_keynode_get_name(key);
+
+       if (!strcmp(keyname, VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW)) {
+               GValue value = { 0 };
+               gint charging = vconf_keynode_get_int(key);
+               DEBUG_TRACE("charging = %d", charging);
+               CAM_GVALUE_SET_INT(value, charging);
+               cam_handle_value_set(ad, PROP_BATTERY_CHARG, &value);
+
+       } else if (!strcmp(keyname, VCONFKEY_SYSMAN_BATTERY_CAPACITY)) {
+               GValue value = { 0 };
+               int battery_level = vconf_keynode_get_int(key);
+               CAM_GVALUE_SET_INT(value, battery_level);
+               cam_handle_value_set(ad, PROP_BATTERY_LEVEL, &value);
+       }
+       return;
+}
+
+Evas_Object *cam_app_create_win(const char *name)
+{
+       Evas_Object *eo = NULL;
+       int w, h;
+#ifdef CAMERA_MACHINE_I686
+       ecore_evas_app_comp_sync_set(EINA_FALSE);
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+       ecore_evas_app_comp_sync_set(1);
+#else
+       eo = elm_win_add(NULL, name, ELM_WIN_BASIC);
+#endif
+       if (eo) {
+               elm_win_title_set(eo, name);
+               elm_win_borderless_set(eo, EINA_TRUE);
+               ecore_x_window_size_get(ecore_x_window_root_first_get(),
+                                       &w, &h);
+               evas_object_resize(eo, w, h);
+       }
+
+       return eo;
+}
+
+#if 0
+Evas_Object *cam_screen_load_edj(Evas_Object *parent, const char *file,
+                                const char *group)
+{
+       Evas_Object *eo;
+       int r;
+
+       eo = elm_layout_add(parent);
+       if (eo) {
+               r = elm_layout_file_set(eo, file, group);
+               if (!r) {
+                       evas_object_del(eo);
+                       return NULL;
+               }
+
+               evas_object_size_hint_weight_set(eo,
+                                                EVAS_HINT_EXPAND,
+                                                EVAS_HINT_EXPAND);
+
+               /*      //if(!strcmp((const char *)elm_widget_type_get(parent), "win")) { */
+               elm_win_resize_object_add(parent, eo);
+               /*      //} */
+       }
+
+       return eo;
+}
+#endif
+Evas_Object *cam_app_load_edj(Evas_Object *parent, const char *file,
+                             const char *group)
+{
+       Evas_Object *eo = NULL;
+       int r = 0;
+
+       eo = elm_layout_add(parent);
+       if (eo) {
+               r = elm_layout_file_set(eo, file, group);
+               if (!r) {
+                       evas_object_del(eo);
+                       return NULL;
+               }
+
+               evas_object_size_hint_weight_set(eo,
+                                                EVAS_HINT_EXPAND,
+                                                EVAS_HINT_EXPAND);
+
+               elm_win_resize_object_add(parent, eo);
+               evas_object_show(eo);
+       }
+
+       return eo;
+}
+
+void cam_app_update_ts(Evas_Object *parent, struct text_part *tp)
+{
+       int i;
+       int size = sizeof(tp) / sizeof(tp[0]);
+       Evas_Object *eo = elm_layout_edje_get(parent);
+
+       if (eo == NULL || tp == NULL || size < 0)
+               return;
+
+       for (i = 0; i < size; i++) {
+               if (tp[i].part && tp[i].msgid)
+                       edje_object_part_text_set(eo,
+                                                 tp[i].part, _(tp[i].msgid));
+       }
+}
+
+Eina_Bool __cam_app_update_thumbnail_idler(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) {
+               return ECORE_CALLBACK_CANCEL;
+       }
+       CamAppData *camapp = ad->camapp_handle;
+
+       if (!camapp) {
+               REMOVE_IDLER(ad->update_thumbnail_idler);
+               return ECORE_CALLBACK_CANCEL;
+       }
+
+       DEBUG_TRACE(" ");
+
+       if (!g_file_test(camapp->filename,G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               DEBUG_TRACE( "The captured File is not existed");
+               REMOVE_IDLER(ad->update_thumbnail_idler);
+               return ECORE_CALLBACK_CANCEL;;
+       }
+
+       gboolean ret = FALSE;
+
+       if (ad->imageviewer_ug) { /*review on */
+               DEBUG_TRACE("Image viewer was LAUNCHED. skip this...");
+               REMOVE_IDLER(ad->update_thumbnail_idler);
+               return ECORE_CALLBACK_CANCEL;;
+       }
+
+       if (camapp->thumbnail_name != NULL) {
+               free (camapp->thumbnail_name);
+               camapp->thumbnail_name = NULL;
+
+       }
+
+       ret = cam_file_get_cam_file_thumbnail_path(camapp->filename, &camapp->thumbnail_name);
+       DEBUG_TRACE("ret[0:success] = [%d] camapp->filename: [%s]",
+                 ret, camapp->filename);
+       DEBUG_TRACE("ret[0:success] = [%d] camapp->thumbnail_name: [%s]",
+                 ret, camapp->thumbnail_name);
+       if (!g_file_test(camapp->thumbnail_name, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+
+               if (g_thumbnail_image_check_count > 10) {
+                       REMOVE_IDLER(ad->update_thumbnail_idler);
+                       return ECORE_CALLBACK_CANCEL;
+               }
+
+               DEBUG_TRACE("The thumbnail File is not existed,try the %d nums", g_thumbnail_image_check_count);
+               g_thumbnail_image_check_count++;
+               usleep(THUMBNAIL_UPDATE_WAIT_TIME);
+               /*REMOVE_IDLER(ad->update_thumbnail_idler);*//*note:renew, do not delete idler*/
+               return ECORE_CALLBACK_RENEW;
+       }
+#ifndef ENABLE_CAPTURE_ANIMATION
+       else {
+               DEBUG_TRACE("thumbnail image check count=[%d]", g_thumbnail_image_check_count);
+               toolbar_update_quickview_thumbnail(ad);
+       }
+#else
+       else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               toolbar_update_quickview_thumbnail(ad);
+
+       } else {
+               DEBUG_TRACE("NOT REACHED CODES REACHED!");
+       }
+#endif
+       REMOVE_IDLER(ad->update_thumbnail_idler);
+       return ECORE_CALLBACK_CANCEL;
+}
+/* update thumbnail to quickview after first launching or return from image viewer */
+void cam_app_update_quickview_icon(void *data)
+{
+#ifdef CAMERA_MACHINE_I686
+               return;
+#else
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       cam_ret_if(ad->camapp_handle == NULL);
+       gchar *filename = NULL;
+
+       DEBUG_TRACE("");
+       /*To update quickview image, get last filename*/
+       filename = cam_app_get_last_filename();
+       if (ad->camapp_handle->filename) {
+               free(ad->camapp_handle->filename);
+               ad->camapp_handle->filename = NULL;
+       }
+       if (filename != NULL) {
+               if (ad->camapp_handle->filename) {
+                       free(ad->camapp_handle->filename);
+                       ad->camapp_handle->filename = NULL;
+               }
+               ad->camapp_handle->filename = strdup(filename);
+               free(filename);
+               filename = NULL;
+               if (ad->camapp_handle->thumbnail_name) {
+                       free(ad->camapp_handle->thumbnail_name);
+                       ad->camapp_handle->thumbnail_name = NULL;
+               }
+               /*update quickview area */
+               if      (cam_file_get_cam_file_thumbnail_path(ad->camapp_handle->filename,
+                                                               &ad->camapp_handle->thumbnail_name))
+                       toolbar_update_quickview_thumbnail_no_animation(ad);
+       }
+
+       return;
+#endif
+}
+
+void cam_app_update_thumbnail()
+{
+#ifdef CAMERA_MACHINE_I686
+       return;
+#else
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       DEBUG_TRACE("cam_app_update_thumbnail");
+
+       if (CAM_LAUNCHING_MODE_NORMAL == ad->launching_mode && camapp->filename) {
+               DEBUG_TRACE();
+               g_thumbnail_image_check_count = 0;
+               if (!ad->update_thumbnail_idler)
+                       ad->update_thumbnail_idler = ecore_idler_add(__cam_app_update_thumbnail_idler, ad);
+       }
+       return;
+#endif
+}
+
+gboolean cam_app_parse_args(CamExeArgs *args, service_h service)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retv_if(ad == NULL, FALSE);
+
+       ad->aul_service_mime = NULL;
+
+       int ret = service_get_mime(service, &ad->aul_service_mime);
+       if (ret != SERVICE_ERROR_NONE)
+       {
+               cam_debug(LOG_UI, "service_get_mime is error ");
+               return FALSE;
+       }
+
+       if(ad->aul_service_mime != NULL){
+               /* get mode */
+               if(strcmp(ad->aul_service_mime, AUL_SERVICE_MIME_TYPE_IMAGE) == 0){
+                       cam_debug(LOG_UI, "CAM_CAMERA_MODE");
+                       args->cam_mode = CAM_CAMERA_MODE;
+               }else if(strcmp(ad->aul_service_mime, AUL_SERVICE_MIME_TYPE_VIDEO) == 0){
+                       cam_debug(LOG_UI, "CAM_CAMCORDER_MODE");
+                       args->cam_mode = CAM_CAMCORDER_MODE;
+               }
+       }
+
+       const char *val = NULL;
+       /* get caller appl. */
+       service_get_extra_data(service, "CALLER", (char **)&val);
+       if (val) {
+               cam_debug(LOG_UI, "CALLER %s", val);
+               args->caller = strdup(val);
+       } else {
+               args->caller = NULL;
+       }
+
+       /* resolution */
+       val = NULL;
+       service_get_extra_data(service, "RESOLUTION", (char **)&val);
+       if (val) {
+               cam_debug(LOG_UI, "RESOLUTION %s", val);
+
+               int res = 0;
+
+               if (args->cam_mode == CAM_CAMERA_MODE) {
+                       if (0 == strcmp(val, CAM_CAPTURE_RES_BIG))
+                               res = CAM_RESOLUTION_3264x2448;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_BIG_WIDE))
+                               res = CAM_RESOLUTION_3264x1836;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_MIDDLE))
+                               res = CAM_RESOLUTION_2560x1920;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_MIDDLE_WIDE))
+                               res = CAM_RESOLUTION_2560x1536;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_SMALL))
+                               res = CAM_RESOLUTION_2560x1920;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_SMALL_WIDE))
+                               res = CAM_RESOLUTION_1280x720;
+                       else if (0 == strcmp(val, CAM_CAPTURE_RES_VGA))
+                               res = CAM_RESOLUTION_VGA;
+                       else
+                               res = CAM_RESOLUTION_3264x2448;
+               } else {
+                       if (0 == strcmp(val, CAM_RECORDING_RES_HD))
+                               res = CAM_RESOLUTION_HD;
+                       else if (0 == strcmp(val, CAM_RECORDING_RES_VGA))
+                               res = CAM_RESOLUTION_VGA;
+                       else if (0 == strcmp(val, CAM_RECORDING_RES_QCIF))
+                               res = CAM_RESOLUTION_QCIF;
+                       else
+                               res = CAM_RESOLUTION_VGA;
+               }
+
+               args->width = CAM_RESOLUTION_W(res);
+               args->height = CAM_RESOLUTION_H(res);
+               args->resolution = res;
+       }
+
+       /* size limit */
+       val = NULL;
+       service_get_extra_data(service, "LIMIT", (char **)&val);
+       if (val) {
+               cam_debug(LOG_UI, "LIMIT %s", val);
+               args->size_limit = atoi(val);
+       } else {
+               args->size_limit = 0;
+       }
+
+       /* review */
+       val = NULL;
+       service_get_extra_data(service, "REVIEW", (char **)&val);
+       if (val) {
+               if (0 == strcmp(val, "TRUE"))
+                       args->review = TRUE;
+               else
+                       args->review = FALSE;
+       } else {
+               args->review = FALSE;
+       }
+
+       /*  print exe args */
+       cam_debug(LOG_SYS, "############### exe args ###############");
+       cam_debug(LOG_SYS, "mode =%d", args->cam_mode);
+       cam_debug(LOG_SYS, "caller =%s", args->caller);
+       cam_debug(LOG_SYS, "width =%d", args->width);
+       cam_debug(LOG_SYS, "height =%d", args->height);
+       cam_debug(LOG_SYS, "limit =%d", args->size_limit);
+       cam_debug(LOG_SYS, "review =%d", args->review);
+       cam_debug(LOG_SYS, "############### end ###############");
+
+       return TRUE;
+}
+
+
+void cam_app_draw_af_box(void *data)
+{
+
+       cam_retm_if(data == NULL, "data is null");
+       struct appdata *ad = (struct appdata *)data;
+       ad->af_start_x = 0;
+       ad->af_start_y = 0;
+
+       switch (ad->rot_current) {
+       case APP_DEVICE_ORIENTATION_0:
+               {
+                       ad->af_start_x = ad->touch_lcd_x;
+                       ad->af_start_y = ad->touch_lcd_y;
+               }
+               break;
+       case APP_DEVICE_ORIENTATION_180:
+               {
+                       ad->af_start_x = ad->win_height - ad->touch_lcd_x;
+                       ad->af_start_y = ad->win_width - ad->touch_lcd_y;
+               }
+               break;
+       case APP_DEVICE_ORIENTATION_270:
+               {
+                       ad->af_start_x = ad->touch_lcd_y;
+                       ad->af_start_y = ad->win_height - ad->touch_lcd_x;
+               }
+               break;
+       case APP_DEVICE_ORIENTATION_90:
+               {
+                       ad->af_start_x = ad->win_width - ad->touch_lcd_y;
+                       ad->af_start_y = ad->touch_lcd_x;
+               }
+               break;
+       default:
+               break;
+       }
+
+       /* adjust */
+       DEBUG_TRACE("ad->af_start_x=%f, ad->af_start_y=%f", ad->af_start_x,
+                   ad->af_start_y);
+       ad->camera_focus_w = CAMERA_FOCUS_W * elm_config_scale_get();
+       ad->camera_focus_h = CAMERA_FOCUS_H * elm_config_scale_get();
+       DEBUG_TRACE("ad->camera_focus_w=%f, ad->camera_focus_h=%f",
+                   ad->camera_focus_w, ad->camera_focus_h);
+
+       ad->af_start_x = ad->af_start_x - (ad->camera_focus_w / 2);
+       ad->af_start_y = ad->af_start_y - (ad->camera_focus_h / 2);
+       DEBUG_TRACE("af area box start x,y =[%f,%f]\n", ad->af_start_x,
+                   ad->af_start_y);
+
+       if (ad->rot_current == APP_DEVICE_ORIENTATION_270
+           || ad->rot_current == APP_DEVICE_ORIENTATION_90) {
+               if (ad->af_start_x < ad->preview_offset_x) {
+                       ad->af_start_x = ad->preview_offset_x;
+               }
+               if (ad->af_start_y < ad->preview_offset_y) {
+                       ad->af_start_y = ad->preview_offset_y;
+               }
+               if ((ad->af_start_x + ad->camera_focus_w) >
+                   (ad->preview_w + ad->preview_offset_x)) {
+                       ad->af_start_x =
+                           (ad->preview_w + ad->preview_offset_x) -
+                           ad->camera_focus_w;
+               }
+               if ((ad->af_start_y + ad->camera_focus_h) >
+                   (ad->preview_h + ad->preview_offset_y)) {
+                       ad->af_start_y =
+                           (ad->preview_h + ad->preview_offset_y) -
+                           ad->camera_focus_h;
+               }
+
+       } else {
+               if (ad->af_start_y < ad->preview_offset_x) {
+                       ad->af_start_y = ad->preview_offset_x;
+               }
+               if (ad->af_start_x < ad->preview_offset_y) {
+                       ad->af_start_x = ad->preview_offset_y;
+               }
+               if ((ad->af_start_y + ad->camera_focus_h) >
+                   (ad->preview_w + ad->preview_offset_x)) {
+                       ad->af_start_y =
+                           (ad->preview_w + ad->preview_offset_x) -
+                           ad->camera_focus_h;
+               }
+               if ((ad->af_start_x + ad->camera_focus_w) >
+                   (ad->preview_h + ad->preview_offset_y)) {
+                       ad->af_start_x =
+                           (ad->preview_h + ad->preview_offset_y) -
+                           ad->camera_focus_w;
+               }
+       }
+       if (ad->focus_edje) {
+               DEBUG_TRACE
+                   ("####################################################");
+               DEBUG_TRACE("af area start ,ad->af_start_x,y =[%f,%f]\n",
+                           ad->af_start_x, ad->af_start_y);
+               DEBUG_TRACE
+                   ("####################################################");
+               evas_object_move(ad->focus_edje, ad->af_start_x,
+                                ad->af_start_y);
+               DEBUG_TRACE(" MOVE FOCUS_EDJE : %f,%f", ad->af_start_x,
+                           ad->af_start_y);
+       }
+
+}
+
+
+/*  get preview start x,y coordinate */
+void cam_app_get_preview_offset_coordinate(void *data)
+{
+
+       cam_retm_if(data == NULL, "data is null");
+       struct appdata *ad = (struct appdata *)data;
+
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is null");
+
+       int width = 0;
+       int height = 0;
+       CamVideoRectangle result;       /* result ractangle */
+       CamVideoRectangle window;       /* target window ractangle */
+       CamVideoRectangle preview;      /* target preview rectangle */
+       /*wow,now, the MMHandleType is not created*/
+       cam_mm_get_video_size(&width, &height);
+
+       ad->camfw_video_width = width;
+       ad->camfw_video_height = height;
+       preview.w = width;
+       preview.h = height;
+       DEBUG_TRACE("************************************************");
+       DEBUG_TRACE("preview.w =%d, preview.h=%d", preview.w, preview.h);
+
+       window.h = ad->win_height;
+       window.w = ad->win_width;
+       DEBUG_TRACE("window.w =%d, window.h=%d\n", window.w, window.h);
+       DEBUG_TRACE("************************************************");
+       cam_app_preview_start_coordinate(preview, window, &result);
+
+       ad->preview_offset_x = result.x;
+       ad->preview_offset_y = result.y;
+       ad->preview_w = result.w;
+       ad->preview_h = result.h;
+
+       DEBUG_TRACE("************************************************");
+       DEBUG_TRACE("ad->preview_offset_x = %d, ad->preview_offset_y = %d",
+                   ad->preview_offset_x, ad->preview_offset_y);
+       DEBUG_TRACE("*************************************************");
+
+       camapp->focus_state = CAM_FOCUS_STATUS_RELEASED;
+       cam_app_focus_guide_update(ad);
+
+       /* init */
+       ad->af_x = (ad->win_width / 2) - ad->preview_offset_x;
+       ad->af_y = (ad->win_height / 2) - ad->preview_offset_y;
+
+       ad->af_x = (ad->af_x * ad->camfw_video_width) / ad->preview_w;
+       ad->af_y = (ad->af_y * ad->camfw_video_height) / ad->preview_h;
+       /* init */
+       ad->touch_lcd_x = (ad->win_height / 2);
+       ad->touch_lcd_y = (ad->win_width / 2);
+
+       DEBUG_TRACE("*************************************************");
+       DEBUG_TRACE(" ad->af_x=%d, ad->af_y=%d", ad->af_x, ad->af_y);
+       DEBUG_TRACE(" ad->af_start_x=%d, ad->af_start_y=%d", ad->af_start_x, ad->af_start_y);
+       DEBUG_TRACE(" ad->touch_lcd_x=%d, ad->touch_lcd_y=%d", ad->touch_lcd_x,
+                   ad->touch_lcd_y);
+       DEBUG_TRACE("*************************************************");
+
+       cam_app_draw_af_box(ad);
+       camapp->focus_mode = CAM_FOCUS_MODE_CONTINUOUS;
+
+       if (ad->focus_edje)
+               evas_object_show(ad->focus_edje);
+}
+
+void cam_app_preview_start_coordinate(CamVideoRectangle src,
+                                     CamVideoRectangle dst,
+                                     CamVideoRectangle *result)
+{
+       /* src is target preview rectangle */
+       /* dst is target window rectangle */
+       g_return_if_fail(result != NULL);
+       gdouble src_ratio, dst_ratio;
+       src_ratio = (gdouble) src.w / src.h;
+       dst_ratio = (gdouble) dst.w / dst.h;
+       if (src_ratio > dst_ratio) {
+               DEBUG_TRACE("#### case 1\n");
+               result->w = dst.w;
+               result->h = dst.w / src_ratio;
+               result->x = 0;
+               result->y = (dst.h - result->h) / 2;
+       } else if (src_ratio < dst_ratio) {
+               DEBUG_TRACE("#### case 2\n");
+               result->w = dst.h * src_ratio;
+               result->h = dst.h;
+               result->x = (dst.w - result->w) / 2;
+               result->y = 0;
+       } else {
+               DEBUG_TRACE("#### case 3\n");
+               result->x = 0;
+               result->y = 0;
+               result->w = dst.w;
+               result->h = dst.h;
+       }
+       DEBUG_TRACE
+           ("************************************************************");
+       DEBUG_TRACE
+           ("source is %dx%d dest is %dx%d, result window size is %dx%d result offset x= %dx y=%d",
+            src.w, src.h, dst.w, dst.h, result->w, result->h, result->x,
+            result->y);
+       DEBUG_TRACE
+           ("************************************************************");
+}
+
+
+void cam_remove_tmp_file()
+{
+       const gchar *default_path = NULL;
+       char tmpfile_name[256] = { 0 };
+
+       default_path = cam_file_get_internal_video_path();
+       DEBUG_TRACE(" video = %s", default_path);
+       snprintf(tmpfile_name, sizeof(tmpfile_name), "%s%s", default_path,
+                TMPFILE_PREFIX);
+       if (g_file_test(tmpfile_name, G_FILE_TEST_EXISTS)) {
+               DEBUG_TRACE("REMOVE tmp file");
+               unlink(tmpfile_name);
+       }
+       default_path = cam_file_get_external_video_path();
+       DEBUG_TRACE(" video = %s", default_path);
+       snprintf(tmpfile_name, sizeof(tmpfile_name), "%s%s", default_path,
+                TMPFILE_PREFIX);
+
+       if (g_file_test(tmpfile_name, G_FILE_TEST_EXISTS)) {
+               DEBUG_TRACE("REMOVE tmp file");
+               unlink(tmpfile_name);
+       }
+
+}
+
+Eina_Bool cam_app_launch_after_preview_began(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       cam_debug(LOG_UI, "cam_app_launch_after_preview_began");
+
+       int state = cam_mm_get_state();
+
+       if (state != RECORDER_STATE_RECORDING) {
+               cam_debug(LOG_UI, "remove previous file");
+               cam_remove_tmp_file();
+       }
+
+       cam_app_get_preview_offset_coordinate(data);
+       cam_toolbar_setting_popup_create(data);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+void cam_utils_remove_idler_all(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       GList *list = NULL;
+       Ecore_Idler *idler = NULL;
+
+       debug_fenter(LOG_UI);
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       /*LOCK
+          In fact, a Lock is needed here. However, because all related functions are working main loop, practically it may not be needed. */
+
+       if (!ad->capture_cb_list) {
+               cam_debug(LOG_UI, "No idler is remained.");
+       } else {
+               list = ad->capture_cb_list;
+
+               while (list) {
+                       idler = list->data;
+
+                       if (!idler) {
+                               cam_warning(LOG_UI,
+                                           "Fail to remove idler. The idler is NULL");
+                       } else {
+                               cam_debug(LOG_UI, "Remove idler[%p].", idler);
+                               ecore_idler_del(idler);
+
+                               ad->capture_cb_list =
+                                   g_list_remove(ad->capture_cb_list, idler);
+                       }
+
+                       list = g_list_next(list);
+               }
+
+               g_list_free(ad->capture_cb_list);
+               ad->capture_cb_list = NULL;
+       }
+
+       /* UNLOCK */
+       debug_fleave(LOG_UI);
+       return;
+}
+
+Eina_Bool cam_elm_cache_flush()
+{
+/*Make the canvas discard as much data as possible used by the engine at runtime.*/
+       DEBUG_TRACE("start");
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       if (ad) {
+               if (ad->evas) {
+                       evas_render_idle_flush(ad->evas);
+               }
+       }
+       elm_cache_all_flush();
+       DEBUG_TRACE("end");
+       return EINA_TRUE;
+}
+
+gboolean cam_condition_check_to_start_camera(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, EINA_FALSE, "appdata is NULL");
+
+       /* check battery */
+       if (cam_utils_check_battery_critical_low()) {
+               ad->battery_status = LOW_BATTERY_CRITICAL_STATUS;
+               cam_app_notice_popup(ad, dgettext("sys_string", "IDS_COM_BODY_LOW_BATTERY"), cam_app_timeout_notice_response_cb);
+
+               return EINA_FALSE;
+       } else if (cam_utils_check_battery_warning_low()) {
+               ad->battery_status = LOW_BATTERY_WARNING_STATUS;
+       } else {
+               ad->battery_status = NORMAL_BATTERY_STATUS;
+       }
+
+       return EINA_TRUE;
+}
+//end file
diff --git a/src/cam_config.c b/src/cam_config.c
new file mode 100644 (file)
index 0000000..edef61e
--- /dev/null
@@ -0,0 +1,360 @@
+/*
+ * 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 <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+/*
+#define DEBUG_CONFIG
+#include "cam.h"
+#include "cam_error.h"
+*/
+#include "cam_debug.h"
+#include "cam_config.h"
+static gchar **g_group_name = NULL;    /*  config information group name for save */
+static GKeyFile *g_key_file = NULL;
+static gboolean disable_set_mode = FALSE;      /* if disable_set_mode is true unable to set setmode use for scene mode and ncr case ... */
+gboolean cam_config_set_group_name(CamConfigType config_type,
+                                  const gchar *set_group_name)
+{
+       g_return_val_if_fail(set_group_name, FALSE);
+       g_return_val_if_fail(g_group_name, FALSE);/*fix crash*/
+       if (g_group_name[config_type]) {
+               g_free(g_group_name[config_type]);
+               g_group_name[config_type] = NULL;
+       }
+       g_group_name[config_type] = g_strdup(set_group_name);
+       return TRUE;
+}
+
+gboolean cam_config_init(GError **error)
+{
+       GError *err = NULL;
+       debug_fenter(LOG_CONFIG);
+       if (!g_group_name) {
+               g_group_name = g_new0(gchar *, CAM_CONFIG_MAX);
+               cam_config_set_group_name(CAM_CONFIG_TYPE_COMMON, "common");
+       }
+       if (g_key_file) {
+               warn_msg(LOG_UI, "already initialized.");
+               return TRUE;
+       }
+       g_key_file = g_key_file_new();
+       if (!g_key_file_load_from_file
+           (g_key_file, CONFIG_PATH, G_KEY_FILE_NONE, &err)) {
+               if (err != NULL) {
+                       warn_msg(LOG_UI, "config file not exists. %s",
+                                err->message);
+                       g_error_free(err);
+                       err = NULL;
+               }
+       }
+       if (err != NULL) {
+               g_error_free(err);
+               err = NULL;
+       }
+       debug_fleave(LOG_UI);
+       return TRUE;
+}
+
+void cam_config_finalize(void)
+{
+       debug_fenter(LOG_UI);
+       cam_config_save();
+       if (g_group_name) {
+               int i;
+               for (i = 0; i < CAM_CONFIG_MAX; i++) {
+                       if (g_group_name[i]) {
+                               g_free(g_group_name[i]);
+                               g_group_name[i] = NULL;
+                       }
+               }
+               g_free(g_group_name);
+               g_group_name = NULL;
+       }
+       if (g_key_file) {
+               g_key_file_free(g_key_file);
+               g_key_file = NULL;
+       }
+       debug_fleave(LOG_UI);
+}
+
+void cam_config_save(void)
+{
+       debug_fenter(LOG_UI);
+       if (g_key_file != NULL) {
+               GError *err = NULL;
+               gchar *buf = NULL;
+               gsize len = 0;
+               buf = g_key_file_to_data(g_key_file, &len, &err);
+               if (buf) {
+                       if (err) {
+                               debug_msg(LOG_UI, "%s", err->message);
+                               g_error_free(err);
+                               err = NULL;
+                       } else {
+#if 1
+                               FILE *fp = fopen(CONFIG_PATH, "w");
+                               if (fp != NULL) {
+                                       if (fwrite
+                                           ((const void *)buf, len, 1,
+                                            fp) != 1) {
+                                            /**fwrite return count(unsigned int) if write correct.
+                                               the-return-value is always >=0*/
+                                               critical_msg(LOG_CONFIG,
+                                                            "fwrite failed");
+                                       } else {
+                                               cam_debug(LOG_CONFIG,
+                                                         "save success");
+                                       }
+                                       fclose(fp);
+                               } else {
+                                       critical_msg(LOG_CONFIG,
+                                                    "fopen failed");
+                               }
+
+#else
+                               g_file_set_contents(CONFIG_PATH,
+                                                   (const gchar *)buf, len,
+                                                   &err);
+                               if (err) {
+                                       critical_msg(LOG_CONFIG, "%s",
+                                                    err->message);
+                                       g_error_free(err);
+                                       err = NULL;
+                               }
+#endif
+                       }
+                       g_free(buf);
+               }
+               if (err != NULL) {
+                       g_error_free(err);
+                       err = NULL;
+               }
+       }
+}
+
+void cam_config_set_control(gboolean enable)
+{
+       cam_debug(LOG_UI, "%d ", enable);
+       disable_set_mode = !enable;
+}
+
+void cam_config_set_int(const gchar *key, int nval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               /* cam_warning(LOG_UI," disable_set_mode is true "); */
+               return;
+       }
+       cam_config_set_int_by_type(CAM_CONFIG_TYPE_PREVIEW, key, nval);
+       return;
+}
+
+void cam_config_set_string(const gchar *key, const gchar *strval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               cam_warning(LOG_UI, " disable_set_mode is true ");
+               return;
+       }
+       cam_config_set_string_by_type(CAM_CONFIG_TYPE_PREVIEW, key, strval);
+       return;
+}
+
+void cam_config_set_boolean(const gchar *key, gboolean bval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               cam_warning(LOG_UI, " disable_set_mode is true ");
+               return;
+       }
+#ifdef DEBUG_CONFIG
+       debug_msg(LOG_UI, "%s", bval ? "TRUE" : "FALSE");
+
+#endif                         /* \r */
+       cam_config_set_boolean_by_type(CAM_CONFIG_TYPE_PREVIEW, key, bval);
+       return;
+}
+
+int cam_config_get_int(const gchar *key, int default_value)
+{
+       g_return_val_if_fail(g_key_file, -1);
+       g_return_val_if_fail(g_group_name, -1);
+       g_return_val_if_fail(key, -1);
+       return cam_config_get_int_by_type(CAM_CONFIG_TYPE_PREVIEW, key,
+                                         default_value);
+}
+
+gchar *cam_config_get_string(const gchar *key, const gchar *default_value)
+{
+       g_return_val_if_fail(g_key_file, NULL);
+       g_return_val_if_fail(g_group_name, NULL);
+       g_return_val_if_fail(key, NULL);
+       return cam_config_get_string_by_type(CAM_CONFIG_TYPE_PREVIEW, key,
+                                            default_value);
+}
+
+gboolean cam_config_get_boolean(const gchar *key, gboolean default_value)
+{
+       g_return_val_if_fail(g_key_file, FALSE);
+       g_return_val_if_fail(g_group_name, FALSE);
+       g_return_val_if_fail(key, FALSE);
+       return cam_config_get_boolean_by_type(CAM_CONFIG_TYPE_PREVIEW, key,
+                                             default_value);
+}
+
+void cam_config_set_int_by_type(CamConfigType config_type, const gchar *key,
+                               int nval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(g_group_name[config_type]);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               /* cam_warning(LOG_UI," disable_set_mode is true "); */
+               return;
+       }
+#ifdef DEBUG_CONFIG
+       debug_msg(LOG_UI, "%s,%s,%d", g_group_name[config_type], key, nval);
+
+#endif                         /* \r */
+       g_key_file_set_integer(g_key_file, g_group_name[config_type], key,
+                              nval);
+}
+
+void cam_config_set_string_by_type(CamConfigType config_type, const gchar *key,
+                                  const gchar *strval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(g_group_name[config_type]);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               cam_warning(LOG_UI, " disable_set_mode is true ");
+               return;
+       }
+#ifdef DEBUG_CONFIG
+       debug_msg(LOG_UI, "%s", strval);
+
+#endif                         /* \r */
+       g_key_file_set_string(g_key_file, g_group_name[config_type], key,
+                             strval);
+}
+
+void cam_config_set_boolean_by_type(CamConfigType config_type, const gchar *key,
+                                   gboolean bval)
+{
+       g_return_if_fail(g_key_file);
+       g_return_if_fail(g_group_name);
+       g_return_if_fail(g_group_name[config_type]);
+       g_return_if_fail(key);
+       if (disable_set_mode) {
+               cam_warning(LOG_UI, " disable_set_mode is true ");
+               return;
+       }
+#ifdef DEBUG_CONFIG
+       debug_msg(LOG_UI, "%s", bval ? "TRUE" : "FALSE");
+
+#endif                         /* \r */
+       g_key_file_set_boolean(g_key_file, g_group_name[config_type], key,
+                              bval);
+}
+
+int cam_config_get_int_by_type(CamConfigType config_type, const gchar *key,
+                              int default_value)
+{
+       g_return_val_if_fail(g_key_file, -1);
+       g_return_val_if_fail(g_group_name, -1);
+       g_return_val_if_fail(g_group_name[config_type], -1);
+       g_return_val_if_fail(key, -1);
+       GError *error = NULL;
+       gint nval =
+           g_key_file_get_integer(g_key_file, g_group_name[config_type], key,
+                                  &error);
+       if (error) {
+
+/*
+               if (error->code != G_KEY_FILE_ERROR_KEY_NOT_FOUND)
+                       critical_msg("error:%s", error->message);
+*/
+               cam_config_set_int_by_type(config_type, key, default_value);
+               g_error_free(error);
+               error = NULL;
+               DEBUG_TRACE("-------- key[%s], value[%d]", key, default_value);
+               return default_value;
+       } else {
+               DEBUG_TRACE("-------- key[%s], value[%d]", key, nval);
+               return nval;
+       }
+}
+
+gchar *cam_config_get_string_by_type(CamConfigType config_type,
+                                    const gchar *key,
+                                    const gchar *default_value)
+{
+       g_return_val_if_fail(g_key_file, NULL);
+       g_return_val_if_fail(g_group_name, NULL);
+       g_return_val_if_fail(g_group_name[config_type], NULL);
+       g_return_val_if_fail(key, NULL);
+       GError *error = NULL;
+       const gchar *strval =
+           g_key_file_get_string(g_key_file, g_group_name[config_type], key,
+                                 &error);
+       if (error) {
+               if (error->code != G_KEY_FILE_ERROR_KEY_NOT_FOUND)
+                       critical_msg(LOG_CONFIG, "error:%s", error->message);
+               cam_config_set_string_by_type(config_type, key, default_value);
+               g_error_free(error);
+               error = NULL;
+               return default_value ? g_strdup(default_value) : NULL;
+       } else {
+               return strval ? g_strdup(strval) : NULL;
+       }
+}
+
+gboolean cam_config_get_boolean_by_type(CamConfigType config_type,
+                                       const gchar *key,
+                                       gboolean default_value)
+{
+       g_return_val_if_fail(g_key_file, FALSE);
+       g_return_val_if_fail(g_group_name, FALSE);
+       g_return_val_if_fail(g_group_name[config_type], FALSE);
+       g_return_val_if_fail(key, FALSE);
+       GError *error = NULL;
+       gboolean bval =
+           g_key_file_get_boolean(g_key_file, g_group_name[config_type], key,
+                                  &error);
+       if (error) {
+               if (error->code != G_KEY_FILE_ERROR_KEY_NOT_FOUND)
+                       critical_msg(LOG_CONFIG, "error:%s", error->message);
+               cam_config_set_boolean_by_type(config_type, key, default_value);
+               g_error_free(error);
+               error = NULL;
+               return default_value;
+       } else {
+               return bval;
+       }
+}
diff --git a/src/cam_debug.c b/src/cam_debug.c
new file mode 100644 (file)
index 0000000..92f95e6
--- /dev/null
@@ -0,0 +1,291 @@
+/*
+ * 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 "cam_debug.h"
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+/* #include <debug-message.h> */
+
+#define LOG_LEVEL_FLAGS        (G_LOG_LEVEL_INFO | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_DEBUG | \
+                                               G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL | \
+                                               G_LOG_LEVEL_ERROR | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION)
+
+#define LOG_FILTER_CRITICAL            G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_ERROR
+#define LOG_FILTER_WARNING             LOG_FILTER_CRITICAL | G_LOG_LEVEL_WARNING
+#define LOG_FILTER_MESSAGE             LOG_FILTER_WARNING | G_LOG_LEVEL_MESSAGE
+#define LOG_FILTER_INFO                        LOG_FILTER_MESSAGE | G_LOG_LEVEL_INFO
+#define LOG_FILTER_DEBUG               LOG_FILTER_INFO | G_LOG_LEVEL_DEBUG
+#define LOG_FILTER_ALL                 LOG_FILTER_DEBUG
+
+#define BG_BLACK       40
+#define FG_RED         31
+#define FG_GREEN       32
+#define FG_YELLOW      33
+#define FG_PUPPLE      35
+#define FG_CYAN                36
+#define FG_BLUE                34
+
+#define __cam_print_debug(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm[DEBUG.%s] %s", BG_BLACK, FG_GREEN, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#define __cam_print_info(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm[INFO.%s] %s", BG_BLACK, FG_PUPPLE, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#define __cam_print_msg(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm[MESSAGE.%s] %s", BG_BLACK, FG_CYAN, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#define __cam_print_warning(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm[WARNING.%s] %s", BG_BLACK, FG_YELLOW, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#define __cam_print_critical(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm[CRITICAL.%s] %s", BG_BLACK, FG_RED, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#define __cam_print_error(domain, msg) \
+do { \
+       printf("\x1b[%dm\x1b[%dm**ERROR.%s: %s", BG_BLACK, FG_RED, domain, msg); \
+       printf("\x1b[0m\n"); \
+} while (0)
+
+#ifdef ENABLE_TIME_MEASURE
+
+static GTimer *g_timer = NULL;
+static gdouble previous_elapsed = 0;
+
+static GTimer *g_measure_timer = NULL;
+static gdouble previous_time[MEASURE_TYPE_MAX] = { 0 };
+
+static char debug_type[MEASURE_TYPE_MAX][200] = {
+       "NORMAL_MEASURE_TYPE",
+       "APP_LAUNCHING_TYPE",
+       "CAPTURE_MEASURE_TIME",
+       "REGISTER_FILE_MEASURE_TIME",
+       "REC_START_MEASURE_TIME",
+       "REC_COMMIT_MEASURE_TIME",
+       "REVIEW_MEASURE_TIME",
+       "AUTO_FOCUSE_TIME",
+};
+
+#ifdef MEMCHECK
+
+gboolean memcheck = false;
+
+EXPORT_API void debug_start_memcheck()
+{
+       if (!memcheck) {
+               mwInit();
+               memcheck = true;
+       }
+}
+
+EXPORT_API void debug_stop_memcheck()
+{
+       if (memcheck) {
+               mwFlushNow();
+               mwTerm();
+       }
+}
+#endif
+
+void debug_measure_init()
+{
+       g_measure_timer = g_timer_new();
+
+       int type = 0;
+
+       for (type = 0; type < MEASURE_TYPE_MAX; type++) {
+               previous_time[type] = 0;
+       }
+
+       return;
+}
+
+void debug_measure_close()
+{
+       if (g_measure_timer) {
+               g_timer_destroy(g_measure_timer);
+               g_measure_timer = NULL;
+       }
+
+       int type = 0;
+
+       for (type = 0; type < MEASURE_TYPE_MAX; type++) {
+               previous_time[type] = 0;
+       }
+
+       return;
+}
+
+void debug_measure_start(cam_time_meature_type meature_type,
+                        const gchar *format, ...)
+{
+       char buf[512] = { '\0', };
+       va_list ap;
+       va_start(ap, format);
+       vsnprintf(buf, sizeof(buf), format, ap);
+       va_end(ap);
+
+       bool request_reset = true;
+       int type = 0;
+/*
+       if(meature_type ==APP_LAUNCHING_TYPE)
+       {
+               if(g_measure_timer == NULL)
+               {
+                       debug_measure_init();
+                       previous_time[meature_type] = g_timer_elapsed(g_measure_timer, NULL);
+               }
+       }
+*/
+       if (g_measure_timer == NULL)
+               debug_measure_init();
+
+       for (type = 0; type < MEASURE_TYPE_MAX; type++) {
+               if (previous_time[type] != 0)
+                       request_reset = false;
+       }
+
+       if (request_reset)
+               g_timer_reset(g_measure_timer);
+
+       previous_time[meature_type] = g_timer_elapsed(g_measure_timer, NULL);
+
+       /* cam_debug_time(LOG_TIME, "START %s : %s",debug_type[meature_type] , buf); */
+}
+
+void debug_measure_stop(cam_time_meature_type meature_type,
+                       const gchar *format, ...)
+{
+       char buf[512] = { '\0', };
+       va_list ap;
+       va_start(ap, format);
+       vsnprintf(buf, sizeof(buf), format, ap);
+       va_end(ap);
+
+       gdouble current_elapsed = g_timer_elapsed(g_measure_timer, NULL);
+       gdouble meature_time = 0.0;
+
+       meature_time = (current_elapsed - previous_time[meature_type]);
+
+       cam_debug_time(LOG_TIME, "%s measure time = %.02f (sec) function %s\n",
+                      debug_type[meature_type], (gfloat) (meature_time), buf);
+
+       previous_time[meature_type] = 0;
+}
+
+void debug_time_measure_log(const gchar *format, ...)
+{
+/*
+       g_return_if_fail(g_timer);
+       gdouble elapsed = g_timer_elapsed(g_timer, NULL);
+
+       char buf[512] = {'\0',};
+       va_list ap;
+       va_start(ap, format);
+       vsnprintf(buf, sizeof(buf), format, ap);
+       va_end(ap);
+
+       // cam_debug_time(LOG_TIME, "%s, measure_time = %.02f (ms)", buf, (gfloat)(elapsed - previous_elapsed));
+
+       previous_elapsed = elapsed;
+*/
+
+}
+
+void debug_time_measure_start(const gchar *format, ...)
+{
+       char buf[512] = { '\0', };
+       va_list ap;
+       va_start(ap, format);
+       vsnprintf(buf, sizeof(buf), format, ap);
+       va_end(ap);
+
+       if (g_timer == NULL) {
+               g_timer = g_timer_new();
+       } else {
+               g_timer_start(g_timer);
+       }
+
+       previous_elapsed = g_timer_elapsed(g_timer, NULL);
+
+       /*
+          cam_debug_time(LOG_TIME, "\nNEW MEASUREMENT: %s", buf);
+          cam_debug_time(LOG_TIME, "UNIT NAME, TOTAL ELAPSED, ELAPSED");
+        */
+}
+
+void debug_time_measure_stop(void)
+{
+       if (g_timer) {
+               g_timer_destroy(g_timer);
+               g_timer = NULL;
+       }
+}
+#endif                         /*ENABLE_TIME_MEASURE */
+
+#ifdef DEBUG_MESSAGE_ON
+#ifndef USE_DLOG_MESSAGE
+void
+cam_log_func(const gchar *_domain, GLogLevelFlags log_level,
+            const char *file_name, const char *func, int line_number,
+            const char *format, ...)
+{
+
+       va_list args;
+       char msg_buf[1024] = "\0", message[2048] = "\0";
+       char *p = NULL;
+       GET_FILE_NAME(p, (char *)file_name);
+
+       va_start(args, format);
+       vsnprintf(msg_buf, sizeof(msg_buf), format, args);
+
+       snprintf(message, sizeof(message), "[%s:%s:#%d]%s", p, func,
+                line_number, msg_buf);
+       va_end(args);
+
+       if (log_level & G_LOG_LEVEL_DEBUG) {
+               __cam_print_debug(_domain, message);
+       } else if (log_level & G_LOG_LEVEL_INFO) {
+               __cam_print_info(_domain, message);
+       } else if (log_level & G_LOG_LEVEL_MESSAGE) {
+               __cam_print_msg(_domain, message);
+       } else if (log_level & G_LOG_LEVEL_WARNING) {
+               __cam_print_warning(_domain, message);
+       } else if (log_level & G_LOG_LEVEL_CRITICAL) {
+               __cam_print_critical(_domain, message);
+       } else if (log_level & G_LOG_LEVEL_ERROR) {
+               __cam_print_error(_domain, message);
+       }
+
+}
+#endif
+#endif
diff --git a/src/cam_device_capacity.cpp b/src/cam_device_capacity.cpp
new file mode 100755 (executable)
index 0000000..9c4c4e9
--- /dev/null
@@ -0,0 +1,45 @@
+/*\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
+\r
+\r
+\r
+#include "CamDeviceCapacity.h"\r
+\r
+extern "C" {\r
+\r
+void   ResetCaps()\r
+{\r
+       CCamDeviceCapacity::GetInstance()->ResetCaps();\r
+}\r
+\r
+\r
+void GetCamDevFuncCaps(unsigned int *eType, void *user_data)\r
+{\r
+       CCamDeviceCapacity::GetInstance()->GetCamDevFuncCaps(eType, user_data);\r
+}\r
+\r
+bool GetCamDevEffectCaps(unsigned int *uCapacity, void *user_data)\r
+{\r
+       return CCamDeviceCapacity::GetInstance()->GetCamDevEffectCaps(uCapacity, user_data);\r
+}\r
+\r
+bool GetCamDevZoomCaps(int *min, int *max)\r
+{\r
+       return CCamDeviceCapacity::GetInstance()->GetCamDevZoomCaps(min, max);\r
+}\r
+\r
+}\r
+\r
diff --git a/src/cam_devman.c b/src/cam_devman.c
new file mode 100644 (file)
index 0000000..775f274
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * 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 <haptic.h>
+#include "cam_devman.h"
+#include "cam_debug.h"
+
+gboolean cam_devman_init(void)
+{
+       int ret = HAPTIC_ERROR_NONE;
+
+       ret = haptic_initialize();
+       if (ret != HAPTIC_ERROR_NONE) {
+               cam_critical(LOG_MM, " haptic_initialize failed [%x]", ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_devman_deinit(void)
+{
+       int ret = HAPTIC_ERROR_NONE;
+
+       ret = haptic_deinitialize();
+       if (ret != HAPTIC_ERROR_NONE) {
+               cam_critical(LOG_MM, " haptic_deinitialize failed [%x]", ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_devman_haptic_play(int milisec)
+{
+       int ret = HAPTIC_ERROR_NONE;
+
+       ret = haptic_vibrate_monotone(0, milisec, -1);
+       if (ret != HAPTIC_ERROR_NONE) {
+               cam_critical(LOG_MM, " haptic_vibrate_monotone failed [%x]", ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
diff --git a/src/cam_file.c b/src/cam_file.c
new file mode 100644 (file)
index 0000000..15403a8
--- /dev/null
@@ -0,0 +1,489 @@
+/*
+ * 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 <stdio.h>
+#include <string.h>
+#include "cam_file.h"
+#include "cam_error.h"
+#include "cam_debug.h"
+#include "cam_ta.h"
+
+#include <sys/time.h>
+#include <sys/times.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <media_content.h>
+
+#define CAM_FILE_CONDITION_LENGTH 256
+
+gboolean cam_file_init(GError **error)
+{
+       debug_fenter(LOG_UI);
+
+       return TRUE;
+}
+
+void cam_file_finalize()
+{
+       debug_fenter(LOG_UI);
+       return;
+}
+
+gboolean cam_file_get_size(const char *filename, guint64 *size)
+{
+       struct stat buf;
+
+       if (stat(filename, &buf) != 0)
+               return FALSE;
+       *size = (guint64)buf.st_size;
+       return TRUE;
+}
+
+gboolean cam_file_check_exists(gchar *filename)
+{
+
+       FILE *fd = fopen(filename, "r");
+       if (fd == NULL) {
+               return FALSE;
+       } else {
+               fclose(fd);
+               return TRUE;
+       }
+}
+
+gboolean cam_file_register(const gchar *filename, GError **error)
+{
+       int err_code = 0;
+
+       CAM_TA_ACUM_ITEM_BEGIN("      cam_file_register", 0);
+
+       cam_debug(LOG_UI, "");
+
+       if (filename == NULL) {
+               cam_critical(LOG_FILE, "The filename is null");
+               CAM_TA_ACUM_ITEM_END("      cam_file_register", 0);
+               return FALSE;
+       }
+
+       if (!g_file_test(filename, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+               cam_critical(LOG_FILE, "The File is not existed");
+               CAM_TA_ACUM_ITEM_END("      cam_file_register", 0);
+               return FALSE;
+       }
+       if (g_str_has_suffix(filename, ".jpg")) {
+               cam_debug(LOG_FILE, "jpg file!");
+
+       } else if (g_str_has_suffix(filename, ".3gp")) {
+               cam_debug(LOG_FILE, ".3gp file!");
+       } else {
+               cam_critical(LOG_FILE, "failed to get file type : [%s]",
+                            filename);
+               return FALSE;
+       }
+
+       media_info_h info;
+       err_code = media_info_insert_to_db(filename, &info);
+
+       if (err_code != MEDIA_CONTENT_ERROR_NONE) {
+               cam_critical(LOG_FILE,
+                            "failed to media_file_register() : [%s], [%d]",
+                            filename, err_code);
+               CAM_TA_ACUM_ITEM_END("      cam_file_register", 0);
+               return FALSE;
+       }
+       media_info_destroy(info);
+
+       cam_debug(LOG_FILE, "register success!");
+       CAM_TA_ACUM_ITEM_END("      cam_file_register", 0);
+       return TRUE;
+}
+
+gboolean cam_file_delete(const gchar *filename, GError **error)
+{
+       cam_debug(LOG_FILE, "%s", filename);
+
+       if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
+               cam_warning(LOG_FILE, "invalid file:%s", filename);
+               cam_set_error(error, CAM_ERROR_FILE_NOT_EXISTS,
+                             "File not exists:%s", filename);
+               return FALSE;
+       }
+       return (g_unlink(filename) == 0) ? TRUE : FALSE;
+}
+
+gboolean
+cam_file_rename(const gchar *filename, const gchar *new_name, GError **error)
+{
+       gboolean bret = FALSE;
+
+       cam_debug(LOG_FILE, "[%s] -> [%s]", filename, new_name);
+
+       if (!g_file_test(filename, G_FILE_TEST_IS_REGULAR)) {
+               cam_warning(LOG_FILE, "invalid file:%s", filename);
+               cam_set_error(error, CAM_ERROR_FILE_NOT_EXISTS,
+                             "File not exists:%s", filename);
+               return FALSE;
+       }
+
+       bret = (g_rename(filename, new_name) == 0) ? TRUE : FALSE;
+
+       if (!bret) {
+               cam_critical(LOG_FILE, "operation failed");
+       }
+
+       if (!g_file_test(new_name, G_FILE_TEST_IS_REGULAR)) {
+               cam_warning(LOG_FILE, "renamed file not exists:%s", new_name);
+               bret = FALSE;
+       }
+
+       return bret;
+}
+
+const gchar *cam_file_get_internal_image_path(void)
+{
+       gchar * spath = INTERNAL_FILE_PATH;
+
+       return spath;
+}
+
+const gchar *cam_file_get_internal_video_path(void)
+{
+       gchar * spath = INTERNAL_FILE_PATH;
+
+       return spath;
+}
+
+const gchar *cam_file_get_external_image_path(void)
+{
+       gchar * spath = EXTERNAL_FILE_PATH;
+
+       return spath;
+}
+
+const gchar *cam_file_get_external_video_path(void)
+{
+       gchar * spath = EXTERNAL_FILE_PATH;
+
+       return spath;
+}
+
+gboolean cam_check_dir()
+{
+       DIR *internal_dir = NULL;
+       DIR *external_dir = NULL;
+       int ret;
+       internal_dir = opendir(INTERNAL_FILE_PATH);
+
+       if(internal_dir == NULL) {
+               ret = mkdir(INTERNAL_FILE_PATH,0777);
+               DEBUG_TRACE("ret = [%d]",ret);
+               if(ret <0) {
+                       DEBUG_TRACE("Cannot make default path");
+                       /*closedir(internal_dir);*/
+                       return FALSE;
+               }
+       }
+       if (internal_dir) {
+               closedir(internal_dir);
+               internal_dir = NULL;
+       }
+
+       external_dir = opendir(EXTERNAL_FILE_PATH);
+       if(external_dir == NULL) {
+               ret = mkdir(EXTERNAL_FILE_PATH,0777);
+               DEBUG_TRACE("ret = [%d]",ret);
+               if(ret <0) {
+                       DEBUG_TRACE("MMC is fault or not inserted");
+               }
+
+       }
+       if (external_dir) {
+               closedir(external_dir);
+               external_dir = NULL;
+       }
+
+       return TRUE;
+
+}
+gchar *cam_file_get_next_filename_for_multishot(const gchar *storage_root,
+                                               const gchar *first_file_name,
+                                               const gchar *suffix)
+{
+       char *prefix = NULL;
+       char *result = NULL;
+       char *check_full_path = NULL;
+       int cnt = 0;
+       gboolean bFinal = FALSE;
+
+       prefix = g_strdup_printf("%s/%s", storage_root, first_file_name);
+
+       check_full_path = g_strdup_printf("%s%s", prefix, suffix);
+
+       while (bFinal == FALSE && check_full_path) {
+               if (!cam_file_check_exists(check_full_path)) {
+                       bFinal = true;
+                       result = g_strdup(check_full_path);
+               } else {
+                       cnt++;
+
+                       if (check_full_path)
+                               g_free(check_full_path);
+                       check_full_path = NULL;
+
+                       check_full_path =
+                           g_strdup_printf("%s_%d%s", prefix, cnt, suffix);
+
+                       bFinal = false;
+               }
+       }
+
+       if (check_full_path)
+               g_free(check_full_path);
+       check_full_path = NULL;
+
+       if (prefix)
+               g_free(prefix);
+       prefix = NULL;
+
+       cam_debug(LOG_FILE, "%s", result);
+
+       return result;
+}
+
+/*callback for:media_folder_foreach_media_from_db*/
+static bool __cam_file_get_latest_file_path_cb(media_info_h item, void *user_data)
+{
+       char **file_url = (char **) user_data;
+       if (media_info_get_file_path(item, file_url) != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("Clone folder handle error");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+/*callback for:media_info_foreach_media_from_db*/
+/*note:here have to use bool, not gboolean, for callback define*/
+static bool __cam_file_get_cam_file_thumbnail_path_cb(media_info_h item, void *user_data)
+{
+       char **thumbnail_path = (char **) user_data;
+       if (media_info_get_thumbnail_path(item, thumbnail_path) != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("get thumbnail path error");
+               return FALSE;
+       }
+       if (*thumbnail_path)
+               DEBUG_TRACE("thumbnail_path = %s", *thumbnail_path);
+       return TRUE;
+}
+
+/*callback for:media_folder_foreach_folder_from_db*/
+static bool __cam_file_get_storage_folder_id_cb(media_folder_h item, void *user_data)
+{
+       char **folder_uuid = (char **) user_data;
+       if (media_folder_get_folder_id(item, folder_uuid) != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("Get folder id error");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+char *cam_file_get_cam_storage_folder_id(const gchar *storage_root)
+{
+       char condition[CAM_FILE_CONDITION_LENGTH + 1] = { '\0', };
+       snprintf(condition, CAM_FILE_CONDITION_LENGTH, "%s = \'%s\'", FOLDER_PATH, (char *)storage_root);
+       filter_h filter = NULL;
+       int ret = media_filter_create(&filter);
+       if(ret != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("Fail to create filter");
+               return NULL;
+       }
+       if (condition != NULL) {
+               ret = media_filter_set_condition(filter,
+                                               condition,
+                                               MEDIA_CONTENT_COLLATE_DEFAULT);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+
+               char *folder_uuid = NULL;
+               ret = media_folder_foreach_folder_from_db(filter,
+                                                       __cam_file_get_storage_folder_id_cb,
+                                                       &folder_uuid);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+
+               if (folder_uuid) {
+                       if (filter)
+                               media_filter_destroy(filter);
+                       filter = NULL;
+                       return folder_uuid;
+               }
+               else
+                       goto ERROR_THROW;
+
+       }
+ERROR_THROW:
+       if (filter)
+               media_filter_destroy(filter);
+       filter = NULL;
+       return NULL;
+}
+
+gboolean cam_file_get_cam_file_thumbnail_path(const gchar *file_path, gchar **thumbnail_path)
+{
+       if (thumbnail_path == NULL)
+               return FALSE;
+       char condition[CAM_FILE_CONDITION_LENGTH + 1] = { '\0', };
+       snprintf(condition, CAM_FILE_CONDITION_LENGTH, "%s = \'%s\'", MEDIA_PATH, (char *)file_path);
+       filter_h filter = NULL;
+       int ret = media_filter_create(&filter);
+       if(ret != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("Fail to create filter");
+               goto ERROR_THROW;
+       }
+       if (condition != NULL) {
+               ret = media_filter_set_condition(filter,
+                                               condition,
+                                               MEDIA_CONTENT_COLLATE_DEFAULT);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+
+               char *temp_thumbnail_path = NULL;
+               ret = media_info_foreach_media_from_db(filter,
+                                                       __cam_file_get_cam_file_thumbnail_path_cb,
+                                                       &temp_thumbnail_path);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+               *thumbnail_path = temp_thumbnail_path;
+               if (filter)
+                       media_filter_destroy(filter);
+               filter = NULL;
+               return TRUE;
+       }
+ERROR_THROW:
+       if (filter)
+               media_filter_destroy(filter);
+       filter = NULL;
+       return FALSE;
+}
+
+gchar *cam_file_get_last_file_path(void *data, const gchar *storage_root)
+{
+       struct appdata *ad =data;
+       cam_retvm_if(ad == NULL, NULL, "appdata is NULL");
+       cam_retvm_if(storage_root == NULL, NULL, "storage_root is NULL");
+       DEBUG_TRACE("storage_root : %s", storage_root);
+
+
+       /*get folder id*/
+
+       char *folder_uuid = cam_file_get_cam_storage_folder_id(storage_root);
+       if (!folder_uuid) {
+               DEBUG_TRACE("not find %s", storage_root);
+               return NULL;
+       }
+
+       char condition[CAM_FILE_PATH_MAX + 1] = { '\0', };
+
+       snprintf(condition, CAM_FILE_PATH_MAX, "(%s=0 OR %s=1)", MEDIA_TYPE, MEDIA_TYPE);
+
+       filter_h filter = NULL;
+       int ret = media_filter_create(&filter);
+       if(ret != MEDIA_CONTENT_ERROR_NONE) {
+               DEBUG_TRACE("Fail to create filter");
+               goto ERROR_THROW;
+       }
+       if (condition != NULL) {
+               ret = media_filter_set_condition(filter,
+                                               condition,
+                                               MEDIA_CONTENT_COLLATE_DEFAULT);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+
+               ret = media_filter_set_order(filter,
+                                            MEDIA_CONTENT_ORDER_DESC,
+                                            MEDIA_MODIFIED_TIME,
+                                            MEDIA_CONTENT_COLLATE_DEFAULT);
+               if (ret != MEDIA_CONTENT_ERROR_NONE) {
+                       goto ERROR_THROW;
+               }
+               ret = media_filter_set_offset(filter,
+                                               0,/*offset*/
+                                               1);/*count*/
+               char *file_url = NULL;
+               ret = media_folder_foreach_media_from_db(folder_uuid,
+                                                       filter,
+                                                       __cam_file_get_latest_file_path_cb,
+                                                       &file_url);
+               if (ret < 0) {
+                       DEBUG_TRACE("Failed to media_folder_foreach_media_from_db");
+                       goto ERROR_THROW;
+               }
+
+               if (file_url == NULL) {
+                       DEBUG_TRACE(" Failed ");
+                       goto ERROR_THROW;
+               }
+               /*make last filename */
+               gchar last_file_path[255] = { 0, };
+               snprintf(last_file_path, sizeof(last_file_path), "%s", file_url);
+               free(file_url);
+               file_url = NULL;
+               media_filter_destroy(filter);
+               filter = NULL;
+               return g_strdup(last_file_path);
+
+       }
+       media_filter_destroy(filter);
+       filter = NULL;
+       return NULL;
+ERROR_THROW:
+       if (filter)
+               media_filter_destroy(filter);
+       filter = NULL;
+       return NULL;
+
+}
+
+gchar *cam_file_get_next_filename(const gchar *storage_root,
+                                 const gchar *prefix_string,
+                                 const gchar *suffix)
+{
+       gchar target[255] = { 0, };
+       time_t t;
+       struct tm tm;
+
+       t = time(NULL);
+       tzset();
+               /*localtime_r : available since libc 5.2.5 */
+       if(localtime_r(&t,&tm) == NULL) {
+               return NULL;
+       }
+       snprintf(target, sizeof(target), "%s/%04i%02i%02i-%02i%02i%02i%s",
+                storage_root,
+                tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday,
+                tm.tm_hour, tm.tm_min, tm.tm_sec, suffix);
+
+       cam_debug(LOG_FILE, "filename: %s", target);
+
+       return g_strdup(target);
+}
diff --git a/src/cam_long_press.c b/src/cam_long_press.c
new file mode 100644 (file)
index 0000000..b5f5e3a
--- /dev/null
@@ -0,0 +1,162 @@
+/*\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
+\r
+\r
+\r
+#include <stdio.h>\r
+#include <stdlib.h>\r
+#include <assert.h>\r
+#include <Elementary.h>\r
+#include "cam.h"\r
+#include "cam_long_press.h"\r
+\r
+typedef struct cb_item {\r
+       LONG_PRESS_START_CALLBACK start_func;\r
+       LONG_PRESS_CANCEL_CALLBACK cancel_func;\r
+       void *data;\r
+\r
+       Evas_Coord x;\r
+       Evas_Coord y;\r
+\r
+       Ecore_Timer *hold_timer;\r
+       double time;\r
+\r
+       bool runing;\r
+}long_press_timer_t;\r
+\r
+static long_press_timer_t g_timer[LONG_PRESS_ID_MAX_NUMS];\r
+\r
+bool cam_get_long_press_running_state(int index)\r
+{\r
+       if (index >=LONG_PRESS_ID_MAX_NUMS || index < 0) {\r
+               return FALSE;\r
+       }\r
+       return g_timer[index].runing;\r
+}\r
+static Eina_Bool _timer_cb(void *data)\r
+{\r
+       if(NULL == data) {\r
+               return FALSE;\r
+       }\r
+\r
+       long_press_timer_t *item = (long_press_timer_t*)data;\r
+\r
+       item->hold_timer = NULL;\r
+       if (item->start_func) {\r
+               item->start_func(item->data, item->x, item->y);\r
+               item->runing = TRUE;\r
+       }\r
+       return ECORE_CALLBACK_CANCEL;\r
+}\r
+\r
+int cam_long_press_register(int index, double time,\r
+               LONG_PRESS_START_CALLBACK start_func,\r
+               LONG_PRESS_CANCEL_CALLBACK end_func,\r
+               void *data)\r
+{\r
+       if(index >= sizeof(g_timer))\r
+               return EXIT_FAILURE;\r
+\r
+       if(g_timer[index].hold_timer != NULL) {\r
+               DEBUG_TRACE("Already register! \n");\r
+               return EXIT_SUCCESS;\r
+       }\r
+\r
+       g_timer[index].start_func = start_func;\r
+       g_timer[index].cancel_func = end_func;\r
+       g_timer[index].data = data;\r
+       g_timer[index].runing = FALSE;\r
+       g_timer[index].time = time;\r
+\r
+       return EXIT_SUCCESS;\r
+}\r
+\r
+int cam_long_press_unregister(int index)\r
+{\r
+       if(index >= sizeof(g_timer))\r
+               return EXIT_FAILURE;\r
+\r
+       if (g_timer[index].hold_timer) {\r
+               ecore_timer_del(g_timer[index].hold_timer);\r
+               g_timer[index].hold_timer = NULL;\r
+       }\r
+\r
+       return EXIT_SUCCESS;\r
+}\r
+\r
+void cam_long_press_trigger(int index, Evas_Coord x, Evas_Coord y)\r
+{\r
+       if(index >= sizeof(g_timer))\r
+                       return;\r
+\r
+       if (g_timer[index].hold_timer) {\r
+               return;\r
+       }\r
+\r
+       g_timer[index].hold_timer = ecore_timer_add(g_timer[index].time, _timer_cb, &g_timer[index]);\r
+       if (!g_timer[index].hold_timer) {\r
+               DEBUG_TRACE("Failed to trigger the hold timer\n");\r
+       }\r
+\r
+       /*Update valid region*/\r
+       g_timer[index].x = x;\r
+       g_timer[index].y = y;\r
+       g_timer[index].runing = FALSE;\r
+}\r
+\r
+void cam_long_press_validate(int index, Evas_Coord x, Evas_Coord y)\r
+{\r
+       if(index >= sizeof(g_timer))\r
+                       return;\r
+\r
+       int dx;\r
+       int dy;\r
+\r
+       if (!g_timer[index].hold_timer) {\r
+               return;\r
+       }\r
+\r
+       dx = (g_timer[index].x - x);\r
+       dx *= dx;\r
+\r
+       dy = (g_timer[index].y - y);\r
+       dy *= dy;\r
+\r
+       /*TODO:this condision is too strict*/\r
+       if ((dx + dy) > ((elm_config_finger_size_get() / 2) * (elm_config_finger_size_get() / 2))) {\r
+               DEBUG_TRACE("validate failed, del timer\n");\r
+               ecore_timer_del(g_timer[index].hold_timer);\r
+               g_timer[index].hold_timer = NULL;\r
+       }\r
+\r
+}\r
+\r
+void cam_long_press_cancel(int index)\r
+{\r
+       if(index >= sizeof(g_timer))\r
+                       return;\r
+\r
+       if (g_timer[index].hold_timer) {\r
+               ecore_timer_del(g_timer[index].hold_timer);\r
+               g_timer[index].hold_timer = NULL;\r
+       }\r
+       g_timer[index].runing = FALSE;\r
+       if (g_timer[index].cancel_func) {\r
+               g_timer[index].cancel_func(g_timer[index].data, g_timer[index].x, g_timer[index].y);\r
+       }\r
+}\r
+\r
+\r
diff --git a/src/cam_menu_composer.c b/src/cam_menu_composer.c
new file mode 100755 (executable)
index 0000000..5e49608
--- /dev/null
@@ -0,0 +1,169 @@
+/*
+ * 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 <app.h>
+#include "cam_menu_composer.h"
+#include "cam_debug.h"
+#include "cam_capacity_type.h"
+#include "cam_device_capacity.h"
+
+
+const CAM_MENU_ITEM setting[] = {CAM_MENU_SHORTCUTS, CAM_MENU_TIMER, CAM_MENU_EFFECTS, CAM_MENU_GUIDELINES,CAM_MENU_RESET};
+const CAM_MENU_ITEM effect[] = {CAM_MENU_EFFECT_NONE, CAM_MENU_EFFECT_NEGATIVE, CAM_MENU_EFFECT_BLACKANDWHITE, CAM_MENU_EFFECT_SEPIA};
+
+
+static gboolean __is_enabled_shortcuts(void* data);
+static gboolean __is_enabled_timer(void* data);
+static gboolean __is_enabled_effects(void* data);
+
+
+void cam_compose_setting_menu(cam_menu_composer* composer)
+{
+       cam_retm_if(composer == NULL, "composer is NULL");
+
+       composer->title =  strdup(_("IDS_CAM_BODY_SETTINGS"));
+       composer->array = eina_array_new(25);
+       if (!(composer->array))
+       {
+               cam_critical(LOG_CAM, "could not create new eina array");
+               return;
+       }
+
+       eina_array_step_set(composer->array, sizeof(*(composer->array)), 50);
+
+       unsigned int capacity = 0;
+       GetCamDevFuncCaps(&capacity, NULL);
+
+       if(capacity & CAM_CP_FUNC_EDIR_SHORTCUT)
+               eina_array_push(composer->array, (void*)&setting[0]);
+
+       if(capacity & CAM_CP_FUNC_TIMER)
+               eina_array_push(composer->array, (void*)&setting[1]);
+
+       if(capacity & CAM_CP_FUNC_EFFECT_MODE)
+               eina_array_push(composer->array, (void*)&setting[2]);
+
+       if(capacity & CAM_CP_FUNC_GUIDE_LINE)
+               eina_array_push(composer->array, (void*)&setting[3]);
+
+       if(capacity & CAM_CP_FUNC_RESET)
+               eina_array_push(composer->array, (void*)&setting[4]);
+}
+
+void cam_compose_menu_effect(cam_menu_composer* composer)
+{
+       cam_retm_if(composer == NULL, "composer is NULL");
+
+       composer->array = eina_array_new(5);
+       if (!(composer->array))
+       {
+               cam_critical(LOG_CAM, "could not create new eina array");
+               return;
+       }
+       eina_array_step_set(composer->array, sizeof(*(composer->array)), 10);
+
+       unsigned int capacity = 0;
+       GetCamDevEffectCaps(&capacity, NULL);
+
+       if(capacity & CAM_CP_EFFECT_NONE)
+               eina_array_push(composer->array, (void*)&effect[0]);
+
+       if(capacity & CAM_CP_EFFECT_NEGATIVE)
+               eina_array_push(composer->array, (void*)&effect[1]);
+
+       if(capacity & CAM_CP_EFFECT_MONO)
+               eina_array_push(composer->array, (void*)&effect[2]);
+
+       if(capacity & CAM_CP_EFFECT_SEPIA)
+               eina_array_push(composer->array, (void*)&effect[3]);
+
+}
+
+void cam_compose_free(cam_menu_composer* composer)
+{
+       cam_ret_if(composer == NULL);
+
+       free(composer);
+}
+
+gboolean cam_is_enabled_menu(void *data, const CAM_MENU_ITEM item)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       switch(item){
+               case CAM_MENU_SHORTCUTS:
+                       return __is_enabled_shortcuts((void*)ad);
+               case CAM_MENU_TIMER:
+                       return __is_enabled_timer((void*)ad);
+               case CAM_MENU_EFFECTS:
+                       return __is_enabled_effects((void*)ad);
+               case CAM_MENU_GUIDELINES:
+                       return TRUE;
+               case CAM_MENU_RESET:
+                       return TRUE;
+               default:
+                       break;
+               }
+
+       return TRUE;
+
+}
+
+static gboolean __is_enabled_shortcuts(void* data)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       unsigned int capacity;
+       GetCamDevFuncCaps(&capacity, NULL);
+
+       if(!(capacity & CAM_CP_FUNC_EDIR_SHORTCUT))
+               return FALSE;
+
+       return TRUE;
+}
+
+static gboolean __is_enabled_timer(void* data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       unsigned int capacity;
+       GetCamDevFuncCaps(&capacity, NULL);
+
+       return TRUE;
+
+}
+
+static gboolean __is_enabled_effects(void* data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       unsigned int capacity;
+       GetCamDevFuncCaps(&capacity, NULL);
+
+       if(!(capacity & CAM_CP_FUNC_EFFECT_MODE))
+               return FALSE;
+
+       return TRUE;
+
+}
+
diff --git a/src/cam_mm.c b/src/cam_mm.c
new file mode 100755 (executable)
index 0000000..f983925
--- /dev/null
@@ -0,0 +1,1753 @@
+/*
+ * 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 <string.h>
+#include "cam_mm.h"
+#include "cam_debug.h"
+#include "cam_ta.h"
+#include "cam_property.h"
+#include "cam_typeconverter.h"
+
+typedef struct _CamMMHandle {
+       camera_h hcam;
+       recorder_h hrec;
+       camera_device_e hdev;
+} CamMMHandle;
+
+static unsigned int g_caps = 0;
+static int g_caps_cb_cnt = 0;
+
+
+static void __get_effect_cb(camera_attr_effect_mode_e effect, void *user_data);
+
+
+void rec_detail_error_get(int err_no)
+{
+       switch(err_no) {
+       case RECORDER_ERROR_INVALID_PARAMETER:
+               DEBUG_TRACE("RECORDER_ERROR_INVALID_PARAMETER");
+               break;
+       case RECORDER_ERROR_INVALID_STATE:
+               DEBUG_TRACE("RECORDER_ERROR_INVALID_STATE");
+               break;
+       case RECORDER_ERROR_OUT_OF_MEMORY:
+               DEBUG_TRACE("RECORDER_ERROR_OUT_OF_MEMORY");
+               break;
+       case RECORDER_ERROR_DEVICE:
+               DEBUG_TRACE("RECORDER_ERROR_DEVICE");
+               break;
+       case RECORDER_ERROR_INVALID_OPERATION:
+               DEBUG_TRACE("RECORDER_ERROR_INVALID_OPERATION");
+               break;
+       case RECORDER_ERROR_SOUND_POLICY:
+               DEBUG_TRACE("RECORDER_ERROR_SOUND_POLICY");
+               break;
+       case RECORDER_ERROR_NONE:
+               DEBUG_TRACE("NO ERROR");
+               break;
+       default:
+               DEBUG_TRACE("unknown error,err_no = %d", err_no);
+
+       }
+
+}
+void cam_detail_error_get(int err_no)
+{
+       switch(err_no) {
+       case CAMERA_ERROR_INVALID_PARAMETER:
+               DEBUG_TRACE("CAMERA_ERROR_INVALID_PARAMETER");
+               break;
+       case CAMERA_ERROR_INVALID_STATE:
+               DEBUG_TRACE("CAMERA_ERROR_INVALID_STATE");
+               break;
+       case CAMERA_ERROR_OUT_OF_MEMORY:
+               DEBUG_TRACE("CAMERA_ERROR_OUT_OF_MEMORY");
+               break;
+       case CAMERA_ERROR_DEVICE:
+               DEBUG_TRACE("CAMERA_ERROR_DEVICE");
+               break;
+       case CAMERA_ERROR_INVALID_OPERATION:
+               DEBUG_TRACE("CAMERA_ERROR_INVALID_OPERATION");
+               break;
+       case CAMERA_ERROR_SOUND_POLICY:
+               DEBUG_TRACE("CAMERA_ERROR_SOUND_POLICY");
+               break;
+       case CAMERA_ERROR_NONE:
+               DEBUG_TRACE("NO ERROR");
+               break;
+       default:
+               DEBUG_TRACE("unknown error,err_no = %d", err_no);
+
+       }
+}
+
+
+static CamMMHandle *g_mm_handle = NULL;
+
+int cam_mm_get_cam_state(void)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       int ret = 0;
+       camera_state_e state = 0;
+       ret = camera_get_state(g_mm_handle->hcam, &state);
+       if (ret == CAMERA_ERROR_NONE)
+               return (int)state;
+       else
+               return -1;
+}
+
+int cam_mm_get_state(void)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       int ret = 0;
+       camera_state_e state = 0;
+       struct appdata *ad =  (struct appdata *)cam_appdata_get();
+       CamAppData *camapp = ad->camapp_handle;
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+               ret = camera_get_state(g_mm_handle->hcam, (camera_state_e *)&state);
+               if (ret == CAMERA_ERROR_NONE)
+                       return (int)state;
+               else
+                       return -1;
+       }
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+               ret = recorder_get_state(g_mm_handle->hrec, (recorder_state_e *)&state);
+               if (ret == RECORDER_ERROR_NONE)
+                       return (int)state;
+               else
+                       return -1;
+       }
+       return -1;
+}
+
+
+int cam_mm_get_rec_state(void)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+       int ret = 0;
+       recorder_state_e state = 0;
+       ret = recorder_get_state(g_mm_handle->hrec, (recorder_state_e *)&state);
+       if (ret == RECORDER_ERROR_NONE)
+               return (int)state;
+       else
+               return -1;
+}
+
+gboolean cam_mm_get_video_device(int *device)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+
+       if (g_mm_handle->hdev < CAMERA_DEVICE_CAMERA0 || g_mm_handle->hdev > CAMERA_DEVICE_CAMERA1)
+               return FALSE;
+
+       *device = g_mm_handle->hdev;
+       DEBUG_TRACE("%d,%d",g_mm_handle->hdev,*device);
+       return TRUE;
+}
+
+gboolean cam_mm_get_video_size(int *width, int *height)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       ret = camera_get_preview_resolution(g_mm_handle->hcam,  width, height);
+
+       if (ret != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("camera_get_preview_resolution error code = %d" , ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_mm_set_video_size(int width, int height)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_preview_resolution(g_mm_handle->hcam, width, height);
+
+       if (ret != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_zoom(int *value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       ret = camera_attr_get_zoom(g_mm_handle->hcam, value);
+       if (ret) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_zoom(int value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_set_zoom(g_mm_handle->hcam, value);
+       if (ret) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_fps(camera_attr_fps_e value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_set_preview_fps(g_mm_handle->hcam, value);
+       if (ret != CAMERA_ERROR_NONE) {
+               cam_detail_error_get(ret);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_focus_mode(int *value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_get_af_mode(g_mm_handle->hcam, (camera_attr_af_mode_e *)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_focus_mode(int value)
+{
+       int ret = 0;
+       ret = camera_attr_set_af_mode(g_mm_handle->hcam, (camera_attr_af_mode_e)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_zoom_valid_intrange(int *min, int *max)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_get_zoom_range(g_mm_handle->hcam, min, max);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_af_area(int x, int y, int w, int h)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       DEBUG_TRACE("\n Touch AF area ![ x,y,width,height: %d,%d,%d,%d ]\n", x, y, w, h);
+
+       ret = camera_attr_set_af_area(g_mm_handle->hcam, x, y);
+       if (ret != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("camera_attr_set_af_area failed [%d]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_get_detect_mode(int *value)
+{
+#ifndef TODO_SURRPORT
+/*TODO:framework not surrport it*/
+#endif
+       return TRUE;
+}
+
+gboolean cam_mm_set_detect_mode(int value)
+{
+/*TODO:libmm-camcorder not surrport it*/
+#ifdef TODO_SURRPORT
+       return TRUE;
+#endif
+}
+
+gboolean cam_mm_get_image_enc_quality(int *value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_get_image_quality(g_mm_handle->hcam, value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_image_enc_quality(int value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_set_image_quality(g_mm_handle->hcam, value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_get_flash(int *value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_get_flash_mode(g_mm_handle->hcam, (camera_attr_flash_mode_e *)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_flash(int value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_set_flash_mode(g_mm_handle->hcam, (camera_attr_flash_mode_e)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_effect(int *value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_get_effect(g_mm_handle->hcam, (camera_attr_effect_mode_e *)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_effect(int value)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_set_effect(g_mm_handle->hcam, (camera_attr_effect_mode_e)value);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_audio_recording(gboolean b_on)
+{
+       int ret = 0;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+       if (b_on)
+               ret = recorder_attr_set_mute(g_mm_handle->hrec, FALSE);
+       else
+               ret = recorder_attr_set_mute(g_mm_handle->hrec, TRUE);
+
+       if (ret != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_image_count(int value)
+{
+       return TRUE;
+}
+
+
+gboolean cam_mm_get_image_size(int *width, int *height)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_get_capture_resolution(g_mm_handle->hcam, width, height);
+
+       if (ret != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x] name[%s]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_image_size(int width, int height)
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_capture_resolution(g_mm_handle->hcam, width, height);
+
+       if (ret != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("cam_mm_set_image_size failed");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_video_encoder_bitrate(int bitrate)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_attr_set_video_encoder_bitrate(g_mm_handle->hrec, bitrate);
+       if (ret != RECORDER_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_audio_encoder_bitrate(int bitrate)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_attr_set_audio_encoder_bitrate(g_mm_handle->hrec, bitrate);
+       if (ret != RECORDER_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_display_device(int display_device, void *xid)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_display(g_mm_handle->hcam, display_device, xid);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_display_rotate(int rotate)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_x11_display_rotation(g_mm_handle->hcam, rotate);
+       if (ret != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_camera_rotate(int camera_rotate)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       #ifdef CAMERA_MACHINE_I686
+       ret = camera_attr_set_stream_rotation(g_mm_handle->hcam, 0);
+       #else
+       ret = camera_attr_set_stream_rotation(g_mm_handle->hcam, camera_rotate);
+       #endif
+       if (ret != CAMERA_ERROR_NONE) {
+               cam_detail_error_get(ret);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_get_display_geometry_method(int *value)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_get_x11_display_mode(g_mm_handle->hcam, (camera_display_mode_e *)value);
+       if (ret != CAMERA_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_display_geometry_method(int value)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_x11_display_mode(g_mm_handle->hcam, (camera_display_mode_e)value);
+       if (ret != CAMERA_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_display_visible(gboolean visible)
+{
+       int ret = 0;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_set_x11_display_visible(g_mm_handle->hcam, visible);
+       if (ret != RECORDER_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_filename(const gchar *filename)
+{
+       int ret = 0;
+       /*char *err_name = NULL;*/
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       if (filename) {
+               ret = recorder_set_filename(g_mm_handle->hrec, filename);
+               if (ret != RECORDER_ERROR_NONE) {
+                       return FALSE;
+               }
+               return TRUE;
+
+       } else {
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_filename(char **filename, gint *size)
+{
+       int ret = 0;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_get_filename(g_mm_handle->hrec, filename);
+       if (ret != RECORDER_ERROR_NONE) {
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+gboolean cam_mm_get_screennail(MMCamcorderCaptureDataType **scrnl)
+{
+       int ret = 0;
+       char *err_name = NULL;
+
+       MMCamcorderCaptureDataType *capture_struct = NULL;
+       int size = 0;
+       /* This is not the size of screennail buffer, this is a size of MMCamcorderCaptureDataType struct */
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = mm_camcorder_get_attributes(g_mm_handle->hmm, &err_name,
+                                         "captured-screennail",
+                                         &capture_struct, &size, NULL);
+
+       if (ret != CAMERA_ERROR_NONE) {
+               printf("set attr failed - code[%x] name[%s]\n", ret, err_name);
+               free(err_name);
+               err_name = NULL;
+               *scrnl = NULL;
+               return FALSE;
+       }
+
+       *scrnl = capture_struct;
+
+       return TRUE;
+
+}
+#endif
+
+gboolean cam_mm_get_max_size(int *value)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+       ret = recorder_attr_get_time_limit(g_mm_handle->hrec, value);
+       if (ret != RECORDER_ERROR_NONE) {
+               return  FALSE;
+
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_get_max_time(int *value)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_attr_get_time_limit(g_mm_handle->hrec, value);
+       if (ret != RECORDER_ERROR_NONE) {
+               return  FALSE;
+
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_max_size(int max_val)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_attr_set_size_limit(g_mm_handle->hrec, max_val);
+       if (ret != RECORDER_ERROR_NONE) {
+               return  FALSE;
+
+       }
+       return TRUE;
+}
+gboolean cam_mm_get_tag_enable(int *value)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_is_enabled_tag(g_mm_handle->hcam, (bool *)value);
+       if (ret != CAMERA_ERROR_NONE) {
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_tag_enable(gboolean bvalue)
+{
+       int ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       ret = camera_attr_enable_tag(g_mm_handle->hcam, (bool)bvalue);
+       if (ret != CAMERA_ERROR_NONE) {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_mm_set_tag_img_orient(int orient)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       camera_error_e ret;
+       ret = camera_attr_set_tag_orientation(g_mm_handle->hcam, (camera_attr_tag_orientation_e)orient);
+       if (ret != CAMERA_ERROR_NONE) {
+               cam_detail_error_get(ret);
+               return  FALSE;
+
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_file_format(int format)
+{
+       recorder_error_e ret;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+       ret = recorder_set_file_format(g_mm_handle->hrec, format);
+       if (ret != RECORDER_ERROR_NONE) {
+               return  FALSE;
+
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_video_profile(void)
+{
+       recorder_error_e e;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_attr_set_audio_device(g_mm_handle->hrec, RECORDER_AUDIO_DEVICE_MIC);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+
+       e = recorder_set_file_format(g_mm_handle->hrec, RECORDER_FILE_FORMAT_3GP);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_codec(int audio_codec, int video_codec)
+{
+       int ret = 0;
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_set_audio_encoder(g_mm_handle->hrec, audio_codec);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               rec_detail_error_get(ret);
+               return FALSE;
+       }
+       e = recorder_set_video_encoder(g_mm_handle->hrec, video_codec);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_audio_source(int sample_rate, int format, int channel)
+{
+       int ret = 0;
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+       e = recorder_attr_set_audio_samplerate(g_mm_handle->hrec, sample_rate);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               return FALSE;
+       }
+       e = recorder_attr_set_audio_channel(g_mm_handle->hrec, channel);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("set attr failed - code[%x]\n", ret);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_video_source_format(int format)
+{
+       if (format <= CAMERA_PIXEL_FORMAT_INVALID || format > CAMERA_PIXEL_FORMAT_JPEG)
+               return FALSE;
+
+       int err;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       err = camera_set_preview_format(g_mm_handle->hcam, format);
+       if (err != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_get_video_source_format(const char *attribute_name, int *format)
+{
+       DEBUG_TRACE("attribute_name = %s", attribute_name);
+       int err;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       err = camera_get_preview_format(g_mm_handle->hcam, format);
+       if (err != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean  cam_mm_get_front_cam_display_rotate_value(int *value, int *rotate)
+{
+       int err;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       err = camera_attr_get_lens_orientation(g_mm_handle->hcam, value);
+       switch (*value) {
+       case 0:
+               *rotate = CAMERA_ROTATION_NONE;
+               break;
+       case 90:
+               *rotate = CAMERA_ROTATION_90;
+               break;
+       case 180:
+               *rotate = CAMERA_ROTATION_180;
+               break;
+       case 270:
+               *rotate = CAMERA_ROTATION_270;
+               break;
+       default:
+               *rotate = CAMERA_ROTATION_NONE;
+
+       }
+       if (err != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_capture_format(int value)
+{
+       int err;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       err = camera_set_capture_format(g_mm_handle->hcam, value);
+       if (err != CAMERA_ERROR_NONE) {
+
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_mm_get_shutter_sound(int *value)
+{
+/*todo:for lawer policy, capi could not surport it*/
+#ifndef TODO_SURRPORT
+       return cam_mm_get_attr_int(MMCAM_SHUTTER_SOUND, value);
+#else
+       return TRUE;
+#endif
+
+}
+gboolean cam_mm_set_shutter_sound(int value)
+{
+/*todo:for lawer policy, capi could not surport it*/
+#ifndef TODO_SURRPORT
+       return cam_mm_set_attr_int(MMCAM_SHUTTER_SOUND, value);
+#else
+       return TRUE;
+#endif
+
+}
+
+gboolean cam_mm_reset_recording_motion_fps()
+{
+       int ret = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       ret = recorder_attr_set_recording_motion_rate(g_mm_handle->hrec, DEFAULT_REC_FPS);
+       if (ret != RECORDER_ERROR_NONE) {
+
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_preview_start(int mode)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       g_return_val_if_fail(ad, FALSE);
+
+       int ret = (mode == CAM_CAMERA_MODE) ? CAMERA_ERROR_NONE : RECORDER_ERROR_NONE;
+       if (CAM_CAMERA_MODE == mode) {
+
+               ret = camera_start_preview(g_mm_handle->hcam);
+               if (ret != CAMERA_ERROR_NONE) {
+                       if (ret == CAMERA_ERROR_SOUND_POLICY) {
+                               ad->is_calling = CAMERA_ERROR_SOUND_POLICY;
+                       } else if (ret == CAMERA_ERROR_SECURITY_RESTRICTED) {
+                               cam_app_mdm_syspopup(ad);
+                               return FALSE;
+                       } else {
+                               cam_critical(LOG_MM, "camera_start_preview failed");
+                               return FALSE;
+                       }
+               }
+               cam_debug(LOG_MM, " ret : %d", ret);
+
+       }else if (CAM_CAMCORDER_MODE == mode) {
+
+               g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+               ret = recorder_prepare(g_mm_handle->hrec);
+               if (ret != RECORDER_ERROR_NONE) {
+                       if (ret == RECORDER_ERROR_SOUND_POLICY) {
+                               ad->is_calling = RECORDER_ERROR_SOUND_POLICY;
+                       } else if (ret == RECORDER_ERROR_SECURITY_RESTRICTED) {
+                               cam_app_mdm_syspopup(ad);
+                               return FALSE;
+                       } else {
+                               cam_critical(LOG_MM, "camera_start_preview failed");
+                               return FALSE;
+                       }
+               }
+               cam_debug(LOG_MM, " ret : %d", ret);
+       }
+
+       return TRUE;
+
+}
+
+gboolean cam_mm_preview_stop(int mode)
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       if (CAM_CAMERA_MODE == mode) {
+               state = cam_mm_get_cam_state();
+               cam_debug(LOG_MM, " camera state : %d", state);
+               /*todo:please consider recorder and camera*/
+               if (state < 0)
+                       return FALSE;
+
+               switch (state) {
+               case CAMERA_STATE_NONE:
+                       return FALSE;
+                       break;
+               case CAMERA_STATE_CREATED:
+                       /* stop state return TRUE; */
+                       break;
+               case CAMERA_STATE_PREVIEW:
+                       CHECK_MM_ERROR(camera_stop_preview(g_mm_handle->hcam));
+                       break;
+               case CAMERA_STATE_CAPTURING:
+                       return FALSE;
+                       break;
+               default:
+                       break;
+
+               }
+               return TRUE;
+       }else if (CAM_CAMCORDER_MODE == mode) {
+
+               state = cam_mm_get_rec_state();
+               g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+               cam_debug(LOG_MM, " camera state : %d", state);
+               /*todo:please consider recorder and camera*/
+               if (state < 0)
+                       return FALSE;
+
+               switch (state) {
+               case RECORDER_STATE_NONE:
+                       return FALSE;
+                       break;
+               case RECORDER_STATE_CREATED:
+                       /* stop state return TRUE; */
+                       break;
+               case RECORDER_STATE_READY:
+                       CHECK_MM_ERROR(recorder_unprepare(g_mm_handle->hrec));
+                       break;
+               case RECORDER_STATE_RECORDING:
+                       return FALSE;
+                       break;
+               case RECORDER_STATE_PAUSED:
+                       return FALSE;
+                       break;
+               default:
+                       break;
+
+               }
+               return TRUE;
+
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_is_created(void)
+{
+       debug_fenter(LOG_MM);
+       if (g_mm_handle) {
+               return TRUE;
+       }
+       return FALSE;
+}
+
+gboolean cam_mm_create(int camera_type, int mode)
+{
+               CAM_TA_ACUM_ITEM_BEGIN("----cam_mm_create", 0);
+               DEBUG_TRACE
+                       ("--------------------------------START----------------------------");
+               DEBUG_TRACE("camera_type = %d" ,camera_type);
+               if (g_mm_handle) {
+                       cam_critical(LOG_MM, "The mm handle is already created");
+                       return false;
+               }
+               g_return_val_if_fail(g_mm_handle == NULL, FALSE);
+               camera_h hcam;
+               camera_error_e e;
+               e = camera_create(camera_type, &hcam);
+               if (e != CAMERA_ERROR_NONE) {
+                       DEBUG_TRACE("[ERROR] camera_create - error(%d)", e);
+                       return FALSE;
+               }
+               g_return_val_if_fail(hcam, FALSE);
+               recorder_h hrec = NULL;
+               if (mode == CAM_CAMCORDER_MODE) {
+                       recorder_error_e re;
+                       re = recorder_create_videorecorder(hcam, &hrec);
+                       if (re != RECORDER_ERROR_NONE) {
+                               DEBUG_TRACE("[ERROR] camera_create - error(%d)", e);
+                               recorder_destroy(hrec);
+                               camera_destroy(hcam);
+                               return FALSE;
+                       }
+                       g_return_val_if_fail(hcam, FALSE);
+               }
+               g_mm_handle = g_new0(CamMMHandle, 1);
+               if (g_mm_handle) {
+                       g_mm_handle->hcam = hcam;
+                       g_mm_handle->hdev = camera_type;
+                       g_mm_handle->hrec = hrec;
+               }
+               DEBUG_TRACE("camera_type = %d" , g_mm_handle->hdev);
+
+               DEBUG_TRACE("--------------END---------------");
+               CAM_TA_ACUM_ITEM_BEGIN("----cam_mm_create", 0);
+
+               return g_mm_handle ? TRUE : FALSE;
+
+}
+
+gboolean cam_mm_destory(void)
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       g_return_val_if_fail(ad, FALSE);
+       CamAppData *camapp = ad->camapp_handle;
+       g_return_val_if_fail(camapp, FALSE);
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               if (g_mm_handle->hrec) {
+                       state = cam_mm_get_state();
+                       DEBUG_TRACE("camera state : %d\n",
+                              state);
+                       if (state != RECORDER_STATE_CREATED) { /*no need delete*/
+                       /*TODO:now capi, have to change with camera and rec handle*/
+                               printf
+                                   ("[cam_mm_destory] Camera state is not match : %d\n",
+                                    state);
+                               return FALSE;
+                       }
+                       CHECK_MM_ERROR(recorder_destroy(g_mm_handle->hrec));/*TODO:there is issue about in rec,to delete rec and cam handle*/
+                       CHECK_MM_ERROR(camera_destroy(g_mm_handle->hcam));
+                       g_mm_handle->hcam = 0;
+                       g_mm_handle->hrec = 0;
+                       g_mm_handle->hdev = -1;
+
+               }
+       } else if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               state = cam_mm_get_state();
+                               DEBUG_TRACE("camera state : %d\n",
+                      state);
+               if (state != CAMERA_STATE_CREATED) {
+                       printf
+                           ("[cam_mm_destory] Camera state is not match : %d\n",
+                            state);
+                       return FALSE;
+               }
+               CHECK_MM_ERROR(camera_destroy(g_mm_handle->hcam));
+
+               g_mm_handle->hcam = 0;
+               g_mm_handle->hrec = 0;
+               g_mm_handle->hdev = -1;
+       }
+
+       g_free(g_mm_handle);
+       g_mm_handle = NULL;
+
+       return TRUE;
+}
+
+gboolean cam_mm_continuous_capture_start(int count, int interval, camera_capturing_cb capturing_cb, camera_capture_completed_cb completed_cb , void *user_data)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       cam_debug(LOG_MM, "");
+       CAM_TA_ACUM_ITEM_END("        camera key to capture start", 0);
+
+       if (cam_mm_get_state() == CAMERA_STATE_PREVIEW) {
+               CAM_TA_ACUM_ITEM_BEGIN("camera_start_continuous_capture", 0);
+               CHECK_MM_ERROR(camera_start_continuous_capture(g_mm_handle->hcam, count, interval, capturing_cb, completed_cb, user_data));
+               CAM_TA_ACUM_ITEM_END("camera_start_continuous_capture", 0);
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, cam_mm_get_state());
+               return FALSE;
+       }
+       return TRUE;
+}
+
+
+gboolean cam_mm_capture_start(camera_capturing_cb capturing_cb , camera_capture_completed_cb completed_cb , void *user_data)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       cam_debug(LOG_MM, "");
+       CAM_TA_ACUM_ITEM_END("        camera key to capture start", 0);
+
+       if (cam_mm_get_state() == CAMERA_STATE_PREVIEW
+               || cam_mm_get_state() == RECORDER_STATE_RECORDING) {
+               CAM_TA_ACUM_ITEM_BEGIN("camera_start_capture", 0);
+               CHECK_MM_ERROR(camera_start_capture(g_mm_handle->hcam, capturing_cb, completed_cb, user_data));
+               CAM_TA_ACUM_ITEM_END("mm_camcorder_capture_start", 0);
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, cam_mm_get_state());
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_capture_stop(gboolean skip_preview, CamMode mode)
+{
+       int state = CAMERA_STATE_NONE;/*TODO:now the value is same to record*/
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       cam_debug(LOG_MM, " start");
+
+       state = cam_mm_get_state();
+       if (state == RECORDER_STATE_READY && skip_preview == FALSE && mode == CAM_CAMCORDER_MODE) {
+               CHECK_MM_ERROR(recorder_prepare(g_mm_handle->hrec));
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, cam_mm_get_state());
+               return FALSE;
+       }
+
+       cam_debug(LOG_MM, " done");
+
+       return TRUE;
+}
+
+gboolean cam_mm_rec_start()
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       state = cam_mm_get_state();
+       if ((state == RECORDER_STATE_READY)
+           || (state == RECORDER_STATE_PAUSED)) {
+               CHECK_MM_ERROR(recorder_start(g_mm_handle->hrec));
+       } else {
+               DEBUG_TRACE("operation failed - state:%d \n", state);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_rec_stop(gboolean to_stop)
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       state = cam_mm_get_state();
+       if ((state == RECORDER_STATE_RECORDING)
+           || (state == RECORDER_STATE_PAUSED)) {
+               if (!to_stop) {
+                       CHECK_MM_ERROR(recorder_commit(g_mm_handle->hrec));
+               } else {
+                       CHECK_MM_ERROR(recorder_commit(g_mm_handle->hrec));
+                       CHECK_MM_ERROR(recorder_unprepare(g_mm_handle->hrec));
+               }
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, state);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_rec_pause()
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       state = cam_mm_get_state();
+       if ((state == RECORDER_STATE_RECORDING)) {
+               CHECK_MM_ERROR(recorder_pause(g_mm_handle->hrec));
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, state);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_rec_cancel()
+{
+       int state = 0;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       state = cam_mm_get_state();
+       if ((state == RECORDER_STATE_RECORDING)
+           || (state == RECORDER_STATE_PAUSED)) {
+               CHECK_MM_ERROR(recorder_cancel(g_mm_handle->hrec));
+       } else {
+               printf("[%s:%d] operation failed - state:%d \n", __func__,
+                      __LINE__, state);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_session_init(sound_session_type_e session_type)
+{
+       int ret = SOUND_MANAGER_ERROR_NONE;
+       if (ret != sound_manager_set_session_type(session_type)) {
+               DEBUG_TRACE("[%s:%d] operation failed - session_type:%d \n",
+                      __func__, __LINE__, session_type);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+gboolean cam_mm_start_focusing(gint af_mode)
+{
+       int state = 0;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       cam_debug(LOG_UI, "");
+       state = cam_mm_get_state();
+       if (state == CAMERA_STATE_PREVIEW
+               || state == CAMERA_STATE_CREATED) {
+               if (af_mode) {
+                       /*continuous AF*/
+                       CHECK_MM_ERROR(camera_start_focusing(g_mm_handle->hcam, TRUE));
+               } else {
+                       /*Touch Auto AF*/
+                       CHECK_MM_ERROR(camera_start_focusing(g_mm_handle->hcam, FALSE));
+               }
+       } else {
+               DEBUG_TRACE("Start focus operation failed - invalid state:%d \n", state);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_mm_stop_focusing()
+{
+       int state = 0;
+
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       cam_debug(LOG_UI, "");
+
+       state = cam_mm_get_state();
+       if (state == CAMERA_STATE_PREVIEW
+               || state == CAMERA_STATE_CREATED
+               || state == RECORDER_STATE_RECORDING) {
+               /*TODO:please think rec mod, but now the rec and cam mode state value is same*/
+               CHECK_MM_ERROR(camera_cancel_focusing(g_mm_handle->hcam));
+       } else {
+               printf
+                   ("[%s:%d] Stop focus operation failed - invalid state:%d \n",
+                    __func__, __LINE__, state);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_mm_set_error_cb(camera_error_cb error_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       e = camera_set_error_cb(g_mm_handle->hcam, error_cb, data);
+               if (e != CAMERA_ERROR_NONE) {
+                       DEBUG_TRACE("[ERROR] camera_set_error_cb - error(%d)", e);
+                       return FALSE;
+               }
+               return TRUE;
+
+}
+
+gboolean cam_mm_unset_error_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+       e = camera_unset_error_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_error_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_state_changed_cb(camera_state_changed_cb state_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_state_changed_cb(g_mm_handle->hcam, state_cb, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_set_state_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_unset_state_changed_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_unset_state_changed_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_state_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+
+gboolean cam_mm_set_focus_changed_cb(camera_focus_changed_cb focus_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_focus_changed_cb(g_mm_handle->hcam, focus_cb, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_set_focus_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_unset_focus_changed_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_unset_focus_changed_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_focus_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_preview_cb(camera_preview_cb preview_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_preview_cb(g_mm_handle->hcam, preview_cb, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_set_preview_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_unset_preview_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_unset_preview_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_preview_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+#ifndef CAPI_CAMERA_NEW/*TODO:the capi have changed, but they have not upload pkg,if uploaded, delete these*/
+gboolean cam_mm_set_capturing_cb(camera_capturing_cb capture_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_capturing_cb(g_mm_handle->hcam, capture_cb, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] cam_mm_set_capturing_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_unset_capturing_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_unset_capturing_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_capturing_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_set_capture_completed_cb(camera_capture_completed_cb capture_completed_cb, void *data)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_capture_completed_cb(g_mm_handle->hcam, capture_completed_cb, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] cam_mm_set_capture_completed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_unset_capture_completed_cb(void)
+{
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_unset_capture_completed_cb(g_mm_handle->hcam);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] camera_unset_capture_completed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+#endif
+
+gboolean cam_mm_set_camera_interrupted_cb(camera_interrupted_cb callback, void *data){
+
+       camera_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hcam, FALSE);
+
+       e = camera_set_interrupted_cb(g_mm_handle->hcam, callback, data);
+       if (e != CAMERA_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_state_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+gboolean cam_mm_set_recorder_interrupted_cb(recorder_interrupted_cb callback, void *data){
+
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_set_interrupted_cb(g_mm_handle->hrec, callback, data);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_state_changed_cb - error(%d)", e);
+               return FALSE;
+       }
+       return TRUE;
+}
+
+gboolean cam_mm_recorder_set_state_changed_cb(recorder_state_changed_cb callback, void* user_data)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_set_state_changed_cb(g_mm_handle->hrec, callback, user_data);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_state_changed_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_recorder_unset_state_changed_cb(void)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_unset_state_changed_cb(g_mm_handle->hrec);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_state_changed_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_recorder_set_recording_status_cb(recorder_recording_status_cb callback, void* user_data)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_set_recording_status_cb(g_mm_handle->hrec, callback, user_data);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_recording_status_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_recorder_unset_recording_status_cb(void)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_unset_recording_status_cb(g_mm_handle->hrec);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_unset_recording_status_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_recorder_set_recording_limit_reached_cb(recorder_recording_limit_reached_cb callback, void* user_data)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_set_recording_limit_reached_cb(g_mm_handle->hrec, callback, user_data);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_set_recording_status_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_recorder_unset_recording_limit_reached_cb(void)
+{
+       recorder_error_e e;
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       e = recorder_unset_recording_limit_reached_cb(g_mm_handle->hrec);
+       if (e != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("[ERROR] recorder_unset_recording_status_cb - error(%d)", e);
+               rec_detail_error_get(e);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+
+gboolean cam_mm_set_recording_motion(double rate)
+{
+       g_return_val_if_fail(g_mm_handle, FALSE);
+       g_return_val_if_fail(g_mm_handle->hrec, FALSE);
+
+       int err;
+       err = recorder_attr_set_recording_motion_rate(g_mm_handle->hrec, rate);
+       if (err != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("recorder_attr_set_recording_motion_rate failed");
+               return FALSE;
+       }
+
+       err = recorder_set_video_encoder(g_mm_handle->hrec, RECORDER_VIDEO_CODEC_H264);
+       if (err != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("recorder_set_video_encoder failed");
+               return FALSE;
+       }
+
+       err = recorder_attr_set_video_encoder_bitrate(g_mm_handle->hrec, 10000000);
+       if (err != RECORDER_ERROR_NONE) {
+               DEBUG_TRACE("recorder_attr_set_video_encoder_bitrate failed");
+               return FALSE;
+       }
+
+       err = recorder_set_file_format(g_mm_handle->hrec, RECORDER_FILE_FORMAT_3GP);
+       if (err < 0) {
+               cam_debug(LOG_MM,
+                         "High speed recording. mm_camcorder_set_attributes fail. %d)", err);
+               return FALSE;
+       }
+       return TRUE;
+
+}
+gboolean cam_mm_get_caps_minmax(unsigned int type, int *min, int *max)
+{
+       if (!cam_mm_is_created()) {
+               cam_debug(LOG_CAM, "cam_mm_is_created() false");
+               return FALSE;
+       }
+
+       gboolean ret = TRUE;
+       int tempmin, tempmax = 0;
+
+       switch(type) {
+       case CAM_CP_FUNC_ZOOM:
+               {
+                       if (camera_attr_get_zoom_range(g_mm_handle->hcam, &tempmin, &tempmax)
+                               != CAMERA_ERROR_NONE) {
+                               cam_debug(LOG_CAM, "camera_attr_get_zoom_range() is false");
+                               ret = FALSE;
+                        }
+               }
+               break;
+       default:
+               {
+                       cam_debug(LOG_CAM, "not support get_minmax() about this type[%d]", type);
+                       ret = FALSE;
+               }
+               break;
+       }
+
+       if (!ret) {
+               tempmin = 0;
+               tempmax = 0;
+       }
+
+       *min = tempmin;
+       *max = tempmax;
+       return ret;
+
+}
+
+gboolean cam_mm_get_caps_range(unsigned int type, unsigned int *caps, void *user_data)
+{
+       if (!cam_mm_is_created()) {
+               cam_debug(LOG_CAM, "cam_mm_is_created() false");
+               return FALSE;
+       }
+
+       g_caps = 0;
+       g_caps_cb_cnt = 0;
+       gboolean ret = TRUE;
+
+       switch(type) {
+       case CAM_CP_FUNC_EFFECT_MODE:
+               {
+                       if (camera_attr_foreach_supported_effect(g_mm_handle->hcam,
+                               (camera_attr_supported_effect_cb)__get_effect_cb, user_data) != CAMERA_ERROR_NONE ) {
+                               cam_debug(LOG_CAM, "camera_attr_foreach_supported_effect() is fail");
+                               ret = FALSE;
+                       }
+               }
+               break;
+       default:
+               {
+                       cam_debug(LOG_CAM, "not support get_range() about this type[%d]", type);
+                       ret = FALSE;
+               }
+               break;
+       }
+
+       *caps = g_caps;
+       return ret;
+}
+
+const int cam_mm_get_caps_cb_cnt()
+{
+       return g_caps_cb_cnt;
+}
+
+static void __get_effect_cb(camera_attr_effect_mode_e effect, void *user_data)
+{
+       cam_retm_if(effect < CAMERA_ATTR_EFFECT_NONE|| effect > CAMERA_ATTR_EFFECT_SKETCH, "input is invalid");
+
+       unsigned int uRet = cam_effect_dev_convert_caps(effect);
+       if (uRet != 0 ) {
+               g_caps |= uRet;
+               g_caps_cb_cnt++;
+       }
+}
+
+//end of file
diff --git a/src/cam_popup.c b/src/cam_popup.c
new file mode 100644 (file)
index 0000000..a91ed7e
--- /dev/null
@@ -0,0 +1,290 @@
+/*
+ * 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 "cam_popup.h"
+#include "cam_debug.h"
+#include "cam.h"
+
+static GList *g_pop_list = NULL;
+
+/* remove popup which is add by cam_app_*_popup() functions */
+void cam_popup_remove(Evas_Object *popup)
+{
+       if (popup == NULL)
+               return;
+       GList *popup_list = NULL;
+       popup_list = g_pop_list;
+       g_pop_list = g_list_remove(popup_list, popup);
+       evas_object_del(popup);
+       popup = NULL;
+}
+
+void cam_popup_remove_all(void)
+{
+       GList *popup_list = NULL;
+       popup_list = g_pop_list;
+
+       if (popup_list) {
+               while (popup_list) {
+                       GList *next = popup_list->next;
+                       evas_object_del(popup_list->data);
+                       popup_list->data = NULL;
+                       popup_list = next;
+               }
+               g_list_free(popup_list);
+               g_pop_list = NULL;
+       }
+       return;
+}
+
+#ifdef USE_ELM_POPUP /*it is not use*/
+
+/* popup with one button,  ELM_POPUP_RESPONSE_OK is sent along with response signal. */
+void cam_popup_confirm_add(Evas_Object *window, const char *message,
+                          const char *btn_name, cam_popup_respons_cb callback,
+                          void *user_data)
+{
+
+       Evas_Object *popup = NULL;
+
+       if (callback == NULL) { /* response_cb should be set */
+               cam_critical(LOG_UI,
+                            "add info popup [%s]  failed, callback is NULL ",
+                            message);
+               return;
+       }
+
+       popup = elm_popup_add_with_buttons(window, NULL, message,
+                                          1, btn_name, ELM_POPUP_RESPONSE_OK,
+                                          NULL);
+
+       if (popup == NULL) {
+               cam_critical(LOG_UI, "add confirm popup [%s]  failed ",
+                            message);
+               return;
+       }
+       evas_object_smart_callback_add(popup, "response", callback, user_data);
+       evas_object_show(popup);
+
+       g_pop_list = g_list_append(g_pop_list, popup);
+
+       return;
+}
+
+/* popup with two button, ELM_POPUP_RESPONSE_OK/ELM_POPUP_RESPONSE_CANCEL is sent along with response signal. */
+void cam_popup_question_add(Evas_Object *window, const char *message,
+                           const char *btn_n_1, const char *btn_n_2,
+                           cam_popup_respons_cb callback, void *user_data)
+{
+       Evas_Object *popup = NULL;
+
+       if (callback == NULL) { /* response_cb should be set */
+               cam_critical(LOG_UI,
+                            "add info popup [%s]  failed, callback is NULL ",
+                            message);
+               return;
+       }
+
+       popup = elm_popup_add_with_buttons(window, NULL, message, 2,
+                                          btn_n_1, btn_n_2,
+                                          ELM_POPUP_RESPONSE_OK,
+                                          ELM_POPUP_RESPONSE_CANCEL, NULL);
+
+       if (popup == NULL) {
+               cam_critical(LOG_UI, "add question popup [%s]  failed ",
+                            message);
+               return;
+       }
+       evas_object_smart_callback_add(popup, "response", callback, user_data);
+       evas_object_show(popup);
+
+       g_pop_list = g_list_append(g_pop_list, popup);
+
+       return;
+}
+#else                          /* #ifdef USE_ELM_POPUP */
+void
+cam_popup_question_add(Evas_Object *window, const char *message,
+                      const char *lbtn_name, void (*left_btn_cb) (void *data,
+                                                                  Evas_Object
+                                                                  *obj,
+                                                                  void
+                                                                  *event_info),
+                      const char *rbtn_name, void (*right_btn_cb) (void *data,
+                                                                   Evas_Object
+                                                                   *obj,
+                                                                   void
+                                                                   *event_info))
+{
+       Evas_Object *notify = NULL;
+       Evas_Object *layout = NULL;
+       Evas_Object *label = NULL;
+       Evas_Object *button = NULL;
+       int width = 0;
+       char buf[50] = { '\0', };
+
+       notify = elm_notify_add(window);
+       evas_object_size_hint_weight_set(notify, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_notify_orient_set(notify, ELM_NOTIFY_ORIENT_CENTER);
+       elm_notify_allow_events_set(notify, EINA_FALSE);
+       evas_object_show(notify);
+
+       layout = elm_layout_add(window);
+       elm_layout_theme_set(layout, "standard", "notify", "style3");
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_object_content_set(notify, layout);
+       evas_object_show(layout);
+
+       label = elm_label_add(window);
+
+       elm_object_style_set(label, "popup/description");
+       edje_object_part_geometry_get((Evas_Object *)
+                                     elm_layout_edje_get(layout),
+                                     "elm.swallow.content", NULL, NULL, &width,
+                                     NULL);
+       elm_label_line_wrap_set(label, EINA_TRUE);
+       elm_label_wrap_width_set(label, width);
+
+       snprintf(buf, sizeof(buf), "<align=middle>%s", message);
+
+       elm_object_text_set(label, buf);
+       elm_object_part_content_set(layout, "elm.swallow.content", label);
+       evas_object_show(label);
+
+       if (lbtn_name && left_btn_cb) {
+               button = elm_button_add(window);
+               elm_object_text_set(button, lbtn_name);
+               elm_object_part_content_set(layout, "elm.swallow.left", button);
+               evas_object_smart_callback_add(button, "focused", left_btn_cb,
+                                              notify);
+               evas_object_show(button);
+       }
+
+       if (rbtn_name && right_btn_cb) {
+               button = elm_button_add(window);
+               elm_object_text_set(button, rbtn_name);
+               elm_object_part_content_set(layout, "elm.swallow.right", button);
+               evas_object_smart_callback_add(button, "focused", right_btn_cb,
+                                              notify);
+               evas_object_show(button);
+       }
+
+       g_pop_list = g_list_append(g_pop_list, notify);
+
+       return;
+}
+#endif                         /*  #ifdef USE_ELM_POPUP */
+
+Evas_Object *cam_popup_guide_screen_add(Evas_Object *window, const char *message)
+{
+       cam_debug(LOG_UI, "");
+
+       Evas_Object *ctxpopup = NULL;
+       ctxpopup = elm_ctxpopup_add(window);
+
+       if (!ctxpopup) {
+               cam_critical(LOG_UI, "critical : can't make ctx popup");
+               return NULL;
+       } else {
+               elm_object_style_set(ctxpopup, "beat_winset_test/imageeditor");
+               elm_ctxpopup_item_append(ctxpopup, _("Flickr"), NULL, NULL,
+                                        ctxpopup);
+               evas_object_move(ctxpopup, 200, 200);
+               evas_object_show(ctxpopup);
+       }
+
+       return ctxpopup;
+}
+
+// create popup with progress bar
+gboolean cam_progress_popup_create(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->progress_popup != NULL)
+               cam_progress_popup_delete(ad);
+
+       // create popup
+       ad->progress_popup = cam_app_load_edj(ad->win_main, CAM_UTILS_EDJ_NAME, "progress_popup");
+       cam_retvm_if(ad->progress_popup == NULL, FALSE, "progress_popup is NULL");
+
+       // create bar
+       ad->progress_popup_bar = elm_progressbar_add(ad->win_main);
+       cam_retvm_if(ad->progress_popup_bar == NULL, FALSE, "Cannot add progressbar object\n");
+
+
+       Evas_Object *pb = ad->progress_popup_bar;
+       edje_object_part_swallow(_EDJ(ad->progress_popup), "progress_popup_bar", pb);
+
+       elm_object_style_set(pb, "list_progress");
+       evas_object_size_hint_align_set(pb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       evas_object_show(ad->progress_popup);
+
+       return TRUE;
+}
+
+gboolean cam_progress_popup_set_text(void *data, char *text)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->progress_popup == NULL )
+               return FALSE;
+
+       edje_object_part_text_set(_EDJ(ad->progress_popup), "progress_popup_text", text);
+
+       return TRUE;
+}
+
+gboolean cam_progress_popup_set_bar_value(void *data, double value)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->progress_popup_bar) {
+               elm_progressbar_value_set(ad->progress_popup_bar, value);
+               evas_object_raise(ad->progress_popup_bar);
+       }
+       else {
+               cam_debug(LOG_UI, "ad->progress_popup_bar is NULL");
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_progress_popup_delete(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->progress_popup != NULL) {
+               evas_object_del(ad->progress_popup);
+               ad->progress_popup = NULL;
+       }
+
+       if (ad->progress_popup_bar != NULL) {
+               evas_object_del(ad->progress_popup_bar);
+               ad->progress_popup_bar = NULL;
+       }
+
+       return TRUE;
+}
diff --git a/src/cam_rec.c b/src/cam_rec.c
new file mode 100755 (executable)
index 0000000..240d709
--- /dev/null
@@ -0,0 +1,477 @@
+/*
+ * 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 <X11/Xlib.h>
+#include <X11/keysymdef.h>
+#include <sys/wait.h>
+#include <pthread.h>
+#include <power.h>
+
+#include "cam.h"
+#include "cam_app.h"
+#include "cam_sound.h"
+#include "cam_file.h"
+#include "cam_ta.h"
+#include "cam_error.h"
+#include "cam_mm.h"
+#include "cam_rec.h"
+#include "cam_indicator_edc_callback.h"
+#include "cam_recording_edc_callback.h"
+#include "camera_utils.h"
+#include "cam_popup.h"
+#include "cam_common_edc_callback.h"
+#include "cam_toolbar_edc_callback.h"
+
+#define USE_TMP_FILE
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+static gint __cam_rec_sound_index_get(gint setting_index, gboolean start)
+{
+       gint index = -1;
+
+       if (start) {            /*  start sound */
+               switch (setting_index) {
+               case CAM_SETTINGS_SOUND_1:
+                       index = CAM_SOUND_EFFECT_REC_START3;
+                       break;
+               case CAM_SETTINGS_SOUND_2:
+                       index = CAM_SOUND_EFFECT_REC_START2;
+                       break;
+               case CAM_SETTINGS_SOUND_3:
+                       index = CAM_SOUND_EFFECT_REC_START3;
+                       break;
+               default:
+                       break;
+
+               }
+       } else {                /*  commit sound */
+               switch (setting_index) {
+
+               case CAM_SETTINGS_SOUND_1:
+                       index = CAM_SOUND_EFFECT_REC_COMMIT3;
+                       break;
+               case CAM_SETTINGS_SOUND_2:
+                       index = CAM_SOUND_EFFECT_REC_COMMIT2;
+                       break;
+               case CAM_SETTINGS_SOUND_3:
+                       index = CAM_SOUND_EFFECT_REC_COMMIT3;
+                       break;
+               default:
+                       break;
+               }
+       }
+       return index;
+}
+#endif
+static gchar *__get_tmpfile_name()
+{
+       char tmpfile_name[256] = { 0 };
+       gchar *file_path = NULL;
+       file_path = (gchar *)cam_app_get_target_path();
+
+       snprintf(tmpfile_name, sizeof(tmpfile_name), "%s%s", file_path,
+                TMPFILE_PREFIX);
+       DEBUG_TRACE("#####################tmpfile_name=%s", tmpfile_name);
+
+       if (g_file_test(tmpfile_name, G_FILE_TEST_EXISTS)) {
+               DEBUG_TRACE("Error : tmp file exist on the %s", file_path);
+               cam_remove_tmp_file();
+               return NULL;
+       }
+
+       return g_strdup(tmpfile_name);
+}
+
+gboolean cam_video_record_start(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       gchar *filename = NULL;
+
+       gint64 remain = 0;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       if (ad->is_recording == TRUE) {
+               DEBUG_TRACE("Camera app is recording");
+               return TRUE;
+       }
+       if (ad->is_rotating == TRUE) {
+               DEBUG_TRACE("now in rotating target, do not start recording");
+               return TRUE;
+       }
+
+       DEBUG_TRACE("start recording !!");
+
+       if (ad->timer_activated) {
+               CAM_UI_LOG("timer activated!");
+               return true;
+       }
+       gchar* target_path = (gchar*)cam_app_get_target_path();
+       if (target_path != NULL) {
+               remain = cam_get_free_space(target_path);
+       }
+
+       if (remain <= REC_MMS_MIN_SPACE) {
+               cam_app_notice_popup(ad, _("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"),
+                                    cam_app_popup_response_cb);
+               return TRUE;
+       }
+
+#ifdef USE_TMP_FILE
+       filename = __get_tmpfile_name();
+#else
+       filename = cam_app_get_next_filename();
+#endif
+
+       if (filename) {
+               cam_debug(LOG_UI, "FILE NAME : %s", filename);
+               if (!cam_mm_set_filename(filename)) {
+                       cam_critical(LOG_MM, "cannot set filename");
+                       return FALSE;
+               }
+               free(filename);
+               filename = NULL;
+       } else {
+               cam_critical(LOG_MM, "cannot get filename");
+               return FALSE;
+       }
+
+       DEBUG_TRACE("camapp_handle->resolution value is %d ",
+                    camapp->resolution);
+       if (camapp->resolution >= CAM_RESOLUTION(1280, 720)) {
+               ad->camcorder_rotate = CAMERA_ROTATION_NONE;
+       }
+
+/* flash on */
+       if (camapp->flash > CAM_FLASH_OFF) {
+               GValue value = { 0 };
+               CAM_GVALUE_SET_INT(value, CAM_FLASH_MOVIE_ON);
+               cam_handle_value_set(ad, PROP_FLASH, &value);
+       }
+       if (camapp->focus_state != CAM_FOCUS_STATUS_FOCUSED) {
+               if (!ad->camapp_handle->key_lock) {
+                       ad->camapp_handle->key_lock = TRUE;
+                       camapp->focus_mode = CAM_FOCUS_MODE_CONTINUOUS;
+                       if (!cam_camera_key_half_press(ad)) {
+                               DEBUG_TRACE("cam_camera_key_half_press failed");
+                               return FALSE;
+                       }
+                       ad->camapp_handle->key_lock = FALSE;
+               }
+       }
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+/* play start effect sound */
+       cam_sound_play(__cam_rec_sound_index_get(camapp->shutter_sound, TRUE),
+                      ad);
+#endif
+/* set sound path for recording MIC */
+       cam_sound_set_mic();
+
+/* mm rec */
+       if (!cam_mm_rec_start(NULL)) {
+               cam_critical(LOG_MM, "cam_mm_rec_start failed");
+               cam_app_notice_popup(data,
+                                    "Recording is failed",
+                                    cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+       /* set recording state */
+       ad->is_recording = TRUE;
+
+/* change recording view */
+
+       if (load_recording_edje(ad)) {
+               cam_critical(LOG_UI, "load_recording_edje failed");
+               cam_video_record_cancel(ad);
+               return FALSE;
+       }
+
+       if (ad->indicator_edje)
+               load_setting_values(ad);
+       else
+               cam_indicator_create(ad);
+
+       if (cam_mm_get_state() == RECORDER_STATE_RECORDING
+               && (camapp->camera_mode == CAM_CAMCORDER_MODE)
+               ) {
+               cam_app_get_preview_offset_coordinate(ad);
+       }
+
+       return TRUE;
+}
+
+gboolean cam_video_record_resume(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (!cam_mm_rec_start(NULL)) {
+               cam_critical(LOG_MM, "cam_mm_rec_start failed");
+               cam_app_notice_popup(data,
+                                    "Recording is failed",
+                                    cam_app_timeout_notice_response_cb);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_video_record_pause(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (!cam_mm_rec_pause(NULL)) {
+               cam_critical(LOG_MM, "cam_mm_rec_start failed");
+               return FALSE;
+       }
+       return TRUE;
+}
+Eina_Bool cam_video_idler_record_stop(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       cam_video_record_stop(ad);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+gboolean cam_video_record_stop(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       gboolean to_stop = FALSE;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+       ad->is_recording = FALSE;
+       if (ad->recording_commit) {
+               ecore_idler_del(ad->recording_commit);
+               ad->recording_commit = NULL;
+       }
+/*  check to_stop val */
+
+       if (!cam_mm_stop_focusing()){
+               cam_critical(LOG_MM, "cam_mm_stop_focusing error ");
+       }
+/* mm stop rec */
+       if (!cam_mm_rec_stop(to_stop)) {
+               cam_critical(LOG_MM, "cam_mm_rec_stop failed");
+               cam_app_notice_popup(data,
+                                    "Recording is failed",
+                                    cam_app_timeout_notice_response_cb);
+       }
+
+       if (camapp->flash > CAM_FLASH_OFF) {
+               GValue value = { 0 };
+               CAM_GVALUE_SET_INT(value, CAM_FLASH_ON);
+               cam_handle_value_set(ad, PROP_FLASH, &value);
+       }
+
+/* set sound path for effect sound */
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+/* play end effect sound */
+       cam_sound_play(__cam_rec_sound_index_get(camapp->shutter_sound, FALSE),
+                      ad);
+#endif
+/*      cam_sound_play(CAM_SOUND_EFFECT_REC_COMMIT); */
+
+       return TRUE;
+}
+
+gboolean cam_video_record_cancel(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       debug_fenter(LOG_UI);
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+/*mm stop rec */
+       if (!cam_mm_rec_cancel(NULL)) {
+               cam_critical(LOG_MM, "cam_mm_rec_cancel failed");
+       }
+
+       unload_recording_edje(ad);
+       camapp->rec_elapsed = 0;
+       cam_toolbar_update(ad);
+
+       if (ad->indicator_edje)
+               load_setting_values(ad);
+       else
+               cam_indicator_create(ad);
+
+
+       return TRUE;
+}
+
+/* Idler of capture callback management. wh01.cho@samsung.com. 2010-12-15. */
+Eina_Bool cam_video_capture_handle_idler(void *itm)
+{
+       CamIdlerItem *item = (CamIdlerItem *) itm;
+       struct appdata *ad = NULL;
+       cam_retvm_if(!item, ECORE_CALLBACK_CANCEL, "CamIdlerItem is NULL");
+
+       ad = (struct appdata *)item->data;
+       cam_retvm_if(!ad, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+
+       ad->capture_cb_list = g_list_remove(ad->capture_cb_list, item->idler);
+       free(item);
+       item = NULL;
+
+       return cam_video_capture_handle(ad);
+}
+
+Eina_Bool cam_video_capture_handle(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+               /* set recording state */
+       ad->is_recording = FALSE;
+
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, ECORE_CALLBACK_CANCEL,
+                    "camapp_handle is NULL");
+
+       cam_debug(LOG_FILE, "");
+
+       unload_recording_edje(ad);
+       camapp->rec_elapsed = 0;
+       cam_toolbar_update(ad);
+
+       if (ad->indicator_edje)
+               load_setting_values(ad);
+       else
+               cam_indicator_create(ad);
+
+       if (camapp->filename) {
+               GError *error = NULL;
+
+               cam_debug(LOG_FILE, "tmp file : %s", camapp->filename);
+
+#ifdef USE_TMP_FILE
+               gchar *filename = NULL;
+               filename = cam_app_get_next_filename();
+
+               if (filename) {
+                       cam_debug(LOG_UI, "FILE NAME : %s", filename);
+
+                       rename(camapp->filename, filename);
+                       sync();
+                       free(camapp->filename);
+                       camapp->filename = strdup(filename);
+
+                       free(filename);
+                       filename = NULL;
+
+                       if (!g_file_test
+                           (camapp->filename,
+                            G_FILE_TEST_EXISTS | G_FILE_TEST_IS_REGULAR)) {
+                               cam_critical(LOG_FILE,
+                                            "The File is not existed");
+                               return ECORE_CALLBACK_CANCEL;
+                       }
+               } else {
+                       cam_critical(LOG_MM, "cannot get filename");
+                       return ECORE_CALLBACK_CANCEL;
+               }
+#endif
+               if (!cam_file_register(camapp->filename, &error)) {
+                       cam_critical(LOG_FILE, "cam_file_register fail");
+                       if (error != NULL) {
+                               cam_critical(LOG_FILE,
+                                            "cam_file_register error [%s]",
+                                            error->message);
+                               g_error_free(error);
+                               error = NULL;
+                       }
+               }
+               if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL)
+                       cam_app_update_thumbnail();
+               ad->remained_count--;
+       }
+
+       switch (camapp->rec_stop_type) {
+       case CAM_REC_STOP_UNEXPECTED:
+               break;
+       case CAM_REC_STOP_NORMAL:
+               break;
+       case CAM_REC_STOP_LOW_BATTERY:
+               cam_app_exit(ad);
+               return ECORE_CALLBACK_CANCEL;
+               break;
+       case CAM_REC_STOP_ASM:
+               break;
+       case CAM_REC_STOP_MAX_SIZE:
+               break;
+       case CAM_REC_STOP_TIME_LIMIT:
+               break;
+       case CAM_REC_STOP_NO_SPACE:
+               cam_app_notice_popup(ad, _("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY"),
+                                    cam_app_popup_response_cb);
+               break;
+       case CAM_REC_STOP_USB_CONN:
+               break;
+       case CAM_REC_STOP_POWER_KEY:
+               power_unlock_state(POWER_STATE_NORMAL);
+               break;
+       default:
+               break;
+       }
+       camapp->rec_stop_type = CAM_REC_STOP_UNEXPECTED;
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               DEBUG_TRACE("appcore_state =%d ", ad->appcore_state);
+               if (ad->appcore_state == CAM_APPCORE_PAUSE_STATE) {
+                       cam_app_exit(ad);
+                       return ECORE_CALLBACK_CANCEL;
+               }
+               if(!((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "gallery") == 0))) {
+                       cam_app_mouse_event_deinit(ad);
+                       if (!cam_app_run_image_viewer_ug(ad, camapp->filename)) {
+                               cam_app_mouse_event_init(ad);
+                               return ECORE_CALLBACK_CANCEL;
+                       }
+               }
+       }
+
+       if (camapp->review) {
+               cam_app_black_screen_show(ad, -1);
+               DEBUG_TRACE(" review on in recording mode");
+               cam_app_mouse_event_deinit(ad);
+               if (!cam_app_run_image_viewer_ug(ad, camapp->filename)) {
+                       cam_app_mouse_event_init(ad);
+
+                       return ECORE_CALLBACK_CANCEL;
+               }
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+}
diff --git a/src/cam_sound.c b/src/cam_sound.c
new file mode 100644 (file)
index 0000000..38c53aa
--- /dev/null
@@ -0,0 +1,263 @@
+/*
+ * 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 <sound_manager.h>
+#include <wav_player.h>
+#include <pthread.h>
+#include <vconf.h>
+#include <errno.h>
+#include <sys/time.h>
+#include "cam.h"
+#include "cam_sound.h"
+/*
+#include "cam_sound_private.h"
+*/
+#include "cam_debug.h"
+#include "cam_ta.h"
+#include "cam_mm.h"
+
+#define SOUND_TIMEOUT_SEC      2
+
+static gchar **sound_files = NULL;
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+pthread_mutex_t sound_lock = PTHREAD_MUTEX_INITIALIZER;
+pthread_cond_t sound_cond = PTHREAD_COND_INITIALIZER;
+#endif
+
+static void cam_sound_callback(int id, void *data);
+
+gboolean cam_sound_init(GError **error)
+{
+       debug_fenter(LOG_UI);
+
+       if (!sound_files) {
+               sound_files = g_new0(gchar *, CAM_SOUND_EFFECT_NUM);
+               g_return_val_if_fail(sound_files, FALSE);
+
+               int i;
+               for (i = 0; i < CAM_SOUND_EFFECT_NUM; i++)
+                       sound_files[i] = NULL;
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+               cam_sound_set(CAM_SOUND_EFFECT_SHUTTER1,
+                             SOUND_PATH "/Shutter_01.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_SHUTTER2,
+                             SOUND_PATH "/Shutter_02.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_SHUTTER3,
+                             SOUND_PATH "/Shutter_03.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_START1,
+                             SOUND_PATH "/cam_start_01.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_START2,
+                             SOUND_PATH "/cam_start_02.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_START3,
+                             SOUND_PATH "/cam_start_03.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_COMMIT1,
+                             SOUND_PATH "/cam_stop_01.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_COMMIT2,
+                             SOUND_PATH "/cam_stop_02.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_REC_COMMIT3,
+                             SOUND_PATH "/cam_stop_03.wav");
+#endif
+               cam_sound_set(CAM_SOUND_EFFECT_TICK, SOUND_PATH "/count.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_AF_OK, SOUND_PATH "/af_ok.wav");
+               cam_sound_set(CAM_SOUND_EFFECT_AF_FAIL,
+                             SOUND_PATH "/af_fail.wav");
+
+       }
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       pthread_mutex_init(&sound_lock, NULL);
+       pthread_cond_init(&sound_cond, NULL);
+#endif
+       return TRUE;
+}
+
+void cam_sound_finalize(void)
+{
+       debug_fenter(LOG_UI);
+
+       if (sound_files) {
+               int i;
+               for (i = 0; i < CAM_SOUND_EFFECT_NUM; i++) {
+                       if (sound_files[i]) {
+                               g_free(sound_files[i]);
+                               sound_files[i] = NULL;
+                       }
+               }
+               g_free(sound_files);
+               sound_files = NULL;
+       }
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       pthread_mutex_destroy(&sound_lock);
+       pthread_cond_destroy(&sound_cond);
+#endif
+}
+
+void cam_sound_set(int index, const gchar *file)
+{
+       debug_msg(LOG_UI, "%d:%s", index, file ? file : "NULL");
+       g_return_if_fail(sound_files);
+       if (sound_files[index]) {
+               g_free(sound_files[index]);
+               sound_files[index] = NULL;
+       }
+       if (file)
+               sound_files[index] = g_strdup(file);
+}
+
+const gchar *cam_sound_get(int index)
+{
+       debug_fenter(LOG_UI);
+       g_return_val_if_fail(sound_files, NULL);
+       return sound_files[index];
+}
+
+gboolean cam_sound_is_silent_mode(void)
+{
+       int sound_on = -1;
+       if (!vconf_get_bool(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, &sound_on)) {
+               if (sound_on == FALSE) {
+                       cam_debug(LOG_SND, "sound off mode ");
+                       return TRUE;
+               }
+       }
+       return FALSE;
+}
+
+gboolean cam_sound_set_mic()
+{
+       int ret = SOUND_MANAGER_ERROR_NONE;
+       bool is_available = FALSE;
+       sound_route_e route_to_active = SOUND_ROUTE_IN_MIC;
+
+       /* Check if earphone mic is available */
+       is_available = sound_manager_is_route_available(SOUND_ROUTE_IN_WIRED_ACCESSORY);
+       if (is_available != TRUE) {
+               cam_critical(LOG_SND, "sound_manager_is_route_available failed");
+               return ret;
+       }
+
+       /* If earphone mic is available, use earphone mic, otherwise use phone mic */
+       cam_debug(LOG_SND, "SOUND_ROUTE_OUT_WIRED_ACCESSORY is available");
+       route_to_active = (is_available)? SOUND_ROUTE_IN_WIRED_ACCESSORY : SOUND_ROUTE_IN_MIC;
+
+       ret = sound_manager_set_active_route(route_to_active);
+       if (ret != SOUND_MANAGER_ERROR_NONE) {
+               cam_critical(LOG_SND, "sound_manager_set_active_route [%d]) failed", route_to_active);
+       }
+
+       return ret;
+}
+
+static void cam_sound_callback(int id, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       cam_debug(LOG_MM, "release cond");
+
+       /*We can not set value to  sond_cond.
+          Bacause it can be assigned PTHREAD_COND_INITIALIZER only.
+          PTHREAD_COND_INITIALIZER is the MECRO of pthread.
+          So We use the sound_files, When the sound_cond is destroied, this value set to NULL.
+        */
+       if (sound_files)
+               pthread_cond_broadcast(&sound_cond);
+
+       ad->play_rec_sound--;
+       DEBUG_TRACE("ad->play_rec_sound=%d", ad->play_rec_sound);
+#endif
+       return;
+}
+
+gboolean cam_sound_play(int index, void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+#ifdef CAMERA_MACHINE_I686
+       return TRUE;
+#endif
+       int step = 0, handle = 0;
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       gboolean sync = FALSE;
+       struct timespec timeout;
+       struct timeval tv;
+#endif
+
+       g_return_val_if_fail(sound_files, FALSE);
+       g_return_val_if_fail(index >= 0 && index < CAM_SOUND_EFFECT_NUM, FALSE);
+
+       debug_msg(LOG_UI, "%s", sound_files[index]);
+
+       if (!sound_files[index]) {
+               return FALSE;
+       }
+
+       if (cam_sound_is_silent_mode()) {
+               warn_msg(LOG_SND, "Silent mode now");
+               return FALSE;
+       }
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       if (index == CAM_SOUND_EFFECT_REC_START1
+           || index == CAM_SOUND_EFFECT_REC_START2
+           || index == CAM_SOUND_EFFECT_REC_START3 || FALSE) {
+               sync = TRUE;
+       }
+#endif
+
+       cam_debug(LOG_MM, " Volume step : %d", step);
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+
+       if (EBUSY == pthread_mutex_trylock(&sound_lock)) {
+               cam_critical(LOG_SND,
+                            "another effect sound is playing, try later");
+               return FALSE;
+       }
+#endif
+
+       if (WAV_PLAYER_ERROR_NONE ==
+           wav_player_start(sound_files[index], SOUND_TYPE_MEDIA,  cam_sound_callback, ad, &handle)) {
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+               ad->play_rec_sound++;
+               DEBUG_TRACE("ad->play_rec_sound=%d", ad->play_rec_sound);
+               if (sync) {
+                       gettimeofday(&tv, NULL);
+                       timeout.tv_sec = tv.tv_sec + SOUND_TIMEOUT_SEC;
+                       timeout.tv_nsec = tv.tv_usec;
+                       if (ETIMEDOUT ==
+                           pthread_cond_timedwait(&sound_cond, &sound_lock,
+                                                  &timeout)) {
+                               if (handle > 0) {
+                                       if (WAV_PLAYER_ERROR_NONE != wav_player_stop(handle) {
+                                               cam_critical(LOG_SND, "sound play failed");
+                                       }
+                               }
+                       }
+               }
+#endif
+       } else {
+               cam_critical(LOG_SND, "effect sound play failed");
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+               pthread_mutex_unlock(&sound_lock);
+#endif
+               return FALSE;
+       }
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       pthread_mutex_unlock(&sound_lock);
+#endif
+       return TRUE;
+}
diff --git a/src/cam_ta.c b/src/cam_ta.c
new file mode 100644 (file)
index 0000000..be94b34
--- /dev/null
@@ -0,0 +1,620 @@
+/*
+ * 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 _CAM_TA_C_
+#define _CAM_TA_C_
+
+#include <stdio.h>
+#include <malloc.h>
+#include <string.h>
+#include <assert.h>
+#include <time.h>              /*  time, ctime */
+#include <sys/time.h>          /*  gettimeofday */
+#include <sys/utsname.h>
+#include <sys/resource.h>
+#include <unistd.h>
+#include <stdarg.h>
+
+#include "cam_ta.h"
+
+/*  internal func. */
+static void __free_cps(void);
+static int __get_cp_index(char *name);
+
+static void __free_accums(void);
+static int __get_accum_index(char *name);
+
+/*  global var. */
+cam_ta_checkpoint **cam_g_cps = NULL;
+static int cam_g_cp_index = 0;
+
+cam_ta_accum_item **cam_g_accums = NULL;
+static int cam_g_accum_index = 0;
+static int cam_g_accum_longest_name = 0;
+static unsigned long cam_g_accum_first_time = 0xFFFFFFFF;      /*  jmlee */
+static int cam_g_enable = 1;
+
+int cam_ta_init(void)
+{
+       if (cam_g_accums)
+               return 0;
+
+       cam_g_cps =
+           (cam_ta_checkpoint **) malloc(CAM_TA_MAX_CHECKPOINT *
+                                         sizeof(cam_ta_checkpoint *));
+       if (!cam_g_cps)
+               return -1;
+
+       cam_g_accums =
+           (cam_ta_accum_item **) malloc(CAM_TA_MAX_CHECKPOINT *
+                                         sizeof(cam_ta_accum_item *));
+       if (!cam_g_accums)
+               return -1;
+
+       cam_g_accum_first_time = 0xFFFFFFFF;
+
+       return 0;
+}
+
+int cam_ta_release(void)
+{
+       if (!cam_g_accums)
+               return 0;
+
+       __free_cps();
+       __free_accums();
+
+       cam_g_accum_first_time = 0xFFFFFFFF;
+
+       return 0;
+}
+
+void cam_ta_set_enable(int enable)
+{
+       printf("CAM_TA : setting enable to %d\n", enable);
+       cam_g_enable = enable;
+}
+
+int cam_ta_get_numof_checkpoints()
+{
+       return cam_g_cp_index;
+}
+
+char *cam_ta_fmt(const char *fmt, ...)
+{
+       static char ta_buf[512];
+       va_list args;
+
+       memset(ta_buf, '\0', 512);
+
+       va_start(args, fmt);
+       vsnprintf(ta_buf, 512, fmt, args);
+       va_end(args);
+
+       return ta_buf;
+}
+
+int cam_ta_add_checkpoint(char *name, int show, char *filename, int line)
+{
+       cam_ta_checkpoint *cp = NULL;
+       struct timeval t;
+
+       if (!cam_g_enable)
+               return -1;
+
+       if (!cam_g_accums)
+               return 0;
+
+       if (cam_g_cp_index == CAM_TA_MAX_CHECKPOINT)
+               return -1;
+
+       if (!name)
+               return -1;
+
+       if (strlen(name) == 0)
+               return -1;
+
+       cp = (cam_ta_checkpoint *) malloc(sizeof(cam_ta_checkpoint));
+       if (!cp)
+               return -1;
+
+       cp->name = (char *)malloc(strlen(name) + 1);
+       if (!cp->name) {
+               free(cp);
+               return -1;
+       }
+       strncpy(cp->name, name, strlen(name));
+
+       if (show)
+               printf("[CHECK-POINT] %s...(%s:%d)\n", name, filename, line);
+
+       gettimeofday(&t, NULL);
+       cp->timestamp = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef CAM_TA_UNIT_MSEC
+       cp->timestamp = (cp->timestamp >= 1000) ? cp->timestamp / 1000 : 0;
+#endif
+
+       cam_g_cps[cam_g_cp_index] = cp;
+
+       cam_g_cp_index++;
+
+       return 0;
+}
+
+void cam_ta_show_checkpoints(void)
+{
+       int i = 0;
+
+       if (!cam_g_accums)
+               return;
+
+       printf("BEGIN RESULT ============================\n");
+       for (i = 0; i < cam_g_cp_index; i++) {
+               printf("[%d] %s : %ld us.\n", i, cam_g_cps[i]->name,
+                      cam_g_cps[i]->timestamp);
+       }
+       printf("END RESULT   ============================\n");
+}
+
+void cam_ta_show_diff(char *name1, char *name2)
+{
+       if (!cam_g_accums)
+               return;
+
+       printf("Time takes from [%s] to [%s] : %ld us.\n", name1, name2,
+              cam_ta_get_diff(name1, name2));
+}
+
+unsigned long cam_ta_get_diff(char *name1, char *name2)
+{
+       int cp1, cp2;
+
+       if (!cam_g_accums)
+               return 0;
+
+       /*  fail if bad param. */
+       if (!name1 || !name2)
+               return -1;
+
+       /*  fail if same. */
+       if (strcmp(name1, name2) == 0)
+               return -1;
+
+       /*  get index */
+       if ((cp1 = __get_cp_index(name1)) == -1)
+               return -1;
+
+       if ((cp2 = __get_cp_index(name2)) == -1)
+               return -1;
+
+       /* NOTE :
+          return value must be positive value.
+          bcz the value of higher index of cam_g_cps always higher than lower one.
+        */
+       return cam_g_cps[cp2]->timestamp - cam_g_cps[cp1]->timestamp;
+
+}
+
+static int __get_cp_index(char *name)
+{
+       int i;
+
+       assert(name);
+
+       /*  find index */
+       for (i = 0; i < cam_g_cp_index; i++) {
+               if (strcmp(name, cam_g_cps[i]->name) == 0)
+                       return i;
+       }
+
+       return -1;
+}
+
+static int __get_accum_index(char *name)
+{
+       int i;
+
+       assert(name);
+
+       /*  find index */
+       for (i = 0; i < cam_g_accum_index; i++) {
+               if (strcmp(name, cam_g_accums[i]->name) == 0)
+                       return i;
+       }
+
+       return -1;
+}
+
+static void __free_cps(void)
+{
+       int i = 0;
+
+       if (!cam_g_cps)
+               return;
+
+       for (i = 0; i < cam_g_cp_index; i++) {
+               if (cam_g_cps[i]) {
+                       if (cam_g_cps[i]->name)
+                               free(cam_g_cps[i]->name);
+
+                       free(cam_g_cps[i]);
+
+                       cam_g_cps[i] = NULL;
+               }
+       }
+
+       free(cam_g_cps);
+       cam_g_cps = NULL;
+
+       cam_g_cp_index = 0;
+}
+
+static void __free_accums(void)
+{
+       int i = 0;
+
+       if (!cam_g_accums)
+               return;
+
+       for (i = 0; i < cam_g_accum_index; i++) {
+               if (cam_g_accums[i]) {
+                       if (cam_g_accums[i]->name)
+                               free(cam_g_accums[i]->name);
+
+                       free(cam_g_accums[i]);
+
+                       cam_g_accums[i] = NULL;
+               }
+       }
+
+       cam_g_accum_index = 0;
+       cam_g_accum_longest_name = 0;
+
+       free(cam_g_accums);
+       cam_g_accums = NULL;
+}
+
+int cam_ta_accum_item_begin(char *name, int show, char *filename, int line)
+{
+       cam_ta_accum_item *accum = NULL;
+       int index = 0;
+       int name_len = 0;
+       struct timeval t;
+
+       if (!cam_g_enable)
+               return -1;
+
+       if (!cam_g_accums)
+               return 0;
+
+       if (cam_g_accum_index == CAM_TA_MAX_ACCUM)
+               return -1;
+
+       if (!name)
+               return -1;
+
+       name_len = strlen(name);
+       if (name_len == 0)
+               return -1;
+
+       /*  if 'name' is new one. create new item. */
+       if ((index = __get_accum_index(name)) == -1) {
+               accum = (cam_ta_accum_item *) malloc(sizeof(cam_ta_accum_item));
+               if (!accum)
+                       return -1;
+
+               /*  clear first. */
+               memset(accum, 0, sizeof(cam_ta_accum_item));
+               accum->elapsed_min = 0xFFFFFFFF;
+
+               accum->name = (char *)malloc(name_len + 1);
+               if (!accum->name) {
+                       free(accum);
+                       accum = NULL;
+                       return -1;
+               }
+               memset(accum->name, 0, sizeof(name_len+1));
+               strncpy(accum->name, name, name_len);
+
+               /*  add it to list. */
+               cam_g_accums[cam_g_accum_index] = accum;
+               cam_g_accum_index++;
+
+               if (cam_g_accum_longest_name < name_len)
+                       cam_g_accum_longest_name = name_len;
+
+       } else {
+               accum = cam_g_accums[index];
+       }
+
+       /*  verify pairs of begin, end. */
+       if (accum->on_estimate) {
+               printf("[%s] is not 'end'ed!\n", accum->name);
+               accum->num_unpair++;
+               return -1;
+       }
+       /*  get timestamp */
+       gettimeofday(&t, NULL);
+       accum->timestamp = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef CAM_TA_UNIT_MSEC
+       accum->timestamp =
+           (accum->timestamp >= 1000) ? accum->timestamp / 1000 : 0;
+#endif
+       accum->on_estimate = 1;
+
+       if (accum->first_start == 0) {  /*  assum that timestamp never could be zero. */
+               accum->first_start = accum->timestamp;
+
+               if (cam_g_accum_first_time > accum->first_start)
+                       cam_g_accum_first_time = accum->first_start;
+       }
+
+       if (show)
+               printf("[ACCUM BEGIN] %s : %ld ---(%s:%d)\n", name,
+                      accum->timestamp, filename, line);
+
+       accum->num_calls++;
+
+       return 0;
+}
+
+int cam_ta_accum_item_end(char *name, int show, char *filename, int line)
+{
+       cam_ta_accum_item *accum = NULL;
+       long int tval = 0;
+       int index = 0;
+       struct timeval t;
+
+       if (!cam_g_enable)
+               return -1;
+
+       if (!cam_g_accums)
+               return 0;
+
+       /*  get time first for more accuracy. */
+       gettimeofday(&t, NULL);
+
+       if (cam_g_accum_index == CAM_TA_MAX_ACCUM)
+               return -1;
+
+       if (!name)
+               return -1;
+
+       if (strlen(name) == 0)
+               return -1;
+
+       /*  varify the 'name' is already exist. */
+       if ((index = __get_accum_index(name)) == -1) {
+               /* printf("[%s] is not added before!\n", name); */
+               return -1;
+       }
+
+       accum = cam_g_accums[index];
+
+       /* verify pairs of begin, end. */
+       if (!accum->on_estimate) {
+               printf("[%s] is not 'begin' yet!\n", accum->name);
+               accum->num_unpair++;
+               return -1;
+       }
+       /*  get current timestamp. */
+       tval = t.tv_sec * 1000000L + t.tv_usec;
+#ifdef CAM_TA_UNIT_MSEC
+       tval = (tval >= 1000) ? tval / 1000 : 0;
+#endif
+
+       /*  update last_end */
+       accum->last_end = tval;
+
+       /*  make get elapsed time. */
+       tval = tval - accum->timestamp;
+
+       /*  update min/max */
+       accum->elapsed_max =
+           tval > accum->elapsed_max ? tval : accum->elapsed_max;
+       accum->elapsed_min =
+           tval < accum->elapsed_min ? tval : accum->elapsed_min;
+
+       if (show)
+               printf("[ACCUM END] %s : %ld + %ld ---(%s:%d)\n", name,
+                      accum->elapsed_accum, tval, filename, line);
+
+       /*  add elapsed time */
+       accum->elapsed_accum += tval;
+       accum->on_estimate = 0;
+
+       return 0;
+}
+
+void __print_some_info(FILE *fp)
+{
+       if (!fp)
+               return;
+
+       /*  comment */
+       {
+               fprintf(fp, "\nb~ b~ b~\n\n");
+       }
+
+       /*  General infomation */
+       {
+               time_t t_val;
+               char hostname[256] = { '\0', };
+               struct utsname uts;
+               struct rusage r_usage;
+
+               fprintf(fp, "\n[[ General info ]]\n");
+
+               /*  time and date */
+               time(&t_val);
+               fprintf(fp, "Date : %s", ctime(&t_val));
+
+               /*  system */
+               if (gethostname(hostname, 255) == 0 && uname(&uts) >= 0) {
+                       fprintf(fp, "Hostname : %s\n", hostname);
+                       fprintf(fp, "System : %s\n", uts.sysname);
+                       fprintf(fp, "Machine : %s\n", uts.machine);
+                       fprintf(fp, "Nodename : %s\n", uts.nodename);
+                       fprintf(fp, "Release : %s \n", uts.release);
+                       fprintf(fp, "Version : %s \n", uts.version);
+               }
+               /*  process info. */
+               fprintf(fp, "Process priority : %d\n",
+                       getpriority(PRIO_PROCESS, getpid()));
+               getrusage(RUSAGE_SELF, &r_usage);
+               fprintf(fp,
+                       "CPU usage : User = %ld.%06ld, System = %ld.%06ld\n",
+                       r_usage.ru_utime.tv_sec, r_usage.ru_utime.tv_usec,
+                       r_usage.ru_stime.tv_sec, r_usage.ru_stime.tv_usec);
+
+       }
+
+       /*  host environment variables */
+       {
+               extern char **environ;
+               char **env = environ;
+
+               fprintf(fp, "\n[[ Host environment variables ]]\n");
+               while (*env) {
+                       fprintf(fp, "%s\n", *env);
+                       env++;
+               }
+       }
+
+       /*  applied samsung feature */
+       {
+#if 0
+               fprintf(fp, "\n[[ Applied samsung feature ]]\n");
+#ifdef GST_EXT_TIME_ANALYSIS
+               fprintf(fp, "GST_EXT_TIME_ANALYSIS\n");
+#endif
+#ifdef GST_EXT_SKIP_RESCAN_REGISTRY
+               fprintf(fp, "GST_EXT_SKIP_RESCAN_REGISTRY\n");
+#endif
+#ifdef GST_EXT_USE_TINY_REGISTRY
+
+               fprintf(fp, "GST_EXT_USE_TINY_REGISTRY\n");
+#endif
+#ifdef GST_EXT_PAD_LINK_UNCHECKED
+               fprintf(fp, "GST_EXT_PAD_LINK_UNCHECKED\n");
+#endif
+#ifdef GST_EXT_DFBVIDEOSINK_IPP
+               fprintf(fp, "GST_EXT_DFBVIDEOSINK_IPP\n");
+#endif
+#ifdef GST_EXT_REDUCE_PLUGIN_NUM
+               fprintf(fp, "GST_EXT_REDUCE_PLUGIN_NUM\n");
+#endif
+#ifdef GST_EXT_USE_PDP_NETWORK
+               fprintf(fp, "GST_EXT_USE_PDP_NETWORK\n");
+#endif
+#ifdef GST_EXT_VOLUME_WITHOUT_LIBOIL
+               fprintf(fp, "GST_EXT_VOLUME_WITHOUT_LIBOIL\n");
+#endif
+#ifdef GST_EXT_DECODEBIN_QUEUE_ENLARGE
+               fprintf(fp, "GST_EXT_DECODEBIN_QUEUE_ENLARGE\n");
+#endif
+
+               /*  Camcorder releated feature */
+
+#ifdef GST_EXT_NONBLOCKDQUE
+               fprintf(fp, "GST_EXT_NONBLOCKDQUE\n");
+#endif
+#ifdef GST_EXT_RENEGOTIATION
+               fprintf(fp, "GST_EXT_RENEGOTIATION\n");
+#endif
+#ifdef GST_EXT_MOBILECAMERA
+               fprintf(fp, "GST_EXT_MOBILECAMERA\n");
+#endif
+#ifdef GST_EXT_VIDEOSCALE_IPP
+               fprintf(fp, "GST_EXT_VIDEOSCALE_IPP\n");
+#endif
+#ifdef GST_EXT_ASYNC_DEV
+               fprintf(fp, "GST_EXT_ASYNC_DEV\n");
+#endif
+#ifdef GST_EXT_AV_RECORDING
+               fprintf(fp, "GST_EXT_AV_RECORDING\n");
+#endif
+#ifdef GST_EXT_SWITCH_CAMERA
+               fprintf(fp, "GST_EXT_SWITCH_CAMERA\n");
+#endif
+
+               fprintf(fp, "\n\n");
+#endif
+       }
+
+}
+
+void cam_ta_accum_show_result(int direction)
+{
+       int i = 0;
+       char format[256];
+       FILE *fp = stderr;
+
+       if (!cam_g_accums)
+               return;
+
+       switch (direction) {
+       case CAM_TA_SHOW_STDOUT:
+               fp = stdout;
+               break;
+       case CAM_TA_SHOW_STDERR:
+               fp = stderr;
+               break;
+       case CAM_TA_SHOW_FILE:
+               {
+                       fp = fopen(CAM_TA_RESULT_FILE, "wt");
+                       if (!fp)
+                               return;
+               }
+       }
+       __print_some_info(fp);
+
+#ifdef CAM_TA_UNIT_MSEC
+       snprintf(format, sizeof(format),
+                "[%%3d] %%-%ds | \ttotal : %%4ld\tcalls : %%3ld\tavg : %%4ld\tmin : %%4ld\tmax : %%4ld\tstart : %%4lu\tend : %%4lu\tunpair : %%3ld\n",
+                cam_g_accum_longest_name);
+       fprintf(fp,
+               "BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(msec)\n",
+               cam_g_accum_index);
+#else
+       snprintf(format, sizeof(format),
+                "[%%3d] %%-%ds | \ttotal : %%ld\tcalls : %%ld\tavg : %%ld\tmin : %%ld\tmax : %%ld\tstart : %%lu\tend : %%lu\tunpair : %%ld\n",
+                cam_g_accum_longest_name);
+       fprintf(fp,
+               "BEGIN RESULT ACCUM============================ : NumOfItems : %d, unit(usec)\n",
+               cam_g_accum_index);
+#endif
+
+       for (i = 0; i < cam_g_accum_index; i++) {
+               /*  prevent 'devide by zero' error */
+               if (cam_g_accums[i]->num_calls == 0)
+                       cam_g_accums[i]->num_calls = 1;
+
+               fprintf(fp, format, i, cam_g_accums[i]->name, cam_g_accums[i]->elapsed_accum, cam_g_accums[i]->num_calls, (cam_g_accums[i]->elapsed_accum == 0) ? 0 : (int)(cam_g_accums[i]->elapsed_accum / cam_g_accums[i]->num_calls),       /*  Fix it! : devide by zero. */
+                       cam_g_accums[i]->elapsed_min,
+                       cam_g_accums[i]->elapsed_max,
+                       cam_g_accums[i]->first_start - cam_g_accum_first_time,
+                       cam_g_accums[i]->last_end - cam_g_accum_first_time,
+                       cam_g_accums[i]->num_unpair);
+       }
+       fprintf(fp, "END RESULT ACCUM  ============================\n");
+
+       if (direction == CAM_TA_SHOW_FILE)
+               fclose(fp);
+}
+
+#endif                         /* _CAM_TA_C_ */
diff --git a/src/cam_typeconverter.cpp b/src/cam_typeconverter.cpp
new file mode 100755 (executable)
index 0000000..8fdc961
--- /dev/null
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+
+extern "C" {
+
+#include "cam_property.h"
+#include "CamTypeConverter.h"
+#include "cam_typeconverter.h"
+
+
+unsigned int cam_effect_dev_convert_caps(camera_attr_effect_mode_e effect)
+{
+       return  CCamTypeConverter::CamEffectDevConvertCaps(effect);
+}
+
+unsigned int cam_effect_cam_convert_caps(CamSettingsEffects effect)
+{
+       return  CCamTypeConverter::CamEffectCamConvertCaps(effect);
+}
+
+}
+
diff --git a/src/cam_ui_effect_utils.c b/src/cam_ui_effect_utils.c
new file mode 100644 (file)
index 0000000..bb235de
--- /dev/null
@@ -0,0 +1,167 @@
+/*\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
+\r
+\r
+#include "cam_ui_effect_utils.h"\r
+static gboolean __focus_zoom_origin_state = TRUE;\r
+\r
+gboolean cam_ui_effect_utils_get_zoom_state()\r
+{\r
+       return __focus_zoom_origin_state;\r
+}\r
+void cam_ui_effect_utils_set_zoom_effect(Evas_Object *obj, float from_rate, float to_rate, double duration)\r
+{\r
+       Evas_Object *layout =  obj;\r
+\r
+       if (layout == NULL)\r
+               return;\r
+       /*Zoom in/out to scale to_rate/from_rate.*/\r
+       Elm_Transit *transit_effect = elm_transit_add();\r
+       if (transit_effect == NULL)\r
+               return;\r
+       if (to_rate < from_rate)\r
+               __focus_zoom_origin_state = TRUE;\r
+       else\r
+               __focus_zoom_origin_state = FALSE;\r
+       elm_transit_object_add(transit_effect, layout);\r
+       elm_transit_effect_zoom_add(transit_effect, from_rate, to_rate);\r
+       elm_transit_duration_set(transit_effect, duration);\r
+       elm_transit_objects_final_state_keep_set(transit_effect,  TRUE);\r
+\r
+       elm_transit_go(transit_effect);\r
+}\r
+\r
+void cam_ui_effect_utils_set_zoom_inout_effect(Evas_Object *obj, float from_rate, float to_rate, double duration)\r
+{\r
+       Evas_Object *layout =  obj;\r
+\r
+       if (layout == NULL)\r
+               return;\r
+       /*Zoom out to scale */\r
+       Elm_Transit *transit = elm_transit_add();\r
+       elm_transit_object_add(transit, layout);\r
+       elm_transit_effect_zoom_add(transit, from_rate, to_rate);\r
+       elm_transit_duration_set(transit, duration);\r
+\r
+       /*Zoom in to be original size.*/\r
+       Elm_Transit *transit2 = elm_transit_add();\r
+       elm_transit_object_add(transit2, layout);\r
+       elm_transit_effect_zoom_add(transit2, to_rate, from_rate);\r
+       elm_transit_duration_set(transit2, duration);\r
+\r
+       elm_transit_chain_transit_add(transit, transit2);\r
+       elm_transit_go(transit);\r
+\r
+}\r
+\r
+\r
+/*for thumnail animation start*/\r
+/*note: init custom effect memory*/\r
+static Elm_Transit_Effect * __cam_ui_effect_custom_context_new(Evas_Coord from_w,\r
+                                                                       Evas_Coord from_h,\r
+                                                                       Evas_Coord to_w,\r
+                                                                       Evas_Coord to_h\r
+                                                                       )\r
+{\r
+       struct cam_ui_effect_custom_effect *custom_effect = calloc( 1, sizeof( struct cam_ui_effect_custom_effect ) );\r
+       if (!custom_effect) return NULL;\r
+\r
+       custom_effect->from.w = from_w;\r
+       custom_effect->from.h = from_h;\r
+       custom_effect->to.w = to_w - from_w;\r
+       custom_effect->to.h = to_h - from_h;\r
+       return custom_effect;\r
+}\r
+\r
+/*note: free custom effect memory*/\r
+static void __cam_ui_effect_custom_context_free(Elm_Transit_Effect *effect, Elm_Transit *transit)\r
+{\r
+       struct cam_ui_effect_custom_effect *custom_effect = effect;\r
+       free(custom_effect);\r
+       custom_effect = NULL;\r
+}\r
+\r
+/*note: implement the effect solution, you could write new effect, by change these function*/\r
+static void __cam_ui_effect_custom_op(Elm_Transit_Effect *effect, Elm_Transit *transit, double progress)\r
+{\r
+       if (!effect) return;\r
+\r
+       Evas_Coord w, h;\r
+       Evas_Object *obj;\r
+       const Eina_List *elist;\r
+\r
+       struct cam_ui_effect_custom_effect *custom_effect = (struct cam_ui_effect_custom_effect *) effect;\r
+       const Eina_List *objs = elm_transit_objects_get(transit);\r
+\r
+       if (progress < 0.5) {\r
+               h = custom_effect->from.h + (custom_effect->to.h * progress * 2);\r
+               w = custom_effect->from.w;\r
+       } else {\r
+               h = custom_effect->from.h + custom_effect->to.h;\r
+               w = custom_effect->from.w + (custom_effect->to.w * (progress - 0.5) * 2);\r
+       }\r
+       EINA_LIST_FOREACH(objs, elist, obj) {\r
+               if (obj) {\r
+                       evas_object_resize(obj, w, h);\r
+               }\r
+       }\r
+\r
+}\r
+\r
+/*note: when transit effect end, before transit del, this fuction will be called*/\r
+static void __cam_ui_effect_utils_transit_del_cb(void *data, Elm_Transit *transit)\r
+{\r
+       Evas_Object *obj = (Evas_Object *)data;\r
+       DEBUG_TRACE("");\r
+       if (obj) {\r
+               DEBUG_TRACE("");\r
+               struct appdata *ad = (struct appdata *)cam_appdata_get();\r
+               if (!ad)\r
+                       return;\r
+               if (!ad->toolbar.quickview_item.edje) {\r
+                       DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);\r
+                       DEL_EVAS_OBJECT(obj);\r
+                       return;\r
+               }\r
+               DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);\r
+               ad->toolbar.quickview_item.thumbnail_image = obj;\r
+               elm_object_part_content_set(ad->toolbar.quickview_item.edje,\r
+                                       "thumbnail", ad->toolbar.quickview_item.thumbnail_image);\r
+       }\r
+}\r
+\r
+void cam_ui_effect_utils_set_thumbnail_effect(Evas_Object *obj,\r
+                                                               Evas_Coord x,\r
+                                                               Evas_Coord y,\r
+                                                               Evas_Coord w,\r
+                                                               Evas_Coord h,\r
+                                                               double duration)\r
+{\r
+       Evas_Object *layout = obj;\r
+       Elm_Transit_Effect *effect_context = __cam_ui_effect_custom_context_new(0, h, w, h);\r
+\r
+       Elm_Transit *transit = elm_transit_add();\r
+       elm_transit_object_add(transit, layout);\r
+       elm_transit_tween_mode_set(transit, ELM_TRANSIT_TWEEN_MODE_LINEAR);\r
+       elm_transit_effect_add(transit, __cam_ui_effect_custom_op, effect_context, __cam_ui_effect_custom_context_free);\r
+\r
+       elm_transit_objects_final_state_keep_set(transit,  TRUE);\r
+       elm_transit_duration_set(transit, duration);\r
+       elm_transit_del_cb_set(transit, __cam_ui_effect_utils_transit_del_cb, (void *)obj);\r
+       elm_transit_go(transit);\r
+}\r
+/*for thumbnail antimation end*/\r
+//end file\r
diff --git a/src/cam_ui_rotate_utils.c b/src/cam_ui_rotate_utils.c
new file mode 100644 (file)
index 0000000..ecc11b7
--- /dev/null
@@ -0,0 +1,602 @@
+/*\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
+\r
+\r
+#include "cam_ui_rotate_utils.h"\r
+#include "cam_toolbar_edc_callback.h"\r
+#include "cam_mm.h"\r
+static void __cam_ui_rotate_utils_rotation_del_cb(void *data, Elm_Transit *transit)\r
+{\r
+       DEBUG_TRACE("rotate transition will be deleted");\r
+}\r
+\r
+static Ecore_Idler *__cam_ui_rotate_utils_idler = NULL;\r
+static Eina_Bool __cam_ui_rotate_utils_obj_rotation_idler_cb(void *data)\r
+{\r
+       if (__cam_ui_rotate_utils_idler) {\r
+               ecore_idler_del(__cam_ui_rotate_utils_idler);\r
+               __cam_ui_rotate_utils_idler = NULL;\r
+\r
+       }\r
+\r
+       struct cam_ui_rotate_obj_params *rotate_obj_params = (struct cam_ui_rotate_obj_params *)data;\r
+       if (!rotate_obj_params) return ECORE_CALLBACK_CANCEL;\r
+       if (!rotate_obj_params->obj) return ECORE_CALLBACK_CANCEL;\r
+       Evas_Object *obj = rotate_obj_params->obj;\r
+\r
+       ////TODO:add a function, to unset popup\r
+       struct appdata *ad = cam_appdata_get();\r
+       Evas_Coord x, y, w, h;\r
+       evas_object_geometry_get(obj, &x, &y, &w, &h);\r
+       static int repeat_count = 0;\r
+       if (w == 0 || h == 0) {\r
+               if (repeat_count++ == 10) {\r
+                       repeat_count = 0;\r
+                       return ECORE_CALLBACK_CANCEL;\r
+               }\r
+               DEBUG_TRACE("repeat_count = %d", repeat_count);\r
+               return ECORE_CALLBACK_RENEW;\r
+       }\r
+\r
+       elm_object_part_content_unset(ad->toolbar_edje, "camera/setting/popup/area/toolbar");\r
+       DEBUG_TRACE("rotate_obj_params->x = %d", rotate_obj_params->x);\r
+       DEBUG_TRACE("rotate_obj_params->y = %d", rotate_obj_params->y);\r
+       cam_ui_rotate_utils_map_rotate(obj, rotate_obj_params->x, rotate_obj_params->y, rotate_obj_params->degree);\r
+       free(rotate_obj_params);\r
+       rotate_obj_params = NULL;\r
+\r
+       edje_object_signal_emit(_EDJ(obj), "set.popup.show", "prog");\r
+       evas_object_raise(obj);\r
+       evas_object_show(obj);\r
+\r
+\r
+\r
+       return ECORE_CALLBACK_CANCEL;\r
+}\r
+\r
+void cam_ui_rotate_utils_map_setting_popup_rotate(Evas_Object *obj,\r
+                                                                       Evas_Coord start_x,\r
+                                                                       Evas_Coord start_y,\r
+                                                                       double degree)\r
+{\r
+       DEBUG_TRACE("degree = %f", degree);\r
+       struct cam_ui_rotate_obj_params *rotate_obj_params = calloc( 1, sizeof( struct cam_ui_rotate_obj_params ) );\r
+       if (!rotate_obj_params) return;\r
+       rotate_obj_params->obj = obj;\r
+       rotate_obj_params->x = start_x;\r
+       rotate_obj_params->y = start_y;\r
+       rotate_obj_params->degree = degree;\r
+       DEBUG_TRACE("rotate_obj_params->x = %d", start_x);\r
+       DEBUG_TRACE("rotate_obj_params->y = %d", start_y);\r
+       DEBUG_TRACE("rotate_obj_params->x = %d", start_x);\r
+       DEBUG_TRACE("rotate_obj_params->degree = %f", degree);\r
+       if (__cam_ui_rotate_utils_idler) {\r
+               ecore_idler_del(__cam_ui_rotate_utils_idler);\r
+               __cam_ui_rotate_utils_idler = NULL;\r
+\r
+       }\r
+       __cam_ui_rotate_utils_idler = ecore_idler_add(__cam_ui_rotate_utils_obj_rotation_idler_cb, (void *)rotate_obj_params);\r
+}\r
+\r
+void cam_ui_rotate_utils_map_rotate(Evas_Object *obj,\r
+                                               Evas_Coord start_x,\r
+                                               Evas_Coord start_y,\r
+                                               double degree)\r
+{\r
+       if (!obj) return;\r
+       Evas_Map *map = NULL;\r
+       map = evas_map_new(4);\r
+       if (!map) return;\r
+\r
+       Evas_Coord x, y, w, h;\r
+       float half_w, half_h;\r
+\r
+       evas_map_util_points_populate_from_object_full(map, obj, 0);\r
+       evas_object_geometry_get(obj, &x, &y, &w, &h);\r
+       DEBUG_TRACE("obj x, y, w, h:%d %d %d %d", x, y, w, h);\r
+       DEBUG_TRACE("start x, y, w, h: %d %d %d %d", start_x, start_y, w, h);\r
+       half_w = (float)w * 0.5;\r
+       half_h = (float)h * 0.5;\r
+       evas_map_point_coord_set(map, 0, start_x, start_y, 0);\r
+       evas_map_point_coord_set(map, 1, start_x + w , start_y, 0);\r
+       evas_map_point_coord_set(map, 2, start_x + w , start_y + h, 0);\r
+       evas_map_point_coord_set(map, 3, start_x, start_y + h, 0);\r
+       evas_map_util_rotate(map, degree, start_x + half_w, start_y + half_h);\r
+       /*note:foc 2000, just default*/\r
+       evas_map_util_3d_perspective(map, start_x + half_w, start_y + half_h, 0, 2000);\r
+       evas_object_map_enable_set(obj, EINA_TRUE);\r
+       evas_object_map_set(obj, map);\r
+\r
+       evas_map_free(map);\r
+       map = NULL;\r
+\r
+}\r
+\r
+void cam_ui_rotate_utils_map_self_rotate(Evas_Object *obj,\r
+                                                       double degree)\r
+{\r
+       if (!obj) return;\r
+       Evas_Map *map = NULL;\r
+       map = evas_map_new(4);\r
+       if (!map) return;\r
+\r
+       Evas_Coord x, y, w, h;\r
+       float half_w, half_h;\r
+\r
+       evas_map_util_points_populate_from_object_full(map, obj, 0);\r
+       evas_object_geometry_get(obj, &x, &y, &w, &h);\r
+       DEBUG_TRACE("obj x, y, w, h:%d %d %d %d", x, y, w, h);\r
+       half_w = (float)w * 0.5;\r
+       half_h = (float)h * 0.5;\r
+       evas_map_point_coord_set(map, 0, x, y, 0);\r
+       evas_map_point_coord_set(map, 1, x + w , y, 0);\r
+       evas_map_point_coord_set(map, 2, x + w , y + h, 0);\r
+       evas_map_point_coord_set(map, 3, x, y + h, 0);\r
+       evas_map_util_rotate(map, degree, x + half_w, y + half_h);\r
+       /*note:foc 2000, just default*/\r
+       evas_map_util_3d_perspective(map, x + half_w, y + half_h, 0, 2000);\r
+       evas_object_map_enable_set(obj, EINA_TRUE);\r
+       evas_object_map_set(obj, map);\r
+\r
+       evas_map_free(map);\r
+       map = NULL;\r
+\r
+}\r
+\r
+\r
+void cam_ui_rotate_utils_rotation_effect(Evas_Object *obj,\r
+                                                       float from_degree,\r
+                                                       float to_degree,\r
+                                                       double duration,\r
+                                                       void (*cb) (void *data, Elm_Transit *transit),\r
+                                                       void *data)\r
+{\r
+       DEBUG_TRACE();\r
+       Evas_Object *nf = obj;\r
+       Elm_Transit *transit = elm_transit_add();\r
+       /*360 degree rotation effect with clock wise direction.*/\r
+       elm_transit_object_add(transit, nf);\r
+       elm_transit_effect_rotation_add(transit, from_degree, to_degree);\r
+       elm_transit_duration_set(transit, duration);\r
+       if (cb)\r
+               elm_transit_del_cb_set(transit, cb, data);\r
+       else\r
+               elm_transit_del_cb_set(transit, __cam_ui_rotate_utils_rotation_del_cb, data);\r
+       elm_transit_objects_final_state_keep_set(transit,  TRUE);\r
+       elm_transit_go(transit);\r
+}\r
+\r
+/*note: below is for icon rotate*/\r
+\r
+static gboolean cam_ui_rotate_utils_get_clockwise_state(struct appdata *ad)\r
+{\r\r
+       gboolean IsClockwise = FALSE;\r
+\r
+       if (ad->rot_previous == APP_DEVICE_ORIENTATION_270) {\r
+               if (ad->rot_current > ad->rot_previous){\r
+                       IsClockwise = TRUE;\r
+               } else {\r
+                       IsClockwise = FALSE;\r
+               }\r
+       } else {\r
+               if(ad->rot_current > ad->rot_previous) {\r
+                       IsClockwise = FALSE;\r
+               } else {\r
+                       IsClockwise = TRUE;\r
+               }\r
+       }\r
+       return IsClockwise;\r
+\r
+}\r
+void cam_ui_rotate_utils_get_rotation_degree(void* data, int* from_degree, int* to_degree)\r
+{\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retm_if(ad == NULL, "appdata is NULL");\r
+\r
+       int tmp_to_degree = 0;\r
+       int tmp_from_degree = 0;\r
+       gboolean IsClockwise = FALSE;\r
+\r
+       if (ad->rot_previous == APP_DEVICE_ORIENTATION_270) {\r
+               if (ad->rot_current > ad->rot_previous){\r
+                       IsClockwise = TRUE;\r
+               } else {\r
+                       IsClockwise = FALSE;\r
+               }\r
+       } else {\r
+               if(ad->rot_current > ad->rot_previous) {\r
+                       IsClockwise = FALSE;\r
+               } else {\r
+                       IsClockwise = TRUE;\r
+               }\r
+       }\r
+\r
+       switch(ad->rot_previous) {\r
+               case APP_DEVICE_ORIENTATION_270:\r
+                       if(ad->rot_current == APP_DEVICE_ORIENTATION_0) {\r
+                               tmp_from_degree = 360;\r
+                       } else {\r
+                               tmp_from_degree = 0;\r
+                       }\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_0:\r
+                       tmp_from_degree = 270;\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_90:\r
+                       tmp_from_degree = 180;\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_180:\r
+                       tmp_from_degree = 90;\r
+                               break;\r
+               default:\r
+                       break;\r
+       }\r
+\r
+       switch(ad->rot_current) {\r
+               case APP_DEVICE_ORIENTATION_270:\r
+                       if( ad->rot_previous == APP_DEVICE_ORIENTATION_0) {\r
+                               tmp_to_degree = 360;\r
+                       } else {\r
+                               tmp_to_degree = 0;\r
+                       }\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_0:\r
+                       tmp_to_degree = 270;\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_90:\r
+                       tmp_to_degree = 180;\r
+                       break;\r
+               case APP_DEVICE_ORIENTATION_180:\r
+                       tmp_to_degree = 90;\r
+                       break;\r
+               default:\r
+                       break;\r
+       }\r
+\r
+       *from_degree = tmp_from_degree;\r
+       *to_degree = tmp_to_degree;\r
+\r
+       cam_debug(LOG_UI, "from_degree : %d, to_degree : %d ", *from_degree, *to_degree );\r
+}\r
+\r
+\r
+void cam_ui_rotate_utils_get_rotation_degree_map(void* data, int* degree)\r
+{\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retm_if(ad == NULL, "appdata is NULL");\r
+\r
+       int tmp_degree = 0;\r
+\r
+       gboolean IsClockwise = FALSE;\r
+\r
+       if (ad->rot_previous == APP_DEVICE_ORIENTATION_270) {\r
+               if (ad->rot_current > ad->rot_previous) {\r
+                       IsClockwise = TRUE;\r
+               } else {\r
+                       IsClockwise = FALSE;\r
+               }\r
+       } else {\r
+               if (ad->rot_current > ad->rot_previous) {\r
+                       IsClockwise = FALSE;\r
+               } else {\r
+                       IsClockwise = TRUE;\r
+               }\r
+       }\r
+\r
+       switch(ad->rot_current) {\r
+       case APP_DEVICE_ORIENTATION_0:\r
+               tmp_degree = 270;\r
+       case APP_DEVICE_ORIENTATION_90:\r
+               tmp_degree =  90;\r
+               break;\r
+       case APP_DEVICE_ORIENTATION_180:\r
+               tmp_degree = 180;\r
+                       break;\r
+       case APP_DEVICE_ORIENTATION_270:\r
+               tmp_degree = 0;\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+\r
+       *degree = tmp_degree;\r
+\r
+       cam_debug(LOG_UI, "degree : %d", *degree );\r
+\r
+}\r
+\r
+static void __cam_ui_rotate_utils_focus_coordate_rotate(struct appdata *ad)\r
+{\r
+       /*TODO: for animator, we just rotate when popup create*/\r
+       cam_retm_if(ad == NULL,  "appdata is NULL");\r
+\r
+       int af_start_x, af_start_y;\r
+       af_start_x = af_start_y = 0;\r
+\r
+       int x_w, y_h;\r
+       x_w = y_h = 0;\r
+       if (ad->angle == 90\r
+               || ad->angle == 270) {\r
+               x_w = 1280 * elm_config_scale_get();\r
+               y_h = 720 * elm_config_scale_get();\r
+       } else if (ad->angle == 0\r
+               || ad->angle == 180) {\r
+               x_w = 720 * elm_config_scale_get();\r
+               y_h = 1280 * elm_config_scale_get();\r
+       } else {\r
+               DEBUG_TRACE("%d", ad->angle_pre);\r
+               x_w = 1280 * elm_config_scale_get();\r
+               y_h = 720 * elm_config_scale_get();\r
+       }\r
+\r
+       switch (ad->rotate_angle) {\r
+       case 0:\r
+               af_start_x = ad->af_start_x;\r
+               af_start_y = ad->af_start_y;\r
+               break;\r
+       case 90:/*un-clockwise*/\r
+               af_start_x = ad->af_start_y;\r
+               af_start_y = y_h - ad->af_start_x;\r
+               if (ad->angle == 0 || ad->angle == 180) {\r
+                       af_start_y -= ad->camera_focus_w;\r
+               } else {\r
+                       af_start_y -= ad->camera_focus_h;\r
+               }\r
+               break;\r
+       case -90:\r
+               af_start_x = x_w - ad->af_start_y;\r
+               af_start_y = ad->af_start_x;\r
+               if (ad->angle == 0 || ad->angle == 180) {\r
+                       af_start_x -= ad->camera_focus_h;\r
+               } else {\r
+                       af_start_x -= ad->camera_focus_w;\r
+               }\r
+               break;\r
+       case 180:\r
+       case -180:\r
+               af_start_x = x_w - ad->af_start_x;\r
+               af_start_y = y_h - ad->af_start_y;\r
+               if (ad->angle == 0 || ad->angle == 180) {\r
+                       af_start_x -= ad->camera_focus_h;\r
+                       af_start_y -= ad->camera_focus_w;\r
+               } else {\r
+                       af_start_x -= ad->camera_focus_w;\r
+                       af_start_y -= ad->camera_focus_h;\r
+               }\r
+               break;\r
+       default:\r
+               DEBUG_TRACE("%d", ad->rotate_angle);\r
+       }\r
+\r
+       ad->af_start_x = af_start_x;\r
+       ad->af_start_y = af_start_y;\r
+\r
+}\r
+\r
+static void __cam_ui_rotate_utils_after_rotate_cb(void *data, Elm_Transit *transit)\r
+{\r
+\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retm_if(ad == NULL,  "appdata is NULL");\r
+\r
+       __cam_ui_rotate_utils_focus_coordate_rotate(ad);\r
+       ad->angle_pre = ad->angle;/*must called after __cam_ui_roate_utils_focus_coordate_rotate*/\r
+       cam_app_screen_rotate(ad);\r
+       /*cam_screen_rotate(ad);*/\r
+}\r
+\r
+static void __cam_ui_rotate_utils_after_shortcuts_rotate_cb(void *data, Elm_Transit *transit)\r
+{\r
+\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retm_if(ad == NULL,  "appdata is NULL");\r
+       cam_retm_if(ad->toolbar_edje == NULL,  "appdata is NULL");\r
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),\r
+                                       "toolbar_1_icon,normal", "prog");\r
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),\r
+                                       "toolbar_2_icon,normal", "prog");\r
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),\r
+                                       "toolbar_3_icon,normal", "prog");\r
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),\r
+                                       "toolbar_4_icon,normal", "prog");\r
+\r
+}\r
+\r
+gboolean cam_ui_rotate_utils_rotate_start(void *data, double duration)\r
+{\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retvm_if(ad == NULL, FALSE,  "appdata is NULL");\r
+\r
+       /*note: if popup is showing, hide it*/\r
+       cam_toolbar_and_setting_popup_del(ad);\r
+\r
+       cam_debug(LOG_UI, "duration : %d", duration);\r
+\r
+       ad->is_rotating = TRUE;\r
+       Elm_Transit* transit= elm_transit_add();\r
+\r
+       int from_degree = 0;\r
+       int to_degree = 0;\r
+\r
+\r
+       if (ad->toolbar_0_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_0_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_0_icon);\r
+       }\r
+       if (ad->toolbar_1_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_1_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_1_icon);\r
+       }\r
+       if (ad->toolbar_2_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_2_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_2_icon);\r
+       }\r
+       if (ad->toolbar_3_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_3_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_3_icon);\r
+       }\r
+       if (ad->toolbar_4_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_4_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_4_icon);\r
+       }\r
+#if 0 /*TODO: block temporary, good solution should be consider*/\r
+       if (ad->indicator_edje) {\r
+               elm_transit_object_add(transit, ad->indicator_edje);\r
+       }\r
+\r
+#endif\r
+\r
+       if (ad->focus_edje) {\r
+               elm_transit_object_add(transit, ad->focus_edje);\r
+       }\r
+       if (ad->timer_icon_edje) {\r
+               elm_transit_object_add(transit, ad->timer_icon_edje);\r
+       }\r
+\r
+       if (ad->capturebtn_edje) {\r
+               elm_transit_object_add(transit, ad->capturebtn_edje);\r
+       }\r
+       if (ad->toolbar.mode_item.camera_icon) {\r
+               elm_transit_object_add(transit, ad->toolbar.mode_item.camera_icon);\r
+       }\r
+       if (ad->toolbar.mode_item.camcorder_icon) {\r
+               elm_transit_object_add(transit, ad->toolbar.mode_item.camcorder_icon);\r
+       }\r
+       if (ad->shutterbtn_camera_icon) {\r
+               elm_transit_object_add(transit, ad->shutterbtn_camera_icon);\r
+       }\r
+       if (ad->shutterbtn_camcorder_icon) {\r
+               elm_transit_object_add(transit, ad->shutterbtn_camcorder_icon);\r
+       }\r
+\r
+       if (ad->toolbar.quickview_item.thumbnail_image)\r
+               elm_transit_object_add(transit, ad->toolbar.quickview_item.thumbnail_image);\r
+/*\r
+       if (ad->recording_edje\r
+               && cam_mm_get_state() == RECORDER_STATE_RECORDING)\r
+               elm_transit_object_add(transit, ad->recording_edje);*/\r
+       cam_ui_rotate_utils_get_rotation_degree(ad, &from_degree, &to_degree);\r
+       from_degree = ad->angle_pre;\r
+       to_degree = ad->angle;\r
+\r
+#if 0\r
+       if ((from_degree == 0 && to_degree == 90)\r
+           || (from_degree == 90 && to_degree == 180)\r
+           || (from_degree == 180 && to_degree == 270)\r
+           || (from_degree == 270 && to_degree == 0)) {\r
+               from_degree = 0;\r
+               to_degree = -90;\r
+               DEBUG_TRACE("CLOCKWISE");\r
+       } else if ((from_degree == 90 && to_degree == 0)\r
+                  || (from_degree == 180 && to_degree == 90)\r
+                  || (from_degree == 270 && to_degree == 180)\r
+                  || (from_degree == 0 && to_degree == 270)) {\r
+               from_degree = 0;\r
+               to_degree = 90;\r
+               DEBUG_TRACE("UN-CLOCKWISE");\r
+       }\r
+#else\r
+       DEBUG_TRACE("from_degree->to_degree %d->%d", from_degree, to_degree);\r
+\r
+       if ((to_degree - from_degree) == 270) {\r
+               from_degree = 0;\r
+               to_degree = 90;\r
+               ad->rotate_angle = 90;\r
+       } else if ((to_degree - from_degree) == -270) {\r
+               from_degree = 0;\r
+               to_degree = -90;\r
+               ad->rotate_angle = -90;\r
+       } else {\r
+               to_degree = (to_degree - from_degree) *(-1);\r
+               from_degree = 0;\r
+               ad->rotate_angle = to_degree;\r
+       }\r
+       DEBUG_TRACE("from_degree->to_degree %d->%d", from_degree, to_degree);\r
+#endif\r
+       cam_debug(LOG_UI, "ad->angle : %d, ad->angle_pre : %d ", ad->angle, ad->angle_pre );\r
+       gboolean is_clockwise = cam_ui_rotate_utils_get_clockwise_state(ad);\r
+       cam_debug(LOG_UI, "is_clockwise : %d, ", is_clockwise );\r
+       elm_transit_effect_rotation_add(transit, from_degree, to_degree);\r
+       elm_transit_duration_set(transit, duration);\r
+       elm_transit_del_cb_set(transit, __cam_ui_rotate_utils_after_rotate_cb, data);\r
+       elm_transit_objects_final_state_keep_set(transit, TRUE);\r
+       elm_transit_go(transit);\r
+\r
+       cam_debug(LOG_UI, "real_from_degree : %d, real_to_degree : %d ", from_degree, to_degree );\r
+       /*ad->angle_pre = ad->angle;*/\r
+       return FALSE;\r
+\r
+}\r
+\r
+gboolean cam_ui_rotate_utils_rotate_toolbar_shortcuts(void *data, double duration)\r
+{\r
+       struct appdata *ad = (struct appdata *)data;\r
+       cam_retvm_if(ad == NULL, FALSE,  "appdata is NULL");\r
+\r
+       cam_debug(LOG_UI, "duration : %d", duration);\r
+\r
+       Elm_Transit* transit= elm_transit_add();\r
+\r
+       int from_degree = 0;\r
+       int to_degree = 0;\r
+\r
+\r
+       if (ad->toolbar_0_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_0_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_0_icon);\r
+       }\r
+       if (ad->toolbar_1_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_1_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_1_icon);\r
+       }\r
+       if (ad->toolbar_2_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_2_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_2_icon);\r
+       }\r
+       if (ad->toolbar_3_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_3_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_3_icon);\r
+       }\r
+       if (ad->toolbar_4_icon == NULL) {\r
+               cam_debug(LOG_UI, "toolbar_4_icon is null" );\r
+       } else {\r
+               elm_transit_object_add(transit, ad->toolbar_4_icon);\r
+       }\r
+\r
+       cam_ui_rotate_utils_get_rotation_degree(ad, &from_degree, &to_degree);\r
+\r
+       elm_transit_effect_rotation_add(transit, from_degree, to_degree);\r
+       elm_transit_duration_set(transit, duration);\r
+       elm_transit_del_cb_set(transit, __cam_ui_rotate_utils_after_shortcuts_rotate_cb, data);\r
+       elm_transit_objects_final_state_keep_set(transit, TRUE);\r
+       elm_transit_go(transit);\r
+\r
+       cam_debug(LOG_UI, "real_from_degree : %d, real_to_degree : %d ", from_degree, to_degree );\r
+       return FALSE;\r
+\r
+}\r
+\r
+\r
+//end file\r
diff --git a/src/camera_utils.c b/src/camera_utils.c
new file mode 100755 (executable)
index 0000000..a33e293
--- /dev/null
@@ -0,0 +1,1451 @@
+/*
+ * 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 <image_util.h>
+#include <malloc.h>
+#include <ctype.h>
+#include "camera_utils.h"
+#include "cam_debug.h"
+#include "cam_error.h"
+#include "cam_ta.h"
+#include "cam_mm.h"
+#include "cam_file.h"
+
+#define JPEG_8M_APPROXIMATELY_SIZE     2096000
+#define JPEG_W6M_APPROXIMATELY_SIZE    1699000
+#define JPEG_5M_APPROXIMATELY_SIZE     1436000
+#define JPEG_W4M_APPROXIMATELY_SIZE    1210000
+#define JPEG_3M_APPROXIMATELY_SIZE     849500
+#define JPEG_2M_APPROXIMATELY_SIZE     566000
+#define JPEG_1M_APPROXIMATELY_SIZE     283000
+#define JPEG_VGA_APPROXIMATELY_SIZE    135000
+
+#define                CLIPING(data)  ((data) < 0 ? 0 : ((data) > 255) ? 255 : (data))
+/*#define               SUPPORT_WINK            //use wink library */
+
+void static YuvToRgb(int Y, int U, int V, int *R, int *G, int *B)
+{
+       *B = CLIPING((76284 * (Y - 16) + 132252 * (U - 128)) >> 16);
+       *G = CLIPING((76284 * (Y - 16) - 53281 * (V - 128) -
+                     25625 * (U - 128)) >> 16);
+       *R = CLIPING((76284 * (Y - 16) + 104595 * (V - 128)) >> 16);
+}
+
+#define FAKE_YUV_IMAGE_WIDTH           640
+#define FAKE_YUV_IMAGE_HEIGHT  480
+#define FAKE_YUV_IMAGE_PATH            PREFIX"/share/camera/fake.yuv"
+
+/* #define SUPPORT_WINK */
+#define CAPTUERD_IMAGE_SAVE_PATH "/tmp/captured_image.jpg"
+
+#ifndef YUV422_SIZE
+#define YUV422_SIZE(width, height) ((width) * (height) *  2)
+#endif                         /* YUV422_SIZE */
+
+#ifndef YUV420_SIZE
+#define YUV420_SIZE(width, height) ((width) * (height) * 3 / 2)
+#endif                         /* YUV420_SIZE */
+
+#ifdef MAX_PATH
+#define MAX_PATH 256
+#endif
+
+char *m_mmc_path = NULL;
+
+/*get the torchlight on/off value*/
+gboolean cam_utils_check_torchlight_status(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+       int ret = -1; /*error, success is 0*/
+       int key_value = -1;
+       ret = vconf_get_bool(VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT, &key_value); /*ret [-1: error, 0:succes], key_value[on:1 , off:0]*/
+       DEBUG_TRACE("VCONFKEY_SETAPPL_ACCESSIBILITY_TORCH_LIGHT is changed to %d", key_value);
+       if (ret == -1) {
+               DEBUG_TRACE("vconf_get_int failed");
+               return FALSE;
+       }
+       if (key_value) {
+               /*torchlight is working*/
+               ad->torchlight_on = TRUE;
+       } else {
+               ad->torchlight_on = FALSE;
+       }
+       return TRUE;
+}
+
+/*get the battery warning low state*/
+gboolean cam_utils_check_battery_warning_low(void)
+{
+       int low_status = -1;
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &low_status)) {
+               cam_debug(LOG_UI, "battery status low = %d", low_status);
+               if (low_status <= VCONFKEY_SYSMAN_BAT_WARNING_LOW)
+                       return TRUE;
+       } else {
+               cam_warning(LOG_UI, "get setting failed %s",
+                           VCONFKEY_SYSMAN_BATTERY_STATUS_LOW);
+       }
+
+       return FALSE;
+}
+/*get the battery critical low state*/
+gboolean cam_utils_check_battery_critical_low(void)
+{
+       int low_status = -1;
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW, &low_status)) {
+               cam_debug(LOG_UI, "battery status low = %d", low_status);
+               if (low_status <= VCONFKEY_SYSMAN_BAT_CRITICAL_LOW)
+                       return TRUE;
+       } else {
+               cam_warning(LOG_UI, "get setting failed %s",
+                           VCONFKEY_SYSMAN_BAT_CRITICAL_LOW);
+       }
+
+       return FALSE;
+}
+
+
+int cam_utils_get_battery_level(void)
+{
+       debug_fenter(LOG_SYS);
+
+       gint battery_level = -1;
+
+       /*  VCONF_BATTERY_LEVEL or VCONFKEY_INDICATOR_MODULE_BATTERY */
+       if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CAPACITY, &battery_level)) {
+               cam_info(LOG_SYS, "battery_level = %d", battery_level);
+               return battery_level;
+       } else {
+               cam_info(LOG_SYS, "get setting failed %s",
+                        VCONFKEY_SYSMAN_BATTERY_CAPACITY);
+       }
+
+       return battery_level;
+}
+
+gint cam_utils_get_charging_status(void)
+{
+       debug_fenter(LOG_SYS);
+
+       gint charging = -1;
+
+       /*  VCONF_BATTERY_CHARGE_NOW or VCONFKEY_INDICATOR_MODULE_CHARGE */
+       if (!vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &charging)) {
+               cam_info(LOG_SYS, "charging = %d", charging);
+       } else {
+               cam_info(LOG_SYS, "get setting failed %s",
+                        VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW);
+       }
+
+       return charging;
+}
+
+guint64 cam_system_get_remain_rec_time(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       if (ad == NULL) {
+               return 0;
+       }
+       CamAppData *camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               return 0;
+       }
+       guint64 remain_time = 0;
+
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               gint64 free_space = 0;
+               guint a_bitrate = 0, v_bitrate = 0;
+               gchar* target_path = (gchar*)cam_app_get_target_path();
+               if (target_path == NULL) {
+                       return 0;
+               }
+               free_space = cam_get_free_space(target_path);
+
+               a_bitrate = cam_app_get_aenc_bitrate(ad);
+               v_bitrate = cam_app_get_venc_bitrate(ad, camapp->video_quality);
+
+               remain_time =
+                   (guint64)((free_space * 8) / (a_bitrate + v_bitrate));
+
+       }
+       return remain_time;
+}
+
+gint64 cam_system_get_still_count_by_resolution(void *data)
+{
+       debug_fenter(LOG_CAM);
+
+       struct appdata *ad = (struct appdata *)data;
+       if (ad == NULL) {
+               return 0;
+       }
+       CamAppData *camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               return 0;
+       }
+
+       gint64 free_space = 0;
+       gint64 remained_count = 0;
+       gint64 avg_file_size = -1;
+       gchar* target_path = (gchar*)cam_app_get_target_path();
+       if (target_path == NULL) {
+               return 0;
+       }
+       free_space = cam_get_free_space(target_path);
+       DEBUG_TRACE("FREE SPACE =%d", free_space);
+       free_space = (free_space - STILL_MINIMAL_SPACE);
+
+       /* TODO: Quality factor should be calculated later!
+        */
+       switch (camapp->resolution) {
+       case CAM_RESOLUTION_3264x2448:
+               avg_file_size = JPEG_8M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_3264x1960:
+       case CAM_RESOLUTION_3264x1836:
+               avg_file_size = JPEG_W6M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_2800x1920:
+       case CAM_RESOLUTION_2560x1920:
+               avg_file_size = JPEG_5M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_2560x1536:
+               avg_file_size = JPEG_W4M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_2560x1440:
+       case CAM_RESOLUTION_2048x1536:
+               avg_file_size = JPEG_3M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_1920x1080:
+       case CAM_RESOLUTION_1600x1200:
+               avg_file_size = JPEG_2M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_1280x720:
+       case CAM_RESOLUTION_1280x960:
+               avg_file_size = JPEG_1M_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_SVGA:
+               avg_file_size = 150 * 1024 * 2;
+               break;
+
+       case CAM_RESOLUTION_WVGA:
+               avg_file_size = 130 * 1024 * 2;
+               break;
+
+       case CAM_RESOLUTION_VGA:
+               avg_file_size = JPEG_VGA_APPROXIMATELY_SIZE;
+               break;
+
+       case CAM_RESOLUTION_WQVGA:
+               avg_file_size = 100 * 1024 * 2;
+               break;
+
+       case CAM_RESOLUTION_QVGA:
+               avg_file_size = 100 * 1024 * 1.5;
+               break;
+
+       case CAM_RESOLUTION_CIF:
+               avg_file_size = 25 * 1024 * 2;
+               break;
+
+       default:
+               critical_msg(LOG_CAM, "unhandled resolution:%dx%d",
+                            HIWORD(camapp->resolution),
+                            LOWORD(camapp->resolution));
+               return -1;
+       }
+
+       remained_count = free_space / avg_file_size;
+       DEBUG_TRACE("FREE SPACE =%d", free_space);
+       DEBUG_TRACE("avg_file_size =%d", avg_file_size);
+       DEBUG_TRACE("remained_count =%d", remained_count);
+
+       return (int)MAX(remained_count, 0);
+}
+
+gint64 cam_get_free_space(const gchar *path)
+{
+       struct statfs fs;
+       if (-1 == statfs(path, &fs))
+               return -1;
+       return (gint64) fs.f_bsize * fs.f_bavail;
+}
+
+
+gboolean cam_utils_set_guide_rect_color(void *data) {
+
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       cam_retv_if(ad == NULL, FALSE);
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+
+       DEBUG_TRACE(" ");
+
+       int capture_video_format = CAMERA_PIXEL_FORMAT_INVALID;
+       cam_mm_get_video_source_format(NULL, &capture_video_format);
+       DEBUG_TRACE("capture_video_format =%d", capture_video_format);
+
+       switch (capture_video_format) {
+       case CAMERA_PIXEL_FORMAT_INVALID:
+               {
+                       cam_debug(LOG_UI,"can not set preview format & shapshot format");
+               }
+               return FALSE;
+       case CAMERA_PIXEL_FORMAT_UYVY:
+       /*case MM_PIXEL_FORMAT_ITLV_JPEG_UYVY:*//*TODO:there is no this value in capi*/
+               {
+                       camapp->guide_rect_green = UYVY_GUIDE_RECT_GREEN;
+                       camapp->guide_rect_orange = UYVY_GUIDE_RECT_ORANGE;
+                       camapp->guide_rect_red = UYVY_GUIDE_RECT_RED;
+                       camapp->guide_rect_white = UYVY_GUIDE_RECT_WHITE;
+               }
+               break;
+       case CAMERA_PIXEL_FORMAT_YUYV:
+               {
+                       camapp->guide_rect_green= YUYV_GUIDE_RECT_GREEN;
+                       camapp->guide_rect_orange= YUYV_GUIDE_RECT_ORANGE;
+                       camapp->guide_rect_red= YUYV_GUIDE_RECT_RED;
+                       camapp->guide_rect_white = YUYV_GUIDE_RECT_WHITE;
+               }
+               break;
+       default:
+               cam_debug(LOG_UI,"can not set preview format & shapshot format");
+               return FALSE;
+       }
+       return TRUE;
+}
+
+
+
+
+gint64 cam_get_capacity_space(const gchar *path)
+{
+       struct statfs fs;
+       if (-1 == statfs(path, &fs))
+               return -1;
+       return (gint64) fs.f_bsize * fs.f_blocks;
+}
+
+
+
+void
+cam_utils_draw_guide_rectangle(void *data, void *frame, int x_org, int y_org,
+                              int width, int height)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "cam_handle is NULL");
+
+       int left, right, top, bottom, offset, y;
+       int xStart, xEnd, draw_width;
+
+       if (width == 0 && height == 0) {
+               cam_debug(LOG_UI, " width,height of rectangle are zero");
+               return;
+       }
+
+       left = 2 * (x_org / 2); /*  to draw on YUV422 or YUV420, we must start at even x */
+       right = left + 2 * (width / 2);
+       top = y_org;
+       bottom = y_org + height;
+
+       int preview_w = 0;      /* make sure this is even */
+       int preview_h = 0;
+       gboolean ret = FALSE;
+
+       ret = cam_mm_get_video_size( &preview_w, &preview_h);
+       cam_ret_if(ret == FALSE || preview_w == 0 || preview_h == 0);
+
+       xStart = MAX(left, 0);
+       xEnd = MIN(right, preview_w);
+
+       draw_width = xEnd - xStart;     /* for top and bottom */
+       if (draw_width <= 0)
+               return;
+
+       int line_thickness = FIT_TO_RESOLUTION(2, 4);   /* make sure this is even */
+
+#if 0
+       int frame_size = preview_w * preview_h;
+
+       guchar guide_rect_colorY =
+           (guchar) ((camapp->guide_rect_color >> 8) & 0xFF);
+       guchar guide_rect_colorU = (guchar) ((camapp->guide_rect_color) & 0xFF);
+       guchar guide_rect_colorV =
+           (guchar) ((camapp->guide_rect_color >> 16) & 0xFF);
+
+       top = 2 * (top / 2);    /* to draw on YUV420, we must start at even y */
+       bottom = 2 * (bottom / 2);
+
+       /* top */
+       for (y = MAX(top, 0); y < top + line_thickness && y < preview_h; y += 2) {      /* line_thickness, and preview_h must be even */
+               offset = y * preview_w + xStart;
+               memset(((guchar *) frame) + offset, guide_rect_colorY,
+                      draw_width);
+               memset(((guchar *) frame) + offset + preview_w,
+                      guide_rect_colorY, draw_width);
+               offset = y * preview_w / 4 + xStart / 2;
+               memset(((guchar *) frame) + frame_size + offset,
+                      guide_rect_colorU, draw_width / 2);
+               memset(((guchar *) frame) + frame_size + frame_size / 4 +
+                      offset, guide_rect_colorV, draw_width / 2);
+       }
+
+       /* bottom */
+       for (y = MAX(bottom - line_thickness, 0);
+            y < bottom && y < preview_h; y += 2) {
+               offset = y * preview_w + xStart;
+               memset(((guchar *) frame) + offset, guide_rect_colorY,
+                      draw_width);
+               memset(((guchar *) frame) + offset + preview_w,
+                      guide_rect_colorY, draw_width);
+               offset = y * preview_w / 4 + xStart / 2;
+               memset(((guchar *) frame) + frame_size + offset,
+                      guide_rect_colorU, draw_width / 2);
+               memset(((guchar *) frame) + frame_size + frame_size / 4 +
+                      offset, guide_rect_colorV, draw_width / 2);
+       }
+
+       /* left */
+       if (left + line_thickness > 0 && left < preview_w) {
+               draw_width = MIN(MIN(line_thickness, line_thickness + left), preview_w - left); /* now calculated for left */
+               for (y = MAX(top, 0); y < bottom && y < preview_h; y += 2) {
+                       offset = y * preview_w + xStart;
+                       memset(((guchar *) frame) + offset, guide_rect_colorY,
+                              draw_width);
+                       memset(((guchar *) frame) + offset + preview_w,
+                              guide_rect_colorY, draw_width);
+                       offset = y * preview_w / 4 + xStart / 2;
+                       memset(((guchar *) frame) + frame_size + offset,
+                              guide_rect_colorU, draw_width / 2);
+                       memset(((guchar *) frame) + frame_size +
+                              frame_size / 4 + offset, guide_rect_colorV,
+                              draw_width / 2);
+               }
+       }
+       /* right */
+       if (right > 0 && right - line_thickness < preview_w) {
+               draw_width = MIN(MIN(line_thickness, right), preview_w - right + line_thickness);       /* now calculated for right */
+               for (y = MAX(top, 0); y < bottom && y < preview_h; y += 2) {
+                       offset = y * preview_w + MAX(right - line_thickness, 0);
+                       memset(((guchar *) frame) + offset, guide_rect_colorY,
+                              draw_width);
+                       memset(((guchar *) frame) + offset + preview_w,
+                              guide_rect_colorY, draw_width);
+                       offset =
+                           y * preview_w / 4 + MAX(right - line_thickness,
+                                                   0) / 2;
+                       memset(((guchar *) frame) + frame_size + offset,
+                              guide_rect_colorU, draw_width / 2);
+                       memset(((guchar *) frame) + frame_size +
+                              frame_size / 4 + offset, guide_rect_colorV,
+                              draw_width / 2);
+               }
+       }
+#else
+
+       int x;
+
+       /* top */
+       for (y = top; y < top + line_thickness && y < preview_h; y++) {
+               if (y < 0)
+                       continue;
+               offset = y * preview_w + xStart;
+               for (x = 0; x < draw_width; x += 2) {
+                       ((gulong *) frame)[(offset + x) / 2] =
+                           camapp->guide_rect_color;
+               }
+       }
+
+       /* bottom */
+       for (y = bottom - line_thickness; y < bottom && y < preview_h; y++) {
+               if (y < 0)
+                       continue;
+               offset = y * preview_w + xStart;
+               for (x = 0; x < draw_width; x += 2) {
+                       ((gulong *) frame)[(offset + x) / 2] =
+                           camapp->guide_rect_color;
+               }
+       }
+
+       /* left */
+       if (left + line_thickness >= 0 && left < preview_w) {
+               draw_width = MIN(MIN(line_thickness, line_thickness + left), preview_w - left); /*  now calculated for left */
+               for (y = MAX(top, 0); y < bottom && y < preview_h; y++) {
+                       offset = y * preview_w + xStart;
+                       for (x = 0; x < draw_width; x += 2) {
+                               ((gulong *) frame)[(offset + x) / 2] =
+                                   camapp->guide_rect_color;
+                       }
+               }
+       }
+       /* right */
+       if (right >= 0 && right - line_thickness < preview_w) {
+               draw_width = MIN(MIN(line_thickness, right), preview_w - right + line_thickness);       /* now calculated for right */
+               for (y = MAX(top, 0); y < bottom && y < preview_h; y++) {
+                       offset = y * preview_w + MAX(right - line_thickness, 0);
+                       for (x = 0; x < draw_width; x += 2) {
+                               ((gulong *) frame)[(offset + x) / 2] =
+                                   camapp->guide_rect_color;
+                       }
+               }
+       }
+#endif
+
+}
+
+void
+cam_utils_convert_YUYV_to_UYVY(unsigned char *dst, unsigned char *src,
+                              gint length)
+{
+       int i = 0;
+
+       memset(dst, 0x00, length);
+       memcpy(dst, src + 1, length - 1);
+
+       for (i = 0; i < length; i++) {
+               if (!(i % 2)) {
+                       dst[i + 1] = src[i];
+               }
+       }
+
+}
+
+void cam_utils_convert_UYVY_to_YUYV(char *dst, char *src, gint length)
+{
+       int i = 0;
+
+       memset(dst, 0x00, length);
+       memcpy((char *)dst + 1, (char *)src, length - 1);
+
+       for (i = 0; i < length; i++) {
+               if ((i % 2)) {  /* even */
+                       dst[i - 1] = src[i];
+               }
+       }
+
+}
+
+#if 1
+
+void
+cam_utils_convert_YUYV_to_YUV420P(unsigned char *pInBuf, unsigned char *pOutBuf,
+                                 int width, int height)
+{
+       unsigned char *pInY, *pInU, *pInV;
+       unsigned char *pOutY, *pOutU, *pOutV;
+
+       int nRowIters = height / 2;
+       int nColIters = width / 2;
+
+       int rows, cols;
+
+       pInY = pInBuf;
+       pInU = pInBuf + 1;
+       pInV = pInBuf + 3;
+       pOutY = pOutBuf;
+       pOutU = pOutBuf + width * height;
+       pOutV = pOutBuf + width * height * 5 / 4;
+
+       /*  Iterate over half the number of rows, because inside there are 2 loops on columns */
+       for (rows = 0; rows < nRowIters; rows++) {
+               /* Even rows
+                  Iterate over half the number of columns, copy 2 pixels each time */
+               for (cols = 0; cols < nColIters; cols++) {
+                       /* Copy Y of first pixel */
+                       *pOutY = *pInY;
+                       pOutY++;
+                       pInY += 2;
+                       /* Copy Y of second pixel */
+                       *pOutY = *pInY;
+                       pOutY++;
+                       pInY += 2;
+                       /* Copy U of all 4 pixels */
+                       *pOutU = *pInU;
+                       pOutU++;
+                       pInU += 4;
+                       /* Copy V of all 4 pixels */
+                       *pOutV = *pInV;
+                       pOutV++;
+                       pInV += 4;
+               }
+               /* Odd rows
+                  Iterate over half the number of columns, copy 2 pixels each time */
+               for (cols = 0; cols < nColIters; cols++) {
+                       /* Copy Y of third pixel */
+                       *pOutY = *pInY;
+                       pOutY++;
+                       pInY += 2;
+                       /* Copy Y of fourth pixel */
+                       *pOutY = *pInY;
+                       pOutY++;
+                       pInY += 2;
+               }
+               /* Skip U, V of third, fourth pixel */
+               pInU += width * 2;
+               pInV += width * 2;
+       }
+}
+
+#else
+
+void
+cam_utils_convert_YUYV_to_YUV420P(byte *src, byte *dst, gint width, gint height)
+{
+       int i = 0;
+       int YUYV_length = 0, YUV420P_length = 0;
+       int temp_length = 0, temp_length2 = 0;
+       int pos_u = 0, pos_v = 0;
+
+       /* cam_debug( LOG_UI, " start" ); */
+
+       temp_length = width * height;
+       temp_length2 = temp_length >> 2;
+       YUYV_length = temp_length << 1;
+       YUV420P_length = (temp_length * 3) >> 1;
+
+       /*
+          cam_debug( LOG_UI, " size[%dx%d], length YUYV[%d],YUV420P[%d]",
+          width, height, YUYV_length, YUV420P_length );
+        */
+
+       if (dst == NULL) {
+               cam_critical(LOG_SYS, " dst is NULL");
+               return;
+       }
+
+       for (i = 0; i < temp_length; i++) {
+               /*  Y data */
+               dst[i] = src[i << 1];
+
+               if (i % (width << 1) < width) {
+                       if (i % 2 == 0) {
+                               /* U data */
+                               dst[temp_length + pos_u] = src[(i << 1) + 1];
+                               pos_u++;
+                       } else {
+                               /*  V data */
+                               dst[temp_length + temp_length2 + pos_v] =
+                                   src[(i << 1) + 1];
+                               pos_v++;
+                       }
+               }
+       }
+}
+
+#endif
+
+void *cam_utils_YUV422_to_ARGB(byte *frame, int width, int height)
+{
+       /* source yuv is FOURCC YUYV, sampling format YUV 422 .
+          yuv422 format
+          Byte Ordering (lowest byte) Y0, U0, Y1, V0 */
+       byte *frame_argb = malloc(width * height * 4);  /* for ARGB */
+
+       if (frame_argb == NULL) {
+               return NULL;
+       }
+       memset(frame_argb,0,width * height * 4);
+
+       int i = 0, j = 0;       /*  row, column */
+       int y, u, v;
+       int r, g, b;
+       unsigned long pixel_idx = 0, rgb_index = 0;
+       short v_idx = 0;
+       short u_idx = 0;
+
+       for (i = 0; i < height; i++) {
+               for (j = 0; j < width; j++) {
+
+                       if (j % 2) {    /* odd */
+                               v_idx = -1;
+                               u_idx = 1;
+                               /* u_idx = -1; v_idx = 1; */
+                       } else {
+                               v_idx = 1;
+                               u_idx = 3;
+                               /* u_idx = 1; v_idx = 3; */
+                       }
+
+                       y = frame[pixel_idx];
+                       v = frame[pixel_idx + v_idx];
+                       u = frame[pixel_idx + u_idx];
+
+                       YuvToRgb(y, u, v, &r, &g, &b);
+
+                       /* ARGB */
+                       frame_argb[rgb_index++] = (byte)CLIPING(r);
+                       frame_argb[rgb_index++] = (byte)CLIPING(g);
+                       frame_argb[rgb_index++] = (byte)CLIPING(b);
+                       frame_argb[rgb_index++] = 0xff;
+
+                       pixel_idx += 2; /* yuv422, 4byte is 2 pixel */
+               }
+       }
+
+       return (void *)frame_argb;
+}
+
+void *cam_utils_IYUV_to_ARGB(byte *frame, int width, int height)
+{
+       /* source yuv is FOURCC IYUV or I420, sampling format YUV 420. */
+       /* IYUV format is http://www.fourcc.org/yuv.php#IYUV */
+
+       byte *frame_argb = malloc(width * height * 4);  /* for ARGB */
+       if (frame_argb == NULL) {
+               return NULL;
+       }
+       memset(frame_argb,0,width * height * 4);
+
+       int h = 0, w = 0;       /* row, column */
+       int y, u, v;
+       int r, g, b;
+       unsigned long rgb_index = 0;    /* ,pixel_idx=0; */
+       int idx = 0;
+
+       for (h = 0; h < height; h++) {
+               for (w = 0; w < width; w++) {
+
+                       y = frame[h * height + w];
+                       u = frame[(width * height) + idx];
+                       v = frame[(width * height) + ((width * height) / 4) +
+                                 idx];
+
+                       if (w % 2)
+                               idx++;
+
+                       YuvToRgb(y, u, v, &r, &g, &b);
+
+                       /* ARGB */
+                       frame_argb[rgb_index++] = (byte)CLIPING(r);
+                       frame_argb[rgb_index++] = (byte)CLIPING(g);
+                       frame_argb[rgb_index++] = (byte)CLIPING(b);
+                       frame_argb[rgb_index++] = 0;
+
+               }
+
+               if ((w == width - 1) && (!(h % 2)))
+                       idx -= width / 2;
+       }
+
+       return (void *)frame_argb;
+}
+
+gboolean
+cam_utils_save_to_jpg_file(int storage_id, gchar *filename, void *frame,
+                          int width, int height, GError **error)
+{
+       cam_debug(LOG_MM, " [%dx%d] %s", width, height, filename);
+
+       int ret = CAMERA_ERROR_NONE;
+
+       CAM_TA_ACUM_ITEM_BEGIN("cam_utils_check_mmc_for_writing", 0);
+       if (storage_id == CAM_STORAGE_EXTERNAL) {
+               if (!cam_utils_check_mmc_for_writing(error)) {
+                       return FALSE;
+               }
+       }
+       CAM_TA_ACUM_ITEM_END("cam_utils_check_mmc_for_writing", 0);
+
+       cam_debug(LOG_SYS, " \n\n\n\n\n START JPEG ENCODING \n\n\n\n\n");
+
+       CAM_TA_ACUM_ITEM_BEGIN("image_util_encode_jpeg", 0);
+       ret = image_util_encode_jpeg(frame, width, height,
+                       IMAGE_UTIL_COLORSPACE_YUYV, 90, filename);
+       CAM_TA_ACUM_ITEM_END("image_util_encode_jpeg", 0);
+
+       cam_debug(LOG_SYS, " \n\n\n\n\n END JPEG ENCODING \n\n\n\n\n");
+
+       if (ret != 0) {
+               cam_critical(LOG_MM, " image_util_encode_jpeg Failed [%x]", ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean
+cam_utils_save_to_jpg_memory(byte **memory, unsigned int *size, void *src_frame,
+                            int width, int height)
+{
+       cam_debug(LOG_MM, " [%dx%d]", width, height);
+
+       int ret = CAMERA_ERROR_NONE;
+
+       cam_debug(LOG_SYS, " \n\n\n\n\n START JPEG ENCODING \n\n\n\n\n");
+
+       CAM_TA_ACUM_ITEM_BEGIN("image_util_encode_jpeg_to_memory", 0);
+       ret = image_util_encode_jpeg_to_memory(src_frame, width, height,
+                       IMAGE_UTIL_COLORSPACE_YUYV, 90, (unsigned char **)memory, size);
+       CAM_TA_ACUM_ITEM_END("image_util_encode_jpeg_to_memory", 0);
+
+       cam_debug(LOG_SYS, " \n\n\n\n\n END JPEG ENCODING \n\n\n\n\n");
+
+       if (ret != 0) {
+               cam_critical(LOG_MM, "image_util_encode_jpeg_to_memory Failed [%x]", ret);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+void *cam_utils_load_temp_file(gchar *filepath, gint *pfilesize)
+{
+       struct stat fileinfo;
+       FILE *fp = NULL;
+
+       stat(filepath, &fileinfo);
+
+       gint filesize = fileinfo.st_size;
+       if (filesize < 0) {
+               cam_critical(LOG_CAM, "can't get file infomation");
+               return NULL;
+       }
+
+       cam_debug(LOG_CAM, "temp file's  file_path =%s, file_size =%d",
+                 filepath, filesize);
+
+       void *data = (void *)malloc(filesize);
+
+       if (data == NULL) {
+               return NULL;
+       }
+       memset(data,0,filesize);
+
+       cam_debug(LOG_CAM, "data = %p ", data);
+
+       if ((fp = fopen(filepath, "r")) == NULL) {
+               perror("fopen");
+               cam_critical(LOG_CAM, "can't open file infomation");
+               return NULL;
+       }
+       if (fread(data, filesize, 1, fp) != 1) {
+               perror("fread");
+               fclose(fp);
+               cam_critical(LOG_CAM, "can't read file infomation");
+               return NULL;
+       }
+
+       *pfilesize = filesize;
+
+       fclose(fp);
+
+       return data;
+}
+
+gboolean cam_utils_check_mmc_for_writing(GError **error)
+{
+       gint error_code = 0;
+       int mmc_state = -1;
+       const gchar *error_msg = NULL;
+
+       if (!m_mmc_path)
+               m_mmc_path = (char *)cam_file_get_external_image_path();
+
+       if (!g_file_test(m_mmc_path, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_DIR)) {
+               error_code = CAM_ERROR_STORAGE_UNAVAILABLE;
+               error_msg = _("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY");
+               goto ERROR;
+       }
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &mmc_state)) {
+               if (mmc_state == VCONFKEY_SYSMAN_MMC_REMOVED) {
+                       error_code = CAM_ERROR_STORAGE_UNAVAILABLE;
+                       error_msg = _("IDS_CAM_POP_MEMORY_CARD_REMOVED");
+                       goto ERROR;
+               }
+       }
+
+       return TRUE;
+
+ ERROR:
+
+       /* cam_set_error */
+       if (error_msg) {
+               if (*error) {
+                       *error = cam_error_new_literal(error_code, error_msg);/*note:fix warnning*/
+               }
+       }
+       return FALSE;
+
+}
+
+gboolean cam_utils_check_mmc_for_inserted_stats(void *data)
+{
+       int mmc_state = -1;
+       g_return_val_if_fail(data, FALSE);
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &mmc_state)) {
+               if (mmc_state == VCONFKEY_SYSMAN_MMC_REMOVED
+                   && camapp->storage == CAM_STORAGE_EXTERNAL) {
+                       return FALSE;
+               }
+       }
+
+       return TRUE;
+}
+
+int cam_utils_check_mmc_status(void)
+{
+       int status = -1;
+
+       if (!vconf_get_int(VCONFKEY_SYSMAN_MMC_STATUS, &status)) {
+               cam_warning(LOG_SYS, " Get MMC status failed");
+       }
+
+       return status;
+}
+
+int cam_utils_get_storage_id_from_filepath(const char *filepath)
+{
+       char *strtemp = NULL;
+
+       strtemp = (char *)cam_file_get_internal_image_path();
+
+       if (strtemp) {
+               if (!strncmp(filepath, strtemp, sizeof(strtemp)))
+                       return CAM_STORAGE_INTERNAL;
+       }
+
+       strtemp = (char *)cam_file_get_external_image_path();
+       if (strtemp) {
+               if (!strncmp(filepath, strtemp, sizeof(strtemp)))
+                       return CAM_STORAGE_EXTERNAL;
+       }
+
+       return CAM_STORAGE_DCF;
+
+}
+
+gboolean
+cam_utils_safety_file_copy(const char *dst, const char *src, GError **error)
+{
+
+       gint error_code = 0;
+       const gchar *error_msg = NULL;
+
+       FILE *fp_src = NULL;
+       FILE *fp_dst = NULL;
+
+       cam_debug(LOG_FILE, " dst file name = %s", dst);
+       cam_debug(LOG_FILE, " dst file name = %s", src);
+
+       fp_src = fopen(src, "r");
+       if (fp_src == NULL) {
+               error_code = CAM_ERROR_FILE_NOT_EXISTS;
+               error_msg = _("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY");
+               goto ERROR;
+       } else {
+
+               cam_debug(LOG_FILE, "start check mmc");
+               /* check mmc */
+               if (cam_utils_get_storage_id_from_filepath(dst) ==
+                   CAM_STORAGE_EXTERNAL) {
+                       if (!cam_utils_check_mmc_for_writing(error))
+                               goto ERROR;
+               }
+
+               cam_debug(LOG_FILE, "end check mmc");
+
+               fp_dst = fopen(dst, "wb");
+               if (fp_dst == NULL) {
+                       error_code = CAM_ERROR_FILE_REGISTER_FAILED;
+                       error_msg =
+                           _("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY");
+                       goto ERROR;
+               } else {
+                       cam_debug(LOG_FILE, "start copy");
+                       /* copy */
+                       unsigned long filesize = 0;
+                       unsigned long filecopyblocksize = 1024 * 512;
+                       unsigned long copysize = 0;
+                       struct stat fileinfo;
+
+                       void *buff = malloc(filecopyblocksize); /* 512k */
+                       if (buff == NULL)
+                               goto ERROR;
+
+                       /* get source file size */
+                       stat(src, &fileinfo);
+
+                       filesize = fileinfo.st_size;
+                       cam_debug(LOG_FILE, "source file size %lu", filesize);
+
+                       if (filesize > 0) {
+                               do {
+
+                                       if (filesize >= filecopyblocksize) {
+                                               copysize = filecopyblocksize;
+                                       } else {
+                                               copysize = filesize;
+                                       }
+
+                                       cam_debug(LOG_FILE, "copy size %lu",
+                                                 copysize);
+                                       if (fread(buff, copysize, 1, fp_src) != 1) {
+                                               cam_debug(LOG_FILE, "read error!");
+                                               if (buff) {
+                                                       free(buff);
+                                                       buff = NULL;
+                                               }
+                                               goto ERROR;
+                                       }
+
+                                       if (buff
+                                           && fwrite(buff, copysize, 1,
+                                                     fp_dst) != 1) {
+                                               cam_debug(LOG_FILE,
+                                                         "file read or write error");
+                                               error_code = CAM_ERROR_FILE;
+                                               error_msg =
+                                                   _
+                                                   ("IDS_CAM_BODY_UNABLE_TO_SAVE_NOT_ENOUGH_MEMORY");
+                                               if (buff) {
+                                                       free(buff);
+                                                       buff = NULL;
+                                               }
+                                               goto ERROR;
+                                       }
+
+                                       filesize -= copysize;
+
+                               } while (filesize > 0);
+
+                       }
+
+                       if (buff) {
+                               free(buff);
+                               buff = NULL;
+                       }
+                       /*fsync(fp_dst->_fileno);*//*block for increasing formance of shot-to-shot */
+                       fclose(fp_dst);
+               }
+
+               fclose(fp_src);
+
+       }
+
+       return TRUE;
+
+ ERROR:
+
+       cam_debug(LOG_FILE, "file copy error, error number=%x", error_code);
+
+       if (fp_dst)
+               fclose(fp_dst);
+
+       if (fp_src)
+               fclose(fp_src);
+
+       /* cam_set_error  */
+       if (error_msg) {
+               if (*error) {
+                       *error = cam_error_new_literal(error_code, error_msg);/*note:fix warnning*/
+               }
+       }
+       return FALSE;
+
+}
+
+static char *cam_utils_trim(char *str)
+{
+       char *i_buf = str;
+
+       for (; *i_buf && isspace(*i_buf); ++i_buf) ;
+
+       return i_buf;
+}
+
+gboolean cam_utils_parse_args(int argc, char *argv[], CamExeArgs *args)
+{
+       int index = 0;
+       const char *delimiters = ",";
+
+       if (args == NULL)
+               return FALSE;
+
+       for (index = 0; index < argc; index++) {
+               if (argv == NULL)
+                       return FALSE;
+
+               if (argv[index][0] == '-' && argv[index][1] != '\0') {
+                       char *r_argv = strdup(cam_utils_trim((argv[index] + 2)));
+                       switch (argv[index][1]) {
+#if 0
+                       case 'd':       /* daemon launch */
+                               {
+                                       args->launch_type =
+                                           CAM_LAUNCHING_MODE_DAEMON;
+                                       return TRUE;
+                               }
+                               break;
+                       case 'h':       /* help */
+                               {
+                                       args->launch_type =
+                                           CAM_LAUNCHING_MODE_HELP;
+                                       return TRUE;
+                               }
+                               break;
+#endif
+                       case 'v':       /* review */
+                               {
+                                       args->review = TRUE;
+                               }
+                               break;
+                       case 'r':       /* resolution */
+                               {
+                                       if (r_argv) {
+                                               char *result = NULL;
+                                               char *save_string = NULL;
+                                               result = strtok_r(r_argv, delimiters,&save_string);
+                                               if (result != NULL)
+                                                       args->width = atoi(result);
+                                               result = strtok_r(NULL, delimiters,&save_string);
+                                               if (result != NULL)
+                                                       args->height = atoi(result);
+                                       } else {
+                                               return FALSE;
+                                       }
+                               }
+                               break;
+                       case 'm':       /* cam_mode */
+                               {
+                                       if (r_argv) {
+                                               if (0 == strcmp(r_argv, "IMAGE")) {
+                                                       args->cam_mode = CAM_CAMERA_MODE;
+                                               } else if (0 == strcmp(r_argv, "VIDEO")) {
+                                                       args->cam_mode = CAM_CAMCORDER_MODE;
+                                               } else {
+                                                       if (r_argv != NULL) {
+                                                               free(r_argv);
+                                                               r_argv = NULL;
+                                                       }
+                                                       return FALSE;
+                                               }
+                                       } else {
+                                               return FALSE;
+                                       }
+                               }
+                               break;
+                       case '-':       /* launching appl.'s name */
+                               {
+                                       if (r_argv) {
+                                               char *qualifier_to_find = "calling-app=";
+                                               char *qualifier_field_start = NULL;
+                                               char *name = NULL;
+
+                                               qualifier_field_start = strstr(r_argv, qualifier_to_find);
+                                               if (qualifier_field_start) {
+                                                       qualifier_field_start += strlen(qualifier_to_find);
+                                                       name = cam_utils_trim(qualifier_field_start);
+                                                       args->caller = strdup(name);
+                                               } else {
+                                                       cam_debug(LOG_SYS, "unknown arg : %s", argv[index]);
+                                               }
+                                       } else {
+                                               return FALSE;
+                                       }
+                               }
+                               break;
+                       case 'l':       /* size limit */
+                               {
+                                       if (r_argv) {
+                                               args->size_limit = atoi(r_argv);
+                                       } else {
+                                               return FALSE;
+                                       }
+                               }
+                               break;
+                       default:        /* unknown option */
+                               cam_debug(LOG_SYS, "Unknown Option : %c",
+                                         argv[index][1]);
+                               break;
+                       }
+                       if (r_argv != NULL) {
+                               free(r_argv);
+                               r_argv = NULL;
+                       }
+               } else {
+                       cam_debug(LOG_SYS, "unknown arg : %s", argv[index]);
+               }
+       }
+
+       cam_debug(LOG_SYS, "cam_mode : %d", args->cam_mode);
+       cam_debug(LOG_SYS, "resolution : [%dx%d]", args->width, args->height);
+       cam_debug(LOG_SYS, "limit : %d", args->size_limit);
+       cam_debug(LOG_SYS, "caller : %s", args->caller);
+       return TRUE;
+}
+
+gboolean cam_utils_check_wide_resolution(int resol_w, int resol_h)
+{
+       if ((ABS((gfloat)((resol_w * 3.0) / (resol_h * 4.0)) - 1.0 ) < CAM_EPSINON )
+           || (ABS((gfloat)((resol_w * 25.0) / (resol_h * 36.0)) - 1.0) < CAM_EPSINON)) {
+               cam_debug(LOG_UI, "Not Wide Resolution : [%d]x[%d]", resol_w,
+                         resol_h);
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+gboolean cam_utils_check_fake_image_exist(const char *fake_image_path)
+{
+       if (!g_file_test(fake_image_path, G_FILE_TEST_EXISTS)) {
+               return FALSE;
+       }
+
+       return TRUE;
+}
+
+int cam_utils_captured_image_select(void *data, const char *file_path)
+{
+       cam_retv_if(data == NULL, FALSE);
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+
+       return 0;
+}
+
+gboolean
+cam_utils_image_rotate(char *src, int src_width, int src_height, char *dst,
+                      int *dst_width, int *dst_height, int degree)
+{
+
+       cam_retv_if(src == NULL || dst == NULL || src_width == 0
+                   || src_height == 0, FALSE);
+       cam_retv_if(degree != 0 && degree != 90 && degree != 180
+                   && degree != 270, FALSE);
+
+       int i = 0;
+       int j = 0;
+
+       int *from = (int *)src;
+       int *to = (int *)dst;
+
+       if (degree == 0) {
+               *dst_width = src_width;
+               *dst_height = src_height;
+               memcpy(dst, src, src_width * src_height * 4);
+               return TRUE;
+       }
+
+       for (j = 0; j < src_height; j++) {
+               for (i = 0; i < src_width; i++) {
+
+                       if (degree == 90) {
+                               *dst_width = src_height;
+                               *dst_height = src_width;
+
+                               *(to + i * src_height + (src_height - j)) =
+                                   *(from + j * src_width + i);
+                       } else if (degree == 180) {
+                               *dst_width = src_width;
+                               *dst_height = src_height;
+
+                               *(to + (src_height - j) * src_width +
+                                 (src_width - i)) =
+*(from + j * src_width + i);
+                       } else if (degree == 270) {
+                               *dst_width = src_height;
+                               *dst_height = src_width;
+
+                               *(to + (src_width - i) * src_height + j) =
+                                   *(from + j * src_width + i);
+                       }
+
+               }
+       }
+
+       return TRUE;
+
+}
+
+
+void cam_utils_set_windows_xy_to_videos_xy(CamVideoRectangle src,
+                                                               CamVideoRectangle *result,
+                                                               void *data)
+{
+       cam_retm_if(data == NULL, "data is null");
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad || !result)
+               return;
+       gdouble width_ratio = 0.0;
+       gdouble height_ratio = 0.0;
+       width_ratio = (gdouble) ad->camfw_video_width/ad->preview_w;
+       height_ratio = (gdouble) ad->camfw_video_height/ad->preview_h;
+       DEBUG_TRACE("result->x %d result->y %d",result->x, result->y);
+       switch (ad->camcorder_rotate) {
+       case CAMERA_ROTATION_NONE:
+               /* win: (x,y)  -------->x (width)
+               *  video:(x,y) -
+               *                -
+               *                -
+               *                -y(height)
+               */
+               result->x = width_ratio * (src.x - ad->preview_offset_x);
+               result->y = height_ratio * (src.y - ad->preview_offset_y);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * width_ratio;
+               result->h = src.h * height_ratio;
+               break;
+       case CAMERA_ROTATION_90:
+               /* win: (x,y)  -------->x   video:(x,y) (height)y<-----
+               *                -                                              -
+               *                -                                              -
+               *                -                                              -
+               *                -y                                     x(width)
+               */
+               result->x = height_ratio * (ad->win_height - ad->preview_offset_y - src.x);
+               result->y = width_ratio * (src.y - ad->preview_offset_y);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * height_ratio;
+               result->h = src.h * width_ratio;
+               break;
+       case CAMERA_ROTATION_180:
+               /* win: (x,y)  -------->x   video:(x,y)                 y(height)
+               *                -                                              -
+               *                -                                              -
+               *                -                                              -
+               *                -y                     (width)x<------
+               */
+               result->x = width_ratio * (ad->win_width - src.x - ad->preview_offset_x);
+               result->y = height_ratio * (ad->win_height - src.y - ad->preview_offset_y);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * width_ratio;
+               result->h = src.h * height_ratio;
+               break;
+       case CAMERA_ROTATION_270:
+               /* win: (x,y)  -------->x   video:(x,y) x(width)
+               *                -                               -
+               *                -                               -
+               *                -                               -
+               *                -y                      -------------y(height)
+               */
+               result->x = height_ratio * (src.x - ad->preview_offset_y);
+               result->y = width_ratio * (ad->win_width - src.y - ad->preview_offset_x);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * height_ratio;
+               result->h = src.h * width_ratio;
+               break;
+       default:
+               DEBUG_TRACE("REACHE UN-REACHED CODES");
+       }
+       DEBUG_TRACE("songfeng result->x %d result->y %d",result->x, result->y);
+
+}
+
+
+void cam_utils_set_videos_xy_to_windows_xy(CamVideoRectangle src,
+                                                               CamVideoRectangle *result,
+                                                               void *data)
+{
+       cam_retm_if(data == NULL, "data is null");
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad || !result)
+               return;
+       gdouble width_ratio = 0.0;
+       gdouble height_ratio = 0.0;
+       width_ratio = (gdouble) ad->preview_w/ad->camfw_video_width;
+       height_ratio = (gdouble) ad->preview_h/ad->camfw_video_height;
+
+       switch (ad->camcorder_rotate) {
+       case CAMERA_ROTATION_NONE:
+               /*
+               *       win: (x,y)  -------->x          video:(x,y) -------->x(width)
+               *                -                                      -
+               *                -                                      -
+               *                -                                      -
+               *                -y                             y(height)
+               */
+               result->x = width_ratio * src.x + ad->preview_offset_x;
+               result->y = height_ratio * src.y + ad->preview_offset_y;
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * width_ratio;
+               result->h = src.h * height_ratio;
+               break;
+       case CAMERA_ROTATION_90:
+               /* win: (x,y)  -------->x   video:(x,y) (height)y<-----
+               *                -                                              -
+               *                -                                              -
+               *                -                                              -
+               *                -y                                     x(width)
+               */
+               result->x = ad->win_height - (height_ratio * src.y + ad->preview_offset_y + height_ratio * src.w);
+               result->y = width_ratio * src.x + ad->preview_offset_x;
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * height_ratio;
+               result->h = src.h * width_ratio;
+               break;
+       case CAMERA_ROTATION_180:
+               /* win: (x,y)  -------->x   video:(x,y)                 y(height)
+               *                -                                              -
+               *                -                                              -
+               *                -                                              -
+               *                -y                     (width)x<------
+               */
+               result->x = ad->win_width - (width_ratio * src.x + ad->preview_offset_x + width_ratio *src.w);
+               result->y = ad->win_height - (height_ratio * src.y + ad->preview_offset_y + height_ratio *src.h);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * width_ratio;
+               result->h = src.h * height_ratio;
+               break;
+       case CAMERA_ROTATION_270:
+               /* win: (x,y)  -------->x   video:(x,y) x(width)
+               *                -                               -
+               *                -                               -
+               *                -                               -
+               *                -y                      -------------y(height)
+               */
+               result->x = height_ratio * src.y + ad->preview_offset_y;
+               result->y = ad->win_width - (width_ratio * src.x + ad->preview_offset_x + width_ratio * src.w);
+               /*notes:here,result->w: horizontal;result->h:vertical*/
+               result->w = src.w * height_ratio;
+               result->h = src.h * width_ratio;
+               break;
+       default:
+               DEBUG_TRACE("REACHE UN-REACHED CODES");
+       }
+
+}
+
diff --git a/src/edc-callback/cam_common_edc_callback.c b/src/edc-callback/cam_common_edc_callback.c
new file mode 100755 (executable)
index 0000000..c3a1161
--- /dev/null
@@ -0,0 +1,573 @@
+/*
+ * 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 <stdio.h>
+#include "camera_utils.h"
+
+#include "edc_string.h"
+
+#include "cam_common_edc_callback.h"
+#include "cam_toolbar_edc_callback.h"
+#include "cam_indicator_edc_callback.h"
+#include "cam_zoom_edc_callback.h"
+#include "cam_ui_effect_utils.h"
+#include "cam_menu_composer.h"
+
+#define CAM_BEAT_UI_SHOT_MODE_NUMS 5
+static Evas_Coord mouse_down_x = 0;
+static Evas_Coord mouse_down_y = 0;
+
+#ifdef PREVIEW_PINCH_ENALBE
+static Evas_Coord mouse_multi_down_x = 0;
+static Evas_Coord mouse_multi_down_y = 0;
+
+
+static Evas_Coord mouse_move_x = 0;
+static Evas_Coord mouse_move_y = 0;
+
+static Evas_Coord mouse_multi_move_x = 0;
+static Evas_Coord mouse_multi_move_y = 0;
+
+
+static double dist_start = 0.0;
+
+typedef enum {
+       MOUSE_DOWN_UNKNWON = 0,
+       MOUSE_DOWN_NONE,
+       MOUSE_DOWN_1,
+       MOUSE_DOWN_2,
+       MOUSE_DOWN_3,
+       MOUSE_DOWN_4,
+} MouseState;
+
+static MouseState mouse_state = MOUSE_DOWN_NONE;
+
+
+
+static void __pinch_end()
+{
+       DEBUG_TRACE("__pinch_end");
+       mouse_down_x = 0;
+       mouse_down_y = 0;
+       mouse_multi_down_x = 0;
+       mouse_multi_down_y = 0;
+
+       mouse_move_x = 0;
+       mouse_move_y = 0;
+       mouse_multi_move_x = 0;
+       mouse_multi_move_x = 0;
+
+       dist_start = 0.0;
+
+       if (mouse_state == MOUSE_DOWN_UNKNWON) {
+               DEBUG_TRACE("state error,mouse_state = %d" ,mouse_state);
+               mouse_state = MOUSE_DOWN_NONE;
+       }
+
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       if (ad) {
+               DEBUG_TRACE("__pinch_end");
+               unload_zoom_edje(ad);
+       } else {
+               DEBUG_TRACE("appdata is NULL");
+       }
+}
+
+static void __pinch_start()
+{
+       mouse_down_x = 0;
+       mouse_down_y = 0;
+       mouse_multi_down_x = 0;
+       mouse_multi_down_y = 0;
+
+       mouse_move_x = 0;
+       mouse_move_y = 0;
+       mouse_multi_move_x = 0;
+       mouse_multi_move_x = 0;
+
+       dist_start = 0.0;
+
+       if (mouse_state == MOUSE_DOWN_UNKNWON) {
+               DEBUG_TRACE("state error,mouse_state = %d" ,mouse_state);
+               mouse_state = MOUSE_DOWN_NONE;
+       }
+}
+#endif/*PREVIEW_PINCH_ENALBE*/
+
+static void __mouse_up_cb(void *data,
+                               Evas * evas,
+                               Evas_Object *obj,
+                               void *event_info)
+{
+       Evas_Coord minw = 0, minh = 0, diff_x = 0, diff_y = 0;
+       Evas_Event_Mouse_Up *mu = (Evas_Event_Mouse_Up *)event_info;
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_retm_if(mu == NULL, "event_info is NULL");
+
+       if (mu->flags & EVAS_BUTTON_DOUBLE_CLICK) {/*double click*/
+               DEBUG_TRACE("TEST:double click");
+               goto double_click;
+       }
+
+#ifdef PREVIEW_PINCH_ENALBE
+       DEBUG_TRACE("__mouse_up_cb,mouse_state = %d",mouse_state);
+       mouse_state--;
+       DEBUG_TRACE("__mouse_up_cb,mouse_state = %d",mouse_state);
+#endif
+       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
+
+       /*  minw *= 2; */
+       /*  minh *= 2; */
+       diff_x = mouse_down_x - mu->canvas.x;
+       diff_y = mouse_down_y - mu->canvas.y;
+
+       /* CAM_UI_LOG("down[ %d, %d], diff [%d, %d]", mouse_down_x, mouse_down_y, diff_x, diff_y); */
+       if ((ABS(diff_x) > minw) || (ABS(diff_y) > minh)) {     /*  dragging */
+               if (diff_y < 0) {
+                       if (ABS(diff_y) > ABS(diff_x)) {        /* down */
+                               /* cam_debug(LOG_UI, "flicking down"); */
+                               goto flick_down;
+                       } else {
+                               if (diff_x < 0) {       /* right */
+                                       /* cam_debug(LOG_UI, "flicking right"); */
+                                       goto flick_right;
+                               } else {        /* left */
+                                       /* cam_debug(LOG_UI, "flicking left"); */
+                                       goto flick_left;
+                               }
+                       }
+               } else {
+                       if (ABS(diff_y) > ABS(diff_x)) {        /* up */
+                               /* cam_debug(LOG_UI, "flicking up"); */
+                               goto flick_up;
+                       } else {
+                               if (diff_x < 0) {       /* right */
+                                       /* cam_debug(LOG_UI, "flicking right"); */
+                                       goto flick_right;
+                               } else {        /* left */
+                                       /* cam_debug(LOG_UI, "flicking left"); */
+                                       goto flick_left;
+                               }
+                       }
+               }
+       }
+
+       /* mouse_flick = CAM_MOUSE_FLICK_NONE; */
+       evas_object_smart_callback_call((Evas_Object *)data, "mouse.click",
+                                       (void *)evas_object_name_get(obj));
+       return;
+ double_click:
+       DEBUG_TRACE("TODO:if you have some thing to do while double click, you could add here");
+       return;
+ flick_up:
+       /* mouse_flick = CAM_MOUSE_FLICK_UP; */
+       evas_object_smart_callback_call((Evas_Object *)data,
+                                       "mouse.flick.up", NULL);
+       return;
+ flick_down:
+       /* mouse_flick = CAM_MOUSE_FLICK_DOWN; */
+       evas_object_smart_callback_call((Evas_Object *)data,
+                                       "mouse.flick.down", NULL);
+       return;
+ flick_left:
+       /* mouse_flick = CAM_MOUSE_FLICK_LEFT; */
+       evas_object_smart_callback_call((Evas_Object *)data,
+                                       "mouse.flick.left", NULL);
+       return;
+ flick_right:
+       /* mouse_flick = CAM_MOUSE_FLICK_RIGHT; */
+       evas_object_smart_callback_call((Evas_Object *)data,
+                                       "mouse.flick.right", NULL);
+#ifdef PREVIEW_PINCH_ENALBE
+       __pinch_end();
+#endif
+       return;
+}
+
+static void __mouse_down_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info;
+
+       CAM_UI_LOG("mouse down :[%d, %d]", ev->canvas.x, ev->canvas.y);
+
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_retm_if(ev == NULL, "event_info is NULL");
+
+/*calculate af_x*/
+
+       /* CAM_UI_LOG("mouse down :[%d, %d]", ev->canvas.x, ev->canvas.y); */
+#ifdef PREVIEW_PINCH_ENALBE
+       __pinch_start();
+
+       DEBUG_TRACE("__mouse_down_cb,mouse_state 01= %d",mouse_state);
+       mouse_state++;
+       DEBUG_TRACE("__mouse_down_cb,mouse_state 02= %d",mouse_state);
+
+#endif
+       mouse_down_x = ev->canvas.x;
+       mouse_down_y = ev->canvas.y;
+       return;
+}
+
+#ifdef PREVIEW_PINCH_ENALBE
+static void __mouse_move_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE("__mouse_move_cb");
+       Evas_Event_Mouse_Move *ev = (Evas_Event_Mouse_Move *) event_info;
+
+       CAM_UI_LOG("mouse move :[%d, %d]", ev->cur.canvas.x, ev->cur.canvas.y);
+       DEBUG_TRACE("device id:%d",ev->buttons);
+       DEBUG_TRACE("X = %d,Y = %d",ev->cur.canvas.x, ev->cur.canvas.y);
+       mouse_move_x = ev->cur.canvas.x;
+       mouse_move_y = ev->cur.canvas.y;
+
+       DEBUG_TRACE("__mouse_move_cb mouse_state = %d",mouse_state);
+       /*dist_start = sqrt(pow(mouse_multi_down_x-mouse_down_x,2) + pow(mouse_multi_down_y-mouse_down_y,2));*/
+
+       if (mouse_state == MOUSE_DOWN_2) {
+               dist_start = sqrt(pow(mouse_multi_move_x-mouse_move_x,2)+pow(mouse_multi_move_y-mouse_move_y,2));
+               DEBUG_TRACE("mouse_state = %d",mouse_state);
+               DEBUG_TRACE("dist_start = %lf",dist_start);
+       }
+       return;
+}
+
+
+static void __mouse_multi_down_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE("__mouse_multi_down_cb");
+       Evas_Event_Multi_Down *ev = (Evas_Event_Multi_Down *)event_info;
+       DEBUG_TRACE("device id:%d", ev->device);
+       DEBUG_TRACE("X = %d,Y = %d", ev->canvas.x, ev->canvas.y);
+       mouse_state++;
+       DEBUG_TRACE("__mouse_multi_down_cb mouse_state = %d",mouse_state);
+
+       mouse_multi_down_x = ev->canvas.x;
+       mouse_multi_down_y = ev->canvas.y;
+
+       mouse_multi_move_x = mouse_multi_down_x;
+       mouse_multi_move_y = mouse_multi_down_y;
+
+       /*dist_start = sqrt(pow(mouse_multi_down_x-mouse_down_x,2) + pow(mouse_multi_down_y-mouse_down_y,2));*/
+       DEBUG_TRACE("__mouse_multi_down_cb dist_start = %lf ",dist_start);
+
+       return;
+}
+
+static void __mouse_multi_up_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE("__mouse_multi_up_cb");
+       Evas_Event_Multi_Up *ev = (Evas_Event_Multi_Up *)event_info;
+
+       DEBUG_TRACE("device id:%d",ev->device);
+       DEBUG_TRACE("device id:%d",ev->device);
+       DEBUG_TRACE("X = %d,Y = %d",ev->canvas.x,ev->canvas.y);
+       if (mouse_state <= MOUSE_DOWN_2) {
+               __pinch_end();
+       }
+       mouse_state--;
+       DEBUG_TRACE("__mouse_multi_up_cb mouse_state = %d",mouse_state);
+
+       return;
+}
+
+static Eina_Bool __pinch_move(void *data,gboolean is_zoom_in,int zoom_value)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       int state = 0;
+       debug_fenter(LOG_UI);
+       state = cam_mm_get_state();
+       cam_debug(LOG_UI, " state = %d", state);
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               if (state == CAMERA_STATE_PREVIEW
+                       || state == CAMERA_STATE_CAPTURED) {
+
+                       ad->show_menu = FALSE;
+                       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+                       cam_toolbar_and_setting_popup_del(ad);
+
+                       if (!camapp->zoom_lock
+                                   && camapp->recording_mode != CAM_RECORD_SLOW) {
+                               cam_pinch_zoom_in(ad,is_zoom_in,zoom_value);
+                               return EINA_TRUE;
+                       }
+               }
+       }else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       if (state == RECORDER_STATE_READY
+                               || state == RECORDER_STATE_RECORDING
+                               || state == RECORDER_STATE_PAUSED) {
+
+                               ad->show_menu = FALSE;
+                               ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+                               cam_toolbar_and_setting_popup_del(ad);
+
+                               if (!camapp->zoom_lock
+                                               && camapp->recording_mode != CAM_RECORD_SLOW) {
+                                       cam_pinch_zoom_in(ad,is_zoom_in,zoom_value);
+                                       return EINA_TRUE;
+                               }
+                       }
+
+
+       }
+
+       return EINA_TRUE;
+}
+
+static void __mouse_multi_move_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE("__mouse_multi_move_cb");
+       Evas_Event_Multi_Move *ev = (Evas_Event_Multi_Move *)event_info;
+
+       DEBUG_TRACE("device id:%d", ev->device);
+       DEBUG_TRACE("device id:%d", ev->device);
+       DEBUG_TRACE("X = %d,Y = %d", ev->cur.canvas.x, ev->cur.canvas.y);
+       DEBUG_TRACE("__mouse_multi_move_cb mouse_state = %d", mouse_state);
+       mouse_multi_move_x = ev->cur.canvas.x;
+       mouse_multi_move_y = ev->cur.canvas.y;
+
+       double dist = sqrt(pow(mouse_multi_move_x-mouse_move_x,2)+pow(mouse_multi_move_y-mouse_move_y,2));
+       DEBUG_TRACE("__mouse_multi_move_cb dist = %f,dist_start = %f ",dist,dist_start);
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       static int zoom_count = 0;
+       zoom_count++;
+       if(zoom_count%7 != 0) {
+               return;
+       }
+       zoom_count = 0;
+       /*int ratio = 0;*/
+       int is_zoom_in = FALSE;
+       if (dist>dist_start) {
+               /*ratio = dist*2/dist_start;*/
+               is_zoom_in = TRUE;
+       } else {
+               /*ratio = dist_start*2/dist;*/
+               is_zoom_in = FALSE;
+       }
+
+       switch(mouse_state) {
+               case MOUSE_DOWN_1:
+                       break;
+               case MOUSE_DOWN_2:
+                       {
+                               DEBUG_TRACE("mouse_state = %d",mouse_state);
+                               __pinch_move(ad,is_zoom_in,1);
+                       }
+                       break;
+               case MOUSE_DOWN_3:
+                       break;
+               case MOUSE_DOWN_4:
+                       break;
+               default:
+                       break;
+       }
+
+       return;
+}
+#endif /*PREVIEW_PINCH_ENALBE*/
+
+void define_mouse_callback(Evas_Object *edje, Evas_Object *parent)
+{
+       mouse_down_x = 0;
+       mouse_down_y = 0;
+
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MOUSE_DOWN,
+                                      __mouse_down_cb);
+
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MOUSE_UP,
+                                      __mouse_up_cb);
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MOUSE_DOWN,
+                                      __mouse_down_cb, parent);
+
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MOUSE_UP,
+                                      __mouse_up_cb, parent);
+
+#ifdef PREVIEW_PINCH_ENALBE
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MOUSE_MOVE, __mouse_move_cb);
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MOUSE_MOVE, __mouse_move_cb, parent);
+
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MULTI_DOWN, __mouse_multi_down_cb);
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MULTI_DOWN, __mouse_multi_down_cb, parent);
+
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MULTI_UP, __mouse_multi_up_cb);
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MULTI_UP, __mouse_multi_up_cb, parent);
+
+       evas_object_event_callback_del(edje, EVAS_CALLBACK_MULTI_MOVE, __mouse_multi_move_cb);
+       evas_object_event_callback_add(edje, EVAS_CALLBACK_MULTI_MOVE, __mouse_multi_move_cb, parent);
+#endif
+}
+
+void cam_layout_del_all(void *data)
+{
+       CAM_UI_LOG();
+       struct appdata *ad = (struct appdata *)data;
+       cam_toolbar_destroy(ad);
+       cam_indicator_destory(ad);
+       unload_zoom_edje(ad);
+       DEL_EVAS_OBJECT(ad->focus_edje);
+       DEL_EVAS_OBJECT(ad->layout_main);
+       DEL_EVAS_OBJECT(ad->black_screen);
+       DEL_EVAS_OBJECT(ad->recording_edje);
+       DEL_EVAS_OBJECT(ad->progressbar);
+       DEL_EVAS_OBJECT(ad->progress_popup);
+       DEL_EVAS_OBJECT(ad->progress_popup_bar);
+       DEL_EVAS_OBJECT(ad->timer_icon_edje);
+       ad->show_menu = FALSE;
+       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+}
+
+int cam_convert_effect_to_menu_item(int mode)
+{
+       switch(mode)
+       {
+               case CAM_SETTINGS_EFFECTS_NOR:
+                       return CAM_MENU_EFFECT_NONE;
+               case CAM_SETTINGS_EFFECTS_NEGATIVE:
+                       return CAM_MENU_EFFECT_NEGATIVE;
+               case CAM_SETTINGS_EFFECTS_MONO:
+                       return CAM_MENU_EFFECT_BLACKANDWHITE;
+               case CAM_SETTINGS_EFFECTS_SEPIA:
+                       return CAM_MENU_EFFECT_SEPIA;
+               default:
+                       return CAM_MENU_EFFECT_NONE;
+       }
+}
+
+int cam_convert_menu_item_to_mmfw_value(int mode)
+{
+       switch(mode)
+       {
+               case CAM_MENU_EFFECT_NONE:
+                       return CAM_SETTINGS_EFFECTS_NOR;
+               case CAM_MENU_EFFECT_NEGATIVE:
+                       return CAM_SETTINGS_EFFECTS_NEGATIVE;
+               case CAM_MENU_EFFECT_BLACKANDWHITE:
+                       return CAM_SETTINGS_EFFECTS_GRAY;
+               case CAM_MENU_EFFECT_SEPIA:
+                       return CAM_SETTINGS_EFFECTS_SEPIA;
+               default:
+                       return -1;
+       }
+}
+
+int cam_get_menu_item_to_index(int menu_type, int item)
+{
+               cam_menu_composer* menu_composer = NULL;
+               menu_composer = malloc(sizeof(cam_menu_composer));
+
+               switch((CAM_MENU_ITEM)menu_type)
+               {
+                       case CAM_MENU_EFFECTS:
+                               cam_compose_menu_effect(menu_composer);
+                               break;
+                       default:
+                               break;
+               }
+
+               CAM_MENU_ITEM* menu_item  = NULL;
+               int size = eina_array_count(menu_composer->array);
+
+
+               int index = 0;
+               for (index = 0; index < size; index++) {
+                       menu_item = (CAM_MENU_ITEM*)eina_array_data_get(menu_composer->array, index);
+
+                       if((CAM_MENU_ITEM)item == *menu_item)
+                       {
+                               return index;
+                       }
+               }
+               cam_compose_free(menu_composer);
+               return INVALID_INDEX;
+}
+
+
+int cam_get_value_to_index(int menu_type, int value)
+{
+       cam_menu_composer* menu_composer = NULL;
+       menu_composer = malloc(sizeof(cam_menu_composer));
+       int item = 0;
+
+       switch(menu_type)
+       {
+               case CAM_MENU_EFFECTS:
+                       cam_compose_menu_effect(menu_composer);
+                        item = cam_convert_effect_to_menu_item(value);
+                       break;
+
+               default:
+                       break;
+       }
+
+       CAM_MENU_ITEM* menu_item  = NULL;
+       int size = eina_array_count(menu_composer->array);
+
+
+       int index = 0;
+       for (index = 0; index < size; index++) {
+               menu_item = (CAM_MENU_ITEM*)eina_array_data_get(menu_composer->array, index);
+
+               if((CAM_MENU_ITEM)item == *menu_item)
+               {
+                       return index;
+               }
+       }
+       cam_compose_free(menu_composer);
+       return INVALID_INDEX;
+}
+
+int cam_get_sound_index(int sound)
+{
+       return sound + 1;
+}
+
+int shot_mode_set(void *data, int mode)
+{
+       CAM_UI_LOG("%d", mode);
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, -1, "camapp_handle is NULL");
+       GValue value = { 0 };
+       if (mode == CAM_SINGLE_MODE)
+               camapp->enable_touch_af = TRUE;
+
+       else
+               camapp->enable_touch_af = FALSE;
+       CAM_GVALUE_SET_INT(value, mode);
+       if (mode != ad->camapp_handle->shooting_mode) {
+               cam_handle_value_set(ad, PROP_SHOT_MODE, &value);
+       }
+       return 0;
+}
+
+
+
diff --git a/src/edc-callback/cam_indicator_edc_callback.c b/src/edc-callback/cam_indicator_edc_callback.c
new file mode 100755 (executable)
index 0000000..7ad1c47
--- /dev/null
@@ -0,0 +1,215 @@
+/*
+ * 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 <stdio.h>
+#include "camera_utils.h"
+
+#include "cam_indicator_edc_callback.h"
+#include "cam_common_edc_callback.h"
+#include "cam_image_name.h"
+#include "edc_string.h"
+
+#define CHARGING_INTERVAL      (0.5)
+
+#define CAM_BATTERY_LEVEL_MAX 8
+static char *battery_image[CAM_BATTERY_LEVEL_MAX] = {
+       INDICATOR_BATTERY_LEVEL_00_ICON,
+       INDICATOR_BATTERY_LEVEL_01_ICON,
+       INDICATOR_BATTERY_LEVEL_02_ICON,
+       INDICATOR_BATTERY_LEVEL_03_ICON,
+       INDICATOR_BATTERY_LEVEL_04_ICON,
+       INDICATOR_BATTERY_LEVEL_05_ICON,
+       INDICATOR_BATTERY_FULL_ICON,
+       INDICATOR_BATTERY_CHARGE_ICON,
+};
+
+static Evas_Object *indicator_image_obj_battery = NULL;
+
+static Eina_Bool cam_indicator_battery_ani_cb(void *data)
+{
+       struct appdata *ad = data;
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, 0, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, 0, "camapp_handle is NULL");
+
+       if (indicator_image_obj_battery) {
+               if (evas_object_visible_get(indicator_image_obj_battery))
+                       evas_object_hide(indicator_image_obj_battery);
+               else
+                       evas_object_show(indicator_image_obj_battery);
+       }
+
+       return TRUE;
+}
+
+static void cam_indicator_draw_battery_ani(void *data)
+{
+       struct appdata *ad = data;
+       CamAppData *camapp = NULL;
+       debug_fenter(LOG_UI);
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+       if (camapp->battery_ani_timer) {
+               cam_debug(LOG_UI, "battery_ani timer already exists! ");
+               return;
+       }
+       camapp->battery_ani_timer =
+           ecore_timer_add(CHARGING_INTERVAL, cam_indicator_battery_ani_cb, ad);
+}
+
+void indicator_update_battery(struct appdata *ad, int level)
+{
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_retm_if(ad->camapp_handle == NULL, "camapp_handle is NULL");
+       cam_retm_if(ad->indicator_edje == NULL, "indicator_edje is NULL");
+       const char *image_file = NULL;
+       int battery_level = 0;
+       gboolean show_icon = TRUE;
+
+       if (ad->camapp_handle->battery_ani_timer) {
+           ecore_timer_del(ad->camapp_handle->battery_ani_timer);
+               ad->camapp_handle->battery_ani_timer = NULL;
+       }
+
+       if (ad->camapp_handle->battery_charging) {
+               battery_level = 7;
+       } else {
+               if (level > 15 && level <= 20) // step2
+                       battery_level = 2;
+               else if (level > 5 && level <= 15) // step1
+                       battery_level = 1;
+               else if (level < 5) {// blinking
+                       battery_level = 0;
+                       cam_indicator_draw_battery_ani((void *)ad);
+               }
+               else
+                       show_icon = FALSE;
+       }
+
+       cam_debug(LOG_CAM, "level [%d] img_index[%d] show state [%d]", level, battery_level, show_icon);
+
+       if (show_icon) {
+               image_file = battery_image[battery_level];
+
+               if (!indicator_image_obj_battery) {
+                       indicator_image_obj_battery = elm_icon_add(ad->indicator_edje);
+               }
+               cam_retm_if(indicator_image_obj_battery == NULL, "indicator_image_obj_battery is NULL");
+               elm_icon_file_set(indicator_image_obj_battery, image_file, NULL);
+               if (ad->camapp_handle->camera_mode == CAM_CAMCORDER_MODE
+                       && ad->is_recording == TRUE)
+                       edje_object_part_swallow(_EDJ(ad->indicator_edje), INDI_REC_BATTERY, indicator_image_obj_battery);
+               else
+                       edje_object_part_swallow(_EDJ(ad->indicator_edje), INDICATOR_BATTERY, indicator_image_obj_battery);
+       } else {
+               if (indicator_image_obj_battery)
+                       evas_object_hide(indicator_image_obj_battery);
+       }
+}
+
+void load_setting_values(struct appdata *ad)
+{
+#ifndef        CAMERA_MACHINE_I686
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_retm_if(ad->camapp_handle == NULL, "camapp_handle is NULL");
+       indicator_update_battery(ad, ad->camapp_handle->battery_level);
+       DEBUG_TRACE("charging = %d",ad->camapp_handle->battery_charging);
+#endif
+       return;
+}
+
+int cam_indicator_create(struct appdata *ad)
+{
+       debug_fenter(LOG_UI);
+       cam_retvm_if(ad == NULL, EXIT_FAILURE, "appdata is NULL");
+       if (ad->indicator_edje != NULL) {
+               load_setting_values(ad);
+               evas_object_show(ad->indicator_edje);
+               return EXIT_SUCCESS;
+       }
+
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               ad->indicator_edje =
+                        cam_app_load_edj(ad->win_main,
+                                       CAM_INDICATOR_EDJ_NAME,
+                                        "indicator_landscape");
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               ad->indicator_edje =
+                        cam_app_load_edj(ad->win_main,
+                                       CAM_INDICATOR_EDJ_NAME,
+                                        "indicator_landscape_inverse");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               ad->indicator_edje =
+                        cam_app_load_edj(ad->win_main,
+                                       CAM_INDICATOR_EDJ_NAME,
+                                        "indicator_portrait");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               ad->indicator_edje =
+                        cam_app_load_edj(ad->win_main,
+                                       CAM_INDICATOR_EDJ_NAME,
+                                        "indicator_portrait_inverse");
+               break;
+       default:
+               DEBUG_TRACE("note:REACHED UN-ABLE REACHED CODES");
+       }
+
+       cam_retvm_if(ad->indicator_edje == NULL, EXIT_FAILURE,
+                    "indicator edje load fail !!!");
+       load_setting_values(ad);
+       return EXIT_SUCCESS;
+}
+
+int cam_indicator_destory(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+
+       DEL_EVAS_OBJECT(indicator_image_obj_battery);
+
+       DEL_EVAS_OBJECT(ad->indicator_edje);
+       return EXIT_SUCCESS;
+}
+
+int cam_indicator_rotate(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       if (ad->indicator_edje) {
+               /* delete indicator */
+               evas_object_hide(ad->indicator_edje);
+               cam_indicator_destory(ad);
+               cam_indicator_create(ad);
+               if (ad->indicator_edje) {
+                       indicator_toggle(ad, FALSE);
+                       evas_object_show(ad->indicator_edje);
+               }
+       } else {
+               return -1;
+       }
+       return 0;
+}
+
+void indicator_toggle(struct appdata *ad, gboolean hide)
+{
+       cam_ret_if(ad == NULL || ad->indicator_edje == NULL);
+}
+
+
diff --git a/src/edc-callback/cam_recording_edc_callback.c b/src/edc-callback/cam_recording_edc_callback.c
new file mode 100644 (file)
index 0000000..8c77b43
--- /dev/null
@@ -0,0 +1,449 @@
+/*
+ * 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 <stdio.h>
+#include "cam.h"
+#include "cam_app.h"
+#include "cam_rec.h"
+#include "cam_mm.h"
+#include "cam_file.h"
+#include "edc_string.h"
+#include "camera_utils.h"
+#include "cam_property.h"
+#include "cam_toolbar_edc_callback.h"
+#include "cam_recording_edc_callback.h"
+
+#define REC_ICON_TIMER_INTERVAL (1)
+#define REC_TIMER_INTERVAL (0.5)
+#define PAUSE_TIMER_INTERVAL (0.5)
+#define PAUSE_TIMEOUT (120)
+#define SECONDS_IN_HOUR (1*60*60)
+
+enum _RecState {
+       CAM_REC_STATE_RECORDING,
+       CAM_REC_STATE_PAUSE,
+};
+#define TIME_FORMAT_MAX_LEN (128)
+/* static int rec_state = CAM_REC_STATE_RECORDING; */
+static double paused_time = 0.0;
+Eina_Bool recording_update_time_cb(void *data);
+Eina_Bool recording_update_icon_cb(void *data);
+Eina_Bool pause_timeout_cb(void *data);
+
+static void __recording_set_state(void *data, int new_state)
+{
+       CAM_UI_LOG();
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+/*      edje_edit_state_visible_set(_EDJ(ad->recording_edje), REC_REC, EDC_DEFAULT_STATE, 0); */
+/*      edje_edit_state_visible_set(_EDJ(ad->recording_edje), REC_PAUSE, EDC_DEFAULT_STATE, 0); */
+       if (new_state == CAM_REC_STATE_RECORDING) {
+               if (ad->rec_time_updater) {
+                       ecore_timer_thaw(ad->rec_time_updater);
+               }
+               if (ad->rec_icon_updater) {
+                       ecore_timer_thaw(ad->rec_icon_updater);
+               }
+               if (ad->rec_pause_timer) {
+                       ecore_timer_del(ad->rec_pause_timer);
+                       ad->rec_pause_timer = NULL;
+               }
+               edje_object_signal_emit(_EDJ(ad->recording_edje), "state,rec",
+                                       "program");
+       } else if (new_state == CAM_REC_STATE_PAUSE) {
+               if (ad->rec_time_updater) {
+                       ecore_timer_freeze(ad->rec_time_updater);
+               }
+               if (ad->rec_icon_updater) {
+                       ecore_timer_freeze(ad->rec_icon_updater);
+               }
+               if (ad->rec_pause_timer) {
+                       ecore_timer_del(ad->rec_pause_timer);
+                       ad->rec_pause_timer = NULL;
+               }
+               paused_time = 0.0;
+               ad->rec_pause_timer =
+                   ecore_timer_add(REC_TIMER_INTERVAL, pause_timeout_cb, ad);
+               edje_object_signal_emit(_EDJ(ad->recording_edje), "state,pause",
+                                       "program");
+       }
+       ad->recording_state = new_state;
+}
+
+/* you can use this function to set time text for recording */
+void recording_set_time(void *data, int hh, int mm, int ss)
+{
+       CAM_UI_LOG();
+       struct appdata *ad = (struct appdata *)data;
+       if (ad->recording_edje) {
+               char time_text[100] = "";
+               snprintf(time_text, sizeof(time_text), "%" CAM_TIME_FORMAT "",
+                        hh, mm, ss);
+               edje_object_part_text_set(_EDJ(ad->recording_edje), RECORDING_TEXT, time_text);
+       }
+}
+
+Eina_Bool pause_timeout_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, FALSE);
+       CamAppData *camapp = NULL;
+       cam_retv_if(camapp == NULL, FALSE);
+       camapp = ad->camapp_handle;
+
+       paused_time += PAUSE_TIMER_INTERVAL;
+       if (paused_time >= PAUSE_TIMEOUT) {
+               camapp->rec_stop_type = CAM_REC_STOP_NORMAL;
+               ad->recording_commit =
+                   ecore_idler_add(cam_video_idler_record_stop, ad);
+               ad->rec_pause_timer = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+       if (ad->recording_edje) {
+               const char *state =
+                   edje_object_part_state_get(_EDJ(ad->recording_edje),
+                                              RECORDING_IMAGE, NULL);
+               if (strcmp(state, "pause") == 0) {
+                       edje_object_signal_emit(_EDJ(ad->recording_edje),
+                                               "indicator,hide", "program");
+               } else if (strcmp(state, "invisible") == 0) {
+                       edje_object_signal_emit(_EDJ(ad->recording_edje),
+                                                "indicator,show", "program");
+               }
+       }
+       return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool recording_update_icon_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       static int count = 0;
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL");
+               /*      ad->rec_icon_updater = NULL; */
+               return ECORE_CALLBACK_CANCEL;
+       }
+       if (count) {
+               edje_object_signal_emit(_EDJ(ad->recording_edje), "state,rec",
+                                       "program");
+       } else {
+               edje_object_signal_emit(_EDJ(ad->recording_edje), "state,rec1",
+                                       "program");
+       }
+       count = !count;
+       return ECORE_CALLBACK_RENEW;
+}
+
+Eina_Bool recording_update_time_cb(void *data)
+{
+       CAM_UI_LOG();
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       if (ad == NULL) {
+               cam_critical(LOG_UI, "appdata is NULL");
+               return ECORE_CALLBACK_CANCEL;
+       }
+       camapp = ad->camapp_handle;
+       if (camapp == NULL) {
+               cam_critical(LOG_UI, "cam_handle is NULL");
+               ad->rec_time_updater = NULL;
+               return ECORE_CALLBACK_CANCEL;
+       }
+       char time_text[100] = "";
+       if (camapp->rec_elapsed < SECONDS_IN_HOUR)
+               snprintf(time_text, sizeof(time_text), "%" CAM_TIME_FORMAT "",
+                        CAM_TIME_ARGS(camapp->rec_elapsed));
+       else
+               snprintf(time_text, sizeof(time_text), "%" CAM_TIME_FORMAT2 "",
+                        CAM_TIME_ARGS2(camapp->rec_elapsed));
+       cam_debug(LOG_UI, "current time %s", time_text);
+       if (ad->recording_edje) {
+               edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                         RECORDING_TEXT, _(time_text));
+       }
+       if ((camapp->recording_mode == CAM_RECORD_MMS) ||(camapp->recording_mode == CAM_RECORD_SELF_MMS)) {
+
+               char str[10] = "";
+               char str2[10] = "";
+               char *filename = NULL;
+               int fname_size = 0;/*unused*/
+               guint64 size_limit = 0;
+               gdouble pbar_position = 0.0;
+               cam_mm_get_filename(&filename, &fname_size);
+               if (camapp->rec_filesize) {
+                       size_limit = (guint64)camapp->size_limit;
+                       pbar_position = camapp->rec_filesize / (gdouble) size_limit;
+                       cam_app_set_progressbar_value(ad, pbar_position);
+                       snprintf(str, sizeof(str), "%dK", camapp->size_limit);
+                       snprintf(str2, sizeof(str2), "%dK", camapp->rec_filesize);
+                       edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                                 "progressbar_text", str);
+                       edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                                 "file_size_text", str2);
+               }
+       }
+
+       gchar * target_path = NULL;
+       target_path = (gchar*)cam_app_get_target_path();
+       double ration = 0.0;
+       if (target_path != NULL) {
+               gint64 free_space = cam_get_free_space(target_path);
+               gint64 capacity_space = cam_get_capacity_space(target_path);
+               ration = (double)free_space/(double)capacity_space;
+       }
+       DEBUG_TRACE("ration : %f ", ration);
+       if (ration < 0.20) {
+               /*show left time*/
+               char time_left_text[TIME_FORMAT_MAX_LEN + 1] = { '\0', };
+               guint64 remain_rec_time = 0;
+               remain_rec_time = cam_system_get_remain_rec_time((void*)ad);
+               DEBUG_TRACE("%d",remain_rec_time);
+               if (remain_rec_time < SECONDS_IN_HOUR) {
+                       snprintf(time_left_text, TIME_FORMAT_MAX_LEN, "%" CAM_TIME_FORMAT "",
+                                       CAM_TIME_ARGS(remain_rec_time));
+                       DEBUG_TRACE("%s",time_left_text);
+               } else {
+                       snprintf(time_left_text, TIME_FORMAT_MAX_LEN, "%" CAM_TIME_FORMAT2 "",
+                                CAM_TIME_ARGS2(remain_rec_time));
+                       DEBUG_TRACE("%s",time_left_text);
+               }
+               edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                         RECORDING_LEFT_TEXT,
+                                         _(time_left_text));
+
+       } else {
+               edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                         RECORDING_LEFT_TEXT, _(""));
+       }
+       return ECORE_CALLBACK_RENEW;
+}
+
+static void __recording_cb(void *data, Evas_Object *o, const char *emission,
+                          const char *source)
+{
+       CAM_UI_LOG();
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(emission == NULL);
+       cam_ret_if(source == NULL);
+       cam_ret_if(ad == NULL);
+
+       if (emission && source)
+               CAM_UI_LOG("emission signal: %s, comes from:%s", emission,
+                          source);
+       if (!strcmp(emission, REC_REC_SIG)) {
+               /* todo: recording start */
+               if (cam_video_record_resume(ad)) {
+                       __recording_set_state(ad, CAM_REC_STATE_RECORDING);
+               }
+       } else if (!strcmp(emission, REC_PAUSE_SIG)) {
+               /* to do: recording pause */
+               if (cam_video_record_pause(ad)) {
+                       __recording_set_state(ad, CAM_REC_STATE_PAUSE);
+               }
+       } else if (!strcmp(emission, REC_STOP_SIG)) {
+               /* to do: recording stop */
+               if (ad->rec_time_updater)
+                       ecore_timer_del(ad->rec_time_updater);
+               ad->rec_time_updater = NULL;
+               if (ad->rec_icon_updater)
+                       ecore_timer_del(ad->rec_icon_updater);
+               ad->rec_icon_updater = NULL;
+               recording_set_time(ad, 0, 0, 0);
+               ad->camapp_handle->rec_stop_type = CAM_REC_STOP_NORMAL;
+               cam_video_record_stop(ad);
+       }
+}
+
+#if ENABLE_HAPTIC
+void cam_app_haptic_cb(void *data, Evas_Object *o, const char *emission,
+                      const char *source);
+
+#endif
+static void _recording_edje_callback_define(Evas_Object *o, struct appdata *ad)
+{
+       CAM_UI_LOG();
+       edje_object_signal_callback_del(o, "*", REC_SIG_SRC, __recording_cb);
+       edje_object_signal_callback_add(o, "*", REC_SIG_SRC, __recording_cb,
+                                       ad);
+
+#if ENABLE_HAPTIC
+       edje_object_signal_callback_del(o, "*", HAPTIC_SIG_SRC,
+                                       cam_app_haptic_cb);
+       edje_object_signal_callback_add(o, "*", HAPTIC_SIG_SRC,
+                                       cam_app_haptic_cb, ad);
+
+#endif
+}
+int load_recording_edje(struct appdata *ad)
+{
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, EXIT_FAILURE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, EXIT_FAILURE, "cam_handle is NULL");
+
+       cam_toolbar_update(ad);
+
+       cam_retv_if(ad->recording_edje != NULL, -1);
+       if (ad->recording_edje) {
+               evas_object_del(ad->recording_edje);
+               ad->recording_edje = NULL;
+       }
+
+       DEBUG_TRACE("ad->target_direction %d", ad->target_direction);
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_INVERSE_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_VERTICAL_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_VERTICAL_INVERSE_EDJ_NAME,
+               "recording_layout");
+               break;
+       default:
+               DEBUG_TRACE("note:reach un-able reached codes");
+       }
+
+       cam_retv_if(ad->recording_edje == NULL, -1);
+       _recording_edje_callback_define(_EDJ(ad->recording_edje), ad);
+       if ((camapp->recording_mode == CAM_RECORD_MMS) ||(camapp->recording_mode == CAM_RECORD_SELF_MMS)) {
+               char str[10] = "";
+               char str2[10] = "";
+               camapp->rec_filesize =0;
+               snprintf(str, sizeof(str), "%dK", camapp->size_limit);
+               snprintf(str2, sizeof(str), "%dK", 0);
+               cam_app_create_progressbar(ad);
+
+               /* cam_app_set_progressbar_value(ad, 0.0); */
+               elm_object_part_content_set(ad->recording_edje, "progressbar",
+                                      ad->progressbar);
+               edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                         "progressbar_text", str);
+               edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                         "file_size_text", str2);
+       }
+       camapp->rec_elapsed = 0;
+       __recording_set_state(ad, CAM_REC_STATE_RECORDING);
+       recording_set_time(ad, 0, 0, 0);
+       if (ad->rec_time_updater != NULL)
+               ecore_timer_del(ad->rec_time_updater);
+       if (ad->rec_icon_updater != NULL)
+               ecore_timer_del(ad->rec_icon_updater);
+       ad->rec_time_updater =
+           ecore_timer_add(REC_TIMER_INTERVAL, recording_update_time_cb, ad);
+       ad->rec_icon_updater =
+           ecore_timer_add(REC_ICON_TIMER_INTERVAL, recording_update_icon_cb, ad);
+
+       return EXIT_SUCCESS;
+}
+
+int unload_recording_edje(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       cam_app_destroy_progressbar(ad);
+       DEL_EVAS_OBJECT(ad->recording_edje);
+       REMOVE_TIMER(ad->rec_time_updater);
+       REMOVE_TIMER(ad->rec_icon_updater);
+
+       cam_toolbar_update(ad);
+
+       return EXIT_SUCCESS;
+}
+
+int cam_recording_rotate(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, EXIT_FAILURE, "cam_handle is NULL");
+       evas_object_hide(ad->indicator_edje);
+       elm_object_part_content_unset(ad->recording_edje, "progressbar");
+       evas_object_hide(ad->progressbar);
+       DEL_EVAS_OBJECT(ad->recording_edje);
+
+
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_INVERSE_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_VERTICAL_EDJ_NAME,
+               "recording_layout");
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               ad->recording_edje = cam_app_load_edj(ad->win_main, CAM_RECORDING_VERTICAL_INVERSE_EDJ_NAME,
+               "recording_layout");
+               break;
+       default:
+               DEBUG_TRACE("note:reach un-able reached codes");
+       }
+
+       cam_retv_if(ad->recording_edje == NULL, -1);
+       _recording_edje_callback_define(_EDJ(ad->recording_edje), ad);
+       if (ad->recording_state == CAM_REC_STATE_RECORDING) {
+               edje_object_signal_emit(_EDJ(ad->recording_edje), "state,rec",
+                                       "program");
+       } else if (ad->recording_state == CAM_REC_STATE_PAUSE) {
+               edje_object_signal_emit(_EDJ(ad->recording_edje),
+                                       "state,pause", "program");
+       }
+       char time_text[100] = "";
+       if (camapp->rec_elapsed < 3600)
+               snprintf(time_text, sizeof(time_text), "%" CAM_TIME_FORMAT "",
+                        CAM_TIME_ARGS(camapp->rec_elapsed));
+       else
+               snprintf(time_text, sizeof(time_text), "%" CAM_TIME_FORMAT2 "",
+                        CAM_TIME_ARGS2(camapp->rec_elapsed));
+       cam_debug(LOG_UI, "current time %s", time_text);
+       if (ad->recording_edje) {
+               edje_object_part_text_set(_EDJ(ad->recording_edje), RECORDING_TEXT, _(time_text));
+       }
+       if (ad->progressbar) {
+               char str[10] = "";
+               char str2[10] = "";
+               char *filename = NULL;
+               int fname_size = 0;
+               guint64 size_limit = 0;
+               gdouble pbar_position = 0.0;
+               cam_mm_get_filename(&filename, &fname_size);
+               if (camapp->rec_filesize) {
+                       size_limit = (guint64)camapp->size_limit;
+                       pbar_position =camapp->rec_filesize/ (double)size_limit;
+                       cam_app_set_progressbar_value(ad, pbar_position);
+                       snprintf(str, sizeof(str), "%dK", camapp->size_limit);
+                       snprintf(str2, sizeof(str2), "%dK", camapp->rec_filesize);
+                       elm_object_part_content_set(ad->recording_edje, "progressbar",
+                                              ad->progressbar);
+                       edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                                 "progressbar_text", str);
+                       edje_object_part_text_set(_EDJ(ad->recording_edje),
+                                                 "progressbar_text", str2);
+               }
+       }
+       return EXIT_SUCCESS;
+}
diff --git a/src/edc-callback/cam_toolbar_edc_callback.c b/src/edc-callback/cam_toolbar_edc_callback.c
new file mode 100755 (executable)
index 0000000..5f93afe
--- /dev/null
@@ -0,0 +1,4439 @@
+/*
+ * 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 <stdio.h>
+#include <pthread.h>
+/*
+#include "camera_utils.h"
+*/
+#include "cam.h"
+#include "edc_string.h"
+#include "cam_ta.h"
+#include "cam_config.h"
+
+#include "cam_toolbar_edc_callback.h"
+#include "cam_common_edc_callback.h"
+#include "cam_indicator_edc_callback.h"
+#include "cam_image_name.h"
+#include "edc_image_name.h"
+#include "cam_long_press.h"
+#include "cam_zoom_edc_callback.h"
+#include "cam_ui_effect_utils.h"
+#include "cam_menu_composer.h"
+#include "cam_device_capacity.h"
+#include "camera_utils.h"
+#include "cam_mm.h"
+
+
+#define SHUTTER_LONG_TAP_TIME 0.5 /*latency time of AF function*/
+#define CAM_SHOTCUTS_NUMS 22
+
+static int setting_gl_x = 0; /*mouse in setting popup coordinate: x*/
+static int setting_gl_y = 0; /*mouse in setting popup coordinate: y*/
+static Elm_Genlist_Item_Class itc;
+
+static Evas_Coord shortcuts_canvas_prev_x;
+static Evas_Coord shortcuts_canvas_prev_y;
+static Eina_List *shortcuts_ele_list = NULL;
+
+
+#define POPUP_WIDTH 350
+#define WB_POPUP_HEIGHT 478
+#define EFFECT_MODE_POPUP_NORMAL_HEIGHT 382
+#define FOCUS_POPUP_CAM_HEIGHT 309
+#define FLASH_POPUP_CAM_HEIGHT 309
+#define FLASH_POPUP_REC_HEIGHT 309
+#define REC_MODE_POPUP_HEIGHT 309
+#define SHOT_MODE_POPUP_NORMAL_HEIGHT 382
+#define SHOT_MODE_POPUP_EXTERNAL_HEIGHT 309
+#define MORE_POPUP_HEIGHT 500
+#define METERING_POPUP_HIGHT 309
+#define POPUP_HEIGHT 561
+#define RESOLUTION_POPUP_CAM_HEIGHT (561)
+#define RESOLUTION_POPUP_REC_HEIGHT (561)
+#define TIMER_POPUP_CAM_HEIGHT 382
+
+#define SETTING_POPUP_X (114)
+#define SETTING_POPUP_Y (55)
+#define VER_SETTING_POPUP_X SETTING_POPUP_Y
+#define VER_SETTING_POPUP_Y SETTING_POPUP_X
+#define SHORTCUTS_PART_ARRAY_MAX_LEN (16)
+
+#define OPTION_POPUP_X                 107
+#define OPTION_POPUP_Y         613
+#define SHOT_MODE_POPUP        203
+#define EV_POPUP                       340
+#define TIMER_POPUP            472
+
+#define RESOLUTION_POPUP       610
+#define METERING_POPUP         743
+#define WB_POPUP                       900
+#define MORE_POPUP                     1067
+
+#define SETTING_HOR_CTX_POPUP_X        554
+#define SETTING_VER_CTX_POPUP_X        202
+#define SCENE_MODE_POPUP_WIDTH 400
+
+#define SCROLLER_POPUP_WIDTH 400
+#define SCROLLER_POPUP_HEIGHT 382
+
+
+#ifdef NEW_GUI
+#define SETTING_POPUP_WIDTH 550
+#define SETTING_POPUP_HEIGHT 661
+#endif
+
+typedef enum {
+       BUTTON_STATE_NORMAL,
+       BUTTON_STATE_PRESS,
+       BUTTON_STATE_DIM,
+} ButtonState;
+
+typedef enum {
+       TOOLBAR_ITEM_STATE_NORMAL,
+       TOOLBAR_ITEM_STATE_EDIT,
+       TOOLBAR_ITEM_STATE_DIM,
+       TOOLBAR_ITEM_STATE_INVISIBLE,
+} ToolbarItemState;
+
+typedef struct __Setting_List_Callback {
+       CAM_MENU_ITEM index;
+       Evas_Smart_Cb func;
+} Setting_List_Callback;
+
+static void __get_toolbar_shortcuts_file_func(void *data, int type, ButtonState state,
+                               char **file_path, char **name_line_1, char **name_line_2, Evas_Object_Event_Cb *func);
+static gboolean __is_shortcuts_on_menu_bar(struct appdata *ad, int index, int *menu_bar_no, Evas_Object **icon);
+
+void update_menubar_shortcuts_mouse_event(struct appdata *ad, int menubar_no, bool all_menubar);
+void create_menubar_shortcuts_mouse_event(struct appdata *ad);
+void destroy_menubar_shortcuts_mouse_event(struct appdata *ad, int menubar_no, bool all_menubar);
+gboolean check_if_shortcuts_from_menubar(struct appdata *ad, Evas_Object *obj, int *menubar_no);
+int toolbar_create_shortcuts_popup(struct appdata *ad);
+
+Eina_Bool toolbar_create_setting_popup_cb(void *data);
+int toolbar_create_setting_popup(struct appdata *ad);
+void toolbar_show_setting_popup(struct appdata *ad);
+static void __get_option_coord_by_menubar_no(int menubar_no, int target_direction,     int *x, int *y);
+static int __get_menubar_no_by_index(struct appdata *ad, int index);
+
+static void __setting_shortcuts_mouse_up(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void __setting_shortcuts_mouse_move(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void __setting_shortcuts_mouse_down(void *data, Evas * evas, Evas_Object *obj, void *event_info);
+static void __update_menubar_icon_by_index(struct appdata *ad, int index);
+static void __cam_toolbar_edit_shortcuts_data_clean();
+static void __cam_toolbar_move_ctxpopup(Evas_Object *obj, int target_direction, int x, int y);
+static void __cam_toolbar_move_sub_menu(Evas_Object *obj, int target_direction, int x, int y);
+
+
+static void __toolbar_menu_type_update(Evas_Object *toolbar_icon, int type, void *data, ButtonState state, Evas_Object_Event_Cb *func);
+static void __cam_get_ctxpopup_coord_in_setting_toolbar(int target_direction, int mouse_point, int *x, int *y);
+
+/* Setting list callback*/
+static void __setting_edit_shortcut_popup_cb(void *data, Evas_Object *obj, void *event_info);
+static void __setting_timer_popup_cb(void *data, Evas_Object *obj, void *event_info);
+static void __setting_effects_popup_cb(void *data, Evas_Object *obj, void *event_info);
+static void __setting_guideline_popup_cb(void *data, Evas_Object *obj, void *event_info);
+static void __setting_restore_defaults_popup_cb(void *data, Evas_Object *obj, void *event_info);
+
+/* Toolbar functions */
+static void __toolbar_menu_icon_update(struct appdata *ad);
+static int __toolbar_menu_item_create(struct appdata *ad);
+static void __toolbar_menu_item_update(struct appdata *ad, ToolbarItemState state);
+static int __toolbar_mode_item_create(struct appdata *ad);
+static void __toolbar_mode_item_destroy(struct appdata *ad);
+static void __toolbar_mode_item_update(struct appdata *ad);
+static void __toolbar_mode_item_hide(struct appdata *ad);
+static int __toolbar_shutter_button_create(struct appdata *ad);
+static void __toolbar_shutter_button_destroy(struct appdata *ad);
+static void __toolbar_shutter_button_update(struct appdata *ad);
+static void __toolbar_shutter_button_hide(struct appdata *ad);
+static int __toolbar_quickview_item_create(struct appdata *ad);
+static void __toolbar_quickview_item_destroy(struct appdata *ad);
+static void __toolbar_quickview_item_update(struct appdata *ad);
+static void __toolbar_quickview_item_hide(struct appdata *ad);
+static int __toolbar_backbutton_create(struct appdata *ad);
+static void __toolbar_backbutton_destroy(struct appdata *ad);
+static int __toolbar_recording_capture_button_create(void *data);
+static void __toolbar_recording_capture_button_destroy(void *data);
+
+static const char* __get_icon_image_name(CAM_MENU_ITEM item);
+static const char* __get_text_name(CAM_MENU_ITEM item);
+
+
+static void __toolbar_mode_item_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       DEBUG_TRACE("START");
+
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       if (ad->is_rotating) return;/*note: now is rotating*/
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       unload_zoom_edje(ad);
+
+       if(ad->battery_status == LOW_BATTERY_CRITICAL_STATUS)
+               return;
+
+       if (!ad->enable_mode_change) {
+               DEBUG_TRACE("Can not change mode");
+               return;
+       }
+       ad->enable_mode_change = FALSE;
+       static bool is_running = false;
+       int new_mode = 0;
+       if (is_running) {
+               DEBUG_TRACE("toolbar mode item click signal processing.... new singal cancelled.");
+               return;
+       }
+       is_running = true;
+       REMOVE_TIMER(ad->toolbar_toggle_timer);
+       if (ad->toolbar.mode_item.is_dimmed) {
+               ad->enable_mode_change = TRUE;
+               is_running = false;
+               return;
+       }
+       ad->show_menu = FALSE;
+       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+       cam_toolbar_and_setting_popup_del(ad);
+       toolbar_destroy_setting_popup(ad);
+       ad->toolbar_show_edit_shortcuts_popup = FALSE;
+       toolbar_destroy_shortcuts_popup(ad);
+
+       if (data) {
+               new_mode = (int)data;
+               if (camapp->camera_mode == new_mode) {
+                       DEBUG_TRACE("Do not need to change mode");
+                       ad->enable_mode_change = TRUE;
+                       is_running = false;
+                       return;
+               }
+       } else {
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       new_mode = CAM_CAMCORDER_MODE;
+               }       else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+                       new_mode = CAM_CAMERA_MODE;
+               }
+       }
+
+       DEBUG_TRACE("mode change to %d", new_mode);
+
+       GValue value = {0, };
+       CAM_GVALUE_SET_INT(value, new_mode);
+       if (!cam_handle_value_set(ad, PROP_MODE, &value)) {
+               ad->enable_mode_change = TRUE;
+               is_running = false;
+               return;
+       }
+
+       ad->is_recording = FALSE;
+
+#ifndef DISABLE_INDICATOR
+       if (ad->indicator_edje) {
+
+               /* delete indicator */
+               evas_object_hide(ad->indicator_edje);
+               cam_indicator_destory(ad);
+       }
+       cam_indicator_create(ad);
+
+#endif
+       cam_toolbar_setting_popup_delayed_create(ad);
+       is_running = false;
+
+       DEBUG_TRACE("END");
+}
+
+static void __toolbar_shutter_button_cb(void *data, Evas_Object *o,
+                                   const char *emission, const char *source)
+{
+       DEBUG_TRACE("START");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->is_rotating) return;/*note: now is rotating*/
+       CamAppData *camapp = ad->camapp_handle;;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       cam_retm_if(emission == NULL, "emission is NULL");
+       cam_retm_if(source == NULL, "source is NULL");
+       cam_debug(LOG_UI, "signal: %s, comes from:%s", emission, source);
+
+       unload_zoom_edje(ad);
+
+       ad->show_menu = FALSE;
+       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+       ad->show_menu = FALSE;
+       ad->toolbar_show_setting_popup = FALSE;
+       cam_toolbar_and_setting_popup_del(ad);
+
+       if (strcmp(emission, "press_shutter_sig") == 0) {
+               ad->is_showing_snapshot_popup = FALSE; /*initialize flag value*/
+               DEBUG_TRACE("initialize : ad->is_showing_snapshot_popup = FALSE");
+               ad->shutter_move = FALSE;
+       } else if ( strcmp(emission, "move_shutter_sig") == 0) {
+               ad->shutter_move = TRUE;
+       } else if ( strcmp(emission, "release_shutter_sig") == 0){
+               ad->shutter_move = FALSE;
+               camapp->key_lock = FALSE;
+
+               DEBUG_TRACE("camapp->key_lock is %d\n", camapp->key_lock);
+               if (!camapp->key_lock) {
+                       camapp->key_lock = TRUE;
+
+                       if (!cam_camera_key_press(ad))
+                               cam_warning(LOG_UI, "cam_camera_key_press failed");
+
+                       camapp->key_lock = FALSE;
+               }
+       }
+}
+
+static void __toolbar_backbutton_cb(void *data, Evas_Object *o,
+                                   const char *emission, const char *source)
+{
+       DEBUG_TRACE("START");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->is_rotating) return;/*note: now is rotating*/
+       CamAppData *camapp = ad->camapp_handle;;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       cam_retm_if(emission == NULL, "emission is NULL");
+       cam_retm_if(source == NULL, "source is NULL");
+       cam_debug(LOG_UI, "signal: %s, comes from:%s", emission, source);
+
+       unload_zoom_edje(ad);
+
+       if (ad->timer_activated) {
+               cam_app_cancel_timer(ad);
+               return;
+       }
+       cam_app_exit(ad);
+
+       DEBUG_TRACE("END");
+}
+
+static Ecore_Idler *run_image_view_idler = NULL;
+static Eina_Bool __cam_toolbar_run_image_viewer_idler(void *data)
+{
+       if (run_image_view_idler) {
+               ecore_idler_del(run_image_view_idler);
+               run_image_view_idler = NULL;
+       }
+       cam_retv_if(data == NULL, ECORE_CALLBACK_CANCEL);
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+       if (ad->ug_is_deleting_process == TRUE)
+               return ECORE_CALLBACK_CANCEL;
+
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, ECORE_CALLBACK_CANCEL);
+       if (!cam_app_run_media_browser(ad, camapp->filename)) {
+               DEBUG_TRACE("cam_app_run_media_browser failed");
+               if (toolbar_create_setting_popup(ad)) {
+                       DEBUG_TRACE("created setting popup");
+               } else {
+                       DEBUG_TRACE("creating setting popup failed");
+               }
+       }
+       return ECORE_CALLBACK_CANCEL;
+
+}
+
+static void __toolbar_quickview_cb(void *data, Evas_Object *o,
+                                  const char *emission, const char *source)
+{
+       cam_ret_if(data == NULL);
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->is_rotating) return;/*note: now is rotating*/
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+       cam_ret_if(emission == NULL);
+       cam_ret_if(source == NULL);
+       if (ad->ug_is_deleting_process == TRUE)
+               return;
+       unload_zoom_edje(ad);
+
+       if (ad->imageviewer_ug) {
+               return;
+       }
+       if (emission && source)
+               cam_debug(LOG_UI, "signal: %s, comes from:%s", emission,
+                         source);
+       if (strcmp(emission, "portrait,quickview,press") == 0
+           || strcmp(emission, "landscape,quickview,press") == 0) {
+               if (ad->camapp_handle->shooting_mode != CAM_SELF_MODE) {
+                       ad->show_menu = FALSE;
+                       ad->toolbar_show_edit_shortcuts_popup = FALSE;
+                       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+                       cam_toolbar_and_setting_popup_del(ad);
+               }
+       } else if (strcmp(emission, "portrait,quickview,release") == 0
+                  || strcmp(emission, "landscape,quickview,release") == 0) {
+
+#ifdef USE_FILE_REG_THREAD
+               pthread_mutex_lock(&ad->file_reg_mutex);
+               cam_debug(LOG_SYS, " lock file_reg_mutex");
+               pthread_mutex_unlock(&ad->file_reg_mutex);
+
+#endif
+               run_image_view_idler = ecore_idler_add(__cam_toolbar_run_image_viewer_idler,
+                                                       (void *)ad);
+       }
+}
+
+static void __toolbar_capture_button_cb(void *data, Evas_Object *o,
+                                   const char *emission, const char *source)
+{
+       DEBUG_TRACE("START");
+       cam_ret_if(data == NULL);
+       struct appdata *ad = (struct appdata *)data;
+
+       if(ad->is_showing_snapshot_popup) {
+               DEBUG_TRACE("ad->is_showing_snapshot_popup == TRUE, can not capture");
+               /*can not capture*/
+               return;
+       }
+       if (emission && source) {
+               DEBUG_TRACE("signal: %s, comes from:%s", emission, source);
+               DEBUG_TRACE("start capture");
+               if (!cam_image_capture_start(ad)) {
+                       DEBUG_TRACE("capture failed");
+               }
+       }
+       DEBUG_TRACE("END");
+}
+
+#if 0 /*block it temporary*/
+static void __shotcus_edit_shotcuts_popup_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE();
+       __setting_edit_shortcut_popup_cb(data, obj, event_info);
+}
+#endif
+
+static void __shortcuts_setting_timer_popup_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE();
+       __setting_timer_popup_cb(data, obj, event_info);
+}
+
+static void __shortcuts_effects_popup_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE();
+       __setting_effects_popup_cb(data, obj, event_info);
+}
+
+static void __shortcuts_guideline_popup_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE();
+       __setting_guideline_popup_cb(data, obj, event_info);
+}
+
+static void __shortcuts_reset_popup_cb(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info)
+{
+       DEBUG_TRACE();
+       __setting_restore_defaults_popup_cb(data, obj, event_info);
+}
+
+static void __update_menu_bar_shortcuts_state_by_index(struct appdata *ad, int index, ToolbarItemState state)
+{
+       cam_ret_if(ad == NULL);
+       int menubar_no = __get_menubar_no_by_index(ad, index);
+       switch(menubar_no) {
+       case CAM_MENU_BAR_LEFT_0:
+               if (TOOLBAR_ITEM_STATE_NORMAL == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_0_icon,normal", "prog");
+               else if (TOOLBAR_ITEM_STATE_DIM == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_0_icon,dim", "prog");
+               else
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_0_icon,invisible", "prog");
+               break;
+       case CAM_MENU_BAR_LEFT_1:
+               if (TOOLBAR_ITEM_STATE_NORMAL == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,normal", "prog");
+               else if (TOOLBAR_ITEM_STATE_DIM == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,dim", "prog");
+               else
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,invisible", "prog");
+               break;
+       case CAM_MENU_BAR_LEFT_2:
+               if (TOOLBAR_ITEM_STATE_NORMAL == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,normal", "prog");
+               else if (TOOLBAR_ITEM_STATE_DIM == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,dim", "prog");
+               else
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,invisible", "prog");
+               break;
+       case CAM_MENU_BAR_LEFT_3:
+               if (TOOLBAR_ITEM_STATE_NORMAL == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,normal", "prog");
+               else if (TOOLBAR_ITEM_STATE_DIM == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,dim", "prog");
+               else
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,invisible", "prog");
+               break;
+       case CAM_MENU_BAR_LEFT_4:
+               if (TOOLBAR_ITEM_STATE_NORMAL == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,normal", "prog");
+               else if (TOOLBAR_ITEM_STATE_DIM == state)
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,dim", "prog");
+               else
+                       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,invisible", "prog");
+               break;
+       default:
+               DEBUG_TRACE("not in menubar");
+       }
+
+}
+
+static void __toolbar_menu_type_update(Evas_Object *toolbar_icon,
+                                               int type, void *data, ButtonState state, Evas_Object_Event_Cb *func)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       char *icon_name = NULL;
+       char *part_name_1 = NULL;
+       char *part_name_2 = NULL;
+
+       ButtonState button_state = state;
+       ToolbarItemState item_state = TOOLBAR_ITEM_STATE_NORMAL;
+
+       if (!cam_is_enabled_menu(ad, type)) {
+               button_state = BUTTON_STATE_DIM;
+               item_state = TOOLBAR_ITEM_STATE_DIM;
+       }
+
+       __get_toolbar_shortcuts_file_func(ad, type, button_state, &icon_name, &part_name_1, &part_name_2, func);
+       elm_icon_file_set(toolbar_icon, icon_name, NULL);
+       __update_menu_bar_shortcuts_state_by_index(ad, type, item_state);
+}
+
+static void __get_toolbar_shortcuts_file_func(void *data, int type, ButtonState state,
+                               char **file_path, char **name_line_1, char **name_line_2, Evas_Object_Event_Cb *func)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       *name_line_1 = NULL;
+       *name_line_2 = NULL;
+       *file_path = NULL;
+       *func = NULL;
+
+       int value_index = 0;
+       char icon_name[CAM_FILE_PATH_MAX] = { 0 };
+
+       switch(type) {
+       case CAM_MENU_EMPTY:
+       case CAM_MENU_SHORTCUTS:
+               break;
+       case CAM_MENU_TIMER: {
+                       value_index = ad->camapp_handle->timer;
+                       switch (value_index) {
+                       case CAM_SETTINGS_TIMER_OFF:
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(TIMER_OFF_RESS_ICON);
+                               else if (state == BUTTON_STATE_DIM)
+                                       *file_path = strdup(TIMER_OFF_DIM_ICON);
+                               else
+                                       *file_path = strdup(TIMER_OFF_NORMAL_ICON);
+                               break;
+                       case CAM_SETTINGS_TIMER_2SEC:
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(TIMER_2SEC_RESS_ICON);
+                               else
+                                       *file_path = strdup(TIMER_2SEC_NORMAL_ICON);
+                               break;
+                       case CAM_SETTINGS_TIMER_5SEC:
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(TIMER_5SEC_RESS_ICON);
+                               else
+                                       *file_path = strdup(TIMER_5SEC_NORMAL_ICON);
+                               break;
+                       case CAM_SETTINGS_TIMER_10SEC:
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(TIMER_10SEC_RESS_ICON);
+                               else
+                                       *file_path = strdup(TIMER_10SEC_NORMAL_ICON);
+                               break;
+                       default:
+                               DEBUG_TRACE("Invalid timer!");
+                               *file_path = strdup(TIMER_OFF_NORMAL_ICON);
+                               break;
+                       }
+
+                       *name_line_1 = strdup("Timer");
+
+                       if (state != BUTTON_STATE_DIM)
+                               *func = __shortcuts_setting_timer_popup_cb;
+
+               }
+               break;
+       case CAM_MENU_EFFECTS: {
+                       value_index = cam_convert_effect_to_menu_item(ad->camapp_handle->effect);
+
+                       if (state == BUTTON_STATE_PRESS)
+                               snprintf(icon_name, sizeof(icon_name), EFFECTS_ICON, __get_icon_image_name(value_index), "press");
+                       else if (state == BUTTON_STATE_DIM)
+                               snprintf(icon_name, sizeof(icon_name), EFFECTS_ICON, __get_icon_image_name(value_index), "dim");
+                       else
+                               snprintf(icon_name, sizeof(icon_name), EFFECTS_ICON, __get_icon_image_name(value_index), "nor");
+
+                       *file_path = strdup(icon_name);
+                       *name_line_1 = strdup("Effects");
+
+                       if (state != BUTTON_STATE_DIM)
+                               *func = __shortcuts_effects_popup_cb;
+               }
+               break;
+
+       case CAM_MENU_GUIDELINES: {
+                       if (ad->camapp_handle->guideline) {
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(GUIDELINE_ON_PRESS_ICON);
+                               else if (state == BUTTON_STATE_DIM)
+                                       *file_path = strdup(GUIDELINE_ON_DIM_ICON);
+                               else
+                                       *file_path = strdup(GUIDELINE_ON_NORMAL_ICON);
+                       }
+                       else {
+                               if (state == BUTTON_STATE_PRESS)
+                                       *file_path = strdup(GUIDELINE_OFF_PRESS_ICON);
+                               else if (state == BUTTON_STATE_DIM)
+                                       *file_path = strdup(GUIDELINE_OFF_DIM_ICON);
+                               else
+                                       *file_path = strdup(GUIDELINE_OFF_NORMAL_ICON);
+                       }
+
+                       *name_line_1 = strdup("Guidelines");
+
+                       if (state != BUTTON_STATE_DIM)
+                               *func = __shortcuts_guideline_popup_cb;
+               }
+               break;
+       case CAM_MENU_RESET: {
+                       if (state == BUTTON_STATE_PRESS)
+                               *file_path = strdup(RESET_SETTING_PRESS_ICON);
+                       else
+                               *file_path = strdup(RESET_SETTING_NORMAL_ICON);
+
+                       *name_line_1 = strdup("Reset");
+
+                       if (state != BUTTON_STATE_DIM)
+                               *func = __shortcuts_reset_popup_cb;
+               }
+               break;
+       default:
+               break;
+       }
+}
+
+static void __toolbar_menu_icon_update(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+
+       __update_menubar_icon_by_index(ad, ad->toolbar_0_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_1_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_2_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_3_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_4_type);
+}
+
+static int __toolbar_menu_item_create(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, -1);
+
+/* setting icon */
+       if (ad->toolbar_0_icon)
+               evas_object_del(ad->toolbar_0_icon);
+       ad->toolbar_0_icon = elm_icon_add(ad->toolbar_edje);
+       elm_icon_file_set(ad->toolbar_0_icon, SETTING_NORMAL_ICON, NULL);
+       edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_0_icon", ad->toolbar_0_icon);
+
+/* shortcut icon */
+       if (ad->toolbar_1_icon)
+               evas_object_del(ad->toolbar_1_icon);
+       ad->toolbar_1_icon = elm_icon_add(ad->toolbar_edje);
+       edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_1_icon", ad->toolbar_1_icon);
+
+       if (ad->toolbar_2_icon)
+               evas_object_del(ad->toolbar_2_icon);
+       ad->toolbar_2_icon = elm_icon_add(ad->toolbar_edje);
+       edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_2_icon", ad->toolbar_2_icon);
+
+       if (ad->toolbar_3_icon)
+               evas_object_del(ad->toolbar_3_icon);
+       ad->toolbar_3_icon = elm_icon_add(ad->toolbar_edje);
+       edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_3_icon", ad->toolbar_3_icon);
+
+       if (ad->toolbar_4_icon)
+               evas_object_del(ad->toolbar_4_icon);
+       ad->toolbar_4_icon = elm_icon_add(ad->toolbar_edje);
+       edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_4_icon", ad->toolbar_4_icon);
+
+       return 0;
+}
+
+static void __toolbar_menu_item_update(struct appdata *ad, ToolbarItemState state)
+{
+       cam_retm_if(ad == NULL, "appdata is null");
+
+       __update_menu_bar_shortcuts_state_by_index(ad, ad->toolbar_0_type, state);
+       __update_menu_bar_shortcuts_state_by_index(ad, ad->toolbar_1_type, state);
+       __update_menu_bar_shortcuts_state_by_index(ad, ad->toolbar_2_type, state);
+       __update_menu_bar_shortcuts_state_by_index(ad, ad->toolbar_3_type, state);
+       __update_menu_bar_shortcuts_state_by_index(ad, ad->toolbar_4_type, state);
+}
+
+static int __toolbar_mode_item_create(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, -1);
+       Evas_Object *edje = NULL;
+
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               if (ad->toolbar.mode_item.edje_landscape == NULL) {
+                       ad->toolbar.mode_item.edje_landscape = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar_mode_item");
+                       cam_retv_if(ad->toolbar.mode_item.edje_landscape == NULL, -1);
+               }
+               edje = ad->toolbar.mode_item.edje_landscape;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               if (ad->toolbar.mode_item.edje_landscape_inverse == NULL) {
+                       ad->toolbar.mode_item.edje_landscape_inverse = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar_mode_item");
+                       cam_retv_if(ad->toolbar.mode_item.edje_landscape_inverse == NULL, -1);
+               }
+               edje = ad->toolbar.mode_item.edje_landscape_inverse;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               if (ad->toolbar.mode_item.edje_portrait == NULL) {
+                       ad->toolbar.mode_item.edje_portrait = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar_mode_item");
+                       cam_retv_if(ad->toolbar.mode_item.edje_portrait == NULL, -1);
+               }
+               edje = ad->toolbar.mode_item.edje_portrait;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               if (ad->toolbar.mode_item.edje_portrait_inverse == NULL) {
+                       ad->toolbar.mode_item.edje_portrait_inverse = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar_mode_item");
+                       cam_retv_if(ad->toolbar.mode_item.edje_portrait_inverse == NULL, -1);
+               }
+               edje = ad->toolbar.mode_item.edje_portrait_inverse;
+               break;
+       default:
+               DEBUG_TRACE("note: run into un-reached codes");
+       }
+       cam_retv_if(edje == NULL, -1);
+       ad->toolbar.mode_item.edje = edje;
+       ad->toolbar.mode_item.camera_icon = elm_icon_add(edje);
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               elm_icon_file_set(ad->toolbar.mode_item.camera_icon, MODE_CAMERA_ON_ICON, NULL);
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               elm_icon_file_set(ad->toolbar.mode_item.camera_icon, MODE_CAMERA_OFF_ICON, NULL);
+       }
+
+
+       elm_object_part_content_set(edje, "camera_icon", ad->toolbar.mode_item.camera_icon);
+
+
+
+       ad->toolbar.mode_item.camcorder_icon = elm_icon_add(edje);
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               elm_icon_file_set(ad->toolbar.mode_item.camcorder_icon, MODE_CAMCORDER_ON_ICON, NULL);
+       } else if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               elm_icon_file_set(ad->toolbar.mode_item.camcorder_icon, MODE_CAMCORDER_OFF_ICON, NULL);
+       }
+
+
+       elm_object_part_content_set(edje, "camcorder_icon", ad->toolbar.mode_item.camcorder_icon);
+
+       evas_object_smart_callback_del(edje, "mouse.flick.up", __toolbar_mode_item_cb);
+       evas_object_smart_callback_del(edje, "mouse.flick.down", __toolbar_mode_item_cb);
+       evas_object_smart_callback_del(edje, "mouse.click", __toolbar_mode_item_cb);
+       evas_object_smart_callback_add(edje, "mouse.flick.up", __toolbar_mode_item_cb, (void *)CAM_CAMERA_MODE);
+       evas_object_smart_callback_add(edje, "mouse.flick.down", __toolbar_mode_item_cb, (void *)CAM_CAMCORDER_MODE);
+       evas_object_smart_callback_add(edje, "mouse.click", __toolbar_mode_item_cb, NULL);
+
+       elm_object_part_content_set(ad->toolbar_edje, "mode_item", edje);
+       define_mouse_callback(edje, edje);
+       evas_object_show(edje);
+       return EXIT_SUCCESS;
+
+}
+
+static void __toolbar_mode_item_destroy(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       DEL_EVAS_OBJECT(ad->toolbar.mode_item.edje_landscape);
+       DEL_EVAS_OBJECT(ad->toolbar.mode_item.edje_portrait);
+       DEL_EVAS_OBJECT(ad->toolbar.mode_item.edje_landscape_inverse);
+       DEL_EVAS_OBJECT(ad->toolbar.mode_item.edje_portrait_inverse);
+       ad->toolbar.mode_item.edje = NULL;
+
+}
+
+static void __toolbar_mode_item_update(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       ad->toolbar.mode_item.is_dimmed = FALSE;
+       cam_ret_if(ad->camapp_handle == NULL);
+       cam_ret_if(ad->toolbar.mode_item.camera_icon == NULL);
+       cam_ret_if(ad->toolbar.mode_item.camcorder_icon == NULL);
+       Evas_Object *edje = NULL;
+       edje = ad->toolbar.mode_item.edje;
+
+       cam_ret_if(edje == NULL);
+       edje_object_signal_emit(_EDJ(edje), "SET_DEFAULT", "prog");
+       if (ad->camapp_handle->camera_mode == CAM_CAMERA_MODE) {
+               edje_object_signal_emit(_EDJ(edje), "SET_MODE_CAMERA", "prog");
+               elm_icon_file_set(ad->toolbar.mode_item.camera_icon, MODE_CAMERA_ON_ICON, NULL);
+               elm_icon_file_set(ad->toolbar.mode_item.camcorder_icon, MODE_CAMCORDER_OFF_ICON, NULL);
+       } else {
+               edje_object_signal_emit(_EDJ(edje), "SET_MODE_CAMCORDER", "prog");
+               elm_icon_file_set(ad->toolbar.mode_item.camera_icon, MODE_CAMERA_OFF_ICON, NULL);
+               elm_icon_file_set(ad->toolbar.mode_item.camcorder_icon, MODE_CAMCORDER_ON_ICON, NULL);
+       }
+
+}
+
+
+static void __toolbar_mode_item_hide(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       ad->toolbar.mode_item.is_dimmed = TRUE;
+       Evas_Object *edje = NULL;
+       edje = ad->toolbar.mode_item.edje;
+
+       cam_ret_if(edje == NULL);
+       edje_object_signal_emit(_EDJ(edje), "SET_INVISIBLE", "prog");
+}
+
+static int __toolbar_shutter_button_create(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retv_if(ad == NULL, -1);
+       Evas_Object *edje = NULL;
+
+       ad->shutterbtn = cam_app_load_edj(ad->toolbar_edje, ad->toolbar_edj_file, "shutter_button");
+       edje = ad->shutterbtn;
+       cam_retv_if(edje == NULL, -1);
+
+       ad->shutterbtn_camera_icon = elm_icon_add(edje);
+       elm_icon_file_set(ad->shutterbtn_camera_icon, CAMERA_SHUTTER_ICON, NULL);
+       elm_object_part_content_set(edje, "camera_icon", ad->shutterbtn_camera_icon);
+
+       ad->shutterbtn_camcorder_icon = elm_icon_add(edje);
+       elm_icon_file_set(ad->shutterbtn_camcorder_icon, CAMCORDER_SHUTTER_ICON, NULL);
+       elm_object_part_content_set(edje, "camcorder_icon", ad->shutterbtn_camcorder_icon);
+
+       edje_object_signal_callback_del(_EDJ(ad->shutterbtn), "*", "toolbar_signal", __toolbar_shutter_button_cb);
+       edje_object_signal_callback_add(_EDJ(ad->shutterbtn), "*", "toolbar_signal", __toolbar_shutter_button_cb, ad);
+
+       elm_object_part_content_set(ad->toolbar_edje, "shutter_button", edje);
+       evas_object_show(edje);
+       DEBUG_TRACE("END");
+
+       return EXIT_SUCCESS;
+}
+
+static void __toolbar_shutter_button_destroy(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       DEL_EVAS_OBJECT(ad->shutterbtn);
+       DEL_EVAS_OBJECT(ad->shutterbtn_camera_icon);
+       DEL_EVAS_OBJECT(ad->shutterbtn_camcorder_icon);
+}
+
+static void __toolbar_shutter_button_update(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "capture_button,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "camera_icon,invisible", "prog");
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "camcorder_icon,invisible", "prog");
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               edje_object_signal_emit(_EDJ(ad->shutterbtn), "camera_icon,normal", "prog");
+       } else {
+               edje_object_signal_emit(_EDJ(ad->shutterbtn), "camcorder_icon,normal", "prog");
+       }
+}
+
+static void __toolbar_shutter_button_hide(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       cam_ret_if(ad->shutterbtn == NULL);
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "capture_button,invisible", "prog");
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "camera_icon,invisible", "prog");
+       edje_object_signal_emit(_EDJ(ad->shutterbtn), "camcorder_icon,invisible", "prog");
+}
+
+static int __toolbar_quickview_item_create(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retv_if(ad == NULL, -1);
+       Evas_Object *edje = NULL;
+
+       if (ad->toolbar.quickview_item.edje == NULL) {
+               ad->toolbar.quickview_item.edje =
+                   cam_app_load_edj(ad->toolbar_edje, ad->toolbar_edj_file, "toolbar_quickview_item");
+               edje_object_signal_callback_del(_EDJ(ad->toolbar.quickview_item.edje),
+                                               "*", "toolbar_signal", __toolbar_quickview_cb);
+               edje_object_signal_callback_add(_EDJ(ad->toolbar.quickview_item.edje),
+                                               "*", "toolbar_signal", __toolbar_quickview_cb, ad);
+       }
+       edje = ad->toolbar.quickview_item.edje;
+
+       cam_retv_if(edje == NULL, -1);
+       elm_object_part_content_set(ad->toolbar_edje, "quickview_item", edje);
+       evas_object_show(edje);
+
+       return EXIT_SUCCESS;
+}
+
+static void __toolbar_quickview_item_destroy(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);
+       DEL_EVAS_OBJECT(ad->toolbar.quickview_item.edje);
+}
+
+static void __toolbar_quickview_item_update(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+
+       Evas_Object *edje = NULL;
+       edje = ad->toolbar.quickview_item.edje;
+
+       cam_ret_if(edje == NULL);
+       edje_object_signal_emit(_EDJ(edje), "SET_DEFAULT", "prog");
+}
+
+static void __toolbar_quickview_item_hide(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+
+       Evas_Object *edje = NULL;
+       edje = ad->toolbar.quickview_item.edje;
+
+       cam_ret_if(edje == NULL);
+       edje_object_signal_emit(_EDJ(edje), "SET_INVISIBLE", "prog");
+}
+
+static int __toolbar_backbutton_create(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+       cam_retv_if(ad == NULL, -1);
+       Evas_Object *edje = NULL;
+
+       ad->backbtn = cam_app_load_edj(ad->toolbar_edje, ad->toolbar_edj_file, "toolbar_backbutton_item");
+       edje_object_signal_callback_del(_EDJ(ad->backbtn), "*", "toolbar_signal", __toolbar_backbutton_cb);
+       edje_object_signal_callback_add(_EDJ(ad->backbtn), "*", "toolbar_signal", __toolbar_backbutton_cb, ad);
+       edje = ad->backbtn;
+
+       cam_retv_if(edje == NULL, -1);
+       elm_object_part_content_set(ad->toolbar_edje, "backbutton_item", edje);
+       evas_object_show(edje);
+
+       return EXIT_SUCCESS;
+}
+
+static void __toolbar_backbutton_destroy(struct appdata *ad)
+{
+       cam_ret_if(ad == NULL);
+       DEL_EVAS_OBJECT(ad->backbtn);
+}
+
+static int __toolbar_recording_capture_button_create(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, -1);
+       Evas_Object *edje = NULL;
+
+       if (ad->capturebtn_edje) {
+               evas_object_del(ad->capturebtn_edje);
+               ad->capturebtn_edje = NULL;
+       }
+       if (ad->capturebtn_edje == NULL) {
+               ad->capturebtn_edje =
+                       cam_app_load_edj(ad->toolbar_edje, ad->toolbar_edj_file, "toolbar_capture_button_item");
+               edje_object_signal_callback_del(_EDJ(ad->capturebtn_edje),
+                                                       "capture_button_click", "capture_button_click", __toolbar_capture_button_cb);
+               edje_object_signal_callback_add(_EDJ(ad->capturebtn_edje),
+                                                       "capture_button_click", "capture_button_click", __toolbar_capture_button_cb, ad);
+       }
+       edje = ad->capturebtn_edje;
+
+       cam_retv_if(edje == NULL, -1);
+       elm_object_part_content_set(ad->toolbar_edje, "capture_button_item", edje);
+       evas_object_show(edje);
+
+       return EXIT_SUCCESS;
+}
+
+static void __toolbar_recording_capture_button_destroy(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       DEL_EVAS_OBJECT(ad->capturebtn_edje);
+}
+
+static void __toolbar_edje_signal_cb(void *data, Evas_Object *o,
+                                    const char *emission, const char *source)
+{
+       DEBUG_TRACE("_________________################____________________\n");
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       DEBUG_TRACE("ad->is_rotating = %d", ad->is_rotating);
+       if (ad->is_rotating == TRUE) {
+               DEBUG_TRACE("now in rotating target, do not accept signal");
+               return;
+       }
+       CamAppData *camapp = ad->camapp_handle;
+       cam_ret_if(camapp == NULL);
+       cam_ret_if(emission == NULL);
+       cam_ret_if(source == NULL);
+
+       unload_zoom_edje(ad);
+
+       REMOVE_TIMER(ad->toolbar_toggle_timer);
+       ad->show_menu = FALSE;
+       /*ad->toolbar_show_edit_shortcuts_popup = FALSE;*/
+       ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+       ad->toolbar_show_setting_popup = FALSE;
+
+       /**
+       if (ad->toolbar_show_edit_shortcuts_popup == TRUE) {
+               toolbar_destroy_shortcuts_popup(ad);
+       }
+       */ /*block it: this is another logic for shotcust edit*/
+
+       if(ad->battery_status == LOW_BATTERY_CRITICAL_STATUS)
+               return;
+
+       cam_toolbar_and_setting_popup_del(ad);
+
+       if (emission && source)
+               cam_debug(LOG_UI, "signal: %s, comes from:%s", emission, source);
+
+       Evas_Object_Event_Cb func = NULL;
+
+       if (strcmp(emission, "toolbar_0_press_sig") == 0) {
+               elm_icon_file_set(ad->toolbar_0_icon, SETTING_PRESS_ICON, NULL);
+       } else if (strcmp(emission, "toolbar_0_release_sig") == 0) {
+               elm_icon_file_set(ad->toolbar_0_icon, SETTING_NORMAL_ICON, NULL);
+       } else if (strcmp(emission, "toolbar_0_click_sig") == 0) {
+               ad->show_menu = TRUE;
+               toolbar_show_setting_popup(ad);
+               toolbar_shot_guide_popup_destory(ad);
+               elm_icon_file_set(ad->toolbar_0_icon, SETTING_NORMAL_ICON, NULL);
+       } else if (strcmp(emission, "toolbar_1_press_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_1_icon, ad->toolbar_1_type, ad, BUTTON_STATE_PRESS, &func);
+       } else if (strcmp(emission, "toolbar_1_release_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_1_icon, ad->toolbar_1_type, ad, BUTTON_STATE_NORMAL, &func);
+       } else if (strcmp(emission, "toolbar_1_click_sig") == 0) {
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) /*when edit mode, could not using shortcuts*/
+                       return;
+               DEBUG_TRACE("ad->toolbar_1_type = %d", ad->toolbar_1_type);
+               __toolbar_menu_type_update(ad->toolbar_1_icon, ad->toolbar_1_type, ad, BUTTON_STATE_NORMAL, &func);
+               if (func) {
+                       (*func)((void *)ad, NULL, o, NULL);
+               }
+       } else if (strcmp(emission, "toolbar_2_press_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_2_icon, ad->toolbar_2_type, ad, BUTTON_STATE_PRESS, &func);
+       } else if (strcmp(emission, "toolbar_2_release_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_2_icon, ad->toolbar_2_type, ad, BUTTON_STATE_NORMAL, &func);
+       } else if (strcmp(emission, "toolbar_2_click_sig") == 0) {
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) /*when edit mode, could not using shortcuts*/
+                       return;
+               __toolbar_menu_type_update(ad->toolbar_2_icon, ad->toolbar_2_type, ad, BUTTON_STATE_NORMAL, &func);
+               DEBUG_TRACE("ad->toolbar_2_type = %d", ad->toolbar_2_type);
+               if (func) {
+                       (*func)((void *)ad, NULL, o, NULL);
+               }
+       } else if (strcmp(emission, "toolbar_3_press_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_3_icon, ad->toolbar_3_type, ad, BUTTON_STATE_PRESS, &func);
+       } else if (strcmp(emission, "toolbar_3_release_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_3_icon, ad->toolbar_3_type, ad, BUTTON_STATE_NORMAL, &func);
+       } else if (strcmp(emission, "toolbar_3_click_sig") == 0) {
+               DEBUG_TRACE("ad->toolbar_3_type = %d", ad->toolbar_3_type);
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) /*when edit mode, could not using shortcuts*/
+                       return;
+               __toolbar_menu_type_update(ad->toolbar_3_icon, ad->toolbar_3_type, ad, BUTTON_STATE_NORMAL, &func);
+               if (func) {
+                       (*func)((void *)ad, NULL, o, NULL);
+               }
+       } else if (strcmp(emission, "toolbar_4_press_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_4_icon, ad->toolbar_4_type, ad, BUTTON_STATE_PRESS, &func);
+       } else if (strcmp(emission, "toolbar_4_release_sig") == 0) {
+               __toolbar_menu_type_update(ad->toolbar_4_icon, ad->toolbar_4_type, ad, BUTTON_STATE_NORMAL, &func);
+       } else if (strcmp(emission, "toolbar_4_click_sig") == 0) {
+               DEBUG_TRACE("ad->toolbar_4_type = %d", ad->toolbar_4_type);
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) /*when edit mode, could not using shortcuts*/
+                       return;
+               __toolbar_menu_type_update(ad->toolbar_4_icon, ad->toolbar_4_type, ad, BUTTON_STATE_NORMAL, &func);
+               if (func) {
+                       (*func)((void *)ad, NULL, o, NULL);
+               }
+       } else {
+               if (ad->toolbar_show_edit_shortcuts_popup == TRUE) {
+                       toolbar_destroy_shortcuts_popup(ad);
+               }
+       }
+}
+
+static void __cam_toolbar_edje_del_cb(void *data, Evas * evas, Evas_Object *obj, void *event_info)
+{
+       DEBUG_TRACE();
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+       DEBUG_TRACE();
+       /*NOTE:shortcuts sub-obj*/
+       ad->toolbar_0_icon = NULL;
+       ad->toolbar_1_icon = NULL;
+       ad->toolbar_2_icon = NULL;
+       ad->toolbar_3_icon = NULL;
+       ad->toolbar_4_icon = NULL;
+       /*NOTE:action sub-obj: mode item*/
+       ad->toolbar.mode_item.edje_landscape = NULL;
+       ad->toolbar.mode_item.edje_portrait = NULL;
+       ad->toolbar.mode_item.edje_landscape_inverse = NULL;
+       ad->toolbar.mode_item.edje_portrait_inverse = NULL;
+       ad->toolbar.mode_item.camera_icon = NULL;
+       ad->toolbar.mode_item.camcorder_icon = NULL;
+       /*NOTE: sub-obj:quickview item*/
+       ad->toolbar.quickview_item.thumbnail_image = NULL;
+       ad->toolbar.quickview_item.edje = NULL;
+       ad->toolbar.quickview_item.edje_landscape = NULL;
+       ad->toolbar.quickview_item.edje_portrait = NULL;
+       ad->toolbar.quickview_item.edje_landscape_inverse = NULL;
+       ad->toolbar.quickview_item.edje_portrait_inverse = NULL;
+       /*NOTE:sub-obj: shutter button*/
+       ad->shutterbtn = NULL;
+       ad->shutterbtn_camera_icon = NULL;
+       ad->shutterbtn_camcorder_icon = NULL;
+       /*NOTE:sub-obj: popup*/
+       ad->toolbar_setting_ctxpopup = NULL;
+       ad->toolbar_setting_popup = NULL;
+       ad->setting_ctxpopup = NULL;
+       ad->setting_ctxpopup_area = NULL;
+       /*NOTE:popu timer*/
+       REMOVE_TIMER(ad->setting_toolbar_hide_timer);
+       REMOVE_TIMER(ad->toolbar.conti_shot_timer);
+
+}
+
+int cam_toolbar_create(struct appdata *ad)
+{
+
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_retv_if(cam_handle == NULL, -1);
+
+/*note: create layout*/
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               if (ad->toolbar_edje_landscape == NULL) {
+                       ad->toolbar_edje_landscape = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar");
+                       cam_retv_if(ad->toolbar_edje_landscape == NULL, -1);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_landscape;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               if (ad->toolbar_edje_landscape_inverse == NULL) {
+                       ad->toolbar_edje_landscape_inverse = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar");
+                       cam_retv_if(ad->toolbar_edje_landscape_inverse == NULL, -1);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_landscape_inverse;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               if (ad->toolbar_edje_portrait == NULL) {
+                       ad->toolbar_edje_portrait = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar");
+                       cam_retv_if(ad->toolbar_edje_portrait == NULL, -1);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_portrait;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               if (ad->toolbar_edje_portrait_inverse == NULL) {
+                       ad->toolbar_edje_portrait_inverse = cam_app_load_edj(ad->win_main, ad->toolbar_edj_file, "toolbar");
+                       cam_retv_if(ad->toolbar_edje_portrait_inverse == NULL, -1);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_portrait_inverse;
+               break;
+       default:
+               DEBUG_TRACE("note: run into un-reached codes");
+       }
+       cam_retv_if(ad->toolbar_edje == NULL, -1);
+
+       /*note: before toolbar_edje deleted, the sub-obj of toolbar, will set to null*/
+       evas_object_event_callback_del(ad->toolbar_edje, EVAS_CALLBACK_DEL, __cam_toolbar_edje_del_cb);
+       evas_object_event_callback_add(ad->toolbar_edje, EVAS_CALLBACK_DEL, __cam_toolbar_edje_del_cb, ad);
+
+       __toolbar_menu_item_create(ad);
+
+       edje_object_signal_callback_del(_EDJ(ad->toolbar_edje), "*", "toolbar_signal", __toolbar_edje_signal_cb);
+       edje_object_signal_callback_add(_EDJ(ad->toolbar_edje), "*", "toolbar_signal", __toolbar_edje_signal_cb, ad);
+
+       __toolbar_mode_item_create(ad);
+       __toolbar_shutter_button_create(ad);
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+               __toolbar_quickview_item_create(ad);
+       } else if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               __toolbar_backbutton_create(ad);
+       }
+
+       cam_toolbar_update(ad);
+
+       return EXIT_SUCCESS;
+}
+
+void cam_toolbar_destroy(struct appdata *ad)
+{
+
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       /*NOTE: all sub obj of toolbar will be deleted auto whild toolar is deleted*/
+       edje_object_signal_callback_del(_EDJ(ad->toolbar_edje), "*", "toolbar_signal", __toolbar_edje_signal_cb);
+       DEL_EVAS_OBJECT(ad->toolbar_edje);
+
+       ad->toolbar_edje = NULL;
+       ad->toolbar_edje_landscape = ad->toolbar_edje_landscape_inverse = NULL;
+       ad->toolbar_edje_portrait = ad->toolbar_edje_portrait_inverse = NULL;
+       REMOVE_TIMER(ad->toolbar.conti_shot_timer);
+       /*elm_all_flush();*/
+       cam_elm_cache_flush();
+
+}
+
+void cam_toolbar_update(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp is NULL");
+
+       __toolbar_menu_icon_update(ad);
+
+       if (ad->timer_activated) {
+               __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_INVISIBLE);
+               __toolbar_mode_item_hide(ad);
+               __toolbar_shutter_button_hide(ad);
+
+               if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+                       __toolbar_quickview_item_hide(ad);
+                       __toolbar_backbutton_create(ad);
+               }
+       } else {
+               if (camapp->camera_mode == CAM_CAMERA_MODE) {
+                       __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
+                       __toolbar_mode_item_update(ad);
+                       __toolbar_shutter_button_update(ad);
+
+                       if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+                               __toolbar_quickview_item_update(ad);
+                               __toolbar_backbutton_destroy(ad);
+                       }
+               } else {
+                       if (ad->is_recording) {
+                               edje_object_signal_emit(_EDJ(ad->toolbar_edje), "toolbar_bg,hide", "program");
+                               __toolbar_recording_capture_button_create(ad);
+                               __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_INVISIBLE);
+                               __toolbar_mode_item_hide(ad);
+                               __toolbar_shutter_button_hide(ad);
+
+                               if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+                                       __toolbar_quickview_item_hide(ad);
+                               } else {
+                                       __toolbar_backbutton_destroy(ad);
+                               }
+                       } else {
+                               edje_object_signal_emit(_EDJ(ad->toolbar_edje), "toolbar_bg,show", "program");
+                               __toolbar_recording_capture_button_destroy(ad);
+                               __toolbar_menu_item_update(ad, TOOLBAR_ITEM_STATE_NORMAL);
+                               __toolbar_mode_item_update(ad);
+                               __toolbar_shutter_button_update(ad);
+
+                               if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL) {
+                                       __toolbar_quickview_item_update(ad);
+                                       __toolbar_backbutton_destroy(ad);
+                               } else {
+                                       __toolbar_backbutton_create(ad);
+                               }
+                       }
+               }
+       }
+
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_EXTERNAL) {
+               if(ad->exe_args) {
+                       if(!((ad->exe_args->caller) && (strcmp(ad->exe_args->caller, "gallery") == 0))) {
+                               __toolbar_mode_item_hide(ad);
+                       }
+               }
+       }
+}
+
+int cam_toolbar_rotate(struct appdata *ad)
+{
+       DEBUG_TRACE("");
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_retv_if(cam_handle == NULL, -1);
+       cam_toolbar_and_setting_popup_del(ad);
+       cam_toolbar_destroy(ad);
+       elm_win_rotation_with_resize_set(ad->win_main, ad->angle);
+
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               if (ad->toolbar_edje_landscape == NULL) {
+                       cam_toolbar_create(ad);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_landscape;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               if (ad->toolbar_edje_landscape_inverse == NULL) {
+                       cam_toolbar_create(ad);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_landscape_inverse;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               if (ad->toolbar_edje_portrait == NULL) {
+                       cam_toolbar_create(ad);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_portrait;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               if (ad->toolbar_edje_portrait_inverse == NULL) {
+                       cam_toolbar_create(ad);
+               }
+               ad->toolbar_edje = ad->toolbar_edje_portrait_inverse;
+               break;
+       default:
+               DEBUG_TRACE("note: run into un-reached codes");
+       }
+/*
+       __toolbar_menu_item_update(ad);
+       __toolbar_mode_item_update(ad);
+       cam_toolbar_update(ad);*/
+
+       evas_object_show(ad->toolbar_edje);
+
+       return EXIT_SUCCESS;
+}
+
+int show_toolbar_edje(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       if (ad->toolbar_edje == NULL) {
+               return -1;
+       }
+       if (!ad->toolbar_hided) {
+               cam_toolbar_setting_popup_create(ad);
+               cam_toolbar_update(ad);
+               evas_object_show(ad->toolbar_edje);
+       } else {
+               hide_toolbar_edje(ad);
+       }
+
+       return EXIT_SUCCESS;
+}
+
+int hide_toolbar_edje(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       evas_object_hide(ad->toolbar_edje);
+       return EXIT_SUCCESS;
+}
+
+#ifdef ENABLE_CAPTURE_ANIMATION
+int toolbar_update_quickview_thumbnail_by_screennail(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);
+       if (ad->shutter_move_image) {
+               int img_width, img_height;
+               evas_object_image_size_get(ad->shutter_move_image,
+                                          &img_width, &img_height);
+               ad->toolbar.quickview_item.thumbnail_image =
+                   evas_object_image_add(ad->evas);
+               cam_retv_if(ad->toolbar.quickview_item.thumbnail_image == NULL,
+                           -1);
+               evas_object_image_smooth_scale_set(ad->toolbar.quickview_item.
+                                                  thumbnail_image, 1);
+               evas_object_image_filled_set(ad->toolbar.quickview_item.
+                                            thumbnail_image, 1);
+               evas_object_image_alpha_set(ad->toolbar.quickview_item.
+                                           thumbnail_image, 0);
+               evas_object_image_size_set(ad->toolbar.quickview_item.
+                                          thumbnail_image, img_width,
+                                          img_height);
+               evas_object_image_data_copy_set(ad->toolbar.quickview_item.
+                                               thumbnail_image,
+                                               evas_object_image_data_get
+                                               (ad->shutter_move_image, 0));
+               evas_object_image_data_update_add(ad->toolbar.quickview_item.
+                                                 thumbnail_image, 0, 0,
+                                                 img_width, img_height);
+
+               if (ad->toolbar.quickview_item.edje) {
+                       elm_object_part_content_set(ad->toolbar.quickview_item.edje_landscape,
+                                              "thumbnail", ad->toolbar.quickview_item.thumbnail_image);
+                       evas_object_show(ad->toolbar.quickview_item.edje);
+               }
+               return 0;
+       }
+
+       return -1;
+}
+
+#endif
+
+gboolean toolbar_update_quickview_thumbnail_no_animation(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, FALSE);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+       DEL_EVAS_OBJECT(ad->toolbar.quickview_item.thumbnail_image);
+       DEBUG_TRACE("camapp->thumbnail_name: [%s]", camapp->thumbnail_name);
+
+       if (camapp->thumbnail_name != NULL) {
+               ad->toolbar.quickview_item.thumbnail_image = elm_icon_add(ad->toolbar.quickview_item.edje);
+               cam_retv_if(ad->toolbar.quickview_item.thumbnail_image == NULL, FALSE);
+               elm_icon_file_set(ad->toolbar.quickview_item.thumbnail_image, camapp->thumbnail_name, NULL);
+               elm_icon_aspect_fixed_set(ad->toolbar.quickview_item.thumbnail_image, EINA_FALSE);
+               elm_icon_resizable_set(ad->toolbar.quickview_item.thumbnail_image, EINA_TRUE, EINA_TRUE);
+               Evas_Object *layout = elm_layout_edje_get(ad->toolbar.quickview_item.edje);
+               Evas_Object *thumbnail_area = (Evas_Object *) edje_object_part_object_get(layout,"thumbnail_area");
+               cam_retv_if(thumbnail_area == NULL, FALSE);
+               Evas_Coord x = 0, y = 0, w = 0, h = 0;
+               evas_object_geometry_get(thumbnail_area, &x, &y, &w, &h);
+               evas_object_resize(ad->toolbar.quickview_item.thumbnail_image, w, h);
+               DEBUG_TRACE("%d %d %d %d", x, y, w, h);
+
+               if (ad->toolbar.quickview_item.edje) {
+                       elm_object_part_content_set(ad->toolbar.quickview_item.edje,
+                                                       "thumbnail",
+                                                       ad->toolbar.quickview_item.thumbnail_image);
+                       evas_object_show(ad->toolbar.quickview_item.edje);
+               }
+
+               return TRUE;
+       }
+       return FALSE;
+}
+
+gboolean toolbar_update_quickview_thumbnail(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, FALSE);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, FALSE);
+       cam_retv_if(ad->evas == NULL, FALSE);
+
+       cam_retv_if(ad->toolbar.quickview_item.edje == NULL, FALSE);
+       DEBUG_TRACE("camapp->thumbnail_name: [%s]", camapp->thumbnail_name);
+
+       unsigned int *main_pipe_op_type = NULL;
+       main_pipe_op_type = (unsigned int *)calloc(1, sizeof(unsigned int));
+       if (main_pipe_op_type)
+               *main_pipe_op_type = CAM_MAIN_PIPE_OP_TYPE_UPDATE_THUMBNAIL;
+       return ecore_pipe_write(ad->main_pipe, (void *)main_pipe_op_type, sizeof(unsigned int));
+}
+
+void delete_ctxpopup_cb(struct appdata *ad)
+{
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       if (ad->setting_ctxpopup) {
+               evas_object_del(ad->setting_ctxpopup);
+       }
+       ad->setting_ctxpopup = NULL;
+       ad->radio = NULL;
+       ad->guideline_radio = NULL;
+       ad->timer_radio = NULL;
+       ad->ctxpopup_area = NULL;
+}
+
+static int setting_ctxpopup_create(struct appdata *ad, gboolean bNoArrow)
+{
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+       delete_ctxpopup_cb(ad);
+       toolbar_shot_guide_popup_destory(ad);
+       if (ad->toolbar_edje == NULL)
+               DEBUG_TRACE("error occur");
+
+       /*hide focus guide*/
+       edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+
+       ad->ctxpopup_area = (Evas_Object *)
+                   edje_object_part_object_get(elm_layout_edje_get
+                                               (ad->toolbar_edje), "popup_area");
+       ad->setting_ctxpopup = elm_ctxpopup_add(ad->ctxpopup_area);
+       elm_object_scroll_hold_push(ad->setting_ctxpopup);
+       if (!bNoArrow)
+               elm_object_style_set(ad->setting_ctxpopup, "beat_winset_test/camera");
+       else
+               elm_object_style_set(ad->setting_ctxpopup, "beat_winset_test/camera_no_arrow");
+       /*elm_ctxpopup_hover_parent_set(ad->setting_ctxpopup, ad->ctxpopup_area);*/
+       return EXIT_SUCCESS;
+}
+
+static int setting_toolbar_popup_create(struct appdata *ad)
+{
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+       delete_ctxpopup_cb(ad);
+       toolbar_shot_guide_popup_destory(ad);
+       if (ad->toolbar_edje == NULL)
+               DEBUG_TRACE("error occur");
+
+       ad->setting_ctxpopup_area = (Evas_Object *)
+                   edje_object_part_object_get(elm_layout_edje_get
+                                               (ad->toolbar_edje), "setting_popup");
+       ad->toolbar_setting_ctxpopup = elm_ctxpopup_add(ad->setting_ctxpopup_area);
+       elm_object_scroll_hold_push(ad->toolbar_setting_ctxpopup);
+       elm_object_style_set(ad->toolbar_setting_ctxpopup, "beat_winset_test/camera");
+       /*elm_ctxpopup_hover_parent_set(ad->setting_ctxpopup, ad->ctxpopup_area);*/
+       return EXIT_SUCCESS;
+}
+
+static int setting_shotcuts_popup_create(struct appdata *ad)
+{
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+       delete_ctxpopup_cb(ad);
+       toolbar_shot_guide_popup_destory(ad);
+       if (ad->toolbar_edje == NULL)
+               DEBUG_TRACE("error occur");
+
+       ad->edit_shortcuts_popup = (Evas_Object *)
+                   edje_object_part_object_get(elm_layout_edje_get
+                                               (ad->toolbar_edje), "shortcuts_popup");
+
+       DEL_EVAS_OBJECT(ad->edit_shortcuts_popup_description);
+       ad->edit_shortcuts_popup_description =
+               cam_app_load_edj(ad->toolbar_edje, CAM_SHOTCUTS_EDIT_CTXPOPUP_EDJ_NAME,
+                                    "camera/shortcuts/layout/description");
+       elm_object_scroll_hold_push(ad->edit_shortcuts_popup);
+       return EXIT_SUCCESS;
+}
+
+
+#ifdef GUIDE_LINE_ENALBE
+int cam_guideline_rotate(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       cam_retv_if(ad->camapp_handle == NULL, -1);
+
+       if (ad->guideline_edje == NULL) {
+               ad->guideline_edje =
+                   cam_app_load_edj(ad->win_main, CAM_MAIN_LAYOUT_EDJ_NAME,
+                               "guideline");
+       }
+       cam_retv_if(ad->guideline_edje == NULL, -1);
+       gboolean wide_mode = FALSE;
+       gint ret = 0;
+
+       gint p_width = 0;
+       gint p_height =0;
+       ret = cam_mm_get_video_size(&p_width, &p_height);
+       DEBUG_TRACE("p_width == %d" ,p_width,p_height);
+       if (!ret) {
+               DEBUG_TRACE("Middle Ware error occur!");
+               return -1;
+       }
+       DEBUG_TRACE("p_width == %d ,p_height = %d" ,p_width , p_height);
+       if (ad->camapp_handle->camera_mode == CAM_CAMERA_MODE) {
+               wide_mode = cam_utils_check_wide_resolution(p_width, p_height);
+       } else if (ad->camapp_handle->camera_mode == CAM_CAMCORDER_MODE) {
+               if ( p_width > PREVIEW_W ) {
+                       wide_mode = TRUE;
+               } else {
+                       wide_mode = FALSE;
+               }
+       }
+
+       if (wide_mode) {
+               DEBUG_TRACE("hor,wide_mode");
+               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                               "guide_line,1,2,normal", "prog_guideline");
+               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                                       "guide_line,3,4,wide", "prog_guideline");
+
+       } else {
+               DEBUG_TRACE("hor,normal mode");
+               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                               "guide_line,1,2,normal", "prog_guideline");
+               edje_object_signal_emit(_EDJ(ad->guideline_edje),
+                                                       "guide_line,3,4,normal", "prog_guideline");
+       }
+
+       /*evas_object_lower(ad->guideline_edje);*/
+       evas_object_show(ad->guideline_edje);
+
+       DEBUG_TRACE("over");
+       return 0;
+}
+
+#endif
+
+static void _timer_popup_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       cam_ret_if(obj == NULL);
+       int index = (int)data;
+       UI_TEST_LOG("index : [%d]", index);
+       cam_ret_if(index < 0 || index >= CAM_SETTINGS_TIMER_NUMS);
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       ad->timer_radio_index = index;
+       elm_radio_value_set(ad->timer_radio, index);
+
+       /* set timer value */
+       if (ad->camapp_handle->timer != index) {
+               GValue value = {
+                       0
+               };
+               CAM_GVALUE_SET_INT(value, index);
+               cam_handle_value_set(ad, PROP_TIMER, &value);/*set ad->camapp_handle->timer*/
+               evas_object_show(ad->toolbar_setting_popup);
+               if (ad->setting_select_item)
+                       elm_genlist_item_update(ad->setting_select_item);
+               __update_menubar_icon_by_index(ad, CAM_MENU_TIMER);
+       }
+       DEL_EVAS_OBJECT(ad->setting_ctxpopup);
+       ad->ctxpopup_area = NULL;
+}
+
+static void __reset_settings_launch(void)
+{
+       /*Evas_Object *notify = data;*/
+       GValue i_value = { 0, };
+       GValue b_value = { 0, };
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       CamAppData *camapp = NULL;
+
+       cam_debug(LOG_CAM, "!!!!!!!!!cam_app_reset_settings_launch_cb");
+
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, " cam_handle is NULL");
+
+       g_value_init(&i_value, G_TYPE_INT);
+       g_value_init(&b_value, G_TYPE_BOOLEAN);
+
+       /* auto focus */
+       g_value_set_int(&i_value, AF_DEFAULT);
+       cam_handle_value_set(ad, PROP_AF_MODE, &i_value);
+
+       /* Timer */
+       g_value_set_int(&i_value, TIMER_DEFAULT);
+       cam_handle_value_set(ad, PROP_TIMER, &i_value);
+
+       /* Effect */
+       g_value_set_int(&i_value, EFFECT_DEFAULT);
+       cam_handle_value_set(ad, PROP_EFFECT, &i_value);
+
+       /* Image quality */
+       g_value_set_int(&i_value, QUALITY_DEFAULT);
+       cam_handle_value_set(ad, PROP_IMAGE_QUALITY, &i_value);
+
+       /* Video quality */
+       g_value_set_int(&i_value, QUALITY_DEFAULT);
+       cam_handle_value_set(ad, PROP_VIDEO_QUALITY, &i_value);
+
+       /* Guide Line */
+       g_value_set_boolean(&b_value, FALSE);
+       cam_handle_value_set(ad, PROP_GUIDELINE, &b_value);
+#ifdef GUIDE_LINE_ENALBE
+       settings_guideline_refresh(ad);
+#endif
+
+       /* shutter sound */
+       g_value_set_int(&i_value, SHUTTER_SOUND_DEFAULT);
+       cam_handle_value_set(ad, PROP_SHUTTER_SOUND, &i_value);
+
+       /* audio recording */
+       g_value_set_boolean(&b_value, TRUE);
+       cam_handle_value_set(ad, PROP_AUDIO_REC, &b_value);
+
+       /* storage */
+       g_value_set_int(&i_value, STORAGE_DEFAULT);
+       cam_handle_value_set(ad, PROP_STORAGE, &i_value);
+
+       /* Resolution */
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               g_value_set_int(&i_value, IMAGE_RESOLUTION_DEFAULT);
+       } else {
+               g_value_set_int(&i_value, REC_RESOLUTION_DEFAULT);
+       }
+
+       cam_handle_value_set(ad, PROP_RESOLUTION, &i_value);
+#ifndef DISABLE_INDICATOR
+       if (ad->indicator_edje) {
+               /* delete indicator */
+               evas_object_hide(ad->indicator_edje);
+               cam_indicator_destory(ad);
+       }
+       cam_indicator_create(ad);
+#endif
+
+       /* FLASH */
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               g_value_set_int(&i_value, FLASH_DEFAULT);
+       } else {
+               g_value_set_int(&i_value, REC_FLASH_DEFAULT);
+       }
+       cam_handle_value_set(ad, PROP_FLASH, &i_value);
+
+#if 0
+       /*shot mode*/
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               g_value_set_int(&i_value, SHOTMODE_DEFAULT);
+               cam_handle_value_set(ad, PROP_SHOT_MODE, &i_value);
+       } else {
+               g_value_set_int(&i_value, RECMODE_DEFAULT);
+               cam_handle_value_set(ad, PROP_REC_MODE, &i_value);
+       }
+#endif
+
+}
+
+static gboolean __do_start_restore_items(void *data, int mode)
+{
+       struct appdata *ad = data;
+       CamAppData *camapp = NULL;
+       int charging = 0;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_info(LOG_UI, "mode : %d ", mode);
+       camapp->camera_mode = mode;
+
+       cam_info(LOG_UI, "camera_mode = %d ", camapp->camera_mode);
+
+       cam_config_set_int_by_type(CAM_CONFIG_TYPE_COMMON, PROP_MODE_NAME,
+                                  mode);
+
+       cam_app_set_config_group(camapp->camera_mode);
+       /* load init value from ini file */
+       /* camapp->camera_mode = cam_config_get_int(PROP_MODE_NAME, MODE_DEFAULT); */
+#ifdef USE_CAM_STORAGE_SETTING
+       camapp->storage = cam_config_get_int( PROP_STORAGE_NAME, CAM_STORAGE_INTERNAL);
+#else
+       vconf_get_int(VCONFKEY_SETAPPL_DEFAULT_MEM_CAMERA_INT, &(camapp->storage));
+#endif
+
+       camapp->af_mode = AF_DEFAULT;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               if (camapp->shooting_mode == CAM_SINGLE_MODE) {
+                       camapp->flash = cam_config_get_int(PROP_FLASH_NAME, FLASH_DEFAULT);
+               }
+       } else {
+               camapp->flash = cam_config_get_int(PROP_FLASH_NAME, REC_FLASH_DEFAULT);
+       }
+#ifdef GUIDE_LINE_ENALBE
+       camapp->guideline = cam_config_get_boolean(PROP_GUIDELINE_NAME, GUIDE_LINE_DEFAULT);
+       DEBUG_TRACE("camapp->guideline = %d" ,camapp->guideline);
+#endif
+       /* camapp->effect =cam_config_get_int(PROP_EFFECT_NAME, EFFECT_DEFAULT); */
+       camapp->effect = EFFECT_DEFAULT;
+
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               int width = 0;
+               int height = 0;
+               cam_mm_get_image_size(&width, &height);
+               camapp->resolution = CAM_RESOLUTION(width, height);
+       } else {
+               camapp->resolution =
+                   cam_config_get_int(PROP_RESOLUTION_NAME,
+                                      REC_RESOLUTION_DEFAULT);
+       }
+
+       camapp->image_quality =
+           cam_config_get_int(PROP_IMAGE_QUALITY_NAME, QUALITY_DEFAULT);
+       camapp->video_quality =
+           cam_config_get_int(PROP_VIDEO_QUALITY_NAME, QUALITY_DEFAULT);
+       /* camapp->audio_recording = cam_config_get_int(PROP_AUDIO_REC_NAME, AUDIOREC_DEFAULT); */
+       camapp->audio_recording = AUDIOREC_DEFAULT;
+       camapp->review = cam_config_get_boolean(PROP_REVIEW_NAME, FALSE);
+       /*just reget batter_level state*/
+       camapp->battery_level = cam_utils_get_battery_level();
+       charging = cam_utils_get_charging_status();
+       if (charging == 1)
+               camapp->battery_charging = charging;
+       else
+               camapp->battery_charging = 0;
+
+
+#ifdef USE_CAMERA_APP_SHUTTER_SOUND
+       camapp->shutter_sound =
+           cam_config_get_int(PROP_SHUTTER_SOUND_NAME, SHUTTER_SOUND_DEFAULT);
+#endif
+       ad->camapp_handle->shutter_sound = SHUTTER_SOUND_DEFAULT;       /* on */
+
+       /*below item had been saved in ini file */
+       camapp->zoom_mode = 1;
+       camapp->image_count = IMAGE_COUNT_DEFAULT;
+       camapp->size_limit_type = CAM_MM_SIZE_LIMIT_TYPE_BYTE;
+       camapp->size_limit = REC_SIZE_LIMIT_DEFAULT;
+       camapp->timer = TIMER_DEFAULT;
+       camapp->fps = FPS_DEFAULT;
+       camapp->enable_touch_af = TRUE;
+
+       return TRUE;
+}
+
+static void __restore_defaults_popup_cb_ok_cb(void *data, Evas_Object *obj,
+                                                void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       cam_retm_if(ad->camapp_handle == NULL, " camapp_handle is NULL");
+
+       evas_object_del(ad->restore_default_popup);
+       ad->restore_default_popup = NULL;
+       hide_toolbar_edje(ad);
+       cam_app_preview_stop();
+       __reset_settings_launch();
+       if (!__do_start_restore_items(ad, ad->camapp_handle->camera_mode)) {
+               cam_critical(LOG_CAM, "cam_handle_init faild");
+               cam_app_notice_popup(data, "cam_handle_init faild ",
+                                    cam_app_timeout_notice_response_cb);
+               show_toolbar_edje(ad);
+               cam_app_preview_start(ad);
+               return;
+       }
+       show_toolbar_edje(ad);
+       cam_app_preview_start(ad);
+
+}
+
+static void __restore_defaults_popup_cb_cancel_cb(void *data, Evas_Object *obj,
+                                                void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       cam_retm_if(ad->camapp_handle == NULL, " camapp_handle is NULL");
+       if (ad->restore_default_popup)
+               evas_object_del(ad->restore_default_popup);
+       ad->restore_default_popup = NULL;
+
+}
+
+static void __effects_selected_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       UI_TEST_LOG(" ");
+       if (obj) {
+               int index = cam_get_menu_item_to_index(CAM_MENU_EFFECTS, (int)data);
+
+               UI_TEST_LOG("selected shot mode index : [%d]", index);
+               ad->effect_radio_index = index;
+               elm_radio_value_set(ad->radio, index);
+               GValue value = {
+                       0,
+               };
+               int effect = CAM_SETTINGS_EFFECTS_NOR;
+               switch ((int)data) {
+               case CAM_MENU_EFFECT_NONE:
+                       effect = CAMERA_ATTR_EFFECT_NONE;
+                       break;
+               case CAM_MENU_EFFECT_NEGATIVE:
+                       effect = CAMERA_ATTR_EFFECT_NEGATIVE;
+                       break;
+               case CAM_MENU_EFFECT_BLACKANDWHITE:
+                       effect = CAMERA_ATTR_EFFECT_MONO;
+                       break;
+               case CAM_MENU_EFFECT_SEPIA:
+                       effect = CAMERA_ATTR_EFFECT_SEPIA;
+                       break;
+               default:
+                       break;
+               }
+               if (ad->camapp_handle->effect != effect) {
+                       CAM_GVALUE_SET_INT(value, effect);
+                       cam_handle_value_set(ad, PROP_EFFECT, &value);
+               }
+       } else {
+               return;
+       }
+       if (ad->setting_select_item)
+               elm_genlist_item_update(ad->setting_select_item);
+       __update_menubar_icon_by_index(ad, CAM_MENU_EFFECTS);
+
+       DEL_EVAS_OBJECT(ad->setting_ctxpopup);
+       ad->ctxpopup_area = NULL;
+}
+
+static void __update_menubar_icon_by_index(struct appdata *ad, int index)
+{
+       Evas_Object_Event_Cb func = NULL;
+       int menubar_no = -1;
+       menubar_no = __get_menubar_no_by_index(ad, index);
+
+       Evas_Object *icon = NULL;
+       switch(menubar_no) {
+       case CAM_MENU_BAR_LEFT_0:
+               icon = ad->toolbar_0_icon;
+               break;
+       case CAM_MENU_BAR_LEFT_1:
+               icon = ad->toolbar_1_icon;
+               break;
+       case CAM_MENU_BAR_LEFT_2:
+               icon = ad->toolbar_2_icon;
+               break;
+       case CAM_MENU_BAR_LEFT_3:
+               icon = ad->toolbar_3_icon;
+               break;
+       case CAM_MENU_BAR_LEFT_4:
+               icon = ad->toolbar_4_icon;
+               break;
+       default:
+               DEBUG_TRACE("%d is not in menubar", index);
+       }
+       if (icon)
+               __toolbar_menu_type_update(icon, index, ad, BUTTON_STATE_NORMAL, &func);
+}
+
+static void toolbar_move_with_scale(Evas_Object *eo, double x, double y)
+{
+       DEBUG_TRACE("x = %f, y = %f" , x, y);
+       DEBUG_TRACE("elm_config_scale_get() = %f" , elm_config_scale_get());
+       evas_object_move(eo, x * elm_config_scale_get(), y * elm_config_scale_get());
+}
+
+static Evas_Object *_create_camera_popup_item(Evas_Object *parent,
+                                             char *icon_path, char *label, gboolean from_setting)
+{
+       Evas_Object *layout = NULL;
+       Evas_Object *icon = NULL;
+
+       /* layout */
+       layout = elm_layout_add(parent);
+       if (from_setting)
+               elm_layout_file_set(layout,
+                                   CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME,
+                                   "camera/item/setting");
+       else
+               elm_layout_file_set(layout,
+                                   CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME,
+                                   "camera/item");
+
+       evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       evas_object_show(layout);
+       if (icon_path == NULL) {
+               /* text */
+               edje_object_part_text_set(elm_layout_edje_get(layout),
+                                         "elm.title_text", label);
+               return layout;
+       }
+       /* icon */
+       icon = elm_icon_add(layout);
+       elm_icon_file_set(icon, icon_path, NULL);
+       evas_object_show(icon);
+       elm_object_part_content_set(layout, "elm.swallow.icon", icon);
+
+       /* text */
+       edje_object_part_text_set(elm_layout_edje_get(layout),
+                                 "elm.text", label);
+       return layout;
+}
+
+/*note: @mouse_point is the coordinate of mouse click, output is scaled*/
+static void __cam_get_ctxpopup_coord_in_setting_toolbar(int target_direction,
+                                                                               int mouse_point,
+                                                                               int *x,
+                                                                               int *y)
+{
+       int ver_x, ver_y, h_x, h_y;
+       ver_x = ver_y = h_x = h_y = 0;
+       switch (target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               *x = (int)(SETTING_HOR_CTX_POPUP_X * elm_config_scale_get());
+               *y = mouse_point;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               *x = (int)((1280 - SETTING_HOR_CTX_POPUP_X - 80) * elm_config_scale_get());
+               *y = mouse_point;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               *x = (int)(SETTING_VER_CTX_POPUP_X * elm_config_scale_get());;
+               *y = mouse_point;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               *x = (int)((720 - SETTING_VER_CTX_POPUP_X) * elm_config_scale_get());
+               *y = mouse_point;
+               break;
+       default:
+               DEBUG_TRACE("REACHED UN-ABLE REACHED CODES");
+
+       }
+}
+
+/*note: in this func, all coordinate is not scale*/
+static void __get_option_coord_by_menubar_no(int menubar_no,
+                                                               int target_direction,
+                                                               int *x,
+                                                               int *y)
+{
+       int menu_bar_no = menubar_no;
+       int ver_x, ver_y, h_x, h_y;
+       ver_x = ver_y = h_x = h_y = 0;
+       switch (menu_bar_no) {
+               case CAM_MENU_BAR_LEFT_0:
+                       ver_x = 77;
+                       ver_y = 109;
+                       h_x = 109;
+                       h_y = 643;
+                       break;
+               case CAM_MENU_BAR_LEFT_1:
+                       ver_x = 217;
+                       ver_y = 109;
+                       h_x = 109;
+                       h_y = 503;
+                       break;
+               case CAM_MENU_BAR_LEFT_2:
+                       ver_x = 347;
+                       ver_y = 109;
+                       h_x = 109;
+                       h_y = 373;
+                       break;
+               case CAM_MENU_BAR_LEFT_3:
+                       ver_x = 507;
+                       ver_y = 109;
+                       h_x = 109;
+                       h_y = 213;
+                       break;
+               case CAM_MENU_BAR_LEFT_4:
+                       ver_x = 647;
+                       ver_y = 109;
+                       h_x = 109;
+                       h_y = 73;
+                       break;
+               default:
+                       DEBUG_TRACE("input para,error!");
+       }
+
+       switch (target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               *x = h_x;
+               *y = h_y;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               *x = 1280 - h_x;
+               *y = 720 - h_y;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               *x = ver_x;
+               *y = ver_y;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               *x = 720 - ver_x;
+               *y = 1280 - ver_y;
+               break;
+       default:
+               DEBUG_TRACE("REACHED UN-ABLE REACHED CODES");
+
+       }
+}
+
+static int __get_menubar_no_by_index(struct appdata *ad, int index)
+{
+
+       if (index == ad->toolbar_0_type)
+               return CAM_MENU_BAR_LEFT_0;
+       if (index == ad->toolbar_1_type)
+               return CAM_MENU_BAR_LEFT_1;
+       if (index == ad->toolbar_2_type)
+               return CAM_MENU_BAR_LEFT_2;
+       if (index == ad->toolbar_3_type)
+               return CAM_MENU_BAR_LEFT_3;
+       if (index == ad->toolbar_4_type)
+               return CAM_MENU_BAR_LEFT_4;
+       return CAM_MENU_BAR_LEFT_INVALID;
+}
+
+static void __cam_toolbar_move_ctxpopup(Evas_Object *obj, int target_direction, int x, int y)
+{
+       if (!obj) return;
+       switch (target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               elm_ctxpopup_direction_priority_set(obj,
+                                                   ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                                   ELM_CTXPOPUP_DIRECTION_UP,
+                                                   ELM_CTXPOPUP_DIRECTION_LEFT,
+                                                   ELM_CTXPOPUP_DIRECTION_DOWN);
+
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               elm_ctxpopup_direction_priority_set(obj,
+                                               ELM_CTXPOPUP_DIRECTION_LEFT,
+                                               ELM_CTXPOPUP_DIRECTION_DOWN,
+                                               ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                               ELM_CTXPOPUP_DIRECTION_UP);
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               elm_ctxpopup_direction_priority_set(obj,
+                                               ELM_CTXPOPUP_DIRECTION_DOWN,
+                                               ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                               ELM_CTXPOPUP_DIRECTION_UP,
+                                               ELM_CTXPOPUP_DIRECTION_LEFT);
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               elm_ctxpopup_direction_priority_set(obj,
+                               ELM_CTXPOPUP_DIRECTION_UP,
+                               ELM_CTXPOPUP_DIRECTION_LEFT,
+                               ELM_CTXPOPUP_DIRECTION_DOWN,
+                               ELM_CTXPOPUP_DIRECTION_RIGHT
+                               );
+               break;
+       default:
+               DEBUG_TRACE("wow, check it, reached un-able reached codes");
+
+
+       }
+
+       toolbar_move_with_scale(obj, x, y);
+}
+
+static void __cam_toolbar_move_sub_menu(Evas_Object *obj, int target_direction, int x, int y)
+{
+       if (!obj) return;
+       switch (target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               elm_ctxpopup_direction_priority_set(obj,
+                                                   ELM_CTXPOPUP_DIRECTION_RIGHT,
+                                                   ELM_CTXPOPUP_DIRECTION_UP,
+                                                   ELM_CTXPOPUP_DIRECTION_LEFT,
+                                                   ELM_CTXPOPUP_DIRECTION_DOWN);
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               elm_ctxpopup_direction_priority_set(obj,
+                               ELM_CTXPOPUP_DIRECTION_LEFT,
+                               ELM_CTXPOPUP_DIRECTION_DOWN,
+                               ELM_CTXPOPUP_DIRECTION_RIGHT,
+                               ELM_CTXPOPUP_DIRECTION_UP
+                               );
+               break;
+       default:
+               DEBUG_TRACE("wow, check it, reached un-able reached codes");
+
+
+       }
+
+       evas_object_move(obj, x, y);
+}
+
+
+static void __setting_edit_shortcut_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       gboolean from_setting = FALSE;
+       if (event_info) { /*call by setting*/
+               from_setting = TRUE;
+       } else { /*call by click icon*/
+               from_setting = FALSE;
+       }
+       if (event_info) {
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               ad->setting_select_item = (Elm_Object_Item *)event_info;
+       }
+
+       toolbar_create_shortcuts_popup(ad);
+       /*TODO:*/
+}
+
+static int __toolbar_create_timer_popup(struct appdata *ad, gboolean from_setting)
+{
+       /*struct appdata *ad = (struct appdata *)cam_appdata_get();*/
+       CamAppData *camapp = NULL;
+       cam_retv_if(ad == NULL,-1);
+
+       if (from_setting) {
+               if(ad->toolbar_show_setting_popup == FALSE)
+                       return -1;
+       }
+       camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL,-1);
+       Evas_Object *layout;
+       Evas_Object *box;
+       Evas_Object *item;
+       Evas_Object *timer_group = NULL;
+       ad->displayed_setting_popup = DISPLAY_TIMER_POPUP;
+
+       int menu_bar_no;
+       int x, y;
+       if (!from_setting) {
+               /*check menubar_no*/
+               menu_bar_no = __get_menubar_no_by_index(ad, CAM_MENU_TIMER);
+               __get_option_coord_by_menubar_no(menu_bar_no, ad->target_direction, &x, &y);
+       }
+
+       /* create ctxpopup */
+       setting_ctxpopup_create(ad, from_setting);
+       layout = elm_layout_add(ad->setting_ctxpopup);
+       elm_layout_file_set(layout,
+                               CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME,
+                               "camera/layout");
+
+       /* set text */
+       edje_object_part_text_set(elm_layout_edje_get(layout),
+                                 "elm.text",
+                                 dgettext("sys_string", "IDS_COM_BODY_TIMER"));
+       evas_object_size_hint_min_set(layout, POPUP_WIDTH * elm_config_scale_get(),
+               TIMER_POPUP_CAM_HEIGHT * elm_config_scale_get());
+
+       evas_object_show(layout);
+
+       /* Box */
+       box = elm_box_add(layout);
+
+       guint index = -1;
+       /* timer*/
+
+       /* Timer ITEM */
+       index = CAM_SETTINGS_TIMER_OFF;
+       item = _create_camera_popup_item(box, TIMER_OFF_NORMAL_ICON, _("IDS_CAM_BODY_OFF"), from_setting);
+
+       /* radio */
+       timer_group = ad->timer_radio = elm_radio_add(item);
+       elm_object_style_set(ad->timer_radio, "beat_winset_test/camera");
+       elm_radio_state_value_set(ad->timer_radio, index);
+       evas_object_data_set(ad->timer_radio, "idx", (void *)(index));
+       evas_object_show(ad->timer_radio);
+       elm_object_part_content_set(item, "elm.swallow.radio", ad->timer_radio);
+       edje_object_signal_callback_del(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb);
+       edje_object_signal_callback_add(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb,(void *)index);
+       elm_box_pack_end(box, item);
+       index = CAM_SETTINGS_TIMER_2SEC;
+       item = _create_camera_popup_item(box, TIMER_2SEC_NORMAL_ICON, _("IDS_CAM_BODY_2_SEC"), from_setting);
+       ad->timer_radio = elm_radio_add(item);
+       elm_object_style_set(ad->timer_radio, "beat_winset_test/camera");
+       elm_radio_state_value_set(ad->timer_radio, index);
+       evas_object_data_set(ad->timer_radio, "idx", (void *)(index));
+       elm_radio_group_add(ad->timer_radio, timer_group);
+       evas_object_show(ad->timer_radio);
+       elm_object_part_content_set(item, "elm.swallow.radio", ad->timer_radio);
+       edje_object_signal_callback_del(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb);
+       edje_object_signal_callback_add(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb,(void *)index);
+       elm_box_pack_end(box, item);
+       index = CAM_SETTINGS_TIMER_5SEC;
+       item = _create_camera_popup_item(box, TIMER_5SEC_NORMAL_ICON, _("IDS_CAM_BODY_5_SEC"), from_setting);
+       ad->timer_radio = elm_radio_add(item);
+       elm_object_style_set(ad->timer_radio, "beat_winset_test/camera");
+       elm_radio_state_value_set(ad->timer_radio, index);
+       evas_object_data_set(ad->timer_radio, "idx", (void *)(index));
+       elm_radio_group_add(ad->timer_radio, timer_group);
+       evas_object_show(ad->timer_radio);
+       elm_object_part_content_set(item, "elm.swallow.radio", ad->timer_radio);
+       edje_object_signal_callback_del(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb);
+       edje_object_signal_callback_add(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb,(void *)index);
+       elm_box_pack_end(box, item);
+       index = CAM_SETTINGS_TIMER_10SEC;
+       item =
+               _create_camera_popup_item(box, TIMER_10SEC_NORMAL_ICON, _("IDS_CAM_BODY_10_SEC"), from_setting);
+       ad->timer_radio = elm_radio_add(item);
+       elm_object_style_set(ad->timer_radio, "beat_winset_test/camera");
+       elm_radio_state_value_set(ad->timer_radio, index);
+       evas_object_data_set(ad->timer_radio, "idx", (void *)(index));
+       elm_radio_group_add(ad->timer_radio, timer_group);
+       evas_object_show(ad->timer_radio);
+       elm_object_part_content_set(item, "elm.swallow.radio", ad->timer_radio);
+       edje_object_signal_callback_del(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb);
+       edje_object_signal_callback_add(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", _timer_popup_cb,(void *)index);
+       elm_box_pack_end(box, item);
+
+
+       elm_radio_value_set(ad->timer_radio, camapp->timer);
+       /*elm_radio_value_set(ad->radio, ad->resolution_radio_index);*/
+       elm_object_part_content_set(layout, "elm.swallow.box", box);
+       elm_object_content_set(ad->setting_ctxpopup, layout);
+       if (from_setting) {
+               int output_x, output_y;
+               __cam_get_ctxpopup_coord_in_setting_toolbar(ad->target_direction,
+                                                       setting_gl_y,
+                                                       &output_x,
+                                                       &output_y);
+               __cam_toolbar_move_sub_menu(ad->setting_ctxpopup, ad->target_direction, output_x, output_y);
+       } else {
+               __cam_toolbar_move_ctxpopup(ad->setting_ctxpopup, ad->target_direction, x, y);
+       }
+       evas_object_show(ad->setting_ctxpopup);
+       return TRUE;
+}
+
+static void __setting_timer_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       cam_retm_if(ad->camapp_handle == NULL, "ad->camapp_handle is NULL");
+
+       gboolean from_setting = FALSE;
+       if (event_info) { /*call by setting*/
+               from_setting = TRUE;
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               ad->setting_select_item = (Elm_Object_Item *)event_info;
+               if (ad->toolbar_show_setting_popup == FALSE)
+                       return;
+       } else { /*call by click icon*/
+               from_setting = FALSE;
+               ad->displayed_setting_popup = DISPLAY_TIMER_POPUP;
+       }
+
+       toolbar_shot_guide_popup_destory(ad);/*note: this guide is not guideline*/
+       __toolbar_create_timer_popup(ad, from_setting);
+       if (ad->setting_select_item)
+               elm_genlist_item_update(ad->setting_select_item);
+       __update_menubar_icon_by_index(ad, CAM_MENU_TIMER);
+}
+
+static void __setting_effects_popup_cb(void *data, Evas_Object *obj,
+                                      void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_ret_if(ad == NULL);
+
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_ret_if(cam_handle == NULL);
+       if (event_info)
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+       Evas_Object *layout;
+       Evas_Object *box;
+       Evas_Object *item;
+       Evas_Object *group = NULL;
+       int group_init = 0;
+       int index = 0;
+       gboolean from_setting = FALSE;
+       if (event_info) { /*call by setting*/
+               from_setting = TRUE;
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               ad->setting_select_item = (Elm_Object_Item *)event_info;
+               if (ad->toolbar_show_setting_popup == FALSE)
+                       return;
+       } else { /*call by click icon*/
+               from_setting = FALSE;
+               ad->displayed_setting_popup = DISPLAY_EFFECTS_POPUP;
+       }
+
+       int menu_bar_no;
+       int x, y;
+       if (!from_setting) {
+               /*check menubar_no*/
+               menu_bar_no = __get_menubar_no_by_index(ad, CAM_MENU_EFFECTS);
+               __get_option_coord_by_menubar_no(menu_bar_no, ad->target_direction, &x, &y);
+       }
+
+
+       setting_ctxpopup_create(ad, from_setting);
+
+       layout = elm_layout_add(ad->setting_ctxpopup);
+       elm_layout_file_set(layout,
+                           CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME,
+                           "camera/layout");
+
+       /* set text */
+       edje_object_part_text_set(elm_layout_edje_get(layout),
+                                 "elm.text", _("IDS_CAM_BODY_EFFECTS"));
+       if (ad->launching_mode == CAM_LAUNCHING_MODE_NORMAL)
+               evas_object_size_hint_min_set(layout,
+                                 POPUP_WIDTH * elm_config_scale_get(),
+                                 SHOT_MODE_POPUP_NORMAL_HEIGHT * elm_config_scale_get());
+
+       else
+               evas_object_size_hint_min_set(layout,
+                                         POPUP_WIDTH * elm_config_scale_get(),
+                                         SHOT_MODE_POPUP_EXTERNAL_HEIGHT * elm_config_scale_get());
+
+       evas_object_show(layout);
+
+
+       cam_menu_composer* menu_composer = NULL;
+       menu_composer = malloc(sizeof(cam_menu_composer));
+       cam_compose_menu_effect(menu_composer);
+
+       CAM_MENU_ITEM* menu_item  = NULL;
+       int size = eina_array_count(menu_composer->array);
+
+
+
+       /* Box */
+       box = elm_box_add(layout);
+       char icon_name[CAM_FILE_PATH_MAX] = { 0 };
+       for (index = 0; index < size; index++) {
+               menu_item = (CAM_MENU_ITEM*)eina_array_data_get(menu_composer->array, index);
+               snprintf(icon_name, sizeof(icon_name), EFFECTS_ICON, __get_icon_image_name(*menu_item), "nor");
+               item = _create_camera_popup_item(box, icon_name, _(__get_text_name(*menu_item)), from_setting);
+
+               /* radio */
+               if (index == group_init)
+                       group = ad->radio = elm_radio_add(item);
+
+               else
+                       ad->radio = elm_radio_add(item);
+               elm_object_style_set(ad->radio, "beat_winset_test/camera");
+               elm_radio_state_value_set(ad->radio, index);
+               evas_object_data_set(ad->radio, "idx", (void *)(index));
+               if (index != group_init)
+                       elm_radio_group_add(ad->radio, group);
+               evas_object_show(ad->radio);
+               elm_object_part_content_set(item, "elm.swallow.radio", ad->radio);
+               edje_object_signal_callback_del(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", __effects_selected_cb);
+               edje_object_signal_callback_add(elm_layout_edje_get(item), "elm.action.mouse.clicked", "", __effects_selected_cb,(void *)*menu_item);
+               elm_box_pack_end(box, item);
+       }
+       elm_radio_value_set(ad->radio, ad->effect_radio_index);
+       elm_object_part_content_set(layout, "elm.swallow.box", box);
+
+       elm_object_content_set(ad->setting_ctxpopup, layout);
+       if (from_setting) {
+               int output_x, output_y;
+               __cam_get_ctxpopup_coord_in_setting_toolbar(ad->target_direction,
+                                                       setting_gl_y,
+                                                       &output_x,
+                                                       &output_y);
+               __cam_toolbar_move_sub_menu(ad->setting_ctxpopup, ad->target_direction, output_x, output_y);
+       } else {
+               __cam_toolbar_move_ctxpopup(ad->setting_ctxpopup, ad->target_direction, x, y);
+       }
+       evas_object_show(ad->setting_ctxpopup);
+       cam_compose_free(menu_composer);
+}
+
+#ifdef GUIDE_LINE_ENALBE
+void __setting_guideline_popup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       cam_ret_if(obj == NULL);
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = NULL;
+       camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       DEBUG_TRACE("camapp->guideline = %d", camapp->guideline);
+
+       if (obj != ad->guideline_radio) {
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+
+               if (camapp->guideline == TRUE) {
+                       camapp->guideline = FALSE;
+                       elm_check_state_set(ad->guideline_radio, EINA_FALSE);
+               } else {
+                       camapp->guideline = TRUE;
+                       elm_check_state_set(ad->guideline_radio, EINA_TRUE);
+               }
+       } else {
+               /* to reset check button */
+               if (camapp->guideline == TRUE)
+                       elm_check_state_set(ad->guideline_radio, EINA_TRUE);
+               else
+                       elm_check_state_set(ad->guideline_radio, EINA_FALSE);
+               return;
+       }
+
+       GValue value = {0, };
+       CAM_GVALUE_SET_BOOLEAN(value, camapp->guideline);
+       cam_handle_value_set(ad, PROP_GUIDELINE, &value);
+
+       settings_guideline_refresh(ad);
+       if (ad->guideline_edje && ad->toolbar_show_setting_popup && ad->toolbar_setting_popup) {
+       /*setting popup should be on top of guideline*/
+               evas_object_raise(ad->toolbar_setting_popup);
+       }
+
+       __update_menubar_icon_by_index(ad, CAM_MENU_GUIDELINES);
+       cam_setting_toolbar_execution_time_checker_start(ad);
+}
+#endif
+
+static void __setting_restore_defaults_popup_cb(void *data, Evas_Object *obj,
+                       void *event_info)
+{
+       cam_ret_if(data == NULL);
+       struct appdata *ad = (struct appdata *)(data);
+       cam_retm_if(ad == NULL, " appdata is NULL");
+       gboolean from_setting = FALSE;
+       if (event_info) { /*call by setting*/
+               from_setting = TRUE;
+       } else { /*call by click icon*/
+               from_setting = FALSE;
+               ad->displayed_setting_popup = DISPLAY_RESET_POPUP;
+       }
+       if (event_info) {
+               elm_genlist_item_selected_set(event_info, EINA_FALSE);
+               ad->setting_select_item = (Elm_Object_Item *)event_info;
+       }
+
+       /*const char *msg;*/
+       if (ad->restore_default_popup) {
+               evas_object_del(ad->restore_default_popup);
+               ad->restore_default_popup = NULL;
+       }
+       ad->restore_default_popup = elm_popup_add(ad->win_main);
+       evas_object_size_hint_weight_set(ad->restore_default_popup, EVAS_HINT_EXPAND,
+                                        EVAS_HINT_EXPAND);
+       elm_popup_timeout_set(ad->restore_default_popup, 9.0);
+       elm_object_text_set(ad->restore_default_popup, _("IDS_CAM_POP_RESET_SETTINGS_Q"));
+       Evas_Object *btn1 = elm_button_add(ad->restore_default_popup);
+       elm_object_text_set(btn1, dgettext("sys_string", "IDS_COM_SK_OK"));
+       elm_object_part_content_set(ad->restore_default_popup, "button1", btn1);
+       evas_object_smart_callback_add(btn1, "clicked", __restore_defaults_popup_cb_ok_cb, (void*)ad);
+       Evas_Object *btn2 = elm_button_add(ad->restore_default_popup);
+       elm_object_text_set(btn2, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+       elm_object_part_content_set(ad->restore_default_popup, "button2", btn2);
+       evas_object_smart_callback_add(btn2, "clicked", __restore_defaults_popup_cb_cancel_cb, (void*)ad);
+
+       evas_object_show(ad->restore_default_popup);
+
+}
+
+#ifdef GUIDE_LINE_ENALBE
+void settings_guideline_refresh(struct appdata *ad)
+{
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL,"camapp is NULL");
+       DEBUG_TRACE("ad->camapp_handle->guideline = %d" ,ad->camapp_handle->guideline);
+       if (camapp->camera_mode == CAM_CAMERA_MODE) {
+               if( ad->camapp_handle->guideline == TRUE &&
+                               ad->camapp_handle->shooting_mode != CAM_SELF_MODE) {
+                       DEBUG_TRACE("");
+                       cam_guideline_rotate(ad);
+               } else {
+                       DEL_EVAS_OBJECT(ad->guideline_edje);
+               }
+       }
+       if (camapp->camera_mode == CAM_CAMCORDER_MODE) {
+               if( ad->camapp_handle->guideline == TRUE
+                       &&!(ad->camapp_handle->recording_mode == CAM_RECORD_SELF
+                       ||ad->camapp_handle->recording_mode == CAM_RECORD_SELF_MMS)
+                       ) {
+                                       DEBUG_TRACE("");
+                                       cam_guideline_rotate(ad);
+               } else {
+                       DEL_EVAS_OBJECT(ad->guideline_edje);
+               }
+
+       }
+}
+#endif
+
+gboolean cam_setting_toolbar_execution_time_checker_remove(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+       if (ad->setting_toolbar_hide_timer) {
+               ecore_timer_del(ad->setting_toolbar_hide_timer);
+               ad->setting_toolbar_hide_timer = NULL;
+       }
+       camapp->start_time = 0.0;
+       DEBUG_TRACE("END");
+       return TRUE;
+}
+
+Eina_Bool cam_setting_toolbar_execution_time_checker_cb(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+       gdouble diff_time = 0.0;
+       diff_time = _get_current_time() - camapp->start_time;
+       if ((cam_mm_get_state() == CAMERA_STATE_PREVIEW)
+           && (diff_time >= CAM_SETTING_POPUP_TIMEOUT)) {
+               DEBUG_TRACE("hide Setting pupup");
+               if (ad->setting_toolbar_hide_timer) {
+                       if (ad->setting_ctxpopup || ad->toolbar_popup) {
+                               ad->show_menu = FALSE;
+                               ad->displayed_setting_popup = DISPLAY_NONE_POPUP;
+                               cam_toolbar_and_setting_popup_del(ad);
+                               if (ad->shot_mode_guide_popup)
+                                       toolbar_shot_guide_popup_create
+                                           (ad,
+                                            ad->camapp_handle->shooting_mode);
+                       } else if (ad->toolbar_show_setting_popup == true) {
+                               toolbar_hide_setting_popup(ad);
+                       }
+
+                       if (ad->edit_shortcuts_popup_scroll) {
+                               toolbar_destroy_shortcuts_popup(ad);
+                       }
+               }
+               cam_setting_toolbar_execution_time_checker_remove(ad);
+       }
+       return TRUE;
+}
+
+gboolean cam_setting_toolbar_execution_time_checker_start(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+       if (ad->setting_toolbar_hide_timer) {
+               ecore_timer_del(ad->setting_toolbar_hide_timer);
+               ad->setting_toolbar_hide_timer = NULL;
+       }
+       ad->setting_toolbar_hide_timer =
+           ecore_timer_add(CAM_SETTING_POPUP_TIMEOUT / 2,
+                           cam_setting_toolbar_execution_time_checker_cb, ad);
+       camapp->start_time = _get_current_time();
+       DEBUG_TRACE("END");
+       return TRUE;
+}
+
+Eina_Bool cam_show_setting_menu_option_popup(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       #if 0
+       if (ad->displayed_setting_popup != DISPLAY_FLASH_POPUP) {
+               do {
+                       usleep(1000);
+               } while (ad->toolbar_show_setting_popup == FALSE) ;
+       }
+       #endif
+
+       switch (ad->displayed_setting_popup) {
+       case DISPLAY_NONE_POPUP:
+               break;
+       case DISPLAY_EDIT_SHOTCUTS_POPUP:
+                __setting_edit_shortcut_popup_cb(ad, NULL, NULL);
+               break;
+       case DISPLAY_EFFECTS_POPUP:
+                __setting_effects_popup_cb(ad, NULL, NULL);
+               break;
+       case DISPLAY_GUIDELINES_POPUP:
+                __setting_guideline_popup_cb(ad, NULL, NULL);
+               break;
+       case DISPLAY_RESET_POPUP:
+               __setting_restore_defaults_popup_cb(ad, NULL, NULL);
+               break;
+       case DISPLAY_TIMER_POPUP:
+               __setting_timer_popup_cb(ad,NULL,NULL);
+       }
+
+       return ECORE_CALLBACK_CANCEL;
+
+}
+
+Eina_Bool cam_show_setting_menu(void *data)
+{
+       struct appdata *ad = (struct appdata *)data;
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       if (ad->show_menu == TRUE
+               || ad->toolbar_show_setting_popup == TRUE) {
+               ad->toolbar_show_setting_popup = TRUE;
+               if (ad->camapp_handle->shooting_mode != CAM_SELF_MODE)
+                       toolbar_show_setting_popup(ad);
+       } else if (ad->toolbar_show_edit_shortcuts_popup == TRUE) {
+               toolbar_create_shortcuts_popup(ad);
+       }
+       if ( ad->displayed_setting_popup != DISPLAY_NONE_POPUP) {
+               ecore_idler_add(cam_show_setting_menu_option_popup, ad);
+       }
+       ad->is_rotating = FALSE;
+       return ECORE_CALLBACK_CANCEL;
+}
+
+gboolean cam_setting_toolbar_execution_time_checker_update(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "cam_handle is NULL");
+       gdouble current_time = 0.0;
+       if (ad->setting_toolbar_hide_timer) {
+               current_time = _get_current_time();
+               ecore_timer_delay(ad->setting_toolbar_hide_timer,
+                                 (current_time - camapp->start_time));
+               camapp->start_time = current_time;
+       }
+       DEBUG_TRACE("END");
+       return TRUE;
+}
+
+void toolbar_show_setting_popup(struct appdata *ad)
+{
+       DEBUG_TRACE();
+       cam_retm_if(ad == NULL, "appdata is null");
+       cam_retm_if(ad->toolbar_edje == NULL, "ad->toolbar_edje is null");
+       ad->toolbar_show_setting_popup = TRUE;
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                               "toolbar_0_button,invisible", "prog");
+       toolbar_create_setting_popup(ad);
+       cam_setting_toolbar_execution_time_checker_start(ad);
+}
+
+void toolbar_hide_setting_popup(struct appdata *ad)
+{
+       cam_retm_if(ad == NULL, "appdata is null");
+       cam_retm_if(ad->toolbar_edje == NULL, "ad->toolbar_edje is null");
+       ad->toolbar_show_setting_popup = FALSE;
+       cam_retm_if(ad->toolbar_setting_popup == NULL,
+                   "ad->toolbar_setting_popup is null");
+       /*get selected item of toolbar,and unselected it*/
+       Elm_Object_Item *selected_item =
+                       elm_toolbar_selected_item_get(ad->toolbar_setting_popup);
+       if (selected_item)
+               elm_toolbar_item_selected_set(selected_item, EINA_FALSE);
+
+       if (!(ad->is_recording
+             || ad->camapp_handle->shooting_mode == CAM_SELF_MODE
+             || ad->camapp_handle->recording_mode == CAM_RECORD_SELF_MMS
+             || ad->camapp_handle->recording_mode == CAM_RECORD_SELF)) {
+               edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                                       "toolbar_0_button,normal", "prog");
+               edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                                       "toolbar_0_icon,normal", "prog");
+       }
+       toolbar_destroy_setting_popup(ad);
+       cam_setting_toolbar_execution_time_checker_remove(ad);
+
+}
+
+void toolbar_destroy_shortcuts_popup(struct appdata *ad)
+{
+       cam_retm_if(ad == NULL, "appdata is null");
+       cam_retm_if(ad->toolbar_edje == NULL, "appdata is null");
+       elm_object_part_content_unset(ad->toolbar_edje, "shortcuts_popup");
+
+       DEL_EVAS_OBJECT(ad->edit_shortcuts_popup_scroll);
+       DEL_EVAS_OBJECT(ad->edit_shortcuts_popup_description);
+       ad->edit_shortcuts_popup_scroll = NULL;
+       ad->edit_shortcuts_popup_ctx = NULL;
+       ad->edit_shortcuts_popup = NULL;
+
+                       /*clear eina_list*/
+       __cam_toolbar_edit_shortcuts_data_clean();
+
+       destroy_menubar_shortcuts_mouse_event(ad, 0, TRUE);
+       /*exit edit mode*/
+               /*show edit mode*/
+       /*TODO: here should be rotate icon*/
+
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,normal", "prog");
+
+       cam_app_focus_guide_update((void *)ad);
+
+       /*ad->toolbar_show_edit_shortcuts_popup = FALSE;*/
+       int i = 0;
+       for (i = CAM_MENU_EMPTY + 1; i < CAM_MENU_MAX_NUMS; i++) {
+               __update_menubar_icon_by_index(ad, i);
+       }
+
+}
+void toolbar_destroy_setting_popup(struct appdata *ad)
+{
+       cam_retm_if(ad == NULL, "appdata is null");
+       cam_retm_if(ad->toolbar_setting_popup == NULL,
+               "ad->toolbar_setting_popup is null");
+       DEBUG_TRACE("toolbar_destroy_setting_popup");
+       /*ad->toolbar_show_setting_popup = FALSE;*/
+
+       evas_object_del(ad->toolbar_setting_popup);
+       ad->toolbar_setting_popup = NULL;
+
+       ad->timer_item= NULL;
+       ad->setting_select_item = NULL; /*select item*/
+       /*delete setting contex popup*/
+       delete_ctxpopup_cb(ad);
+       /*elm_all_flush();*/
+       cam_elm_cache_flush();
+       if (ad->toolbar_edje)
+               evas_object_raise(ad->toolbar_edje);
+
+       cam_app_focus_guide_update(ad);
+}
+
+int cam_toolbar_setting_popup_create(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       toolbar_create_setting_popup(ad);
+       return 0;
+}
+
+int cam_toolbar_setting_popup_delayed_create(struct appdata *ad)
+{
+       DEBUG_TRACE("###################### cam_toolbar_setting_popup_delayed_create\n");
+       cam_retv_if(ad == NULL, -1);
+
+#ifndef        CAMERA_MACHINE_I686
+       if (ad->toolbar_setting_popup_idler == NULL) {
+               ad->toolbar_setting_popup_idler =
+                       ecore_idler_add(toolbar_create_setting_popup_cb, ad);
+       }
+
+#endif
+       return 0;
+}
+
+Eina_Bool toolbar_create_setting_popup_cb(void *data)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, ECORE_CALLBACK_CANCEL);
+       REMOVE_IDLER(ad->toolbar_setting_popup_idler);
+       if (( ad->camapp_handle->shooting_mode == CAM_SELF_MODE)
+               ||( ad->camapp_handle->recording_mode == CAM_RECORD_SELF)
+               ||( ad->camapp_handle->recording_mode == CAM_RECORD_SELF_MMS))
+               return ECORE_CALLBACK_CANCEL;
+       DEBUG_TRACE("######################## toolbar_create_setting_popup_cb\n");
+       toolbar_create_setting_popup(ad);
+       REMOVE_IDLER(ad->toolbar_setting_popup_idler);
+       return ECORE_CALLBACK_CANCEL;
+}
+
+
+static Evas_Object *_setting_gl_icon_get(void *data, Evas_Object *obj, const char *part)
+{
+       struct appdata *ad = (struct appdata *)cam_appdata_get();
+       if (!ad)
+               return NULL;
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, NULL);
+       Evas_Object *icon = NULL;
+       DEBUG_TRACE();
+       int index = (int)data;
+       DEBUG_TRACE("index = %d" , index);
+       switch(index) {
+       case CAM_MENU_SHORTCUTS:
+               icon = NULL;
+               break;
+       case CAM_MENU_TIMER:
+               {
+                       int value_index = 0;
+                       icon = elm_icon_add(obj);
+                       /* set timer value */
+                       value_index = ad->camapp_handle->timer;
+                       switch (value_index) {
+                               case CAM_SETTINGS_TIMER_2SEC:
+                                       elm_icon_file_set(icon, TIMER_2SEC_NORMAL_ICON, NULL);
+                                       break;
+                               case CAM_SETTINGS_TIMER_5SEC:
+                                       elm_icon_file_set(icon, TIMER_5SEC_NORMAL_ICON, NULL);
+                                       break;
+                               case CAM_SETTINGS_TIMER_10SEC:
+                                       elm_icon_file_set(icon, TIMER_10SEC_NORMAL_ICON, NULL);
+                                       break;
+                               case CAM_SETTINGS_TIMER_OFF:
+                               default:
+                                       elm_icon_file_set(icon, TIMER_OFF_NORMAL_ICON, NULL);
+                       }
+               }
+               break;
+       case CAM_MENU_EFFECTS:
+               {
+                       int value_index = 0;
+                       icon = elm_icon_add(obj);
+                       value_index = cam_get_value_to_index(CAM_MENU_EFFECTS, ad->camapp_handle->effect);
+                       ad->effect_radio_index = value_index;
+                       char icon_name[CAM_FILE_PATH_MAX] = { 0 };
+                       snprintf(icon_name, sizeof(icon_name), EFFECTS_ICON, __get_icon_image_name(cam_convert_effect_to_menu_item(ad->camapp_handle->effect)), "nor");
+                       elm_icon_file_set(icon, icon_name, NULL);
+               }
+               break;
+       case CAM_MENU_GUIDELINES:
+               icon = elm_check_add(obj);
+
+               if (ad->camapp_handle->guideline) {
+                       elm_check_state_set(icon, EINA_TRUE);
+               } else {
+                       elm_check_state_set(icon, EINA_FALSE);
+               }
+
+               elm_object_style_set(icon, "genlist/on&off");
+               evas_object_smart_callback_add(icon, "changed", __setting_guideline_popup_cb, (void*)ad);
+               ad->guideline_radio = icon;
+               break;
+       case CAM_MENU_RESET:
+               break;
+       case CAM_MENU_MAX_NUMS:
+               DEBUG_TRACE("your array out, please check!");
+               break;
+       default:
+               DEBUG_TRACE("Error occur!");
+       }
+       if (icon) {
+               /*evas_object_resize(icon, 86 , 84);
+               evas_object_size_hint_min_set(icon, 86, 84);
+               evas_object_size_hint_max_set(icon, 86, 84);*/
+               evas_object_size_hint_weight_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+               evas_object_size_hint_align_set(icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       }
+       return icon;
+}
+
+static char *_setting_gl_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       int index = (int)data;
+
+       switch(index) {
+       case CAM_MENU_SHORTCUTS:
+               return strdup(_("IDS_CAM_OPT_EDIT_SHORTCUTS"));
+               break;
+       case CAM_MENU_TIMER:
+               return strdup(_("IDS_CAM_BODY_TIMER"));
+               break;
+       case CAM_MENU_EFFECTS:
+               return strdup(_("IDS_CAM_BODY_EFFECTS"));
+               break;
+       case CAM_MENU_GUIDELINES:
+               return strdup(_("IDS_CAM_BODY_GUIDELINE"));
+               break;
+       case CAM_MENU_RESET:
+               return strdup(_("IDS_CAM_BODY_RESET_SETTINGS_RESET"));
+               break;
+       case CAM_MENU_MAX_NUMS:
+               DEBUG_TRACE("your array out, please check!");
+               break;
+       default:
+               DEBUG_TRACE("Error occur!");
+       }
+       return strdup("test");
+}
+
+static void __setting_gl_mouse_down(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info){
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       if (!event_info) return;
+       if (ad->setting_ctxpopup) {
+               /*delete_ctxpopup_cb(ad);*/
+               evas_object_hide(ad->setting_ctxpopup);
+       }
+       Evas_Event_Mouse_Down *mu = (Evas_Event_Mouse_Down *)event_info;
+       setting_gl_x = mu->canvas.x;
+       setting_gl_y = mu->canvas.y;
+       setting_gl_x = mu->output.x;
+       setting_gl_y = mu->output.y;
+       DEBUG_TRACE("x = %d, y = %d", setting_gl_x, setting_gl_y);
+       DEBUG_TRACE("mu->output.x = %d, mu->output.y = %d", mu->output.x, mu->output.y);
+
+       cam_setting_toolbar_execution_time_checker_start(ad);
+}
+
+/*mouse move func for setting popup*/
+static void __setting_gl_mouse_move(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info){
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       if (!event_info) return;
+       if (ad->setting_ctxpopup) {
+               /*delete_ctxpopup_cb(ad);*/
+               evas_object_hide(ad->setting_ctxpopup);
+       }
+       Evas_Event_Mouse_Move *mu = (Evas_Event_Mouse_Move *)event_info;
+       setting_gl_x = mu->cur.canvas.x;
+       setting_gl_y = mu->cur.canvas.y;
+       setting_gl_x = mu->cur.output.x;
+       setting_gl_y = mu->cur.output.y;
+       DEBUG_TRACE("x = %d, y = %d", setting_gl_x, setting_gl_y);
+       DEBUG_TRACE("mu->cur->canvas.x = %d, mu->cur->canvas.y = %d", mu->cur.canvas.x, mu->cur.canvas.y);
+
+       cam_setting_toolbar_execution_time_checker_start(ad);
+}
+
+static void __setting_shortcuts_mouse_down(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info){
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       if (!event_info) return;
+       Evas_Coord x, y, w, h;
+
+       Evas_Event_Mouse_Down *mu = (Evas_Event_Mouse_Down *)event_info;
+       shortcuts_canvas_prev_x = mu->canvas.x;
+       shortcuts_canvas_prev_y = mu->canvas.y;
+       DEBUG_TRACE("x = %d, y = %d", shortcuts_canvas_prev_x, shortcuts_canvas_prev_y);
+
+       cam_long_press_trigger(LONG_PRESS_ID_EDIT, mu->canvas.x, mu->canvas.y);
+
+       evas_object_geometry_get(obj, &x, &y, &w, &h);
+       Eina_List *l = NULL;
+       ShortCutData *shortcuts_ele = NULL;
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               evas_object_geometry_get(shortcuts_ele->icon, &x, &y, &w, &h);
+               shortcuts_ele->x = x;
+               shortcuts_ele->y = y;
+               shortcuts_ele->w = w;
+               shortcuts_ele->h = h;
+               DEBUG_TRACE("x,%d y,%d w,%d h,%d index %d",x, y, w, h, shortcuts_ele->part_index);
+
+               if (obj == shortcuts_ele->icon) {
+                       ad->shortcut_data = shortcuts_ele;
+               }
+       }
+       if (!ad->shortcut_data) { /*not find shortcut data, so it will come from menubar*/
+               int menubar_no = -1;
+               if (check_if_shortcuts_from_menubar(ad, obj, &menubar_no)) {
+                       /*get shortcuts data:*/
+                       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+                               if (shortcuts_ele == NULL)
+                                       continue;
+                               if (shortcuts_ele->menu_bar_no == menubar_no) {
+                                       ad->shortcut_data = shortcuts_ele;
+                               }
+                       }
+               } else {
+                       DEBUG_TRACE("error occur!");
+               }
+       } else {
+               DEBUG_TRACE("find in the shortcuts panel");
+       }
+
+       evas_object_raise(obj);
+       evas_object_lower(evas_object_above_get(obj));
+
+}
+
+static void __setting_shortcuts_mouse_up(void *data, Evas * evas, Evas_Object *obj,void *event_info)
+{
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       if (!event_info) return;
+
+       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+
+}
+
+bool shortcuts_rect_check_intersect(Evas_Coord a_left, Evas_Coord a_top, Evas_Coord a_right, Evas_Coord a_bottom,
+                                               Evas_Coord b_left, Evas_Coord b_top, Evas_Coord b_right, Evas_Coord b_bottom)
+{
+       if( (MIN(a_right, b_right) - MAX(a_left, b_left) > 60)
+               && (MIN(a_bottom, b_bottom) - MAX(a_top, b_top)> 30)) {
+            return TRUE;
+       }
+       else {
+            return FALSE;
+       }
+}
+
+bool shortcuts_rect_contain_check(int swap_rel1_x, int swap_rel1_y,
+                                               int swap_w, int swap_h,
+                                                               int cur_rel1_x, int cur_rel1_y,
+                                                                       int cur_w, int cur_h,
+                                                                               int correction_w,
+                                                                               int correction_h
+                                                                               )
+{
+       int a_rel1_x = swap_rel1_x - correction_w;
+       int a_rel1_y = swap_rel1_y - correction_h;
+       int a_rel2_x;
+       if (swap_w < cur_w)
+               a_rel2_x = swap_rel1_x + cur_w + correction_w;
+       else
+               a_rel2_x = swap_rel1_x + swap_w + correction_w;
+       int a_rel2_y;
+       if (swap_h < cur_h)
+               a_rel2_y = swap_rel1_y + cur_h + correction_h;
+       else
+               a_rel2_y = swap_rel1_y + swap_h + correction_h;
+
+       int b_rel1_x = cur_rel1_x;
+       int b_rel1_y = cur_rel1_y;
+       int b_rel2_x = cur_rel1_x + cur_w;
+       int b_rel2_y = cur_rel1_y + cur_h;
+
+       if ((a_rel1_x < b_rel1_x)
+               &&(a_rel1_y < b_rel1_y)
+               &&(a_rel2_x > b_rel2_x)
+               &&(a_rel2_y > b_rel2_y)
+               ) {
+               return TRUE;
+       } else {
+
+               return FALSE;
+       }
+}
+
+
+/*
+@item_1:pre
+@item_2:behind item_1
+*/
+void shortcuts_swap(Eina_List **head, Eina_List * item_1, Eina_List * item_2)
+{
+
+       Eina_List *tmp_item_1_next = item_1->next;
+       Eina_List *tmp_item_2_prev = item_2->prev;
+       if(item_1->prev!=NULL)
+               item_1->prev->next = item_2;
+       else
+               *head = item_2;
+
+       item_2->prev = item_1->prev;
+
+       item_1->next = item_2->next;
+
+       if(item_2->next!=NULL)
+               item_2->next->prev = item_1;
+
+       if (tmp_item_1_next == item_2) { /*item_1->item_2*/
+               item_2->next = item_1;
+               item_1->prev = item_2;
+       } else {/*item_1->....->item_2*/
+               tmp_item_1_next->prev = item_2;
+               item_2->next = tmp_item_1_next;
+               tmp_item_2_prev->next = item_1;
+               item_1->prev = tmp_item_2_prev;
+       }
+}
+
+static void __swap_menubar_shortcuts_ctx(struct appdata *ad, ShortCutData *menu_ele, ShortCutData *cur_ele)
+{
+       if (!cur_ele || !ad || !menu_ele)
+               return;
+       cur_ele->is_on_menu_bar = TRUE;
+       cur_ele->menu_bar_no = menu_ele->menu_bar_no;
+       DEBUG_TRACE("cur_ele->menu_bar_no = %d", cur_ele->menu_bar_no);
+       /*do:ele_layout*/
+
+       switch (cur_ele->menu_bar_no) {
+       case 0: {
+                       ad->toolbar_0_type = cur_ele->setting_type;
+                       update_menubar_shortcuts_mouse_event(ad, 0, FALSE);
+
+               }
+               break;
+       case 1: {
+                       ad->toolbar_1_type = cur_ele->setting_type;
+                       update_menubar_shortcuts_mouse_event(ad, 1, FALSE);
+               }
+               break;
+       case 2: {
+                       ad->toolbar_2_type = cur_ele->setting_type;
+                       update_menubar_shortcuts_mouse_event(ad, 2, FALSE);
+               }
+               break;
+       case 3: {
+                       ad->toolbar_3_type = cur_ele->setting_type;
+                       update_menubar_shortcuts_mouse_event(ad, 3, FALSE);
+               }
+               break;
+       case 4: {
+                       ad->toolbar_4_type = cur_ele->setting_type;
+                       update_menubar_shortcuts_mouse_event(ad, 4, FALSE);
+               }
+               break;
+       default:
+               DEBUG_TRACE("wow, I think there must be some issue when set menu_bar_no,check!");
+       }
+
+       DEBUG_TRACE("cur_ele->setting_type = %d", (int)cur_ele->setting_type);
+       DEBUG_TRACE("ad->toolbar_4_type = %d", (int)ad->toolbar_4_type);
+       menu_ele->is_on_menu_bar = FALSE;
+       menu_ele->menu_bar_no = -1;
+       char buf[16] = { 0 };
+       snprintf(buf, sizeof(buf),"row.%d", menu_ele->part_index);
+       DEBUG_TRACE("PART:%s", buf);
+       evas_object_show(menu_ele->icon);
+       evas_object_hide(cur_ele->icon);
+       snprintf(buf, sizeof(buf),"row.%d", cur_ele->part_index);
+       DEBUG_TRACE("PART:%s", buf);
+       cam_toolbar_menu_config_update((void *)ad);
+
+}
+
+gboolean check_with_menubar_empty_shortcuts(struct appdata *ad, ShortCutData *cur_ele, int *menubar_no)
+{
+       if (!ad || !cur_ele || !menubar_no)
+               return FALSE;
+       Evas_Coord cur_x=0, cur_y=0, cur_w=0, cur_h=0;
+       evas_object_geometry_get(cur_ele->icon, &cur_x, &cur_y, &cur_w, &cur_h);
+
+       if (ad->toolbar_1_type < 0) {
+               /*check space menu*/
+               Evas_Coord temp_x = 0, temp_y = 0, temp_w = 0, temp_h = 0;
+               evas_object_geometry_get(ad->toolbar_1_icon, &temp_x, &temp_y, &temp_w, &temp_h);
+               if (shortcuts_rect_contain_check(temp_x,
+                                               temp_y,
+                                               temp_w,
+                                               temp_h,
+                                               cur_x,
+                                               cur_y,
+                                               cur_w,
+                                               cur_h,
+                                               cur_w/4,
+                                               cur_w/4)) {
+                       cur_ele->is_on_menu_bar = TRUE;
+                       cur_ele->menu_bar_no = CAM_MENU_BAR_LEFT_1;
+                       cur_ele->part_index = -1;
+                       ad->toolbar_1_type = cur_ele->setting_type;
+                       cam_toolbar_menu_config_update((void *)ad);
+
+                       update_menubar_shortcuts_mouse_event(ad, CAM_MENU_BAR_LEFT_1, FALSE);
+
+                       evas_object_hide(cur_ele->icon);
+                       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+                       *menubar_no = CAM_MENU_BAR_LEFT_1;
+                       return TRUE;
+
+               }
+       }
+       if (ad->toolbar_2_type < 0) {
+               /*check space menu*/
+               Evas_Coord temp_x = 0, temp_y = 0, temp_w = 0, temp_h = 0;
+               evas_object_geometry_get(ad->toolbar_2_icon, &temp_x, &temp_y, &temp_w, &temp_h);
+               DEBUG_TRACE("2, %d,%d,%d,%d", temp_x, temp_y, temp_w, temp_h);
+               if (shortcuts_rect_contain_check(temp_x,
+                                               temp_y,
+                                               temp_w,
+                                               temp_h,
+                                               cur_x,
+                                               cur_y,
+                                               cur_w,
+                                               cur_h,
+                                               cur_w/4,
+                                               cur_w/4)
+                                               ) {
+                       /*update cur_ele ctx and sort eina list*/
+                       /*int temp_part_index;*/
+                       cur_ele->is_on_menu_bar = TRUE;
+                       cur_ele->menu_bar_no = CAM_MENU_BAR_LEFT_2;
+                       cur_ele->part_index = -1;
+                       ad->toolbar_2_type = cur_ele->setting_type;
+                       cam_toolbar_menu_config_update((void *)ad);
+
+                       update_menubar_shortcuts_mouse_event(ad, CAM_MENU_BAR_LEFT_2, FALSE);
+
+                       evas_object_hide(cur_ele->icon);
+                       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+                       *menubar_no = CAM_MENU_BAR_LEFT_2;
+                       return TRUE;
+
+               }
+       }
+
+       if (ad->toolbar_3_type < 0) {
+               /*check space menu*/
+               Evas_Coord temp_x = 0, temp_y = 0, temp_w = 0, temp_h = 0;
+               evas_object_geometry_get(ad->toolbar_3_icon, &temp_x, &temp_y, &temp_w, &temp_h);
+               DEBUG_TRACE("3, %d,%d,%d,%d", temp_x, temp_y, temp_w, temp_h);
+               if (shortcuts_rect_contain_check(temp_x,
+                                               temp_y,
+                                               temp_w,
+                                               temp_h,
+                                               cur_x,
+                                               cur_y,
+                                               cur_w,
+                                               cur_h,
+                                               cur_w/4,
+                                               cur_w/4)
+                                               ) {
+                       cur_ele->is_on_menu_bar = TRUE;
+                       cur_ele->menu_bar_no = CAM_MENU_BAR_LEFT_3;
+                       cur_ele->part_index = -1;
+                       ad->toolbar_3_type = cur_ele->setting_type;
+                       cam_toolbar_menu_config_update((void *)ad);
+
+                       update_menubar_shortcuts_mouse_event(ad, CAM_MENU_BAR_LEFT_3, FALSE);
+
+                       evas_object_hide(cur_ele->icon);
+                       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+                       *menubar_no = CAM_MENU_BAR_LEFT_3;
+                       return TRUE;
+
+               }
+       }
+
+
+       if (ad->toolbar_4_type < 0) {
+               /*check space menu*/
+               Evas_Coord temp_x = 0, temp_y = 0, temp_w = 0, temp_h = 0;
+               evas_object_geometry_get(ad->toolbar_4_icon, &temp_x, &temp_y, &temp_w, &temp_h);
+               DEBUG_TRACE("4, %d,%d,%d,%d", temp_x, temp_y, temp_w, temp_h);
+               if (shortcuts_rect_contain_check(temp_x,
+                                               temp_y,
+                                               temp_w,
+                                               temp_h,
+                                               cur_x,
+                                               cur_y,
+                                               cur_w,
+                                               cur_h,
+                                               cur_w/4,
+                                               cur_w/4)
+                                               ) {
+                       cur_ele->is_on_menu_bar = TRUE;
+                       cur_ele->menu_bar_no = CAM_MENU_BAR_LEFT_4;
+                       cur_ele->part_index = -1;
+                       ad->toolbar_4_type = cur_ele->setting_type;
+                       cam_toolbar_menu_config_update((void *)ad);
+
+                       update_menubar_shortcuts_mouse_event(ad, CAM_MENU_BAR_LEFT_4, FALSE);
+
+                       evas_object_hide(cur_ele->icon);
+                       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+                       *menubar_no = CAM_MENU_BAR_LEFT_4;
+                       return TRUE;
+
+               }
+       }
+       return FALSE;
+
+}
+
+gboolean check_if_shortcuts_from_menubar(struct appdata *ad, Evas_Object *obj, int *menubar_no)
+{
+       if (!obj || !ad || !menubar_no)
+               return FALSE;
+
+       if (obj == ad->toolbar_0_icon) {
+               *menubar_no = 0;
+               return TRUE;
+       }
+       if (obj == ad->toolbar_1_icon) {
+               *menubar_no = 1;
+               return TRUE;
+       }
+       if (obj == ad->toolbar_2_icon) {
+               *menubar_no = 2;
+               return TRUE;
+       }
+       if (obj == ad->toolbar_3_icon) {
+               *menubar_no = 3;
+               return TRUE;
+       }
+       if (obj == ad->toolbar_4_icon) {
+               *menubar_no = 4;
+               return TRUE;
+       }
+
+       return FALSE;
+}
+
+static void __setting_shortcuts_mouse_move(void *data, Evas * evas, Evas_Object *obj,
+                           void *event_info){
+
+       struct appdata *ad = (struct appdata *)data;
+       if (!ad) return;
+       if (!event_info) return;
+       DEBUG_TRACE();
+       Evas_Event_Mouse_Move *mu = (Evas_Event_Mouse_Move *)event_info;
+       Evas_Coord cur_x=0, cur_y=0, cur_w=0, cur_h=0;
+       Evas_Coord prev_x=0, prev_y=0, prev_w=0, prev_h=0;
+       Evas_Coord next_x=0, next_y=0, next_w=0, next_h=0;
+       Evas_Coord x=0, y=0;
+       Evas_Coord dx, dy;
+
+       cam_long_press_validate(LONG_PRESS_ID_EDIT, mu->cur.canvas.x, mu->cur.canvas.y);
+       if (!cam_get_long_press_running_state(LONG_PRESS_ID_EDIT)) {
+               return;
+       }
+
+       evas_object_geometry_get(obj, &cur_x, &cur_y, &cur_w, &cur_h);
+       x = cur_x + (mu->cur.canvas.x - shortcuts_canvas_prev_x);
+       y = cur_y + (mu->cur.canvas.y - shortcuts_canvas_prev_y);
+       dx = mu->cur.canvas.x - shortcuts_canvas_prev_x;
+       dy = mu->cur.canvas.y - shortcuts_canvas_prev_y;
+       shortcuts_canvas_prev_x = mu->cur.canvas.x;
+       shortcuts_canvas_prev_y = mu->cur.canvas.y;
+       /*move*/
+       /*begin:find obj shortcuts ele:*/
+       Eina_List *l;
+       ShortCutData *shortcuts_ele;
+       ShortCutData *cur_ele;
+       ShortCutData *swap_ele = NULL;
+       char buf[SHORTCUTS_PART_ARRAY_MAX_LEN] = { 0 };
+
+       cur_ele = ad->shortcut_data;
+       int menubar_no;
+
+       /*check if obj is from menubar*/
+       if (cur_ele->is_on_menu_bar) {
+               /**/
+               EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+                       if (shortcuts_ele == NULL)
+                               continue;
+                       Evas_Coord temp_x=0, temp_y=0, temp_w=0, temp_h=0;
+                       evas_object_geometry_get(shortcuts_ele->icon, &temp_x, &temp_y, &temp_w, &temp_h);
+                       if (shortcuts_ele->icon == cur_ele->icon) {
+                               DEBUG_TRACE("find self");
+                               continue;
+                       }
+                       if (shortcuts_ele->is_on_menu_bar) {
+                               DEBUG_TRACE("do not support menubar_ele swap");
+                               continue;
+                       }
+                       if (shortcuts_rect_contain_check(temp_x,
+                                                       temp_y,
+                                                       temp_w,
+                                                       temp_h,
+                                                       cur_x,
+                                                       cur_y,
+                                                       cur_w,
+                                                       cur_h,
+                                                       cur_w/4,
+                                                       cur_w/4)
+                                                       ) {
+                               swap_ele = shortcuts_ele;
+                               /*evas_object_event_callback_del(obj,
+                                       EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);*/
+                               break;
+                       }
+               }
+               if (swap_ele) {
+                       cur_ele->is_on_menu_bar = FALSE;
+                       int tmp_menub_bar_no = cur_ele->menu_bar_no;
+                       cur_ele->menu_bar_no = -1;
+                       evas_object_del(obj);
+                       switch (tmp_menub_bar_no) {
+                       case CAM_MENU_BAR_LEFT_0:
+                               ad->toolbar_0_type = -1;
+                               ad->toolbar_0_icon = elm_icon_add(ad->toolbar_edje);
+                               edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_0_icon", ad->toolbar_0_icon);
+                               break;
+                       case CAM_MENU_BAR_LEFT_1:
+                               ad->toolbar_1_type = -1;
+                               ad->toolbar_1_icon = elm_icon_add(ad->toolbar_edje);
+                               edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_1_icon", ad->toolbar_1_icon);
+                               break;
+                       case CAM_MENU_BAR_LEFT_2:
+                               ad->toolbar_2_type = -1;
+                               ad->toolbar_2_icon = elm_icon_add(ad->toolbar_edje);
+                               edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_2_icon", ad->toolbar_2_icon);
+                               break;
+                       case CAM_MENU_BAR_LEFT_3:
+                               ad->toolbar_3_type = -1;
+                               ad->toolbar_3_icon = elm_icon_add(ad->toolbar_edje);
+                               edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_3_icon", ad->toolbar_3_icon);
+                               break;
+                       case CAM_MENU_BAR_LEFT_4:
+                               ad->toolbar_4_type = -1;
+                               ad->toolbar_4_icon = elm_icon_add(ad->toolbar_edje);
+                               edje_object_part_swallow(_EDJ(ad->toolbar_edje), "toolbar_4_icon", ad->toolbar_4_icon);
+                               break;
+                       default:
+                               DEBUG_TRACE("error occur!");
+                       }
+                       cam_toolbar_menu_config_update((void *)ad);
+
+                       cam_long_press_cancel(LONG_PRESS_ID_EDIT);
+                       destroy_menubar_shortcuts_mouse_event(ad, tmp_menub_bar_no, FALSE);
+               } else {
+                       evas_object_move(obj, x , y);
+               }
+               return;
+       }
+       /*check with menubar empty shortcuts*/
+       menubar_no = -1;
+       if (check_with_menubar_empty_shortcuts(ad, cur_ele, &menubar_no)) {
+               DEBUG_TRACE("find empty meunbar shortcuts, and replace it!");
+
+               return;
+       }
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               Evas_Coord temp_x=0, temp_y=0, temp_w=0, temp_h=0;
+               if (shortcuts_ele->is_on_menu_bar) {
+                       Evas_Object *temp_icon = NULL;
+                       switch(shortcuts_ele->menu_bar_no) {
+                       case CAM_MENU_BAR_LEFT_0:
+                               temp_icon = ad->toolbar_0_icon;
+                               break;
+                       case CAM_MENU_BAR_LEFT_1:
+                               temp_icon = ad->toolbar_1_icon;
+                               break;
+                       case CAM_MENU_BAR_LEFT_2:
+                               temp_icon = ad->toolbar_2_icon;
+                               break;
+                       case CAM_MENU_BAR_LEFT_3:
+                               temp_icon = ad->toolbar_3_icon;
+                               break;
+                       case CAM_MENU_BAR_LEFT_4:
+                               temp_icon = ad->toolbar_4_icon;
+                               break;
+                       default:
+                               DEBUG_TRACE("error occur,check shortcuts init");
+                       }
+                       evas_object_geometry_get(temp_icon, &temp_x, &temp_y, &temp_w, &temp_h);
+
+               }else {
+                       evas_object_geometry_get(shortcuts_ele->icon, &temp_x, &temp_y, &temp_w, &temp_h);
+               }
+               DEBUG_TRACE("index:%d %d, %d, %d, %d,name:%s", shortcuts_ele->part_index, temp_x, temp_y, temp_w, temp_h, shortcuts_ele->name_line_1);
+               DEBUG_TRACE("index:%d %d, %d, %d, %d,name:%s", cur_ele->part_index, cur_x, cur_y, cur_w, cur_h, cur_ele->name_line_1);
+               if (shortcuts_ele->icon == obj) {
+                       DEBUG_TRACE("find self");
+                       continue;
+               }
+
+               if (shortcuts_rect_contain_check(temp_x,
+                                               temp_y,
+                                               temp_w,
+                                               temp_h,
+                                               cur_x,
+                                               cur_y,
+                                               cur_w,
+                                               cur_h,
+                                               cur_w/4,
+                                               cur_w/4)
+                                               ) {
+                       swap_ele = shortcuts_ele;
+                       break;
+               }
+       }
+
+       if (!swap_ele) {
+               DEBUG_TRACE("not find swap ele");
+               evas_object_move(obj, x , y);
+               return;
+       } else {
+               DEBUG_TRACE("find swap ele:index", swap_ele->part_index);
+
+       }
+
+       Eina_List *cur_item = NULL;
+       Eina_List *prev_item = NULL;
+       Eina_List *next_item = NULL;
+       cur_item = eina_list_data_find_list (shortcuts_ele_list, cur_ele);
+
+       if (!cur_item)
+               return;
+       if (swap_ele->is_on_menu_bar) {
+               DEBUG_TRACE("find swap ele on menu bar:%d", swap_ele->menu_bar_no);
+               evas_object_event_callback_del(obj,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+       }
+
+       if (swap_ele->list_index > cur_ele->list_index) {
+               next_item = eina_list_data_find_list (shortcuts_ele_list, swap_ele);
+               if (NULL != next_item) {
+                       evas_object_geometry_get(swap_ele->icon, &next_x, &next_y, &next_w, &next_h);
+                       evas_object_move(swap_ele->icon, cur_ele->x, cur_ele->y);
+                       cur_ele->x = next_x;
+                       cur_ele->y = next_y;
+                       cur_ele->w = next_w;
+                       cur_ele->h = next_h;
+                       int idx = swap_ele->part_index;
+                       swap_ele->part_index = cur_ele->part_index;
+                       cur_ele->part_index = idx;
+
+                       idx = swap_ele->list_index;
+                       swap_ele->list_index = cur_ele->list_index;
+                       cur_ele->list_index = idx;
+                       if (swap_ele->is_on_menu_bar) {
+                               __swap_menubar_shortcuts_ctx(ad, swap_ele, cur_ele);
+                       }
+                       shortcuts_swap(&shortcuts_ele_list, cur_item, next_item);
+               }
+       } else {
+               prev_item = eina_list_data_find_list (shortcuts_ele_list, swap_ele);
+               if(NULL != prev_item) {
+                       evas_object_geometry_get(swap_ele->icon, &prev_x, &prev_y, &prev_w, &prev_h);
+                       evas_object_move(swap_ele->icon, cur_ele->x, cur_ele->y);
+                       cur_ele->x = prev_x;
+                       cur_ele->y = prev_y;
+                       cur_ele->w = prev_w;
+                       cur_ele->h = prev_h;
+                       int idx = swap_ele->part_index;
+                       swap_ele->part_index = cur_ele->part_index;
+                       cur_ele->part_index = idx;
+
+                       idx = swap_ele->list_index;
+                       swap_ele->list_index = cur_ele->list_index;
+                       cur_ele->list_index = idx;
+
+                       if (swap_ele->is_on_menu_bar) {
+                               __swap_menubar_shortcuts_ctx(ad, swap_ele, cur_ele);
+                       }
+                       shortcuts_swap(&shortcuts_ele_list, prev_item, cur_item);
+               }
+       }
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               edje_object_part_unswallow(_EDJ(ad->edit_shortcuts_popup_ctx), shortcuts_ele->icon);
+       }
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               snprintf(buf, sizeof(buf),"row.%d", shortcuts_ele->part_index);
+               if (obj == shortcuts_ele->icon) {
+                       ad->shortcut_data = shortcuts_ele;
+                       DEBUG_TRACE("PART:%s", buf);
+                       continue;
+               }
+               DEBUG_TRACE("PART:%s", buf);
+               edje_object_part_swallow(_EDJ(ad->edit_shortcuts_popup_ctx), buf, shortcuts_ele->icon);
+       }
+       if (!cur_ele->is_on_menu_bar)
+               evas_object_move(obj, x , y);
+
+       return;
+
+}
+
+void cam_setting_gl_style_set(void)
+{
+       itc.item_style = "camera/1text.1icon";
+       itc.func.text_get = _setting_gl_text_get;
+       itc.func.content_get = _setting_gl_icon_get;
+       itc.func.state_get = NULL;
+       itc.func.del = NULL;
+}
+
+/*init shortcuts*/
+static int __cam_long_press_editmode_cb(void *data, int x, int y)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, -1);
+       DEBUG_TRACE();
+
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,edit", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,edit", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,edit", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,edit", "prog");
+
+       if (ad->shortcut_data) {
+               edje_object_part_unswallow(_EDJ(ad->edit_shortcuts_popup_ctx), ad->shortcut_data->icon);
+       }
+       evas_object_freeze_events_set(ad->edit_shortcuts_popup_scroll, TRUE);
+       evas_object_event_callback_add(ad->shortcut_data->icon,
+                                       EVAS_CALLBACK_MOUSE_MOVE,
+                                       __setting_shortcuts_mouse_move,
+                                       (void *)ad);
+       return 0;
+}
+
+static int __cam_long_press_exit_editmode_cb(void *data, int x, int y)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retv_if(ad == NULL, -1);
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retv_if(camapp == NULL, -1);
+       DEBUG_TRACE();
+
+       /*re-sort sortcuts element list*/
+       ShortCutData *shortcuts_ele = NULL;
+       Eina_List *l = NULL;
+       int temp_index = 0;
+       int temp_list_index = 0;
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               shortcuts_ele->list_index = temp_list_index;
+               temp_list_index++;
+               if (shortcuts_ele->is_on_menu_bar) {
+                       shortcuts_ele->part_index = -1;
+                       continue;
+               }
+               shortcuts_ele->part_index = temp_index;
+               temp_index++;
+               DEBUG_TRACE("shortcuts_ele->index %d" , shortcuts_ele->part_index);
+       }
+       /*change menubar shortcuts to normoal mode*/
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_1_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_2_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_3_icon,normal", "prog");
+       edje_object_signal_emit(_EDJ(ad->toolbar_edje),
+                                       "toolbar_4_icon,normal", "prog");
+       /*re-set menubar shortcuts*/
+       int i = 0;
+       for (i = CAM_MENU_SHORTCUTS; i < CAM_MENU_MAX_NUMS; i++) {
+               __update_menubar_icon_by_index(ad, i);
+       }
+
+       /*menu bar shortcut update*/
+       __update_menubar_icon_by_index(ad, ad->toolbar_0_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_1_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_2_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_3_type);
+       __update_menubar_icon_by_index(ad, ad->toolbar_4_type);
+
+       /* shortcut panel update*/
+       char buf[SHORTCUTS_PART_ARRAY_MAX_LEN] = { '\0', };
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               edje_object_part_unswallow(_EDJ(ad->edit_shortcuts_popup_ctx), shortcuts_ele->icon);
+
+       }
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele == NULL)
+                       continue;
+               snprintf(buf, sizeof(buf),"row.%d", shortcuts_ele->part_index);
+               DEBUG_TRACE("PART:%s", buf);
+               edje_object_part_swallow(_EDJ(ad->edit_shortcuts_popup_ctx), buf, shortcuts_ele->icon);
+       }
+
+       if (ad->shortcut_data) {
+               if (ad->shortcut_data->icon) {
+                       evas_object_event_callback_del(ad->shortcut_data->icon,
+                                                       EVAS_CALLBACK_MOUSE_MOVE,
+                                                       __setting_shortcuts_mouse_move);
+               }
+       }
+       ad->shortcut_data = NULL;
+       evas_object_freeze_events_set(ad->edit_shortcuts_popup_scroll, FALSE);
+       return 0;
+}
+
+static gboolean __is_shortcuts_on_menu_bar(struct appdata *ad, int index, int *menu_bar_no, Evas_Object **icon)
+{
+       if (!ad) {
+               *icon = NULL;
+               *menu_bar_no = CAM_MENU_BAR_LEFT_INVALID;
+               return FALSE;
+       }
+       if (index == ad->toolbar_0_type) {
+               *menu_bar_no = CAM_MENU_BAR_LEFT_0;
+               *icon = ad->toolbar_0_icon;
+               return TRUE;
+       }
+
+       if (index == ad->toolbar_1_type) {
+               *menu_bar_no = CAM_MENU_BAR_LEFT_1;
+               *icon = ad->toolbar_1_icon;
+               return TRUE;
+       }
+
+       if (index == ad->toolbar_2_type) {
+               *menu_bar_no = CAM_MENU_BAR_LEFT_2;
+               *icon = ad->toolbar_2_icon;
+               return TRUE;
+       }
+
+       if (index == ad->toolbar_3_type) {
+               *menu_bar_no = CAM_MENU_BAR_LEFT_3;
+               *icon = ad->toolbar_3_icon;
+               return TRUE;
+       }
+
+       if (index == ad->toolbar_4_type) {
+               *menu_bar_no = CAM_MENU_BAR_LEFT_4;
+               *icon = ad->toolbar_4_icon;
+               return TRUE;
+       }
+       *icon = NULL;
+       *menu_bar_no = CAM_MENU_BAR_LEFT_INVALID;
+
+       return FALSE;
+}
+
+void create_menubar_shortcuts_mouse_event(struct appdata *ad)
+{
+       if (!ad)
+               return;
+       if (ad->toolbar_0_type >= 0) {
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (ad->toolbar_1_type >= 0) {
+
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (ad->toolbar_2_type >= 0) {
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (ad->toolbar_3_type >= 0) {
+
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (ad->toolbar_4_type >= 0) {
+
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+}
+
+void update_menubar_shortcuts_mouse_event(struct appdata *ad, int menubar_no, bool all_menubar)
+{
+       if (!ad)
+               return;
+       if (menubar_no == CAM_MENU_BAR_LEFT_0 || all_menubar) {
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_1 || all_menubar) {
+
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_2 || all_menubar) {
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_3 || all_menubar) {
+
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_4 || all_menubar) {
+
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move,
+                                               (void *)ad);
+               evas_object_event_callback_add(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+       }
+}
+
+
+void destroy_menubar_shortcuts_mouse_event(struct appdata *ad, int menubar_no, bool all_menubar)
+{
+       if (!ad)
+               return;
+
+       if (menubar_no == CAM_MENU_BAR_LEFT_0 || all_menubar) {
+               evas_object_event_callback_del(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down);
+               evas_object_event_callback_del(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+               evas_object_event_callback_del(ad->toolbar_0_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_1 || all_menubar) {
+               evas_object_event_callback_del(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down);
+               evas_object_event_callback_del(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+               evas_object_event_callback_del(ad->toolbar_1_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_2 || all_menubar) {
+               evas_object_event_callback_del(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down);
+               evas_object_event_callback_del(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+               evas_object_event_callback_del(ad->toolbar_2_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_3 || all_menubar) {
+
+               evas_object_event_callback_del(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down);
+               evas_object_event_callback_del(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+               evas_object_event_callback_del(ad->toolbar_3_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up);
+       }
+       if (menubar_no == CAM_MENU_BAR_LEFT_4 || all_menubar) {
+               evas_object_event_callback_del(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_DOWN,
+                                               __setting_shortcuts_mouse_down);
+               evas_object_event_callback_del(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_MOVE,
+                                               __setting_shortcuts_mouse_move);
+               evas_object_event_callback_del(ad->toolbar_4_icon,
+                                               EVAS_CALLBACK_MOUSE_UP,
+                                               __setting_shortcuts_mouse_up);
+       }
+}
+
+/*free all memory for shortcuts*/
+static void __cam_toolbar_edit_shortcuts_data_clean()
+{
+       Eina_List *l = NULL;
+       ShortCutData *shortcuts_ele = NULL;
+
+       EINA_LIST_FOREACH(shortcuts_ele_list, l, shortcuts_ele) {
+               if (shortcuts_ele) {
+                       if (shortcuts_ele->icon_filepath) {
+                               free(shortcuts_ele->icon_filepath);
+                               shortcuts_ele->icon_filepath = NULL;
+                       }
+                       if (shortcuts_ele->name_line_1) {
+                               free(shortcuts_ele->name_line_1);
+                               shortcuts_ele->name_line_1 = NULL;
+                       }
+                       if (shortcuts_ele->name_line_2) {
+                               free(shortcuts_ele->name_line_2);
+                               shortcuts_ele->name_line_2 = NULL;
+                       }
+               }
+       }
+
+       /*clear eina_list*/
+       if (NULL != shortcuts_ele_list) {
+               eina_list_free(shortcuts_ele_list);
+               shortcuts_ele_list = NULL;
+       }
+
+}
+
+int toolbar_create_shortcuts_popup(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL || ad->toolbar_edje == NULL, -1);
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_retv_if(cam_handle == NULL, -1);
+
+       if (ad->toolbar_setting_popup) {
+               toolbar_hide_setting_popup(ad);
+       }
+       if (ad->edit_shortcuts_popup_scroll) {
+               toolbar_destroy_shortcuts_popup(ad);
+       }
+       ad->show_menu = FALSE;
+       ad->toolbar_show_edit_shortcuts_popup = TRUE;
+       int index = 0;
+       Evas_Object *icon = NULL;
+       Evas_Object *setting_popup = NULL;
+       Evas_Object *ele_layout = NULL;
+
+       #define LONG_PRESS_TIME (0.50)
+       cam_long_press_register(LONG_PRESS_ID_EDIT,
+                               LONG_PRESS_TIME,
+                               __cam_long_press_editmode_cb,
+                               __cam_long_press_exit_editmode_cb,
+                               (void*)ad);
+       setting_shotcuts_popup_create(ad);
+
+       setting_popup = elm_layout_add(ad->edit_shortcuts_popup);
+       elm_layout_file_set(setting_popup, CAM_SHOTCUTS_EDIT_CTXPOPUP_EDJ_NAME, "camera/shortcuts/layout");
+
+
+
+       /* set text */
+       Evas_Object *scroller = elm_scroller_add(ad->edit_shortcuts_popup);
+       elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
+       elm_scroller_policy_set(scroller,ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_ON);
+
+       char *icon_name = NULL;
+       char *part_name_1 = NULL;
+       char *part_name_2 = NULL;
+       char part_name[16] = { '\0', };
+       ShortCutData *shortcuts_ele = NULL;
+       Evas_Object_Event_Cb callback = NULL;
+       int part_index = 0;
+       int list_index = 0;
+       gboolean is_on_toolbar = FALSE;
+       int menu_bar_no = -1;
+
+       /*create edit callback in the menubar*/
+       create_menubar_shortcuts_mouse_event(ad);
+
+       /*hide focus guide*/
+       edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+
+       /*clear eina_list*/
+       __cam_toolbar_edit_shortcuts_data_clean();
+
+       for (index = CAM_MENU_TIMER; index < CAM_MENU_MAX_NUMS; index++) {
+               is_on_toolbar = __is_shortcuts_on_menu_bar(ad, index, &menu_bar_no, &ele_layout);
+               __get_toolbar_shortcuts_file_func((void *)ad, index, BUTTON_STATE_NORMAL, &icon_name, &part_name_1, &part_name_2, &callback);
+                {
+                       if (icon_name) {
+                               /*create layout for element*/
+                               ele_layout = elm_layout_add(setting_popup);
+                               elm_layout_file_set(ele_layout, CAM_SHOTCUTS_EDIT_CTXPOPUP_EDJ_NAME, "camera/shortcuts/ele");
+                               icon = elm_icon_add(ele_layout);
+                               elm_icon_file_set(icon, icon_name, NULL);
+                               /*free(icon_name);
+                               icon_name = NULL;*/
+                       } else {
+                               DEBUG_TRACE("index = %d, no icon file path or file path error, please check!", index);
+
+                               if (part_name_1)
+                                       free(part_name_1);
+                               if (part_name_2)
+                                       free(part_name_2);
+                               part_name_1 = part_name_2 = NULL;
+                               continue;
+                       }
+
+                       if (part_name_1) {
+                               edje_object_part_text_set(elm_layout_edje_get(ele_layout), "ele.txt.1", part_name_1);
+                               DEBUG_TRACE("part_name_1 %s", part_name_1);
+                       }
+                       if (part_name_2) {
+                               edje_object_part_text_set(elm_layout_edje_get(ele_layout), "ele.txt.2", part_name_2);
+                               DEBUG_TRACE("part_name_1 %s", part_name_2);
+                       }
+                       edje_object_part_swallow(_EDJ(ele_layout), "ele.icon", icon);
+                       evas_object_event_callback_add(ele_layout,
+                               EVAS_CALLBACK_MOUSE_DOWN,
+                                       __setting_shortcuts_mouse_down,
+                                               (void *)ad);
+                       evas_object_event_callback_add(ele_layout,
+                               EVAS_CALLBACK_MOUSE_UP,
+                                       __setting_shortcuts_mouse_up,
+                                               (void *)ad);
+
+                       evas_object_show(ele_layout);
+
+                       snprintf(part_name, sizeof(part_name),"row.%d",(part_index));
+                       edje_object_part_swallow(_EDJ(setting_popup), part_name, ele_layout);
+               }
+               shortcuts_ele = (ShortCutData *)malloc(sizeof(ShortCutData));
+               shortcuts_ele->icon = ele_layout;
+               if (is_on_toolbar)
+                       shortcuts_ele->part_index = -1;
+               else
+                       shortcuts_ele->part_index = part_index;
+               shortcuts_ele->list_index = list_index;
+               shortcuts_ele->setting_type = index;
+               shortcuts_ele->icon_filepath = icon_name;
+               shortcuts_ele->name_line_1 = part_name_1;
+               shortcuts_ele->name_line_2 = part_name_2;
+               shortcuts_ele->func = callback;
+               shortcuts_ele->menu_bar_no = menu_bar_no;
+               shortcuts_ele->is_on_menu_bar = is_on_toolbar;
+
+               shortcuts_ele_list = eina_list_append(shortcuts_ele_list, shortcuts_ele);
+               if (shortcuts_ele_list == NULL) {
+                       continue;
+               }
+               list_index++;
+               if (is_on_toolbar)
+                       continue;
+               part_index++;
+
+
+       }
+
+       elm_object_content_set(scroller, setting_popup);
+       /*elm_object_part_content_set(edit_shortcuts_layout, "swallow.items", setting_popup);*/
+       elm_object_part_content_set(ad->toolbar_edje, "shortcuts_popup", scroller);
+       elm_object_part_content_set(ad->toolbar_edje, "shortcuts_popup_description", ad->edit_shortcuts_popup_description);
+
+       int cur_width, cur_height;
+       cur_width = cur_height = 0;
+       cam_mm_get_image_size(&cur_width, &cur_height);
+       gboolean cur_is_wide = cam_utils_check_wide_resolution(cur_width, cur_height);
+       DEBUG_TRACE("cur_is_wide = %d", cur_is_wide);
+       if (cur_is_wide) {
+               edje_object_signal_emit(_EDJ(ad->toolbar_edje), "shortcuts,wide", "prog");
+       } else {
+               edje_object_signal_emit(_EDJ(ad->toolbar_edje), "shortcuts,normal", "prog");
+       }
+
+       ad->edit_shortcuts_popup_ctx = setting_popup;
+       ad->edit_shortcuts_popup_scroll = scroller;
+
+       evas_object_show(ad->toolbar_edje);
+
+       cam_setting_toolbar_execution_time_checker_start(ad);
+       return EXIT_SUCCESS;
+
+}
+
+void* __get_genlist_cb(const CAM_MENU_ITEM item)
+{
+       switch(item){
+               case CAM_MENU_SHORTCUTS:
+                       return __setting_edit_shortcut_popup_cb;
+               case CAM_MENU_TIMER:
+                       return __setting_timer_popup_cb;
+               case CAM_MENU_EFFECTS:
+                       return __setting_effects_popup_cb;
+               case CAM_MENU_GUIDELINES:
+                       return __setting_guideline_popup_cb;
+               case CAM_MENU_RESET:
+                       return __setting_restore_defaults_popup_cb;
+               default:
+                       return NULL;
+               }
+}
+
+static Eina_Bool __genlist_each_cb(const void *container, void *data, void *fdata)
+{
+       struct appdata *ad = (struct appdata *)fdata;
+       cam_retv_if(ad == NULL, EINA_FALSE);
+
+       CAM_MENU_ITEM* item = (CAM_MENU_ITEM*)data;
+
+
+       Elm_Object_Item *object_item = NULL;
+       object_item = elm_genlist_item_append(ad->genlist,
+                       &itc,
+                       (void*)*item,
+                       NULL,
+                       ELM_GENLIST_ITEM_NONE,
+                       __get_genlist_cb(*item),
+                       (void*)ad);
+
+       if(!cam_is_enabled_menu(ad,*item))
+               elm_object_item_disabled_set(object_item, TRUE);
+
+       return EINA_TRUE;
+}
+
+int toolbar_create_setting_popup(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL || ad->toolbar_edje == NULL, -1);
+       CamAppData *cam_handle = ad->camapp_handle;
+       cam_retv_if(cam_handle == NULL, -1);
+       DEBUG_TRACE("%d", ad->toolbar_show_setting_popup);
+       if (!ad->toolbar_show_setting_popup)
+               return -1;
+       if (ad->toolbar_setting_popup) {
+               toolbar_destroy_setting_popup(ad);
+       }
+       if (ad->edit_shortcuts_popup_scroll) {
+               toolbar_destroy_shortcuts_popup(ad);
+       }
+       ad->toolbar_show_setting_popup = TRUE;
+
+       Evas_Object *setting_popup = NULL;
+
+       /*hide focus guide*/
+       edje_object_signal_emit(_EDJ(ad->focus_edje), "focus,hide", "program");
+
+       setting_toolbar_popup_create(ad);
+
+       setting_popup = elm_layout_add(ad->toolbar_setting_ctxpopup);
+       elm_layout_file_set(setting_popup, CAM_SETTING_POPUP_STYLE_WITH_RADIO_EDJ_NAME, "camera/layout/setting");
+
+       /* set text */
+       edje_object_part_text_set(elm_layout_edje_get(setting_popup), "elm.text", _("IDS_CAM_BODY_SETTINGS"));
+
+
+       evas_object_size_hint_min_set(setting_popup,
+                                       SETTING_POPUP_WIDTH * elm_config_scale_get(),
+                                       SETTING_POPUP_HEIGHT * elm_config_scale_get());
+
+       ad->genlist = elm_genlist_add(setting_popup);
+       evas_object_event_callback_add(ad->genlist, EVAS_CALLBACK_MOUSE_DOWN, __setting_gl_mouse_down, (void *)ad);
+       evas_object_event_callback_add(ad->genlist, EVAS_CALLBACK_MOUSE_MOVE, __setting_gl_mouse_move, (void *)ad);
+
+       cam_setting_gl_style_set();
+
+       if( ad->setting_menu_composer != NULL)
+               eina_array_foreach(ad->setting_menu_composer->array, __genlist_each_cb, ad);
+
+       evas_object_show(ad->genlist);
+       elm_object_part_content_set(setting_popup, "elm.swallow.box", ad->genlist);
+       elm_object_content_set(ad->toolbar_setting_ctxpopup, setting_popup);
+       ad->toolbar_setting_popup = ad->toolbar_setting_ctxpopup;
+
+       int x, y ;
+       x = y = 0;
+       DEBUG_TRACE("ad->target_direction = %d", ad->target_direction);
+       __get_option_coord_by_menubar_no(CAM_MENU_BAR_LEFT_0, ad->target_direction, &x, &y);
+       DEBUG_TRACE("x = %d y = %d", x, y);
+       __cam_toolbar_move_ctxpopup(ad->toolbar_setting_popup, ad->target_direction, x, y);
+
+       evas_object_show(ad->toolbar_setting_popup);
+       cam_setting_toolbar_execution_time_checker_start(ad);
+
+
+       return EXIT_SUCCESS;
+}
+
+void cam_toolbar_and_setting_popup_del(void *data)
+{
+       struct appdata *ad = data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       /* destroy toolbar popup and setting popup */
+       DEBUG_TRACE("DESTORY toolbar_popup\n");
+       if (ad->toolbar_popup) {
+               evas_object_del(ad->toolbar_popup);
+               ad->toolbar_popup = NULL;
+       }
+       DEBUG_TRACE("DESTORY setting_ctxpopup\n");
+       if (ad->setting_ctxpopup) {
+               evas_object_del(ad->setting_ctxpopup);
+               ad->setting_ctxpopup = NULL;
+               ad->radio = NULL;
+               ad->guideline_radio = NULL;
+               ad->timer_radio = NULL;
+       }
+       DEBUG_TRACE("DESTORY ctxpopup_area\n");
+       if (ad->ctxpopup_area) {
+               ad->ctxpopup_area = NULL;
+       }
+       toolbar_destroy_setting_popup(ad);
+       cam_app_focus_guide_update(ad);
+
+}
+
+int toolbar_shot_guide_popup_create(struct appdata *ad, int shot_mode)
+{
+       cam_retvm_if(ad == NULL, -1, "appdata is NULL");
+
+       /* remove guide popup */
+       if (ad->shot_mode_guide_popup) {
+               /* remove ctx popup */
+               toolbar_shot_guide_popup_destory(ad);
+       }
+
+       return EXIT_SUCCESS;
+}
+
+int toolbar_shot_guide_popup_destory(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       UI_TEST_LOG("Guide popup destory");
+
+       if (ad->shot_mode_guide_popup) {
+               evas_object_del(ad->shot_mode_guide_popup);
+               ad->shot_mode_guide_popup = NULL;
+       }
+       return 0;
+}
+
+int toolbar_shot_guide_popup_move(struct appdata *ad)
+{
+       cam_retv_if(ad == NULL, -1);
+       Evas_Coord w, h;
+       if (ad->shot_mode_guide_popup) {
+               Evas_Object *ctxpopup = ad->shot_mode_guide_popup;
+               Eina_Bool setting_ctxpopup_is_visible = false;
+               evas_object_geometry_get(ad->win_main, NULL, NULL, &w, &h);
+               if (ad->setting_ctxpopup)
+                       setting_ctxpopup_is_visible = evas_object_visible_get(ad->setting_ctxpopup);
+               cam_debug(LOG_UI, "ad->toolbar_show_setting_popup=%d", ad->toolbar_show_setting_popup);
+               cam_debug(LOG_UI, "evas_object_visible_get(ad->setting_ctxpopup) =%d", setting_ctxpopup_is_visible);
+               cam_debug(LOG_UI, "width = %d, height= %d", w, h);
+               if (ad->toolbar_show_setting_popup) {
+                       elm_ctxpopup_direction_priority_set
+                           (ctxpopup,
+                            ELM_CTXPOPUP_DIRECTION_RIGHT,
+                            ELM_CTXPOPUP_DIRECTION_LEFT,
+                            ELM_CTXPOPUP_DIRECTION_DOWN,
+                            ELM_CTXPOPUP_DIRECTION_UP);
+                       toolbar_move_with_scale(ctxpopup, 650, 360);
+               } else {
+                       elm_ctxpopup_direction_priority_set
+                           (ctxpopup,
+                            ELM_CTXPOPUP_DIRECTION_RIGHT,
+                            ELM_CTXPOPUP_DIRECTION_LEFT,
+                            ELM_CTXPOPUP_DIRECTION_DOWN,
+                            ELM_CTXPOPUP_DIRECTION_UP);
+                       toolbar_move_with_scale(ctxpopup, 650, 360);
+               }
+       }
+       return 0;
+}
+
+static const char* __get_icon_image_name(CAM_MENU_ITEM item)
+{
+       switch(item){
+               case CAM_MENU_EFFECT_NONE:
+                       return "none";
+               case CAM_MENU_EFFECT_NEGATIVE:
+                       return "negative";
+               case CAM_MENU_EFFECT_BLACKANDWHITE:
+                       return "Black and white";
+               case CAM_MENU_EFFECT_SEPIA:
+                       return "sepia";
+               default:
+                       return NULL;
+               }
+}
+
+static const char* __get_text_name(CAM_MENU_ITEM item)
+{
+       switch(item){
+               case CAM_MENU_EFFECT_NONE:
+                       return "IDS_CAM_BODY_NONE";
+               case CAM_MENU_EFFECT_NEGATIVE:
+                       return "IDS_CAM_BODY_NEGATIVE";
+               case CAM_MENU_EFFECT_BLACKANDWHITE:
+                       return "IDS_CAM_BODY_BLACK_AND_WHITE";
+               case CAM_MENU_EFFECT_SEPIA:
+                       return "IDS_CAM_BODY_SEPIA";
+               default:
+                       return NULL;
+               }
+}
+
+
+//end file
diff --git a/src/edc-callback/cam_zoom_edc_callback.c b/src/edc-callback/cam_zoom_edc_callback.c
new file mode 100755 (executable)
index 0000000..6d0c9ac
--- /dev/null
@@ -0,0 +1,307 @@
+/*
+ * 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 <stdio.h>
+
+#include "camera_utils.h"
+#include "edc_string.h"
+#include "edc_image_name.h"
+#include "cam_zoom_edc_callback.h"
+#include "cam_common_edc_callback.h"
+
+
+#define ZOOM_TIMEOUT (5.0)
+
+
+static Evas_Object *slider = NULL;
+static Ecore_Timer *zoom_timer = NULL;
+static int zoom_value[CAM_ZOOM_VALUE_MAX] = { 0 };
+
+static gboolean __init_zoom_value(struct appdata *ad);
+static Eina_Bool __zoom_hide_timer_cb(void *data);
+static void __set_zoom_value(struct appdata *data, int zoom_level);
+static void __zoom_slider_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+static gboolean __init_zoom_value(struct appdata *ad)
+{
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       CamCapsRange *zoom_range = NULL;
+
+       zoom_range = g_new0(CamCapsRange, 1);
+       cam_retv_if(zoom_range == NULL, EXIT_FAILURE);
+       zoom_range->min = ad->camapp_handle->zoom_min;
+       zoom_range->max = ad->camapp_handle->zoom_max;
+       zoom_range->def_val = 10;
+       zoom_range->step = 1;
+
+       int i = 0;
+       double gap = (double)(zoom_range->max - zoom_range->min) / (CAM_ZOOM_VALUE_MAX - 2);
+       for (i = 2; i < CAM_ZOOM_VALUE_MAX - 1; i++) {
+               zoom_value[i] = (int)(0.5 + zoom_range->min + (i - 1) * gap);
+               DEBUG_TRACE("zoom_value[%d] =%d", i, zoom_value[i]);
+       }
+       zoom_value[1] = zoom_range->min;
+       DEBUG_TRACE("zoom_value[%d] =%d", 1, zoom_value[1]);
+       zoom_value[CAM_ZOOM_VALUE_MAX - 1] = zoom_range->max;
+       DEBUG_TRACE("zoom_value[%d] =%d", (CAM_ZOOM_VALUE_MAX - 1), zoom_value[CAM_ZOOM_VALUE_MAX - 1]);
+
+       if (zoom_range != NULL) {
+               g_free(zoom_range);
+               zoom_range = NULL;
+       }
+
+       return TRUE;
+}
+
+static Eina_Bool __zoom_hide_timer_cb(void *data)
+{
+       CAM_UI_LOG();
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retvm_if(ad == NULL, ECORE_CALLBACK_CANCEL, "appdata is NULL");
+
+       unload_zoom_edje(ad);
+
+       return ECORE_CALLBACK_CANCEL;
+}
+
+static void __set_zoom_value(struct appdata *data, int zoom_level)
+{
+       CAM_UI_LOG();
+
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retm_if(camapp == NULL, "camapp_handle is NULL");
+
+       int zoom = 0;
+       GValue value = { 0, };
+
+       camapp->zoom_mode = zoom_level;
+
+       zoom = zoom_value[camapp->zoom_mode];
+       DEBUG_TRACE("zoom_value =%d", zoom);
+       CAM_GVALUE_SET_INT(value, zoom);
+
+       if (!cam_handle_value_set(ad, PROP_ZOOM, &value)) {
+               DEBUG_TRACE("cam_handle_value_set failed");
+               if(!ad->zoom_warring_popup)
+                       cam_app_zoom_warring_popup(data, "zooming is not supported in this resolution.", cam_app_zoom_warring_popup_response_cb);
+       }
+}
+
+static void __zoom_slider_cb(void *data, Evas_Object *obj, void *event_info)
+{
+       struct appdata *ad = (struct appdata *)data;
+       cam_retm_if(ad == NULL, "appdata is NULL");
+
+       REMOVE_TIMER(zoom_timer);
+
+       if (obj) {
+               Evas_Object *slider = (Evas_Object *)obj;
+               int slider_value = (int)elm_slider_value_get(slider);
+               __set_zoom_value(ad, slider_value);
+       } else {
+               cam_critical(LOG_UI, "Error : slider is NULL");
+       }
+
+       zoom_timer = ecore_timer_add(ZOOM_TIMEOUT, __zoom_hide_timer_cb, ad);
+}
+
+gboolean load_zoom_edje(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       /* zoom bg */
+       gboolean portrait = FALSE;
+       gboolean slider_inverse = FALSE;
+       switch (ad->target_direction) {
+       case CAM_TARGET_DIRECTION_LANDSCAPE:
+               ad->zoom_edje = cam_app_load_edj(ad->win_main, CAM_ZOOM_EDJ_NAME, GRP_MAIN);
+               portrait = FALSE;
+               slider_inverse = TRUE;
+               break;
+       case CAM_TARGET_DIRECTION_LANDSCAPE_INVERSE:
+               ad->zoom_edje = cam_app_load_edj(ad->win_main, CAM_ZOOM_EDJ_INVERSE_NAME, GRP_MAIN);
+               portrait = FALSE;
+               slider_inverse = FALSE;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT:
+               ad->zoom_edje = cam_app_load_edj(ad->win_main, CAM_ZOOM_EDJ_VERTICAL_NAME, GRP_MAIN);
+               portrait = TRUE;
+               slider_inverse = FALSE;
+               break;
+       case CAM_TARGET_DIRECTION_PORTRAIT_INVERSE:
+               ad->zoom_edje = cam_app_load_edj(ad->win_main, CAM_ZOOM_EDJ_VERTICAL_INVERSE_NAME, GRP_MAIN);
+               slider_inverse = TRUE;
+               portrait = TRUE;
+               break;
+       default:
+               DEBUG_TRACE("wow, reached un-able reached codes");
+       }
+
+       cam_retvm_if(ad->zoom_edje == NULL, FALSE, "zom_edje is NULL");
+
+       /* zoom text */
+       if (!ad->zoom_text_min_edje) {
+               ad->zoom_text_min_edje = (Evas_Object *)edje_object_part_object_get(_EDJ(ad->zoom_edje), "text_min");
+       }
+       cam_retvm_if(ad->zoom_text_min_edje == NULL, FALSE, "zoom_text_min is NULL");
+
+       if (!ad->zoom_text_max_edje) {
+               ad->zoom_text_max_edje = (Evas_Object *)edje_object_part_object_get(_EDJ(ad->zoom_edje), "text_max");
+       }
+       cam_retvm_if(ad->zoom_text_max_edje == NULL, FALSE, "zoom_text_max is NULL");
+
+       edje_object_part_text_set(_EDJ(ad->zoom_edje), "text_min", "x1");
+       edje_object_part_text_set(_EDJ(ad->zoom_edje), "text_max", "x4");
+
+       /* zoom slider */
+       slider = elm_slider_add(ad->zoom_edje);
+       cam_retvm_if(slider == NULL, FALSE, "slider is NULL");
+
+       elm_object_style_set(slider, "camera");
+       if (portrait) {
+               elm_slider_horizontal_set(slider, EINA_TRUE);
+               elm_slider_inverted_set(slider, EINA_FALSE);
+       } else {
+               elm_slider_horizontal_set(slider, EINA_FALSE);
+               elm_slider_inverted_set(slider, EINA_FALSE);
+       }
+       if (slider_inverse) {
+               elm_slider_inverted_set(slider, EINA_TRUE);
+       } else {
+               elm_slider_inverted_set(slider, EINA_FALSE);
+       }
+       elm_slider_min_max_set(slider, CAM_ZOOM_VALUE_MIN + 1, CAM_ZOOM_VALUE_MAX - 1);
+       elm_slider_value_set(slider, camapp->zoom_mode);
+       evas_object_size_hint_align_set(slider, EVAS_HINT_FILL, EVAS_HINT_FILL);
+       evas_object_size_hint_weight_set(slider, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       elm_object_part_content_set(ad->zoom_edje, "slider", slider);
+
+       evas_object_smart_callback_add(slider, "changed", __zoom_slider_cb, (void*)ad);
+
+       return TRUE;;
+}
+
+gboolean update_zoom_edje(struct appdata *ad)
+{
+       DEBUG_TRACE("START");
+
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       CamAppData *camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       cam_retvm_if(ad->zoom_edje == NULL, FALSE, "zom_edje is NULL");
+       cam_retvm_if(slider == NULL, FALSE, "zoom slider is NULL");
+
+       elm_slider_value_set(slider, camapp->zoom_mode);
+
+       return TRUE;
+}
+
+gboolean unload_zoom_edje(struct appdata *ad)
+{
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+
+       DEL_EVAS_OBJECT(ad->zoom_text_min_edje);
+       DEL_EVAS_OBJECT(ad->zoom_text_max_edje);
+       DEL_EVAS_OBJECT(ad->zoom_edje);
+       REMOVE_TIMER(zoom_timer);
+
+       return TRUE;
+}
+
+gboolean zoom_in(struct appdata *ad, gboolean is_zoom_in)
+{
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       int zoom_value = 0;
+
+       REMOVE_TIMER(zoom_timer);
+
+       __init_zoom_value(ad);
+
+       /* set zoom value */
+       zoom_value = camapp->zoom_mode;
+
+       if (is_zoom_in) {
+               if (zoom_value < CAM_ZOOM_VALUE_MAX - 1)
+                       zoom_value++;
+       } else {
+               if (zoom_value > CAM_ZOOM_VALUE_MIN + 1)
+                       zoom_value--;
+       }
+       DEBUG_TRACE("zoom_value = %d", zoom_value);
+
+       __set_zoom_value(ad, zoom_value);
+
+       if (ad->zoom_edje == NULL)
+               load_zoom_edje(ad);
+       else
+               update_zoom_edje(ad);
+
+       zoom_timer = ecore_timer_add(ZOOM_TIMEOUT, __zoom_hide_timer_cb, ad);
+
+       return TRUE;
+}
+
+#ifdef PREVIEW_PINCH_ENALBE
+gboolean cam_pinch_zoom_in(struct appdata* ad,gboolean is_zoom_in,int zoom_value)
+{
+       CamAppData *camapp = NULL;
+       cam_retvm_if(ad == NULL, FALSE, "appdata is NULL");
+       camapp = ad->camapp_handle;
+       cam_retvm_if(camapp == NULL, FALSE, "camapp_handle is NULL");
+
+       REMOVE_TIMER(zoom_timer);
+
+       if (ad->zoom_edje == NULL) {
+               load_zoom_edje(ad);
+       }
+       cam_retv_if(ad->zoom_edje == NULL, FALSE);
+
+       /* set zoom value */
+       DEBUG_TRACE("zoom_in camapp->zoom_mode = %d",camapp->zoom_mode);
+       if (is_zoom_in) {
+               if (camapp->zoom_mode < CAM_ZOOM_VALUE_MAX - 1) {
+                       camapp->zoom_mode = camapp->zoom_mode + zoom_value;
+               }
+       } else {
+               if (camapp->zoom_mode > CAM_ZOOM_VALUE_MIN + 1) {
+                       camapp->zoom_mode = camapp->zoom_mode - zoom_value;
+               }
+       }
+       DEBUG_TRACE("zoom_in camapp->zoom_mode = %d",camapp->zoom_mode);
+
+/*     __set_gauge_focus(ad);*/
+       /*zoom_timer = ecore_timer_add(ZOOM_TIMEOUT, __zoom_hide_timer_cb, ad);*/
+
+       return TRUE;
+}
+#endif
+//endfile
\ No newline at end of file