TizenRefApp-8271 Implement custom toast popup with animation 64/122164/6
authorOleksander Kostenko <o.kostenko@samsung.com>
Thu, 30 Mar 2017 10:22:17 +0000 (13:22 +0300)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Mon, 3 Apr 2017 08:50:41 +0000 (01:50 -0700)
Change-Id: Ic3e29f2c6848eaa3fc3da7a0f89eaa9a2480f1f1
Signed-off-by: Oleksander Kostenko <o.kostenko@samsung.com>
inc/Resource.h
project_def.prop
res/edje/icons.edc
res/edje/popup.edc [new file with mode: 0644]
src/Common/View/inc/IconTextPopup.h [new file with mode: 0644]
src/Common/View/inc/StandardPopup.h
src/Common/View/src/IconTextPopup.cpp [new file with mode: 0644]
src/Common/View/src/StandardPopup.cpp

index f8d3ded91801aa062be94e7187471b58e072a247..12859ad5eeab25da58a2a4ac256de8d5e1b24918 100644 (file)
@@ -70,5 +70,6 @@
 #define CONV_GENLIST_THEME_EDJ_PATH      EDJ_PATH"/conv_genlist_theme.edj"
 #define INPUT_LAYOUT_EDJ_PATH            EDJ_PATH"/input_layout.edj"
 #define CONV_LIST_BUBBLE_EDJ_PATH        EDJ_PATH"/conv_list_bubble.edj"
+#define POPUP_EDJ_PATH                   EDJ_PATH"/popup.edj"
 
 #endif /* RESOURCE_H_ */
index 2d2ba89b566fcfc8ce1ce480d30dda4247238df3..c1357f88ba5481b816b61a723270e02f96b1cc81 100644 (file)
@@ -9,7 +9,7 @@ type = app
 profile = wearable-3.0
 
 # C/CPP Sources
