X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftoolkit-clipboard-event-notifier.cpp;h=cbfe93e0aa38de75f10a1f9a527868d2506f83c6;hb=59314022f6789147a47a8b098433e211b6185625;hp=e4dc0ccf2feac395ea51245189c9c36df6a8bb56;hpb=998d982768c7f211d948cfd7921ec27ff739ce49;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard-event-notifier.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard-event-notifier.cpp index e4dc0cc..cbfe93e 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard-event-notifier.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-clipboard-event-notifier.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -17,63 +17,123 @@ #include "toolkit-clipboard-event-notifier.h" -#include +#include #include -#include +#include namespace Dali { -namespace -{ -ToolkitClipboardEventNotifier* gToolkitClipboardEventNotifier(NULL); -} // unnamed namespace - namespace Internal { namespace Adaptor { -/** - * Stub for the ClipboardEventNotifier - */ -class ClipboardEventNotifier : public BaseObject +class ClipboardEventNotifier : public Dali::BaseObject { -public: // Creation & Destruction +public: + + typedef Dali::ClipboardEventNotifier::ClipboardEventSignalType ClipboardEventSignalType; + // Creation + static Dali::ClipboardEventNotifier New(); static Dali::ClipboardEventNotifier Get(); + // Public API + const std::string& GetContent() const; + void SetContent( const std::string& content ); + void ClearContent(); + void EmitContentSelectedSignal(); + + // Signals + ClipboardEventSignalType& ContentSelectedSignal() + { + return mContentSelectedSignal; + } + +private: + // Construction & Destruction ClipboardEventNotifier(); - ClipboardEventNotifier(ToolkitClipboardEventNotifier *clipboardEventNotifier); - ~ClipboardEventNotifier(); + virtual ~ClipboardEventNotifier(); + + // Undefined + ClipboardEventNotifier( const ClipboardEventNotifier& ); + ClipboardEventNotifier& operator=( ClipboardEventNotifier& ); + +private: -public: // Signals + std::string mContent; ///< The current selected content. + ClipboardEventSignalType mContentSelectedSignal; - Dali::ClipboardEventNotifier::ClipboardEventSignalV2& SignalContentSelected() + static Dali::ClipboardEventNotifier mToolkitClipboardEventNotifier; + +public: + + // Helpers for public-api forwarding methods + + inline static Internal::Adaptor::ClipboardEventNotifier& GetImplementation(Dali::ClipboardEventNotifier& detector) { - return mClipboardSignal; + DALI_ASSERT_ALWAYS( detector && "ClipboardEventNotifier handle is empty" ); + + BaseObject& handle = detector.GetBaseObject(); + + return static_cast(handle); } -private: + inline static const Internal::Adaptor::ClipboardEventNotifier& GetImplementation(const Dali::ClipboardEventNotifier& detector) + { + DALI_ASSERT_ALWAYS( detector && "ClipboardEventNotifier handle is empty" ); + + const BaseObject& handle = detector.GetBaseObject(); - ToolkitClipboardEventNotifier* mToolkitClipboardEventNotifier; - Dali::ClipboardEventNotifier::ClipboardEventSignalV2 mClipboardSignal; + return static_cast(handle); + } }; +Dali::ClipboardEventNotifier ClipboardEventNotifier::mToolkitClipboardEventNotifier; + +Dali::ClipboardEventNotifier ClipboardEventNotifier::New() +{ + return Get(); +} + Dali::ClipboardEventNotifier ClipboardEventNotifier::Get() { - return gToolkitClipboardEventNotifier->GetClipboardEventNotifier(); + if ( !mToolkitClipboardEventNotifier ) + { + mToolkitClipboardEventNotifier = Dali::ClipboardEventNotifier( new ClipboardEventNotifier ); + } + return mToolkitClipboardEventNotifier; } -ClipboardEventNotifier::ClipboardEventNotifier() -: mToolkitClipboardEventNotifier(NULL) +const std::string& ClipboardEventNotifier::GetContent() const +{ + return mContent; +} + +void ClipboardEventNotifier::SetContent( const std::string& content ) { + mContent = content; } -ClipboardEventNotifier::ClipboardEventNotifier(ToolkitClipboardEventNotifier *clipboardEventNotifier) -: mToolkitClipboardEventNotifier(clipboardEventNotifier) +void ClipboardEventNotifier::ClearContent() +{ + mContent.clear(); +} + +void ClipboardEventNotifier::EmitContentSelectedSignal() +{ + if ( !mContentSelectedSignal.Empty() ) + { + Dali::ClipboardEventNotifier handle( this ); + mContentSelectedSignal.Emit( handle ); + } +} + +ClipboardEventNotifier::ClipboardEventNotifier() +: mContent() { } @@ -82,26 +142,51 @@ ClipboardEventNotifier::~ClipboardEventNotifier() } } // namespace Adaptor - } // namespace Internal //////////////////////////////////////////////////////////////////////////////////////////////////// -ToolkitClipboardEventNotifier::ToolkitClipboardEventNotifier() -: mClipboardEventNotifierStub(new Internal::Adaptor::ClipboardEventNotifier(this)), - mClipboardEventNotifier( mClipboardEventNotifierStub ) +ClipboardEventNotifier::ClipboardEventNotifier() +{ +} + +ClipboardEventNotifier ClipboardEventNotifier::Get() +{ + return Internal::Adaptor::ClipboardEventNotifier::Get(); +} + +ClipboardEventNotifier::~ClipboardEventNotifier() +{ +} + +const std::string& ClipboardEventNotifier::GetContent() const +{ + return Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).GetContent(); +} + +void ClipboardEventNotifier::SetContent( const std::string& content ) +{ + Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).SetContent(content); +} + +void ClipboardEventNotifier::ClearContent() +{ + Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).ClearContent(); +} + +void ClipboardEventNotifier::EmitContentSelectedSignal() { - gToolkitClipboardEventNotifier = this; + Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).EmitContentSelectedSignal(); } -ToolkitClipboardEventNotifier::~ToolkitClipboardEventNotifier() +ClipboardEventNotifier::ClipboardEventSignalType& ClipboardEventNotifier::ContentSelectedSignal() { - gToolkitClipboardEventNotifier = NULL; + return Internal::Adaptor::ClipboardEventNotifier::GetImplementation(*this).ContentSelectedSignal(); } -ClipboardEventNotifier ToolkitClipboardEventNotifier::GetClipboardEventNotifier() +ClipboardEventNotifier::ClipboardEventNotifier( Internal::Adaptor::ClipboardEventNotifier* notifier ) +: BaseHandle( notifier ) { - return mClipboardEventNotifier; } } // namespace Dali