/*
- * Copyright (c) 2014 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.
#include "toolkit-style-monitor.h"
// EXTERNAL INCLUDES
-#include <dali/public-api/common/dali-common.h>
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
#include <dali/public-api/common/vector-wrapper.h>
#include <dali/public-api/object/base-object.h>
#include <dali/public-api/signals/dali-signal.h>
namespace
{
-const char* DEFAULT_THEME=
- "{\"styles\":{\n"
+const char* DEFAULT_THEME =
+ "{\n"
+ " \"config\":\n"
+ " {\n"
+ " \"brokenImageUrl\":\"{DALI_IMAGE_DIR}broken.png\"\n"
+ " },\n"
+ " \"styles\":\n"
+ " {\n"
" \"textlabel\":\n"
" {\n"
" \"fontStyle\":{\"weight\":\"normal\"},\n"
struct NamedTheme
{
- NamedTheme( const std::string& name, const std::string& theme )
- : name(name), theme(theme)
+ NamedTheme(const std::string& name, const std::string& theme)
+ : name(name),
+ theme(theme)
{
}
std::string name;
std::string theme;
};
-typedef std::vector< NamedTheme > NamedThemes;
-NamedThemes gThemes;
+typedef std::vector<NamedTheme> NamedThemes;
+NamedThemes gThemes;
std::string gTheme;
std::string gFontFamily("LucidaSans");
std::string gFontStyle("Regular");
int gFontSize(1);
-}
+
+constexpr std::string_view THROW_EXCEPTION_STYLE_FILE_NAME = "throwException";
+class DummyException : public std::exception
+{
+public:
+ DummyException()
+ {
+ }
+
+ const char* what() const throw()
+ {
+ return "DummyException";
+ }
+};
+} // namespace
namespace Dali
{
~StyleMonitor();
public: // Style Information
- std::string GetDefaultFontFamily() const;
- std::string GetDefaultFontStyle() const;
- float GetDefaultFontSize() const;
+ std::string GetDefaultFontFamily() const;
+ std::string GetDefaultFontStyle() const;
+ float GetDefaultFontSize() const;
const std::string& GetTheme() const;
- void SetTheme(std::string theme);
- bool LoadThemeFile( const std::string& filename, std::string& output );
+ void SetTheme(std::string theme);
+ bool LoadThemeFile(const std::string& filename, std::string& output);
public: // Signals
Dali::StyleMonitor::StyleChangeSignalType& StyleChangeSignal();
private:
Dali::StyleMonitor::StyleChangeSignalType mStyleChangeSignal;
- static Dali::StyleMonitor mToolkitStyleMonitor;
+ static Dali::StyleMonitor mToolkitStyleMonitor;
- std::string mTheme; ///<< Current theme name
+ std::string mTheme; ///<< Current theme name
};
Dali::StyleMonitor StyleMonitor::mToolkitStyleMonitor;
Dali::StyleMonitor StyleMonitor::Get()
{
- if( ! mToolkitStyleMonitor )
+ if(!mToolkitStyleMonitor)
{
- mToolkitStyleMonitor = Dali::StyleMonitor( new Dali::Internal::Adaptor::StyleMonitor() );
+ mToolkitStyleMonitor = Dali::StyleMonitor(new Dali::Internal::Adaptor::StyleMonitor());
}
return mToolkitStyleMonitor;
}
void StyleMonitor::SetTheme(std::string path)
{
mTheme = path;
- EmitStyleChangeSignal( StyleChange::THEME_CHANGE );
+ EmitStyleChangeSignal(StyleChange::THEME_CHANGE);
}
-bool StyleMonitor::LoadThemeFile( const std::string& filename, std::string& output )
+bool StyleMonitor::LoadThemeFile(const std::string& filename, std::string& output)
{
- for( NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter )
+ // Throw something exceptions during load file
+ if(filename == THROW_EXCEPTION_STYLE_FILE_NAME)
+ {
+ throw DummyException();
+ }
+ for(NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter)
{
NamedTheme& theme = *iter;
- if( theme.name == filename )
+ if(theme.name == filename)
{
output = theme.theme;
return true;
}
}
- if( !gTheme.empty() )
+ if(!gTheme.empty())
{
output = gTheme;
}
return GetImplementation(*this).StyleChangeSignal();
}
-bool StyleMonitor::LoadThemeFile( const std::string& filename, std::string& output )
+bool StyleMonitor::LoadThemeFile(const std::string& filename, std::string& output)
{
return GetImplementation(*this).LoadThemeFile(filename, output);
}
StyleMonitor& StyleMonitor::operator=(const StyleMonitor& monitor)
{
- if( *this != monitor )
+ if(*this != monitor)
{
BaseHandle::operator=(monitor);
}
{
namespace StyleMonitor
{
-
-void SetThemeFileOutput( const std::string& name, const std::string& output )
+void SetThemeFileOutput(const std::string& name, const std::string& output)
{
- for( NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter )
+ for(NamedThemes::iterator iter = gThemes.begin(); iter != gThemes.end(); ++iter)
{
NamedTheme& theme = *iter;
- if( theme.name == name )
+ if(theme.name == name)
{
theme.theme = output;
return;
}
}
- gThemes.push_back( NamedTheme( name, output ) );
+ gThemes.push_back(NamedTheme(name, output));
}
void SetDefaultFontFamily(const std::string& family)
gFontStyle = style;
}
-void SetDefaultFontSize( float size )
+void SetDefaultFontSize(float size)
{
gFontSize = size;
}
-} // StyleMonitor
-} // Test
+} // namespace StyleMonitor
+} // namespace Test