1 #ifndef DALI_DEMO_BEAT_CONTROL_H
2 #define DALI_DEMO_BEAT_CONTROL_H
5 * Copyright (c) 2016 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
20 #include <dali-toolkit/dali-toolkit.h>
28 // All type registered types need to have the same name for the body and the handle
33 * Control that allows the RGB channels of an image to be altered.
35 class BeatControl : public Dali::Toolkit::Control
39 * The start and end property ranges for this control
43 PROPERTY_START_INDEX = Dali::Toolkit::Control::CONTROL_PROPERTY_END_INDEX + 1,
44 PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000,
45 ANIMATABLE_PROPERTY_START_INDEX = Dali::ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX,
46 ANIMATABLE_PROPERTY_END_INDEX = ANIMATABLE_PROPERTY_START_INDEX+1000
53 BOUNCE_TRANSITION = PROPERTY_START_INDEX,
61 public: // Construction / destruction
64 * Create an uninitialized handle
69 * Create a new image channel control without an image. Use
70 * SetImage to give this control an image
72 static BeatControl New();
75 * Create a new image channel control from a given URL
77 static BeatControl New( const std::string& url );
80 * Destructor. This is non-virtual since derived Handle types must not
81 * contain data or virtual methods
88 BeatControl( const BeatControl& beatControl );
93 BeatControl& operator=( const BeatControl& beatControl );
98 static BeatControl DownCast( BaseHandle handle );
102 void StartBounceAnimation();
104 void StartXAnimation();
106 void StartYAnimation();
108 void StartFadeAnimation();
110 public: // Not for public use
112 * Create a handle from an implementation
114 BeatControl( Internal::BeatControl& implementation );
117 * Allow the creation of an BeatControl handle from an internal CustomActor pointer
119 BeatControl( Dali::Internal::CustomActor* internal );
124 #endif // DALI_DEMO_BEAT_CONTROL_H