virtual ~Clipboard();
/**
+ * @copydoc Dali::Clipboard::IsAvailable()
+ */
+ static bool IsAvailable();
+
+ /**
* @copydoc Dali::Clipboard::SetItem()
*/
bool SetItem(const std::string &itemData);
return mToolkitClipboard;
}
+bool Clipboard::IsAvailable()
+{
+ if(mToolkitClipboard)
+ {
+ return true;
+ }
+ return false;
+}
+
bool Clipboard::SetItem(const std::string &itemData )
{
mItem = itemData;
static Clipboard Get();
/**
+ * @brief Checks whether the clipboard is available.
+ *
+ * @return true, if it is available, false otherwise.
+ */
+ static bool IsAvailable();
+
+ /**
* Send the given string to the clipboard
* @param[in] itemData string to send to clip board
* @return bool true if the internal clip board sending was successful.
void Controller::Impl::ShowClipboard()
{
- if(mClipboard)
+ if(EnsureClipboardCreated())
{
mClipboard.ShowClipboard();
}
void Controller::Impl::HideClipboard()
{
- if(mClipboard && mClipboardHideEnabled)
+ if(EnsureClipboardCreated() && mClipboardHideEnabled)
{
mClipboard.HideClipboard();
}
bool Controller::Impl::CopyStringToClipboard(const std::string& source)
{
//Send string to clipboard
- return (mClipboard && mClipboard.SetItem(source));
+ return (EnsureClipboardCreated() && mClipboard.SetItem(source));
}
void Controller::Impl::SendSelectionToClipboard(bool deleteAfterSending)
void Controller::Impl::RequestGetTextFromClipboard()
{
- if(mClipboard)
+ if(EnsureClipboardCreated())
{
mClipboard.RequestItem();
}
mModel = Model::New();
mFontClient = TextAbstraction::FontClient::Get();
- mClipboard = Clipboard::Get();
+ if(mEditableControlInterface != nullptr && Clipboard::IsAvailable())
+ {
+ mClipboard = Clipboard::Get();
+ }
mView.SetVisualModel(mModel->mVisualModel);
mView.SetLogicalModel(mModel->mLogicalModel);
*/
void GetText(CharacterIndex index, std::string& text) const;
+ bool EnsureClipboardCreated()
+ {
+ if(!mClipboard)
+ {
+ mClipboard = Clipboard::Get();
+ }
+
+ return mClipboard != nullptr ? true : false;
+ }
+
bool IsClipboardEmpty()
{
- bool result(mClipboard && mClipboard.NumberOfItems());
+ bool result(Clipboard::IsAvailable() && EnsureClipboardCreated() && mClipboard.NumberOfItems());
return !result; // If NumberOfItems greater than 0, return false
}
bool IsClipboardVisible()
{
- bool result(mClipboard && mClipboard.IsVisible());
+ bool result(Clipboard::IsAvailable() && EnsureClipboardCreated() && mClipboard.IsVisible());
return result;
}