Modification of Widget scale animation 79/74179/1 submit/tizen/20160613.055731 submit/tizen/20160615.011444
authorYoungHun Cho <hoon.cho@samsung.com>
Mon, 13 Jun 2016 05:48:56 +0000 (14:48 +0900)
committerYoungHun Cho <hoon.cho@samsung.com>
Mon, 13 Jun 2016 05:50:17 +0000 (14:50 +0900)
Change-Id: I3d5220c785b1851a223625d5431326d28d26df65
Signed-off-by: YoungHun Cho <hoon.cho@samsung.com>
18 files changed:
Build/basedef.mk
Build/build_c.mk [new file with mode: 0644]
Build/build_edc.mk [new file with mode: 0644]
Build/build_po.mk [new file with mode: 0644]
Build/funcs.mk [new file with mode: 0644]
Build/makefile
Build/makefile.mk [new file with mode: 0644]
Build/tooldef.mk
build_def.prop [new file with mode: 0644]
inc/cluster_data.h
inc/cluster_view.h
inc/edc_conf.h
inc/widget_viewer.h
res/edje/cluster_page.edc
res/edje/widget.edc
src/cluster_page.c
src/cluster_view.c
src/widget_viewer.c

index 7cacafc..8812624 100755 (executable)
@@ -2,13 +2,23 @@
 
 C_DEPS +=
 
-SYSROOT := $(SBI_SYSROOT)
+USES_EFL = yes
+USES_USR_INC = yes
 
-ROOTSTRAP_INCS := $(addprefix -I $(SYSROOT)/,$(PLATFORM_INCS_EX))
-EFL_INCS := 
+SYSROOT = $(SBI_SYSROOT)
+
+USR_INCS := $(addprefix -I $(SYSROOT),$(PLATFORM_INCS_EX))
+EFL_INCS = 
+
+ifeq ($(strip $(PLATFORM_LIB_PATHS)),)
+RS_LIB_PATHS := "$(SYSROOT)/usr/lib"
+else
+RS_LIB_PATHS := $(addprefix -L$(SYSROOT),$(PLATFORM_LIB_PATHS))
+endif
 
 RS_LIBRARIES := $(addprefix -l,$(RS_LIBRARIES_EX))
 
-PLATFORM_INCS := $(ROOTSTRAP_INCS) $(EFL_INCS) \
-     -I"$(SDK_PATH)/library" 
+PLATFORM_INCS = $(USR_INCS) $(EFL_INCS) \
+     -I"$(SDK_PATH)/library"
 
