📄 menu.c
字号:
}/* ARGSUSED */static void do_tekshow (gw, closure, data) Widget gw; caddr_t closure, data;{ handle_tekshow (gw, True);}/* ARGSUSED */static void do_tekonoff (gw, closure, data) Widget gw; caddr_t closure, data;{ handle_tekshow (gw, False);}/* ARGSUSED */static void do_altscreen (gw, closure, data) Widget gw; caddr_t closure, data;{ /* do nothing for now; eventually, will want to flip screen */}static void do_softreset (gw, closure, data) Widget gw; caddr_t closure, data;{ VTReset (FALSE);}static void do_hardreset (gw, closure, data) Widget gw; caddr_t closure, data;{ VTReset (TRUE);}static void do_clearsavedlines (gw, closure, data) Widget gw; caddr_t closure, data;{ register TScreen *screen = &term->screen; screen->savedlines = 0; ScrollBarDrawThumb(screen->scrollWidget); VTReset (TRUE); }static void do_tekmode (gw, closure, data) Widget gw; caddr_t closure, data;{ register TScreen *screen = &term->screen; switch_modes (screen->TekEmu); /* switch to tek mode */}/* ARGSUSED */static void do_vthide (gw, closure, data) Widget gw; caddr_t closure, data;{ hide_vt_window();}/* * vtfont menu */static void do_vtfont (gw, closure, data) Widget gw; caddr_t closure, data;{ char *entryname = (char *) closure; int i; for (i = 0; i < NMENUFONTS; i++) { if (strcmp (entryname, fontMenuEntries[i].name) == 0) { SetVTFont (i, True, NULL, NULL); return; } } Bell();}/* * tek menu */static void do_tektextlarge (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSetFontSize (tekMenu_tektextlarge);}static void do_tektext2 (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSetFontSize (tekMenu_tektext2);}static void do_tektext3 (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSetFontSize (tekMenu_tektext3);}static void do_tektextsmall (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSetFontSize (tekMenu_tektextsmall);}static void do_tekpage (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSimulatePageButton (False);}static void do_tekreset (gw, closure, data) Widget gw; caddr_t closure, data;{ TekSimulatePageButton (True);}static void do_tekcopy (gw, closure, data) Widget gw; caddr_t closure, data;{ TekCopy ();}static void handle_vtshow (gw, allowswitch) Widget gw; Bool allowswitch;{ register TScreen *screen = &term->screen; if (!screen->Vshow) { /* not showing, turn on */ set_vt_visibility (TRUE); } else if (screen->Tshow || allowswitch) { /* is showing, turn off */ set_vt_visibility (FALSE); if (!screen->TekEmu && TekRefresh) dorefresh (); end_vt_mode (); } else Bell();}static void do_vtshow (gw, closure, data) Widget gw; caddr_t closure, data;{ handle_vtshow (gw, True);}static void do_vtonoff (gw, closure, data) Widget gw; caddr_t closure, data;{ handle_vtshow (gw, False);}static void do_vtmode (gw, closure, data) Widget gw; caddr_t closure, data;{ register TScreen *screen = &term->screen; switch_modes (screen->TekEmu); /* switch to vt, or from */}/* ARGSUSED */static void do_tekhide (gw, closure, data) Widget gw; caddr_t closure, data;{ hide_tek_window();}/* * public handler routines */static void handle_toggle (proc, var, params, nparams, w, closure, data) void (*proc)(); int var; String *params; Cardinal nparams; Widget w; caddr_t closure, data;{ int dir = -2; switch (nparams) { case 0: dir = -1; break; case 1: if (XmuCompareISOLatin1 (params[0], "on") == 0) dir = 1; else if (XmuCompareISOLatin1 (params[0], "off") == 0) dir = 0; else if (XmuCompareISOLatin1 (params[0], "toggle") == 0) dir = -1; break; } switch (dir) { case -2: Bell(); break; case -1: (*proc) (w, closure, data); break; case 0: if (var) (*proc) (w, closure, data); else Bell(); break; case 1: if (!var) (*proc) (w, closure, data); else Bell(); break; } return;}void HandleAllowSends(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_allowsends, (int) term->screen.allowSendEvents, params, *param_count, w, NULL, NULL);}void HandleSetVisualBell(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_visualbell, (int) term->screen.visualbell, params, *param_count, w, NULL, NULL);}#ifdef ALLOWLOGGINGvoid HandleLogging(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_logging, (int) term->screen.logging, params, *param_count, w, NULL, NULL);}#endif/* ARGSUSED */void HandleRedraw(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_redraw(w, NULL, NULL);}/* ARGSUSED */void HandleSendSignal(w, event, params, param_count) Widget w; XEvent *event; /* unused */ String *params; Cardinal *param_count;{ static struct sigtab { char *name; int sig; } signals[] = {#ifdef SIGTSTP { "suspend", SIGTSTP }, { "tstp", SIGTSTP },#endif#ifdef SIGCONT { "cont", SIGCONT },#endif { "int", SIGINT }, { "hup", SIGHUP }, { "quit", SIGQUIT }, { "alrm", SIGALRM }, { "alarm", SIGALRM }, { "term", SIGTERM }, { "kill", SIGKILL }, { NULL, 0 }, }; if (*param_count == 1) { struct sigtab *st; for (st = signals; st->name; st++) { if (XmuCompareISOLatin1 (st->name, params[0]) == 0) { handle_send_signal (w, st->sig); return; } } /* one could allow numeric values, but that would be a security hole */ } Bell();}/* ARGSUSED */void HandleQuit(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_quit(w, NULL, NULL);}void HandleScrollbar(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_scrollbar, (int) term->screen.scrollbar, params, *param_count, w, NULL, NULL);}void HandleJumpscroll(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_jumpscroll, (int) term->screen.jumpscroll, params, *param_count, w, NULL, NULL);}void HandleReverseVideo(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_reversevideo, (int) (term->flags & REVERSE_VIDEO), params, *param_count, w, NULL, NULL);}void HandleAutoWrap(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_autowrap, (int) (term->flags & WRAPAROUND), params, *param_count, w, NULL, NULL);}void HandleReverseWrap(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_reversewrap, (int) (term->flags & REVERSEWRAP), params, *param_count, w, NULL, NULL);}void HandleAutoLineFeed(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_autolinefeed, (int) (term->flags & LINEFEED), params, *param_count, w, NULL, NULL);}void HandleAppCursor(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_appcursor, (int) (term->keyboard.flags & CURSOR_APL), params, *param_count, w, NULL, NULL);}void HandleAppKeypad(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_appkeypad, (int) (term->keyboard.flags & KYPD_APL), params, *param_count, w, NULL, NULL);}void HandleScrollKey(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_scrollkey, (int) term->screen.scrollkey, params, *param_count, w, NULL, NULL);}void HandleScrollTtyOutput(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_scrollttyoutput, (int) term->screen.scrollttyoutput, params, *param_count, w, NULL, NULL);}void HandleAllow132(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_allow132, (int) term->screen.c132, params, *param_count, w, NULL, NULL);}void HandleCursesEmul(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_cursesemul, (int) term->screen.curses, params, *param_count, w, NULL, NULL);}void HandleMarginBell(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ handle_toggle (do_marginbell, (int) term->screen.marginbell, params, *param_count, w, NULL, NULL);}void HandleAltScreen(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ /* eventually want to see if sensitive or not */ handle_toggle (do_altscreen, (int) term->screen.alternate, params, *param_count, w, NULL, NULL);}/* ARGSUSED */void HandleSoftReset(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_softreset(w, NULL, NULL);}/* ARGSUSED */void HandleHardReset(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_hardreset(w, NULL, NULL);}/* ARGSUSED */void HandleClearSavedLines(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_clearsavedlines(w, NULL, NULL);}void HandleSetTerminalType(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ if (*param_count == 1) { switch (params[0][0]) { case 'v': case 'V': if (term->screen.TekEmu) do_vtmode (w, NULL, NULL); break; case 't': case 'T': if (!term->screen.TekEmu) do_tekmode (w, NULL, NULL); break; default: Bell(); } } else { Bell(); }}void HandleVisibility(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ if (*param_count == 2) { switch (params[0][0]) { case 'v': case 'V': handle_toggle (do_vtonoff, (int) term->screen.Vshow, params+1, (*param_count) - 1, w, NULL, NULL); break; case 't': case 'T': handle_toggle (do_tekonoff, (int) term->screen.Tshow, params+1, (*param_count) - 1, w, NULL, NULL); break; default: Bell(); } } else { Bell(); }}/* ARGSUSED */void HandleSetTekText(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ void (*proc)() = NULL; switch (*param_count) { case 0: proc = do_tektextlarge; break; case 1: switch (params[0][0]) { case 'l': case 'L': proc = do_tektextlarge; break; case '2': proc = do_tektext2; break; case '3': proc = do_tektext3; break; case 's': case 'S': proc = do_tektextsmall; break; } break; } if (proc) (*proc) (w, NULL, NULL); else Bell();}/* ARGSUSED */void HandleTekPage(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_tekpage(w, NULL, NULL);}/* ARGSUSED */void HandleTekReset(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_tekreset(w, NULL, NULL);}/* ARGSUSED */void HandleTekCopy(w, event, params, param_count) Widget w; XEvent *event; String *params; Cardinal *param_count;{ do_tekcopy(w, NULL, NULL);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -