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=cfc2a96ee73915d5285569271fda5933cd62dc8e;hb=5677e60f681ff770834e940ac04a8009c3ac4035;hp=e4dc0ccf2feac395ea51245189c9c36df6a8bb56;hpb=a881757839b7abb008873a68c67e17b3ba39669b;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..cfc2a96 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,91 +17,176 @@ #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 TextClipboardEventNotifier : public Dali::BaseObject { -public: // Creation & Destruction +public: - static Dali::ClipboardEventNotifier Get(); + typedef Dali::TextClipboardEventNotifier::TextClipboardEventSignalType TextClipboardEventSignalType; - ClipboardEventNotifier(); - ClipboardEventNotifier(ToolkitClipboardEventNotifier *clipboardEventNotifier); - ~ClipboardEventNotifier(); + // Creation + static Dali::TextClipboardEventNotifier New(); + static Dali::TextClipboardEventNotifier Get(); -public: // Signals + // Public API + const std::string& GetContent() const; + void SetContent( const std::string& content ); + void ClearContent(); + void EmitContentSelectedSignal(); - Dali::ClipboardEventNotifier::ClipboardEventSignalV2& SignalContentSelected() + // Signals + TextClipboardEventSignalType& ContentSelectedSignal() { - return mClipboardSignal; + return mContentSelectedSignal; } private: + // Construction & Destruction + TextClipboardEventNotifier(); + virtual ~TextClipboardEventNotifier(); + + // Undefined + TextClipboardEventNotifier( const TextClipboardEventNotifier& ); + TextClipboardEventNotifier& operator=( TextClipboardEventNotifier& ); + +private: + + std::string mContent; ///< The current selected content. + TextClipboardEventSignalType mContentSelectedSignal; + + static Dali::TextClipboardEventNotifier mToolkitClipboardEventNotifier; + +public: + + // Helpers for public-api forwarding methods + + inline static Internal::Adaptor::TextClipboardEventNotifier& GetImplementation(Dali::TextClipboardEventNotifier& detector) + { + DALI_ASSERT_ALWAYS( detector && "TextClipboardEventNotifier handle is empty" ); + + BaseObject& handle = detector.GetBaseObject(); + + return static_cast(handle); + } + + inline static const Internal::Adaptor::TextClipboardEventNotifier& GetImplementation(const Dali::TextClipboardEventNotifier& detector) + { + DALI_ASSERT_ALWAYS( detector && "TextClipboardEventNotifier handle is empty" ); - ToolkitClipboardEventNotifier* mToolkitClipboardEventNotifier; - Dali::ClipboardEventNotifier::ClipboardEventSignalV2 mClipboardSignal; + const BaseObject& handle = detector.GetBaseObject(); + + return static_cast(handle); + } }; -Dali::ClipboardEventNotifier ClipboardEventNotifier::Get() +Dali::TextClipboardEventNotifier TextClipboardEventNotifier::mToolkitClipboardEventNotifier; + +Dali::TextClipboardEventNotifier TextClipboardEventNotifier::New() { - return gToolkitClipboardEventNotifier->GetClipboardEventNotifier(); + return Get(); } -ClipboardEventNotifier::ClipboardEventNotifier() -: mToolkitClipboardEventNotifier(NULL) +Dali::TextClipboardEventNotifier TextClipboardEventNotifier::Get() { + if ( !mToolkitClipboardEventNotifier ) + { + mToolkitClipboardEventNotifier = Dali::TextClipboardEventNotifier( new TextClipboardEventNotifier ); + } + return mToolkitClipboardEventNotifier; } -ClipboardEventNotifier::ClipboardEventNotifier(ToolkitClipboardEventNotifier *clipboardEventNotifier) -: mToolkitClipboardEventNotifier(clipboardEventNotifier) +const std::string& TextClipboardEventNotifier::GetContent() const { + return mContent; } -ClipboardEventNotifier::~ClipboardEventNotifier() +void TextClipboardEventNotifier::SetContent( const std::string& content ) { + mContent = content; } -} // namespace Adaptor +void TextClipboardEventNotifier::ClearContent() +{ + mContent.clear(); +} +void TextClipboardEventNotifier::EmitContentSelectedSignal() +{ + if ( !mContentSelectedSignal.Empty() ) + { + Dali::TextClipboardEventNotifier handle( this ); + mContentSelectedSignal.Emit( handle ); + } +} + +TextClipboardEventNotifier::TextClipboardEventNotifier() +: mContent() +{ +} + +TextClipboardEventNotifier::~TextClipboardEventNotifier() +{ +} + +} // namespace Adaptor } // namespace Internal //////////////////////////////////////////////////////////////////////////////////////////////////// -ToolkitClipboardEventNotifier::ToolkitClipboardEventNotifier() -: mClipboardEventNotifierStub(new Internal::Adaptor::ClipboardEventNotifier(this)), - mClipboardEventNotifier( mClipboardEventNotifierStub ) +TextClipboardEventNotifier::TextClipboardEventNotifier() +{ +} + +TextClipboardEventNotifier TextClipboardEventNotifier::Get() +{ + return Internal::Adaptor::TextClipboardEventNotifier::Get(); +} + +TextClipboardEventNotifier::~TextClipboardEventNotifier() +{ +} + +const std::string& TextClipboardEventNotifier::GetContent() const +{ + return Internal::Adaptor::TextClipboardEventNotifier::GetImplementation(*this).GetContent(); +} + +void TextClipboardEventNotifier::SetContent( const std::string& content ) +{ + Internal::Adaptor::TextClipboardEventNotifier::GetImplementation(*this).SetContent(content); +} + +void TextClipboardEventNotifier::ClearContent() +{ + Internal::Adaptor::TextClipboardEventNotifier::GetImplementation(*this).ClearContent(); +} + +void TextClipboardEventNotifier::EmitContentSelectedSignal() { - gToolkitClipboardEventNotifier = this; + Internal::Adaptor::TextClipboardEventNotifier::GetImplementation(*this).EmitContentSelectedSignal(); } -ToolkitClipboardEventNotifier::~ToolkitClipboardEventNotifier() +TextClipboardEventNotifier::TextClipboardEventSignalType& TextClipboardEventNotifier::ContentSelectedSignal() { - gToolkitClipboardEventNotifier = NULL; + return Internal::Adaptor::TextClipboardEventNotifier::GetImplementation(*this).ContentSelectedSignal(); } -ClipboardEventNotifier ToolkitClipboardEventNotifier::GetClipboardEventNotifier() +TextClipboardEventNotifier::TextClipboardEventNotifier( Internal::Adaptor::TextClipboardEventNotifier* notifier ) +: BaseHandle( notifier ) { - return mClipboardEventNotifier; } } // namespace Dali