annotate lisp/gdk.el @ 5634:2014ff433daf

Support hash COLLECTIONs, #'{all,try}-completion{s,}; add #'test-completion src/ChangeLog addition: 2012-01-01 Aidan Kehoe <kehoea@parhasard.net> Add #'test-completion, API from GNU. Accept hash table COLLECTIONs in it and in the other completion-oriented functions, #'try-completion, #'all-completions, and those Lisp functions implemented in terms of them. * lisp.h: Update the prototype of map_obarray(), making FN compatible with the FUNCTION argument of elisp_maphash(); * abbrev.c (abbrev_match_mapper): * abbrev.c (record_symbol): * doc.c (verify_doc_mapper): * symbols.c (mapatoms_1): * symbols.c (apropos_mapper): Update these mapper functions to reflect the new argument to map_obarray(). * symbols.c (map_obarray): Call FN with two arguments, the string name of the symbol, and the symbol itself, for API (mapper) compatibility with elisp_maphash(). * minibuf.c (map_completion): New. Map a maphash_function_t across a non function COLLECTION, as appropriate for #'try-completion and friends. * minibuf.c (map_completion_list): New. Map a maphash_function_t across a pseudo-alist, as appropriate for the completion functions. * minibuf.c (ignore_completion_p): PRED needs to be called with two args if and only if the collection is a hash table. Implement this. * minibuf.c (try_completion_mapper): New. The loop body of #'try-completion, refactored out. * minibuf.c (Ftry_completion): Use try_completion_mapper(), map_completion(). * minibuf.c (all_completions_mapper): New. The loop body of #'all-completions, refactored out. * minibuf.c (Fall_completions): Use all_completions_mapper(), map_completion(). * minibuf.c (test_completion_mapper): New. The loop body of #'test-completion. * minibuf.c (Ftest_completion): New, API from GNU. * minibuf.c (syms_of_minibuf): Make Ftest_completion available. tests/ChangeLog addition: 2012-01-01 Aidan Kehoe <kehoea@parhasard.net> * automated/completion-tests.el: New. Test #'try-completion, #'all-completion and #'test-completion with list, vector and hash-table COLLECTION arguments.
author Aidan Kehoe <kehoea@parhasard.net>
date Sun, 01 Jan 2012 15:18:52 +0000
parents 308d34e9f07d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
1 ;;; gdk.el --- Import GDK functions into XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
2
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
3 ;; Copyright (C) 2000 Free Software Foundation
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
4
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
5 ;; Maintainer: William Perry <wmperry@gnu.org>
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
6 ;; Keywords: extensions, dumped
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
7
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
8 ;; This file is part of XEmacs.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
9
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
10 ;; XEmacs is free software: you can redistribute it and/or modify it
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
11 ;; under the terms of the GNU General Public License as published by the
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
12 ;; Free Software Foundation, either version 3 of the License, or (at your
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
13 ;; option) any later version.
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
14
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
15 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
16 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
17 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
18 ;; for more details.
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
19
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
5402
308d34e9f07d Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents: 502
diff changeset
21 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
22
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
23 ;;; Synched up with: Not in FSF
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
24
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
25 ;;; Commentary:
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
26
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
27 ;; This file is dumped with XEmacs.
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
28
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
29 (eval-and-compile
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
30 (require 'gtk-ffi))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
31
502
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
32 (globally-declare-fboundp
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
33 '(gtk-import-function-internal gtk-call-function))
7039e6323819 [xemacs-hg @ 2001-05-04 22:41:46 by ben]
ben
parents: 462
diff changeset
34
462
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
35 (gtk-import-function nil gdk_set_show_events (gboolean . show_events))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
36 (gtk-import-function nil gdk_set_use_xshm (gboolean . use_xshm))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
37 (gtk-import-function GtkString gdk_get_display)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
38 (gtk-import-function nil gdk_flush)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
39 (gtk-import-function nil gdk_beep)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
40
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
41 (gtk-import-function nil gdk_key_repeat_disable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
42 (gtk-import-function nil gdk_key_repeat_restore)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
43
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
44 (gtk-import-function gint gdk_visual_get_best_depth)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
45 (gtk-import-function GdkVisualType gdk_visual_get_best_type)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
46 (gtk-import-function GdkVisual gdk_visual_get_system)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
47 (gtk-import-function GdkVisual gdk_visual_get_best)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
48 (gtk-import-function GdkVisual gdk_visual_get_best_with_depth (gint . depth))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
49 (gtk-import-function GdkVisual gdk_visual_get_best_with_type (GdkVisualType . visual_type))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
50 (gtk-import-function GdkVisual gdk_visual_get_best_with_both
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
51 (gint . depth)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
52 (GdkVisualType . visual_type))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
53
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
54 (gtk-import-function gboolean gdk_window_is_visible (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
55 (gtk-import-function gboolean gdk_window_is_viewable (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
56
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
57 (gtk-import-function gboolean gdk_window_set_static_gravities
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
58 (GdkWindow . window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
59 (gboolean . use_static))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
60
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
61 (gtk-import-function nil gdk_window_set_cursor
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
62 (GdkWindow . window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
63 (GdkCursor . cursor))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
64
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
65 (gtk-import-function GdkVisual gdk_window_get_visual (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
66 (gtk-import-function GdkWindowType gdk_window_get_type (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
67 (gtk-import-function GdkWindow gdk_window_get_parent (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
68 (gtk-import-function GdkWindow gdk_window_get_toplevel (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
69 (gtk-import-function GdkEventMask gdk_window_get_events (GdkWindow . window))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
70 (gtk-import-function none gdk_window_set_events (GdkWindow . window) (GdkEventMask . events))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
71 (gtk-import-function none gdk_window_set_icon
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
72 (GdkWindow . window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
73 (GdkWindow . icon_window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
74 (GdkPixmap . pixmap)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
75 (GdkBitmap . mask))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
76 (gtk-import-function none gdk_window_set_icon_name (GdkWindow . window) (GtkString . name))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
77 (gtk-import-function none gdk_window_set_group (GdkWindow . window) (GdkWindow . leader))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
78 (gtk-import-function none gdk_window_set_decorations
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
79 (GdkWindow . window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
80 (GdkWMDecoration . decorations))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
81 (gtk-import-function none gdk_window_set_functions
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
82 (GdkWindow . window)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
83 (GdkWMFunction . functions))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
84
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
85 ;; Cursors are handled by glyphs in XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
86 ;; GCs are handled by faces in XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
87 ;; Pixmaps are handled by glyphs in XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
88 ;; Images are handled by glyphs in XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
89 ;; Colors are handled natively by XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
90 ;; Fonts are handled natively by XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
91
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
92 (gtk-import-function none gdk_draw_point
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
93 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
94 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
95 (gint . x)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
96 (gint . y))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
97 (gtk-import-function none gdk_draw_line
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
98 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
99 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
100 (gint . x1)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
101 (gint . y1)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
102 (gint . x2)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
103 (gint . y2))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
104 (gtk-import-function none gdk_draw_rectangle
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
105 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
106 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
107 (gboolean . filled)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
108 (gint . x)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
109 (gint . y)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
110 (gint . width)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
111 (gint . height))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
112 (gtk-import-function none gdk_draw_arc
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
113 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
114 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
115 (gboolean . filled)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
116 (gint . x)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
117 (gint . y)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
118 (gint . width)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
119 (gint . height)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
120 (gint . angle1)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
121 (gint . angle2))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
122 (gtk-import-function none gdk_draw_string
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
123 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
124 (GdkFont . font)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
125 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
126 (gint . x)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
127 (gint . y)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
128 (GtkString . string))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
129 (gtk-import-function none gdk_draw_text
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
130 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
131 (GdkFont . font)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
132 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
133 (gint . x)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
134 (gint . y)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
135 (GtkString . string)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
136 (gint . text_length))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
137 (gtk-import-function none gdk_draw_pixmap
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
138 (GdkDrawable . drawable)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
139 (GdkGC . gc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
140 (GdkImage . image)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
141 (gint . xsrc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
142 (gint . ysrc)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
143 (gint . xdest)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
144 (gint . ydest)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
145 (gint . width)
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
146 (gint . height))
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
147
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
148 ;; Selections are handled natively by XEmacs
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
149
0784d089fdc9 Import from CVS: tag r21-2-46
cvs
parents:
diff changeset
150 (provide 'gdk)