X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Fdali-toolkit-test-utils%2Ftoolkit-clipboard-event-notifier.cpp;h=cf00a92423588618104f8130661cf699e8561104;hp=e4dc0ccf2feac395ea51245189c9c36df6a8bb56;hb=1123d866f9342b8950fe63715f6eaa1be9a2c18f;hpb=d5e3ed5f5b1c8fdba3ae97ead8729620f54b3836 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..cf00a92 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 @@ -24,56 +24,116 @@ 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::ClipboardEventSignalV2 ClipboardEventSignalV2; + // 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 + ClipboardEventSignalV2& ContentSelectedSignal() + { + return mContentSelectedSignalV2; + } + +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. + ClipboardEventSignalV2 mContentSelectedSignalV2; - 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 ( !mContentSelectedSignalV2.Empty() ) + { + Dali::ClipboardEventNotifier handle( this ); + mContentSelectedSignalV2.Emit( handle ); + } +} + +ClipboardEventNotifier::ClipboardEventNotifier() +: mContent() { } @@ -82,26 +142,53 @@ ClipboardEventNotifier::~ClipboardEventNotifier() } } // namespace Adaptor - } // namespace Internal //////////////////////////////////////////////////////////////////////////////////////////////////// -ToolkitClipboardEventNotifier::ToolkitClipboardEventNotifier() -: mClipboardEventNotifierStub(new Internal::Adaptor::ClipboardEventNotifier(this)), - mClipboardEventNotifier( mClipboardEventNotifierStub ) +const char* const ClipboardEventNotifier::SIGNAL_CONTENT_SELECTED( "content-selected" ); + +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::ClipboardEventSignalV2& 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