-USER_SRCS = src/Common/View/src/ListItem.cpp src/Common/MsgEngine/src/dummy/MsgStorageDummy.cpp src/Common/MsgEngine/src/MsgThreadItem.cpp src/Common/View/src/SearchBar.cpp src/Common/View/src/GroupListViewItem.cpp src/Common/MsgEngine/src/dummy/MsgComposerDummy.cpp src/Composer/View/src/ContactListViewItem.cpp src/Common/MsgEngine/src/private/MsgReportPrivate.cpp src/Common/AppControl/src/ContactEditor.cpp src/Common/ContactManager/src/ContactRecord.cpp src/Common/MsgEngine/src/MsgSettings.cpp src/Common/ContactManager/src/ContactVCardGenerator.cpp src/Common/MsgEngine/src/private/MsgConvMediaPrivate.cpp src/Common/MsgEngine/src/MessageSMS.cpp src/Common/MsgEngine/src/dummy/MessageDummy.cpp src/Conversation/Main/Controller/src/ConvFrame.cpp src/Common/View/src/CtxPopup.cpp src/MainApp/main.cpp src/Common/MsgEngine/src/MessageMms.cpp src/Common/MsgEngine/src/private/MsgAddressPrivate.cpp src/Common/MsgEngine/src/MsgTransport.cpp src/Common/View/src/ToastPopup.cpp src/Common/View/src/MoreOption.cpp src/Common/View/src/View.cpp src/Common/MsgEngine/src/dummy/MsgConversationItemDummy.cpp src/Common/Utils/src/PathUtils.cpp src/Common/MsgEngine/src/MsgUtils.cpp src/Common/AppControl/src/VoiceCall.cpp src/Common/MsgEngine/src/private/MsgConversationItemPrivate.cpp src/Common/Utils/src/PhoneNumberUtils.cpp src/Common/MsgEngine/src/private/MessagePrivate.cpp src/Common/View/src/PopupListItem.cpp src/Common/View/src/StandardPopup.cpp src/Common/MsgEngine/src/MsgEngine.cpp src/Common/Utils/src/ThumbnailMaker.cpp src/Common/View/src/MbeRecipientsView.cpp src/Composer/View/src/MsgBodyView.cpp src/MsgThread/Controller/src/ThreadListItem.cpp src/Common/MsgEngine/src/dummy/MsgPageDummy.cpp src/Common/MsgEngine/src/dummy/MessageSMSDummy.cpp src/Common/MsgEngine/src/dummy/MessageMmsDummy.cpp src/Common/View/src/BottomButton.cpp src/Composer/Controller/src/ComposerFrame.cpp src/Common/AppControl/src/AppControlParser.cpp src/Common/MsgEngine/src/private/MessageSMSPrivate.cpp src/Common/AppControl/src/AppControlDefault.cpp src/Common/AppControl/src/AppControlCommand.cpp src/Common/View/src/DefaultLayout.cpp src/Common/View/src/StandardWindow.cpp src/Common/MsgEngine/src/dummy/MsgAddressDummy.cpp src/Conversation/ConvList/View/src/ConvListViewItem.cpp src/Composer/View/src/RecipEntryView.cpp src/Common/Controller/src/FrameController.cpp src/Common/MsgEngine/src/Message.cpp src/Common/MsgEngine/src/private/MsgTransportPrivate.cpp src/Common/View/src/ListView.cpp src/MsgThread/Controller/src/ThreadList.cpp src/Common/AppControl/src/Share.cpp src/MsgThread/Controller/src/MsgThreadFrame.cpp src/Common/MsgEngine/src/MsgStorage.cpp src/Common/MsgEngine/src/private/MsgAttachmentPrivate.cpp src/Common/Utils/src/LoggerImpl.cpp src/Common/View/src/SelectButton.cpp src/Common/View/src/SelectAllListItem.cpp src/Common/AppControl/src/AppControlUtils.cpp src/Common/AppControl/src/AppControlLauncher.cpp src/Common/MsgEngine/src/dummy/MsgTransportDummy.cpp src/Common/AppControl/src/ContactViewer.cpp src/Common/View/src/NaviFrameView.cpp src/Common/Controller/src/NaviFrameController.cpp src/Common/MsgEngine/src/private/MsgThreadItemPrivate.cpp src/Common/Utils/src/TextDecorator.cpp src/Composer/Controller/src/RecipFrame.cpp src/Common/ContactManager/src/ContactVCardParser.cpp src/Common/AppControl/src/FileViewer.cpp src/Common/MsgEngine/src/dummy/MsgUtilsDummy.cpp src/Common/MsgEngine/src/private/MessageMmsPrivate.cpp src/Common/View/src/ViewItem.cpp src/Common/MsgEngine/src/dummy/MsgMediaDummy.cpp src/Common/MsgEngine/src/private/MsgMediaPrivate.cpp src/Common/AppControl/src/AppControlCompose.cpp src/Common/MsgEngine/src/dummy/MsgThreadItemDummy.cpp src/Common/Controller/src/App.cpp src/Common/View/src/Popup.cpp src/Common/View/src/PopupAttachmentListItem.cpp src/Common/View/src/BasePopup.cpp src/Viewer/Controller/src/Viewer.cpp src/Common/View/src/PopupManager.cpp src/Common/MsgEngine/src/private/MsgPagePrivate.cpp src/Common/View/src/NaviFrameItem.cpp src/Common/View/src/PopupList.cpp src/Common/MsgEngine/src/private/MsgComposerPrivate.cpp src/Common/MsgEngine/src/private/MsgStoragePrivate.cpp src/Common/MsgEngine/src/dummy/MsgAttachmentDummy.cpp src/MsgThread/View/src/ThreadListViewItem.cpp src/Common/MsgEngine/src/dummy/MsgReportDummy.cpp src/Common/MsgEngine/src/dummy/MsgSettingsDummy.cpp src/Common/Utils/src/TimeUtils.cpp src/Common/Utils/src/FileUtils.cpp src/MainApp/MainApp.cpp src/Settings/Controller/src/SettingsFrame.cpp src/Common/MsgEngine/src/private/MsgUtilsPrivate.cpp src/Common/Utils/src/MediaUtils.cpp src/Common/MsgEngine/src/dummy/MsgConvMediaDummy.cpp src/Composer/Controller/src/ContactFrame.cpp src/MsgThread/View/src/ThreadComposeListViewItem.cpp src/Common/MsgEngine/src/MsgPage.cpp src/Common/MsgEngine/src/MsgConversationItem.cpp src/Common/View/src/NoContentLayout.cpp src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp src/Common/MsgEngine/src/private/MsgSettingsPrivate.cpp src/Common/ContactManager/src/ContactManager.cpp 
+USER_SRCS = src/Common/View/src/ListItem.cpp src/Conversation/View/src/BubbleImageViewItem.cpp src/Common/MsgEngine/src/dummy/MsgStorageDummy.cpp src/Common/MsgEngine/src/MsgThreadItem.cpp src/Common/View/src/SearchBar.cpp src/Conversation/Controller/src/BubbleVideoEntity.cpp src/Common/MsgEngine/src/dummy/MsgComposerDummy.cpp src/Composer/View/src/ContactListViewItem.cpp src/Common/MsgEngine/src/private/MsgReportPrivate.cpp src/Common/AppControl/src/ContactEditor.cpp src/Common/ContactManager/src/ContactRecord.cpp src/Common/MsgEngine/src/MsgSettings.cpp src/Conversation/View/src/BubbleSubjectViewItem.cpp src/Common/ContactManager/src/ContactVCardGenerator.cpp src/Common/MsgEngine/src/private/MsgConvMediaPrivate.cpp src/Common/MsgEngine/src/MessageSMS.cpp src/Common/MsgEngine/src/dummy/MessageDummy.cpp src/Common/View/src/CtxPopup.cpp src/MainApp/main.cpp src/Conversation/View/src/BubbleIconTextLayoutItem.cpp src/Conversation/View/src/BubbleTextViewItem.cpp src/Common/MsgEngine/src/MessageMms.cpp src/Common/View/src/InputLayout.cpp src/Common/MsgEngine/src/private/MsgAddressPrivate.cpp src/Common/MsgEngine/src/MsgTransport.cpp src/Conversation/Controller/src/ConvFrame.cpp src/Common/View/src/IconTextPopup.cpp src/Common/View/src/ToastPopup.cpp src/Common/View/src/MoreOption.cpp src/Common/View/src/View.cpp src/Conversation/View/src/BubbleItemContainer.cpp src/Common/MsgEngine/src/dummy/MsgConversationItemDummy.cpp src/Common/Utils/src/PathUtils.cpp src/Common/MsgEngine/src/MsgUtils.cpp src/Common/AppControl/src/VoiceCall.cpp src/Common/MsgEngine/src/private/MsgConversationItemPrivate.cpp src/Common/Utils/src/PhoneNumberUtils.cpp src/Common/MsgEngine/src/private/MessagePrivate.cpp src/Common/View/src/PopupListItem.cpp src/Common/View/src/StandardPopup.cpp src/Common/MsgEngine/src/MsgEngine.cpp src/Common/Utils/src/ThumbnailMaker.cpp src/Conversation/View/src/ConvDateLineListItem.cpp src/Common/View/src/MbeRecipientsView.cpp src/Common/View/src/Entry.cpp src/Composer/View/src/MsgBodyView.cpp src/MsgThread/Controller/src/ThreadListItem.cpp src/Common/MsgEngine/src/dummy/MsgPageDummy.cpp src/Common/MsgEngine/src/dummy/MessageSMSDummy.cpp src/Conversation/View/src/ConvListViewItem.cpp src/Common/MsgEngine/src/dummy/MessageMmsDummy.cpp src/Common/View/src/BottomButton.cpp src/Composer/Controller/src/ComposerFrame.cpp src/Conversation/View/src/ConvReplyListItem.cpp src/Common/Utils/src/WorkingDir.cpp src/Conversation/Controller/src/BubbleSubjectEntity.cpp src/Common/AppControl/src/AppControlParser.cpp src/Common/MsgEngine/src/private/MessageSMSPrivate.cpp src/Common/AppControl/src/AppControlDefault.cpp src/Common/AppControl/src/AppControlCommand.cpp src/Common/View/src/DefaultLayout.cpp src/Common/View/src/StandardWindow.cpp src/Common/MsgEngine/src/dummy/MsgAddressDummy.cpp src/Common/Controller/src/FrameController.cpp src/Common/MsgEngine/src/Message.cpp src/Common/MsgEngine/src/private/MsgTransportPrivate.cpp src/Common/View/src/ListView.cpp src/Conversation/Controller/src/ConvList.cpp src/Composer/View/src/RecipFieldView.cpp src/MsgThread/Controller/src/ThreadList.cpp src/Common/AppControl/src/Share.cpp src/MsgThread/Controller/src/MsgThreadFrame.cpp src/Common/MsgEngine/src/MsgStorage.cpp src/Common/Controller/src/InputFrame.cpp src/Common/MsgEngine/src/private/MsgAttachmentPrivate.cpp src/Conversation/View/src/BubbleVoiceViewItem.cpp src/Common/Utils/src/LoggerImpl.cpp src/Common/View/src/SelectButton.cpp src/Conversation/Controller/src/BubbleEntityFactory.cpp src/Common/View/src/SelectAllListItem.cpp src/Common/AppControl/src/AppControlUtils.cpp src/Common/AppControl/src/AppControlLauncher.cpp src/Common/MsgEngine/src/dummy/MsgTransportDummy.cpp src/Common/AppControl/src/ContactViewer.cpp src/Common/View/src/NaviFrameView.cpp src/Conversation/Controller/src/ConvListItem.cpp src/Common/Controller/src/NaviFrameController.cpp src/Common/MsgEngine/src/private/MsgThreadItemPrivate.cpp src/Common/Utils/src/TextDecorator.cpp src/Composer/Controller/src/RecipFrame.cpp src/Common/ContactManager/src/ContactVCardParser.cpp src/Conversation/View/src/ConvTitleListItem.cpp src/Common/AppControl/src/FileViewer.cpp src/Common/MsgEngine/src/dummy/MsgUtilsDummy.cpp src/Common/MsgEngine/src/private/MessageMmsPrivate.cpp src/Common/View/src/ViewItem.cpp src/Common/View/src/LineListViewItem.cpp src/Common/MsgEngine/src/dummy/MsgMediaDummy.cpp src/Common/MsgEngine/src/private/MsgMediaPrivate.cpp src/Conversation/Controller/src/BubbleCalEventEntity.cpp src/Common/AppControl/src/AppControlCompose.cpp src/Common/Recipient/src/Recipient.cpp src/Composer/Controller/src/RecipInputFrame.cpp src/Common/MsgEngine/src/dummy/MsgThreadItemDummy.cpp src/Common/Controller/src/App.cpp src/Common/View/src/Popup.cpp src/Common/View/src/PopupAttachmentListItem.cpp src/Common/View/src/BasePopup.cpp src/Viewer/Controller/src/Viewer.cpp src/Common/View/src/PopupManager.cpp src/Common/MsgEngine/src/private/MsgPagePrivate.cpp src/Common/View/src/NaviFrameItem.cpp src/Common/View/src/PopupList.cpp src/Common/MsgEngine/src/private/MsgComposerPrivate.cpp src/Common/MsgEngine/src/private/MsgStoragePrivate.cpp src/Common/MsgEngine/src/dummy/MsgAttachmentDummy.cpp src/MsgThread/View/src/ThreadListViewItem.cpp src/Common/MsgEngine/src/dummy/MsgReportDummy.cpp src/Common/MsgEngine/src/dummy/MsgSettingsDummy.cpp src/Common/Utils/src/TimeUtils.cpp src/Common/Utils/src/FileUtils.cpp src/MainApp/MainApp.cpp src/Settings/Controller/src/SettingsFrame.cpp src/Common/MsgEngine/src/private/MsgUtilsPrivate.cpp src/Conversation/View/src/BubbleViewItem.cpp src/Common/Utils/src/MediaUtils.cpp src/Common/MsgEngine/src/dummy/MsgConvMediaDummy.cpp src/Composer/Controller/src/ContactFrame.cpp src/MsgThread/View/src/ThreadComposeListViewItem.cpp src/Common/MsgEngine/src/MsgPage.cpp src/Conversation/Controller/src/BubbleContactEntity.cpp src/Common/MsgEngine/src/MsgConversationItem.cpp src/Common/View/src/NoContentLayout.cpp src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp src/Common/MsgEngine/src/private/MsgSettingsPrivate.cpp src/Common/ContactManager/src/ContactManager.cpp 
 
 # EDC Sources
 USER_EDCS =  
