Tizen 2.0 Release 2.0_release
authorHyungKyu Song <hk76.song@samsung.com>
Fri, 15 Feb 2013 06:11:32 +0000 (15:11 +0900)
committerHyungKyu Song <hk76.song@samsung.com>
Fri, 15 Feb 2013 06:11:32 +0000 (15:11 +0900)
72 files changed:
LICENSE.Flora [new file with mode: 0644]
NOTICE [new file with mode: 0644]
description.xml [new file with mode: 0755]
project/data/nofile.dummy [new file with mode: 0644]
project/inc/AnimationBaseForm.h [new file with mode: 0644]
project/inc/AnimationGroupParallelForm.h [new file with mode: 0644]
project/inc/AnimationGroupSequentialForm.h [new file with mode: 0644]
project/inc/AnimationPropertyInfo.h [new file with mode: 0644]
project/inc/ControlEventListenerForm.h [new file with mode: 0644]
project/inc/CustomImplicitAnimationForm.h [new file with mode: 0644]
project/inc/DimensionAnimationForm.h [new file with mode: 0644]
project/inc/FloatAnimationForm.h [new file with mode: 0644]
project/inc/FormFactory.h [new file with mode: 0644]
project/inc/FormTransitionForm.h [new file with mode: 0644]
project/inc/ImplicitAnimationForm.h [new file with mode: 0644]
project/inc/IntegerAnimationForm.h [new file with mode: 0644]
project/inc/KeyFrameAnimationForm.h [new file with mode: 0644]
project/inc/MainForm.h [new file with mode: 0644]
project/inc/OutOfBoundsCheckForm.h [new file with mode: 0644]
project/inc/PanelTransitionForm.h [new file with mode: 0644]
project/inc/PointAnimationForm.h [new file with mode: 0644]
project/inc/RectangleAnimationForm.h [new file with mode: 0644]
project/inc/RotateAnimationForm.h [new file with mode: 0644]
project/inc/SceneRegister.h [new file with mode: 0644]
project/inc/SetHoldTestForm.h [new file with mode: 0644]
project/inc/SettingPopup.h [new file with mode: 0644]
project/inc/TransactionEventListenerForm.h [new file with mode: 0644]
project/inc/TransactionSetForm.h [new file with mode: 0644]
project/inc/UiControlAnimator.h [new file with mode: 0644]
project/inc/UiControlAnimatorFrame.h [new file with mode: 0644]
project/manifest.xml [new file with mode: 0755]
project/res/eng-GB.xml [new file with mode: 0644]
project/res/screen-density-high/bezier.png [new file with mode: 0644]
project/res/screen-density-high/discrete.png [new file with mode: 0644]
project/res/screen-density-high/easein.png [new file with mode: 0644]
project/res/screen-density-high/easeinout.png [new file with mode: 0644]
project/res/screen-density-high/easeout.png [new file with mode: 0644]
project/res/screen-density-high/linear.png [new file with mode: 0644]
project/res/screen-size-normal/IDC_POPUP_SETTING.xml [new file with mode: 0644]
project/res/screen-size-normal/IDF_FORM_TRANSITION_TEST_FORM.xml [new file with mode: 0644]
project/shared/data/nofile.dummy [new file with mode: 0644]
project/shared/res/screen-density-xhigh/mainmenu.png [new file with mode: 0644]
project/shared/trusted/nofile.dummy [new file with mode: 0644]
project/src/AnimationBaseForm.cpp [new file with mode: 0644]
project/src/AnimationGroupParallelForm.cpp [new file with mode: 0644]
project/src/AnimationGroupSequentialForm.cpp [new file with mode: 0644]
project/src/AnimationPropertyInfo.cpp [new file with mode: 0644]
project/src/ControlEventListenerForm.cpp [new file with mode: 0644]
project/src/CustomImplicitAnimationForm.cpp [new file with mode: 0644]
project/src/DimensionAnimationForm.cpp [new file with mode: 0644]
project/src/FloatAnimationForm.cpp [new file with mode: 0644]
project/src/FormFactory.cpp [new file with mode: 0644]
project/src/FormTransitionForm.cpp [new file with mode: 0644]
project/src/ImplicitAnimationForm.cpp [new file with mode: 0644]
project/src/IntegerAnimationForm.cpp [new file with mode: 0644]
project/src/KeyFrameAnimationForm.cpp [new file with mode: 0644]
project/src/MainForm.cpp [new file with mode: 0644]
project/src/OutOfBoundsCheckForm.cpp [new file with mode: 0644]
project/src/PanelTransitionForm.cpp [new file with mode: 0644]
project/src/PointAnimationForm.cpp [new file with mode: 0644]
project/src/RectangleAnimationForm.cpp [new file with mode: 0644]
project/src/RotateAnimationForm.cpp [new file with mode: 0644]
project/src/SceneRegister.cpp [new file with mode: 0644]
project/src/SetHoldTestForm.cpp [new file with mode: 0644]
project/src/SettingPopup.cpp [new file with mode: 0644]
project/src/TransactionEventListenerForm.cpp [new file with mode: 0644]
project/src/TransactionSetForm.cpp [new file with mode: 0644]
project/src/UiControlAnimator.cpp [new file with mode: 0644]
project/src/UiControlAnimatorEntry.cpp [new file with mode: 0644]
project/src/UiControlAnimatorFrame.cpp [new file with mode: 0644]
sample.xml [new file with mode: 0755]
screenshot.png [new file with mode: 0644]

