/** * @brief Load color to button, Save color from button, or set button color to default * @param [in] op Operation to do, one of * - SET_DEFAULTS : Sets colors to defaults * - LOAD_COLORS : Loads colors from registry * (No save operation because BrowseColorAndSave saves immediately when user chooses) */ void PropTextColors::SerializeColorToFromScreen(OPERATION op, CColorButton & btn, int colorIndex) { switch (op) { case SET_DEFAULTS: case LOAD_COLORS: btn.SetColor(m_pTempColors->GetColor(colorIndex)); break; } }
void PropMergeColors::SerializeColor(OPERATION op, CColorButton & btn, LPCTSTR optionName, COLORREF & color) { switch (op) { case SET_DEFAULTS: GetOptionsMgr()->GetDefault(optionName, color); btn.SetColor(color); return; case WRITE_OPTIONS: GetOptionsMgr()->SaveOption(optionName, (int)color); return; case READ_OPTIONS: color = GetOptionsMgr()->GetInt(optionName); // Set colors for buttons, do NOT invalidate btn.SetColor(color, FALSE); return; } }
/** * @brief Let user browse common color dialog, and select a color */ void PropMergeColors::BrowseColor(CColorButton & colorButton, COLORREF & currentColor) { CColorDialog dialog(currentColor); LoadCustomColors(); dialog.m_cc.lpCustColors = m_cCustColors; if (dialog.DoModal() == IDOK) { currentColor = dialog.GetColor(); colorButton.SetColor(currentColor); } SaveCustomColors(); }
/** * @brief Let user browse common color dialog, and select a color * @param [in] colorButton Button for which to change color. * @param [in] colorIndex Index to color table. */ void PropTextColors::BrowseColorAndSave(CColorButton & colorButton, int colorIndex) { // Ignore user if colors are slaved to system if (IsDlgButtonChecked(IDC_DEFAULT_STANDARD_COLORS) == BST_UNCHECKED) return; COLORREF currentColor = m_pTempColors->GetColor(colorIndex); CColorDialog dialog(currentColor); Options::CustomColors::Load(GetOptionsMgr(), m_cCustColors.data()); dialog.m_cc.lpCustColors = m_cCustColors.data(); if (dialog.DoModal() == IDOK) { currentColor = dialog.GetColor(); colorButton.SetColor(currentColor); m_pTempColors->SetColor(colorIndex, currentColor); } Options::CustomColors::Save(GetOptionsMgr(), m_cCustColors.data()); }