+OS_NAME := $(shell $(UNAME))
diff --git a/Build/build_c.mk b/Build/build_c.mk
new file mode 100644 (file)
index 0000000..81940cd
--- /dev/null
@@ -0,0 +1,110 @@
+# C/C++ build script
+
+
+_FUNC_EXT2O = $(patsubst %.$(3),$(1)/%.o,$(2))
+_FUNC_C2O = $(call _FUNC_EXT2O,$(1),$(2),c)
+_FUNC_CPP2O = $(call _FUNC_EXT2O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - .ext
+CONVERT_ESC_EXT_TO_O = $(addprefix $(2)/,$(call CONVERT_4MAKE_TO_OUT,$(patsubst %.$(3),%.o,$(1))))
+
+CONVERT_ESC_C_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),c)
+CONVERT_ESC_CPP_TO_O = $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),cpp)
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - ext title (C/C++)
+#  $(4) - ext (c/cpp)
+#  $(5) - compiler ($(CC)/$(CXX))
+#  $(6) - build opt
+#  $(7) - build opt file
+# output :
+#  $(8) - output files list
+define C_BUILD_PROC_RAW
+$(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4)) : $(call DECODE_4MAKE,$(1)) $(7)
+       @echo '  Building file: $$<'
+       @echo '  Invoking: $(3) Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $(5) -c "$$<" -o "$$@" $(6) @$(7)
+       @echo '  Finished building: $$<'
+$(8) += $(call CONVERT_ESC_EXT_TO_O,$(1),$(2),$(4))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - inc paths
+#  $(4) - inc files
+#  $(5) - Defs
+#  $(6) - UnDefs
+#  $(7) - compiler opt
+#  $(8) - compiler opt file
+#  $(9) - ext title (C/C++)
+#  $(10) - ext (c/cpp)
+#  $(11) - compiler ($(CC)/$(CXX))
+# output :
+#  $(12) - OBJS 
+# return :
+#  none
+define C_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)# 
+_INCS := $(3)# 
+_INC_FILES := $(4)# 
+_DEFS := $(5)# 
+_UNDEFS := $(6)# 
+
+_OPT := $(7)
+_OPT_FILE := $(8)
+
+_EXT_TITLE := $(9)
+_EXT := $(10)
+_COMPILER := $(11)
+
+#_OUTPUT_FILES := $(12)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+_ENC_SRCS := $$(filter %.$$(_EXT),$$(_ENC_SRCS))
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_NORMAL_SRCS := $$(filter-out %*.$$(_EXT),$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.$$(_EXT),$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+_CDEFS := $$(CDEFS)
+_CDEFS += $$(addprefix -D,$$(_DEFS))
+_CDEFS += $$(addprefix -U,$$(_UNDEFS))
+
+_ENC_C_INCS := $$(call ENCODE_4MAKE,$$(_INCS))
+_ENC_C_INCS := $$(addprefix -I,$$(_ENC_C_INCS))
+_ENC_INC_FILES := $$(call ENCODE_4MAKE,$$(_INC_FILES)) 
+_ENC_INC_FILES += $$(addprefix -include,$$(_ENC_INC_FILES))
+
+_C_INCS := $$(call DECODE_4MAKE,$$(_ENC_C_INCS) $$(_ENC_C_INC_FILES))
+
+_DEFS := $$(_CDEFS) $$(_C_INCS) -I"pch" $$(_OPT)
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call C_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_EXT_TITLE),$$(_EXT),$$(_COMPILER),$$(_DEFS),$$(_OPT_FILE),$(12))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+
+endef
diff --git a/Build/build_edc.mk b/Build/build_edc.mk
new file mode 100644 (file)
index 0000000..38e5598
--- /dev/null
@@ -0,0 +1,81 @@
+# EDC build script
+
+
+FUNC_EDC2EDJ = $(patsubst %.edc,$(2)/%.edj,$(1))
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+CONVERT_ESC_EDC_TO_EDJ = $(call CONVERT_4MAKE_TO_OUT,$(call FUNC_EDC2EDJ,$(1),$(2)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - build opt
+# output :
+#  $(4) - output files list
+define EDJ_BUILD_PROC_RAW
+$(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: EDC Resource Compiler'
+       $$(call MAKEDIRS,$$(@D))
+       $$(EDJE_CC) $(3) "$$<" "$$@"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_EDC_TO_EDJ,$(1),$(2))
+endef
+
+
+# parameter :
+#  $(1) - output paths
+#  $(2) - src paths
+#  $(3) - image inc paths
+#  $(4) - sound inc paths
+#  $(5) - font inc paths
+# output :
+#  $(6) - OBJS 
+# return :
+#  none
+define EDJ_PROC_RAW
+
+_OUTPUT_DIR := $$(strip $(1))#
+_SRCS := $(2)# 
+_IMAGE_DIRS := $(3)# 
+_SOUND_DIRS := $(4)# 
+_FONT_DIRS := $(5)# 
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.edc,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.edc,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+_COMPILER_FLAGS := -id "$$(SDK_TOOLPATH)/enventor/share/enventor/images"
+_COMPILER_FLAGS += -sd "$$(SDK_TOOLPATH)/enventor/share/enventor/sounds"
+_COMPILER_FLAGS += -fd "$$(SDK_TOOLPATH)/enventor/share/enventor/fonts"
+
+ifneq ($$(strip $$(_IMAGE_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -id ,$$(_IMAGE_DIRS))
+endif
+ifneq ($$(strip $$(_SOUND_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -sd ,$$(_SOUND_DIRS))
+endif
+ifneq ($$(strip $$(_FONT_DIRS)),)
+_COMPILER_FLAGS += $$(addprefix -fd ,$$(_FONT_DIRS))
+endif
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call EDJ_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_COMPILER_FLAGS),$(6))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/Build/build_po.mk b/Build/build_po.mk
new file mode 100644 (file)
index 0000000..23eb0df
--- /dev/null
@@ -0,0 +1,64 @@
+# PO build script
+
+
+_FUNC_PO2MO = $(patsubst %.po,$(2)/res/locale/%/LC_MESSAGES/$(3).mo,$(notdir $(1)))
+
+
+# parameter :
+#  $(1) - C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+CONVERT_ESC_PO_TO_MO = $(call CONVERT_4MAKE_TO_OUT,$(call _FUNC_PO2MO,$(1),$(2),$(3)))
+
+
+# parameter :
+#  $(1) - encoded one C/C++ soruce file
+#  $(2) - output path
+#  $(3) - app name
+# output :
+#  $(4) - output files list
+define MO_BUILD_PROC_RAW
+$(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3)) : $(call DECODE_4MAKE,$(1))
+       @echo '  Building file: $$<'
+       @echo '  Invoking: msgfmt String Formatter'
+       $$(call MAKEDIRS,$$(@D))
+       $$(MSGFMT) -o "$$@" "$$<"
+       @echo '  Finished building: $$<'
+$(4) += $(call CONVERT_ESC_PO_TO_MO,$(1),$(2),$(3))
+endef
+
+# parameter :
+#  $(1) - output dir
+#  $(2) - src paths
+#  $(3) - app name
+# output :
+#  $(4) - OBJS 
+
+define MO_PROC_RAW
+
+_PROJ_ROOT := $(1)
+_SRCS := $(2)
+_APPNAME := $(3)
+
+ifneq ($$(strip $$(_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_SRCS)) 
+
+_NORMAL_SRCS := $$(filter-out %*.po,$$(_ENC_SRCS))
+_WIDLCARD_SRCS := $$(filter %*.po,$$(_ENC_SRCS))
+
+_ALL_SRCS := $$(call DECODE_4MAKE,$$(_NORMAL_SRCS)) \
+             $$(foreach var,$$(_WIDLCARD_SRCS),$$(call FIND_FILES_4MAKE,$$(call DECODE_4MAKE,$$(var))))
+
+ifneq ($$(strip $$(_ALL_SRCS)),)
+
+_ENC_SRCS := $$(call ENCODE_4MAKE,$$(_ALL_SRCS)) 
+
+$$(foreach var,$$(_ENC_SRCS),$$(eval $$(call MO_BUILD_PROC_RAW,$$(var),$$(_OUTPUT_DIR),$$(_APPNAME),$(4))))
+
+endif  # (_(strip _(_ALL_SRCS)),)
+
+endif  # (_(strip _(_SRCS)),)
+
+endef
diff --git a/Build/funcs.mk b/Build/funcs.mk
new file mode 100644 (file)
index 0000000..8297d18
--- /dev/null
@@ -0,0 +1,50 @@
+
+BSLASH := \\#
+NULL_CHAR := #
+SPACE := \ #
+COLON := :#
+DOTDOT := ..#
+SPACE_ESC := &sp;#
+COLON_ESC := &co;#
+SPACE_OUT := ~sp~#
+COLON_OUT := ~co~#
+DOTDOT_OUT := ~dtdt~#
+
+BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
+
+REMOVE_TAIL = $(patsubst %/,%,$(1))
+
+#LOWER_CASE = $(shell echo translit($(1),[A-Z],[a-z])|$(M4))
+LOWER_CASE = $(shell echo $(1)|$(TR) [A-Z] [a-z])
+
+#ifneq ($(findstring Windows,$(OS)),)
+# ...
+#endif
+
+FIND_FILES = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+FIND_FILES_ESC = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///' -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_4MAKE = $(shell $(FIND) $(1)/$(2) | $(SED) 's/^$(subst /,$(BSLASH)/,$(1))$(BSLASH)///')
+
+FIND_FILES_ABS = $(shell $(FIND) $(1))
+FIND_FILES_ABS_4MAKE = $(shell $(FIND) $(1) -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+FIND_FILES_ABS_ESC = $(shell $(FIND) $(1) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+
+FIND_FILES_4MAKE = $(shell $(FIND) $(1) | $(SED) 's/ /\\\ /g')
+
+#ENCODE_ESC = $(shell echo $(1) | $(SED) -e 's/:/$(BSLASH)&co;/g' -e 's/$(BSLASH) /$(BSLASH)&sp;/g')
+#DECODE_ESC = $(shell echo $(1) | $(SED) -e 's/$(BSLASH)&co;/:/g' -e 's/$(BSLASH)&sp;/$(BSLASH) / g')
+ENCODE_ESC = $(subst $(SPACE),$(SPACE_ESC),$(subst $(COLON),$(COLON_ESC),$(1)))
+DECODE_ESC = $(subst $(COLON_ESC),$(COLON),$(subst $(SPACE_ESC),$(SPACE),$(1)))
+ENCODE_4MAKE = $(subst $(SPACE),$(SPACE_ESC),$(1))
+DECODE_4MAKE = $(subst $(SPACE_ESC),$(SPACE),$(1))
+
+CONVERT_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE),$(SPACE_OUT),$(1))))
+CONVERT_ESC_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON_ESC),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+CONVERT_4MAKE_TO_OUT = $(subst $(DOTDOT),$(DOTDOT_OUT),$(subst $(COLON),$(COLON_OUT),$(subst $(SPACE_ESC),$(SPACE_OUT),$(1))))
+
+PROC_NO_EXIST = $(if $(wildcard $(1)),,$(call $(2),$(1)))
+define MAKEDIRS0
+       @echo '  Building directory: $(1)'
+       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(1)) 
+endef
+MAKEDIRS = $(call PROC_NO_EXIST,$(1),MAKEDIRS0)
index 4e2d6c5..9348c50 100755 (executable)
-BUILD_SCRIPT_VERSION := 1.0.7
+# 
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root> 
+#
+BUILD_SCRIPT_VERSION := 1.1.0
 