diff --git a/LICENSE.Flora b/LICENSE.Flora
new file mode 100644 (file)
index 0000000..9c95663
--- /dev/null
@@ -0,0 +1,206 @@
+Flora License
+
+Version 1.0, May, 2012
+
+http://floralicense.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://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.
+
diff --git a/NOTICE b/NOTICE
new file mode 100644 (file)
index 0000000..3997999
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,4 @@
+Copyright (c) Samsung Electronics Co., Ltd. All rights reserved.
+Except as noted, this software is licensed under Flora License, Version 1.
+Please, see the LICENSE file for Flora License terms and conditions.
+
diff --git a/description.xml b/description.xml
new file mode 100755 (executable)
index 0000000..c6df54f
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?> 
+<?xml-stylesheet type="text/xsl" href="../../../../description.xsl"?>
+
+<Overview version="0.17.1">
+  <SampleName> UiControlAnimator </SampleName>
+  <SampleVersion>1.0</SampleVersion>
+  <Preview>screenshot.png</Preview>
+  <Description>
+       The UiControlAnimator sample application demonstrates how you can use animations by using Control Animator.
+  </Description>
+</Overview>
diff --git a/project/data/nofile.dummy b/project/data/nofile.dummy
new file mode 100644 (file)
index 0000000..3c546eb
--- /dev/null
@@ -0,0 +1 @@
+dummy file
\ No newline at end of file
diff --git a/project/inc/AnimationBaseForm.h b/project/inc/AnimationBaseForm.h
new file mode 100644 (file)
index 0000000..540d418
--- /dev/null
@@ -0,0 +1,87 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       AnimationBaseForm.h
+ * @brief      This is the header file for the AnimationBaseForm class.
+ *
+ * This header file contains the declarations of the AnimationBaseForm class.
+ */
+
+#ifndef _ANIMATION_BASE_FORM_H_
+#define _ANIMATION_BASE_FORM_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FUi.h>
+
+#include "AnimationPropertyInfo.h"
+#include "SettingPopup.h"
+
+enum AnimationDirection
+{
+       ANIMATION_FORWARD,
+       ANIMATION_BACKWARD
+};
+
+enum AnimationPosition
+{
+       ANIMATION_POS_START,
+       ANIMATION_POS_END
+};
+
+class AnimationBaseForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::IActionEventListener
+{
+public:
+       AnimationBaseForm(void);
+       virtual ~AnimationBaseForm(void);
+       result Initialize(void);
+
+       virtual result Play(void);
+       virtual result Stop(void);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+protected:
+       AnimationDirection GetAnimationDirection(void);
+       virtual bool IsAnimating(void);
+
+private:
+       virtual void InitializeFooter(void);
+
+protected:
+       AnimationPropertyInfo _animationPropertyInfo;
+       SettingPopup* _pSettingPopup;
+
+       static const int FOOTER_ITEM_INDEX_PLAY = 0;
+       static const int FOOTER_ITEM_INDEX_STOP = 1;
+       static const int FOOTER_ITEM_INDEX_SETTINGS = 2;
+
+private:
+       AnimationPosition __position;
+
+       static const int ID_FOOTER_BUTTON_PLAY = 101;
+       static const int ID_FOOTER_BUTTON_STOP = 102;
+       static const int ID_FOOTER_BUTTON_SETTINGS = 103;
+};
+
+#endif // _ANIMATION_BASE_FORM_H_
diff --git a/project/inc/AnimationGroupParallelForm.h b/project/inc/AnimationGroupParallelForm.h
new file mode 100644 (file)
index 0000000..b6efc3e
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       AnimationGroupParallelForm.h
+ * @brief      This is the header file for the AnimationGroupParallelForm class.
+ *
+ * This header file contains the declarations of the AnimationGroupParallelForm class.
+ */
+
+#ifndef _ANIMATION_GROUP_PARALLEL_FORM_H_
+#define _ANIMATION_GROUP_PARALLEL_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class AnimationGroupParallelForm
+       : public AnimationBaseForm
+{
+public:
+       AnimationGroupParallelForm(void);
+       virtual ~AnimationGroupParallelForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 145;
+       static const int ANIMATION_OFFSET_Y = 300;
+       static const int ANIMATION_OFFSET_WIDTH = 30;
+       static const int ANIMATION_OFFSET_HEIGHT = 30;
+};
+
+#endif // _ANIMATION_GROUP_PARALLEL_FORM_H_
+
diff --git a/project/inc/AnimationGroupSequentialForm.h b/project/inc/AnimationGroupSequentialForm.h
new file mode 100644 (file)
index 0000000..b53a4b7
--- /dev/null
@@ -0,0 +1,59 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       AnimationGroupSequentialForm.h
+ * @brief      This is the header file for the AnimationGroupSequentialForm class.
+ *
+ * This header file contains the declarations of the AnimationGroupSequentialForm class.
+ */
+
+#ifndef _ANIMATION_GROUP_SEQUENTIAL_FORM_H_
+#define _ANIMATION_GROUP_SEQUENTIAL_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class AnimationGroupSequentialForm
+       : public AnimationBaseForm
+{
+public:
+       AnimationGroupSequentialForm(void);
+       virtual ~AnimationGroupSequentialForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 145;
+       static const int ANIMATION_OFFSET_Y = 300;
+       static const int ANIMATION_OFFSET_WIDTH = 30;
+       static const int ANIMATION_OFFSET_HEIGHT = 30;
+};
+
+#endif // _ANIMATION_GROUP_SEQUENTIAL_FORM_H_
+
diff --git a/project/inc/AnimationPropertyInfo.h b/project/inc/AnimationPropertyInfo.h
new file mode 100644 (file)
index 0000000..5f4cbdb
--- /dev/null
@@ -0,0 +1,84 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       AnimationPropertyInfo.h
+ * @brief      This is the header file for the AnimationPropertyInfo class.
+ *
+ * This header file contains the declarations of the AnimationPropertyInfo class.
+ */
+
+#ifndef _ANIMATION_PROPERTY_INFO_H_
+#define _ANIMATION_PROPERTY_INFO_H_
+
+#include <FUi.h>
+
+class AnimationPropertyInfo
+{
+public:
+       AnimationPropertyInfo(void);
+       ~AnimationPropertyInfo(void);
+
+       void SetDelay(int delay);
+       int GetDelay(void) const;
+
+       void SetDuration(int duration);
+       int GetDuration(void) const;
+
+       void SetOffset(int offset);
+       int GetOffset(void) const;
+
+       void SetScaleRatio(int scaleRatio);
+       int GetScaleRatio(void) const;
+
+       void SetRepeatCount(int repeatCount);
+       int GetRepeatCount(void) const;
+
+       void SetAutoReverseEnabled(bool autoReverse);
+       bool IsAutoReverseEnabled(void) const;
+
+       void SetHoldEndEnabled(bool holdEnd);
+       bool IsHoldEndEnabled(void) const;
+
+       void SetInterpolatorType(Tizen::Ui::Animations::AnimationInterpolatorType interpolatorType);
+       Tizen::Ui::Animations::AnimationInterpolatorType GetInterpolatorType(void) const;
+
+       void SetDefaultValue(void);
+       void ApplyGlobalSettings(Tizen::Ui::Animations::AnimationBase& animation);
+
+public:
+       static const int DEFAULT_DELAY = 0;
+       static const int DEFAULT_DURATION = 1000;
+       static const int DEFAULT_OFFSET = 0;
+       static const int DEFAULT_SCALE_RATIO = 1;
+       static const int DEFAULT_REPEAT_COUNT = 1;
+       static const bool DEFAULT_AUTO_REVERSE = false;
+       static const bool DEFAULT_SET_HOLD_END = true;
+
+private:
+       int __delay;
+       int __duration;
+       int __offset;
+       int __scaleRatio;
+       int __repeatCount;
+       bool __isAutoReverse;
+       bool __isSetHoldEnd;
+       Tizen::Ui::Animations::AnimationInterpolatorType __interpolatorType;
+};
+
+#endif // _ANIMATION_PROPERTY_INFO_H_
+
diff --git a/project/inc/ControlEventListenerForm.h b/project/inc/ControlEventListenerForm.h
new file mode 100644 (file)
index 0000000..6a5e3af
--- /dev/null
@@ -0,0 +1,73 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       ControlEventListenerForm.h
+ * @brief      This is the header file for the ControlEventListenerForm class.
+ *
+ * This header file contains the declarations of the ControlEventListenerForm class.
+ */
+
+#ifndef _CONTROL_EVENT_LISTENER_FORM_H_
+#define _CONTROL_EVENT_LISTENER_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class ControlEventListenerForm
+       : public AnimationBaseForm
+       , public Tizen::Ui::Animations::IControlAnimatorDetailedEventListener
+{
+public:
+       ControlEventListenerForm(void);
+       virtual ~ControlEventListenerForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+       virtual void OnControlAnimationStarted(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control, Tizen::Ui::Animations::ControlAnimatorTriggerType animTrigger, Tizen::Ui::Animations::AnimationTargetType animTarget, Tizen::Ui::Animations::AnimationBase* pAnimation);
+       virtual void OnControlAnimationRepeated(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control, Tizen::Ui::Animations::ControlAnimatorTriggerType animTrigger, Tizen::Ui::Animations::AnimationTargetType animTarget, Tizen::Ui::Animations::AnimationBase* pAnimation, int repeatCount);
+       virtual void OnControlAnimationFinished(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control, Tizen::Ui::Animations::ControlAnimatorTriggerType animTrigger, Tizen::Ui::Animations::AnimationTargetType animTarget, Tizen::Ui::Animations::AnimationBase* pAnimation);
+       virtual void OnControlAnimationStopped(Tizen::Ui::Animations::ControlAnimator& source, Tizen::Ui::Control& control, Tizen::Ui::Animations::ControlAnimatorTriggerType animTrigger, Tizen::Ui::Animations::AnimationTargetType animTarget, Tizen::Ui::Animations::AnimationBase* pAnimation);
+
+private:
+       Tizen::Ui::Controls::Button* __pButton1;
+       Tizen::Ui::Controls::Button* __pButton2;
+       Tizen::Ui::Controls::Button* __pButton3;
+       Tizen::Ui::Controls::Button* __pButton4;
+       Tizen::Ui::Controls::Button* __pButton5;
+       Tizen::Ui::Controls::Button* __pButton6;
+       Tizen::Ui::Controls::Button* __pButton7;
+       Tizen::Ui::Controls::Button* __pButton8;
+       Tizen::Ui::Controls::Button* __pButton9;
+       Tizen::Ui::Controls::Button* __pButton10;
+       Tizen::Ui::Controls::Button* __pButton11;
+       Tizen::Ui::Controls::Button* __pButton12;
+
+       Tizen::Ui::Controls::Label* __pLabel;
+
+       static const int BUTTON_OFFSET_X = 75;
+       static const int BUTTON_OFFSET_Y = 75;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int LABEL_WIDTH = 450;
+       static const int LABEL_HEIGHT = 225;
+};
+
+#endif // _CONTROL_EVENT_LISTENER_FORM_H_
+
diff --git a/project/inc/CustomImplicitAnimationForm.h b/project/inc/CustomImplicitAnimationForm.h
new file mode 100644 (file)
index 0000000..2b330a9
--- /dev/null
@@ -0,0 +1,60 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       CustomImplicitAnimationForm.h
+ * @brief      This is the header file for the CustomImplicitAnimationForm class.
+ *
+ * This header file contains the declarations of the CustomImplicitAnimationForm class.
+ */
+
+#ifndef _CUSTOM_IMPLICIT_ANIMATION_FORM_H_
+#define _CUSTOM_IMPLICIT_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class CustomImplicitAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       CustomImplicitAnimationForm(void);
+       virtual ~CustomImplicitAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       int __transactionId;
+
+       Tizen::Ui::Controls::Button* __pButton1;
+       Tizen::Ui::Controls::Button* __pButton2;
+       Tizen::Ui::Controls::Button* __pButton3;
+       Tizen::Ui::Controls::Button* __pButton4;
+
+       static const int BUTTON_OFFSET_X = 70;
+       static const int BUTTON_OFFSET_Y = 74;
+       static const int BUTTON_WIDTH = 225;
+       static const int BUTTON_HEIGHT = 74;
+
+       static const int ANIMATION_OFFSET_X = 250;
+       static const int ANIMATION_OFFSET_Y = 70;
+       static const int ANIMATION_OFFSET_WIDTH = 74;
+       static const int ANIMATION_OFFSET_HEIGHT = 50;
+};
+
+#endif // _CUSTOM_IMPLICIT_ANIMATION_FORM_H_
diff --git a/project/inc/DimensionAnimationForm.h b/project/inc/DimensionAnimationForm.h
new file mode 100644 (file)
index 0000000..5fca725
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       DimensionAnimationForm.h
+ * @brief      This is the header file for the DimensionAnimationForm class.
+ *
+ * This header file contains the declarations of the DimensionAnimationForm class.
+ */
+
+#ifndef _DIMENSION_ANIMATION_FORM_H_
+#define _DIMENSION_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class DimensionAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       DimensionAnimationForm(void);
+       virtual ~DimensionAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+       Tizen::Ui::Controls::Button* __pCenter;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_WIDTH = 70;
+       static const int ANIMATION_OFFSET_HEIGHT = 70;
+};
+
+#endif // _DIMENSION_ANIMATION_FORM_H_
diff --git a/project/inc/FloatAnimationForm.h b/project/inc/FloatAnimationForm.h
new file mode 100644 (file)
index 0000000..7add5ec
--- /dev/null
@@ -0,0 +1,54 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       FloatAnimationForm.h
+ * @brief      This is the header file for the FloatAnimationForm class.
+ *
+ * This header file contains the declarations of the FloatAnimationForm class.
+ */
+
+#ifndef _FLOAT_ANIMATION_FORM_H_
+#define _FLOAT_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class FloatAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       FloatAnimationForm(void);
+       virtual ~FloatAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+};
+
+#endif // _FLOAT_ANIMATION_FORM_H_
+
diff --git a/project/inc/FormFactory.h b/project/inc/FormFactory.h
new file mode 100644 (file)
index 0000000..1c098e3
--- /dev/null
@@ -0,0 +1,66 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       FormFactory.h
+ * @brief      This is the header file for the FormFactory class.
+ *
+ * This header file contains the declarations of the FormFactory class.
+ */
+
+#ifndef _FORM_FACTORY_H_
+#define _FORM_FACTORY_H_
+
+#include <FUi.h>
+
+extern const wchar_t* FORM_MAIN_MENU;
+
+extern const wchar_t* FORM_INTEGER_ANIMATION;
+extern const wchar_t* FORM_FLOAT_ANIMATION;
+extern const wchar_t* FORM_POINT_ANIMATION;
+extern const wchar_t* FORM_DIMENSION_ANIMATION;
+extern const wchar_t* FORM_RECTANGLE_ANIMATION;
+extern const wchar_t* FORM_ROTATE_ANIMATION;
+
+extern const wchar_t* FORM_KEY_FRAME_ANIMATION;
+extern const wchar_t* FORM_OUT_OF_BOUNDS_CHECK;
+extern const wchar_t* FORM_CONTROL_EVENT_LISTENER;
+extern const wchar_t* FORM_SET_HOLD_TEST;
+
+extern const wchar_t* FORM_ANIMATION_GROUP_PARALLEL;
+extern const wchar_t* FORM_ANIMATION_GROUP_SEQUENTIAL;
+
+extern const wchar_t* FORM_TRANSACTION_SET;
+extern const wchar_t* FORM_TRANSACTION_EVENT_LISTENER;
+
+extern const wchar_t* FORM_FORM_TRANSITION;
+extern const wchar_t* FORM_PANEL_TRANSITION;
+
+extern const wchar_t* FORM_IMPLICIT_ANIMATION;
+extern const wchar_t* FORM_CUSTOM_IMPLICIT_ANIMATION;
+
+class FormFactory
+       : public Tizen::Ui::Scenes::IFormFactory
+{
+public:
+       FormFactory(void);
+       virtual ~FormFactory(void);
+
+       virtual Tizen::Ui::Controls::Form* CreateFormN(const Tizen::Base::String& formId, const Tizen::Ui::Scenes::SceneId& sceneId);
+};
+
+#endif // _FORM_FACTORY_H_
diff --git a/project/inc/FormTransitionForm.h b/project/inc/FormTransitionForm.h
new file mode 100644 (file)
index 0000000..3cc1e83
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       FormTransitionForm.h
+ * @brief      This is the header file for the FormTransitionForm class.
+ *
+ * This header file contains the declarations of the FormTransitionForm class.
+ */
+
+#ifndef _FORM_TRANSITION_FORM_H_
+#define _FORM_TRANSITION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class FormTransitionForm
+       : public AnimationBaseForm
+       , public Tizen::Ui::Controls::IListViewItemEventListener
+       , public Tizen::Ui::Controls::IListViewItemProvider
+{
+public:
+       FormTransitionForm(void);
+       virtual ~FormTransitionForm(void);
+
+       virtual result OnInitializing(void);
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+       virtual void OnListViewItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListItemStatus status);
+       virtual void OnListViewItemSwept(Tizen::Ui::Controls::ListView& listView, int index, Tizen::Ui::Controls::SweepDirection direction);
+       virtual void OnListViewContextItemStateChanged(Tizen::Ui::Controls::ListView& listView, int index, int elementId, Tizen::Ui::Controls::ListContextItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int index, int itemWidth);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+
+private:
+       virtual bool IsAnimating(void);
+
+private:
+       Tizen::Ui::Controls::Form* __pTestForm;
+       Tizen::Ui::Controls::ListView* __pListView;
+
+       static const int LIST_VIEW_ITEM_COUNT = 7;
+       static const int LIST_VIEW_ITEM_HEIGHT = 112;
+
+       static const Tizen::Base::String __animType[LIST_VIEW_ITEM_COUNT];
+};
+
+#endif // _FORM_TRANSITION_FORM_H_
+
diff --git a/project/inc/ImplicitAnimationForm.h b/project/inc/ImplicitAnimationForm.h
new file mode 100644 (file)
index 0000000..3a179e7
--- /dev/null
@@ -0,0 +1,61 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       ImplicitAnimationForm.h
+ * @brief      This is the header file for the ImplicitAnimationForm class.
+ *
+ * This header file contains the declarations of the ImplicitAnimationForm class.
+ */
+
+#ifndef _IMPLICIT_ANIMATION_FORM_H_
+#define _IMPLICIT_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class ImplicitAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       ImplicitAnimationForm(void);
+       virtual ~ImplicitAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       int __transactionId;
+
+       Tizen::Ui::Controls::Button* __pButton1;
+       Tizen::Ui::Controls::Button* __pButton2;
+       Tizen::Ui::Controls::Button* __pButton3;
+       Tizen::Ui::Controls::Button* __pButton4;
+
+       static const int BUTTON_OFFSET_X = 70;
+       static const int BUTTON_OFFSET_Y = 74;
+       static const int BUTTON_WIDTH = 225;
+       static const int BUTTON_HEIGHT = 74;
+
+       static const int ANIMATION_OFFSET_X = 250;
+       static const int ANIMATION_OFFSET_Y = 70;
+       static const int ANIMATION_OFFSET_WIDTH = 74;
+       static const int ANIMATION_OFFSET_HEIGHT = 50;
+};
+
+#endif // _IMPLICIT_ANIMATION_FORM_H_
+
diff --git a/project/inc/IntegerAnimationForm.h b/project/inc/IntegerAnimationForm.h
new file mode 100644 (file)
index 0000000..a3072d0
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       IntegerAnimationForm.h
+ * @brief      This is the header file for the AnimationBaseForm class.
+ *
+ * This header file contains the declarations of the AnimationBaseForm class.
+ */
+
+#ifndef _INTEGER_ANIMATION_FORM_H_
+#define _INTEGER_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class IntegerAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       IntegerAnimationForm(void);
+       virtual ~IntegerAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+};
+
+#endif // _INTEGER_ANIMATION_FORM_H_
diff --git a/project/inc/KeyFrameAnimationForm.h b/project/inc/KeyFrameAnimationForm.h
new file mode 100644 (file)
index 0000000..95b4634
--- /dev/null
@@ -0,0 +1,55 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       KeyFrameAnimationForm.h
+ * @brief      This is the header file for the KeyFrameAnimationForm class.
+ *
+ * This header file contains the declarations of the KeyFrameAnimationForm class.
+ */
+
+#ifndef _KEY_FRAME_ANIMATION_FORM_H_
+#define _KEY_FRAME_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class KeyFrameAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       KeyFrameAnimationForm(void);
+       virtual ~KeyFrameAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 150;
+       static const int ANIMATION_OFFSET_Y = 425;
+};
+
+#endif // _KEY_FRAME_ANIMATION_FORM_H_
+
diff --git a/project/inc/MainForm.h b/project/inc/MainForm.h
new file mode 100644 (file)
index 0000000..4b1f52e
--- /dev/null
@@ -0,0 +1,85 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+/**
+ * @file       MainForm.h
+ * @brief      This is the header file for the MainForm class.
+ *
+ * This header file contains the declarations of the MainForm class.
+ */
+
+#ifndef _MAIN_MENU_H_
+#define _MAIN_MENU_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FUiControls.h>
+
+class MainForm
+       : public Tizen::Ui::Controls::Form
+       , public Tizen::Ui::Controls::IFormBackEventListener
+       , public Tizen::Ui::Controls::IGroupedListViewItemEventListener
+       , public Tizen::Ui::Controls::IGroupedListViewItemProvider
+{
+public:
+       MainForm(void);
+       virtual ~MainForm(void);
+       result Initialize(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+
+       virtual void OnGroupedListViewContextItemStateChanged(Tizen::Ui::Controls::GroupedListView &listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListContextItemStatus state);
+       virtual void OnGroupedListViewItemStateChanged(Tizen::Ui::Controls::GroupedListView &listView, int groupIndex, int itemIndex, int elementId, Tizen::Ui::Controls::ListItemStatus state);
+       virtual void OnGroupedListViewItemSwept(Tizen::Ui::Controls::GroupedListView &listView, int groupIndex,  int itemIndex, Tizen::Ui::Controls::SweepDirection direction);
+
+       virtual int GetGroupCount(void);
+       virtual int GetItemCount(int groupIndex);
+       virtual Tizen::Ui::Controls::ListItemBase* CreateItem(int groupIndex, int itemIndex, int itemWidth);
+       virtual Tizen::Ui::Controls::GroupItem* CreateGroupItem(int groupIndex, int itemWidth);
+       virtual bool DeleteItem(int groupIndex, int itemIndex, Tizen::Ui::Controls::ListItemBase* pItem, int itemWidth);
+       virtual bool DeleteGroupItem(int groupIndex, Tizen::Ui::Controls::GroupItem* pItem, int itemWidth);
+
+       virtual void OnFormBackRequested(Tizen::Ui::Controls::Form& source);
+
+private:
+       Tizen::Ui::Controls::GroupedListView* __pGroupedListView;
+
+       static const int GROUPED_LIST_VIEW_CUSTOM_ITEM_TEXT_POS_X = 46;
+       static const int GROUPED_LIST_VIEW_CUSTOM_ITEM_HEIGHT = 112;
+       static const int GROUPED_LIST_VIEW_GROUP_ITEM_HEIGHT = 80;
+       static const int GROUPED_LIST_VIEW_GROUP_ITEM_COUNT = 6;
+
+       static const int ANIMATION_BASIC_ITEM_COUNT = 6;
+       static const int ANIMATION_ADVANCED_ITEM_COUNT = 4;
+       static const int ANIMATION_GROUP_ITEM_COUNT = 2;
+       static const int ANIMATION_TRANSACTION_ITEM_COUNT = 2;
+       static const int ANIMATION_TRANSITION_ITEM_COUNT = 2;
+       static const int ANIMATION_IMPLICIT_ITEM_COUNT = 2;
+
+       static const Tizen::Base::String __groupItemName[GROUPED_LIST_VIEW_GROUP_ITEM_COUNT];
+       static const Tizen::Base::String __basicAnimationName[ANIMATION_BASIC_ITEM_COUNT];
+       static const Tizen::Base::String __advancedAnimationName[ANIMATION_ADVANCED_ITEM_COUNT];
+       static const Tizen::Base::String __groupAnimationName[ANIMATION_GROUP_ITEM_COUNT];
+       static const Tizen::Base::String __transactionAnimationName[ANIMATION_TRANSACTION_ITEM_COUNT];
+       static const Tizen::Base::String __transitionAnimationName[ANIMATION_TRANSITION_ITEM_COUNT];
+       static const Tizen::Base::String __implicitAnimationName[ANIMATION_IMPLICIT_ITEM_COUNT];
+
+       static const wchar_t* __sceneId[][GROUPED_LIST_VIEW_GROUP_ITEM_COUNT];
+};
+
+#endif //_MAIN_MENU_H_
diff --git a/project/inc/OutOfBoundsCheckForm.h b/project/inc/OutOfBoundsCheckForm.h
new file mode 100644 (file)
index 0000000..3985ef5
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       OutOfBoundsCheckForm.h
+ * @brief      This is the header file for the OutOfBoundsCheckForm class.
+ *
+ * This header file contains the declarations of the OutOfBoundsCheckForm class.
+ */
+
+#ifndef _OUT_OF_BOUNDS_CHECK_FORM_H_
+#define _OUT_OF_BOUNDS_CHECK_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class OutOfBoundsCheckForm
+       : public AnimationBaseForm
+{
+public:
+       OutOfBoundsCheckForm(void);
+       virtual ~OutOfBoundsCheckForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 75;
+       static const int BUTTON_OFFSET_Y = 75;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 145;
+       static const int ANIMATION_OFFSET_Y = 300;
+};
+
+#endif // _OUT_OF_BOUNDS_CHECK_FORM_H_
+
diff --git a/project/inc/PanelTransitionForm.h b/project/inc/PanelTransitionForm.h
new file mode 100644 (file)
index 0000000..18a6701
--- /dev/null
@@ -0,0 +1,72 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       PanelTransitionForm.h
+ * @brief      This is the header file for the PanelTransitionForm class.
+ *
+ * This header file contains the declarations of the PanelTransitionForm class.
+ */
+
+#ifndef _PANEL_TRANSITION_FORM_H_
+#define _PANEL_TRANSITION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class PanelTransitionForm
+       : public AnimationBaseForm
+{
+public:
+       PanelTransitionForm(void);
+       virtual ~PanelTransitionForm(void);
+
+       virtual result OnInitializing(void);
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+       virtual void InitializeFooter(void);
+
+       void TranslateToLeft(void);
+       void TranslateToRight(void);
+
+       Tizen::Ui::Animations::AnimatorStatus GetAnimationStatus(void) const;
+
+private:
+       enum PanelPosition
+       {
+               POS_LEFT,
+               POS_CENTER,
+               POS_RIGHT
+       };
+
+       PanelPosition __position;
+
+       Tizen::Ui::Controls::Panel* __pContainerPanel;
+       Tizen::Ui::Controls::Panel* __pCurrentPanel;
+
+       static const int ID_FOOTER_BUTTON_LEFT = 100;
+       static const int ID_FOOTER_BUTTON_RIGHT = 101;
+
+       static const int BUTTON_WIDTH = 360;
+       static const int BUTTON_HEIGHT = 100;
+
+       static const int ANIMATED_PANEL_COUNT = 3;
+       static const int ANIMATED_PANEL_BOUNCE_BACK_WIDTH = 150;;
+};
+
+#endif // _PANEL_TRANSITION_FORM_H_
+
diff --git a/project/inc/PointAnimationForm.h b/project/inc/PointAnimationForm.h
new file mode 100644 (file)
index 0000000..f130459
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       PointAnimationForm.h
+ * @brief      This is the header file for the PointAnimationForm class.
+ *
+ * This header file contains the declarations of the PointAnimationForm class.
+ */
+
+#ifndef _POINT_ANIMATION_FORM_H_
+#define _POINT_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class PointAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       PointAnimationForm(void);
+       virtual ~PointAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 145;
+       static const int ANIMATION_OFFSET_Y = 300;
+};
+
+#endif // _POINT_ANIMATION_FORM_H_
diff --git a/project/inc/RectangleAnimationForm.h b/project/inc/RectangleAnimationForm.h
new file mode 100644 (file)
index 0000000..bb3eb97
--- /dev/null
@@ -0,0 +1,57 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       RectangleAnimationForm.h
+ * @brief      This is the header file for the RectangleAnimationForm class.
+ *
+ * This header file contains the declarations of the RectangleAnimationForm class.
+ */
+
+#ifndef _RECTANGLE_ANIMATION_FORM_H_
+#define _RECTANGLE_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class RectangleAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       RectangleAnimationForm(void);
+       virtual ~RectangleAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pButton1;
+       Tizen::Ui::Controls::Button* __pButton2;
+       Tizen::Ui::Controls::Button* __pButton3;
+       Tizen::Ui::Controls::Button* __pButton4;
+       Tizen::Ui::Controls::Button* __pButton5;
+
+       static const int BUTTON_OFFSET_X = 75;
+       static const int BUTTON_OFFSET_Y = 75;
+       static const int BUTTON_WIDTH = 220;
+       static const int BUTTON_HEIGHT = 75;
+
+       static const int ANIMATION_OFFSET_WIDTH = 75;
+       static const int ANIMATION_OFFSET_HEIGHT = 55;
+};
+
+#endif // _RECTANGLE_ANIMATION_FORM_H_
diff --git a/project/inc/RotateAnimationForm.h b/project/inc/RotateAnimationForm.h
new file mode 100644 (file)
index 0000000..034a5cd
--- /dev/null
@@ -0,0 +1,53 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       RotateAnimationForm.h
+ * @brief      This is the header file for the RotateAnimationForm class.
+ *
+ * This header file contains the declarations of the RotateAnimationForm class.
+ */
+
+#ifndef _ROTATE_ANIMATION_FORM_H_
+#define _ROTATE_ANIMATION_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class RotateAnimationForm
+       : public AnimationBaseForm
+{
+public:
+       RotateAnimationForm(void);
+       virtual ~RotateAnimationForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+};
+
+#endif // _ROTATE_ANIMATION_FORM_H_
diff --git a/project/inc/SceneRegister.h b/project/inc/SceneRegister.h
new file mode 100644 (file)
index 0000000..f199fb7
--- /dev/null
@@ -0,0 +1,64 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       SceneRegister.h
+ * @brief      This is the header file for the SceneRegister class.
+ *
+ * This header file contains the declarations of the SceneRegister class.
+ */
+
+#ifndef _SCENE_REGISTER_H_
+#define _SCENE_REGISTER_H_
+
+extern const wchar_t* SCENE_MAIN_MENU;
+
+extern const wchar_t* SCENE_INTEGER_ANIMATION;
+extern const wchar_t* SCENE_FLOAT_ANIMATION;
+extern const wchar_t* SCENE_POINT_ANIMATION;
+extern const wchar_t* SCENE_DIMENSION_ANIMATION;
+extern const wchar_t* SCENE_RECTANGLE_ANIMATION;
+extern const wchar_t* SCENE_ROTATE_ANIMATION;
+
+extern const wchar_t* SCENE_KEY_FRAME_ANIMATION;
+extern const wchar_t* SCENE_OUT_OF_BOUNDS_CHECK;
+extern const wchar_t* SCENE_CONTROL_EVENT_LISTENER;
+extern const wchar_t* SCENE_SET_HOLD_TEST;
+
+extern const wchar_t* SCENE_ANIMATION_GROUP_PARALLEL;
+extern const wchar_t* SCENE_ANIMATION_GROUP_SEQUENTIAL;
+
+extern const wchar_t* SCENE_TRANSACTION_SET;
+extern const wchar_t* SCENE_TRANSACTION_EVENT_LISTENER;
+
+extern const wchar_t* SCENE_FORM_TRANSITION;
+extern const wchar_t* SCENE_PANEL_TRANSITION;
+
+extern const wchar_t* SCENE_IMPLICIT_ANIMATION;
+extern const wchar_t* SCENE_CUSTOM_IMPLICIT_ANIMATION;
+
+class SceneRegister
+{
+public:
+       static void RegisterAllScenes(void);
+
+private:
+       SceneRegister(void);
+       ~SceneRegister(void);
+};
+
+#endif // _SCENE_REGISTER_H_
diff --git a/project/inc/SetHoldTestForm.h b/project/inc/SetHoldTestForm.h
new file mode 100644 (file)
index 0000000..bb590ed
--- /dev/null
@@ -0,0 +1,65 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       SetHoldTestForm.h
+ * @brief      This is the header file for the SetHoldTestForm class.
+ *
+ * This header file contains the declarations of the SetHoldTestForm class.
+ */
+
+#ifndef _SET_HOLD_TEST_FORM_H_
+#define _SET_HOLD_TEST_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class SetHoldTestForm
+       : public AnimationBaseForm
+{
+public:
+       SetHoldTestForm(void);
+       virtual ~SetHoldTestForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+
+private:
+       bool __setHoldEnd;
+
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::CheckButton* __pCheckButton;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+
+       static const int CHECKBUTTON_OFFSET_X = 50;
+       static const int CHECKBUTTON_WIDTH = 450;
+       static const int CHECKBUTTON_HEIGHT = 150;
+
+       static const int ANIMATION_OFFSET_X = 145;
+       static const int ANIMATION_OFFSET_Y = 300;
+
+       static const int ID_CHECK_BUTTON_SET_HOLD_CHECKED = 400;
+       static const int ID_CHECK_BUTTON_SET_HOLD_UNCHECKED = 401;
+};
+
+#endif // _SET_HOLD_TEST_FORM_H_
diff --git a/project/inc/SettingPopup.h b/project/inc/SettingPopup.h
new file mode 100644 (file)
index 0000000..598c5a8
--- /dev/null
@@ -0,0 +1,119 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       SettingPopup.h
+ * @brief      This is the header file for the SettingPopup class.
+ *
+ * This header file contains the declarations of the SettingPopup class.
+ */
+
+#ifndef _SETTING_POPUP_H_
+#define _SETTING_POPUP_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FUi.h>
+
+class AnimationPropertyInfo;
+
+class SettingPopup
+       : public Tizen::Ui::Controls::Popup
+       , public Tizen::Ui::IActionEventListener
+       , public Tizen::Ui::IAdjustmentEventListener
+       , public Tizen::Ui::Controls::IIconListViewItemProvider
+       , public Tizen::Ui::Controls::IIconListViewItemEventListener
+{
+public:
+       SettingPopup(void);
+       virtual ~SettingPopup(void);
+       result Construct(AnimationPropertyInfo& animationPropertyInfo);
+
+       void SetAutoReverseButtonEnabled(bool enable);
+       bool IsAutoReverseButtonEnabled(void) const;
+
+       void SetHoldEndButtonEnabled(bool enable);
+       bool IsSetHoldEndButtonEnabled(void) const;
+
+       void SetDelaySliderEnabled(bool enable);
+       bool IsDelaySliderEnabled(void) const;
+
+       void SetDurationSliderEnabled(bool enable);
+       bool IsDurationSliderEnabled(void) const;
+
+       void SetOffsetSliderEnabled(bool enable);
+       bool IsOffsetSliderEnabled(void) const;
+
+       void SetScaleRatioSliderEnabled(bool enable);
+       bool IsScaleRatioSliderEnabled(void) const;
+
+       void SetRepeatSliderEnabled(bool enable);
+       bool IsRepeatSliderEnabled(void) const;
+
+       void UpdatePropertyValue(void);
+
+       virtual void OnActionPerformed(const Tizen::Ui::Control& source, int actionId);
+       virtual void OnAdjustmentValueChanged(const Tizen::Ui::Control& source, int adjustment);
+       virtual void OnIconListViewItemStateChanged(Tizen::Ui::Controls::IconListView& iconListView, int index, Tizen::Ui::Controls::IconListViewItemStatus status);
+
+       virtual int GetItemCount(void);
+       virtual Tizen::Ui::Controls::IconListViewItem* CreateItem(int index);
+       virtual bool DeleteItem(int index, Tizen::Ui::Controls::IconListViewItem* pItem);
+
+private:
+       AnimationPropertyInfo* __pAnimationPropertyInfo;
+
+       Tizen::Ui::Controls::IconListView* __pIconListView;
+
+       Tizen::Ui::Controls::CheckButton* __pButtonAutoReverse;
+       Tizen::Ui::Controls::CheckButton* __pButtonHoldEnd;
+
+       Tizen::Ui::Controls::Label* __pLabelDelay;
+       Tizen::Ui::Controls::Label* __pLabelDuration;
+       Tizen::Ui::Controls::Label* __pLabelOffset;
+       Tizen::Ui::Controls::Label* __pLabelScaleRatio;
+       Tizen::Ui::Controls::Label* __pLabelRepeat;
+
+       Tizen::Ui::Controls::Slider* __pSliderDelay;
+       Tizen::Ui::Controls::Slider* __pSliderDuration;
+       Tizen::Ui::Controls::Slider* __pSliderOffset;
+       Tizen::Ui::Controls::Slider* __pSliderScaleRatio;
+       Tizen::Ui::Controls::Slider* __pSliderRepeat;
+
+       bool __isButtonAutoReverseEnabled;
+       bool __isButtonHoldEndEnabled;
+
+       bool __isSliderDelayEnabled;
+       bool __isSliderDurationEnabled;
+       bool __isSliderOffsetEnabled;
+       bool __isSliderScaleRatioEnabled;
+       bool __isSliderRepeatEnabled;
+
+       static const int MILLISECOND = 1000;
+       static const int ICON_LIST_VIEW_ITEM_COUNT = 6;
+
+       static const int ID_BUTTON_OK = 400;
+       static const int ID_BUTTON_DEFAULT = 401;
+       static const int ID_CHECK_BUTTON_AUTO_REVERSE_CHECKED = 402;
+       static const int ID_CHECK_BUTTON_AUTO_REVERSE_UNCHECKED = 403;
+       static const int ID_CHECK_BUTTON_SET_HOLD_END_CHECKED = 404;
+       static const int ID_CHECK_BUTTON_SET_HOLD_END_UNCHECKED = 405;
+
+       static const Tizen::Base::String __imageFiles[ICON_LIST_VIEW_ITEM_COUNT];
+};
+
+#endif // _SETTING_POPUP_H_
diff --git a/project/inc/TransactionEventListenerForm.h b/project/inc/TransactionEventListenerForm.h
new file mode 100644 (file)
index 0000000..ce0608f
--- /dev/null
@@ -0,0 +1,71 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       TransactionEventListenerForm.h
+ * @brief      This is the header file for the TransactionEventListenerForm class.
+ *
+ * This header file contains the declarations of the TransactionEventListenerForm class.
+ */
+
+#ifndef _TRANSACTION_EVENT_LISTENER_FORM_H_
+#define _TRANSACTION_EVENT_LISTENER_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class TransactionEventListenerForm
+       : public AnimationBaseForm
+       , public Tizen::Ui::Animations::IAnimationTransactionEventListener
+{
+public:
+       TransactionEventListenerForm(void);
+       virtual ~TransactionEventListenerForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+       virtual void OnAnimationTransactionStarted(int transactionId);
+       virtual void OnAnimationTransactionStopped(int transactionId);
+       virtual void OnAnimationTransactionFinished(int transactionId);
+
+private:
+       void PlayFirstTransaction(void);
+       void PlaySecondTransaction(void);
+
+       virtual bool IsAnimating(void);
+
+private:
+       bool __isForward;
+
+       int __firstTransaction;
+       int __secondTransaction;
+
+       Tizen::Ui::Controls::Button* __pButton1;
+       Tizen::Ui::Controls::Button* __pButton2;
+       Tizen::Ui::Controls::Button* __pButton3;
+       Tizen::Ui::Controls::Button* __pButton4;
+       Tizen::Ui::Controls::Button* __pButton5;
+
+       static const int BUTTON_OFFSET_X = 75;
+       static const int BUTTON_OFFSET_Y = 75;
+       static const int BUTTON_WIDTH = 100;
+       static const int BUTTON_HEIGHT = 100;
+};
+
+#endif // _TRANSACTION_EVENT_LISTENER_FORM_H_
+
diff --git a/project/inc/TransactionSetForm.h b/project/inc/TransactionSetForm.h
new file mode 100644 (file)
index 0000000..ac44bae
--- /dev/null
@@ -0,0 +1,56 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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.
+//
+
+/**
+ * @file       TransactionSetForm.h
+ * @brief      This is the header file for the TransactionSetForm class.
+ *
+ * This header file contains the declarations of the TransactionSetForm class.
+ */
+
+#ifndef _TRANSACTION_SET_FORM_H_
+#define _TRANSACTION_SET_FORM_H_
+
+#include "AnimationBaseForm.h"
+
+class TransactionSetForm
+       : public AnimationBaseForm
+{
+public:
+       TransactionSetForm(void);
+       virtual ~TransactionSetForm(void);
+
+       virtual result OnInitializing(void);
+       virtual result Play(void);
+       virtual result Stop(void);
+
+private:
+       int __transactionId;
+
+       Tizen::Ui::Controls::Button* __pLeftTop;
+       Tizen::Ui::Controls::Button* __pRightTop;
+       Tizen::Ui::Controls::Button* __pLeftBottom;
+       Tizen::Ui::Controls::Button* __pRightBottom;
+       Tizen::Ui::Controls::Button* __pCenter;
+
+       static const int BUTTON_OFFSET_X = 50;
+       static const int BUTTON_OFFSET_Y = 50;
+       static const int BUTTON_WIDTH = 150;
+       static const int BUTTON_HEIGHT = 150;
+};
+
+#endif // _TRANSACTION_SET_FORM_H_
diff --git a/project/inc/UiControlAnimator.h b/project/inc/UiControlAnimator.h
new file mode 100644 (file)
index 0000000..779f287
--- /dev/null
@@ -0,0 +1,76 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 _UI_CONTROL_ANIMATOR_H_
+#define _UI_CONTROL_ANIMATOR_H_
+
+#include <FApp.h>
+#include <FBase.h>
+#include <FSystem.h>
+#include <FUi.h>
+
+/**
+ * [UiControlAnimator] UiApp must inherit from UiApp class
+ * which provides basic features necessary to define an UiApp.
+ */
+class UiControlAnimator
+       : public Tizen::App::UiApp
+       , public Tizen::System::IScreenEventListener
+{
+public:
+       /**
+        * [UiControlAnimator] UiApp must have a factory method that creates an instance of itself.
+        */
+       static Tizen::App::UiApp* CreateInstance(void);
+
+public:
+       UiControlAnimator(void);
+       virtual ~UiControlAnimator(void);
+
+public:
+       // Called when the UiApp is initializing.
+       bool OnAppInitializing(Tizen::App::AppRegistry& appRegistry);
+
+       // Called when the UiApp initializing is finished.
+       bool OnAppInitialized(void);
+
+       // Called when the UiApp is requested to terminate.
+       bool OnAppWillTerminate(void);
+
+       // Called when the UiApp is terminating.
+       bool OnAppTerminating(Tizen::App::AppRegistry& appRegistry, bool forcedTermination = false);
+
+       // Called when the UiApp's frame moves to the top of the screen.
+       void OnForeground(void);
+
+       // Called when this UiApp's frame is moved from top of the screen to the background.
+       void OnBackground(void);
+
+       // Called when the system memory is not sufficient to run the UiApp any further.
+       void OnLowMemory(void);
+
+       // Called when the battery level changes.
+       void OnBatteryLevelChanged(Tizen::System::BatteryLevel batteryLevel);
+
+       // Called when the screen turns on.
+       void OnScreenOn(void);
+
+       // Called when the screen turns off.
+       void OnScreenOff(void);
+};
+
+#endif //  _UI_CONTROL_ANIMATOR_H_
\ No newline at end of file
diff --git a/project/inc/UiControlAnimatorFrame.h b/project/inc/UiControlAnimatorFrame.h
new file mode 100644 (file)
index 0000000..4f08f57
--- /dev/null
@@ -0,0 +1,35 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 _UI_CONTROL_ANIMATOR_FRAME_H_
+#define _UI_CONTROL_ANIMATOR_FRAME_H_
+
+#include <FBase.h>
+#include <FUi.h>
+
+class UiControlAnimatorFrame
+       : public Tizen::Ui::Controls::Frame
+{
+public:
+       UiControlAnimatorFrame(void);
+       virtual ~UiControlAnimatorFrame(void);
+
+       virtual result OnInitializing(void);
+       virtual result OnTerminating(void);
+};
+
+#endif //_UI_CONTROL_ANIMATOR_FRAME_H_
diff --git a/project/manifest.xml b/project/manifest.xml
new file mode 100755 (executable)
index 0000000..bae0c0e
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
+    <Id>$(manifestAppId)</Id>
+    <Version>2.0.1</Version>
+    <Type>C++App</Type>
+    <Author/>
+    <Apps>
+        <ApiVersion>2.1</ApiVersion>
+        <Privileges/>
+        <UiApp Main="True" MenuIconVisible="True" Name="$(projectName)">
+            <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
+            <UiTheme SystemTheme="White"/>
+            <DisplayNames>
+                <DisplayName Locale="eng-GB">$(projectName)</DisplayName>
+            </DisplayNames>
+            <Icons>
+                <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
+            </Icons>
+            <LaunchConditions/>
+            <Notifications/>
+        </UiApp>
+    </Apps>
+</Manifest>
diff --git a/project/res/eng-GB.xml b/project/res/eng-GB.xml
new file mode 100644 (file)
index 0000000..7380a61
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>\r
+<!--\r
+       This XML file was automatically generated by UiBuilder - do not modify by hand.\r
+-->\r
+<string_table Bversion="2.0.0.v20110428" Dversion="20100701"/>\r
diff --git a/project/res/screen-density-high/bezier.png b/project/res/screen-density-high/bezier.png
new file mode 100644 (file)
index 0000000..04a79eb
Binary files /dev/null and b/project/res/screen-density-high/bezier.png differ
diff --git a/project/res/screen-density-high/discrete.png b/project/res/screen-density-high/discrete.png
new file mode 100644 (file)
index 0000000..9488671
Binary files /dev/null and b/project/res/screen-density-high/discrete.png differ
diff --git a/project/res/screen-density-high/easein.png b/project/res/screen-density-high/easein.png
new file mode 100644 (file)
index 0000000..70ba8b7
Binary files /dev/null and b/project/res/screen-density-high/easein.png differ
diff --git a/project/res/screen-density-high/easeinout.png b/project/res/screen-density-high/easeinout.png
new file mode 100644 (file)
index 0000000..d3778f4
Binary files /dev/null and b/project/res/screen-density-high/easeinout.png differ
diff --git a/project/res/screen-density-high/easeout.png b/project/res/screen-density-high/easeout.png
new file mode 100644 (file)
index 0000000..7db84ce
Binary files /dev/null and b/project/res/screen-density-high/easeout.png differ
diff --git a/project/res/screen-density-high/linear.png b/project/res/screen-density-high/linear.png
new file mode 100644 (file)
index 0000000..e03804b
Binary files /dev/null and b/project/res/screen-density-high/linear.png differ
diff --git a/project/res/screen-size-normal/IDC_POPUP_SETTING.xml b/project/res/screen-size-normal/IDC_POPUP_SETTING.xml
new file mode 100644 (file)
index 0000000..de90656
--- /dev/null
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE ScenePopup SYSTEM "UIForm.dtd">
+<ScenePopup Bversion="3.0.0.201212281250" Dversion="20120315">
+    <Popup id="IDC_POPUP_SETTING">
+        <property color="" titleText="Settings" titleTextColor=""/>
+        <layout height="1100" mode="Portrait" style="" type="LAYOUT_RELATIVE" width="700"/>
+        <layout height="612" mode="Landscape" style="" type="LAYOUT_RELATIVE" width="414"/>
+    </Popup>
+    <ScrollPanel id="IDC_SCROLLPANEL1" parent="IDC_POPUP_SETTING">
+        <property autoResizingEnabled="true" backgroundColor="" backgroundColorOpacity="0" clientAreaHeight="0" clientAreaWidth="0" pageScrollEnabled="false" scrollBarVisible="true" scrollDirection="SCROLL_PANEL_SCROLL_DIRECTION_VERTICAL" scrollInputMode="SCROLL_INPUT_MODE_ALLOW_ANY_DIRECTION"/>
+        <panelLayout height="1600" mode="Portrait" width="628"/>
+        <panelLayout height="164" mode="Landscape" width="430"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="900" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" type="LAYOUT_VERTICAL_BOX" verticalDirection="VERTICAL_DIRECTION_DOWNWARD" verticalFitPolicy="FIT_POLICY_FIXED" width="628" x="0" y="0"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="64" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" type="LAYOUT_VERTICAL_BOX" verticalDirection="VERTICAL_DIRECTION_DOWNWARD" verticalFitPolicy="FIT_POLICY_FIXED" width="430" x="-40" y="76"/>
+    </ScrollPanel>
+    <Label id="IDC_LABEL1" parent="IDC_SCROLLPANEL1">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_CENTER" text="Interpolator" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="600"/>
+        <layout height="62" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </Label>
+    <IconListView id="IDC_ICONLISTVIEW" parent="IDC_SCROLLPANEL1">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" bitmapPathOfEmptyList="" checkBoxPosition="ICON_LIST_VIEW_CHECK_BOX_POSITION_TOP_RIGHT" colorOfEmptyListText="" highlightedItemTextColor="" itemBitmapHeight="195" itemBitmapWidth="195" itemBorderStyle="ICON_LIST_VIEW_ITEM_BORDER_STYLE_OUTLINE" itemHorizontalAlignment="ALIGNMENT_CENTER" itemHorizontalSpacing="5" itemTextHorizontalAlignment="ALIGNMENT_CENTER" itemTextSize="30" itemTextVerticalAlignment="ICON_LIST_VIEW_ITEM_TEXT_VERTICAL_ALIGNMENT_INSIDE_BOTTOM" itemVerticalAlignment="ALIGNMENT_MIDDLE" itemVerticalSpacing="10" magneticScrollSize="0" normalItemTextColor="" pressedItemTextColor="" scrollDirection="ICON_LIST_VIEW_SCROLL_DIRECTION_VERTICAL" textOfEmptyList="Resource files not available" touchAnimationEnabled="true"/>
+        <layout height="430" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_CENTER" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" style="ICON_LIST_VIEW_STYLE_RADIO" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="600"/>
+        <layout height="149" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" style="ICON_LIST_VIEW_STYLE_RADIO" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="609"/>
+    </IconListView>
+    <CheckButton id="IDC_CHECK_BUTTON_AUTO_REVERSE" parent="IDC_SCROLLPANEL1">
+        <property backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="AutoReverse" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="108" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_CENTER" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="32" style="CHECK_BUTTON_STYLE_ONOFF_SLIDING" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="544"/>
+        <layout height="108" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" style="CHECK_BUTTON_STYLE_ONOFF_SLIDING" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECK_BUTTON_SET_HOLD_END" parent="IDC_SCROLLPANEL1">
+        <property backgroundStyle="BACKGROUND_STYLE_NONE" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="SetHoldEnd" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="108" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_CENTER" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="10" style="CHECK_BUTTON_STYLE_ONOFF_SLIDING" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="544"/>
+        <layout height="108" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" style="CHECK_BUTTON_STYLE_ONOFF_SLIDING" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </CheckButton>
+    <Panel id="IDC_PANEL1" parent="IDC_SCROLLPANEL1">
+        <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+        <layout height="160" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="32" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="628"/>
+        <layout height="62" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </Panel>
+    <Label id="IDC_LABEL2" parent="IDC_PANEL1">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="Delay" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+        <layout height="80" mode="Portrait" width="220" x="0" y="0"/>
+        <layout height="270" mode="Landscape" width="44" x="12" y="0"/>
+    </Label>
+    <Slider id="IDC_SLIDER_DELAY" parent="IDC_PANEL1">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="10" min="0" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="0"/>
+        <layout height="80" mode="Portrait" width="438" x="0" y="79"/>
+        <layout height="226" mode="Landscape" width="38" x="61" y="0"/>
+    </Slider>
+    <Label id="IDC_LABEL9" parent="IDC_PANEL1">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="sec" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="100" x="526" y="79"/>
+        <layout height="351" mode="Landscape" width="44" x="57" y="0"/>
+    </Label>
+    <Label id="IDC_LABEL_DELAY" parent="IDC_PANEL1">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="90" x="437" y="79"/>
+        <layout height="168" mode="Landscape" width="100" x="21" y="0"/>
+    </Label>
+    <Panel id="IDC_PANEL2" parent="IDC_SCROLLPANEL1">
+        <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+        <layout height="160" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="628"/>
+        <layout height="62" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </Panel>
+    <Label id="IDC_LABEL3" parent="IDC_PANEL2">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="Duration" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+        <layout height="80" mode="Portrait" width="220" x="0" y="0"/>
+        <layout height="290" mode="Landscape" width="44" x="11" y="0"/>
+    </Label>
+    <Slider id="IDC_SLIDER_DURATION" parent="IDC_PANEL2">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="10" min="1" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="1"/>
+        <layout height="80" mode="Portrait" width="438" x="0" y="79"/>
+        <layout height="414" mode="Landscape" width="20" x="79" y="0"/>
+    </Slider>
+    <Label id="IDC_LABEL11" parent="IDC_PANEL2">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="sec" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="100" x="526" y="79"/>
+        <layout height="351" mode="Landscape" width="44" x="48" y="0"/>
+    </Label>
+    <Label id="IDC_LABEL_DURATION" parent="IDC_PANEL2">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="90" x="437" y="79"/>
+        <layout height="106" mode="Landscape" width="95" x="25" y="0"/>
+    </Label>
+    <Panel id="IDC_PANEL3" parent="IDC_SCROLLPANEL1">
+        <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+        <layout height="160" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="628"/>
+        <layout height="49" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="444"/>
+    </Panel>
+    <Label id="IDC_LABEL4" parent="IDC_PANEL3">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="Offset" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+        <layout height="80" mode="Portrait" width="220" x="0" y="0"/>
+        <layout height="243" mode="Landscape" width="44" x="10" y="0"/>
+    </Label>
+    <Slider id="IDC_SLIDER_OFFSET" parent="IDC_PANEL3">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="10" min="0" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="0"/>
+        <layout height="80" mode="Portrait" width="438" x="0" y="79"/>
+        <layout height="326" mode="Landscape" width="35" x="64" y="0"/>
+    </Slider>
+    <Label id="IDC_LABEL10" parent="IDC_PANEL3">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="sec" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="100" x="526" y="79"/>
+        <layout height="358" mode="Landscape" width="44" x="58" y="0"/>
+    </Label>
+    <Label id="IDC_LABEL_OFFSET" parent="IDC_PANEL3">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="90" x="437" y="79"/>
+        <layout height="200" mode="Landscape" width="95" x="25" y="0"/>
+    </Label>
+    <Panel id="IDC_PANEL4" parent="IDC_SCROLLPANEL1">
+        <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+        <layout height="160" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="628"/>
+        <layout height="52" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="531"/>
+    </Panel>
+    <Label id="IDC_LABEL5" parent="IDC_PANEL4">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="ScaleRatio" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+        <layout height="80" mode="Portrait" width="220" x="0" y="0"/>
+        <layout height="182" mode="Landscape" width="44" x="12" y="0"/>
+    </Label>
+    <Slider id="IDC_SLIDER_SCALE_RATIO" parent="IDC_PANEL4">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="10" min="1" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="1"/>
+        <layout height="80" mode="Portrait" width="438" x="0" y="79"/>
+        <layout height="376" mode="Landscape" width="30" x="69" y="0"/>
+    </Slider>
+    <Label id="IDC_LABEL_SCALE_RATIO" parent="IDC_PANEL4">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="90" x="437" y="79"/>
+        <layout height="254" mode="Landscape" width="95" x="33" y="0"/>
+    </Label>
+    <Panel id="IDC_PANEL5" parent="IDC_SCROLLPANEL1">
+        <property backgroundColor="" backgroundColorOpacity="0" compositeEnabled="true" groupStyle="GROUP_STYLE_NONE"/>
+        <layout height="160" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Portrait" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="628"/>
+        <layout height="52" horizontalAlignment="LAYOUT_HORIZONTAL_ALIGN_LEFT" horizontalFitPolicy="FIT_POLICY_FIXED" horizontalLeftMargin="0" horizontalRightMargin="0" mode="Landscape" spacing="0" type="NONE" verticalFitPolicy="FIT_POLICY_FIXED" weight="0.0" width="531"/>
+    </Panel>
+    <Label id="IDC_LABEL6" parent="IDC_PANEL5">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_LEFT" text="Repeat" textColor="" textSize="38" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_BOTTOM"/>
+        <layout height="80" mode="Portrait" width="220" x="0" y="0"/>
+        <layout height="365" mode="Landscape" width="44" x="14" y="0"/>
+    </Label>
+    <Slider id="IDC_SLIDER_REPEAT" parent="IDC_PANEL5">
+        <property backgroundColor="" backgroundStyle="BACKGROUND_STYLE_DEFAULT" barColor="" color="" colorOfTitleText="" colorOpacity="100" disabledThumbBitmap="" disabledThumbTextColor="" groupStyle="GROUP_STYLE_NONE" highlightedThumbBitmap="" highlightedThumbTextColor="" leftIconBitmapPath="" max="10" min="1" normalThumbBitmap="" normalThumbTextColor="" pressedThumbBitmap="" pressedThumbTextColor="" rightIconBitmapPath="" showTitleText="false" sliderStyle="SLIDER_STYLE_BUBBLE" titleText="" value="1"/>
+        <layout height="80" mode="Portrait" width="438" x="0" y="79"/>
+        <layout height="383" mode="Landscape" width="31" x="68" y="0"/>
+    </Slider>
+    <Label id="IDC_LABEL_REPEAT" parent="IDC_PANEL5">
+        <property backgroundBitmapPath="" backgroundColor="" backgroundColorOpacity="0" horizontalAlign="ALIGN_RIGHT" text="" textColor="" textSize="33" textStyle="LABEL_TEXT_STYLE_NORMAL" verticalAlign="ALIGN_MIDDLE"/>
+        <layout height="80" mode="Portrait" width="90" x="437" y="79"/>
+        <layout height="175" mode="Landscape" width="95" x="30" y="0"/>
+    </Label>
+    <Button id="IDC_BUTTON_OK" parent="IDC_POPUP_SETTING">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Ok" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="IDC_POPUP_SETTING" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_POPUP_SETTING" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="10" marginLeft="100" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="200" x="100" y="920"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="430" x="-40" y="444"/>
+    </Button>
+    <Button id="IDC_BUTTON_DEFAULT" parent="IDC_POPUP_SETTING">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Default" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="IDC_POPUP_SETTING" bottomRelationType="RECT_EDGE_RELATION_BOTTOM_TO_BOTTOM" centerHorizontal="false" centerVertical="false" height="90" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="10" marginLeft="0" marginRight="100" marginTop="0" mode="Portrait" rightRelation="IDC_POPUP_SETTING" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="200" x="328" y="920"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="210" x="180" y="444"/>
+    </Button>
+</ScenePopup>
diff --git a/project/res/screen-size-normal/IDF_FORM_TRANSITION_TEST_FORM.xml b/project/res/screen-size-normal/IDF_FORM_TRANSITION_TEST_FORM.xml
new file mode 100644 (file)
index 0000000..ebe54bc
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+       This XML file was automatically generated by UiBuilder - do not modify by hand.
+-->
+<!DOCTYPE Scene SYSTEM "UIForm.dtd">
+<Scene Bversion="3.0.0.201212281250" Dversion="20120315">
+    <LogicalCoordinate>720</LogicalCoordinate>
+    <Form id="IDF_FORM_TRANSITION_TEST_FORM">
+        <property backgroundColor="" backgroundColorOpacity="100" orientation="Portrait" softKey0NormalIcon="" softKey0PressedIcon="" softKey0Text="" softKey1NormalIcon="" softKey1PressedIcon="" softKey1Text="" title="" titleAlign="ALIGN_CENTER" titleIcon="" translucentFooter="false" translucentHeader="false" translucentIndicator="false"/>
+        <layout mode="Portrait" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+        <layout mode="Landscape" style="FORM_STYLE_INDICATOR|FORM_STYLE_HEADER|FORM_STYLE_FOOTER" type="LAYOUT_RELATIVE"/>
+    </Form>
+    <Footer>
+        <property backgroundBitmapPath="" color="" colorOpacity="0" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" footerStyle="FOOTER_STYLE_BUTTON_TEXT" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" showBackButton="true"/>
+        <itemSet/>
+    </Footer>
+    <Header>
+        <property backgroundBitmapPath="" color="" colorOpacity="0" descriptionText="" descriptionTextColor="" disabledButtonColor="" disabledButtonColorOpacity="0" disabledButtonTextColor="" disabledItemColor="" disabledItemColorOpacity="0" disabledItemTextColor="" headerStyle="HEADER_STYLE_TITLE" highlightedButtonColor="" highlightedButtonColorOpacity="0" highlightedButtonTextColor="" highlightedItemColor="" highlightedItemColorOpacity="0" highlightedItemTextColor="" normalButtonColor="" normalButtonColorOpacity="0" normalButtonTextColor="" normalItemColor="" normalItemColorOpacity="0" normalItemTextColor="" pressedButtonColor="" pressedButtonColorOpacity="0" pressedButtonTextColor="" pressedItemColor="" pressedItemColorOpacity="0" pressedItemTextColor="" selectedItemColor="" selectedItemColorOpacity="0" selectedItemTextColor="" titleIconPath="" titleText="DUMMY FORM" titleTextColor=""/>
+        <itemSet/>
+    </Header>
+    <Button id="IDC_BUTTON1" parent="IDF_FORM_TRANSITION_TEST_FORM">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Button1" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDF_FORM_TRANSITION_TEST_FORM" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_LEFT" marginBottom="0" marginLeft="50" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="170" x="50" y="831"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="366" y="408"/>
+    </Button>
+    <Button id="IDC_BUTTON3" parent="IDF_FORM_TRANSITION_TEST_FORM">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Button3" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="50" marginTop="0" mode="Portrait" rightRelation="IDF_FORM_TRANSITION_TEST_FORM" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_RIGHT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="170" x="500" y="829"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="414" x="875" y="423"/>
+    </Button>
+    <Button id="IDC_BUTTON2" parent="IDF_FORM_TRANSITION_TEST_FORM">
+        <property disableTextColor="" disabledBitmapPath="" disabledColor="" disabledColorOpacity="100" highlightedBGBitmapPath="" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" horizontalAlign="ALIGN_CENTER" normalBGBitmapPath="" normalBitmapPath="" normalColor="" normalColorOpacity="100" normalTextColor="" pressedBGBitmapPath="" pressedBitmapPath="" pressedColor="" pressedColorOpacity="100" pressedTextColor="" text="Button2" textSize="33" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="74" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="IDC_BUTTON1" leftRelationType="RECT_EDGE_RELATION_LEFT_TO_RIGHT" marginBottom="0" marginLeft="55" marginRight="55" marginTop="0" mode="Portrait" rightRelation="IDC_BUTTON3" rightRelationType="RECT_EDGE_RELATION_RIGHT_TO_LEFT" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="170" x="275" y="830"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="72" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="414" x="865" y="423"/>
+    </Button>
+    <CheckButton id="IDC_CHECKBUTTON1" parent="IDF_FORM_TRANSITION_TEST_FORM">
+        <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="CheckButton1" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="148" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="20" y="339"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="487" y="207"/>
+    </CheckButton>
+    <CheckButton id="IDC_CHECKBUTTON2" parent="IDF_FORM_TRANSITION_TEST_FORM">
+        <property backgroundStyle="BACKGROUND_STYLE_DEFAULT" colorOfText="" colorOfTitleText="" disabledColor="" disabledColorOpacity="100" disabledTextColor="" disabledTitleTextColor="" groupId="0" groupStyle="GROUP_STYLE_NONE" highlightedColor="" highlightedColorOpacity="100" highlightedTextColor="" highlightedTitleTextColor="" horizontalAlign="ALIGN_LEFT" normalColor="" normalColorOpacity="100" pressedColor="" pressedColorOpacity="100" pressedTextColor="" pressedTitleTextColor="" showTitleText="false" text="CheckButton2" titleText="" verticalAlign="ALIGN_MIDDLE"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="148" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Portrait" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="680" x="20" y="525"/>
+        <layout bottomRelation="" bottomRelationType="" centerHorizontal="false" centerVertical="false" height="108" horizontalFitPolicy="FIT_POLICY_FIXED" leftRelation="" leftRelationType="" marginBottom="0" marginLeft="0" marginRight="0" marginTop="0" mode="Landscape" rightRelation="" rightRelationType="" style="" topRelation="" topRelationType="" verticalFitPolicy="FIT_POLICY_FIXED" width="533" x="497" y="217"/>
+    </CheckButton>
+</Scene>
diff --git a/project/shared/data/nofile.dummy b/project/shared/data/nofile.dummy
new file mode 100644 (file)
index 0000000..3c546eb
--- /dev/null
@@ -0,0 +1 @@
+dummy file
\ No newline at end of file
diff --git a/project/shared/res/screen-density-xhigh/mainmenu.png b/project/shared/res/screen-density-xhigh/mainmenu.png
new file mode 100644 (file)
index 0000000..983c883
Binary files /dev/null and b/project/shared/res/screen-density-xhigh/mainmenu.png differ
diff --git a/project/shared/trusted/nofile.dummy b/project/shared/trusted/nofile.dummy
new file mode 100644 (file)
index 0000000..3c546eb
--- /dev/null
@@ -0,0 +1 @@
+dummy file
\ No newline at end of file
diff --git a/project/src/AnimationBaseForm.cpp b/project/src/AnimationBaseForm.cpp
new file mode 100644 (file)
index 0000000..d775661
--- /dev/null
@@ -0,0 +1,197 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "AnimationBaseForm.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+AnimationBaseForm::AnimationBaseForm(void)
+       : _pSettingPopup(null)
+       , __position(ANIMATION_POS_START)
+{
+}
+
+AnimationBaseForm::~AnimationBaseForm(void)
+{
+}
+
+result
+AnimationBaseForm::Initialize(void)
+{
+       result r = E_SUCCESS;
+
+       Form::Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       SetFormBackEventListener(this);
+
+       Footer* pFooter = GetFooter();
+       pFooter->SetStyle(FOOTER_STYLE_BUTTON_TEXT);
+       pFooter->SetBackButton();
+
+       InitializeFooter();
+
+       _pSettingPopup = new (std::nothrow) SettingPopup();
+       _pSettingPopup->Construct(_animationPropertyInfo);
+       _pSettingPopup->SetShowState(false);
+       _pSettingPopup->Show();
+
+       return r;
+}
+
+
+result
+AnimationBaseForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       return r;
+}
+
+result
+AnimationBaseForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       return r;
+}
+
+AnimationDirection
+AnimationBaseForm::GetAnimationDirection(void)
+{
+       if (__position == ANIMATION_POS_START)
+       {
+               //if (_animationPropertyInfo.IsHoldEndEnabled() == true && _animationPropertyInfo.IsAutoReverseEnabled() == true)
+               if (_animationPropertyInfo.IsAutoReverseEnabled() == true)
+               {
+                       __position = ANIMATION_POS_START;
+                       return ANIMATION_FORWARD;
+               }
+
+               if (_animationPropertyInfo.IsHoldEndEnabled() == true)
+               {
+                       __position = ANIMATION_POS_END;
+               }
+               else
+               {
+                       __position = ANIMATION_POS_START;
+               }
+
+               return ANIMATION_FORWARD;
+       }
+       else
+       {
+               //if (_animationPropertyInfo.IsHoldEndEnabled() == true && _animationPropertyInfo.IsAutoReverseEnabled() == true)
+               if (_animationPropertyInfo.IsAutoReverseEnabled() == true)
+               {
+                       __position = ANIMATION_POS_END;
+                       return ANIMATION_BACKWARD;
+               }
+
+               if (_animationPropertyInfo.IsHoldEndEnabled() == true)
+               {
+                       __position = ANIMATION_POS_START;
+               }
+               else
+               {
+                       __position = ANIMATION_POS_END;
+               }
+
+               return ANIMATION_BACKWARD;
+       }
+}
+
+void
+AnimationBaseForm::OnFormBackRequested(Form& source)
+{
+       SceneManager::GetInstance()->GoBackward(BackwardSceneTransition());
+}
+
+void
+AnimationBaseForm::OnActionPerformed(const Control& source, int actionId)
+{
+       switch (actionId)
+       {
+       case ID_FOOTER_BUTTON_PLAY:
+               if (IsAnimating() == false)
+               {
+                       Play();
+               }
+
+               break;
+
+       case ID_FOOTER_BUTTON_STOP:
+               if (IsAnimating() == true)
+               {
+                       Stop();
+               }
+               break;
+
+       case ID_FOOTER_BUTTON_SETTINGS:
+               _pSettingPopup->SetShowState(true);
+               _pSettingPopup->Show();
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+AnimationBaseForm::InitializeFooter(void)
+{
+       FooterItem playItem;
+       playItem.Construct(ID_FOOTER_BUTTON_PLAY);
+       playItem.SetText(L"Play");
+
+       FooterItem stopItem;
+       stopItem.Construct(ID_FOOTER_BUTTON_STOP);
+       stopItem.SetText(L"Stop");
+
+       FooterItem settingsItem;
+       settingsItem.Construct(ID_FOOTER_BUTTON_SETTINGS);
+       settingsItem.SetText(L"Settings");
+
+       Footer* pFooter = GetFooter();
+       pFooter->AddItem(playItem);
+       pFooter->AddItem(stopItem);
+       pFooter->AddItem(settingsItem);
+       pFooter->AddActionEventListener(*this);
+}
+
+bool
+AnimationBaseForm::IsAnimating(void)
+{
+       for (int i = 0; i < GetControlCount(); i++)
+       {
+               Control* pControl = GetControl(i);
+               ControlAnimator* pAnimator = pControl->GetControlAnimator();
+               if (pAnimator != null)
+               {
+                       if (pAnimator->GetStatus() == ANIMATOR_STATUS_PLAYING)
+                       {
+                               return true;
+                       }
+               }
+       }
+
+       return false;
+}
+
diff --git a/project/src/AnimationGroupParallelForm.cpp b/project/src/AnimationGroupParallelForm.cpp
new file mode 100644 (file)
index 0000000..d516248
--- /dev/null
@@ -0,0 +1,151 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "AnimationGroupParallelForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+AnimationGroupParallelForm::AnimationGroupParallelForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+AnimationGroupParallelForm::~AnimationGroupParallelForm(void)
+{
+}
+
+result
+AnimationGroupParallelForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"ANIMATION GROUP PARALLEL");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       return r;
+}
+
+result
+AnimationGroupParallelForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightBottom = __pRightBottom->GetPosition();
+
+       Dimension startRightTop = __pRightTop->GetSize();
+       Dimension startLeftBottom = __pLeftBottom->GetSize();
+
+       float startRotate, endRotate;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endLeftTop, endRightBottom;
+       Dimension endRightTop, endLeftBottom;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y + ANIMATION_OFFSET_Y);;
+               endRightBottom = Point((parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH)) - ANIMATION_OFFSET_X, (parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT)) - ANIMATION_OFFSET_Y);
+
+               endRightTop = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endLeftBottom = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+
+               startRotate = 360;
+               endRotate = 0;
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightBottom = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               endRightTop = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+               endLeftBottom = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+
+               startRotate = 0;
+               endRotate = 360;
+       }
+
+       PointAnimation animPosLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animPosRightBottom(startRightBottom, endRightBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animDimRightTop(startRightTop, endRightTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animDimLeftBottom(startLeftBottom, endLeftBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation rotateAnim(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animPosLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animPosRightBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animDimRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animDimLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(rotateAnim);
+
+       ParallelAnimationGroup animLeftTop, animRightTop, animLeftBottom, animRightBottom;
+
+       animLeftTop.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animLeftTop.AddAnimation(ANIMATION_TARGET_POSITION, animPosLeftTop);
+
+       animRightTop.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animRightTop.AddAnimation(ANIMATION_TARGET_SIZE, animDimRightTop);
+
+       animLeftBottom.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animLeftBottom.AddAnimation(ANIMATION_TARGET_SIZE, animDimLeftBottom);
+
+       animRightBottom.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animRightBottom.AddAnimation(ANIMATION_TARGET_POSITION, animPosRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(animRightBottom);
+
+       return r;
+}
+
+result
+AnimationGroupParallelForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAllAnimations();
+       (__pRightTop->GetControlAnimator())->StopAllAnimations();
+       (__pLeftBottom->GetControlAnimator())->StopAllAnimations();
+       (__pRightBottom->GetControlAnimator())->StopAllAnimations();
+
+       return r;
+}
+
diff --git a/project/src/AnimationGroupSequentialForm.cpp b/project/src/AnimationGroupSequentialForm.cpp
new file mode 100644 (file)
index 0000000..1a299bd
--- /dev/null
@@ -0,0 +1,151 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "AnimationGroupSequentialForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+AnimationGroupSequentialForm::AnimationGroupSequentialForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+AnimationGroupSequentialForm::~AnimationGroupSequentialForm(void)
+{
+}
+
+result
+AnimationGroupSequentialForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"ANIMATION GROUP SEQUENTIAL");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       return r;
+}
+
+result
+AnimationGroupSequentialForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightBottom = __pRightBottom->GetPosition();
+
+       Dimension startRightTop = __pRightTop->GetSize();
+       Dimension startLeftBottom = __pLeftBottom->GetSize();
+
+       float startRotate, endRotate;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endLeftTop, endRightBottom;
+       Dimension endRightTop, endLeftBottom;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y + ANIMATION_OFFSET_Y);;
+               endRightBottom = Point((parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH)) - ANIMATION_OFFSET_X, (parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT)) - ANIMATION_OFFSET_Y);
+
+               endRightTop = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endLeftBottom = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+
+               startRotate = 360;
+               endRotate = 0;
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightBottom = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               endRightTop = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+               endLeftBottom = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+
+               startRotate = 0;
+               endRotate = 360;
+       }
+
+       PointAnimation animPosLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animPosRightBottom(startRightBottom, endRightBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animDimRightTop(startRightTop, endRightTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animDimLeftBottom(startLeftBottom, endLeftBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation rotateAnim(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animPosLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animPosRightBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animDimRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animDimLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(rotateAnim);
+
+       SequentialAnimationGroup animLeftTop, animRightTop, animLeftBottom, animRightBottom;
+
+       animLeftTop.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animLeftTop.AddAnimation(ANIMATION_TARGET_POSITION, animPosLeftTop);
+
+       animRightTop.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animRightTop.AddAnimation(ANIMATION_TARGET_SIZE, animDimRightTop);
+
+       animLeftBottom.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animLeftBottom.AddAnimation(ANIMATION_TARGET_SIZE, animDimLeftBottom);
+
+       animRightBottom.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animRightBottom.AddAnimation(ANIMATION_TARGET_POSITION, animPosRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(animRightBottom);
+
+       return r;
+}
+
+result
+AnimationGroupSequentialForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAllAnimations();
+       (__pRightTop->GetControlAnimator())->StopAllAnimations();
+       (__pLeftBottom->GetControlAnimator())->StopAllAnimations();
+       (__pRightBottom->GetControlAnimator())->StopAllAnimations();
+
+       return r;
+}
+
diff --git a/project/src/AnimationPropertyInfo.cpp b/project/src/AnimationPropertyInfo.cpp
new file mode 100644 (file)
index 0000000..801ba5f
--- /dev/null
@@ -0,0 +1,164 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "AnimationPropertyInfo.h"
+
+using namespace Tizen::Ui::Animations;
+
+AnimationPropertyInfo::AnimationPropertyInfo(void)
+       : __delay(DEFAULT_DELAY)
+       , __duration(DEFAULT_DURATION)
+       , __offset(DEFAULT_OFFSET)
+       , __scaleRatio(DEFAULT_SCALE_RATIO)
+       , __repeatCount(DEFAULT_REPEAT_COUNT)
+       , __isAutoReverse(DEFAULT_AUTO_REVERSE)
+       , __isSetHoldEnd(DEFAULT_SET_HOLD_END)
+       , __interpolatorType(ANIMATION_INTERPOLATOR_LINEAR)
+{
+}
+
+AnimationPropertyInfo::~AnimationPropertyInfo(void)
+{
+}
+
+void
+AnimationPropertyInfo::SetDelay(int delay)
+{
+       __delay = delay;
+}
+
+int
+AnimationPropertyInfo::GetDelay(void) const
+{
+       return __delay;
+}
+
+void
+AnimationPropertyInfo::SetDuration(int duration)
+{
+       __duration = duration;
+}
+
+int
+AnimationPropertyInfo::GetDuration(void) const
+{
+       return __duration;
+}
+
+void
+AnimationPropertyInfo::SetOffset(int offset)
+{
+       __offset = offset;
+}
+
+int
+AnimationPropertyInfo::GetOffset(void) const
+{
+       return __offset;
+}
+
+void
+AnimationPropertyInfo::SetScaleRatio(int scaleRatio)
+{
+       __scaleRatio = scaleRatio;
+}
+
+int
+AnimationPropertyInfo::GetScaleRatio(void) const
+{
+       return __scaleRatio;
+}
+
+void
+AnimationPropertyInfo::SetRepeatCount(int repeatCount)
+{
+       __repeatCount = repeatCount;
+}
+
+int
+AnimationPropertyInfo::GetRepeatCount(void) const
+{
+       return __repeatCount;
+}
+
+void
+AnimationPropertyInfo::SetAutoReverseEnabled(bool autoReverse)
+{
+       __isAutoReverse = autoReverse;
+}
+
+bool
+AnimationPropertyInfo::IsAutoReverseEnabled(void) const
+{
+       return __isAutoReverse;
+}
+
+void
+AnimationPropertyInfo::SetHoldEndEnabled(bool holdEnd)
+{
+       __isSetHoldEnd = holdEnd;
+}
+
+bool
+AnimationPropertyInfo::IsHoldEndEnabled(void) const
+{
+       return __isSetHoldEnd;
+}
+
+void
+AnimationPropertyInfo::SetInterpolatorType(AnimationInterpolatorType interpolatorType)
+{
+       __interpolatorType = interpolatorType;
+}
+
+AnimationInterpolatorType
+AnimationPropertyInfo::GetInterpolatorType(void) const
+{
+       return __interpolatorType;
+}
+
+void
+AnimationPropertyInfo::SetDefaultValue(void)
+{
+       __delay = DEFAULT_DELAY;
+       __duration = DEFAULT_DURATION;
+       __offset = DEFAULT_OFFSET;
+       __scaleRatio = DEFAULT_SCALE_RATIO;
+       __repeatCount = DEFAULT_REPEAT_COUNT;
+       __isAutoReverse = DEFAULT_AUTO_REVERSE;
+       __isSetHoldEnd = DEFAULT_SET_HOLD_END;
+       __interpolatorType = ANIMATION_INTERPOLATOR_LINEAR;
+}
+
+void
+AnimationPropertyInfo::ApplyGlobalSettings(AnimationBase& animation)
+{
+       animation.SetInterpolatorType(__interpolatorType);
+       if (__interpolatorType == ANIMATION_INTERPOLATOR_BEZIER)
+       {
+               animation.SetBezierControlPoints(0.5f, 0.5f, 0.5f, 0.5f);
+       }
+
+       animation.SetAutoReverseEnabled(__isAutoReverse);
+       animation.SetHoldEndEnabled(__isSetHoldEnd);
+       animation.SetDelay(__delay);
+       animation.SetDuration(__duration);
+       animation.SetOffset(__offset);
+       animation.SetRepeatCount(__repeatCount);
+       animation.SetScaleRatio(__scaleRatio);
+}
+
diff --git a/project/src/ControlEventListenerForm.cpp b/project/src/ControlEventListenerForm.cpp
new file mode 100644 (file)
index 0000000..05c047b
--- /dev/null
@@ -0,0 +1,284 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "ControlEventListenerForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+ControlEventListenerForm::ControlEventListenerForm(void)
+       : __pButton1(null)
+       , __pButton2(null)
+       , __pButton3(null)
+       , __pButton4(null)
+       , __pButton5(null)
+       , __pButton6(null)
+       , __pButton7(null)
+       , __pButton8(null)
+       , __pButton9(null)
+       , __pButton10(null)
+       , __pButton11(null)
+       , __pButton12(null)
+       , __pLabel(null)
+{
+}
+
+ControlEventListenerForm::~ControlEventListenerForm(void)
+{
+       Stop();
+}
+
+result
+ControlEventListenerForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"CONTROL EVENT LISTENER");
+
+       Footer* pFooter = Form::GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_SETTINGS, false);
+
+       __pButton1 = new (std::nothrow) Button();
+       __pButton1->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton1->SetName(L"Button1");
+       __pButton1->SetShowState(false);
+       __pButton1->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton1);
+
+       __pButton2 = new (std::nothrow) Button();
+       __pButton2->Construct(Rectangle(3 *  BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton2->SetName(L"Button2");
+       __pButton2->SetShowState(false);
+       __pButton2->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton2);
+
+       __pButton3 = new (std::nothrow) Button();
+       __pButton3->Construct(Rectangle(5 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton3->SetName(L"Button3");
+       __pButton3->SetShowState(false);
+       __pButton3->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton3);
+
+       __pButton4 = new (std::nothrow) Button();
+       __pButton4->Construct(Rectangle(7 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton4->SetName(L"Button4");
+       __pButton4->SetShowState(false);
+       __pButton4->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton4);
+
+       __pButton5 = new (std::nothrow) Button();
+       __pButton5->Construct(Rectangle(BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton5->SetName(L"Button5");
+       __pButton5->SetShowState(false);
+       __pButton5->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton5);
+
+       __pButton6 = new (std::nothrow) Button();
+       __pButton6->Construct(Rectangle(3 * BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton6->SetName(L"Button6");
+       __pButton6->SetShowState(false);
+       __pButton6->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton6);
+
+       __pButton7 = new (std::nothrow) Button();
+       __pButton7->Construct(Rectangle(5 * BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton7->SetName(L"Button7");
+       __pButton7->SetShowState(false);
+       __pButton7->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton7);
+
+       __pButton8 = new (std::nothrow) Button();
+       __pButton8->Construct(Rectangle(7 * BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton8->SetName(L"Button8");
+       __pButton8->SetShowState(false);
+       __pButton8->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton8);
+
+       __pButton9 = new (std::nothrow) Button();
+       __pButton9->Construct(Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton9->SetName(L"Button9");
+       __pButton9->SetShowState(false);
+       __pButton9->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton9);
+
+       __pButton10 = new (std::nothrow) Button();
+       __pButton10->Construct(Rectangle(3 * BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton10->SetName(L"Button10");
+       __pButton10->SetShowState(false);
+       __pButton10->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton10);
+
+       __pButton11 = new (std::nothrow) Button();
+       __pButton11->Construct(Rectangle(5 * BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton11->SetName(L"Button11");
+       __pButton11->SetShowState(false);
+       __pButton11->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton11);
+
+       __pButton12 = new (std::nothrow) Button();
+       __pButton12->Construct(Rectangle(7 * BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH / 2, BUTTON_HEIGHT / 2), L"I");
+       __pButton12->SetName(L"Button12");
+       __pButton12->SetShowState(false);
+       __pButton12->GetControlAnimator()->AddControlAnimatorDetailedEventListener(*this);
+       AddControl(*__pButton12);
+
+       __pLabel = new (std::nothrow) Label();
+       __pLabel->Construct(Rectangle(BUTTON_OFFSET_X, GetClientAreaBounds().height - LABEL_HEIGHT, LABEL_WIDTH, LABEL_HEIGHT), L"Press Play");
+       __pLabel->SetTextHorizontalAlignment(ALIGNMENT_LEFT);
+       __pLabel->SetTextVerticalAlignment(ALIGNMENT_MIDDLE);
+       AddControl(*__pLabel);
+
+       return r;
+}
+
+result
+ControlEventListenerForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       __pLabel->SetShowState(false);
+
+       IntegerAnimation animButton(0, 1, AnimationPropertyInfo::DEFAULT_DURATION / 4, ANIMATION_INTERPOLATOR_LINEAR);
+       (__pButton1->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+
+       return r;
+}
+
+result
+ControlEventListenerForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pButton1->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton2->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton3->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton4->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton5->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton6->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton7->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton8->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton9->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton10->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton11->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton12->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       __pButton1->SetShowState(false);
+       __pButton2->SetShowState(false);
+       __pButton3->SetShowState(false);
+       __pButton4->SetShowState(false);
+       __pButton5->SetShowState(false);
+       __pButton6->SetShowState(false);
+       __pButton7->SetShowState(false);
+       __pButton8->SetShowState(false);
+       __pButton9->SetShowState(false);
+       __pButton10->SetShowState(false);
+       __pButton11->SetShowState(false);
+       __pButton12->SetShowState(false);
+
+       __pLabel->SetShowState(true);
+
+       return r;
+}
+
+void
+ControlEventListenerForm::OnControlAnimationStarted(ControlAnimator& source, Control& control, ControlAnimatorTriggerType animTrigger, AnimationTargetType animTarget, AnimationBase* pAnimation)
+{
+}
+
+void
+ControlEventListenerForm::OnControlAnimationRepeated(ControlAnimator& source, Control& control, ControlAnimatorTriggerType animTrigger, AnimationTargetType animTarget, AnimationBase* pAnimation, int repeatCount)
+{
+}
+
+void
+ControlEventListenerForm::OnControlAnimationFinished(ControlAnimator& source, Control& control, ControlAnimatorTriggerType animTrigger, AnimationTargetType animTarget, AnimationBase* pAnimation)
+{
+       String name = control.GetName();
+
+       IntegerAnimation animButton(0, 1, AnimationPropertyInfo::DEFAULT_DURATION / 4, ANIMATION_INTERPOLATOR_LINEAR);
+
+       if (name == L"Button1")
+       {
+               (__pButton2->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button2")
+       {
+               (__pButton3->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button3")
+       {
+               (__pButton4->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button4")
+       {
+               (__pButton5->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button5")
+       {
+               (__pButton6->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button6")
+       {
+               (__pButton7->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button7")
+       {
+               (__pButton8->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button8")
+       {
+               (__pButton9->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button9")
+       {
+               (__pButton10->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button10")
+       {
+               (__pButton11->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button11")
+       {
+               (__pButton12->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animButton);
+       }
+       else if (name == L"Button12")
+       {
+               __pButton1->SetShowState(false);
+               __pButton2->SetShowState(false);
+               __pButton3->SetShowState(false);
+               __pButton4->SetShowState(false);
+               __pButton5->SetShowState(false);
+               __pButton6->SetShowState(false);
+               __pButton7->SetShowState(false);
+               __pButton8->SetShowState(false);
+               __pButton9->SetShowState(false);
+               __pButton10->SetShowState(false);
+               __pButton11->SetShowState(false);
+               __pButton12->SetShowState(false);
+
+               __pLabel->SetShowState(true);
+       }
+}
+
+void
+ControlEventListenerForm::OnControlAnimationStopped(ControlAnimator& source, Control& control, ControlAnimatorTriggerType animTrigger, AnimationTargetType animTarget, AnimationBase* pAnimation)
+{
+}
+
diff --git a/project/src/CustomImplicitAnimationForm.cpp b/project/src/CustomImplicitAnimationForm.cpp
new file mode 100644 (file)
index 0000000..a79ce16
--- /dev/null
@@ -0,0 +1,155 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "CustomImplicitAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+CustomImplicitAnimationForm::CustomImplicitAnimationForm(void)
+       : __transactionId(0)
+       , __pButton1(null)
+       , __pButton2(null)
+       , __pButton3(null)
+       , __pButton4(null)
+{
+}
+
+CustomImplicitAnimationForm::~CustomImplicitAnimationForm(void)
+{
+}
+
+result
+CustomImplicitAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"CUSTOM IMPLICIT ANIMATION");
+
+       Footer* pFooter = Form::GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_SETTINGS, false);
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pButton1 = new (std::nothrow) Button();
+       __pButton1->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Position");
+       AddControl(*__pButton1);
+
+       __pButton2 = new (std::nothrow) Button();
+       __pButton2->Construct(Rectangle(BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Size");
+       AddControl(*__pButton2);
+
+       __pButton3 = new (std::nothrow) Button();
+       __pButton3->Construct(Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Bounds");
+       AddControl(*__pButton3);
+
+       __pButton4 = new (std::nothrow) Button();
+       __pButton4->Construct(Rectangle(BUTTON_OFFSET_X, 7 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"ShowState");
+       AddControl(*__pButton4);
+
+
+       return r;
+}
+
+result
+CustomImplicitAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startPosButton1 = __pButton1->GetPosition();
+       Dimension startDimButton2 = __pButton2->GetSize();
+       Rectangle startRectButton3 = __pButton3->GetBounds();
+       float startOpacitybutton4 = __pButton4->GetShowState() ? 1.0f : 0.0f;
+       float startRotate;
+
+       Point endPosButton1;
+       Dimension endDimButton2;
+       Rectangle endRectButton3;
+       float endOpacityButton4;
+       float endRotate;
+
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endPosButton1 = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y);
+               endDimButton2 = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endRectButton3 = Rectangle(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endOpacityButton4 = 0.0f;
+
+               startRotate = 0.0f;
+               endRotate = 360.0f;
+       }
+       else
+       {
+               endPosButton1 = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endDimButton2 = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+               endRectButton3 = Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               endOpacityButton4 = 1.0f;
+
+               startRotate = 360.0f;
+               endRotate = 0.0f;
+       }
+
+       PointAnimation animPosButton1(startPosButton1, endPosButton1, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animDimButton2(startDimButton2, endDimButton2, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RectangleAnimation animRectButton3(startRectButton3, endRectButton3, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       FloatAnimation animOpacityButton4(startOpacitybutton4, endOpacityButton4, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       RotateAnimation rotateAnim(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       ParallelAnimationGroup animButton1, animButton2, animButton3, animButton4;
+
+       animButton1.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animButton1.AddAnimation(ANIMATION_TARGET_POSITION, animPosButton1);
+
+       animButton2.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animButton2.AddAnimation(ANIMATION_TARGET_SIZE, animDimButton2);
+
+       animButton3.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animButton3.AddAnimation(ANIMATION_TARGET_POSITION, animRectButton3);
+
+       animButton4.AddAnimation(ANIMATION_TARGET_ROTATION, rotateAnim);
+       animButton4.AddAnimation(ANIMATION_TARGET_ALPHA, animOpacityButton4);
+
+       AnimationTransaction::Begin(__transactionId);
+
+       (__pButton1->GetControlAnimator())->SetAnimation(ANIMATION_TRIGGER_POSITION_CHANGE, &animButton1);
+       (__pButton2->GetControlAnimator())->SetAnimation(ANIMATION_TRIGGER_SIZE_CHANGE, &animButton2);
+       (__pButton3->GetControlAnimator())->SetAnimation(ANIMATION_TRIGGER_POSITION_CHANGE, &animButton3);
+       (__pButton4->GetControlAnimator())->SetAnimation(ANIMATION_TRIGGER_SHOW_STATE_CHANGE, &animButton4);
+
+       (__pButton1->GetControlAnimator())->SetPosition(endPosButton1);
+       (__pButton2->GetControlAnimator())->SetSize(endDimButton2);
+       (__pButton3->GetControlAnimator())->SetBounds(endRectButton3);
+       (__pButton4->GetControlAnimator())->SetShowState(static_cast< int >(endOpacityButton4));
+
+       AnimationTransaction::Commit();
+
+       return r;
+}
+
+result
+CustomImplicitAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       AnimationTransaction::Stop(__transactionId);
+
+       return r;
+}
+
diff --git a/project/src/DimensionAnimationForm.cpp b/project/src/DimensionAnimationForm.cpp
new file mode 100644 (file)
index 0000000..0342304
--- /dev/null
@@ -0,0 +1,118 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "DimensionAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+DimensionAnimationForm::DimensionAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+       , __pCenter(null)
+{
+}
+
+DimensionAnimationForm::~DimensionAnimationForm(void)
+{
+}
+
+result
+DimensionAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = GetHeader();
+       pHeader->SetTitleText(L"DIMENSION ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       __pCenter = new (std::nothrow) Button();
+       __pCenter->Construct(Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, parentBounds.height / 2 - BUTTON_HEIGHT / 2, BUTTON_WIDTH, BUTTON_HEIGHT), L"V");
+       AddControl(*__pCenter);
+
+       return r;
+}
+
+result
+DimensionAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Dimension startSide = __pLeftTop->GetSize();
+       Dimension startCenter = __pCenter->GetSize();
+
+       Dimension endSide, endCenter;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endSide = Dimension(BUTTON_WIDTH - ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT - ANIMATION_OFFSET_HEIGHT);
+               endCenter = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+       }
+       else
+       {
+               endSide = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+               endCenter = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+       }
+
+       DimensionAnimation animSide(startSide, endSide, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       DimensionAnimation animCenter(startCenter, endCenter, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animSide);
+       _animationPropertyInfo.ApplyGlobalSettings(animCenter);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animSide);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animSide);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animSide);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animSide);
+       (__pCenter->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animCenter);
+
+       return r;
+}
+
+result
+DimensionAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pCenter->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/FloatAnimationForm.cpp b/project/src/FloatAnimationForm.cpp
new file mode 100644 (file)
index 0000000..648c3ab
--- /dev/null
@@ -0,0 +1,115 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "FloatAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+FloatAnimationForm::FloatAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+FloatAnimationForm::~FloatAnimationForm(void)
+{
+}
+
+result
+FloatAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = GetHeader();
+       pHeader->SetTitleText(L"FLOAT ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       __pLeftTop->SetShowState(false);
+       __pRightBottom->SetShowState(false);
+
+       return r;
+}
+
+result
+FloatAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+       float start, end;
+
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               start = 1.0f;
+               end = 0.0f;
+       }
+       else
+       {
+               start = 0.0f;
+               end = 1.0f;
+       }
+
+       FloatAnimation animLeftTop(end, start, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       FloatAnimation animRightTop(start, end, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       FloatAnimation animLeftBottom(start, end, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       FloatAnimation animRightBottom(end, start, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animRightBottom);
+
+       return r;
+}
+
+result
+FloatAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/FormFactory.cpp b/project/src/FormFactory.cpp
new file mode 100644 (file)
index 0000000..9a8ef66
--- /dev/null
@@ -0,0 +1,172 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "FormFactory.h"
+#include "MainForm.h"
+
+#include "IntegerAnimationForm.h"
+#include "FloatAnimationForm.h"
+#include "PointAnimationForm.h"
+#include "DimensionAnimationForm.h"
+#include "RectangleAnimationForm.h"
+#include "RotateAnimationForm.h"
+#include "KeyFrameAnimationForm.h"
+#include "OutOfBoundsCheckForm.h"
+#include "ControlEventListenerForm.h"
+#include "SetHoldTestForm.h"
+#include "AnimationGroupParallelForm.h"
+#include "AnimationGroupSequentialForm.h"
+#include "TransactionSetForm.h"
+#include "TransactionEventListenerForm.h"
+#include "FormTransitionForm.h"
+#include "PanelTransitionForm.h"
+#include "ImplicitAnimationForm.h"
+#include "CustomImplicitAnimationForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const wchar_t* FORM_MAIN_MENU = L"FormMainMenu";
+
+const wchar_t* FORM_INTEGER_ANIMATION = L"FormIntergerAnimation";
+const wchar_t* FORM_FLOAT_ANIMATION = L"FormFloatAnimation";
+const wchar_t* FORM_POINT_ANIMATION = L"FormPointAnimation";
+const wchar_t* FORM_DIMENSION_ANIMATION = L"FormDimension";
+const wchar_t* FORM_RECTANGLE_ANIMATION = L"FormRectangleAnimation";
+const wchar_t* FORM_ROTATE_ANIMATION = L"FormRotateAnimation";
+
+const wchar_t* FORM_KEY_FRAME_ANIMATION = L"FormKeyFrameAnimation";
+const wchar_t* FORM_OUT_OF_BOUNDS_CHECK = L"FormOutOfBoundsCheck";
+const wchar_t* FORM_CONTROL_EVENT_LISTENER = L"FormControlEventListener";
+const wchar_t* FORM_SET_HOLD_TEST = L"FormSetHoldTest";
+
+const wchar_t* FORM_ANIMATION_GROUP_PARALLEL = L"FormAnimationGroupParallel";
+const wchar_t* FORM_ANIMATION_GROUP_SEQUENTIAL = L"FormAnimationGroupSequential";
+
+const wchar_t* FORM_TRANSACTION_SET = L"FormTransactionSet";
+const wchar_t* FORM_TRANSACTION_EVENT_LISTENER = L"FormTransactionEventListener";
+
+const wchar_t* FORM_FORM_TRANSITION = L"FormFormTransition";
+const wchar_t* FORM_PANEL_TRANSITION = L"FormPanelTransition";
+
+const wchar_t* FORM_IMPLICIT_ANIMATION = L"FormImplicitAnimation";
+const wchar_t* FORM_CUSTOM_IMPLICIT_ANIMATION = L"FormCustomImplicitAnimation";
+
+
+FormFactory::FormFactory(void)
+{
+}
+
+FormFactory::~FormFactory(void)
+{
+}
+
+Form*
+FormFactory::CreateFormN(const String& formId, const SceneId& sceneId)
+{
+       Form* pNewForm = null;
+
+       if (formId == FORM_MAIN_MENU)
+       {
+               MainForm* pMainForm = new (std::nothrow) MainForm();
+               pMainForm->Initialize();
+               pNewForm = pMainForm;
+       }
+       else
+       {
+               AnimationBaseForm* pAnimationForm = null;
+
+               if (formId == FORM_INTEGER_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) IntegerAnimationForm();
+               }
+               else if (formId == FORM_FLOAT_ANIMATION)
+               {
+                       pAnimationForm= new (std::nothrow) FloatAnimationForm();
+               }
+               else if (formId == FORM_POINT_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) PointAnimationForm();
+               }
+               else if (formId == FORM_DIMENSION_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) DimensionAnimationForm();
+               }
+               else if (formId == FORM_RECTANGLE_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) RectangleAnimationForm();
+               }
+               else if (formId == FORM_ROTATE_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) RotateAnimationForm();
+               }
+               else if (formId == FORM_KEY_FRAME_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) KeyFrameAnimationForm();
+               }
+               else if (formId == FORM_OUT_OF_BOUNDS_CHECK)
+               {
+                       pAnimationForm = new (std::nothrow) OutOfBoundsCheckForm();
+               }
+               else if (formId == FORM_CONTROL_EVENT_LISTENER)
+               {
+                       pAnimationForm = new (std::nothrow) ControlEventListenerForm();
+               }
+               else if (formId == FORM_SET_HOLD_TEST)
+               {
+                       pAnimationForm = new (std::nothrow) SetHoldTestForm();
+               }
+               else if (formId == FORM_ANIMATION_GROUP_PARALLEL)
+               {
+                       pAnimationForm = new (std::nothrow) AnimationGroupParallelForm();
+               }
+               else if (formId == FORM_ANIMATION_GROUP_SEQUENTIAL)
+               {
+                       pAnimationForm = new (std::nothrow) AnimationGroupSequentialForm();
+               }
+               else if (formId == FORM_TRANSACTION_SET)
+               {
+                       pAnimationForm = new (std::nothrow) TransactionSetForm();
+               }
+               else if (formId == FORM_TRANSACTION_EVENT_LISTENER)
+               {
+                       pAnimationForm = new (std::nothrow) TransactionEventListenerForm();
+               }
+               else if (formId == FORM_FORM_TRANSITION)
+               {
+                       pAnimationForm = new (std::nothrow) FormTransitionForm();
+               }
+               else if (formId == FORM_PANEL_TRANSITION)
+               {
+                       pAnimationForm = new (std::nothrow) PanelTransitionForm();
+               }
+               else if (formId == FORM_IMPLICIT_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) ImplicitAnimationForm();
+               }
+               else if (formId == FORM_CUSTOM_IMPLICIT_ANIMATION)
+               {
+                       pAnimationForm = new (std::nothrow) CustomImplicitAnimationForm();
+               }
+
+               pAnimationForm->Initialize();
+               pNewForm = pAnimationForm;
+       }
+
+       return pNewForm;
+}
diff --git a/project/src/FormTransitionForm.cpp b/project/src/FormTransitionForm.cpp
new file mode 100644 (file)
index 0000000..a442023
--- /dev/null
@@ -0,0 +1,196 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "FormTransitionForm.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const String FormTransitionForm::__animType[FormTransitionForm::LIST_VIEW_ITEM_COUNT ] = {
+       L"Translate Left",
+       L"Translate Right",
+       L"Fade In_Out",
+       L"Zoom In",
+       L"Zoom Out",
+       L"Depth In",
+       L"Depth Out"
+};
+
+FormTransitionForm::FormTransitionForm(void)
+       : __pTestForm(null)
+       , __pListView(null)
+{
+}
+
+FormTransitionForm::~FormTransitionForm(void)
+{
+}
+
+result
+FormTransitionForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"FORM TRANSITION");
+
+       Footer* pFooter = GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_PLAY, false);
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_STOP, false);
+
+       _pSettingPopup->SetAutoReverseButtonEnabled(false);
+       _pSettingPopup->SetHoldEndButtonEnabled(false);
+       _pSettingPopup->SetDelaySliderEnabled(false);
+       _pSettingPopup->SetOffsetSliderEnabled(false);
+       _pSettingPopup->SetScaleRatioSliderEnabled(false);
+       _pSettingPopup->SetRepeatSliderEnabled(false);
+       _pSettingPopup->SetName(L"FormTransitionForm");
+
+       Slider* pSliderDuration = static_cast<Slider*>(_pSettingPopup->GetControl(L"IDC_SLIDER_DURATION", true));
+       pSliderDuration->SetValue(10);
+
+       Rectangle bounds(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height);
+
+       __pListView = new (std::nothrow) ListView();
+       __pListView->Construct(bounds, true, false);
+       __pListView->SetItemProvider(*this);
+       __pListView->AddListViewItemEventListener(*this);
+       AddControl(*__pListView);
+
+       Frame* pFrame = UiApp::GetInstance()->GetFrame(L"UiControlAnimator");
+
+       __pTestForm = new (std::nothrow) Form();
+       __pTestForm->Construct(L"IDF_FORM_TRANSITION_TEST_FORM");
+       __pTestForm->SetFormBackEventListener(this);
+       pFrame->AddControl(*__pTestForm);
+
+       return r;
+}
+
+void
+FormTransitionForm::OnFormBackRequested(Form& source)
+{
+       Frame* pFrame = UiApp::GetInstance()->GetFrame(L"UiControlAnimator");
+
+       if (pFrame->GetCurrentForm() == __pTestForm)
+       {
+               FrameAnimator* pAnimator = pFrame->GetFrameAnimator();
+               pAnimator->SetCurrentForm(*this);
+       }
+       else
+       {
+               SceneManager::GetInstance()->GoBackward(BackwardSceneTransition());
+       }
+}
+
+void
+FormTransitionForm::OnListViewItemStateChanged(ListView& listView, int index, int elementId, ListItemStatus status)
+{
+       Frame* pFrame = UiApp::GetInstance()->GetFrame(L"UiControlAnimator");
+
+       FrameAnimatorFormTransitionAnimation animation;
+       switch (index)
+       {
+       case 0:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_TRANSLATE_LEFT;
+               break;
+
+       case 1:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_TRANSLATE_RIGHT;
+               break;
+
+       case 2:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_FADE_IN_OUT;
+               break;
+
+       case 3:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_ZOOM_IN;
+               break;
+
+       case 4:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_ZOOM_OUT;
+               break;
+
+       case 5:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_DEPTH_IN;
+               break;
+
+       case 6:
+               animation = FRAME_ANIMATOR_FORM_TRANSITION_ANIMATION_DEPTH_OUT;
+               break;
+
+       default:
+               break;
+       }
+
+       FrameAnimator* pFrameAnimator = pFrame->GetFrameAnimator();
+       pFrameAnimator->SetFormTransitionAnimation(animation, _animationPropertyInfo.GetDuration(), _animationPropertyInfo.GetInterpolatorType());
+       pFrameAnimator->SetCurrentForm(*__pTestForm);
+}
+
+void
+FormTransitionForm::OnListViewItemSwept(ListView& listView, int index, SweepDirection direction)
+{
+}
+
+void
+FormTransitionForm::OnListViewContextItemStateChanged(ListView& listView, int index, int elementId, ListContextItemStatus status)
+{
+}
+
+int
+FormTransitionForm::GetItemCount(void)
+{
+       return LIST_VIEW_ITEM_COUNT ;
+}
+
+ListItemBase*
+FormTransitionForm::CreateItem(int index, int itemWidth)
+{
+       SimpleItem* pItem = new (std::nothrow) SimpleItem();
+       pItem->Construct(Dimension(itemWidth, LIST_VIEW_ITEM_HEIGHT), LIST_ANNEX_STYLE_NORMAL);
+       pItem->SetElement(__animType[index]);
+
+       return pItem;
+}
+
+bool
+FormTransitionForm::DeleteItem(int index, ListItemBase* pItem, int itemWidth)
+{
+       delete pItem;
+       pItem = null;
+
+       return true;
+}
+
+bool
+FormTransitionForm::IsAnimating(void)
+{
+       Frame* pFrame = UiApp::GetInstance()->GetFrame(L"UiControlAnimator");
+       FrameAnimator* pFrameAnimator = pFrame->GetFrameAnimator();
+
+       if (pFrameAnimator->GetStatus() == ANIMATOR_STATUS_PLAYING)
+       {
+               return true;
+       }
+
+       return false;
+}
diff --git a/project/src/ImplicitAnimationForm.cpp b/project/src/ImplicitAnimationForm.cpp
new file mode 100644 (file)
index 0000000..1f208ae
--- /dev/null
@@ -0,0 +1,117 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "ImplicitAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+ImplicitAnimationForm::ImplicitAnimationForm(void)
+       : __transactionId(0)
+       , __pButton1(null)
+       , __pButton2(null)
+       , __pButton3(null)
+       , __pButton4(null)
+{
+}
+
+ImplicitAnimationForm::~ImplicitAnimationForm(void)
+{
+}
+
+result
+ImplicitAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"IMPLICIT ANIMATION");
+
+       Footer* pFooter = Form::GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_SETTINGS, false);
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pButton1 = new (std::nothrow) Button();
+       __pButton1->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Position");
+       AddControl(*__pButton1);
+
+       __pButton2 = new (std::nothrow) Button();
+       __pButton2->Construct(Rectangle(BUTTON_OFFSET_X, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Size");
+       AddControl(*__pButton2);
+
+       __pButton3 = new (std::nothrow) Button();
+       __pButton3->Construct(Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"Bounds");
+       AddControl(*__pButton3);
+
+       __pButton4 = new (std::nothrow) Button();
+       __pButton4->Construct(Rectangle(BUTTON_OFFSET_X, 7 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"ShowState");
+       AddControl(*__pButton4);
+
+       return r;
+}
+
+result
+ImplicitAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point point;
+       Dimension size;
+       Rectangle bounds;
+       bool showState;
+
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               point = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y);
+               size = Dimension(BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               bounds = Rectangle(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               showState = false;
+       }
+       else
+       {
+               point = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               size = Dimension(BUTTON_WIDTH, BUTTON_HEIGHT);
+               bounds = Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               showState = true;
+       }
+
+       AnimationTransaction::Begin(__transactionId);
+
+       (__pButton1->GetControlAnimator())->SetPosition(point);
+       (__pButton2->GetControlAnimator())->SetSize(size);
+       (__pButton3->GetControlAnimator())->SetBounds(bounds);
+       (__pButton4->GetControlAnimator())->SetShowState(showState);
+
+       AnimationTransaction::Commit();
+
+       return r;
+}
+
+result
+ImplicitAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       AnimationTransaction::Stop(__transactionId);
+
+       return r;
+}
+
diff --git a/project/src/IntegerAnimationForm.cpp b/project/src/IntegerAnimationForm.cpp
new file mode 100644 (file)
index 0000000..ce892a2
--- /dev/null
@@ -0,0 +1,116 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "IntegerAnimationForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+IntegerAnimationForm::IntegerAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+IntegerAnimationForm::~IntegerAnimationForm(void)
+{
+}
+
+result
+IntegerAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = GetHeader();
+       pHeader->SetTitleText(L"INTEGER ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       __pLeftTop->SetShowState(false);
+       __pRightBottom->SetShowState(false);
+
+       return r;
+}
+
+result
+IntegerAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+       int start, end;
+
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               start = 0;
+               end = 1;
+       }
+       else
+       {
+               start = 1;
+               end = 0;
+       }
+
+       IntegerAnimation animLeftTop(start, end, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       IntegerAnimation animRightTop(end, start, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       IntegerAnimation animLeftBottom(end, start, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       IntegerAnimation animRightBottom(start, end, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ALPHA, animRightBottom);
+
+       return r;
+}
+
+result
+IntegerAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/KeyFrameAnimationForm.cpp b/project/src/KeyFrameAnimationForm.cpp
new file mode 100644 (file)
index 0000000..ec5bd96
--- /dev/null
@@ -0,0 +1,102 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "KeyFrameAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+KeyFrameAnimationForm::KeyFrameAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+{
+}
+
+KeyFrameAnimationForm::~KeyFrameAnimationForm(void)
+{
+}
+
+result
+KeyFrameAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"KEY FRAME ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       return r;
+}
+
+result
+KeyFrameAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightTop = __pRightTop->GetPosition();
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endLeftTop, endRightTop;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endRightTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y);
+       }
+
+       PointAnimation animLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightTop(startRightTop, endRightTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+
+       animLeftTop.AddKeyFrame(AnimationPropertyInfo::DEFAULT_DURATION / 2, Point(parentBounds.width / 2 - BUTTON_WIDTH / 2, parentBounds.height / 2 - BUTTON_HEIGHT / 2));
+       animRightTop.AddKeyFrame(AnimationPropertyInfo::DEFAULT_DURATION / 2, Point(parentBounds.width / 2 - BUTTON_WIDTH / 2, parentBounds.height / 2 - BUTTON_HEIGHT / 2));
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightTop);
+
+       return r;
+}
+
+result
+KeyFrameAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/MainForm.cpp b/project/src/MainForm.cpp
new file mode 100644 (file)
index 0000000..91cffc6
--- /dev/null
@@ -0,0 +1,279 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 <FApp.h>
+#include "MainForm.h"
+#include "SceneRegister.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+const String MainForm::__groupItemName[MainForm::GROUPED_LIST_VIEW_GROUP_ITEM_COUNT] =
+{
+       L"Basic Animation",
+       L"Advanced Animation",
+       L"Animation Group",
+       L"Transaction",
+       L"Transition",
+       L"Implicit Animation",
+};
+
+const String MainForm::__basicAnimationName[MainForm::ANIMATION_BASIC_ITEM_COUNT] = {
+       L"Integer Animation",
+       L"Float Animation",
+       L"Point Animation",
+       L"Dimension Animation",
+       L"Rectangle Animation",
+       L"Rotate Animation",
+};
+
+const String MainForm::__advancedAnimationName[MainForm::ANIMATION_ADVANCED_ITEM_COUNT] = {
+       L"Key Frame Animation",
+       L"Out of Bounds Check",
+       L"Control Event Listener",
+       L"SetHold Test"
+};
+
+const String MainForm::__groupAnimationName[MainForm::ANIMATION_GROUP_ITEM_COUNT] = {
+       L"Animation Group Parallel",
+       L"Animation Group Sequential"
+};
+
+const String MainForm::__transactionAnimationName[MainForm::ANIMATION_TRANSACTION_ITEM_COUNT] = {
+       L"Transaction Set",
+       L"Transaction Event Listener"
+};
+
+const String MainForm::__transitionAnimationName[MainForm::ANIMATION_TRANSITION_ITEM_COUNT] = {
+       L"Form Transition",
+       L"Panel Transition"
+};
+
+const String MainForm::__implicitAnimationName[MainForm::ANIMATION_IMPLICIT_ITEM_COUNT] = {
+       L"Implicit Animation",
+       L"Custom Implicit Animation"
+};
+
+
+
+const wchar_t* MainForm::__sceneId[][6] = {
+       {SCENE_INTEGER_ANIMATION, SCENE_FLOAT_ANIMATION, SCENE_POINT_ANIMATION,
+                       SCENE_DIMENSION_ANIMATION, SCENE_RECTANGLE_ANIMATION, SCENE_ROTATE_ANIMATION},
+       {SCENE_KEY_FRAME_ANIMATION, SCENE_OUT_OF_BOUNDS_CHECK, SCENE_CONTROL_EVENT_LISTENER, SCENE_SET_HOLD_TEST},
+       {SCENE_ANIMATION_GROUP_PARALLEL, SCENE_ANIMATION_GROUP_SEQUENTIAL},
+       {SCENE_TRANSACTION_SET, SCENE_TRANSACTION_EVENT_LISTENER},
+       {SCENE_FORM_TRANSITION, SCENE_PANEL_TRANSITION},
+       {SCENE_IMPLICIT_ANIMATION, SCENE_CUSTOM_IMPLICIT_ANIMATION}
+};
+
+MainForm::MainForm(void)
+       : __pGroupedListView(null)
+{
+}
+
+MainForm::~MainForm(void)
+{
+}
+
+result
+MainForm::Initialize(void)
+{
+       result r = E_SUCCESS;
+
+       Form::Construct(FORM_STYLE_NORMAL | FORM_STYLE_INDICATOR | FORM_STYLE_HEADER | FORM_STYLE_FOOTER);
+       SetFormBackEventListener(this);
+
+       return r;
+}
+
+result
+MainForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = GetHeader();
+       pHeader->SetStyle(HEADER_STYLE_TITLE);
+       pHeader->SetTitleText(L"UI CONTROL ANIMATOR");
+
+       Footer* pFooter = GetFooter();
+       pFooter->SetStyle(FOOTER_STYLE_SEGMENTED_TEXT);
+       pFooter->SetBackButton();
+
+       Rectangle bounds(0, 0, GetClientAreaBounds().width, GetClientAreaBounds().height);
+       __pGroupedListView = new (std::nothrow) GroupedListView();
+       __pGroupedListView->Construct(bounds, GROUPED_LIST_VIEW_STYLE_INDEXED, true, false);
+       __pGroupedListView->SetItemProvider(*this);
+       __pGroupedListView->AddGroupedListViewItemEventListener(*this);
+       AddControl(*__pGroupedListView);
+
+       return r;
+}
+
+result
+MainForm::OnTerminating(void)
+{
+       result r = E_SUCCESS;
+
+       return r;
+}
+
+void
+MainForm::OnGroupedListViewContextItemStateChanged(GroupedListView &listView, int groupIndex, int itemIndex, int elementId, ListContextItemStatus state)
+{
+}
+
+void
+MainForm::OnGroupedListViewItemStateChanged(GroupedListView &listView, int groupIndex, int itemIndex, int elementId, ListItemStatus state)
+{
+       const wchar_t* id = __sceneId[groupIndex][itemIndex];
+       SceneManager::GetInstance()->GoForward(ForwardSceneTransition(String(id)), null);
+}
+
+void
+MainForm::OnGroupedListViewItemSwept(GroupedListView &listView, int groupIndex,  int itemIndex, SweepDirection direction)
+{
+}
+
+int
+MainForm::GetGroupCount(void)
+{
+       return GROUPED_LIST_VIEW_GROUP_ITEM_COUNT;
+}
+
+int
+MainForm::GetItemCount(int groupIndex)
+{
+       int itemCount = 0;
+
+       switch (groupIndex)
+       {
+       case 0:
+               itemCount = ANIMATION_BASIC_ITEM_COUNT;
+               break;
+
+       case 1:
+               itemCount = ANIMATION_ADVANCED_ITEM_COUNT;
+               break;
+
+       case 2:
+               itemCount = ANIMATION_GROUP_ITEM_COUNT;
+               break;
+
+       case 3:
+               itemCount = ANIMATION_TRANSACTION_ITEM_COUNT;
+               break;
+
+       case 4:
+               itemCount = ANIMATION_TRANSITION_ITEM_COUNT;
+               break;
+
+       case 5:
+               itemCount = ANIMATION_IMPLICIT_ITEM_COUNT;
+               break;
+
+       default:
+               break;
+    }
+
+    return itemCount;
+}
+
+ListItemBase*
+MainForm::CreateItem(int groupIndex, int itemIndex, int itemWidth)
+{
+       String elementText;
+
+       switch(groupIndex)
+       {
+       case 0:
+               elementText = __basicAnimationName[itemIndex];
+               break;
+
+       case 1:
+               elementText = __advancedAnimationName[itemIndex];
+               break;
+
+       case 2:
+               elementText = __groupAnimationName[itemIndex];
+               break;
+
+       case 3:
+               elementText = __transactionAnimationName[itemIndex];
+               break;
+
+       case 4:
+               elementText = __transitionAnimationName[itemIndex];
+               break;
+
+       case 5:
+               elementText = __implicitAnimationName[itemIndex];
+               break;
+
+       default:
+               break;
+       }
+
+       CustomItem* pItem = new (std::nothrow) CustomItem();
+       pItem->Construct(Dimension(itemWidth, GROUPED_LIST_VIEW_CUSTOM_ITEM_HEIGHT), LIST_ANNEX_STYLE_NORMAL);
+
+       Rectangle textRect = Rectangle(GROUPED_LIST_VIEW_CUSTOM_ITEM_TEXT_POS_X, 0, itemWidth - GROUPED_LIST_VIEW_CUSTOM_ITEM_TEXT_POS_X, GROUPED_LIST_VIEW_CUSTOM_ITEM_HEIGHT);
+       pItem->AddElement(textRect, 0, elementText, true);
+
+       return pItem;
+}
+
+GroupItem*
+MainForm::CreateGroupItem(int groupIndex, int itemWidth)
+{
+       GroupItem* pItem = new (std::nothrow) GroupItem();
+       pItem->Construct(Dimension(itemWidth, GROUPED_LIST_VIEW_GROUP_ITEM_HEIGHT));
+       pItem->SetElement(__groupItemName[groupIndex], null);
+
+       return pItem;
+}
+
+bool
+MainForm::DeleteItem(int groupIndex, int itemIndex, ListItemBase* pItem, int itemWidth)
+{
+       delete pItem;
+       pItem = null;
+
+       return true;
+}
+
+bool
+MainForm::DeleteGroupItem(int groupIndex, GroupItem* pItem, int itemWidth)
+{
+       delete pItem;
+       pItem = null;
+
+       return true;
+}
+
+void
+MainForm::OnFormBackRequested(Form& source)
+{
+       UiApp* pApp = UiApp::GetInstance();
+       AppAssert(pApp);
+       pApp->Terminate();
+}
+
diff --git a/project/src/OutOfBoundsCheckForm.cpp b/project/src/OutOfBoundsCheckForm.cpp
new file mode 100644 (file)
index 0000000..caf4074
--- /dev/null
@@ -0,0 +1,111 @@
+
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "OutOfBoundsCheckForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+OutOfBoundsCheckForm::OutOfBoundsCheckForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+OutOfBoundsCheckForm::~OutOfBoundsCheckForm(void)
+{
+}
+
+result
+OutOfBoundsCheckForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"OUT OF BOUNDS CHECK");
+
+       Footer* pFooter = Form::GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_SETTINGS, false);
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(-BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(2 * -BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       return r;
+}
+
+result
+OutOfBoundsCheckForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightTop = __pRightTop->GetPosition();
+       Point startLeftBottom = __pLeftBottom->GetPosition();
+       Point startRightBottom = __pRightBottom->GetPosition();
+
+       PointAnimation animLeftTop(startLeftTop, startLeftTop + Point(BUTTON_WIDTH, 0), AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightTop(startRightTop, startRightTop - Point(BUTTON_WIDTH, 0), AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animLeftBottom(startLeftBottom, startLeftBottom + Point(BUTTON_OFFSET_X + BUTTON_WIDTH, 0), AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightBottom(startRightBottom, startRightBottom - Point(BUTTON_OFFSET_X + BUTTON_WIDTH, 0), AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.SetAutoReverseEnabled(true);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightBottom);;
+
+       return r;
+}
+
+result
+OutOfBoundsCheckForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/PanelTransitionForm.cpp b/project/src/PanelTransitionForm.cpp
new file mode 100644 (file)
index 0000000..01a94fe
--- /dev/null
@@ -0,0 +1,209 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "PanelTransitionForm.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+PanelTransitionForm::PanelTransitionForm(void)
+       : __position(POS_CENTER)
+       , __pContainerPanel(null)
+       , __pCurrentPanel(null)
+{
+}
+
+PanelTransitionForm::~PanelTransitionForm(void)
+{
+}
+
+result
+PanelTransitionForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"PANEL TRANSITION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pContainerPanel = new (std::nothrow) Panel();
+       __pContainerPanel->Construct(Rectangle(-parentBounds.width, 0, parentBounds.width * 3, parentBounds.height));
+       AddControl(*__pContainerPanel);
+
+       Panel* pLeftPanel = new (std::nothrow) Panel();
+       pLeftPanel->Construct(Rectangle(0, 0, parentBounds.width, parentBounds.height));
+       pLeftPanel->SetBackgroundColor(Color::GetColor(COLOR_ID_RED));
+       __pContainerPanel->AddControl(*pLeftPanel);
+
+       Panel* pCenterPanel = new (std::nothrow) Panel();
+       pCenterPanel->Construct(Rectangle(parentBounds.width, 0, parentBounds.width, parentBounds.height));
+       pCenterPanel->SetBackgroundColor(Color::GetColor(COLOR_ID_GREEN));
+       __pContainerPanel->AddControl(*pCenterPanel);
+
+       Panel* pRightPanel = new (std::nothrow) Panel();
+       pRightPanel->Construct(Rectangle(parentBounds.width * 2, 0, parentBounds.width, parentBounds.height));
+       pRightPanel->SetBackgroundColor(Color::GetColor(COLOR_ID_BLUE));
+       __pContainerPanel->AddControl(*pRightPanel);
+
+       Button* pLeftButton = new (std::nothrow) Button();
+       pLeftButton->Construct(Rectangle(parentBounds.width / 4, parentBounds.height / 4, BUTTON_WIDTH, BUTTON_HEIGHT), L"Left Panel");
+       pLeftPanel->AddControl(*pLeftButton);
+
+       Button* pCenterButton = new (std::nothrow) Button();
+       pCenterButton->Construct(Rectangle(parentBounds.width / 4, parentBounds.height / 4, BUTTON_WIDTH, BUTTON_HEIGHT), L"Center Panel");
+       pCenterPanel->AddControl(*pCenterButton);
+
+       Button* pRightButton = new (std::nothrow) Button();
+       pRightButton->Construct(Rectangle(parentBounds.width / 4, parentBounds.height / 4, BUTTON_WIDTH, BUTTON_HEIGHT ), L"Right Panel");
+       pRightPanel->AddControl(*pRightButton);
+
+       __position = POS_CENTER;
+
+       return r;
+}
+
+void
+PanelTransitionForm::OnActionPerformed(const Control& source, int actionId)
+{
+       switch (actionId)
+       {
+       case ID_FOOTER_BUTTON_LEFT:
+               TranslateToLeft();
+               break;
+
+       case ID_FOOTER_BUTTON_RIGHT:
+               TranslateToRight();
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+PanelTransitionForm::InitializeFooter(void)
+{
+       FooterItem playItem;
+       playItem.Construct(ID_FOOTER_BUTTON_LEFT);
+       playItem.SetText(L"Left");
+
+       FooterItem stopItem;
+       stopItem.Construct(ID_FOOTER_BUTTON_RIGHT);
+       stopItem.SetText(L"Right");
+
+       Footer* pFooter = GetFooter();
+       pFooter->AddItem(playItem);
+       pFooter->AddItem(stopItem);
+       pFooter->AddActionEventListener(*this);
+}
+
+void
+PanelTransitionForm::TranslateToLeft(void)
+{
+       if (IsAnimating() == true)
+       {
+               return;
+       }
+
+       Rectangle bounds = __pContainerPanel->GetBounds();
+
+       Point start, end;
+       PointAnimation pointAnimation(Point(0, 0), Point(0, 0), 0, ANIMATION_INTERPOLATOR_LINEAR);
+
+       if (__position == POS_LEFT)
+       {
+               start = __pContainerPanel->GetBounds().GetTopLeft();
+               end = start + Point(ANIMATED_PANEL_BOUNCE_BACK_WIDTH, 0);
+
+               pointAnimation.SetStartValue(start);
+               pointAnimation.SetEndValue(end);
+               pointAnimation.SetDuration(AnimationPropertyInfo::DEFAULT_DURATION / 4);
+               pointAnimation.SetAutoReverseEnabled(true);
+       }
+       else
+       {
+               start = __pContainerPanel->GetBounds().GetTopLeft();
+               end = start + Point(bounds.width / ANIMATED_PANEL_COUNT, 0);
+
+               pointAnimation.SetStartValue(start);
+               pointAnimation.SetEndValue(end);
+               pointAnimation.SetDuration(AnimationPropertyInfo::DEFAULT_DURATION / 2);
+
+               if (__position == POS_CENTER)
+               {
+                       __position = POS_LEFT;
+               }
+               else if (__position == POS_RIGHT)
+               {
+                       __position = POS_CENTER;
+               }
+       }
+
+       ControlAnimator* pControlAnimator = __pContainerPanel->GetControlAnimator();
+       pControlAnimator->StartUserAnimation(ANIMATION_TARGET_POSITION, pointAnimation);
+}
+
+void
+PanelTransitionForm::TranslateToRight(void)
+{
+       if (IsAnimating() == true)
+       {
+               return;
+       }
+
+       Rectangle bounds = __pContainerPanel->GetBounds();
+
+       Point start, end;
+       PointAnimation pointAnimation(Point(0, 0), Point(0, 0), 0, ANIMATION_INTERPOLATOR_LINEAR);
+
+       if (__position == POS_RIGHT)
+       {
+               start = bounds.GetTopLeft();
+               end = start - Point(ANIMATED_PANEL_BOUNCE_BACK_WIDTH, 0);
+
+               pointAnimation.SetStartValue(start);
+               pointAnimation.SetEndValue(end);
+               pointAnimation.SetDuration(AnimationPropertyInfo::DEFAULT_DURATION / 4);
+               pointAnimation.SetAutoReverseEnabled(true);
+       }
+       else
+       {
+               start = bounds.GetTopLeft();
+               end = start - Point(bounds.width / ANIMATED_PANEL_COUNT, 0);
+
+               pointAnimation.SetStartValue(start);
+               pointAnimation.SetEndValue(end);
+               pointAnimation.SetDuration(AnimationPropertyInfo::DEFAULT_DURATION / 2);
+
+               if (__position == POS_CENTER)
+               {
+                       __position = POS_RIGHT;
+               }
+               else if (__position == POS_LEFT)
+               {
+                       __position = POS_CENTER;
+               }
+       }
+
+       ControlAnimator* pControlAnimator = __pContainerPanel->GetControlAnimator();
+       pControlAnimator->StartUserAnimation(ANIMATION_TARGET_POSITION, pointAnimation);
+}
+
diff --git a/project/src/PointAnimationForm.cpp b/project/src/PointAnimationForm.cpp
new file mode 100644 (file)
index 0000000..bc30bf4
--- /dev/null
@@ -0,0 +1,123 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "PointAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+PointAnimationForm::PointAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+PointAnimationForm::~PointAnimationForm(void)
+{
+}
+
+result
+PointAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"POINT ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       return r;
+}
+
+result
+PointAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightTop = __pRightTop->GetPosition();
+       Point startLeftBotom = __pLeftBottom->GetPosition();
+       Point startRightBottom = __pRightBottom->GetPosition();
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endLeftTop, endRightTop, endLeftBotom, endRightBottom;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y + ANIMATION_OFFSET_Y);
+               endRightTop = Point((parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH)) - ANIMATION_OFFSET_X, BUTTON_OFFSET_Y + ANIMATION_OFFSET_Y);
+               endLeftBotom = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, (parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT)) - ANIMATION_OFFSET_Y);
+               endRightBottom = Point((parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH)) - ANIMATION_OFFSET_X, (parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT)) - ANIMATION_OFFSET_Y);
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y);
+               endLeftBotom = Point(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endRightBottom = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+       }
+
+       PointAnimation animLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightTop(startRightTop, endRightTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animLeftBottom(startLeftBotom, endLeftBotom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightBottom(startRightBottom, endRightBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightBottom);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightBottom);
+
+       return r;
+}
+
+result
+PointAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/RectangleAnimationForm.cpp b/project/src/RectangleAnimationForm.cpp
new file mode 100644 (file)
index 0000000..b02e2ac
--- /dev/null
@@ -0,0 +1,142 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "RectangleAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+RectangleAnimationForm::RectangleAnimationForm(void)
+       : __pButton1(null)
+       , __pButton2(null)
+       , __pButton3(null)
+       , __pButton4(null)
+       , __pButton5(null)
+{
+}
+
+RectangleAnimationForm::~RectangleAnimationForm(void)
+{
+}
+
+result
+RectangleAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = GetHeader();
+       pHeader->SetTitleText(L"RECTANGLE ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pButton1 = new (std::nothrow) Button();
+       __pButton1->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pButton1);
+
+       __pButton2 = new (std::nothrow) Button();
+       __pButton2->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pButton2);
+
+       __pButton3 = new (std::nothrow) Button();
+       __pButton3->Construct(Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pButton3);
+
+       __pButton4 = new (std::nothrow) Button();
+       __pButton4->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), 7 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pButton4);
+
+       __pButton5 = new (std::nothrow) Button();
+       __pButton5->Construct(Rectangle(BUTTON_OFFSET_X, 9 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"V");
+       AddControl(*__pButton5);
+
+       return r;
+}
+
+result
+RectangleAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Rectangle startButton1 = __pButton1->GetBounds();
+       Rectangle startButton2 = __pButton2->GetBounds();
+       Rectangle startButton3 = __pButton3->GetBounds();
+       Rectangle startButton4 = __pButton4->GetBounds();
+       Rectangle startButton5 = __pButton5->GetBounds();
+
+       Rectangle parentBounds = GetClientAreaBounds();
+       Rectangle endButton1, endButton2, endButton3, endButton4, endButton5;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endButton1 = Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endButton2 = Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endButton3 = Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endButton4 = Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, 7 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+               endButton5 = Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, 9 * BUTTON_OFFSET_Y, BUTTON_WIDTH + ANIMATION_OFFSET_WIDTH, BUTTON_HEIGHT + ANIMATION_OFFSET_HEIGHT);
+       }
+       else
+       {
+               endButton1 = Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               endButton2 = Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), 3 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               endButton3 = Rectangle(BUTTON_OFFSET_X, 5 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               endButton4 = Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), 7 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+               endButton5 = Rectangle(BUTTON_OFFSET_X, 9 * BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT);
+       }
+
+       RectangleAnimation animButton1(startButton1, endButton1, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RectangleAnimation animButton2(startButton2, endButton2, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RectangleAnimation animButton3(startButton3, endButton3, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RectangleAnimation animButton4(startButton4, endButton4, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RectangleAnimation animButton5(startButton5, endButton5, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animButton1);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton2);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton3);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton4);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton5);
+
+       (__pButton1->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animButton1);
+       (__pButton1->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton1);
+
+       (__pButton2->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animButton2);
+       (__pButton2->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton2);
+
+       (__pButton3->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animButton3);
+       (__pButton3->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton3);
+
+       (__pButton4->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animButton4);
+       (__pButton4->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton4);
+
+       (__pButton5->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_SIZE, animButton5);
+       (__pButton5->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton5);
+
+       return r;
+}
+
+result
+RectangleAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pButton1->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton2->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton3->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton4->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pButton5->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       return r;
+}
+
diff --git a/project/src/RotateAnimationForm.cpp b/project/src/RotateAnimationForm.cpp
new file mode 100644 (file)
index 0000000..56ca095
--- /dev/null
@@ -0,0 +1,106 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "RotateAnimationForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+RotateAnimationForm::RotateAnimationForm(void)
+       : __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+{
+}
+
+RotateAnimationForm::~RotateAnimationForm(void)
+{
+}
+
+result
+RotateAnimationForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"ROTATE ANIMATION");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pRightBottom);
+
+       return r;
+}
+
+result
+RotateAnimationForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       RotateAnimation animClkWise(0, 360, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation animCounterClkWise(360, 0, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animClkWise);
+       _animationPropertyInfo.ApplyGlobalSettings(animCounterClkWise);
+
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animCounterClkWise);
+               (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animClkWise);
+               (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animClkWise);
+               (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animCounterClkWise);
+       }
+       else
+       {
+               (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animClkWise);
+               (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animCounterClkWise);
+               (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animCounterClkWise);
+               (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animClkWise);
+       }
+
+       return r;
+}
+
+result
+RotateAnimationForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pLeftBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+       (__pRightBottom->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
diff --git a/project/src/SceneRegister.cpp b/project/src/SceneRegister.cpp
new file mode 100644 (file)
index 0000000..d825901
--- /dev/null
@@ -0,0 +1,96 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "SceneRegister.h"
+#include "FormFactory.h"
+
+#include <FUi.h>
+
+using namespace Tizen::Ui::Scenes;
+
+const wchar_t* SCENE_MAIN_MENU = L"SceneMainMenu";
+
+const wchar_t* SCENE_INTEGER_ANIMATION = L"SceneIntergetAnimation";
+const wchar_t* SCENE_FLOAT_ANIMATION = L"SceneFloatAnimation";
+const wchar_t* SCENE_POINT_ANIMATION = L"ScenePointAnimation";
+const wchar_t* SCENE_DIMENSION_ANIMATION = L"SceneDimension";
+const wchar_t* SCENE_RECTANGLE_ANIMATION = L"SceneRectangleAnimation";
+const wchar_t* SCENE_ROTATE_ANIMATION = L"SceneRotateAnimation";
+
+const wchar_t* SCENE_KEY_FRAME_ANIMATION = L"SceneKeyFrameAnimation";
+const wchar_t* SCENE_OUT_OF_BOUNDS_CHECK = L"SceneOutOfBoundsCheck";
+const wchar_t* SCENE_CONTROL_EVENT_LISTENER = L"SceneControlEventListener";
+const wchar_t* SCENE_SET_HOLD_TEST = L"SceneSetHoldTest";
+
+const wchar_t* SCENE_ANIMATION_GROUP_PARALLEL = L"SceneAnimationGroupParallel";
+const wchar_t* SCENE_ANIMATION_GROUP_SEQUENTIAL = L"SceneAnimationGroupSequential";
+
+const wchar_t* SCENE_TRANSACTION_SET = L"SceneTransactionSet";
+const wchar_t* SCENE_TRANSACTION_EVENT_LISTENER = L"SceneTransactionEventListener";
+
+const wchar_t* SCENE_FORM_TRANSITION = L"SceneFormTransition";
+const wchar_t* SCENE_PANEL_TRANSITION = L"ScenePanelTransition";
+
+const wchar_t* SCENE_IMPLICIT_ANIMATION = L"SceneImplicitAnimation";
+const wchar_t* SCENE_CUSTOM_IMPLICIT_ANIMATION = L"SceneCustomImplicitAnimation";
+
+SceneRegister::SceneRegister(void)
+{
+}
+
+SceneRegister::~SceneRegister(void)
+{
+}
+
+void
+SceneRegister::RegisterAllScenes(void)
+{
+       static const wchar_t* PANEL_BLANK = L"";
+       static FormFactory formFactory;
+
+       SceneManager* pSceneManager = SceneManager::GetInstance();
+       AppAssert(pSceneManager);
+
+       pSceneManager->RegisterFormFactory(formFactory);
+
+       pSceneManager->RegisterScene(SCENE_MAIN_MENU, FORM_MAIN_MENU, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_INTEGER_ANIMATION, FORM_INTEGER_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_FLOAT_ANIMATION, FORM_FLOAT_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_POINT_ANIMATION, FORM_POINT_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_DIMENSION_ANIMATION, FORM_DIMENSION_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_RECTANGLE_ANIMATION, FORM_RECTANGLE_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_ROTATE_ANIMATION, FORM_ROTATE_ANIMATION, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_KEY_FRAME_ANIMATION, FORM_KEY_FRAME_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_OUT_OF_BOUNDS_CHECK, FORM_OUT_OF_BOUNDS_CHECK, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_CONTROL_EVENT_LISTENER, FORM_CONTROL_EVENT_LISTENER, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_SET_HOLD_TEST, FORM_SET_HOLD_TEST, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_ANIMATION_GROUP_PARALLEL, FORM_ANIMATION_GROUP_PARALLEL, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_ANIMATION_GROUP_SEQUENTIAL, FORM_ANIMATION_GROUP_SEQUENTIAL, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_TRANSACTION_SET, FORM_TRANSACTION_SET, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_TRANSACTION_EVENT_LISTENER, FORM_TRANSACTION_EVENT_LISTENER, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_FORM_TRANSITION, FORM_FORM_TRANSITION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_PANEL_TRANSITION, FORM_PANEL_TRANSITION, PANEL_BLANK);
+
+       pSceneManager->RegisterScene(SCENE_IMPLICIT_ANIMATION, FORM_IMPLICIT_ANIMATION, PANEL_BLANK);
+       pSceneManager->RegisterScene(SCENE_CUSTOM_IMPLICIT_ANIMATION, FORM_CUSTOM_IMPLICIT_ANIMATION, PANEL_BLANK);
+}
+
diff --git a/project/src/SetHoldTestForm.cpp b/project/src/SetHoldTestForm.cpp
new file mode 100644 (file)
index 0000000..cb94146
--- /dev/null
@@ -0,0 +1,115 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "SetHoldTestForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+SetHoldTestForm::SetHoldTestForm(void)
+       : __setHoldEnd(true)
+       , __pLeftTop(null)
+       , __pCheckButton(null)
+{
+}
+
+SetHoldTestForm::~SetHoldTestForm(void)
+{
+}
+
+result
+SetHoldTestForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"SETHOLD TEST");
+
+       Footer* pFooter = Form::GetFooter();
+       pFooter->SetItemEnabled(FOOTER_ITEM_INDEX_SETTINGS, false);
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pLeftTop);
+
+       __pCheckButton = new (std::nothrow) CheckButton();
+       __pCheckButton->Construct(Rectangle(CHECKBUTTON_OFFSET_X, parentBounds.height - CHECKBUTTON_HEIGHT, CHECKBUTTON_WIDTH, CHECKBUTTON_HEIGHT), CHECK_BUTTON_STYLE_ONOFF_SLIDING,BACKGROUND_STYLE_NONE, false, L"SetHold");
+       __pCheckButton->SetActionId(ID_CHECK_BUTTON_SET_HOLD_CHECKED, ID_CHECK_BUTTON_SET_HOLD_UNCHECKED);
+       __pCheckButton->AddActionEventListener(*this);
+       __pCheckButton->SetSelected(true);
+       AddControl(*__pCheckButton);
+
+       return r;
+}
+
+result
+SetHoldTestForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point endLeftTop;
+
+       if (__pLeftTop->GetBounds().x == BUTTON_OFFSET_X)
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X + ANIMATION_OFFSET_X, BUTTON_OFFSET_Y + ANIMATION_OFFSET_Y);
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+       }
+
+       PointAnimation animLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       animLeftTop.SetHoldEndEnabled(__setHoldEnd);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftTop);
+
+       return r;
+}
+
+result
+SetHoldTestForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       (__pLeftTop->GetControlAnimator())->StopAnimation(ANIMATION_TRIGGER_USER);
+
+       return r;
+}
+
+void
+SetHoldTestForm::OnActionPerformed(const Control& source, int actionId)
+{
+       AnimationBaseForm::OnActionPerformed(source, actionId);
+
+       switch (actionId)
+       {
+       case ID_CHECK_BUTTON_SET_HOLD_CHECKED:
+               __setHoldEnd = true;
+               break;
+
+       case ID_CHECK_BUTTON_SET_HOLD_UNCHECKED:
+               __setHoldEnd = false;
+               break;
+
+       default:
+               break;
+       }
+}
diff --git a/project/src/SettingPopup.cpp b/project/src/SettingPopup.cpp
new file mode 100644 (file)
index 0000000..7fd2366
--- /dev/null
@@ -0,0 +1,401 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "SettingPopup.h"
+#include "AnimationPropertyInfo.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+const String SettingPopup::__imageFiles[SettingPopup::ICON_LIST_VIEW_ITEM_COUNT] = {
+       L"linear.png",
+       L"discrete.png",
+       L"easein.png",
+       L"easeout.png",
+       L"easeinout.png",
+       L"bezier.png"
+};
+
+SettingPopup::SettingPopup(void)
+       : __pAnimationPropertyInfo(null)
+       , __pIconListView(null)
+       , __pButtonAutoReverse(null)
+       , __pButtonHoldEnd(null)
+       , __pLabelDelay(null)
+       , __pLabelDuration(null)
+       , __pLabelOffset(null)
+       , __pLabelScaleRatio(null)
+       , __pLabelRepeat(null)
+       , __pSliderDelay(null)
+       , __pSliderDuration(null)
+       , __pSliderOffset(null)
+       , __pSliderScaleRatio(null)
+       , __pSliderRepeat(null)
+       , __isButtonAutoReverseEnabled(false)
+       , __isButtonHoldEndEnabled(false)
+       , __isSliderDelayEnabled(false)
+       , __isSliderDurationEnabled(false)
+       , __isSliderOffsetEnabled(false)
+       , __isSliderScaleRatioEnabled(false)
+       , __isSliderRepeatEnabled(false)
+{
+}
+
+SettingPopup::~SettingPopup(void)
+{
+}
+
+result
+SettingPopup::Construct(AnimationPropertyInfo& animationPropertyInfo)
+{
+       result r = E_SUCCESS;
+
+       Popup::Construct(L"IDC_POPUP_SETTING");
+       __pAnimationPropertyInfo = &animationPropertyInfo;
+
+       __pIconListView = static_cast< IconListView* >(GetControl(L"IDC_ICONLISTVIEW", true));
+       __pIconListView->SetItemProvider(*this);
+       __pIconListView->AddIconListViewItemEventListener(*this);
+       __pIconListView->SetMargin(MARGIN_TYPE_LEFT, 0);
+       __pIconListView->SetMargin(MARGIN_TYPE_RIGHT, 0);
+       __pIconListView->SetItemChecked(0, true);
+
+       Button* pButtonOk = static_cast< Button* >(GetControl(L"IDC_BUTTON_OK"));
+       pButtonOk->SetActionId(ID_BUTTON_OK);
+       pButtonOk->AddActionEventListener(*this);
+
+       Button* pButtonDeault = static_cast< Button* >(GetControl(L"IDC_BUTTON_DEFAULT"));
+       pButtonDeault->SetActionId(ID_BUTTON_DEFAULT);
+       pButtonDeault->AddActionEventListener(*this);
+
+       __pButtonAutoReverse = static_cast< CheckButton* >(GetControl(L"IDC_CHECK_BUTTON_AUTO_REVERSE", true));
+       __pButtonAutoReverse->SetActionId(ID_CHECK_BUTTON_AUTO_REVERSE_CHECKED, ID_CHECK_BUTTON_AUTO_REVERSE_UNCHECKED);
+       __pButtonAutoReverse->AddActionEventListener(*this);
+
+       __pButtonHoldEnd = static_cast< CheckButton* >(GetControl(L"IDC_CHECK_BUTTON_SET_HOLD_END", true));
+       __pButtonHoldEnd->SetActionId(ID_CHECK_BUTTON_SET_HOLD_END_CHECKED, ID_CHECK_BUTTON_SET_HOLD_END_UNCHECKED);
+       __pButtonHoldEnd->AddActionEventListener(*this);
+       __pButtonHoldEnd->SetSelected(true);
+
+       __pLabelDelay = static_cast<Label*>(GetControl(L"IDC_LABEL_DELAY", true));
+       __pLabelDuration = static_cast<Label*>(GetControl(L"IDC_LABEL_DURATION", true));
+       __pLabelOffset = static_cast<Label*>(GetControl(L"IDC_LABEL_OFFSET", true));
+       __pLabelScaleRatio = static_cast<Label*>(GetControl(L"IDC_LABEL_SCALE_RATIO", true));
+       __pLabelRepeat = static_cast<Label*>(GetControl(L"IDC_LABEL_REPEAT", true));
+
+       __pSliderDelay = static_cast<Slider*>(GetControl(L"IDC_SLIDER_DELAY", true));
+       __pSliderDuration = static_cast<Slider*>(GetControl(L"IDC_SLIDER_DURATION", true));
+       __pSliderOffset = static_cast<Slider*>(GetControl(L"IDC_SLIDER_OFFSET", true));
+       __pSliderScaleRatio = static_cast<Slider*>(GetControl(L"IDC_SLIDER_SCALE_RATIO", true));
+       __pSliderRepeat = static_cast<Slider*>(GetControl(L"IDC_SLIDER_REPEAT", true));
+
+       __pSliderDelay->AddAdjustmentEventListener(*this);
+       __pSliderDuration->AddAdjustmentEventListener(*this);
+       __pSliderOffset->AddAdjustmentEventListener(*this);
+       __pSliderScaleRatio->AddAdjustmentEventListener(*this);
+       __pSliderRepeat->AddAdjustmentEventListener(*this);
+
+       UpdatePropertyValue();
+
+       return r;
+}
+
+void
+SettingPopup::SetAutoReverseButtonEnabled(bool enable)
+{
+       __isButtonAutoReverseEnabled = enable;
+       __pButtonAutoReverse->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsAutoReverseButtonEnabled(void) const
+{
+       return __isButtonAutoReverseEnabled;
+}
+
+void
+SettingPopup::SetHoldEndButtonEnabled(bool enable)
+{
+       __isButtonHoldEndEnabled = enable;
+       __pButtonHoldEnd->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsSetHoldEndButtonEnabled(void) const
+{
+       return __isButtonHoldEndEnabled;
+}
+
+void
+SettingPopup::SetDelaySliderEnabled(bool enable)
+{
+       __isSliderDelayEnabled = enable;
+       __pSliderDelay->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsDelaySliderEnabled(void) const
+{
+       return __isSliderDelayEnabled;
+}
+
+void
+SettingPopup::SetDurationSliderEnabled(bool enable)
+{
+       __isSliderDurationEnabled = enable;
+       __pSliderDuration->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsDurationSliderEnabled(void) const
+{
+       return __isSliderDurationEnabled;
+}
+
+void
+SettingPopup::SetOffsetSliderEnabled(bool enable)
+{
+       __isSliderOffsetEnabled = enable;
+       __pSliderOffset->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsOffsetSliderEnabled(void) const
+{
+       return __isSliderOffsetEnabled;
+}
+
+void
+SettingPopup::SetScaleRatioSliderEnabled(bool enable)
+{
+       __isSliderScaleRatioEnabled = enable;
+       __pSliderScaleRatio->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsScaleRatioSliderEnabled(void) const
+{
+       return __isSliderScaleRatioEnabled;
+}
+
+void
+SettingPopup::SetRepeatSliderEnabled(bool enable)
+{
+       __isSliderRepeatEnabled = enable;
+       __pSliderRepeat->SetEnabled(enable);
+}
+
+bool
+SettingPopup::IsRepeatSliderEnabled(void) const
+{
+       return __isSliderRepeatEnabled;
+}
+
+void
+SettingPopup::UpdatePropertyValue(void)
+{
+       String delay = L"";
+       String duration = L"";
+       String offset = L"";
+       String scaleRatio = L"";
+       String repeatCount = L"";
+
+       delay.Append(__pAnimationPropertyInfo->GetDelay() / MILLISECOND);
+       duration.Append(__pAnimationPropertyInfo->GetDuration() / MILLISECOND);
+       offset.Append(__pAnimationPropertyInfo->GetOffset() / MILLISECOND);
+       scaleRatio.Append(__pAnimationPropertyInfo->GetScaleRatio());
+       repeatCount.Append(__pAnimationPropertyInfo->GetRepeatCount());
+
+       __pLabelDelay->SetText(delay);
+       __pLabelDuration->SetText(duration);
+       __pLabelOffset->SetText(offset);
+       __pLabelScaleRatio->SetText(scaleRatio);
+       __pLabelRepeat->SetText(repeatCount);
+
+       __pSliderDelay->SetValue(__pAnimationPropertyInfo->GetDelay());
+       __pSliderOffset->SetValue(__pAnimationPropertyInfo->GetOffset());
+       __pSliderScaleRatio->SetValue(__pAnimationPropertyInfo->GetScaleRatio());
+       __pSliderRepeat->SetValue(__pAnimationPropertyInfo->GetRepeatCount());
+
+       if (GetName() == L"FormTransitionForm")
+       {
+               __pSliderDuration->SetValue(__pAnimationPropertyInfo->GetDuration() / 100.0f);
+       }
+       else
+       {
+               __pSliderDuration->SetValue(__pAnimationPropertyInfo->GetDuration() / MILLISECOND);
+       }
+
+       Draw();
+}
+
+void
+SettingPopup::OnActionPerformed(const Control& source, int actionId)
+{
+       switch (actionId)
+       {
+       case ID_BUTTON_OK:
+               SetShowState(false);
+               break;
+
+       case ID_BUTTON_DEFAULT:
+               __pAnimationPropertyInfo->SetDefaultValue();
+
+               __pIconListView->SetItemChecked(0, true);
+               __pButtonAutoReverse->SetSelected(false);
+               __pButtonHoldEnd->SetSelected(true);
+
+               UpdatePropertyValue();
+               break;
+
+       case ID_CHECK_BUTTON_AUTO_REVERSE_CHECKED:
+               __pAnimationPropertyInfo->SetAutoReverseEnabled(true);
+               break;
+
+       case ID_CHECK_BUTTON_AUTO_REVERSE_UNCHECKED:
+               __pAnimationPropertyInfo->SetAutoReverseEnabled(false);
+               break;
+
+       case ID_CHECK_BUTTON_SET_HOLD_END_CHECKED:
+               __pAnimationPropertyInfo->SetHoldEndEnabled(true);
+               break;
+
+       case ID_CHECK_BUTTON_SET_HOLD_END_UNCHECKED:
+               __pAnimationPropertyInfo->SetHoldEndEnabled(false);
+               break;
+
+       default:
+               break;
+       }
+}
+
+void
+SettingPopup::OnAdjustmentValueChanged(const Control& source, int adjustment)
+{
+       String name = source.GetName();
+       
+       String value;
+       value.Append(adjustment);       
+
+       if (name == L"IDC_SLIDER_DELAY")
+       {
+               __pLabelDelay->SetText(value);
+               __pAnimationPropertyInfo->SetDelay(adjustment * MILLISECOND);
+       }
+       else if (name == L"IDC_SLIDER_DURATION")
+       {
+               if (GetName() == L"FormTransitionForm")
+               {
+                       String transitionDuration;
+                       transitionDuration.Append(adjustment / 10.0f);
+
+                       __pLabelDuration->SetText(transitionDuration);
+                       __pAnimationPropertyInfo->SetDuration(adjustment * 100.0f);
+               }
+               else
+               {
+                       __pLabelDuration->SetText(value);
+                       __pAnimationPropertyInfo->SetDuration(adjustment * MILLISECOND);
+               }
+       }
+       if (name == L"IDC_SLIDER_OFFSET")
+       {
+               __pLabelOffset->SetText(value);
+               __pAnimationPropertyInfo->SetOffset(adjustment * MILLISECOND);
+       }
+       if (name == L"IDC_SLIDER_SCALE_RATIO")
+       {
+               __pLabelScaleRatio->SetText(value);
+               __pAnimationPropertyInfo->SetScaleRatio(adjustment);
+       }
+       if (name == L"IDC_SLIDER_REPEAT")
+       {
+               __pLabelRepeat->SetText(value);
+               __pAnimationPropertyInfo->SetRepeatCount(adjustment);
+       }
+
+       Draw();
+}
+
+int
+SettingPopup::GetItemCount(void)
+{
+       return ICON_LIST_VIEW_ITEM_COUNT;
+}
+
+IconListViewItem*
+SettingPopup::CreateItem(int index)
+{
+       String str = L"";
+       switch(index)
+       {
+       case 0:
+               str = L"Linear";
+               break;
+
+       case 1:
+               str = L"Discrete";
+               break;
+
+       case 2:
+               str = L"Easein";
+               break;
+
+       case 3:
+               str = L"Easeout";
+               break;
+
+       case 4:
+               str = L"Easeinout";
+               break;
+
+       case 5:
+               str = L"Bezier";
+               break;
+
+       default:
+               break;
+       }
+
+       AppResource* pAppResource = AppResource::GetInstance();
+       Bitmap* pBitmap = pAppResource->GetBitmapN(__imageFiles[index]);
+
+       IconListViewItem* pItem = new (std::nothrow) IconListViewItem();
+       pItem->Construct(*pBitmap, &str);
+
+       delete pBitmap;
+
+       return pItem;
+}
+
+bool
+SettingPopup::DeleteItem(int index, IconListViewItem* pItem)
+{
+       delete pItem;
+
+       return true;
+}
+
+void
+SettingPopup::OnIconListViewItemStateChanged(IconListView& iconListView, int index, IconListViewItemStatus status)
+{
+       __pAnimationPropertyInfo->SetInterpolatorType(static_cast< AnimationInterpolatorType >(index));
+}
diff --git a/project/src/TransactionEventListenerForm.cpp b/project/src/TransactionEventListenerForm.cpp
new file mode 100644 (file)
index 0000000..551db68
--- /dev/null
@@ -0,0 +1,240 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "TransactionEventListenerForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+TransactionEventListenerForm::TransactionEventListenerForm(void)
+       : __isForward(true)
+       , __firstTransaction(0)
+       , __secondTransaction(0)
+       , __pButton1(null)
+       , __pButton2(null)
+       , __pButton3(null)
+       , __pButton4(null)
+{
+}
+
+TransactionEventListenerForm::~TransactionEventListenerForm(void)
+{
+       AnimationTransaction::SetTransactionEventListener(null);
+}
+
+result
+TransactionEventListenerForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"TRANSACTION EVENT LISTENER");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pButton1 = new (std::nothrow) Button();
+       __pButton1->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       AddControl(*__pButton1);
+
+       __pButton2 = new (std::nothrow) Button();
+       __pButton2->Construct(Rectangle(3 * BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       AddControl(*__pButton2);
+
+       __pButton3 = new (std::nothrow) Button();
+       __pButton3->Construct(Rectangle(5 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       AddControl(*__pButton3);
+
+       __pButton4 = new (std::nothrow) Button();
+       __pButton4->Construct(Rectangle(7 * BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       AddControl(*__pButton4);
+
+       AnimationTransaction::SetTransactionEventListener(this);
+
+       return r;
+}
+
+result
+TransactionEventListenerForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       PlayFirstTransaction();
+
+       return r;
+}
+
+result
+TransactionEventListenerForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       if (AnimationTransaction::GetStatus(__firstTransaction) == ANIMATION_TRANSACTION_STATUS_PLAYING)
+       {
+               AnimationTransaction::Stop(__firstTransaction);
+       }
+
+       if (AnimationTransaction::GetStatus(__secondTransaction) == ANIMATION_TRANSACTION_STATUS_PLAYING)
+       {
+               AnimationTransaction::Stop(__secondTransaction);
+       }
+
+       return r;
+}
+
+void
+TransactionEventListenerForm::OnAnimationTransactionStarted(int transactionId)
+{
+}
+
+void
+TransactionEventListenerForm::OnAnimationTransactionStopped(int transactionId)
+{
+       if (transactionId == __firstTransaction)
+       {
+               PlaySecondTransaction();
+       }
+       else if (transactionId == __secondTransaction)
+       {
+               __secondTransaction = 0;
+       }
+}
+
+void
+TransactionEventListenerForm::OnAnimationTransactionFinished(int transactionId)
+{
+       if (transactionId == __firstTransaction)
+       {
+               PlaySecondTransaction();
+       }
+       else if (transactionId == __secondTransaction)
+       {
+               __secondTransaction = 0;
+       }
+}
+
+void
+TransactionEventListenerForm::PlayFirstTransaction(void)
+{
+       Point startButton1 = __pButton1->GetPosition();
+       Point startButton3 = __pButton3->GetPosition();
+       float startRotate, endRotate;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endButton1, endButton3;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endButton1 = Point(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endButton3 = Point(5 * BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               startRotate = 0;
+               endRotate = 360;
+
+               __isForward = true;
+       }
+       else
+       {
+               endButton1 = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endButton3 = Point(5 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+
+               startRotate = 360;
+               endRotate = 0;
+
+               __isForward = false;
+       }
+
+       PointAnimation animButton1(startButton1, endButton1, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animButton3(startButton3, endButton3, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation animRotate(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animButton1);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton3);
+       _animationPropertyInfo.ApplyGlobalSettings(animRotate);
+
+       AnimationTransaction::Begin(__firstTransaction);
+
+       (__pButton1->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton1);
+       (__pButton1->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animRotate);
+       (__pButton3->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton3);
+       (__pButton3->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animRotate);
+
+       AnimationTransaction::Commit();
+}
+
+void
+TransactionEventListenerForm::PlaySecondTransaction(void)
+{
+       Point startButton2 = __pButton2->GetPosition();
+       Point startButton4 = __pButton4->GetPosition();
+       float startRotate, endRotate;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endButton2, endButton4;
+       if (__isForward == true)
+       {
+               endButton2 = Point(3 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endButton4 = Point(7 * BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+
+               startRotate = 0;
+               endRotate = 360;
+       }
+       else
+       {
+               endButton2 = Point(3 * BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endButton4 = Point(7 * BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               startRotate = 360;
+               endRotate = 0;
+       }
+
+       PointAnimation animButton2(startButton2, endButton2, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animButton4(startButton4, endButton4, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation animRotate(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animButton2);
+       _animationPropertyInfo.ApplyGlobalSettings(animButton4);
+       _animationPropertyInfo.ApplyGlobalSettings(animRotate);
+
+       AnimationTransaction::Begin(__secondTransaction);
+
+       (__pButton2->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton2);
+       (__pButton2->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animRotate);
+       (__pButton4->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animButton4);
+       (__pButton4->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animRotate);
+
+       AnimationTransaction::Commit();
+}
+
+bool
+TransactionEventListenerForm::IsAnimating(void)
+{
+       if (AnimationTransaction::GetStatus(__firstTransaction) == ANIMATION_TRANSACTION_STATUS_PLAYING)
+       {
+               return true;
+       }
+
+       if (AnimationTransaction::GetStatus(__secondTransaction) == ANIMATION_TRANSACTION_STATUS_PLAYING)
+       {
+               return true;
+       }
+
+
+       return false;
+}
+
diff --git a/project/src/TransactionSetForm.cpp b/project/src/TransactionSetForm.cpp
new file mode 100644 (file)
index 0000000..f29f617
--- /dev/null
@@ -0,0 +1,146 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "TransactionSetForm.h"
+
+using namespace Tizen::Graphics;
+using namespace Tizen::Ui::Animations;
+using namespace Tizen::Ui::Controls;
+
+TransactionSetForm::TransactionSetForm(void)
+       : __transactionId(0)
+       , __pLeftTop(null)
+       , __pRightTop(null)
+       , __pLeftBottom(null)
+       , __pRightBottom(null)
+       , __pCenter(null)
+{
+}
+
+TransactionSetForm::~TransactionSetForm(void)
+{
+}
+
+result
+TransactionSetForm::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       Header* pHeader = Form::GetHeader();
+       pHeader->SetTitleText(L"TRANSACTION SET");
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       __pLeftTop = new (std::nothrow) Button();
+       __pLeftTop->Construct(Rectangle(BUTTON_OFFSET_X, BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"I");
+       __pLeftTop->SetColor(BUTTON_STATUS_NORMAL, Color::GetColor(COLOR_ID_BLUE));
+       AddControl(*__pLeftTop);
+
+       __pRightTop = new (std::nothrow) Button();
+       __pRightTop->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y, BUTTON_WIDTH, BUTTON_HEIGHT), L"II");
+       __pRightTop->SetColor(BUTTON_STATUS_NORMAL, Color::GetColor(COLOR_ID_RED));
+       AddControl(*__pRightTop);
+
+       __pLeftBottom = new (std::nothrow) Button();
+       __pLeftBottom->Construct(Rectangle(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"III");
+       __pLeftBottom->SetColor(BUTTON_STATUS_NORMAL, Color::GetColor(COLOR_ID_GREEN));
+       AddControl(*__pLeftBottom);
+
+       __pRightBottom = new (std::nothrow) Button();
+       __pRightBottom->Construct(Rectangle(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT), BUTTON_WIDTH, BUTTON_HEIGHT), L"IV");
+       __pRightBottom->SetColor(BUTTON_STATUS_NORMAL, Color::GetColor(COLOR_ID_CYAN));
+       AddControl(*__pRightBottom);
+
+       __pCenter = new (std::nothrow) Button();
+       __pCenter->Construct(Rectangle(parentBounds.width / 2 - BUTTON_WIDTH / 2, parentBounds.height / 2 - BUTTON_HEIGHT / 2, BUTTON_WIDTH, BUTTON_HEIGHT), L"V");
+       __pCenter->SetColor(BUTTON_STATUS_NORMAL, Color::GetColor(COLOR_ID_YELLOW));
+       AddControl(*__pCenter);
+
+       return r;
+}
+
+result
+TransactionSetForm::Play(void)
+{
+       result r = E_SUCCESS;
+
+       Point startLeftTop = __pLeftTop->GetPosition();
+       Point startRightTop = __pRightTop->GetPosition();
+       Point startLeftBotom = __pLeftBottom->GetPosition();
+       Point startRightBottom = __pRightBottom->GetPosition();
+
+       float startRotate, endRotate;
+
+       Rectangle parentBounds = GetClientAreaBounds();
+
+       Point endLeftTop, endRightTop, endLeftBotom, endRightBottom;
+       if (GetAnimationDirection() == ANIMATION_FORWARD)
+       {
+               endLeftTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y);
+               endRightTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endLeftBotom = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightBottom = Point(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               startRotate = 0.0f;
+               endRotate = 360.0f;
+       }
+       else
+       {
+               endLeftTop = Point(BUTTON_OFFSET_X, BUTTON_OFFSET_Y);
+               endRightTop = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), BUTTON_OFFSET_Y);
+               endLeftBotom = Point(BUTTON_OFFSET_X, parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+               endRightBottom = Point(parentBounds.width - (BUTTON_OFFSET_X + BUTTON_WIDTH), parentBounds.height - (BUTTON_OFFSET_Y + BUTTON_HEIGHT));
+
+               startRotate = 360.0f;
+               endRotate = 0.0f;
+       }
+
+       PointAnimation animLeftTop(startLeftTop, endLeftTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightTop(startRightTop, endRightTop, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animLeftBottom(startLeftBotom, endLeftBotom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       PointAnimation animRightBottom(startRightBottom, endRightBottom, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+       RotateAnimation animBtnCenter(startRotate, endRotate, AnimationPropertyInfo::DEFAULT_DURATION, ANIMATION_INTERPOLATOR_LINEAR);
+
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightTop);
+       _animationPropertyInfo.ApplyGlobalSettings(animLeftBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animRightBottom);
+       _animationPropertyInfo.ApplyGlobalSettings(animBtnCenter);
+
+       AnimationTransaction::Begin(__transactionId);
+
+       (__pLeftTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftTop);
+       (__pRightTop->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightTop);
+       (__pLeftBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animLeftBottom);
+       (__pRightBottom->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_POSITION, animRightBottom);
+       (__pCenter->GetControlAnimator())->StartUserAnimation(ANIMATION_TARGET_ROTATION, animBtnCenter);
+
+       AnimationTransaction::Commit();
+
+       return r;
+}
+
+result
+TransactionSetForm::Stop(void)
+{
+       result r = E_SUCCESS;
+
+       AnimationTransaction::Stop(__transactionId);
+
+       return r;
+}
+
diff --git a/project/src/UiControlAnimator.cpp b/project/src/UiControlAnimator.cpp
new file mode 100644 (file)
index 0000000..97b6200
--- /dev/null
@@ -0,0 +1,103 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "UiControlAnimator.h"
+#include "UiControlAnimatorFrame.h"
+#include "SceneRegister.h"
+
+using namespace Tizen::App;
+using namespace Tizen::Base;
+using namespace Tizen::System;
+using namespace Tizen::Ui;
+using namespace Tizen::Ui::Controls;
+using namespace Tizen::Ui::Scenes;
+
+UiControlAnimator::UiControlAnimator(void)
+{
+}
+
+UiControlAnimator::~UiControlAnimator(void)
+{
+}
+
+UiApp*
+UiControlAnimator::CreateInstance(void)
+{
+       return new UiControlAnimator();
+}
+
+bool
+UiControlAnimator::OnAppInitializing(AppRegistry& appRegistry)
+{
+       return true;
+}
+
+bool
+UiControlAnimator::OnAppInitialized(void)
+{
+       UiControlAnimatorFrame* pUiControlAnimatorFrame = new UiControlAnimatorFrame();
+       pUiControlAnimatorFrame->Construct();
+       pUiControlAnimatorFrame->SetName(L"UiControlAnimator");
+       AddFrame(*pUiControlAnimatorFrame);
+
+       SceneRegister::RegisterAllScenes();
+       SceneManager::GetInstance()->GoForward(ForwardSceneTransition(SCENE_MAIN_MENU));
+
+       return true;
+}
+
+bool
+UiControlAnimator::OnAppWillTerminate(void)
+{
+       return true;
+}
+
+bool
+UiControlAnimator::OnAppTerminating(AppRegistry& appRegistry, bool forcedTermination)
+{
+       return true;
+}
+
+void
+UiControlAnimator::OnForeground(void)
+{
+}
+
+void
+UiControlAnimator::OnBackground(void)
+{
+}
+
+void
+UiControlAnimator::OnLowMemory(void)
+{
+}
+
+void
+UiControlAnimator::OnBatteryLevelChanged(BatteryLevel batteryLevel)
+{
+}
+
+void
+UiControlAnimator::OnScreenOn(void)
+{
+}
+
+void
+UiControlAnimator::OnScreenOff(void)
+{
+}
diff --git a/project/src/UiControlAnimatorEntry.cpp b/project/src/UiControlAnimatorEntry.cpp
new file mode 100644 (file)
index 0000000..66857fd
--- /dev/null
@@ -0,0 +1,58 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "UiControlAnimator.h"
+
+using namespace Tizen::Base;
+using namespace Tizen::Base::Collection;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif // __cplusplus
+
+_EXPORT_ int OspMain(int argc, char* pArgv[]);
+
+int
+OspMain(int argc, char* pArgv[])
+{
+       result r = E_SUCCESS;
+
+       AppLog("Application started.");
+       ArrayList* pArgs = new (std::nothrow) ArrayList();
+       pArgs->Construct();
+       for (int i = 0; i < argc; i++)
+       {
+               pArgs->Add(*(new (std::nothrow) String(pArgv[i])));
+       }
+
+       r = Tizen::App::UiApp::Execute(UiControlAnimator::CreateInstance, pArgs);
+       if (IsFailed(r))
+       {
+               AppLogException("Application execution failed-[%s].", GetErrorMessage(r));
+               r &= 0x0000FFFF;
+       }
+
+       pArgs->RemoveAll(true);
+       delete pArgs;
+       AppLog("Application finished.");
+
+       return static_cast<int>(r);
+}
+#ifdef __cplusplus
+}
+#endif // __cplusplus
diff --git a/project/src/UiControlAnimatorFrame.cpp b/project/src/UiControlAnimatorFrame.cpp
new file mode 100644 (file)
index 0000000..67af7a5
--- /dev/null
@@ -0,0 +1,44 @@
+//
+// Tizen C++ SDK
+// Copyright (c) 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://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 "UiControlAnimatorFrame.h"
+
+UiControlAnimatorFrame::UiControlAnimatorFrame(void)
+{
+}
+
+UiControlAnimatorFrame::~UiControlAnimatorFrame(void)
+{
+}
+
+result
+UiControlAnimatorFrame::OnInitializing(void)
+{
+       result r = E_SUCCESS;
+
+       return r;
+}
+
+result
+UiControlAnimatorFrame::OnTerminating(void)
+{
+       result r = E_SUCCESS;
+
+       return r;
+}
+
+
diff --git a/sample.xml b/sample.xml
new file mode 100755 (executable)
index 0000000..40e3d4d
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<template>
+                
+       <slp-property>
+               <property-group>
+                       <sample-name>UiControlAnimator</sample-name>
+                       <category>Sample</category>
+                       <sdk-version>1.00</sdk-version>
+                       <project-type>org.tizen.nativecpp.buildArtefactType.app</project-type>                  
+                       <sample-description>description.xml</sample-description>
+               </property-group>
+       </slp-property>
+       
+       <process type="org.tizen.nativeappcommon.TizenCopyFolder">
+               <simple name="projectName" value="$(projectName)"/>
+               <simple name="folderPath" value="project"/>
+               <complex-array name="replaceableFiles">
+                 <element>
+                               <simple name="sourcePath" value="manifest.xml"/>
+                               <simple name="targetPath" value="manifest.xml"/>
+                               <simple name="replaceable" value = "true"/>
+                       </element>
+               </complex-array>
+       </process>
+       <process type="org.tizen.nativecpp.SetDefaultFrameworks">
+               <simple name="projectName" value="$(projectName)"/>
+               <complex-array name="frameworkList">
+                       <element>
+                               <simple name="framework" value="osp"/>
+                       </element>
+               </complex-array>
+       </process>
+       
+</template>
diff --git a/screenshot.png b/screenshot.png
new file mode 100644 (file)
index 0000000..9de836e
Binary files /dev/null and b/screenshot.png differ