// CLASS HEADER
#include "style-manager-impl.h"
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/control.h>
-#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/styling/style-manager.h>
-#include <dali/integration-api/debug.h>
-
// EXTERNAL INCLUDES
#include <fstream>
#include <iostream>
#include <sstream>
+#include <dali/public-api/adaptor-framework/singleton-service.h>
+#include <dali/public-api/object/type-registry.h>
+#include <dali/integration-api/debug.h>
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control.h>
+#include <dali-toolkit/public-api/controls/control-impl.h>
+#include <dali-toolkit/public-api/styling/style-manager.h>
namespace
{
}
TypeRegistration STYLE_MANAGER_TYPE( typeid(Dali::Toolkit::StyleManager), typeid(Dali::BaseHandle), Create, true /* Create instance at startup */ );
-/**
- * Merge two maps into one
- */
-void MergeMaps( const PropertyValueMap& a, const PropertyValueMap& b, PropertyValueMap& out )
-{
- out = a;
- for( PropertyValueMap::const_iterator it = b.begin(), itEnd = b.end(); it != itEnd; ++it )
- {
- out[ it->first ] = it->second;
- }
-}
-
} // namespace
Toolkit::StyleManager StyleManager::Get()
bool StyleManager::GetStyleConstant( const std::string& key, Property::Value& valueOut )
{
- Toolkit::PropertyValueMap::iterator valueIt = mStyleBuilderConstants.find( key );
- if( valueIt != mStyleBuilderConstants.end() )
+ Property::Value* value = mStyleBuilderConstants.Find( key );
+ if( value )
{
- valueOut = valueIt->second;
+ valueOut = *value;
return true;
}
SetTheme();
}
-Toolkit::Builder StyleManager::CreateBuilder( const PropertyValueMap& constants )
+Toolkit::Builder StyleManager::CreateBuilder( const Property::Map& constants )
{
Toolkit::Builder builder = Toolkit::Builder::New();
builder.AddConstants( constants );
else
{
// Merge theme and style constants
- PropertyValueMap constants;
- MergeMaps( mThemeBuilderConstants, mStyleBuilderConstants, constants );
+ Property::Map constants( mThemeBuilderConstants );
+ constants.Merge( mStyleBuilderConstants );
// Create it
builder = CreateBuilder( constants );
void StyleManager::SetTheme()
{
mThemeBuilder = CreateBuilder( mThemeBuilderConstants );
- LoadJSON( mThemeBuilder, mThemeFile );
-
- StyleChange change;
- change.themeChange = true;
- mStyleChangeSignal.Emit( Toolkit::StyleManager::Get(), change );
+ if ( LoadJSON( mThemeBuilder, mThemeFile ) )
+ {
+ StyleChange change;
+ change.themeChange = true;
+ mStyleChangeSignal.Emit( Toolkit::StyleManager::Get(), change );
+ }
+ else
+ {
+ mThemeBuilder.Reset();
+ }
}
Toolkit::Builder StyleManager::FindCachedBuilder( const std::string& key )