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=168625e87151b688a5289e4e4fc29afb403e2b50;hb=3b187632575523a751a4c9b80c1dcd9a0a887eee;hpb=30f6ca1e541089b19f2b349a8a12d8a5bcaf2f9e 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 168625e..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 @@ -1,18 +1,19 @@ -// -// 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. -// +/* + * Copyright (c) 2014 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. + * + */ #include "toolkit-clipboard-event-notifier.h" @@ -23,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: + + std::string mContent; ///< The current selected content. + ClipboardEventSignalV2 mContentSelectedSignalV2; + + static Dali::ClipboardEventNotifier mToolkitClipboardEventNotifier; + +public: -public: // Signals + // Helpers for public-api forwarding methods - Dali::ClipboardEventNotifier::ClipboardEventSignalV2& SignalContentSelected() + 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" ); - ToolkitClipboardEventNotifier* mToolkitClipboardEventNotifier; - Dali::ClipboardEventNotifier::ClipboardEventSignalV2 mClipboardSignal; + const BaseObject& handle = detector.GetBaseObject(); + + 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; +} + +const std::string& ClipboardEventNotifier::GetContent() const +{ + return mContent; } -ClipboardEventNotifier::ClipboardEventNotifier() -: mToolkitClipboardEventNotifier(NULL) +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() { } @@ -81,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