@@ -36,7 +36,7 @@ USER_OBJS =
 USER_C_INC_DIRS = 
 USER_INC_FILES = 
 ## C++ Compiler
-USER_CPP_INC_DIRS = src/Conversation/Main/Controller/inc src/Composer/View/inc src/Composer/Controller/inc src/MsgThread/View/inc src/Settings/Controller/inc src/MsgThread/Controller/inc src/Viewer/Controller/inc inc src/Common/Controller/inc src/Common/AppControl/inc src/Common/ContactManager/inc src/Common/MsgEngine/inc src/Common/SystemSettingsManager/inc src/Common/Utils/inc src/Common/View/inc 
+USER_CPP_INC_DIRS = src/Conversation/Controller/inc src/Conversation/View/inc src/Common/Recipient/inc src/Composer/View/inc src/Composer/Controller/inc src/MsgThread/View/inc src/Settings/Controller/inc src/MsgThread/Controller/inc src/Viewer/Controller/inc inc src/Common/Controller/inc src/Conversation/Controller/inc src/Conversation/View/inc src/Common/AppControl/inc src/Common/ContactManager/inc src/Common/MsgEngine/inc src/Common/SystemSettingsManager/inc src/Common/Utils/inc src/Common/View/inc 
 USER_CPP_INC_FILES = 
 
 USER_INC_DIRS = $(USER_C_INC_DIRS) $(USER_CPP_INC_DIRS)
