annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1 ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 ;; Copyright (C) 1988 Free Software Foundation, Inc.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 ;; Author: Howard Gayle
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6 ;; Maintainer: FSF
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 ;; Keywords: hardware
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 ;; This file is part of XEmacs.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11 ;; XEmacs is free software; you can redistribute it and/or modify it
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 ;; under the terms of the GNU General Public License as published by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 ;; the Free Software Foundation; either version 2, or (at your option)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 ;; any later version.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 ;; XEmacs is distributed in the hope that it will be useful, but
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 ;; General Public License for more details.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22 ;; along with XEmacs; see the file COPYING. If not, write to the Free
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 ;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 ;;; Code:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 (defvar led-state (make-vector 5 nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28 "The internal state of the LEDs. Choices are nil, t, `flash.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 Element 0 is not used.")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 (defun led-flash (l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 "Flash LED l."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 (aset led-state l 'flash)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 (defun led-off (&optional l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37 "Turn off vt100 led number L. With no argument, turn them all off."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 (interactive "P")
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 (if l
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 (aset led-state (prefix-numeric-value l) nil)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 (fillarray led-state nil))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 (defun led-on (l)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 "Turn on LED l."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 (aset led-state l t)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 (led-update))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 (defun led-update ()
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 "Update the terminal's LEDs to reflect the internal state."
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51 (let ((f "\e[?0") ; String to flash.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 (o "\e[0") ; String for steady on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 (l 1)) ; Current LED number.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 (while (/= l 5)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 (let ((s (aref led-state l)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 (cond
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57 ((eq s 'flash)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 (setq f (concat f ";" (int-to-string l))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 (s
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 (setq o (concat o ";" (int-to-string l))))))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61 (setq l (1+ l)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 (setq o (concat o "q" f "t"))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 (send-string-to-terminal o)))
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (provide 'vt100-led)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 ;;; vt100-led.el ends here