view leim/quail/slovak.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 f1c0aa406cb0 bc5a086f9455
line wrap: on
line source

;;; slovak.el --- Quail package for inputting Slovak

;; Copyright (C) 1998, 2001 Free Software Foundation.

;; Authors: Tibor ,B)(Bimko <tibor.simko@fmph.uniba.sk>
;;	Milan Zamazal <pdm@zamazal.org>
;; Maintainer: Pavel Jan,Bm(Bk <Pavel@Janik.cz>
;; Keywords: multilingual, input method, Slovak

;; 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:

;; This setups some Slovak keyboards:
;; - standard Slovak keyboard
;; - three Slovak keyboards for programmers

;;; Code:

(require 'quail)

(quail-define-package
 "slovak" "Slovak" "SK" t
 "Standard Slovak keyboard."
 nil t nil nil t nil nil nil nil nil t)

(quail-define-rules
 ("1" ?+)
 ("2" ?,B5(B)
 ("3" ?,B9(B)
 ("4" ?,Bh(B)
 ("5" ?,B;(B)
 ("6" ?,B>(B)
 ("7" ?,B}(B)
 ("8" ?,Ba(B)
 ("9" ?,Bm(B)
 ("0" ?,Bi(B)
 ("!" ?1)
 ("@" ?2)
 ("#" ?3)
 ("$" ?4)
 ("%" ?5)
 ("^" ?6)
 ("&" ?7)
 ("*" ?8)
 ("(" ?9)
 (")" ?0)
 ("-" ?=)
 ("_" ?%)
 ("=" ?')
 ("[" ?,Bz(B)
 ("{" ?/)
 ("]" ?,Bd(B)
 ("}" ?\()
 ("\\" ?,Br(B)
 ("|" ?\))
 (";" ?,Bt(B)
 (":" ?\")
 ("'" ?,B'(B)
 ("\"" ?!)
 ("<" ??)
 (">" ?:)
 ("/" ?-)
 ("?" ?_)
 ("`" ?\;)
 ("~" ?^)
 ("y" ?z)
 ("z" ?y)
 ("Y" ?Z)
 ("Z" ?Y)
 ("=a" ?,Ba(B)
 ("+a" ?,Bd(B)
 ("+=a" ?,Bd(B)
 ("+c" ?,Bh(B)
 ("+d" ?,Bo(B)
 ("=e" ?,Bi(B)
 ("+e" ?,Bl(B)
 ("=i" ?,Bm(B)
 ("=l" ?,Be(B)
 ("+l" ?,B5(B)
 ("+n" ?,Br(B)
 ("=o" ?,Bs(B)
 ("+o" ?,Bt(B)
 ("~o" ?,Bt(B)
 ("+=o" ?,Bv(B)
 ("=r" ?,B`(B)
 ("+r" ?,Bx(B)
 ("=s" ?,B_(B)
 ("+s" ?,B9(B)
 ("+t" ?,B;(B)
 ("=u" ?,Bz(B)
 ("+u" ?,By(B)
 ("+=u" ?,B|(B)
 ("=z" ?,B}(B)
 ("+y" ?,B>(B)
 ("=A" ?,BA(B)
 ("+A" ?,BD(B)
 ("+=A" ?,BD(B)
 ("+C" ?,BH(B)
 ("+D" ?,BO(B)
 ("=E" ?,BI(B)
 ("+E" ?,BL(B)
 ("=I" ?,BM(B)
 ("=L" ?,BE(B)
 ("+L" ?,B%(B)
 ("+N" ?,BR(B)
 ("=O" ?,BS(B)
 ("+O" ?,BT(B)
 ("~O" ?,BT(B)
 ("+=O" ?,BV(B)
 ("=R" ?,B@(B)
 ("+R" ?,BX(B)
 ("=S" ?,B_(B)
 ("+S" ?,B)(B)
 ("+T" ?,B+(B)
 ("=U" ?,BZ(B)
 ("+U" ?,BY(B)
 ("+=U" ?,B\(B)
 ("=Z" ?,B](B)
 ("+Y" ?,B.(B)
 ("=q" ?`)
 ("=2" ?@)
 ("=3" ?#)
 ("=4" ?$)
 ("=5" ?%)
 ("=6" ?^)
 ("=7" ?&)
 ("=8" ?*)
 ("=9" ?\()
 ("=0" ?\))
 ("+1" ?!)
 ("+2" ?@)
 ("+3" ?#)
 ("+4" ?$)
 ("+5" ?%)
 ("+6" ?^)
 ("+7" ?&)
 ("+8" ?*)
 ("+9" ?\()
 ("+0" ?\))
 ([kp-1] ?1)
 ([kp-2] ?2)
 ([kp-3] ?3)
 ([kp-4] ?4)
 ([kp-5] ?5)
 ([kp-6] ?6)
 ([kp-7] ?7)
 ([kp-8] ?8)
 ([kp-9] ?9)
 ([kp-0] ?0)
 ([kp-add] ?+))


(quail-define-package
 "slovak-prog-1" "Slovak" "SK" t
 "Slovak (non-standard) keyboard for programmers #1.

All digits except of `1' are replaced by Slovak characters as on the standard
Slovak keyboard.
Dead keys are on `[', `[[', and `[[['.
All other keys are the same as on standard US keyboard."
 nil t nil nil t nil nil nil nil nil t)

(quail-define-rules
 ("[[[[" ?\[)
 ("2" ?,B5(B)
 ("3" ?,B9(B)
 ("4" ?,Bh(B)
 ("5" ?,B;(B)
 ("6" ?,B>(B)
 ("7" ?,B}(B)
 ("8" ?,Ba(B)
 ("9" ?,Bm(B)
 ("0" ?,Bi(B)
 ("[a" ?,Ba(B)
 ("[[a" ?,Bd(B)
 ("[[[a" ?,Bd(B)
 ("[c" ?,Bh(B)
 ("[[c" ?,Bh(B)
 ("[d" ?,Bo(B)
 ("[[d" ?,Bo(B)
 ("[e" ?,Bi(B)
 ("[[e" ?,Bl(B)
 ("[i" ?,Bm(B)
 ("[l" ?,Be(B)
 ("[[l" ?,B5(B)
 ("[n" ?,Br(B)
 ("[[n" ?,Br(B)
 ("[o" ?,Bs(B)
 ("[[o" ?,Bt(B)
 ("[[[o" ?,Bv(B)
 ("[r" ?,B`(B)
 ("[[r" ?,Bx(B)
 ("[s" ?,B9(B)
 ("[[s" ?,B9(B)
 ("[[[s" ?,B_(B)
 ("[t" ?,B;(B)
 ("[[t" ?,B;(B)
 ("[u" ?,Bz(B)
 ("[[u" ?,By(B)
 ("[[[u" ?,B|(B)
 ("[y" ?,B}(B)
 ("[z" ?,B>(B)
 ("[[z" ?,B>(B)
 ("[A" ?,BA(B)
 ("[[A" ?,BD(B)
 ("[[[A" ?,BD(B)
 ("[C" ?,BH(B)
 ("[[C" ?,BH(B)
 ("[D" ?,BO(B)
 ("[[D" ?,BO(B)
 ("[E" ?,BI(B)
 ("[[E" ?,BL(B)
 ("[I" ?,BM(B)
 ("[L" ?,BE(B)
 ("[[L" ?,B%(B)
 ("[N" ?,BR(B)
 ("[[N" ?,BR(B)
 ("[O" ?,BS(B)
 ("[[O" ?,BT(B)
 ("[[[O" ?,BV(B)
 ("[R" ?,B@(B)
 ("[[R" ?,BX(B)
 ("[S" ?,B)(B)
 ("[[S" ?,B)(B)
 ("[[[S" ?,B_(B)
 ("[T" ?,B+(B)
 ("[[T" ?,B+(B)
 ("[U" ?,BZ(B)
 ("[[U" ?,BY(B)
 ("[[[U" ?,B\(B)
 ("[Y" ?,B](B)
 ("[Z" ?,B.(B)
 ("[[Z" ?,B.(B)
 ([kp-1] ?1)
 ([kp-2] ?2)
 ([kp-3] ?3)
 ([kp-4] ?4)
 ([kp-5] ?5)
 ([kp-6] ?6)
 ([kp-7] ?7)
 ([kp-8] ?8)
 ([kp-9] ?9)
 ([kp-0] ?0)
 ([kp-add] ?+))


(quail-define-package
 "slovak-prog-2" "Slovak" "SK" t
 "Slovak (non-standard) keyboard for programmers #2.

All digits except of `1' are replaced by Slovak characters as on the standard
Slovak keyboard.
Dead keys are on `=' and `+'.
All other keys are the same as on standard US keyboard."
 nil t nil nil t nil nil nil nil nil t)

(quail-define-rules
 ("2" ?,B5(B)
 ("3" ?,B9(B)
 ("4" ?,Bh(B)
 ("5" ?,B;(B)
 ("6" ?,B>(B)
 ("7" ?,B}(B)
 ("8" ?,Ba(B)
 ("9" ?,Bm(B)
 ("0" ?,Bi(B)
 ("==" ?=)
 ("++" ?+)
 ("=+" ?+)
 ("=2" ?2)
 ("=3" ?3)
 ("=4" ?4)
 ("=5" ?5)
 ("=6" ?6)
 ("=7" ?7)
 ("=8" ?8)
 ("=9" ?9)
 ("=0" ?0)
 ("+2" ?2)
 ("+3" ?3)
 ("+4" ?4)
 ("+5" ?5)
 ("+6" ?6)
 ("+7" ?7)
 ("+8" ?8)
 ("+9" ?9)
 ("+0" ?0)
 ("=a" ?,Ba(B)
 ("+a" ?,Bd(B)
 ("+=a" ?,Bd(B)
 ("+c" ?,Bh(B)
 ("+d" ?,Bo(B)
 ("=e" ?,Bi(B)
 ("+e" ?,Bl(B)
 ("=i" ?,Bm(B)
 ("=l" ?,Be(B)
 ("+l" ?,B5(B)
 ("+n" ?,Br(B)
 ("=o" ?,Bs(B)
 ("+o" ?,Bt(B)
 ("+=o" ?,Bv(B)
 ("=r" ?,B`(B)
 ("+r" ?,Bx(B)
 ("=s" ?,B_(B)
 ("+s" ?,B9(B)
 ("+t" ?,B;(B)
 ("=u" ?,Bz(B)
 ("+u" ?,By(B)
 ("+=u" ?,B|(B)
 ("=y" ?,B}(B)
 ("+z" ?,B>(B)
 ("=A" ?,BA(B)
 ("+A" ?,BD(B)
 ("+=A" ?,BD(B)
 ("+C" ?,BH(B)
 ("+D" ?,BO(B)
 ("=E" ?,BI(B)
 ("+E" ?,BL(B)
 ("=I" ?,BM(B)
 ("=L" ?,BE(B)
 ("+L" ?,B%(B)
 ("+N" ?,BR(B)
 ("=O" ?,BS(B)
 ("+O" ?,BT(B)
 ("+=O" ?,BV(B)
 ("=R" ?,B@(B)
 ("+R" ?,BX(B)
 ("=S" ?,B_(B)
 ("+S" ?,B)(B)
 ("+T" ?,B+(B)
 ("=U" ?,BZ(B)
 ("+U" ?,BY(B)
 ("+=U" ?,B\(B)
 ("=Y" ?,B](B)
 ("+Z" ?,B.(B)
 ([kp-1] ?1)
 ([kp-2] ?2)
 ([kp-3] ?3)
 ([kp-4] ?4)
 ([kp-5] ?5)
 ([kp-6] ?6)
 ([kp-7] ?7)
 ([kp-8] ?8)
 ([kp-9] ?9)
 ([kp-0] ?0)
 ([kp-add] ?+))


(quail-define-package
 "slovak-prog-3" "Slovak" "SK" t
 "Slovak (non-standard) keyboard for programmers #3.

Dead keys are on `[', `[[', `[[[', and `]'.
All other keys are the same as on standard US keyboard."
 nil t nil nil t nil nil nil nil nil t)

(quail-define-rules
 ("[[[[" ?\[)
 ("[]" ?\])
 ("][" ?\[)
 ("]]" ?\])
 ("[a" ?,Ba(B)
 ("[[a" ?,Bd(B)
 ("[[[a" ?,Bd(B)
 ("]a" ?,Bd(B)
 ("][a" ?,Bd(B)
 ("[c" ?,Bh(B)
 ("[[c" ?,Bh(B)
 ("]c" ?,Bh(B)
 ("[d" ?,Bo(B)
 ("[[d" ?,Bo(B)
 ("]d" ?,Bo(B)
 ("[e" ?,Bi(B)
 ("[[e" ?,Bl(B)
 ("]e" ?,Bl(B)
 ("[i" ?,Bm(B)
 ("[l" ?,Be(B)
 ("[[l" ?,B5(B)
 ("]l" ?,B5(B)
 ("[n" ?,Br(B)
 ("[[n" ?,Br(B)
 ("]n" ?,Br(B)
 ("[[o" ?,Bt(B)
 ("[[[o" ?,Bv(B)
 ("[o" ?,Bs(B)
 ("]o" ?,Bt(B)
 ("][o" ?,Bv(B)
 ("[r" ?,B`(B)
 ("[[r" ?,Bx(B)
 ("]r" ?,Bx(B)
 ("[s" ?,B9(B)
 ("[[s" ?,B9(B)
 ("[[[s" ?,B_(B)
 ("]s" ?,B9(B)
 ("[t" ?,B;(B)
 ("[[t" ?,B;(B)
 ("]t" ?,B;(B)
 ("[u" ?,Bz(B)
 ("[[u" ?,By(B)
 ("[[[u" ?,B|(B)
 ("]u" ?,By(B)
 ("][u" ?,B|(B)
 ("[y" ?,B}(B)
 ("[z" ?,B>(B)
 ("[[z" ?,B>(B)
 ("]z" ?,B>(B)
 ("[A" ?,BA(B)
 ("[[A" ?,BD(B)
 ("[[[A" ?,BD(B)
 ("]A" ?,BD(B)
 ("][A" ?,BD(B)
 ("[C" ?,BH(B)
 ("[[C" ?,BH(B)
 ("]C" ?,BH(B)
 ("[D" ?,BO(B)
 ("[[D" ?,BO(B)
 ("]D" ?,BO(B)
 ("[E" ?,BI(B)
 ("[[E" ?,BL(B)
 ("]E" ?,BL(B)
 ("[I" ?,BM(B)
 ("[L" ?,BE(B)
 ("[[L" ?,B%(B)
 ("]L" ?,B%(B)
 ("[N" ?,BR(B)
 ("[[N" ?,BR(B)
 ("]N" ?,BR(B)
 ("[O" ?,BS(B)
 ("[[O" ?,BT(B)
 ("[[[O" ?,BV(B)
 ("]O" ?,BT(B)
 ("][O" ?,BV(B)
 ("[R" ?,B@(B)
 ("[[R" ?,BX(B)
 ("]R" ?,BX(B)
 ("[S" ?,B)(B)
 ("[[S" ?,B)(B)
 ("[[[S" ?,B_(B)
 ("]S" ?,B)(B)
 ("[T" ?,B+(B)
 ("[[T" ?,B+(B)
 ("]T" ?,B+(B)
 ("[U" ?,BZ(B)
 ("[[U" ?,BY(B)
 ("[[[U" ?,B\(B)
 ("]U" ?,BY(B)
 ("][U" ?,B\(B)
 ("[Y" ?,B](B)
 ("[Z" ?,B.(B)
 ("[[Z" ?,B.(B)
 ("]Z" ?,B.(B)
 ([kp-1] ?1)
 ([kp-2] ?2)
 ([kp-3] ?3)
 ([kp-4] ?4)
 ([kp-5] ?5)
 ([kp-6] ?6)
 ([kp-7] ?7)
 ([kp-8] ?8)
 ([kp-9] ?9)
 ([kp-0] ?0)
 ([kp-add] ?+))

;;; slovak.el ends here