@@ -52,7 +52,7 @@ USER_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts
 # EDC Flags
 USER_EXT_EDC_KEYS = EDC0 
 
-USER_EXT_EDC0_EDCS = res/edje/msg_body.edc res/edje/composer_layout.edc res/edje/recip_entry.edc res/edje/icons.edc res/edje/images.edc res/edje/default_layout.edc res/edje/search_bar.edc res/edje/recip_layout.edc res/edje/thread_compose_list_view_item.edc res/edje/conv_genlist_theme.edc res/edje/thread_genlist_theme.edc 
+USER_EXT_EDC0_EDCS = res/edje/conv_list_bubble.edc res/edje/msg_body.edc res/edje/composer_layout.edc res/edje/recip_entry.edc res/edje/icons.edc res/edje/images.edc res/edje/default_layout.edc res/edje/search_bar.edc res/edje/recip_layout.edc res/edje/input_layout.edc res/edje/popup.edc res/edje/thread_compose_list_view_item.edc res/edje/conv_genlist_theme.edc res/edje/thread_genlist_theme.edc 
 USER_EXT_EDC0_EDCS_IMAGE_DIRS = ${OUTPUT_DIR} edje/images 
 USER_EXT_EDC0_EDCS_SOUND_DIRS = ${OUTPUT_DIR} edje/sounds 
 USER_EXT_EDC0_EDCS_FONT_DIRS = ${OUTPUT_DIR} edje/fonts 
