* theme.cpp
*****************************************************************************
* Copyright (C) 2003 VideoLAN
- * $Id: theme.cpp,v 1.1 2004/01/03 23:31:34 asmax Exp $
+ * $Id$
*
* Authors: Cyril Deguet <asmax@via.ecp.fr>
* Olivier Teulière <ipkiss@via.ecp.fr>
m_fonts.clear();
m_commands.clear();
m_vars.clear();
+ m_curves.clear();
+}
+
+
+void Theme::loadConfig()
+{
+ msg_Dbg( getIntf(), "Loading theme configuration");
+
+ // Get config from vlcrc file
+ char *save = config_GetPsz( getIntf(), "skins2-config" );
+ if( !save ) return;
+
+ // Is there an existing config?
+ if( !strcmp( save, "" ) )
+ {
+ // Show the windows
+ m_windowManager.showAll();
+ return;
+ }
+
+ // Initialization
+ map<string, TopWindowPtr>::const_iterator it;
+ int i = 0;
+ int x, y, visible, scan;
+
+ // Get config for each window
+ for( it = m_windows.begin(); it != m_windows.end(); it++ )
+ {
+ TopWindow *pWin = (*it).second.get();
+ // Get config
+ scan = sscanf( &save[i * 13], "(%4d,%4d,%1d)", &x, &y, &visible );
+
+ // If config has the correct number of arguments
+ if( scan > 2 )
+ {
+ m_windowManager.startMove( *pWin );
+ m_windowManager.move( *pWin, x, y );
+ m_windowManager.stopMove();
+ if( visible )
+ {
+ m_windowManager.show( *pWin );
+ }
+ }
+
+ // Next window
+ i++;
+ }
+ free( save );
+}
+
+
+void Theme::saveConfig()
+{
+ msg_Dbg( getIntf(), "Saving theme configuration");
+
+ // Initialize char where config is stored
+ char *save = new char[400];
+ map<string, TopWindowPtr>::const_iterator it;
+ int i = 0;
+ int x, y;
+
+ // Save config of every window
+ for( it = m_windows.begin(); it != m_windows.end(); it++ )
+ {
+ TopWindow *pWin = (*it).second.get();
+ // Print config
+ x = pWin->getLeft();
+ y = pWin->getTop();
+ sprintf( &save[i * 13], "(%4d,%4d,%1d)", x, y,
+ pWin->getVisibleVar().get() );
+ i++;
+ }
+
+ // Save config to file
+ config_PutPsz( getIntf(), "skins2-config", save );
+ config_SaveConfigFile( getIntf(), "skins2" );
+
+ // Free memory
+ delete[] save;
}
} \
return (*it).second.get();
-
GenericBitmap *Theme::getBitmapById( const string &id )
{
FIND_OBJECT( GenericBitmapPtr, m_bitmaps );
FIND_OBJECT( GenericFontPtr, m_fonts );
}
-GenericWindow *Theme::getWindowById( const string &id )
+TopWindow *Theme::getWindowById( const string &id )
{
- FIND_OBJECT( GenericWindowPtr, m_windows );
+ FIND_OBJECT( TopWindowPtr, m_windows );
}
GenericLayout *Theme::getLayoutById( const string &id )
FIND_OBJECT( CtrlGenericPtr, m_controls );
}
+
+