#define DALI_TOOLKIT_TEXT_CONTROLLER_IMPL_H
/*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
*/
// EXTERNAL INCLUDES
-#include <dali/devel-api/adaptor-framework/clipboard.h>
#include <dali/devel-api/text-abstraction/font-client.h>
#include <dali/public-api/rendering/shader.h>
// INTERNAL INCLUDES
#include <dali-toolkit/devel-api/styling/style-manager-devel.h>
-#include <dali-toolkit/internal/text/input-style.h>
#include <dali-toolkit/internal/text/controller/text-controller.h>
+#include <dali-toolkit/internal/text/input-style.h>
#include <dali-toolkit/internal/text/text-model.h>
#include <dali-toolkit/internal/text/text-view.h>
#include <dali-toolkit/public-api/styling/style-manager.h>
mTextFitMinSize(DEFAULT_TEXTFIT_MIN),
mTextFitMaxSize(DEFAULT_TEXTFIT_MAX),
mTextFitStepSize(DEFAULT_TEXTFIT_STEP),
+ mTextFitLineSize(0.f),
mFontSizeScale(DEFAULT_FONT_SIZE_SCALE),
mDisabledColorOpacity(DEFAULT_DISABLED_COLOR_OPACITY),
mFontSizeScaleEnabled(true),
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);
Toolkit::StyleManager styleManager = Toolkit::StyleManager::Get();
if(styleManager)
{
- const Property::Map& config = Toolkit::DevelStyleManager::GetConfigurations(styleManager);
- const auto clearFocusOnEscapeValue = config.Find("clearFocusOnEscape", Property::Type::BOOLEAN);
+ const auto clearFocusOnEscapeValue = Toolkit::DevelStyleManager::GetConfigurations(styleManager).Find("clearFocusOnEscape", Property::Type::BOOLEAN);
// Default is true. If config don't have "clearFocusOnEscape" property, make it true.
mShouldClearFocusOnEscape = (!clearFocusOnEscapeValue || clearFocusOnEscapeValue->Get<bool>());
*/
void GetText(CharacterIndex index, std::string& text) const;
+ /**
+ * @brief Retrieves number of characters previously set.
+ *
+ * @return A length of UTF-32 characters.
+ *
+ * @see Dali::Toolkit::Text::Controller::GetNumberOfCharacters()
+ */
+ Length GetNumberOfCharacters() 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;
}
void SendSelectionToClipboard(bool deleteAfterSending);
- void RequestGetTextFromClipboard();
-
void RepositionSelectionHandles();
void RepositionSelectionHandles(float visualX, float visualY, Controller::NoTextTap::Action action);
float mTextFitMinSize; ///< Minimum Font Size for text fit. Default 10
float mTextFitMaxSize; ///< Maximum Font Size for text fit. Default 100
float mTextFitStepSize; ///< Step Size for font intervalse. Default 1
+ float mTextFitLineSize; ///< This is the LineSize that is the standard when performing TextFit.
float mFontSizeScale; ///< Scale value for Font Size. Default 1.0
float mDisabledColorOpacity; ///< Color opacity when disabled.
bool mFontSizeScaleEnabled : 1; ///< Whether the font size scale is enabled.