Mercurial > emacs
view leim/quail/viqr.el @ 40137:5f0d7d58283b
(remember_mouse_glyph): New function.
(w32_mouse_position): Use it.
(note_mouse_movement): If the mouse moved off the glyph, remember its
new position.
Sync with xterm.c:
(notice_overwritten_cursor): Renamed from note_overwritten_text_cursor.
Rewritten to take glyph widths into account.
(x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
(fast_find_string_pos): New function.
(fast_find_position): Return the correct vpos. Add parameter STOP.
In the final row, stop before glyphs having STOP as object.
Don't consider glyphs that are not from a buffer.
(fast_find_position) [0]: Add a presumably more correct version for after 21.1.
(expose_window_tree, expose_frame): Don't compute intersections here.
(expose_window): Do it here instead.
(expose_window_tree, expose_window, expose_line): Return 1 when
overwriting mouse-face.
(expose_window): If W is the window currently being updated, mark
the frame garbaged.
(expose_frame): If mouse-face was overwritten, redo it.
(x_use_underline_position_properties): New variable.
(syms_of_xterm): DEFVAR_BOOL it.
(x_draw_glyph_string): Add comment to use it in future.
(x_draw_glyph_string): Restore clipping after drawing box.
Fix a computation of the underline position.
(w32_get_glyph_string_clip_rect): Minor cleanup.
(x_fill_stretch_glyph_string): Remove an assertion.
(x_produce_glyphs): Don't convert multibyte characters
to unibyte characters in unibyte buffers.
(cursor_in_mouse_face_p): New function.
(x_draw_stretch_glyph_string): Use it to choose a different GC
when drawing a cursor within highlighted text. Don't draw
background again if it has already been drawn.
(x_draw_glyph_string_box): Don't draw a full-width
box just because the glyph row's full_width_p flag is set.
(x_draw_glyphs): Fix computation of rightmost x for full-width rows.
(x_dump_glyph_string): Put in #if GLYPH_DEBUG.
(w32_draw_relief_rect): Extend left shadow to the bottom and left;
change bottom shadow accordingly. Some cleanup.
(x_update_window_end): Handle overwritten mouse face
also for tool bar windows.
(show_mouse_face): Set the glyph row's mouse_face_p flag also when
DRAW is DRAW_IMAGE_RAISED.
(clear_mouse_face): Return 1 if text with mouse face was
actually redrawn. Make the function static. Reset
dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
optimize away highlighting if we pass over that same overlay again.
(note_mouse_highlight): Call mouse_face_overlay_overlaps
to detect a case where we have to highlight a different region
despite not having left the currently highlighted region.
Set mouse_face_overlay in the x_display_info. Avoid changing the
mouse pointer shape when show_mouse_face has already done it, or
there is no need. Handle mouse-face and help-echo in strings.
(glyph_rect): New function.
(w32_mouse_position): Use it to raise the threshold for mouse
movement event generation.
(w32_initialize_display_info): Initialize the x_display_info's
mouse_face_overlay.
(w32_set_vertical_scroll_bar): Don't clear a zero height or width area.
(w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
a widget to zero height.
author | Jason Rumney <jasonr@gnu.org> |
---|---|
date | Sun, 21 Oct 2001 15:20:03 +0000 |
parents | 519983161a46 |
children | 890f548046c1 |
line wrap: on
line source
;;; viqr.el --- Quail packages for inputting Vietnamese with VIQR system ;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN. ;; Licensed to the Free Software Foundation. ;; Keywords: multilingual, input method, latin ;; 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, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;;; Code: (require 'quail) (require 'viet-util) ;; `viet-viqr-alist' is an alist of Vietnamese characters vs ;; corresponding VIQR strings. We create Quail map which maps VIQR ;; strings to corresponding Vietnamese characters. (defmacro viet-quail-define-rules () (cons 'quail-define-rules (let ((l viet-viqr-alist) rules) (while l (setq rules (cons (list (cdr (car l)) (car (car l))) rules)) (setq l (cdr l))) rules))) (quail-define-package "vietnamese-viqr" "Vietnamese" "VQ" t "Vietnamese input method with VIQR mnemonic system effect | postfix | examples ------------+---------+---------- breve | ( | a( -> ,1e(B circumflex | ^ | a^ -> ,1b(B horn | + | o+ -> ,1=(B ------------+---------+---------- acute | ' | a' -> ,1a(B grave | ` | a` -> ,1`(B hook above | ? | a? -> ,1d(B tilde | ~ | a~ -> ,1c(B dot below | . | a. -> ,1U(B ------------+---------+---------- d bar | dd | dd -> ,1p(B ------------+---------+---------- no compose | \\ | a\\. -> a. ------------+---------+---------- combination| (~ | a(~ -> ,1G(B " nil t t nil nil t nil nil nil nil t) (viet-quail-define-rules) ;;; viqr.el ends here