void Theme::saveConfig() { msg_Dbg( getIntf(), "saving theme configuration"); map<string, TopWindowPtr>::const_iterator itWin; map<string, GenericLayoutPtr>::const_iterator itLay; ostringstream outStream; for( itWin = m_windows.begin(); itWin != m_windows.end(); itWin++ ) { TopWindow *pWin = itWin->second.get(); // Find the layout id for this window string layoutId; const GenericLayout *pLayout = &pWin->getActiveLayout(); for( itLay = m_layouts.begin(); itLay != m_layouts.end(); itLay++ ) { if( itLay->second.get() == pLayout ) { layoutId = itLay->first; } } outStream << '[' << itWin->first << ' ' << layoutId << ' ' << pWin->getLeft() << ' ' << pWin->getTop() << ' ' << pLayout->getWidth() << ' ' << pLayout->getHeight() << ' ' << (pWin->getVisibleVar().get() ? 1 : 0) << ']'; } // Save config to file config_PutPsz( getIntf(), "skins2-config", outStream.str().c_str() ); }
void WindowManager::unmaximize( TopWindow &rWindow ) { // Register the window to allow moving it // registerWindow( rWindow ); // Resize the window // FIXME: Ugly const_cast GenericLayout &rLayout = (GenericLayout&)rWindow.getActiveLayout(); startResize( rLayout, kResizeSE ); resize( rLayout, m_maximizeRect.getWidth(), m_maximizeRect.getHeight() ); stopResize(); // Now move it startMove( rWindow ); move( rWindow, m_maximizeRect.getLeft(), m_maximizeRect.getTop() ); stopMove(); rWindow.m_pVarMaximized->set( false ); }
void WindowManager::maximize( TopWindow &rWindow ) { // Save the current position/size of the window, to be able to restore it m_maximizeRect = SkinsRect( rWindow.getLeft(), rWindow.getTop(), rWindow.getLeft() + rWindow.getWidth(), rWindow.getTop() + rWindow.getHeight() ); SkinsRect workArea = OSFactory::instance( getIntf() )->getWorkArea(); // Move the window startMove( rWindow ); move( rWindow, workArea.getLeft(), workArea.getTop() ); stopMove(); // Now resize it // FIXME: Ugly const_cast GenericLayout &rLayout = (GenericLayout&)rWindow.getActiveLayout(); startResize( rLayout, kResizeSE ); resize( rLayout, workArea.getWidth(), workArea.getHeight() ); stopResize(); rWindow.m_pVarMaximized->set( true ); // Make the window unmovable by unregistering it // unregisterWindow( rWindow ); }