-all : app_build
-
-clean : app_clean
-
-version : make_version
-
-
-BSLASH := \\#
-BSLASH2SLASH = $(subst $(BSLASH),/,$(1))
-REMOVE_TAIL = $(patsubst %/,%,$(1))
-
-PROJ_ROOT := $(call BSLASH2SLASH,$(PROJPATH))
-
--include $(PROJ_ROOT)/project_def.prop
--include basedef.mk
--include tooldef.mk
--include flags.mk
--include prepost.mk
-
-APPTYPE := $(type)
-
-OBJ_OUTPUT := $(call BSLASH2SLASH,$(OUTPUT_DIR)/objs)
-
-OS_NAME = $(shell $(UNAME))
-
-#LOWER_APPNAME := $(shell echo translit($(APPNAME),[A-Z],[a-z])|$(M4))
-LOWER_APPNAME := $(shell echo $(APPNAME)|$(TR) [A-Z] [a-z])
-
-ifeq ($(strip $(APPTYPE)),app)
-APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
-endif
-ifeq ($(strip $(APPTYPE)),staticLib)
-APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
-endif
-ifeq ($(strip $(APPTYPE)),sharedLib)
-APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
-endif
-
-ifneq ($(strip $(PLATFORM_INCS)),)
-PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
-endif
-
-FIND_FILES = $(shell $(FIND) $(PROJ_ROOT)/$(dir $(1)) -type f -name $(notdir $(1)) -printf '$(dir $(1))%P ')
-
-NORMAL_SRCS := $(filter-out %*.c %*.cpp,$(USER_SRCS))
-WIDLCARD_SRCS := $(filter %*.c %*.cpp,$(USER_SRCS))
-ALL_SRCS := $(NORMAL_SRCS) $(foreach var,$(WIDLCARD_SRCS),$(call FIND_FILES,$(var)))
-
-C_SRCS := $(filter %.c,$(ALL_SRCS))
-CPP_SRCS := $(filter %.cpp,$(ALL_SRCS))
-
-USER_EDCS := $(subst $(BSLASH),/,$(USER_EDCS))
-NORMAL_EDCS := $(filter-out %*.edc,$(USER_EDCS))
-WIDLCARD_EDCS := $(filter %*.edc,$(USER_EDCS))
-EDCS := $(NORMAL_EDCS) $(foreach var,$(WIDLCARD_EDCS),$(call FIND_FILES,$(var)))
-
-NORMAL_POS := $(filter-out %*.po,$(USER_POS))
-WIDLCARD_POS := $(filter %*.po,$(USER_POS))
-POS := $(NORMAL_POS) $(foreach var,$(WIDLCARD_POS),$(call FIND_FILES,$(var)))
-
-LIBPATHS := $(addprefix -L$(PROJ_ROOT)/,$(USER_LIB_DIRS)) \
-                       $(addprefix -L,$(USER_LIB_DIRS_ABS))
-LIBS += $(addprefix -l,$(USER_LIBS))
-UOBJS := $(addprefix $(PROJ_ROOT)/,$(USER_OBJS)) \
-                $(USER_OBJS_ABS)
-
-M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
-
-FUNC_C2O = $(patsubst %.c,$(OBJ_OUTPUT)/%.o,$(1))
-FUNC_CPP2O = $(patsubst %.cpp,$(OBJ_OUTPUT)/%.o,$(1))
-FUNC_EDC2EDJ = $(patsubst %.edc,$(OUTPUT_DIR)/%.edj,$(1))
-FUNC_PO2MO = $(patsubst %.po,$(OUTPUT_DIR)/res/locale/%/LC_MESSAGES/$(LOWER_APPNAME).mo,$(notdir $(1)))
-
-
-C_OBJS := $(call FUNC_C2O,$(C_SRCS)) 
-CPP_OBJS := $(call FUNC_CPP2O,$(CPP_SRCS)) 
-OBJS := $(C_OBJS) $(CPP_OBJS)
-EDJ_FILES := $(call FUNC_EDC2EDJ,$(EDCS))
-MO_FILES := $(call FUNC_PO2MO,$(POS))
-DEPS := $(OBJS:.o=.d)
-
-
-ifneq ($(strip $(DEPS)),)
--include $(DEPS)
-endif
-
-ifeq ($(strip $(APPTYPE)),app)
-$(APPFILE) : $(OBJS) $(UOBJS)
-       @echo '  Building target: $@'
-       @echo '  Invoking: C/C++ Linker'
-       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
-       $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_PATH)/.exportMap" -L"$(SBI_SYSROOT)/usr/lib" $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration
-       @echo '  Finished building target: $@'
-endif
-ifeq ($(strip $(APPTYPE)),staticLib)
-$(APPFILE) : $(OBJS) $(UOBJS)
-       @echo '  Building target: $@'
-       @echo '  Invoking: Archive utility'
-       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
-       $(AR) -r "$(APPFILE)" $(OBJS) $(UOBJS) $(AR_FLAGS)
-       @echo '  Finished building target: $@'
-endif
-ifeq ($(strip $(APPTYPE)),sharedLib)
-$(APPFILE) : $(OBJS) $(UOBJS)
-       @echo '  Building target: $@'
-       @echo '  Invoking: C/C++ Linker'
-       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
-       $(CXX) -o "$(APPFILE)" $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" -L"$(SYSROOT)/usr/lib" $(RS_LIBRARIES)
-       @echo '  Finished building target: $@'
-endif
-
-
-ifneq ($(strip $(C_SRCS)),)
-CDEFS += $(addprefix -D,$(USER_DEFS))
-CDEFS += $(addprefix -U,$(USER_UNDEFS))
+.PHONY : app_version app_build app_clean build_version
 
-INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_INC_DIRS)) \
-               $(addprefix -I,$(USER_INC_DIRS_ABS)) \
-               $(addprefix -include$(PROJ_ROOT)/,$(USER_INC_FILES)) \
-               $(addprefix -include,$(USER_INC_FILES_ABS))
 
