Mercurial > hg > xemacs-beta
view lisp/term/vt100-led.el @ 4882:eab9498ecc0e
merge most of rest of redisplay-x.c and redisplay-gtk.c into redisplay-xlike-inc.c
-------------------- ChangeLog entries follow: --------------------
src/ChangeLog addition:
2010-01-18 Ben Wing <ben@xemacs.org>
* redisplay-gtk.c:
* redisplay-gtk.c (gtk_bevel_area):
* redisplay-x.c:
* redisplay-x.c (THIS_IS_X):
* redisplay-xlike-inc.c:
* redisplay-xlike-inc.c (XLIKE_text_width_single_run):
* redisplay-xlike-inc.c (XLIKE_text_width):
* redisplay-xlike-inc.c (XLIKE_output_display_block):
* redisplay-xlike-inc.c (XLIKE_get_gc):
* redisplay-xlike-inc.c (XLIKE_output_string):
* redisplay-xlike-inc.c (XLIKE_OUTPUT_XLIKE_PIXMAP):
* redisplay-xlike-inc.c (XLIKE_output_pixmap):
* redisplay-xlike-inc.c (XLIKE_output_vertical_divider):
* redisplay-xlike-inc.c (XLIKE_output_blank):
* redisplay-xlike-inc.c (XLIKE_output_horizontal_line):
* redisplay-xlike-inc.c (XLIKE_clear_region):
* redisplay-xlike-inc.c (XLIKE_output_eol_cursor):
* redisplay-xlike-inc.c (XLIKE_clear_frame_window):
* redisplay-xlike-inc.c (XLIKE_clear_frame):
* redisplay-xlike-inc.c (XLIKE_flash):
* redisplay-xlike-inc.c (console_type_create_redisplay_XLIKE):
Move lots more code into redisplay-xlike-inc.c. Use macros to
isolate the code that differs among X vs. GTK, to reduce the need
for ifdefs in the middle of the code. Now, redisplay-x.c and
redisplay-gtk.c only contain a few functions whose implementation
is completely different from one to the other, or which are not
present at all in one of them.
GTK code not currently tested, but it has bitrotted somewhat
any. Doing this will help keep it less bitrotty.
* depend: Regenerate.
author | Ben Wing <ben@xemacs.org> |
---|---|
date | Mon, 18 Jan 2010 08:44:49 -0600 |
parents | 376386a54a3c |
children | 0293115a14e9 308d34e9f07d |
line wrap: on
line source
;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones. ;; Copyright (C) 1988 Free Software Foundation, Inc. ;; Author: Howard Gayle ;; Maintainer: FSF ;; Keywords: hardware ;; This file is part of XEmacs. ;; XEmacs is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; XEmacs is distributed in the hope that it will be useful, but ;; WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with XEmacs; see the file COPYING. If not, write to the Free ;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;;; Code: (defvar led-state (make-vector 5 nil) "The internal state of the LEDs. Choices are nil, t, `flash. Element 0 is not used.") (defun led-flash (l) "Flash LED l." (aset led-state l 'flash) (led-update)) (defun led-off (&optional l) "Turn off vt100 led number L. With no argument, turn them all off." (interactive "P") (if l (aset led-state (prefix-numeric-value l) nil) (fillarray led-state nil)) (led-update)) (defun led-on (l) "Turn on LED l." (aset led-state l t) (led-update)) (defun led-update () "Update the terminal's LEDs to reflect the internal state." (let ((f "\e[?0") ; String to flash. (o "\e[0") ; String for steady on. (l 1)) ; Current LED number. (while (/= l 5) (let ((s (aref led-state l))) (cond ((eq s 'flash) (setq f (concat f ";" (int-to-string l)))) (s (setq o (concat o ";" (int-to-string l)))))) (setq l (1+ l))) (setq o (concat o "q" f "t")) (send-string-to-terminal o))) (provide 'vt100-led) ;;; vt100-led.el ends here