Mercurial > hg > xemacs-beta
view lisp/term/pc-win.el @ 593:5fd7ba8b56e7
[xemacs-hg @ 2001-05-31 12:45:27 by ben]
xemacs-faq.texi: Major rewrite.
Update all MS Windows info to current.
Redo section 6.1 almost completely.
Incorporate sections 1 and 2 of Hrvoje's FAQ.
etags.el: Fix infloop when going up to the root.
s\cygwin32.h: Don't unilaterally include ntplay, but only when we're compiling
with native sound (look in configure now).
event-msw.c: Fix yet more problems with C-g handling.
Implement debug-mswindows-events.
event-stream.c, events.h, signal.c, sysdep.h:
Rearrange the signal-handling code to eliminate the former
spaghetti logic paths in it. Document clearly what
"low-level" and "high-level" timeouts are. Rename some
functions with unclear names (e.g. "...alarm...") to names
that reflect what they actually do (e.g. "...async_timeout...").
Fix numerous bugs discovered in the process.
console-x.h, event-Xt.c, event-msw.c, frame-x.c:
Hopefully make XEmacs properly maintain the "iconified"
state on frames at all times. This should fix the "can't
delete a frame with C-x 5 0 when there's another iconified
frame out there" bug.
Put a notice in of further changes that should probably
be made to clean up the frame-visibility support.
(especially directed at Jan Vroonhof)
lisp.h, miscplay.c:
Rename SBufbyte to CBufbyte to avoid a misleading name.
Eliminate UChar, which is not used anywhere and contributes
no semantic info. Add a comment about the documentation-only
properties of the char/unsigned char typedefs. Add
SChar_Binary as an explicitly `signed' version of Char_Binary
and put back the `signed' declarations in miscplay.c.
alloc.c:
Use char typedefs.
console-msw.c, device-msw.c, dialog-msw.c, editfns.c, fileio.c, glyphs-eimage.c, menubar-msw.c, ntplay.c, objects-msw.c, realpath.c, redisplay-msw.c, select-msw.c, syswindows.h, win32.c:
Eliminate numerous C++ errors.
frame-msw.c:
Eliminate numerous C++ errors and Mule-ize.
glyphs-msw.c:
Eliminate numerous C++ errors and use char typedefs.
configure.in:
Fix problems detecting both native and Linux sound on Cygwin
when compiled with --with-msw=no.
Rearrange file-coding handling a bit to avoid warning when
compiling with Mule.
configure.in, configure.usage, INSTALL:
Document XEMACS_CC and corresponding compiler option --xemacs-compiler.
Explain how to build xemacs using a C++ compiler.
author | ben |
---|---|
date | Thu, 31 May 2001 12:45:41 +0000 |
parents | 74fd4e045ea6 |
children | 697ef44129c6 |
line wrap: on
line source
;; pc-win.el -- setup support for `PC windows' (whatever that is). ;; Copyright (C) 1994 Free Software Foundation, Inc. ;; Author: Morten Welinder <terra@diku.dk> ;; Version: 1,00 ;; This file is part of GNU Emacs. ;; GNU Emacs 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. ;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;; --------------------------------------------------------------------------- (load "term/internal" nil t) ;; Color translation -- doesn't really need to be fast (defvar msdos-color-aliases '(("purple" . "magenta") ("firebrick" . "red") ; ? ("pink" . "lightred") ("royalblue" . "blue") ("cadetblue" . "blue") ("forestgreen" . "green") ("darkolivegreen" . "green") ("darkgoldenrod" . "brown") ("goldenrod" . "yellow") ("grey40" . "darkgray") ("rosybrown" . "brown") ("blue" . "lightblue") ;; from here: for Enriched Text ("darkslategray" . "darkgray") ("orange" . "brown") ("light blue" . "lightblue") ;; from here: for cpp-highlight ("light cyan" . "lightcyan") ("light yellow" . "yellow") ("light pink" . "lightred") ("pale green" . "lightgreen") ("beige" . "brown") ("medium purple" . "magenta") ("turquoise" . "lightgreen") ("violet" . "magenta")) "List of alternate names for colors.") (defun msdos-color-translate (name) (setq name (downcase name)) (let* ((len (length name)) (val (cdr (assoc name '(("black" . 0) ("blue" . 1) ("green" . 2) ("cyan" . 3) ("red" . 4) ("magenta" . 5) ("brown" . 6) ("lightgray" . 7) ("light gray" . 7) ("darkgray" . 8) ("dark gray" . 8) ("lightblue" . 9) ("lightgreen" . 10) ("lightcyan" . 11) ("lightred" . 12) ("lightmagenta" . 13) ("yellow" . 14) ("white" . 15))))) (try)) (or val (and (setq try (cdr (assoc name msdos-color-aliases))) (msdos-color-translate try)) (and (> len 5) (string= "light" (substring name 0 4)) (setq try (msdos-color-translate (substring name 5))) (logior try 8)) (and (> len 6) (string= "light " (substring name 0 5)) (setq try (msdos-color-translate (substring name 6))) (logior try 8)) (and (> len 4) (string= "dark" (substring name 0 3)) (msdos-color-translate (substring name 4))) (and (> len 5) (string= "dark " (substring name 0 4)) (msdos-color-translate (substring name 5)))))) ;; --------------------------------------------------------------------------- ;; We want to delay setting frame parameters until the faces are setup (defvar default-frame-alist nil) (defun msdos-face-setup () (modify-frame-parameters (selected-frame) default-frame-alist) (set-face-foreground 'bold "yellow") (set-face-foreground 'italic "red") (set-face-foreground 'bold-italic "lightred") (set-face-foreground 'underline "white") (set-face-background 'region "green") (make-face 'msdos-menu-active-face) (make-face 'msdos-menu-passive-face) (make-face 'msdos-menu-select-face) (set-face-foreground 'msdos-menu-active-face "white") (set-face-foreground 'msdos-menu-passive-face "lightgray") (set-face-background 'msdos-menu-active-face "blue") (set-face-background 'msdos-menu-passive-face "blue") (set-face-background 'msdos-menu-select-face "red")) ;; We have only one font, so... (add-hook 'before-init-hook 'msdos-face-setup) ;; --------------------------------------------------------------------------- ;; More or less useful imitations of certain X-functions. A lot of the ;; values returned are questionable, but usually only the form of the ;; returned value matters. Also, by the way, recall that `ignore' is ;; a useful function for returning 'nil regardless of argument. ;; From src/xfns.c (defun x-display-color-p (&optional display) 't) (fset 'focus-frame 'ignore) (fset 'unfocus-frame 'ignore) (defun x-list-fonts (pattern &optional face frame) (list "default")) (defun x-color-defined-p (color) (numberp (msdos-color-translate color))) (defun x-display-pixel-width (&optional frame) (* 8 (frame-width frame))) (defun x-display-pixel-height (&optional frame) (* 8 (frame-height frame))) (defun x-display-planes (&optional frame) 4) ; 3 for background, actually (defun x-display-color-cells (&optional frame) 16) ; ??? (defun x-server-max-request-size (&optional frame) 1000000) ; ??? (defun x-server-vendor (&optional frame) t "GNU") (defun x-server-version (&optional frame) '(1 0 0)) (defun x-display-screens (&optional frame) 1) (defun x-display-mm-height (&optional frame) 200) ; Guess the size of my (defun x-display-mm-width (&optional frame) 253) ; monitor, MW... (defun x-display-backing-store (&optional frame) 'not-useful) (defun x-display-visual-class (&optional frame) 'static-color) (fset 'x-display-save-under 'ignore) (fset 'x-get-resource 'ignore) ;; From lisp/term/x-win.el (setq x-display-name "pc") (setq split-window-keep-point t) ;; From lisp/select.el (defun x-get-selection (&rest rest) "") (fset 'x-set-selection 'ignore) ;; From lisp/faces.el: we only have one font, so always return ;; it, no matter which variety they've asked for. (defun x-frob-font-slant (font which) font) ;; From lisp/frame.el (fset 'set-default-font 'ignore) (fset 'set-mouse-color 'ignore) ; We cannot, I think. (fset 'set-cursor-color 'ignore) ; Hardware determined by char under. (fset 'set-border-color 'ignore) ; Not useful. (fset 'auto-raise-mode 'ignore) (fset 'auto-lower-mode 'ignore) (defun set-background-color (color-name) "Set the background color of the selected frame to COLOR. When called interactively, prompt for the name of the color to use." (interactive "sColor: ") (modify-frame-parameters (selected-frame) (list (cons 'background-color color-name)))) (defun set-foreground-color (color-name) "Set the foreground color of the selected frame to COLOR. When called interactively, prompt for the name of the color to use." (interactive "sColor: ") (modify-frame-parameters (selected-frame) (list (cons 'foreground-color color-name)))) ;; --------------------------------------------------------------------------- ;; Handle the X-like command line parameters "-fg" and "-bg" (defun msdos-handle-args (args) (let ((rest nil)) (while args (let ((this (car args))) (setq args (cdr args)) (cond ((or (string= this "-fg") (string= this "-foreground")) (if args (setq default-frame-alist (cons (cons 'foreground-color (car args)) default-frame-alist) args (cdr args)))) ((or (string= this "-bg") (string= this "-background")) (if args (setq default-frame-alist (cons (cons 'background-color (car args)) default-frame-alist) args (cdr args)))) (t (setq rest (cons this rest)))))) (nreverse rest))) (setq command-line-args (msdos-handle-args command-line-args)) ;; --------------------------------------------------------------------------- ;; XEmacs always has faces ;;(require 'faces) (if (msdos-mouse-p) (progn (require 'menu-bar) (menu-bar-mode t)))