-$(C_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.c $(PLATFORM_INCS_FILE)  
-       @echo '  Building file: $<'
-       @echo '  Invoking: C Compiler'
-       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
-ifeq ($(strip $(APPTYPE)),sharedLib)
-       $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
-else
-       $(CC) -c $< -o $@ $(CDEFS) $(INCS) -I"pch" $(COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
-endif
-       @echo '  Finished building: $<'
-endif
-
-ifneq ($(strip $(CPP_SRCS)),)
-CPPDEFS += $(addprefix -D,$(USER_CPP_DEFS))
-CPPDEFS += $(addprefix -U,$(USER_CPP_UNDEFS))
-
-CPP_INCS := $(addprefix -I$(PROJ_ROOT)/,$(USER_CPP_INC_DIRS)) \
-               $(addprefix -I,$(USER_CPP_INC_DIRS_ABS)) \
-               $(addprefix -include$(PROJ_ROOT)/,$(USER_CPP_INC_FILES)) \
-               $(addprefix -include,$(USER_CPP_INC_FILES_ABS))
-               
-$(CPP_OBJS) : $(OBJ_OUTPUT)/%.o : $(PROJ_ROOT)/%.cpp $(PLATFORM_INCS_FILE)  
-       @echo '  Building file: $<'
-       @echo '  Invoking: C++ Compiler'
-       @$(MKDIR) $(MKDIR_OP) $(subst $(BSLASH),/,$(@D))
-ifeq ($(strip $(APPTYPE)),sharedLib)
-       $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIC --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
-else
-       $(CXX) -c $< -o $@ $(CPPDEFS) $(CPP_INCS) -I"pch" $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) -fPIE --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT) @$(PLATFORM_INCS_FILE)
-endif
-       @echo '  Finished building: $<'
-endif
-
-
-$(OBJ_OUTPUT) :
-       @echo '  Building directory: $@'
-       @$(MKDIR) $(MKDIR_OP) $(OBJ_OUTPUT)
-
-preproc : $(OBJ_OUTPUT)
-ifneq ($(strip $(PREBUILD_COMMAND)),)
-ifneq ($(strip $(PREBUILD_DESC)),)
-       @echo $(PREBUILD_DESC)
-endif  
-       @echo $(shell $(PREBUILD_COMMAND))
-endif  
-
-
-postproc :
-ifneq ($(strip $(POSTBUILD_COMMAND)),)
-ifneq ($(strip $(POSTBUILD_DESC)),)
-       @echo $(POSTBUILD_DESC)
-endif  
-       @echo $(shell $(POSTBUILD_COMMAND))
-endif  
-
-ifneq ($(strip $(PLATFORM_INCS)),)
-$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
-       @echo '  Building inc file: $@'
-ifneq ($(findstring Linux,$(OS_NAME)),)
-       @echo $(PLATFORM_INCS) > $@
-else
-ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
-       $(file > $@,$(PLATFORM_INCS))
-else
-       @echo $(PLATFORM_INCS) > $@
-endif   
-endif
-endif
-
-ALL_EDJ_FILES :=
-
-define EDJ_PROC
-ALL_EDCS := $$(subst $(BSLASH),/,$$($(2)))
-NORMAL_EDCS := $$(filter-out %*.edc,$$(ALL_EDCS))
-WIDLCARD_EDCS := $$(filter %*.edc,$$(ALL_EDCS))
-EDCS := $$(NORMAL_EDCS) $$(foreach var_edc,$$(WIDLCARD_EDCS),$$(call FIND_FILES,$$(var_edc)))
-
-ifneq ($$(strip $$(EDCS)),)
-EDJ_FILES := $$(call FUNC_EDC2EDJ,$$(EDCS))
-
-ALL_EDJ_FILES += $$(EDJ_FILES)
-
-EDC_$(1)_COMPILER_FLAGS := -id "$$(SDK_TOOLPATH)/enventor/share/enventor/images"
-EDC_$(1)_COMPILER_FLAGS += -sd "$$(SDK_TOOLPATH)/enventor/share/enventor/sounds"
-EDC_$(1)_COMPILER_FLAGS += -fd "$$(SDK_TOOLPATH)/enventor/share/enventor/fonts"
+all : app_build
 
-ifneq ($$(strip $(3)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id $$(PROJ_PATH)/,$$($(3)))
-endif
-ifneq ($$(strip $(4)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -id ,$$($(4)))
-endif
-ifneq ($$(strip $(5)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd $$(PROJ_PATH)/,$$($(5)))
-endif
-ifneq ($$(strip $(6)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -sd ,$$($(6)))
-endif
-ifneq ($$(strip $(7)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd $$(PROJ_PATH)/,$$($(7)))
-endif
-ifneq ($$(strip $(8)),)
-EDC_$(1)_COMPILER_FLAGS += $$(addprefix -fd ,$$($(8)))
-endif
+clean : app_clean
 
-$$(EDJ_FILES) : $$(OUTPUT_DIR)/%.edj : $$(PROJ_ROOT)/%.edc 
-       @echo '  Building file: $$<'
-       @echo '  Invoking: EDC Resource Compiler'
-       @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
-       $$(EDJE_CC) $$(EDC_$(1)_COMPILER_FLAGS) $$(CDEFS) "$$<" "$$@"
-       @echo '  Finished building: $$<'
-endif
-endef
+version : build_version
 
-# Global EDCs
-ifneq ($(strip $(USER_EDCS)),)
-$(eval $(call EDJ_PROC,,USER_EDCS,USER_EDCS_IMAGE_DIRS,USER_EDCS_IMAGE_DIRS_ABS,USER_EDCS_SOUND_DIRS,USER_EDCS_SOUND_DIRS_ABS,USER_EDCS_FONT_DIRS,USER_EDCS_FONT_DIRS_ABS))
-endif
+#PROJ_ROOT = .
+BUILD_ROOT := $(PROJ_PATH)/Build#
 
-# Individual EDCs
-ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
-$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC,$(var),USER_EXT_$(var)_EDCS,USER_EXT_$(var)_EDCS_IMAGE_DIRS,USER_EXT_$(var)_EDCS_IMAGE_DIRS_ABS,USER_EXT_$(var)_EDCS_SOUND_DIRS,USER_EXT_$(var)_EDCS_SOUND_DIRS_ABS,USER_EXT_$(var)_EDCS_FONT_DIRS,USER_EXT_$(var)_EDCS_FONT_DIRS_ABS)))
+ifeq ($(MAKE_NAME),mingw32-make)
+ifneq ($(SHELL),)
+OPTIONS += --eval="SHELL=$(SHELL)"
 endif
-
-
-ifneq ($(strip $(POS)),)
-define MO_RULE
-$(call FUNC_PO2MO,$(1)) : $(PROJ_ROOT)/$(1)
-       @echo '  Building file: $$<'
-       @echo '  Invoking: msgfmt String Formatter'
-       @$$(MKDIR) $$(MKDIR_OP) $$(subst $$(BSLASH),/,$$(@D))
-       $$(MSGFMT) -o $$@ $$<
-       @echo '  Finished building: $$<'
-endef
-
-$(foreach var,$(POS),$(eval $(call MO_RULE,$(var))))
 endif
 
-
-secondary-outputs : $(ALL_EDJ_FILES) $(MO_FILES)
-
--include appendix.mk
-
-
-app_build : preproc $(APPFILE) secondary-outputs postproc
+app_build :
+       @echo $(MAKE) -f "$(BUILD_ROOT)/makefile.mk"
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS)
 
 app_clean :
-       rm -f "$(APPFILE)"
-       rm -rf "$(OUTPUT_DIR)"
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) clean
 