index 7c2dccbe8cd9aad2e65eb07c597b9ade24854918..dd6b3a4da617c5d39d925e3601555e27e87eb881 100755 (executable)
@@ -362,4 +362,110 @@ collections {
          }
       }
    }
+   group { "popup/check_icon";
+      images {
+         image: "check_sequence/check_01.png" COMP;
+         image: "check_sequence/check_02.png" COMP;
+         image: "check_sequence/check_03.png" COMP;
+         image: "check_sequence/check_04.png" COMP;
+         image: "check_sequence/check_05.png" COMP;
+         image: "check_sequence/check_06.png" COMP;
+         image: "check_sequence/check_07.png" COMP;
+         image: "check_sequence/check_08.png" COMP;
+         image: "check_sequence/check_09.png" COMP;
+         image: "check_sequence/check_10.png" COMP;
+         image: "check_sequence/check_11.png" COMP;
+         image: "check_sequence/check_12.png" COMP;
+         image: "check_sequence/check_13.png" COMP;
+         image: "check_sequence/check_14.png" COMP;
+         image: "check_sequence/check_15.png" COMP;
+         image: "check_sequence/check_16.png" COMP;
+         image: "check_sequence/check_17.png" COMP;
+         image: "check_sequence/check_18.png" COMP;
+      }
+      parts {
+         rect { "check.clip"; scale;
+            desc { "default"; visible: 0; }
+            desc { "show"; visible: 1; }
+         }
+         part { name: "check";
+            mouse_events: 0;
+            scale: 1;
+            clip_to: "check.clip";
+            description { state: "default" 0.0;
+               min: 82 82;
+               max: 82 82;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               aspect: 1 1;
+               aspect_preference: BOTH;
+               image.normal: "check_sequence/check_01.png";
+               image.tween: "check_sequence/check_02.png";
+               image.tween: "check_sequence/check_03.png";
+               image.tween: "check_sequence/check_04.png";
+               image.tween: "check_sequence/check_05.png";
+               image.tween: "check_sequence/check_06.png";
+               image.tween: "check_sequence/check_07.png";
+               image.tween: "check_sequence/check_08.png";
+               image.tween: "check_sequence/check_09.png";
+               image.tween: "check_sequence/check_10.png";
+               image.tween: "check_sequence/check_11.png";
+               image.tween: "check_sequence/check_12.png";
+               image.tween: "check_sequence/check_13.png";
+               image.tween: "check_sequence/check_14.png";
+               image.tween: "check_sequence/check_15.png";
+               image.tween: "check_sequence/check_16.png";
+               image.tween: "check_sequence/check_17.png";
+               image.tween: "check_sequence/check_18.png";
+               image.tween: "check_sequence/check_18.png";
+               color: 250 250 250 255;
+            }
+            description { state: "default" 0.1;
+               inherit: "default" 0.0;
+               image.normal: "check_sequence/check_18.png";
+               color: 250 250 250 255;
+            }
+         }
+         programs {
+            program { name: "show_check";
+               signal: "load";
+               script {
+                  set_state(PART:"check.clip", "show", 0.0);
+                  run_program(PROGRAM:"start_check_anim");
+                  run_program(PROGRAM:"fin_check_anim");
+               }
+            }
+            program { name: "start_check_anim";
+               action: STATE_SET "default" 0.0;
+               target: "check";
+               transition: LINEAR 0.3;
+            }
+            program { name: "fin_check_anim";
+               in: ((0.32/19)*18) 0;
+               action: STATE_SET "default" 0.1;
+               target: "check";
+            }
+         }
+      }
+   }
+   group { "popup/failed_icon";
+      images {
+         image: "sent_fail_icon.png" COMP;
+      }
+      parts {
+         part { name: "fail";
+            scale: 1;
+            desc { "default";
+               min: 82 82;
+               max: 82 82;
+               rel1.relative: 0.5 0.5;
+               rel2.relative: 0.5 0.5;
+               aspect: 1 1;
+               aspect_preference: BOTH;
+               image.normal: "sent_fail_icon.png";
+               color: 255 174 0 255;
+            }
+         }
+      }
+   }
 }
