void SaveWindowRect(HWND hWnd) { // Save position of active window if (!hWnd) return; WINDOWPLACEMENT wp; memset(&wp, 0, sizeof(WINDOWPLACEMENT)); wp.length = sizeof(WINDOWPLACEMENT); if (GetWindowPlacement(hWnd, &wp)) { // Only save window positions for "restored" and "maximized" states. // If window is closed while "minimized", we don't want it to open minimized // for next session, so don't update registry so it opens in previous state. if (wp.showCmd == SW_SHOWNORMAL || wp.showCmd == SW_SHOW || wp.showCmd == SW_MAXIMIZE) { RECT rect; if (GetWindowRect(hWnd, &rect)) { WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_LEFT, rect.left); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_TOP, rect.top); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_WIDTH, rect.right - rect.left); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_HEIGHT, rect.bottom - rect.top); } if (wp.showCmd == SW_MAXIMIZE) { // When window is maximized, we also store the "restore" size WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_RESTORE_LEFT, wp.rcNormalPosition.left); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_RESTORE_TOP, wp.rcNormalPosition.top); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_RESTORE_RIGHT, wp.rcNormalPosition.right); WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_RESTORE_BOTTOM, wp.rcNormalPosition.bottom); } // Maximize is the only special case we handle WriteRegistryInt(PREF_WINPOS_FOLDER, PREF_SHOWSTATE, (wp.showCmd == SW_MAXIMIZE) ? SW_MAXIMIZE : SW_SHOW); } } }
void CAtmoRegistryConfig::SaveSettings() { // alle Variabel etc. in Registry speichern char regKeyName[100],valueName[32]; WriteRegistryInt(configRootKey,"comport",this->m_Comport); WriteRegistryInt(configRootKey,"comport_1", m_Comports[0] ); WriteRegistryInt(configRootKey,"comport_2", m_Comports[1] ); WriteRegistryInt(configRootKey,"comport_3", m_Comports[2] ); // don't destroy config in that case.. if(m_eAtmoConnectionType != actNUL) WriteRegistryInt(configRootKey,"ConnectionType",(int)m_eAtmoConnectionType); WriteRegistryInt(configRootKey,"EffectMode",(int)m_eEffectMode); WriteRegistryInt(configRootKey,"WhiteAdjustment_Red",m_WhiteAdjustment_Red); WriteRegistryInt(configRootKey,"WhiteAdjustment_Green",m_WhiteAdjustment_Green); WriteRegistryInt(configRootKey,"WhiteAdjustment_Blue",m_WhiteAdjustment_Blue); WriteRegistryInt(configRootKey,"UseSoftwareWhiteAdj",(int)m_UseSoftwareWhiteAdj); WriteRegistryInt(configRootKey,"UsePerChWhiteAdj",(int)m_WhiteAdjPerChannel); sprintf(regKeyName,"%sWhiteAdjPerChannel\\",configRootKey); WriteRegistryInt(regKeyName,"count",(int)m_chWhiteAdj_Count); for(int i=0; (i<m_chWhiteAdj_Count) && m_chWhiteAdj_Red && m_chWhiteAdj_Blue && m_chWhiteAdj_Green; i++) { sprintf(valueName,"red_%d",i); WriteRegistryInt(regKeyName, valueName, m_chWhiteAdj_Red[i] ); sprintf(valueName,"green_%d",i); WriteRegistryInt(regKeyName, valueName, m_chWhiteAdj_Green[i] ); sprintf(valueName,"blue_%d",i); WriteRegistryInt(regKeyName, valueName, m_chWhiteAdj_Blue[i] ); } WriteRegistryInt(configRootKey,"ColorChanger_iSteps",this->m_ColorChanger_iSteps); WriteRegistryInt(configRootKey,"ColorChanger_iDelay",this->m_ColorChanger_iDelay); WriteRegistryInt(configRootKey,"LrColorChanger_iSteps",this->m_LrColorChanger_iSteps); WriteRegistryInt(configRootKey,"LrColorChanger_iDelay",this->m_LrColorChanger_iDelay); WriteRegistryInt(configRootKey,"StaticColor_Red",this->m_StaticColor_Red); WriteRegistryInt(configRootKey,"StaticColor_Green",this->m_StaticColor_Green); WriteRegistryInt(configRootKey,"StaticColor_Blue",this->m_StaticColor_Blue); WriteRegistryInt(configRootKey,"isSetShutdownColor",m_IsSetShutdownColor); WriteRegistryInt(configRootKey,"ShutdownColor_red",m_ShutdownColor_Red); WriteRegistryInt(configRootKey,"ShutdownColor_green",m_ShutdownColor_Green); WriteRegistryInt(configRootKey,"ShutdownColor_blue",m_ShutdownColor_Blue); WriteRegistryInt(configRootKey,"LiveViewFilterMode",(int)m_LiveViewFilterMode); WriteRegistryInt(configRootKey,"LiveViewFilter_PercentNew",m_LiveViewFilter_PercentNew); WriteRegistryInt(configRootKey,"LiveViewFilter_MeanLength",m_LiveViewFilter_MeanLength); WriteRegistryInt(configRootKey,"LiveViewFilter_MeanThreshold",m_LiveViewFilter_MeanThreshold); WriteRegistryInt(configRootKey,"LiveView_EdgeWeighting",m_LiveView_EdgeWeighting); WriteRegistryInt(configRootKey,"LiveView_RowsPerFrame",m_LiveView_RowsPerFrame); WriteRegistryInt(configRootKey,"LiveView_BrightCorrect",m_LiveView_BrightCorrect); WriteRegistryInt(configRootKey,"LiveView_DarknessLimit",m_LiveView_DarknessLimit); WriteRegistryInt(configRootKey,"LiveView_HueWinSize",m_LiveView_HueWinSize); WriteRegistryInt(configRootKey,"LiveView_SatWinSize",m_LiveView_SatWinSize); WriteRegistryInt(configRootKey,"LiveView_WidescreenMode",m_LiveView_WidescreenMode); WriteRegistryInt(configRootKey,"LiveView_HOverscanBorder",m_LiveView_HOverscanBorder); WriteRegistryInt(configRootKey,"LiveView_VOverscanBorder",m_LiveView_VOverscanBorder); WriteRegistryInt(configRootKey,"LiveView_DisplayNr",m_LiveView_DisplayNr); WriteRegistryInt(configRootKey,"LiveView_FrameDelay",m_LiveView_FrameDelay); WriteRegistryInt(configRootKey,"LiveView_GDI_FrameRate",m_LiveView_GDI_FrameRate); WriteRegistryInt(configRootKey,"ZonesTopCount",m_ZonesTopCount); WriteRegistryInt(configRootKey,"ZonesBottomCount",m_ZonesBottomCount); WriteRegistryInt(configRootKey,"ZonesLRCount",m_ZonesLRCount); WriteRegistryInt(configRootKey,"ZoneSummary",m_ZoneSummary); WriteRegistryInt(configRootKey,"Hardware_global_gamma",m_Hardware_global_gamma); WriteRegistryInt(configRootKey,"Hardware_global_contrast",m_Hardware_global_contrast); WriteRegistryInt(configRootKey,"Hardware_contrast_red",m_Hardware_contrast_red); WriteRegistryInt(configRootKey,"Hardware_contrast_green",m_Hardware_contrast_green); WriteRegistryInt(configRootKey,"Hardware_contrast_blue",m_Hardware_contrast_blue); WriteRegistryInt(configRootKey,"Hardware_gamma_red",m_Hardware_gamma_red); WriteRegistryInt(configRootKey,"Hardware_gamma_green",m_Hardware_gamma_green); WriteRegistryInt(configRootKey,"Hardware_gamma_blue",m_Hardware_gamma_blue); WriteRegistryInt(configRootKey,"Software_gamma_mode",(int)m_Software_gamma_mode); WriteRegistryInt(configRootKey,"Software_gamma_red",m_Software_gamma_red); WriteRegistryInt(configRootKey,"Software_gamma_green",m_Software_gamma_green); WriteRegistryInt(configRootKey,"Software_gamma_blue",m_Software_gamma_blue); WriteRegistryInt(configRootKey,"Software_gamma_global",m_Software_gamma_global); WriteRegistryString( configRootKey, "DMX_BaseChannels", m_DMX_BaseChannels ); WriteRegistryInt(configRootKey,"DMX_RGB_Channels",m_DMX_RGB_Channels); WriteRegistryInt(configRootKey,"DMX_BaudrateIndex", m_DMX_BaudrateIndex ); WriteRegistryInt(configRootKey,"MoMo_Channels", m_MoMo_Channels ); WriteRegistryInt(configRootKey,"Fnordlicht_Amount", m_Fnordlicht_Amount ); WriteRegistryInt(configRootKey,"hAtmoClLeds", m_AtmoClLeds); WriteRegistryInt(configRootKey,"NumChannelAssignments",getNumChannelAssignments()); WriteRegistryInt(configRootKey,"CurrentChannelAssignment",m_CurrentChannelAssignment); for(int i=1;i<10;i++) { CAtmoChannelAssignment *ta = this->m_ChannelAssignments[i]; if(ta!=NULL) { sprintf(regKeyName,"%sChannelAssignment_%d\\",configRootKey,i); WriteRegistryString(regKeyName,"name", ta->getName() ); WriteRegistryInt(regKeyName,"count", ta->getSize() ); for(int c=0;c<ta->getSize();c++) { sprintf(valueName,"channel_%d",c); WriteRegistryInt(regKeyName,valueName,ta->getZoneIndex(c)); } } } }