-make_version :
-       @echo $(BUILD_SCRIPT_VERSION)
+build_version :
+       @echo makefile : $(BUILD_SCRIPT_VERSION)
+       @$(MAKE) -f "$(BUILD_ROOT)/makefile.mk" -C "$(PROJ_PATH)" $(OPTIONS) version
diff --git a/Build/makefile.mk b/Build/makefile.mk
new file mode 100644 (file)
index 0000000..b07df26
--- /dev/null
@@ -0,0 +1,191 @@
+# 
+# Usege : make -f <proj_root>/Build/makefile -C <proj_root> 
+#
+BUILD_SCRIPT_VERSION := 1.2.0
+
+.PHONY : app_version app_clean build_version
+
+
+all : app_build
+
+clean : app_clean
+
+version : build_version
+
+
+#PROJ_ROOT := $(call BSLASH2SLASH,$(PROJPATH))
+PROJ_ROOT := .
+BUILD_ROOT := $(PROJ_ROOT)/Build
+
+include $(PROJ_ROOT)/project_def.prop
+-include $(PROJ_ROOT)/build_def.prop
+
+include $(BUILD_ROOT)/funcs.mk
+
+-include $(BUILD_ROOT)/basedef.mk
+-include $(BUILD_ROOT)/tooldef.mk
+-include $(BUILD_ROOT)/flags.mk
+
+
+APPTYPE := $(type)
+
+OUTPUT_DIR := $(PROJ_ROOT)/$(BUILD_CONFIG)
+OBJ_OUTPUT := $(OUTPUT_DIR)/objs
+
+LOWER_APPNAME := $(call LOWER_CASE,$(APPNAME))
+APPID2 := $(subst $(basename $(APPID)).,,$(APPID))
+
+ifeq ($(strip $(APPTYPE)),app)
+APPFILE := $(OUTPUT_DIR)/$(LOWER_APPNAME)
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).a
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+APPFILE := $(OUTPUT_DIR)/lib$(LOWER_APPNAME).so
+endif
+
+ifneq ($(strip $(PLATFORM_INCS)),)
+PLATFORM_INCS_FILE := $(OBJ_OUTPUT)/platform_incs_file.inc
+endif
+
+include $(BUILD_ROOT)/build_c.mk
+
+
+ifeq ($(strip $(APPTYPE)),app)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+EXT_OP := -fPIE
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+EXT_OP := -fPIC
+endif
+
+C_OPT := $(C_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT)
+CPP_OPT := $(CPP_COMPILE_FLAGS) $(TC_COMPILER_MISC) $(RS_COMPILER_MISC) $(EXT_OP) --sysroot="$(SYSROOT)" -Werror-implicit-function-declaration $(M_OPT)
+C_OPT_FILE := $(PLATFORM_INCS_FILE)
+
+OBJS := # 
+
+# Global C/C++
+ifeq ($(strip $(USER_ROOT)),)
+USER_ROOT := $(PROJ_ROOT)
+endif
+$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_INC_FILES),$(USER_DEFS),$(USER_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS))
+$(foreach ext,cpp cxx cc c++ C,$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_SRCS),$(USER_INC_DIRS),$(USER_CPP_INC_FILES),$(USER_CPP_DEFS),$(USER_CPP_UNDEFS),$(CPP_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS)))
+
+# Individual C/C++
+ifneq ($(strip $(USER_EXT_C_KEYS)),)
+$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_INC_FILES),$(USER_EXT_$(var)_DEFS),$(USER_EXT_$(var)_UNDEFS),$(C_OPT),$(C_OPT_FILE),C,c,$(CC),OBJS)))
+$(foreach ext,cpp cxx cc c++ C,$(foreach var,$(USER_EXT_C_KEYS),$(eval $(call C_PROC_RAW,$(OBJ_OUTPUT),$(USER_EXT_$(var)_SRCS),$(USER_EXT_$(var)_INC_DIRS),$(USER_EXT_$(var)_CPP_INC_FILES),$(USER_EXT_$(var)_CPP_DEFS),$(USER_EXT_$(var)_CPP_UNDEFS),$(C_OPT),$(C_OPT_FILE),C++,$(ext),$(CXX),OBJS))))
+endif
+
+
+ifneq ($(strip $(USER_LIB_DIRS)),)
+_ENC_USER_LIB_DIRS := $(call ENCODE_4MAKE,$(USER_LIB_DIRS))
+_ENC_USER_LIB_DIRS := $(addprefix -L,$(call $(_ENC_USER_LIB_DIRS))
+LIBPATHS := $(call DECODE_4MAKE,$(_ENC_USER_LIB_DIRS))
+endif
+
+LIBS += $(addprefix -l,$(USER_LIBS))
+
+UOBJS += $(USER_OBJS)
+
+M_OPT = -MMD -MP -MF"$(@:%.o=%.d)"
+
+DEPS := $(OBJS:.o=.d)
+
+ifneq ($(strip $(DEPS)),)
+-include $(PROJ_ROOT)/Build/$(DEPS)
+endif
+
+
+ifeq ($(strip $(APPTYPE)),app)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -pie -lpthread -Xlinker -rpath="/home/developer/sdk_tools/lib" --sysroot="$(SYSROOT)" -Xlinker --version-script="$(PROJ_ROOT)/.exportMap" $(RS_LIB_PATHS) $(RS_LIBRARIES) -Xlinker -rpath="/opt/usr/apps/$(APPID)/lib" -Werror-implicit-function-declaration
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),staticLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: Archive utility'
+       $(call MAKEDIRS,$(@D))
+       $(AR) -r $(APPFILE) $(OBJS) $(UOBJS) $(AR_FLAGS)
+       @echo '  Finished building target: $@'
+endif
+ifeq ($(strip $(APPTYPE)),sharedLib)
+$(APPFILE) : $(OBJS) $(UOBJS)
+       @echo '  Building target: $@'
+       @echo '  Invoking: C/C++ Linker'
+       $(call MAKEDIRS,$(@D))
+       $(CXX) -o $(APPFILE) $(OBJS) $(UOBJS) $(LIBPATHS) -Xlinker --as-needed $(LIBS) $(LINK_FLAGS) $(TC_LINKER_MISC) $(RS_LINKER_MISC) -shared -lpthread --sysroot="$(SYSROOT)" $(RS_LIB_PATHS) $(RS_LIBRARIES)
+       @echo '  Finished building target: $@'
+endif
+
+
+$(OBJ_OUTPUT) :
+       $(call MAKEDIRS,$@)
+
+$(OUTPUT_DIR) :
+       $(call MAKEDIRS,$@)
+
+  
+ifneq ($(strip $(PLATFORM_INCS)),)
+$(PLATFORM_INCS_FILE) : $(OBJ_OUTPUT)
+       @echo '  Building inc file: $@'
+ifneq ($(findstring Windows,$(OS)),)
+ifneq ($(findstring 3.82,$(MAKE_VERSION)),)
+       $(file > $@,$(PLATFORM_INCS))
+else
+       @echo $(PLATFORM_INCS) > $@
+endif    
+else
+       @echo $(PLATFORM_INCS) > $@
+endif
+endif
+
+
+include $(BUILD_ROOT)/build_edc.mk
+EDJ_FILES :=
+
+# Global EDCs
+ifneq ($(strip $(USER_EDCS)),)
+$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EDCS),$(USER_EDCS_IMAGE_DIRS),$(USER_EDCS_SOUND_DIRS),$(USER_EDCS_FONT_DIRS),EDJ_FILES))
+endif
+
+# Individual EDCs
+ifneq ($(strip $(USER_EXT_EDC_KEYS)),)
+$(foreach var,$(USER_EXT_EDC_KEYS),$(eval $(call EDJ_PROC_RAW,$(OUTPUT_DIR),$(USER_EXT_$(var)_EDCS),$(USER_EXT_$(var)_EDCS_IMAGE_DIRS),$(USER_EXT_$(var)_EDCS_SOUND_DIRS),$(USER_EXT_$(var)_EDCS_FONT_DIRS),EDJ_FILES)))
+endif
+
+
+include $(BUILD_ROOT)/build_po.mk
+
+MO_FILES :=
+
+# Global POs
+ifneq ($(strip $(USER_POS)),)
+$(eval $(call MO_PROC_RAW,$(OUTPUT_DIR),$(USER_POS),$(APPID2),MO_FILES))
+endif
+
+
+secondary-outputs : $(EDJ_FILES) $(MO_FILES)
+
+-include appendix.mk
+
+app_build : $(OUTPUT_DIR) $(APPFILE) secondary-outputs
+       @echo ========= done =========
+
+
+app_clean :
+       rm -f $(APPFILE)
+       rm -rf $(OUTPUT_DIR)
+
+build_version :
+       @echo makefile.mk : $(BUILD_SCRIPT_VERSION)
index 4244fb3..9df2a39 100755 (executable)
@@ -4,10 +4,19 @@ ifeq ($(strip $(BUILD_CONFIG)),)
 BUILD_CONFIG = Debug
 endif
 
