-#ifndef __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__
-#define __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__
-
-//
-// Copyright (c) 2014 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 DALI_TOOLKIT_TEST_DUMMY_CONTROL_H
+#define DALI_TOOLKIT_TEST_DUMMY_CONTROL_H
+
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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.
+ *
+ */
// INTERNAL INCLUDES
#include <dali-toolkit/dali-toolkit.h>
+// EXTERNAL INCLUDES
+#include <functional>
+
namespace Dali
{
{
class DummyControlImpl;
+class TransitionData;
+
+namespace Visual
+{
+class Base;
+}
/**
* Control does not have a New method so use this dummy class for the handle.
class DummyControl : public Control
{
public:
+ enum PropertyRange
+ {
+ PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0
+ PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000 ///< Reserve property index
+ };
+
+ struct Property
+ {
+ enum Type
+ {
+ TEST_VISUAL = PROPERTY_START_INDEX,
+ TEST_VISUAL2,
+ FOREGROUND_VISUAL,
+ FOCUS_VISUAL,
+ LABEL_VISUAL
+ };
+ };
DummyControl();
DummyControl(const DummyControl& control);
- virtual ~DummyControl();
+ ~DummyControl();
static DummyControl New( bool override = false );
DummyControl& operator=(const DummyControl& control);
- // Used to test signal connections
- void CustomSlot1( Actor actor, const Vector3& value );
-
-public:
-
- bool mCustomSlot1Called;
- Vector3 mCustomSlot1Value;
-
public: // Not intended for application developers
DummyControl( DummyControlImpl& implementation );
* Cannot create an instance of Internal::Control, so use this dummy class for the implementation.
* This class does not override any of Internal::Control's behaviour.
*/
-class DummyControlImpl : public Internal::Control
+class DummyControlImpl : public Toolkit::Internal::Control
{
public:
static DummyControl New();
public:
- inline void EnableGestureDetection(Gesture::Type type) { Internal::Control::EnableGestureDetection(type); }
- inline void DisableGestureDetection(Gesture::Type type) { Internal::Control::DisableGestureDetection(type); }
+ inline void EnableGestureDetection(GestureType::Value type) { Internal::Control::EnableGestureDetection(type); }
+ inline void DisableGestureDetection(GestureType::Value type) { Internal::Control::DisableGestureDetection(type); }
inline PinchGestureDetector GetPinchGestureDetector() const { return Internal::Control::GetPinchGestureDetector(); }
inline PanGestureDetector GetPanGestureDetector() const { return Internal::Control::GetPanGestureDetector(); }
inline TapGestureDetector GetTapGestureDetector() const { return Internal::Control::GetTapGestureDetector(); }
inline LongPressGestureDetector GetLongPressGestureDetector() const { return Internal::Control::GetLongPressGestureDetector(); }
+ void RegisterVisual( Property::Index index, Toolkit::Visual::Base visual);
+ void RegisterVisual( Property::Index index, Toolkit::Visual::Base visual, bool enabled );
+ void UnregisterVisual( Property::Index index );
+ void EnableVisual( Property::Index index, bool enabled );
+ bool IsVisualEnabled( Property::Index index );
+ int GetVisualCount();
+ Toolkit::Visual::Base GetVisual( Property::Index index );
+ Animation CreateTransition( const Toolkit::TransitionData& transition );
+ void DoAction( Dali::Property::Index index, Dali::Property::Index action, const Dali::Property::Value attributes );
+
+ static void SetProperty( BaseObject* object, Dali::Property::Index index, const Dali::Property::Value& value );
+
+ static Property::Value GetProperty( BaseObject* object, Dali::Property::Index propertyIndex );
+
+ // Used to test signal connections
+ void CustomSlot1( Actor actor );
+
+ bool mCustomSlot1Called;
+ typedef std::vector<Property::Index> VisualIndices;
+ VisualIndices mRegisteredVisualIndices;
+
protected:
DummyControlImpl();
- virtual ~DummyControlImpl();
+ ~DummyControlImpl() override;
};
+namespace Impl
+{
+
/**
* Cannot create an instance of Internal::Control, so use this dummy class for the implementation.
* This class DOES override Internal::Control's behaviour.
*/
-class DummyControlImplOverride : public DummyControlImpl
+class DummyControl : public Toolkit::DummyControlImpl
{
public:
- static DummyControl New();
+ typedef std::function<void( Size )> RelayoutCallbackFunc;
+
+ static Toolkit::DummyControl New();
+
+ void SetLayout( Property::Index visualIndex, Property::Map& map );
+
+ void SetRelayoutCallback( RelayoutCallbackFunc callback );
private:
- DummyControlImplOverride();
+ DummyControl();
- virtual ~DummyControlImplOverride();
+ ~DummyControl() override;
private: // From Internal::Control
- virtual void OnInitialize();
- virtual void OnStyleChange(StyleChange change);
- virtual void OnPinch(PinchGesture pinch);
- virtual void OnPan(PanGesture pan);
- virtual void OnTap(TapGesture tap);
- virtual void OnLongPress(LongPressGesture longPress);
+ void OnInitialize() override;
+ bool OnAccessibilityActivated() override;
+ bool OnAccessibilityValueChange( bool isIncrease ) override;
+
+ void OnStyleChange( Toolkit::StyleManager styleManager, StyleChange::Type change ) override;
+ void OnPinch(const PinchGesture& pinch) override;
+ void OnPan(const PanGesture& pan) override;
+ void OnTap(const TapGesture& tap) override;
+ void OnLongPress(const LongPressGesture& longPress) override;
+ Vector3 GetNaturalSize() override;
+ bool OnKeyEvent(const KeyEvent& event) override;
private: // From CustomActorImpl
- virtual void OnStageConnection();
- virtual void OnStageDisconnection();
- virtual void OnChildAdd(Actor& child);
- virtual void OnChildRemove(Actor& child);
- virtual void OnSizeSet(const Vector3& targetSize);
- virtual void OnSizeAnimation(Animation& animation, const Vector3& targetSize);
- virtual bool OnTouchEvent(const TouchEvent& event);
- virtual bool OnMouseWheelEvent(const MouseWheelEvent& event);
- virtual bool OnKeyEvent(const KeyEvent& event);
- virtual void OnKeyInputFocusGained();
- virtual void OnKeyInputFocusLost();
+ void OnSceneConnection( int depth ) override;
+ void OnSceneDisconnection() override;
+ void OnChildAdd(Actor& child) override;
+ void OnChildRemove(Actor& child) override;
+ void OnSizeSet(const Vector3& targetSize) override;
+ void OnSizeAnimation(Animation& animation, const Vector3& targetSize) override;
+ void OnKeyInputFocusGained() override;
+ void OnKeyInputFocusLost() override;
+ void OnRelayout( const Vector2& size, RelayoutContainer& container ) override;
+
+ DALI_INTERNAL DummyControl( const DummyControl& );
+ DALI_INTERNAL DummyControl& operator=( const DummyControl& );
public:
bool initializeCalled;
- bool styleChangeCalled;
+ bool activatedCalled;
+ bool onAccValueChangeCalled;
+ bool themeChangeCalled;
+ bool fontChangeCalled;
bool pinchCalled;
bool panCalled;
bool tapCalled;
bool childRemoveCalled;
bool sizeSetCalled;
bool sizeAnimationCalled;
- bool touchEventCalled;
- bool mouseWheelEventCalled;
+ bool hoverEventCalled;
+ bool wheelEventCalled;
bool keyEventCalled;
bool keyInputFocusGained;
bool keyInputFocusLost;
+ static int constructorCount;
+ static int destructorCount;
+
+ Property::Map mLayouts;
+ RelayoutCallbackFunc mRelayoutCallback;
+
};
+} // namespace Impl
+
} // namespace Toolkit
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEST_DUMMY_CONTROL_H__
+#endif // DALI_TOOLKIT_TEST_DUMMY_CONTROL_H