\ No newline at end of file
diff --git a/res/edje/popup.edc b/res/edje/popup.edc
new file mode 100644 (file)
index 0000000..a7800b0
--- /dev/null
@@ -0,0 +1,78 @@
+#include "macros.inl"
+
+#define STYLE_TAG_MATCH \
+   tag:  "match" "+ color=#ffffff";
+
+collections {
+   BASE_SCALE;
+
+   plugins {
+      TOUCH_SOUND_PLUGIN;
+   }
+
+   styles {
+      style { name: "msg_progress_popup_text_style";
+         base: "font=Tizen:style=Regular font_size="32" align=center color=#fafafa text_class=tizen wrap=mixed";
+         STYLE_TAG_MATCH
+      }
+   }
+
+   group { name: "progress/custom/sending_popup";
+      parts {
+         rect { name: "bg"; scale;
+            desc { "default";
+               min: 0 360;
+               max: -1 360;
+               color: 0 0 0 0;
+            }
+         }
+         spacer { "pad.top"; scale;
+            desc { "default";
+               min: 0 30;
+               max: -1 30;
+               align: 0 0;
+            }
+         }
+         swallow { "swallow.progress"; scale;
+            desc { "default";
+               min: 82 82;
+               max: 82 82;
+               align: 0.5 0.0;
+               rel1.to_y: "pad.top";
+               rel1.relative: 0.5 1.0;
+               rel2.relative: 0.5 0.0;
+            }
+            desc { "hidden";
+               visible: 0;
+            }
+         }
+         spacer { "progress.pad.bottom"; scale;
+            desc { "default";
+               min: 0 16;
+               max: -1 16;
+               rel1.to_y: "swallow.progress";
+               rel1.relative: 0 1;
+               align: 0 0;
+            }
+         }
+         textblock { name: "text"; scale;
+            desc {
+               align: 1.0 0.0;
+               min: 0 88;
+               max: -1 88;
+               rel1.relative: 0 1;
+               rel1.to_x: "bg";
+               rel1.to_y: "progress.pad.bottom";
+               rel2.relative: 1 1;
+               rel2.to_x: "bg";
+               rel2.to_y: "swallow.progress";
+               text {
+                  style: "msg_progress_popup_text_style";
+                  min: 0 1;
+                  align:0.5 0.0;
+               }
+            }
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/src/Common/View/inc/IconTextPopup.h b/src/Common/View/inc/IconTextPopup.h
new file mode 100644 (file)
index 0000000..070a591
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.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 IconTextPopup_h_
+#define IconTextPopup_h_
+
+#include "Popup.h"
+#include "StandardPopup.h"
+
+namespace Msg {
+    class IconTextPopup
+        : public StandardPopup {
+        public:
+            enum IconType {
+                NoneIcon,
+                ProgressIcon,
+                CheckIcon,
+                FailedIcon
+            };
+        public:
+            IconTextPopup();
+            virtual ~IconTextPopup();
+
+            void setText(const std::string &text);
+            void setIcon(IconType type);
+
+        private:
+            void showProgressBar();
+            void showCheckItem();
+            void showFailItem();
+
+        private:
+            Evas_Object *m_pLayout;
+            IconType m_IconType;
+    };
+}
+
+#endif /* IconTextPopup_h_ */
index 347cb45598deb096d9addf047d6d8a5957e66bd4..c2b6475b51d3bd99b7f49e45984ef88e1398554f 100644 (file)
@@ -32,6 +32,7 @@ namespace Msg {
             StandardPopup(const char *style = defaultStyle);
             virtual ~StandardPopup();
 
+            Evas_Object *getLayout() const;
             void setText(const std::string &text);
             void setText(const TText &text);
             void setTitle(const std::string &title);
diff --git a/src/Common/View/src/IconTextPopup.cpp b/src/Common/View/src/IconTextPopup.cpp
new file mode 100644 (file)
index 0000000..9e6d006
--- /dev/null
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.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 "IconTextPopup.h"
+#include "Resource.h"
+#include "Logger.h"
+
+using namespace Msg;
+
+static const double iconSize = 82.0;
+
+IconTextPopup::IconTextPopup()
+    : StandardPopup()
+    , m_pLayout(nullptr)
+    , m_IconType(NoneIcon)
+{
+    m_pLayout = View::addLayout(StandardPopup::getLayout(), POPUP_EDJ_PATH, "progress/custom/sending_popup");
+    setContent(m_pLayout);
+}
+
+IconTextPopup::~IconTextPopup()
+{
+}
+
+void IconTextPopup::setText(const std::string &text)
+{
+    View::setText(m_pLayout, text, "text");
+}
+
+void IconTextPopup::setIcon(IconType type)
+{
+    if (m_IconType == type)
+        return;
+
+    m_IconType = type;
+    switch (m_IconType) {
+        case ProgressIcon:
+            showProgressBar();
+            break;
+        case CheckIcon:
+            showCheckItem();
+            break;
+        case FailedIcon:
+            showFailItem();
+            break;
+        case NoneIcon:
+            break;
+    }
+}
+
+void IconTextPopup::showProgressBar()
+{
+    Evas_Object *progressbar = elm_progressbar_add(m_pLayout);
+    elm_object_style_set(progressbar, "process_small");
+    evas_object_smart_calculate(progressbar);
+    int w = 0;
+    int h = 0;
+    evas_object_size_hint_min_get(progressbar, &w, &h);
+    int max = std::max(w, h);
+    if (max != 0)
+        elm_object_scale_set(progressbar, iconSize / max);
+    evas_object_show(progressbar);
+    elm_progressbar_pulse(progressbar, EINA_TRUE);
+    elm_object_part_content_set(m_pLayout, "swallow.progress", progressbar);
+}
+
+void IconTextPopup::showCheckItem()
+{
+    Evas_Object *layout = View::addLayout(m_pLayout, ICONS_EDJ_PATH, "popup/check_icon");
+    View::setContent(m_pLayout, layout, "swallow.progress");
+}
+
+void IconTextPopup::showFailItem()
+{
+    Evas_Object *layout = View::addLayout(m_pLayout, ICONS_EDJ_PATH, "popup/failed_icon");
+    View::setContent(m_pLayout, layout, "swallow.progress");
+}
index 3caf4242dbd5a1fd3410f9eaa4ede2d2ac96ec1d..5ac3e9728ca283c15b09247e32e5b5ba7ea6f9f5 100644 (file)
@@ -29,13 +29,18 @@ StandardPopup::StandardPopup(const char *style)
     setStyle("circle");
     m_pLayout = elm_layout_add(getEo());
     elm_layout_theme_set(m_pLayout, "layout", "popup", style);
-    setContent(m_pLayout);
+    View::setContent(m_pLayout);
 }
 
 StandardPopup::~StandardPopup()
 {
 }
 
+Evas_Object *StandardPopup::getLayout() const
+{
+    return m_pLayout;
+}
+
 void StandardPopup::setText(const std::string &text)
 {
     View::setText(m_pLayout, text, "elm.text");