+ifneq ($(strip $(PROJROOT)),)
+PROJPATH := $(PROJROOT)
+endif
+
 ifeq ($(strip $(OUTPUT_DIR)),)
 OUTPUT_DIR := $(PROJPATH)/$(BUILD_CONFIG)
 endif
 
+ifneq ($(strip $(SHELL_BIN)),)
+SHELL = $(SHELL_BIN)
+else
+SHELL = sh
+endif
 
 ifneq ($(strip $(MKDIR_BIN)),)
 MKDIR = $(MKDIR_BIN)
@@ -41,6 +50,12 @@ else
 FIND = find
 endif
 
+ifneq ($(strip $(SED_BIN)),)
+SED = $(SED_BIN)
+else
+SED = sed
+endif
+
 ifneq ($(strip $(GREP_BIN)),)
 GREP = $(GREP_BIN)
 else
diff --git a/build_def.prop b/build_def.prop
new file mode 100644 (file)
index 0000000..6bb5e2f
--- /dev/null
@@ -0,0 +1,6 @@
+
+# Add pre/post build process
+PREBUILD_DESC = 
+PREBUILD_COMMAND = 
+POSTBUILD_DESC = 
+POSTBUILD_COMMAND = 
index edf13f3..4bc0573 100755 (executable)
@@ -32,6 +32,7 @@ typedef struct {
        double period;
        int allow_duplicate;
        Evas_Object *widget_layout;
+       Evas_Object *widget_content;
 } widget_data_t;
 
 void cluster_data_init(void);
index 0f2e57c..df518e1 100755 (executable)
@@ -20,6 +20,7 @@
 #include <Elementary.h>
 
 #include "cluster_data.h"
+#include "cluster_page.h"
 #include "view.h"
 
 Evas_Object *cluster_view_create(Evas_Object *parent);
@@ -38,5 +39,6 @@ view_state_t cluster_view_get_state(void);
 bool cluster_view_set_state(view_state_t state);
 void cluster_view_delete_widget(widget_data_t *item);
 bool cluster_view_add_widget(widget_data_t *item, bool scroll);
+void cluster_view_edit_on_done(cluster_page_t *page);
 
 #endif /* __CLUSTER_VIEW_H__ */
index fa00ea9..f6b75cc 100755 (executable)
 #define SIGNAL_SET_BLACK_TEXT "set_black_text"
 #define SIGNAL_EDIT_MODE_ON_ANI "edit_on_ani"
 #define SIGNAL_EDIT_MODE_ON "edit_on"
+#define SIGNAL_EDIT_MODE_ON_DONE "edit_on_done"
 #define SIGNAL_EDIT_MODE_OFF_ANI "edit_off_ani"
 #define SIGNAL_EDIT_MODE_OFF "edit_off"
+#define SIGNAL_EDIT_MODE_OFF_DONE "edit_off_done"
 #define SIGNAL_CHOOSER_MODE_ON "chooser_on"
 #define SIGNAL_CHOOSER_MODE_OFF "chooser_off"
 #define SIGNAL_CHOOSER_MODE_ON_FOLDER "chooser_on_folder"
 
 #define GROUP_WIDGET_LY "widget_ly"
 #define WIDGET_CONTENT "widget_content"
+#define WIDGET_THUMBNAIL "widget_thumbnail"
 #define WIDGET_DELETE_BUTTON "widget_delete_button"
 #define SIGNAL_DELETE_BUTTON_SHOW_ANI "delete_button_show_ani"
 #define SIGNAL_DELETE_BUTTON_HIDE_ANI "delete_button_hide_ani"
index d4c11b9..d33ede5 100755 (executable)
@@ -26,7 +26,9 @@
 void widget_viewer_init(Evas_Object *win);
 void widget_viewer_fini(void);
 
-Evas_Object *widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *widget_width, int *widget_height);
-void widget_viewer_send_cancel_click_event(widget_data_t *widget);
+void widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *widget_width, int *widget_height);
+void widget_viewer_send_cancel_click_event(widget_data_t *item);
+void widget_viewer_thumbnail_add(widget_data_t *item);
+void widget_viewer_thumbnail_delete(widget_data_t *item);
 
 #endif /* __WIDGET_VIEWER_H__ */
index fb619fb..cb75008 100755 (executable)
@@ -69,6 +69,11 @@ collections {
                                action: STATE_SET "edit" 0.0;
                                target: CLUSTER_BG;
                                transition: DECELERATE ANIMATION_RESIZE_TIME;
+                               after: "edit_mode_on_done";
+                       }
+                       program {
+                               name: "edit_mode_on_done";
+                               action: SIGNAL_EMIT SIGNAL_EDIT_MODE_ON_DONE SIGNAL_SOURCE;
                        }
                        program {
                                name: "edit_mode_off";
@@ -77,6 +82,11 @@ collections {
                                action: STATE_SET "default" 0.0;
                                target: CLUSTER_BG;
                                transition: DECELERATE ANIMATION_RESIZE_TIME;
+                               after: "edit_mode_off_done";
+                       }
+                       program {
+                               name: "edit_mode_off_done";
+                               action: SIGNAL_EMIT SIGNAL_EDIT_MODE_OFF_DONE SIGNAL_SOURCE;
                        }
                }
        }
index 22add8a..340f2a0 100755 (executable)
@@ -17,6 +17,15 @@ collections {
                                        rel1.relative: 0.0 0.0;
                                }
                        }
