void PropPage::write(HWND page, Item const* items, ListItem* listItems /* = NULL */, HWND list /* = NULL */) { #ifdef _DEBUG m_check_read_write--; #endif dcassert(page != NULL); bool l_showUserWarning = false;// [+] IRainman if (items != NULL) // [+] SSA { for (Item const* i = items; i->type != T_END; ++i) { tstring buf; switch (i->type) { case T_STR: { WinUtil::GetDlgItemText(page, i->itemID, buf); l_showUserWarning |= g_settings->set(SettingsManager::StrSetting(i->setting), Text::fromT(buf));// [!] IRainman // Crash https://crash-server.com/Problem.aspx?ClientID=ppa&ProblemID=78416 break; } case T_INT: { WinUtil::GetDlgItemText(page, i->itemID, buf); l_showUserWarning |= g_settings->set(SettingsManager::IntSetting(i->setting), Util::toInt(buf));// [!] IRainman break; } case T_BOOL: { if (GetDlgItem(page, i->itemID) == NULL) { // Control not exist ? Why ?? dcassert(0); throw; } if (::IsDlgButtonChecked(page, i->itemID) == BST_CHECKED) l_showUserWarning |= g_settings->set(SettingsManager::IntSetting(i->setting), true);// [!] IRainman else l_showUserWarning |= g_settings->set((SettingsManager::IntSetting)i->setting, false);// [!] IRainman break; } case T_END: dcassert(0); break; } } } if (listItems != NULL) { CListViewCtrl ctrl; ctrl.Attach(list); for (int i = 0; listItems[i].setting != 0; i++) { l_showUserWarning |= SET_SETTING(IntSetting(listItems[i].setting), ctrl.GetCheckState(i));// [!] IRainman } ctrl.Detach(); } #ifdef _DEBUG if (l_showUserWarning) { MessageBox(page, _T("Values of the changed settings are automatically adjusted"), CTSTRING(WARNING), MB_OK); } #endif }
void PropPage::write(HWND page, Item const* items, ListItem* listItems /* = NULL */, HWND list /* = NULL */) { dcassert(page != NULL); AutoArray<TCHAR> buf(SETTING_STR_MAXLEN); for(Item const* i = items; i->type != T_END; i++) { switch(i->type) { case T_STR: { ::GetDlgItemText(page, i->itemID, buf, SETTING_STR_MAXLEN); settings->set((SettingsManager::StrSetting)i->setting, Text::fromT(tstring(buf))); break; } case T_INT: { ::GetDlgItemText(page, i->itemID, buf, SETTING_STR_MAXLEN); settings->set((SettingsManager::IntSetting)i->setting, Text::fromT(tstring(buf))); break; } case T_BOOL: { if(::IsDlgButtonChecked(page, i->itemID) == BST_CHECKED) settings->set((SettingsManager::IntSetting)i->setting, true); else settings->set((SettingsManager::IntSetting)i->setting, false); } } } if(listItems != NULL) { CListViewCtrl ctrl; ctrl.Attach(list); int i; for(i = 0; listItems[i].setting != 0; i++) { SettingsManager::getInstance()->set(SettingsManager::IntSetting(listItems[i].setting), ctrl.GetCheckState(i)); } ctrl.Detach(); } }
void PropPage::write(HWND page, Item const* items, ListItem* listItems /* = NULL */, HWND list /* = NULL */) { dcassert(page != NULL); tstring buf; for(Item const* i = items; i->type != T_END; i++) { switch(i->type) { case T_STR: { if (GetDlgItem(page, i->itemID) == NULL) { // Control not exist ? Why ?? throw; } buf.resize(SETTING_STR_MAXLEN); buf.resize(::GetDlgItemText(page, i->itemID, &buf[0], SETTING_STR_MAXLEN)); settings->set((SettingsManager::StrSetting)i->setting, Text::fromT(buf)); #if DIM_EDIT_EXPERIMENT if (ctrlMap[i->itemID]) { ctrlMap[i->itemID]->UnsubclassWindow(); delete ctrlMap[i->itemID]; ctrlMap.erase(i->itemID); } #endif break; } case T_INT: { if (GetDlgItem(page, i->itemID) == NULL) { // Control not exist ? Why ?? throw; } buf.resize(SETTING_STR_MAXLEN); buf.resize(::GetDlgItemText(page, i->itemID, &buf[0], SETTING_STR_MAXLEN)); settings->set((SettingsManager::IntSetting)i->setting, Util::toInt(Text::fromT(buf))); break; } case T_INT64: { buf.resize(SETTING_STR_MAXLEN); buf.resize(::GetDlgItemText(page, i->itemID, &buf[0], SETTING_STR_MAXLEN)); settings->set((SettingsManager::Int64Setting)i->setting, Text::fromT(buf)); break; } case T_BOOL: { if (GetDlgItem(page, i->itemID) == NULL) { // Control not exist ? Why ?? throw; } if(::IsDlgButtonChecked(page, i->itemID) == BST_CHECKED) settings->set((SettingsManager::IntSetting)i->setting, true); else settings->set((SettingsManager::IntSetting)i->setting, false); } } } if(listItems != NULL) { CListViewCtrl ctrl; ctrl.Attach(list); int i; for(i = 0; listItems[i].setting != 0; i++) { SettingsManager::getInstance()->set(SettingsManager::IntSetting(listItems[i].setting), ctrl.GetCheckState(i)); } ctrl.Detach(); } }