ToggleResult toggleModeSetting (unsigned char *setting, int command) { return toggleSetting(setting, command, NULL, NULL); }
ToggleResult toggleFeatureSetting (unsigned char *setting, int command) { return toggleSetting(setting, command, &tune_toggle_off, &tune_toggle_on); }
static ToggleResult toggleFeatureSetting (unsigned char *setting, int command) { return toggleSetting(setting, command, ALERT_TOGGLE_OFF, ALERT_TOGGLE_ON); }
static ToggleResult toggleModeSetting (unsigned char *setting, int command) { return toggleSetting(setting, command, ALERT_NONE, ALERT_NONE); }
static int handleToggleCommands (int command, void *data) { switch (command & BRL_MSK_CMD) { case BRL_CMD_SKPIDLNS: toggleFeatureSetting(&prefs.skipIdenticalLines, command); break; case BRL_CMD_SKPBLNKWINS: toggleFeatureSetting(&prefs.skipBlankBrailleWindows, command); break; case BRL_CMD_SLIDEWIN: toggleFeatureSetting(&prefs.slidingBrailleWindow, command); break; case BRL_CMD_SIXDOTS: toggleFeatureSetting(&prefs.textStyle, command); break; case BRL_CMD_CSRTRK: toggleSetting(&ses->trackScreenCursor, command, ALERT_CURSOR_UNLINKED, ALERT_CURSOR_LINKED); if (ses->trackScreenCursor) { #ifdef ENABLE_SPEECH_SUPPORT if (spk.track.isActive && (scr.number == spk.track.screenNumber)) { spk.track.speechLocation = SPK_LOC_NONE; } else #endif /* ENABLE_SPEECH_SUPPORT */ { trackScreenCursor(1); } } break; case BRL_CMD_CSRSIZE: toggleFeatureSetting(&prefs.screenCursorStyle, command); break; case BRL_CMD_CSRVIS: toggleFeatureSetting(&prefs.showScreenCursor, command); break; case BRL_CMD_CSRHIDE: toggleModeSetting(&ses->hideScreenCursor, command); break; case BRL_CMD_CSRBLINK: toggleFeatureSetting(&prefs.blinkingScreenCursor, command); break; case BRL_CMD_ATTRVIS: toggleFeatureSetting(&prefs.showAttributes, command); break; case BRL_CMD_ATTRBLINK: toggleFeatureSetting(&prefs.blinkingAttributes, command); break; case BRL_CMD_CAPBLINK: toggleFeatureSetting(&prefs.blinkingCapitals, command); break; case BRL_CMD_AUTOREPEAT: toggleFeatureSetting(&prefs.autorepeat, command); break; case BRL_CMD_BRLKBD: toggleFeatureSetting(&prefs.brailleKeyboardEnabled, command); break; case BRL_CMD_BRLUCDOTS: toggleFeatureSetting(&prefs.brailleInputMode, command); break; case BRL_CMD_TOUCH_NAV: toggleFeatureSetting(&prefs.touchNavigation, command); break; case BRL_CMD_TUNES: toggleFeatureSetting(&prefs.alertTunes, command); /* toggle sound on/off */ break; case BRL_CMD_AUTOSPEAK: toggleFeatureSetting(&prefs.autospeak, command); break; case BRL_CMD_ASPK_SEL_LINE: toggleFeatureSetting(&prefs.autospeakSelectedLine, command); break; case BRL_CMD_ASPK_SEL_CHAR: toggleFeatureSetting(&prefs.autospeakSelectedCharacter, command); break; case BRL_CMD_ASPK_INS_CHARS: toggleFeatureSetting(&prefs.autospeakInsertedCharacters, command); break; case BRL_CMD_ASPK_DEL_CHARS: toggleFeatureSetting(&prefs.autospeakDeletedCharacters, command); break; case BRL_CMD_ASPK_REP_CHARS: toggleFeatureSetting(&prefs.autospeakReplacedCharacters, command); break; case BRL_CMD_ASPK_CMP_WORDS: toggleFeatureSetting(&prefs.autospeakCompletedWords, command); break; case BRL_CMD_SHOW_CURR_LOCN: toggleFeatureSetting(&prefs.showSpeechCursor, command); break; case BRL_CMD_INFO: if ((prefs.statusPosition == spNone) || haveStatusCells()) { toggleModeSetting(&infoMode, command); } else { ToggleResult result = toggleModeSetting(&textMaximized, command); if (result > TOGGLE_SAME) reconfigureBrailleWindow(); } break; case BRL_CMD_DISPMD: toggleModeSetting(&ses->displayMode, command); break; case BRL_CMD_FREEZE: { unsigned char setting; if (isMainScreen()) { setting = 0; } else if (isSpecialScreen(SCR_FROZEN)) { setting = 1; } else { alert(ALERT_COMMAND_REJECTED); break; } switch (toggleSetting(&setting, command, ALERT_SCREEN_UNFROZEN, ALERT_SCREEN_FROZEN)) { case TOGGLE_OFF: deactivateSpecialScreen(SCR_FROZEN); break; case TOGGLE_ON: if (!activateSpecialScreen(SCR_FROZEN)) alert(ALERT_COMMAND_REJECTED); break; default: break; } break; } default: return 0; } return 1; }