+                       part { name: WIDGET_THUMBNAIL;
+                               type: SWALLOW;
+                               mouse_events: 1;
+                               repeat_events: 1;
+                               description {
+                                       state: "default" 0.0;
+                                       rel1.relative: 0.0 0.0;
+                               }
+                       }
                        part { name: SIZE_SETTER;
                                type: SWALLOW;
                                mouse_events: 1;
index dd1482e..14f098a 100755 (executable)
 #include "conf.h"
 #include "edc_conf.h"
 #include "util.h"
+#include "widget_viewer.h"
+#include "cluster_view.h"
+
+static void __cluster_page_set(cluster_page_t *page, widget_data_t *item);
+static void __cluster_page_print_space(cluster_page_t *page);
+static void __cluster_page_get_widget_size(widget_size_type_e type, int *w, int *h);
+
+static void __cluster_page_edit_on_done(void *data, Evas_Object *obj, const char *emission, const char *source);
+static void __cluster_page_edit_off_done(void *data, Evas_Object *obj, const char *emission, const char *source);
 
-void __cluster_page_set(cluster_page_t *page, widget_data_t *item);
-void __cluster_page_print_space(cluster_page_t *page);
-void __cluster_page_get_widget_size(widget_size_type_e type, int *w, int *h);
 
 cluster_page_t *cluster_page_new(Evas_Object* parent)
 {
@@ -50,6 +56,12 @@ cluster_page_t *cluster_page_new(Evas_Object* parent)
        evas_object_show(grid);
        elm_layout_content_set(page_t->page_layout, CLUSTER_BOX, grid);
        page_t->grid = grid;
+
+       elm_object_signal_callback_add(page_t->page_layout, SIGNAL_EDIT_MODE_ON_DONE, SIGNAL_SOURCE,
+                       __cluster_page_edit_on_done, (void *)page_t);
+       elm_object_signal_callback_add(page_t->page_layout, SIGNAL_EDIT_MODE_OFF_DONE, SIGNAL_SOURCE,
+                       __cluster_page_edit_off_done, (void *)page_t);
+
        return page_t;
 }
 
@@ -180,7 +192,7 @@ void cluster_page_get_highlight_xy(cluster_page_t *page, int *x, int *y)
        }
 }
 
-void __cluster_page_set(cluster_page_t *page, widget_data_t *item)
+static void __cluster_page_set(cluster_page_t *page, widget_data_t *item)
 {
        int w, h;
        int i, j;
@@ -294,7 +306,7 @@ bool cluster_page_drop_widget(cluster_page_t *page, widget_data_t *widget)
        return true;
 }
 
-void __cluster_page_print_space(cluster_page_t *page)
+static void __cluster_page_print_space(cluster_page_t *page)
 {
        LOGD("=========================================");
        int i;
@@ -304,7 +316,7 @@ void __cluster_page_print_space(cluster_page_t *page)
        LOGD("=========================================");
 }
 
-void __cluster_page_get_widget_size(widget_size_type_e type, int *w, int *h)
+static void __cluster_page_get_widget_size(widget_size_type_e type, int *w, int *h)
 {
        switch (type) {
        case WIDGET_SIZE_TYPE_4x2:
@@ -321,3 +333,20 @@ void __cluster_page_get_widget_size(widget_size_type_e type, int *w, int *h)
                break;
        }
 }
+
+static void __cluster_page_edit_on_done(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       cluster_page_t *page_t = (cluster_page_t *)data;
+       cluster_view_edit_on_done(page_t);
+}
+
+static void __cluster_page_edit_off_done(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       cluster_page_t *page_t = (cluster_page_t *)data;
+       Eina_List *find_list;
+       widget_data_t *item;
+
+       EINA_LIST_FOREACH(page_t->widget_list, find_list, item) {
+               widget_viewer_thumbnail_delete(item);
+       }
+}
index 4884dec..8296d3b 100755 (executable)
@@ -392,21 +392,28 @@ bool cluster_view_set_state(view_state_t state)
                Eina_List *data_list = cluster_data_get_widget_list();
                Eina_List *find_list = NULL;
 
-               cluster_page_t *page_item = NULL;
-               EINA_LIST_FOREACH(cluster_view_s.page_list, find_list, page_item) {
-                       if (page_item->page_layout) {
-                               elm_object_signal_emit(page_item->page_layout, SIGNAL_EDIT_MODE_ON, SIGNAL_SOURCE);
-                       }
-               }
-
                widget_data_t *item = NULL;
                EINA_LIST_FOREACH(data_list, find_list, item) {
                        if (item->widget_layout) {
                                if (!cluster_view_s.picked_widget || item->widget_layout != cluster_view_s.picked_widget->widget_layout)
+                               {
                                        elm_object_signal_emit(item->widget_layout, SIGNAL_DELETE_BUTTON_SHOW_ANI, SIGNAL_SOURCE);
+                               } else {
+                                       evas_object_event_callback_add(item->widget_content, EVAS_CALLBACK_MOUSE_DOWN, __clsuter_view_widget_down_cb, item);
+                                       evas_object_event_callback_add(item->widget_content, EVAS_CALLBACK_MOUSE_MOVE, __clsuter_view_widget_move_cb, item);
+                                       evas_object_event_callback_add(item->widget_content, EVAS_CALLBACK_MOUSE_UP, __clsuter_view_widget_up_cb, item);
+                               }
+                               widget_viewer_thumbnail_add(item);
                                elm_object_signal_emit(item->widget_layout, SIGNAL_CLUSTER_EDIT_STATE, SIGNAL_SOURCE);
                        }
                }
+
+               cluster_page_t *page_item = NULL;
+               EINA_LIST_FOREACH(cluster_view_s.page_list, find_list, page_item) {
+                       if (page_item->page_layout) {
+                               elm_object_signal_emit(page_item->page_layout, SIGNAL_EDIT_MODE_ON, SIGNAL_SOURCE);
+                       }
+               }
        } else if (state == VIEW_STATE_NORMAL) {
                if (cluster_view_s.view_state == VIEW_STATE_EDIT) {
                        homescreen_efl_btn_show(HOMESCREEN_VIEW_HOME);
@@ -554,6 +561,17 @@ void cluster_view_delete_widget(widget_data_t *item)
        }
 }
 
