home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / lisp / vt-control.el < prev    next >
Lisp/Scheme  |  1996-09-28  |  3KB  |  107 lines

  1. ;;; vt-control.el --- Common VTxxx control functions
  2.  
  3. ;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
  4.  
  5. ;; Author: Rob Riepel <riepel@networking.stanford.edu>
  6. ;; Maintainer: Rob Riepel <riepel@networking.stanford.edu>
  7. ;; Keywords: terminals
  8.  
  9. ;; This file is part of GNU Emacs.
  10.  
  11. ;; GNU Emacs is free software; you can redistribute it and/or modify
  12. ;; it under the terms of the GNU General Public License as published by
  13. ;; the Free Software Foundation; either version 2, or (at your option)
  14. ;; any later version.
  15.  
  16. ;; GNU Emacs is distributed in the hope that it will be useful,
  17. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. ;; GNU General Public License for more details.
  20.  
  21. ;; You should have received a copy of the GNU General Public License
  22. ;; along with GNU Emacs; see the file COPYING.  If not, write to
  23. ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  24.  
  25. ;;; Commentary:
  26.  
  27. ;;  The functions contained in this file send various VT control codes
  28. ;;  to the terminal where emacs is running.  The following functions are
  29. ;;  available.
  30.  
  31. ;;    Function           Action
  32.  
  33. ;;    vt-wide            set wide screen (132 characters)
  34. ;;    vt-narrow          set narrow screen (80 characters)
  35. ;;    vt-toggle-screen   toggle wide/narrow screen
  36. ;;    vt-keypad-on       set applications keypad on
  37. ;;    vt-keypad-off      set applications keypad off
  38. ;;    vt-numlock         toggle applications keypad on/off
  39.  
  40. ;;; Usage:
  41.  
  42. ;;  To use enable these functions, simply load this file.
  43.  
  44. ;;  Note: vt-control makes no effort to determine how the terminal is
  45. ;;        initially set.  It assumes the terminal starts with a width
  46. ;;        of 80 characters and the applications keypad enabled.  Nor
  47. ;;        does vt-control try to restore the terminal when emacs is
  48. ;;        killed or suspended.
  49.  
  50. ;;; Code:
  51.  
  52.  
  53. ;;;  Global variables
  54.  
  55. (defvar vt-applications-keypad-p t
  56.   "If non-nil, keypad is in applications mode.")
  57.  
  58. (defvar vt-wide-p nil
  59.   "If non-nil, the screen is 132 characters wide.")
  60.  
  61.  
  62. ;;;  Screen width functions.
  63.  
  64. (defun vt-wide nil
  65.   "Set the screen 132 characters wide."
  66.   (interactive)
  67.   (send-string-to-terminal "\e[?3h")
  68.   (set-screen-width 132)
  69.   (setq vt-wide-p t))
  70.  
  71. (defun vt-narrow nil
  72.   "Set the screen 80 characters wide."
  73.   (interactive)
  74.   (send-string-to-terminal "\e[?3l")
  75.   (set-screen-width 80)
  76.   (setq vt-wide-p nil))
  77.  
  78. (defun vt-toggle-screen nil
  79.   "Toggle between 80 and 132 character screen width."
  80.   (interactive)
  81.   (if vt-wide-p (vt-narrow) (vt-wide)))
  82.  
  83.  
  84. ;;;  Applications keypad functions.
  85.  
  86. (defun vt-keypad-on (&optional tell)
  87.   "Turn on the VT applications keypad."
  88.   (interactive)
  89.   (send-string-to-terminal "\e[\e=")
  90.   (setq vt-applications-keypad-p t)
  91.   (if (or tell (interactive-p)) (message "Applications keypad enabled.")))
  92.  
  93. (defun vt-keypad-off (&optional tell)
  94.   "Turn off the VT applications keypad."
  95.   (interactive "p")
  96.   (send-string-to-terminal "\e[\e>")
  97.   (setq vt-applications-keypad-p nil)
  98.   (if (or tell (interactive-p)) (message "Applications keypad disabled.")))
  99.  
  100. (defun vt-numlock nil
  101.   "Toggle VT application keypad on and off."
  102.   (interactive)
  103.   (if vt-applications-keypad-p (vt-keypad-off (interactive-p))
  104.     (vt-keypad-on (interactive-p))))
  105.  
  106. ;;; vt-control.el ends here
  107.