mDelayTime(0),
mDroppedFrames(0),
mFrameRate( 60.0f ),
+ mTestFrameDrop(false),
mNeedDroppedFrames(false),
mEventThreadCallback( new EventThreadCallback( MakeCallback( this, &VectorAnimationRenderer::OnTriggered ) ) )
{
{
// Change total frame number for test
mTotalFrameNumber = 200;
+ mTestFrameDrop = true;
}
return true;
}
bool Render( uint32_t frameNumber )
{
- if(mDelayTime != 0)
+ if(mTestFrameDrop)
{
std::this_thread::sleep_for(std::chrono::milliseconds(static_cast<int32_t>(mDelayTime)));
- mDelayTime = 0;
+ mTestFrameDrop = false;
mNeedDroppedFrames = true;
}
else if(mNeedDroppedFrames)
uint32_t mDelayTime;
uint32_t mDroppedFrames;
float mFrameRate;
+ bool mTestFrameDrop;
bool mNeedDroppedFrames;
Dali::VectorAnimationRenderer::UploadCompletedSignalType mUploadCompletedSignal;
std::unique_ptr< EventThreadCallback > mEventThreadCallback;
Property::Map attributes;
DevelControl::DoAction(actor, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedVectorImageVisual::Action::PLAY, attributes);
+ // Make delay to drop frames
+ Test::VectorAnimationRenderer::DelayRendering(170); // longer than 16.6 * 10frames
+
application.SendNotification();
application.Render();
// Trigger count is 1 - render the first frame
DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
- // Make delay to drop frames
- Test::VectorAnimationRenderer::DelayRendering(170); // longer than 16.6 * 10frames
-
- // Check dropped frame
+ // Wait for calculating frame drops
DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(1), true, TEST_LOCATION);
+ // Check dropped frame
uint32_t frames = Test::VectorAnimationRenderer::GetDroppedFrames();
DALI_TEST_CHECK(frames >= 9);
#include "accessible-impl.h"
// EXTERNAL INCLUDES
+#ifdef DGETTEXT_ENABLED
+#include <libintl.h>
+#endif
+
#include <dali/devel-api/actors/actor-devel.h>
// INTERNAL INCLUDES
namespace Dali::Toolkit::DevelControl {
+static std::string GetLocaleText(std::string string, const char *domain = "dali-toolkit")
+{
+#ifdef DGETTEXT_ENABLED
+ /*TODO: currently non-localized string is used as a key for translation lookup. In case the lookup key formatting is forced
+ consider calling utility function for converting non-localized string into well-formatted key before lookup. */
+ return dgettext(domain, string.c_str());
+#else
+ return string;
+#endif
+}
+
AccessibleImpl::AccessibleImpl(Dali::Actor self, Dali::Accessibility::Role role, bool modal)
: self(self),
modal(modal)
Internal::Control& internalControl = Toolkit::Internal::GetImplementation(control);
Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get(internalControl);
+ std::string name;
if(!controlImpl.mAccessibilityGetNameSignal.Empty())
{
- std::string ret;
- controlImpl.mAccessibilityGetNameSignal.Emit(ret);
- return ret;
+ controlImpl.mAccessibilityGetNameSignal.Emit(name);
+ }
+ else if(controlImpl.mAccessibilityNameSet)
+ {
+ name = controlImpl.mAccessibilityName;
+ }
+ else if(auto raw = GetNameRaw(); !raw.empty())
+ {
+ name = raw;
+ }
+ else
+ {
+ name = Self().GetProperty<std::string>(Actor::Property::NAME);
}
- if(controlImpl.mAccessibilityNameSet)
- return controlImpl.mAccessibilityName;
-
- if(auto raw = GetNameRaw(); !raw.empty())
- return raw;
+ if(controlImpl.mAccessibilityTranslationDomainSet)
+ {
+ return GetLocaleText(name, controlImpl.mAccessibilityTranslationDomain.c_str());
+ }
- return Self().GetProperty<std::string>(Actor::Property::NAME);
+ return GetLocaleText(name);
}
std::string AccessibleImpl::GetNameRaw()
Internal::Control& internalControl = Toolkit::Internal::GetImplementation(control);
Internal::Control::Impl& controlImpl = Internal::Control::Impl::Get(internalControl);
+ std::string description;
if(!controlImpl.mAccessibilityGetDescriptionSignal.Empty())
{
- std::string ret;
- controlImpl.mAccessibilityGetDescriptionSignal.Emit(ret);
- return ret;
+ controlImpl.mAccessibilityGetDescriptionSignal.Emit(description);
+ }
+ else if(controlImpl.mAccessibilityDescriptionSet)
+ {
+ description = controlImpl.mAccessibilityDescription;
+ }
+ else
+ {
+ description = GetDescriptionRaw();
+ }
+ if(controlImpl.mAccessibilityTranslationDomainSet)
+ {
+ return GetLocaleText(description, controlImpl.mAccessibilityTranslationDomain.c_str());
}
- if(controlImpl.mAccessibilityDescriptionSet)
- return controlImpl.mAccessibilityDescription;
-
- return GetDescriptionRaw();
+ return GetLocaleText(description);
}
std::string AccessibleImpl::GetDescriptionRaw()
{
- return "";
+ return {};
}
Dali::Accessibility::Accessible* AccessibleImpl::GetParent()
return Self().GetProperty<Dali::Accessibility::Role>(Toolkit::DevelControl::Property::ACCESSIBILITY_ROLE);
}
+std::string AccessibleImpl::GetLocalizedRoleName()
+{
+ return GetLocaleText(GetRoleName());
+}
+
Dali::Accessibility::States AccessibleImpl::CalculateStates()
{
Dali::Actor self = Self();
// keyboard focusable actors
auto actor = Toolkit::ImageView::New(focusBorderImagePath);
actor.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS);
- DevelControl::AppendAccessibilityAttribute(actor, "highlight", "");
+ DevelControl::AppendAccessibilityAttribute(actor, "highlight", std::string());
actor.SetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, false);
return actor;
std::string AccessibleImpl::GetActionName(size_t index)
{
- if(index >= GetActionCount()) return "";
+ if(index >= GetActionCount()) return {};
Dali::TypeInfo type;
Self().GetTypeInfo(type);
DALI_ASSERT_ALWAYS(type && "no TypeInfo object");
std::string AccessibleImpl::GetLocalizedActionName(size_t index)
{
- // TODO: add localization
- return GetActionName(index);
+ return GetLocaleText(GetActionName(index));
}
std::string AccessibleImpl::GetActionDescription(size_t index)
{
- return "";
+ return {};
}
size_t AccessibleImpl::GetActionCount()
std::string AccessibleImpl::GetActionKeyBinding(size_t index)
{
- return "";
+ return {};
}
bool AccessibleImpl::DoAction(size_t index)
Dali::Accessibility::Role GetRole() override;
/**
+ * @copydoc Dali::Accessibility::Accessible::GetLocalizedRoleName()
+ */
+ std::string GetLocalizedRoleName() override;
+
+ /**
* @copydoc Dali::Accessibility::Accessible::GetStates()
*/
Dali::Accessibility::States GetStates() override;
new DevelControl::AccessibleImpl(actor, Dali::Accessibility::Role::IMAGE));
});
- Self().SetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true);
-
Adaptor::Get().RegisterProcessor(*this);
}
return std::unique_ptr<Dali::Accessibility::Accessible>(
new DevelControl::AccessibleImpl(actor, Dali::Accessibility::Role::IMAGE));
});
-
- //Enable highightability
- Self().SetProperty(Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true);
}
void ImageView::SetImage(const Property::Map& map)
mUrl = url;
if(mWebEngine)
{
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- if(mVisual)
+ if(!mVisual)
{
- // Clean up previously registered visual and add new one.
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- mWebEngine.LoadUrl(url);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
}
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
+ mWebEngine.LoadUrl(url);
}
}
{
if(mWebEngine)
{
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- if(mVisual)
+ if(!mVisual)
{
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- mWebEngine.LoadHtmlString(htmlString);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
}
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
+ mWebEngine.LoadHtmlString(htmlString);
}
}
if(!mWebEngine)
return false;
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- bool result = false;
- if(mVisual)
+ if(!mVisual)
{
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- result = mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
}
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
- return result;
+ return mWebEngine.LoadHtmlStringOverrideCurrentEntry(html, basicUri, unreachableUrl);
}
bool WebView::LoadContents(const std::string& contents, uint32_t contentSize, const std::string& mimeType, const std::string& encoding, const std::string& baseUri)
if(!mWebEngine)
return false;
- Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
- const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
- mVisual = Toolkit::VisualFactory::Get().CreateVisual(
- {{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE},
- {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
-
- bool result = false;
- if(mVisual)
+ if(!mVisual)
{
- DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
- result = mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
+ mWebEngine.FrameRenderedSignal().Connect(this, &WebView::OnInitialFrameRendered);
}
- if(mVideoHoleEnabled)
- {
- EnableBlendMode(false);
- }
- return result;
+ return mWebEngine.LoadContents(contents, contentSize, mimeType, encoding, baseUri);
}
void WebView::Reload()
}
}
+void WebView::OnInitialFrameRendered()
+{
+ mWebEngine.FrameRenderedSignal().Disconnect(this, &WebView::OnInitialFrameRendered);
+
+ Texture texture = Dali::Texture::New(*mWebEngine.GetNativeImageSource());
+ const std::string nativeImageUrl = Dali::Toolkit::TextureManager::AddTexture(texture);
+ mVisual = Toolkit::VisualFactory::Get().CreateVisual({{Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE}, {Toolkit::ImageVisual::Property::URL, nativeImageUrl}});
+
+ if(mVisual)
+ {
+ DevelControl::RegisterVisual(*this, Toolkit::WebView::Property::URL, mVisual);
+ EnableBlendMode(!mVideoHoleEnabled);
+ }
+}
+
void WebView::OnVisibilityChanged(Actor actor, bool isVisible, Dali::DevelActor::VisibilityChange::Type type)
{
if(type == Dali::DevelActor::VisibilityChange::Type::SELF)
void OnFrameRendered();
/**
+ * @brief Callback function to be called when frame is rendered. This is to check initial buffer is ready.
+ */
+ void OnInitialFrameRendered();
+
+ /**
* @brief Callback function to be called when visibility is changed.
* @param[in] actor The actor, or child of actor, whose visibility has changed
* @param[in] isVisible Whether the actor is now visible or not
Property::Map startPropertyMap;
Property::Map finishPropertyMap;
+ float targetOpacity = GetWorldColor(targetControl).a;
+ targetControl[Dali::Actor::Property::COLOR_MODE] = Dali::ColorMode::USE_OWN_COLOR;
+
if(IsAppearingTransition())
{
initialPropertyMap.Insert(Dali::Actor::Property::OPACITY, 0.0f);
- startPropertyMap.Insert(Dali::Actor::Property::OPACITY, mOpacity);
- finishPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetControl[Dali::Actor::Property::OPACITY]);
+ startPropertyMap.Insert(Dali::Actor::Property::OPACITY, mOpacity * targetOpacity);
+ finishPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetOpacity);
}
else
{
- initialPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetControl[Dali::Actor::Property::OPACITY]);
- startPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetControl[Dali::Actor::Property::OPACITY]);
- finishPropertyMap.Insert(Dali::Actor::Property::OPACITY, mOpacity);
+ initialPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetOpacity);
+ startPropertyMap.Insert(Dali::Actor::Property::OPACITY, targetOpacity);
+ finishPropertyMap.Insert(Dali::Actor::Property::OPACITY, mOpacity * targetOpacity);
}
SetInitialPropertyMap(initialPropertyMap);
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "الحافظة"
+msgid "slider"
+msgstr ""
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Mübadilə buferi"
+msgid "icon"
+msgstr "Piktoqram"
+
+msgid "slider"
+msgstr "Sürüngəc"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Системен буфер"
+msgid "icon"
+msgstr "Икона"
+
+msgid "slider"
+msgstr "Плъзгач"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "ক্লিপবোর্ড"
+msgid "icon"
+msgstr "Icon"
+
+msgid "slider"
+msgstr "স্লাইডার"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Porta-retalls"
+msgid "slider"
+msgstr "control lliscant"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Schránka"
+msgid "slider"
+msgstr "šoupátko"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Udklipsholder"
+msgid "icon"
+msgstr "Ikon"
+
+msgid "slider"
+msgstr "skyder"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Zwischenablage"
+msgid "slider"
+msgstr ""
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Πρόχειρο"
+msgid "icon"
+msgstr "Εικονίδιο"
+
+msgid "slider"
+msgstr "Ρυθμιστικό"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Clipboard"
+msgid "icon"
+msgstr "Icon"
+
+msgid "slider"
+msgstr "Slider"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Clipboard"
+msgid "icon"
+msgstr "Icon"
+
+msgid "slider"
+msgstr "Slider"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Portapapeles"
+msgid "icon"
+msgstr "Icono"
+
+msgid "slider"
+msgstr "Controlador deslizante"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Portapapeles"
+msgid "icon"
+msgstr "Icono"
+
+msgid "slider"
+msgstr "Controlador deslizante"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Lõikelaud"
+msgid "icon"
+msgstr "Ikoon"
+
+msgid "slider"
+msgstr "Liugur"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Arbela"
+msgid "icon"
+msgstr "Ikonoa"
+
+msgid "slider"
+msgstr "Irristagailua"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "کلیپ بورد"
+msgid "slider"
+msgstr ""
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Leikepöytä"
+msgid "slider"
+msgstr "liukusäädin"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Presse-papier"
+msgid "slider"
+msgstr "curseur"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Presse-papier"
+msgid "icon"
+msgstr "Icône"
+
+msgid "slider"
+msgstr "Curseur"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Portapapeis"
+msgid "slider"
+msgstr "Barra de desprazamento"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Međuspremnik"
+msgid "icon"
+msgstr "Ikona"
+
+msgid "slider"
+msgstr "Klizač"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Vágólap"
+msgid "slider"
+msgstr "csúszka"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Գզրոց"
+msgid "icon"
+msgstr "Պատկերակ"
+
+msgid "slider"
+msgstr "Սողանիկ"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Klippiborð"
+msgid "icon"
+msgstr "Tákn"
+
+msgid "slider"
+msgstr "Skyggna"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Appunti"
+msgid "icon"
+msgstr "Icona"
+
+msgid "slider"
+msgstr "Dispositivo di scorrimento"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "ბუფერული მეხს."
+msgid "icon"
+msgstr "ნიშანი"
+
+msgid "slider"
+msgstr "სლაიდერი"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Буфер"
+msgid "icon"
+msgstr "Белгіше"
+
+msgid "slider"
+msgstr "Сырғытпа"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "클립보드"
+msgid "slider"
+msgstr "슬라이더"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Iškarpinė"
+msgid "slider"
+msgstr "šliaužiklis"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Starpliktuve"
+msgid "icon"
+msgstr "Ikona"
+
+msgid "slider"
+msgstr "Slīdnis"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Түр санах ой"
+msgid "icon"
+msgstr "Дүрс"
+
+msgid "slider"
+msgstr "Slider"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Utklippstavle"
+msgid "icon"
+msgstr "Ikon"
+
+msgid "slider"
+msgstr "Glidebryter"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Klembord"
+msgid "slider"
+msgstr ""
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Schowek"
+msgid "slider"
+msgstr "slajder"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Área de transferência"
+msgid "icon"
+msgstr "Ícone"
+
+msgid "slider"
+msgstr "Controle deslizante"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Área transferência"
+msgid "icon"
+msgstr "Ícone"
+
+msgid "slider"
+msgstr "Cursor de deslocamento"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Clipboard"
+msgid "icon"
+msgstr "Pictogr."
+
+msgid "slider"
+msgstr "Cursor"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Буфер обмена"
+msgid "icon"
+msgstr "Значок"
+
+msgid "slider"
+msgstr "Ползунок"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Schránka"
+msgid "icon"
+msgstr "Ikona"
+
+msgid "slider"
+msgstr "Posuvný ovládač"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Odložišče"
+msgid "slider"
+msgstr "drsnik"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Privremena memorija"
+msgid "slider"
+msgstr "клизач"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Urklipp"
+msgid "icon"
+msgstr "Ikon"
+
+msgid "slider"
+msgstr "Slider"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Pano"
+msgid "icon"
+msgstr "Simge"
+
+msgid "slider"
+msgstr "Kaydırıcı"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Буфер обміну"
+msgid "icon"
+msgstr "Значок"
+
+msgid "slider"
+msgstr "Слайдер"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "کلپ بورڈ"
+msgid "slider"
+msgstr ""
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Bufer"
+msgid "icon"
+msgstr "Ikoncha"
+
+msgid "slider"
+msgstr "Slider"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "Bộ nhớ tạm"
+msgid "slider"
+msgstr "Thanh Trượt"
msgid "IDS_COM_BODY_CLIPBOARD"
msgstr "剪贴板"
+msgid "slider"
+msgstr "滑块"
{
const unsigned int TOOLKIT_MAJOR_VERSION = 2;
const unsigned int TOOLKIT_MINOR_VERSION = 0;
-const unsigned int TOOLKIT_MICRO_VERSION = 32;
+const unsigned int TOOLKIT_MICRO_VERSION = 33;
const char* const TOOLKIT_BUILD_DATE = __DATE__ " " __TIME__;
#ifdef DEBUG_ENABLED
Name: dali2-toolkit
Summary: Dali 3D engine Toolkit
-Version: 2.0.32
+Version: 2.0.33
Release: 1
Group: System/Libraries
License: Apache-2.0 and BSD-3-Clause and MIT