static void renderStatusField_stateLetter (unsigned char *cells) { *cells = convertCharacterToDots(textTable, ses->displayMode ? WC_C('a'): isSpecialScreen(SCR_HELP) ? WC_C('h'): isSpecialScreen(SCR_MENU) ? WC_C('m'): isSpecialScreen(SCR_FROZEN) ? WC_C('f'): ses->trackScreenCursor ? WC_C('t'): WC_C(' ')); }
static void renderStatusField_generic (unsigned char *cells) { cells[GSC_FIRST] = GSC_MARKER; cells[gscBrailleWindowColumn] = SCR_COLUMN_NUMBER(ses->winx); cells[gscBrailleWindowRow] = SCR_ROW_NUMBER(ses->winy); cells[gscScreenCursorColumn] = SCR_COLUMN_NUMBER(scr.posx); cells[gscScreenCursorRow] = SCR_ROW_NUMBER(scr.posy); cells[gscScreenNumber] = scr.number; cells[gscFrozenScreen] = isSpecialScreen(SCR_FROZEN); cells[gscDisplayMode] = ses->displayMode; cells[gscTextStyle] = prefs.textStyle; cells[gscSlidingBrailleWindow] = prefs.slidingBrailleWindow; cells[gscSkipIdenticalLines] = prefs.skipIdenticalLines; cells[gscSkipBlankBrailleWindows] = prefs.skipBlankBrailleWindows; cells[gscShowScreenCursor] = prefs.showScreenCursor; cells[gscHideScreenCursor] = ses->hideScreenCursor; cells[gscTrackScreenCursor] = ses->trackScreenCursor; cells[gscScreenCursorStyle] = prefs.screenCursorStyle; cells[gscBlinkingScreenCursor] = prefs.blinkingScreenCursor; cells[gscShowAttributes] = prefs.showAttributes; cells[gscBlinkingAttributes] = prefs.blinkingAttributes; cells[gscBlinkingCapitals] = prefs.blinkingCapitals; cells[gscAlertTunes] = prefs.alertTunes; cells[gscAutorepeat] = prefs.autorepeatEnabled; cells[gscAutospeak] = prefs.autospeak; cells[gscBrailleInputMode] = prefs.brailleInputMode; }
static void renderStatusField_stateDots (unsigned char *cells) { *cells = (isSpecialScreen(SCR_FROZEN) ? BRL_DOT_1: 0) | (prefs.showScreenCursor ? BRL_DOT_4: 0) | (ses->displayMode ? BRL_DOT_2: 0) | (prefs.screenCursorStyle ? BRL_DOT_5: 0) | (prefs.alertTunes ? BRL_DOT_3: 0) | (prefs.blinkingScreenCursor ? BRL_DOT_6: 0) | (ses->trackScreenCursor ? BRL_DOT_7: 0) | (prefs.slidingBrailleWindow ? BRL_DOT_8: 0); }
static int handlePreferencesCommands (int command, void *data) { switch (command & BRL_MSK_CMD) { { static const char modeString_preferences[] = "prf"; static Preferences savedPreferences; case BRL_CMD_PREFMENU: { int ok = 0; if (isSpecialScreen(SCR_MENU)) { if (prefs.saveOnExit) { if (savePreferences()) { alert(ALERT_COMMAND_DONE); } } deactivateSpecialScreen(SCR_MENU); ok = 1; } else if (activateSpecialScreen(SCR_MENU)) { updateSessionAttributes(); savedPreferences = prefs; ok = 1; } if (ok) { infoMode = 0; } else { alert(ALERT_COMMAND_REJECTED); } break; } case BRL_CMD_PREFSAVE: if (isSpecialScreen(SCR_MENU)) { if (savePreferences()) alert(ALERT_COMMAND_DONE); deactivateSpecialScreen(SCR_MENU); } else if (savePreferences()) { alert(ALERT_COMMAND_DONE); } else { alert(ALERT_COMMAND_REJECTED); } break; case BRL_CMD_PREFLOAD: if (isSpecialScreen(SCR_MENU)) { setPreferences(&savedPreferences); message(modeString_preferences, gettext("changes discarded"), 0); } else if (loadPreferences()) { alert(ALERT_COMMAND_DONE); } else { alert(ALERT_COMMAND_REJECTED); } break; } default: { int arg = command & BRL_MSK_ARG; switch (command & BRL_MSK_BLK) { { MenuItem *item; case BRL_CMD_BLK(SET_TEXT_TABLE): item = getPreferencesMenuItem_textTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_ATTRIBUTES_TABLE): item = getPreferencesMenuItem_attributesTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_CONTRACTION_TABLE): item = getPreferencesMenuItem_contractionTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_KEYBOARD_TABLE): item = getPreferencesMenuItem_keyboardTable(); goto doSetMenuItem; case BRL_CMD_BLK(SET_LANGUAGE_PROFILE): item = getPreferencesMenuItem_languageProfile(); goto doSetMenuItem; doSetMenuItem: if (item) { unsigned int count = brl.textColumns; if (count <= arg) count = arg + 1; changeMenuItem(item); if (changeMenuSettingScaled(getMenuItemMenu(item), arg, count)) { break; } } alert(ALERT_COMMAND_REJECTED); break; } default: return 0; } break; } } return 1; }
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; }