+void cluster_view_edit_on_done(cluster_page_t *page)
+{
+       if (cluster_view_s.picked_widget) {
+               if (page->page_index == cluster_view_s.picked_widget->page_idx) {
+                       cluster_page_unset(page, cluster_view_s.picked_widget);
+                       cluster_mouse_info.offset_x *= 0.9;
+                       cluster_mouse_info.offset_y *= 0.9;
+               }
+       }
+}
+
 static void __cluster_view_scroll_to_home(void)
 {
        __cluster_view_scroll_to_page(CLUSTER_HOME_PAGE, true);
@@ -591,7 +609,7 @@ static void __cluster_view_add_widget_content(widget_data_t *item)
 {
        int w, h;
        LOGD("Create Widget: pkg[%s], type[%d]", item->pkg_name, item->type);
-       item->widget_layout = widget_viewer_add_widget(cluster_view_s.win, item, &w, &h);
+       widget_viewer_add_widget(cluster_view_s.win, item, &w, &h);
        evas_object_event_callback_add(item->widget_layout, EVAS_CALLBACK_MOUSE_DOWN, __clsuter_view_widget_down_cb, item);
        evas_object_event_callback_add(item->widget_layout, EVAS_CALLBACK_MOUSE_MOVE, __clsuter_view_widget_move_cb, item);
        evas_object_event_callback_add(item->widget_layout, EVAS_CALLBACK_MOUSE_UP, __clsuter_view_widget_up_cb, item);
@@ -1188,10 +1206,10 @@ static Eina_Bool __cluster_view_widget_long_press_time_cb(void *data)
 
        elm_scroller_movement_block_set(cluster_view_s.scroller, ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL);
 
-       __cluster_view_edit_pick_up_widget(data);
-
        widget_viewer_send_cancel_click_event(widget);
 
+       __cluster_view_edit_pick_up_widget(data);
+
        return ECORE_CALLBACK_CANCEL;
 }
 
@@ -1216,15 +1234,10 @@ static void __cluster_view_edit_pick_up_widget(void *data)
 
        cluster_page_t *page = (cluster_page_t *)eina_list_nth(cluster_view_s.page_list, cluster_view_s.picked_widget->page_idx);
 
-       cluster_page_unset(page, cluster_view_s.picked_widget);
-
        if (cluster_view_s.view_state == VIEW_STATE_NORMAL) {
-               evas_object_resize(widget_layout, gw * 0.9, gh * 0.9);
-
-               cluster_mouse_info.offset_x *= 0.9;
-               cluster_mouse_info.offset_y *= 0.9;
-
                cluster_view_set_state(VIEW_STATE_EDIT);
+       } else {
+               cluster_page_unset(page, cluster_view_s.picked_widget);
        }
 
        elm_object_signal_emit(widget_layout, SIGNAL_DELETE_BUTTON_HIDE_ANI, SIGNAL_SOURCE);
@@ -1293,6 +1306,7 @@ static void __cluster_view_edit_drop_widget(void *data)
        cluster_view_s.animation_from_y = cluster_mouse_info.move_y - cluster_mouse_info.offset_y;
 
        cluster_page_t *page = (cluster_page_t *)eina_list_nth(cluster_view_s.page_list, cluster_view_s.current_page);
+       cluster_page_unset(page,  cluster_view_s.picked_widget);
        cluster_page_get_highlight_xy(page, &to_x, &to_y);
        if (to_x == INIT_VALUE || to_y == INIT_VALUE) {
                cluster_page_check_empty_space_pos(page, cluster_view_s.picked_widget, &to_x, &to_y);
@@ -1302,6 +1316,10 @@ static void __cluster_view_edit_drop_widget(void *data)
        cluster_view_s.animation_to_y = to_y;
 
        cluster_view_s.edit_animator = ecore_animator_timeline_add(HOME_ANIMATION_TIME, __cluster_view_edit_move_anim, NULL);
+
+       evas_object_event_callback_del(cluster_view_s.picked_widget->widget_content, EVAS_CALLBACK_MOUSE_DOWN, __clsuter_view_widget_down_cb);
+       evas_object_event_callback_del(cluster_view_s.picked_widget->widget_content, EVAS_CALLBACK_MOUSE_MOVE, __clsuter_view_widget_move_cb);
+       evas_object_event_callback_del(cluster_view_s.picked_widget->widget_content, EVAS_CALLBACK_MOUSE_UP, __clsuter_view_widget_up_cb);
 }
 static Eina_Bool __cluster_view_edit_move_anim(void *data, double pos)
 {
index bec1d62..018f62d 100755 (executable)
@@ -42,7 +42,7 @@ void widget_viewer_fini(void)
        widget_viewer_evas_fini();
 }
 
-Evas_Object *widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *widget_width, int *widget_height)
+void widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item, int *widget_width, int *widget_height)
 {
        Evas_Object *widget_layout;
 
@@ -60,11 +60,14 @@ Evas_Object *widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item,
        elm_object_part_content_set(widget_layout, SIZE_SETTER, rect);
 
 #ifndef _TEST_
+       int w, h;
        Evas_Object *widget = widget_viewer_evas_add_widget(widget_layout, item->pkg_name, NULL, item->period);
-       //evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_WIDGET_CREATED, __widget_viewer_widget_create_cb, NULL);
        evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
        evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_color_set(widget, 255, 255, 255, 255);
+
+       //Notify widget_size_type_e to widget application.
+       widget_service_get_size(item->type, &w, &h);
+       evas_object_resize(widget, w, h);
 #else // for TEST
 /*     Evas_Object *widget = evas_object_rectangle_add(evas_object_evas_get(widget_layout));
        evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -85,13 +88,13 @@ Evas_Object *widget_viewer_add_widget(Evas_Object *parent, widget_data_t *item,
        Ecore_Timer *timer = ecore_timer_add(1, __widget_viewer_test_timer_cb, widget);
 #endif
        elm_object_part_content_set(widget_layout, WIDGET_CONTENT, widget);
-
        elm_object_signal_callback_add(widget_layout, SIGNAL_DELETE_BUTTON_CLICKED, SIGNAL_SOURCE, __widget_viewer_delete_btn_clicked_cb, (void *)item);
 
        evas_object_show(widget);
        evas_object_show(widget_layout);
 
-       return widget_layout;
+       item->widget_content = widget;
+       item->widget_layout = widget_layout;
 }
 
 static void __widget_viewer_delete_btn_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
@@ -100,9 +103,48 @@ static void __widget_viewer_delete_btn_clicked_cb(void *data, Evas_Object *obj,
        cluster_data_delete(item);
 }
 
-void widget_viewer_send_cancel_click_event(widget_data_t *widget)
+void widget_viewer_send_cancel_click_event(widget_data_t *item)
 {
        Evas_Object *widget_obj = NULL;
-       widget_obj = elm_object_part_content_get(widget->widget_layout, WIDGET_CONTENT);
+       widget_obj = elm_object_part_content_get(item->widget_layout, WIDGET_CONTENT);
        widget_viewer_evas_cancel_click_event(widget_obj);
 }
+
+void widget_viewer_thumbnail_add(widget_data_t *item)
+{
+       Evas_Object *image = NULL;
+
+       image = evas_object_image_filled_add(evas_object_evas_get(item->widget_layout));
+       if (!image) {
+               LOGE("Could not create image proxy object");
+               return;
+       }
+
+       if (!evas_object_image_source_set(image, item->widget_content)) {
+               evas_object_del(image);
+               LOGE("Could not set proxy image source");
+               return;
+       }
+
+       evas_object_image_source_visible_set(image, EINA_FALSE);
+
+       int gw, gh;
+       evas_object_geometry_get(item->widget_layout, NULL, NULL, &gw, &gh);
+       evas_object_image_fill_set(image, 0, 0, gw, gh);
+       evas_object_show(image);
+
+       elm_object_part_content_set(item->widget_layout, WIDGET_THUMBNAIL, image);
+       elm_object_part_content_unset(item->widget_layout, WIDGET_CONTENT);
+}
+
+void widget_viewer_thumbnail_delete(widget_data_t *item)
+{
+       if (item && item->widget_layout && item->widget_content) {
+               Evas_Object *image = NULL;
+               image = elm_object_part_content_get(item->widget_layout, WIDGET_THUMBNAIL);
+               evas_object_image_source_visible_set(image, EINA_TRUE);
+               elm_object_part_content_unset(item->widget_layout, WIDGET_THUMBNAIL);
+               evas_object_del(image);
+               elm_object_part_content_set(item->widget_layout, WIDGET_CONTENT, item->widget_content);
+       }
+}