2002-08-03 Andrew Choi <akochoi@shaw.ca>
* macterm.c (USE_CARBON_EVENTS): New macro.
(macCtrlKey, macShiftKey, macMetaKey, macAltKey): New macros.
(x_iconify_frame): Call CollapseWindow.
(Vmac_reverse_ctrl_meta): New variable.
(Vmac_wheel_button_is_mouse_2): New variable.
(init_mac_drag_n_drop): New function.
(mac_do_receive_drag): New function.
(mac_handle_service_event): New function.
(init_service_handler): New function.
(mac_to_emacs_modifiers): New function.
(mac_event_to_emacs_modifiers): New function.
(mac_get_mouse_btn): New function.
(mac_convert_event_ref): New function.
(XTread_socket) [USE_CARBON_EVENTS]: Call ReceiveNextEvent,
SendEventToEventTarget, mac_event_to_emacs_modifiers, and
mac_get_mouse_btn.
(mac_initialize): Call init_mac_drag_n_drop and
init_service_handler.
* keyboard.c: Define Qmouse_wheel, mouse_wheel_syms, and
lispy_mouse_wheel_names for MAC_OSX as well as for WINDOWS_NT.
(kbd_buffer_get_event): Set used_mouse_menu for MENU_BAR_EVENT and
TOOL_BAR_EVENT for MAC_OS as well.
(make_lispy_event): Handle MOUSE_WHEEL_EVENT for MAC_OSX as well
as for WINDOWS_NT.
(syms_of_keyboard): Initialize Qmouse_wheel for MAC_OSX.
* termhooks.h (event_kind): Define MOUSE_WHEEL_EVENT also for
MAC_OSX.
In lisp:
2002-08-03 Andrew Choi <akochoi@shaw.ca>
* term/mac-win.el: Set keys to enable mouse wheel support.
obsolete variable dired-free-space-program. On Darwin, don't set
directory-free-space-program, shell-file-name and
process-connection-type; set directory-free-space-args to not
include `-P' and use utf-8 for file name coding system.
2002-06-16 Andrew Choi <akochoi@shaw.ca>
* fontset.c (syms_of_fontset) [MAC_OS]: Set ASCII font of
Vdefault_fontset to Monaco with mac-roman coding.
* mac.c, macfns.c, macmenu.c, macterm.c: Undefine and redefine
init_process before and after inclusion of Carbon/Carbon.h, resp.
* macterm.c (x_new_font): Set font for normal_gc, reverse_gc, and
cursor_gc.
(add_font_name_table_entry): New function.
(init_font_name_table): Use add_font_name_table_entry; add italic,
bold, and bold-italic entries for truetype fonts.
* xfaces.c (init_frame_faces) [MAC_OS]: Call realize_basic_faces
for Mac too.
(try_font_list) [MAC_OS]: If no font matches given registry, try
fonts with any registry matching face_family.
(realize_x_face) [MAC_OS]: Remove old ad-hoc fix to load font
here.
* s/darwin.h: If autoconf detects the Ncurses library, define
LIBS_TERMCAP to -lncurses to use it.
In lisp/:
2002-06-16 Andrew Choi <akochoi@shaw.ca>
* term/mac-win.el (scalable-fonts-allowed): Set to t.
consistency with the rest of emacs.
(tty-color-canonicalize): Only copy COLOR if we need to change it.
(tty-color-approximate): Scale values from `color-name-rgb-alist'
appropriately. Return the whole color description, rather than just the
RGB values.
(tty-color-standard-values): New function. Code mostly taken from
`tty-color-translate'.
(tty-color-translate, tty-color-values): Use `tty-color-desc' to do all
the work.
(tty-color-desc): Do color lookup here instead of calling
`tty-color-translate' and `tty-color-by-index'; this is now the main
place to do it.
(emacs-session-filename): New function.
(emacs-session-save): New function.
(emacs-save-session-functions): New variable.
(emacs-session-restore): New function.
(xterm-rgb-convert-to-16bit, xterm-register-default-colors)
(xterm-rxvt-set-background-mode): New functions.
(toplevel): Call xterm-register-default-colors,
xterm-rxvt-set-background-mode, and tty-set-up-initial-frame-faces.
Add support for more keys from xterm's terminfo entry.
Call IT-setup-unicode-display here instead of adding it to
dos-codepage-setup-hook, so that Unicode display tables are set
before dos-codepage-setup-hook runs.
Replace some of the undefined characters with emulations of bidi
formatting characters and Niqud as per SI 1311-1.
(IT-unicode-translations): Ditto.
(IT-display-table-setup, IT-setup-unicode-display): Fill
characters without translations with dos-unsupported-char-glyph.
(sun-raw-prefix): Replace t3, t4, t6, and t7 with f3, f4, f6 and f7.
Complete bindings for F<1..12> keys.
(global-map): Remove `undo' binding (already in the default).
Replace `t<n>' bindings with `f<n>' bindings.
(ccl-encode-mac-roman-font, fontset-mac): Modified for
mule-unicode-2500-33ff and mule-unicode-e000-ffff.
(mac-roman-kbd-insert, mac-roman-kbd-mode): These functions deleted.
(mac-roman-kbd-mode, mac-roman-kbd-mode-map): These variables deleted.
* international/mule-conf.el (mac-roman-lower, mac-roman-upper):
New charsets.
* term/mac-win.el: Remove definitions of mac-roman-lower and
mac-roman-upper, require dired, and define instead of set
mac-ready-for-drag-n-drop to avoid compilation error.
* src/macterm.c (XTread_socket): check whether Lisp variable
mac-ready-for-drag-n-drop is bound rather than non-nil value.
2000-10-23 Andrew Choi <akochoi@i-cable.com>
* dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
* dispnew.c [macintosh]: Include macterm.h.
(init_display) [macintosh]: initialization for window system.
* emacs.c (main) [macintosh]: Call syms_of_textprop,
syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
syms_of_search, x_term_init, and init_keyboard before calling
init_window_once. Also, call syms_of_xmenu.
* fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
default fontset to Monaco.
* frame.c [macintosh]: Include macterm.h. Remove declarations of
NewMacWindow and DisposeMacWindow.
(make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
instead of calling NewMacWindow and setting fields of
f->output_data.mac directly. Call init_frame_faces.
(Fdelete_frame) [macintosh]: Remove unused code.
(Fmodify_frame_parameters) [macintosh]: Call
x_set_frame_parameters instead of mac_set_frame_parameters.
* frame.h [macintosh]: Define menu_bar_lines field in struct
frame. Define FRAME_EXTERNAL_MENU_BAR macro.
* keyboard.c [macintosh]: Include macterm.h.
(kbd_buffer_get_event) [macintosh]: Generate delete_window_event
and menu_bar_activate_event type events as for X and NT.
(make_lispy_event) [macintosh]: Construct lisp events of type
MENU_BAR_EVENT as for X and NT.
* sysdep.c [macintosh]: Remove declaration for sys_signal.
Include stdlib.h. Remove definition of Vx_bitmap_file_path.
(sys_subshell) [macintosh]: Remove definition entirely.
(init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
Vwindow_system_version here. Remove initialization of
Vx_bitmap_file_path.
(read_input_waiting): Correct the number of parameters passed to
read_socket_hook.
Move all Macintosh functions to mac/mac.c.
* term.c [macintosh]: Include macterm.h.
* window.c [macintosh]: Include macterm.h.
* xdisp.c [macintosh]: Include macterm.h. Declare
set_frame_menubar and pending_menu_activation.
(echo_area_display) [macintosh]: Do not return if terminal frame
is the selected frame.
(update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
Allow only the selected frame to set menu bar.
(redisplay_window) [macintosh]: Obtain menu bar to redisplay by
calling FRAME_EXTERNAL_MENU_BAR (f).
(display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
* xfaces.c [macintosh]: Include macterm.h. Define x_display_info
and check_x. Declare XCreateGC. Define x_create_gc and
x_free_gc. Initialize font_sort_order.
(x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
but call x_list_fonts instead of w32_list_fonts.
(Finternal_face_x_get_resource) [macintosh]: Do not call
display_x_get_resource.
(prepare_face_for_display) [macintosh]: Set xgcv.font.
(realize_x_face) [macintosh]: Load the font if it is specified in
ATTRS.
(syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
to Qt.
* cus-edit.el (custom-button-face): Use 3D look for mac.
(custom-button-pressed-face): Likewise.
* faces.el (set-face-attributes-from-resources): Handle mac frames
in the same way as x and w32 frames.
(face-valid-attribute-values): Likewise.
(read-face-attribute): Likewise.
(defined-colors): Likewise.
(color-defined-p): Likewise.
(color-values): Likewise.
(display-grayscale-p): Likewise.
(face-set-after-frame-default): Likewise.
(mode-line): Same default face as for x and w32.
(tool-bar): Likewise.
* frame.el: Remove call to frame-notice-user-settings at end of
the file.
* info.el (Info-fontify-node): make underlines invisible for mac
as for x, pc, and w32 frame types.
* term/mac-win.el: New file.
* term/pc-win.el (msdos-setup-initial-frame): New function, run by
term-setup-hook. Call msdos-remember-default-colors and
msdos-handle-reverse-video.
(msdos-face-setup): Parts of code moved to
msdos-setup-initial-frame.
(msdos-handle-reverse-video): New function, modeled after
x-handle-reverse-video.
(make-msdos-frame): Don't use initial-frame-alist and
default-frame-alist. Call msdos-handle-reverse-video.
(msdos-color-aliases): Remove.
(msdos-color-translate, msdos-approximate-color): Remove.
(msdos-color-values): Use 16-bit RGB values. RGB values updated
for better approximation of X colors.
(msdos-face-setup): Call tty-color-clear. Remove code that sets
up tty-color-alist (it is now on startup.el).
(x-display-color-p, x-color-defined-p, x-color-values,
x-defined-colors, face-color-supported-p, face-color-gray-p):
Remove.
* facemenu.el (facemenu-read-color, list-colors-display): Use
defined-colors for all frame types.
(facemenu-color-equal): Use color-values for all frame types.
* faces.el (read-face-attribute): For :foreground and :background
attributes and frames on character terminals, translate the color
to the closest supported one before looking it up in the list of
valid values.
(face-valid-attribute-values): Call defined-colors for all types
of frames.
(defined-colors, color-defined-p, color-values, display-color-p):
New finctions.
(x-defined-colors, x-color-defined-p, x-color-values,
x-display-color-p): Aliases for the above.
* startup.el (command-line): Register terminal colors for frame
types other than x and w32, but only if the terminal supports
colors. Call tty-color-define instead of face-register-tty-color.
* term/x-win.el (xw-defined-colors): Renamed from
x-defined-colors.
* term/w32-win.el (xw-defined-colors): Likewise.
* term/tty-colors.el: New file.
* loadup.el: Load term/tty-colors.
Do that if width is nil as well.
(x-display-mm-height, x-display-mm-width): Update values.
(x-colors): Compute the list from msdos-color-values.
(x-select-enable-clipboard): Doc fix.
(x-frob-font-weight, x-font-family-list): New functions.
frame-set-background-mode instead. All callers changed.
(msdos-face-setup): Don't force color display parameter, it is set
by frame-set-background-mode.
(make-msdos-frame): Call x-handle-reverse-video and
face-set-after-frame-default. Delete frame if creation failed.
of dos-codepage-setup.
(cjk-codepages-alist): New variable, an alist of Far-Eastern
codepages for which there's no need to set up cpNNN coding
systems.
(dos-codepage-setup): Support Far-Eastern DOS terminals.
syntax table and bind unibyte-display-via-language-environment
here, rather than at top level, so that resetting to unibyte in
.emacs works as expected.
alist used to display characters for which there's no glyphs in
the current codepage.
(IT-display-table-setup): New function, sets up the DOS terminal
for a given codepage.
(dos-codepage-setup): New function, sets up the MULE environment
for the current value of dos-codepage.
(top-level if): In the multibyte mode, turn on
unibyte-display-via-language-environment. In the unibyte mode,
set up the special syntax tables to map lower- to upper case and
back.
x-cut-buffer-or-selection-value.
(w32-standard-fontset-spec): New variable.
(w32-create-initial-fontsets, mouse-set-font): Check whether
new-fontset is available.
(w32-use-w32-font-dialog): Enable use of set-variable.
down events, place point at window start position.
Bind f10 to menubar.
Move keypad key definitions to w32-fns.el.
(mouse-wheel-scroll-amount): New variable.
(mouse-wheel-scroll-line, mouse-wheel-scroll-screen): New functions.
Bind mouse-wheel events to mouse-wheel functions.