/* Needed for instant apply and friends. It gathers the value of the widget associated with * the tControl gived and sets it as pref */ void AP_Dialog_Options::_storeDataForControl (tControl id) { UT_String stVal; XAP_Prefs *pPrefs = m_pApp->getPrefs(); UT_return_if_fail (pPrefs); AP_FrameData *pFrameData = NULL; if(m_pFrame) { pFrameData = (AP_FrameData *)m_pFrame->getFrameData(); UT_return_if_fail (pFrameData); } XAP_PrefsScheme *pPrefsScheme = pPrefs->getCurrentScheme(); UT_return_if_fail (pPrefsScheme); // turn off all notification to PrefListeners via XAP_Prefs pPrefs->startBlockChange(); switch (id) { case id_CHECK_SPELL_CHECK_AS_TYPE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_AutoSpellCheck, _gatherSpellCheckAsType()); break; case id_CHECK_GRAMMAR_CHECK: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_AutoGrammarCheck, _gatherGrammarCheck()); break; case id_CHECK_SMART_QUOTES_ENABLE: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_SmartQuotesEnable, _gatherSmartQuotes()); break; case id_CHECK_CUSTOM_SMART_QUOTES: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_CustomSmartQuotes, _gatherCustomSmartQuotes()); break; case id_LIST_VIEW_OUTER_QUOTE_STYLE: pPrefsScheme->setValueInt ((gchar*)XAP_PREF_KEY_OuterQuoteStyle, _gatherOuterQuoteStyle()); break; case id_LIST_VIEW_INNER_QUOTE_STYLE: pPrefsScheme->setValueInt ((gchar*)XAP_PREF_KEY_InnerQuoteStyle, _gatherInnerQuoteStyle()); break; case id_CHECK_SPELL_UPPERCASE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_SpellCheckCaps, _gatherSpellUppercase()); break; case id_CHECK_SPELL_NUMBERS: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_SpellCheckNumbers, _gatherSpellNumbers()); break; case id_CHECK_OTHER_DEFAULT_DIRECTION_RTL: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_DefaultDirectionRtl, _gatherOtherDirectionRtl()); break; case id_CHECK_AUTO_SAVE_FILE: UT_DEBUGMSG(("Saving Auto Save File [%i]\n", _gatherAutoSaveFile())); Save_Pref_Bool( pPrefsScheme, XAP_PREF_KEY_AutoSaveFile, _gatherAutoSaveFile() ); break; case id_TEXT_AUTO_SAVE_FILE_EXT: _gatherAutoSaveFileExt(stVal); UT_DEBUGMSG(("Saving Auto Save File Ext [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFileExt, stVal.c_str()); break; case id_TEXT_AUTO_SAVE_FILE_PERIOD: _gatherAutoSaveFilePeriod(stVal); UT_DEBUGMSG(("Saving Auto Save File with a period of [%s]\n", stVal.c_str())); pPrefsScheme->setValue(XAP_PREF_KEY_AutoSaveFilePeriod, stVal.c_str()); break; case id_CHECK_VIEW_SHOW_RULER: #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) { bool tmpbool = _gatherViewShowRuler(); Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_RulerVisible, tmpbool); if (pFrameData && (tmpbool != pFrameData->m_bShowRuler)) { pFrameData->m_bShowRuler = _gatherViewShowRuler() ; m_pFrame->toggleRuler(pFrameData->m_bShowRuler); } } #endif break; case id_LIST_VIEW_RULER_UNITS: pPrefsScheme->setValue ((gchar*)AP_PREF_KEY_RulerUnits, (gchar*)UT_dimensionName (_gatherViewRulerUnits())); break; case id_CHECK_VIEW_CURSOR_BLINK: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_CursorBlink, _gatherViewCursorBlink()); break; case id_CHECK_VIEW_SHOW_STATUS_BAR: #if !defined(TOOLKIT_GTK) && !defined(TOOLKIT_COCOA) && !defined (TOOLKIT_WIN) { bool tmpbool = _gatherViewShowStatusBar(); Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_StatusBarVisible, tmpbool); if (pFrameData && (tmpbool != pFrameData->m_bShowStatusBar)) { pFrameData->m_bShowStatusBar = tmpbool; m_pFrame->toggleStatusBar(pFrameData->m_bShowStatusBar); } } #endif break; case id_PUSH_CHOOSE_COLOR_FOR_TRANSPARENT: pPrefsScheme->setValue ((gchar*)XAP_PREF_KEY_ColorForTransparent, _gatherColorForTransparent()); break; case id_CHECK_VIEW_UNPRINTABLE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_ParaVisible, _gatherViewUnprintable()); break; case id_CHECK_ENABLE_SMOOTH_SCROLLING: #if defined(TOOLKIT_GTK) Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_EnableSmoothScrolling, _gatherEnableSmoothScrolling()); #endif break; case id_CHECK_ENABLE_OVERWRITE: Save_Pref_Bool (pPrefsScheme, AP_PREF_KEY_InsertModeToggle, _gatherEnableOverwrite() ); break; case id_CHECK_AUTO_LOAD_PLUGINS: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_AutoLoadPlugins, _gatherAutoLoadPlugins() ); break; case id_CHECK_LANG_WITH_KEYBOARD: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_ChangeLanguageWithKeyboard, _gatherLanguageWithKeyboard() ); break; case id_CHECK_DIR_MARKER_AFTER_CLOSING_PARENTHESIS: Save_Pref_Bool (pPrefsScheme, XAP_PREF_KEY_DirMarkerAfterClosingParenthesis, _gatherDirMarkerAfterClosingParenthesis()); break; case id_NOTEBOOK: gchar szBuffer[40]; sprintf( szBuffer, "%i", _gatherNotebookPageNum() ); pPrefsScheme->setValue ((gchar*)AP_PREF_KEY_OptionsTabNumber, (gchar*)szBuffer ); break; // Ignore window controls/special buttons case id_BUTTON_SAVE: case id_BUTTON_DEFAULTS: case id_BUTTON_OK: case id_BUTTON_CANCEL: case id_BUTTON_APPLY: case id_BUTTON_SPELL_AUTOREPLACE: case id_CHECK_COLOR_FOR_TRANSPARENT_IS_WHITE: case id_TEXT_AUTO_SAVE_FILE_PERIOD_SPIN: // needed by Cocoa FE // Not implemented case id_CHECK_PREFS_AUTO_SAVE: case id_CHECK_SPELL_HIDE_ERRORS: case id_CHECK_SPELL_MAIN_ONLY: case id_CHECK_SPELL_SUGGEST: case id_CHECK_VIEW_ALL: case id_CHECK_VIEW_HIDDEN_TEXT: case id_COMBO_PREFS_SCHEME: // Dummy case, dummy comment :) case id_last: UT_DEBUGMSG (("WARNING: _storeDataForControl not implemented for this control\n")); default: break; } // allow the prefListeners to receive their calls and pPrefs->endBlockChange(); pPrefs->savePrefsFile(); }