X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fstyling%2Fstyle-manager-impl.cpp;h=08d61fdccb36a2a68970d8656bb477dd411df9f5;hp=69eee7bfc43f2b0428007890fb610854fc649c59;hb=5b3cf0e6742934674bdf62bbe15af00e39eae566;hpb=3d516ae37b6f1438af2d0a353bb3a57e9cdcef48 diff --git a/dali-toolkit/internal/styling/style-manager-impl.cpp b/dali-toolkit/internal/styling/style-manager-impl.cpp index 69eee7b..08d61fd 100644 --- a/dali-toolkit/internal/styling/style-manager-impl.cpp +++ b/dali-toolkit/internal/styling/style-manager-impl.cpp @@ -27,6 +27,7 @@ #include #include #include +#include namespace { @@ -99,7 +100,8 @@ Toolkit::StyleManager StyleManager::Get() StyleManager::StyleManager() : mOrientationDegrees( 0 ), // Portrait mDefaultFontSize( -1 ), - mThemeFile( DEFAULT_THEME ) + mThemeFile( DEFAULT_THEME ), + mFeedbackStyle( NULL ) { // Add theme builder constants mThemeBuilderConstants[ PACKAGE_PATH_KEY ] = DEFAULT_PACKAGE_PATH; @@ -111,10 +113,15 @@ StyleManager::StyleManager() mDefaultFontSize = mStyleMonitor.GetDefaultFontSize(); } + + // Sound & haptic style + mFeedbackStyle = new FeedbackStyle(); + } StyleManager::~StyleManager() { + delete mFeedbackStyle; } void StyleManager::SetOrientationValue( int orientation ) @@ -245,6 +252,7 @@ void StyleManager::BuildQualifiedStyleName( const std::string& styleName, const void StyleManager::ApplyStyle( Toolkit::Builder builder, Toolkit::Control control ) { std::string styleName = control.GetStyleName(); + if( styleName.empty() ) { // Convert control name to lower case @@ -282,12 +290,27 @@ void StyleManager::ApplyStyle( Toolkit::Builder builder, Toolkit::Control contro void StyleManager::ApplyThemeStyle( Toolkit::Control control ) { + if( !mThemeBuilder ) + { + RequestDefaultTheme(); + } + if( mThemeBuilder ) { ApplyStyle( mThemeBuilder, control ); } } +void StyleManager::ApplyThemeStyleAtInit( Toolkit::Control control ) +{ + ApplyThemeStyle( control ); + + if(mFeedbackStyle) + { + mFeedbackStyle->ObjectCreated( control ); + } +} + void StyleManager::ApplyStyle( Toolkit::Control control, const std::string& jsonFileName, const std::string& styleName ) { bool builderReady = false; @@ -356,11 +379,15 @@ void StyleManager::RequestDefaultTheme() void StyleManager::SetTheme() { mThemeBuilder = CreateBuilder( mThemeBuilderConstants ); - if ( LoadJSON( mThemeBuilder, mThemeFile ) ) + + if( LoadJSON( mThemeBuilder, mThemeFile ) ) { - StyleChange change; - change.themeChange = true; - mStyleChangeSignal.Emit( Toolkit::StyleManager::Get(), change ); + if(mFeedbackStyle) + { + mFeedbackStyle->StyleChanged( mThemeFile, StyleChange::THEME_CHANGE ); + } + + mStyleChangeSignal.Emit( Toolkit::StyleManager::Get(), StyleChange::THEME_CHANGE ); } else { @@ -384,25 +411,36 @@ void StyleManager::CacheBuilder( Toolkit::Builder builder, const std::string& ke mBuilderCache[ key ] = builder; } -void StyleManager::StyleMonitorChange( StyleMonitor styleMonitor, StyleChange styleChange ) +void StyleManager::StyleMonitorChange( StyleMonitor styleMonitor, StyleChange::Type styleChange ) { - if( styleChange.defaultFontSizeChange ) + switch ( styleChange ) { - mDefaultFontSize = styleMonitor.GetDefaultFontSize(); - } - - if( styleChange.themeChange ) - { - if( ! styleChange.themeFilePath.empty() ) + case StyleChange::DEFAULT_FONT_CHANGE: { - mThemeFile = styleChange.themeFilePath; + break; } - else + + case StyleChange::DEFAULT_FONT_SIZE_CHANGE: { - mThemeFile = DEFAULT_THEME; + mDefaultFontSize = styleMonitor.GetDefaultFontSize(); + break; } - SetTheme(); + case StyleChange::THEME_CHANGE: + { + const std::string& newTheme = styleMonitor.GetTheme(); + if( ! newTheme.empty() ) + { + mThemeFile = newTheme; + } + else + { + mThemeFile = DEFAULT_THEME; + } + + SetTheme(); + break; + } } mStyleChangeSignal.Emit( Toolkit::StyleManager::Get(), styleChange );