Mercurial > hg > xemacs-beta
annotate src/balloon-x.c @ 5750:66d2f63df75f
Correct some spelling and formatting in behavior.el.
Mentioned in tracker issue 826, the third thing mentioned there (the file
name at the bottom of the file) had already been fixed.
lisp/ChangeLog addition:
2013-08-05 Aidan Kehoe <kehoea@parhasard.net>
* behavior.el:
(override-behavior):
Correct some spelling and formatting here, thank you Steven
Mitchell in tracker issue 826.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 05 Aug 2013 10:05:32 +0100 |
parents | 308d34e9f07d |
children |
rev | line source |
---|---|
428 | 1 /* |
2 Copyright (c) 1997 Douglas Keller | |
3 | |
4 This file is part of XEmacs. | |
5 | |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
872
diff
changeset
|
6 XEmacs is free software: you can redistribute it and/or modify it |
428 | 7 under the terms of the GNU General Public License as published by the |
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
872
diff
changeset
|
8 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:
872
diff
changeset
|
9 option) any later version. |
428 | 10 |
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT | |
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
14 for more details. | |
15 | |
16 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:
872
diff
changeset
|
17 along with XEmacs. If not, see <http://www.gnu.org/licenses/>. */ |
428 | 18 |
19 /* Synched up with: Not in FSF. */ | |
20 | |
21 | |
22 #include <config.h> | |
23 #include "lisp.h" | |
24 | |
872 | 25 #include "device-impl.h" |
26 #include "console-x-impl.h" | |
428 | 27 |
28 #include "balloon_help.h" | |
29 | |
440 | 30 /* #### start of hack */ |
428 | 31 |
32 static unsigned long | |
442 | 33 alloc_color (Display* dpy, const char* colorname, int light) |
428 | 34 { |
872 | 35 Colormap cmap = DEVICE_X_COLORMAP (XDEVICE (get_default_device (Qx))); |
428 | 36 unsigned long pixel = 0; |
37 XColor color; | |
38 | |
39 if (XParseColor(dpy, cmap, colorname, &color) && XAllocColor(dpy, cmap, &color)) | |
40 { | |
41 pixel = color.pixel; | |
42 } | |
43 else | |
44 { | |
45 if (light) | |
46 { | |
47 printf ("Warning: could not allocate color \"%s\", using \"white\"\n", | |
48 colorname); | |
49 pixel = alloc_color (dpy, "white", True); | |
50 } | |
51 else | |
52 { | |
53 printf ("Warning: could not allocate color \"%s\", using \"black\"\n", | |
54 colorname); | |
55 pixel = alloc_color (dpy, "black", True); | |
56 } | |
57 } | |
58 return pixel; | |
59 } | |
60 | |
61 static XFontStruct * | |
442 | 62 open_font (Display* dpy, const char* font_name) |
428 | 63 { |
64 XFontStruct* fontStruct = NULL; | |
65 | |
66 fontStruct = XLoadQueryFont (dpy, font_name ? font_name : "fixed"); | |
67 if (fontStruct == NULL) | |
68 { | |
69 printf ("Warning: could not load font \"%s\", using \"fixed\".\n", font_name); | |
70 fontStruct = XLoadQueryFont (dpy, "fixed"); | |
71 assert (fontStruct != NULL); | |
72 } | |
73 return fontStruct; | |
74 } | |
75 | |
76 static void | |
77 init (void) | |
78 { | |
79 static int init_p = 0; | |
80 | |
81 if (!init_p) | |
82 { | |
83 Pixel fg, bg, shine, shadow; | |
84 XFontStruct* font; | |
872 | 85 Display *dpy = DEVICE_X_DISPLAY (XDEVICE (get_default_device (Qx))); |
428 | 86 |
87 fg = alloc_color (dpy, "grey60", 1); | |
88 bg = alloc_color (dpy, "black", 0); | |
89 | |
90 shine = alloc_color (dpy, "grey80", 1); | |
91 shadow = alloc_color (dpy, "grey40", 0); | |
92 | |
93 font = open_font (dpy, "-adobe-helvetica-medium-r-normal--12-*"); | |
94 | |
95 balloon_help_create (dpy, bg, fg, shine, shadow, font); | |
96 init_p = 1; | |
97 } | |
98 } | |
99 | |
440 | 100 /* #### end of hack */ |
428 | 101 |
102 DEFUN ("show-balloon-help", Fshow_balloon_help, 1, 1, 0, /* | |
103 Show balloon help. | |
104 */ | |
105 (string)) | |
106 { | |
107 char *p; | |
108 CHECK_STRING (string); | |
109 | |
110 p = (char *) XSTRING_DATA (string); | |
111 | |
112 init (); | |
113 | |
114 balloon_help_show (p); | |
115 | |
116 return Qnil; | |
117 } | |
118 | |
119 DEFUN ("hide-balloon-help", Fhide_balloon_help, 0, 0, 0, /* | |
120 Hide balloon help. | |
121 */ | |
122 ()) | |
123 { | |
124 init (); | |
125 | |
126 balloon_help_hide (); | |
127 | |
128 return Qnil; | |
129 } | |
130 | |
131 DEFUN ("balloon-help-move-to-pointer", Fballoon_help_move_to_pointer, 0, 0, 0, /* | |
132 Move the balloon help to the place where the pointer currently resides. | |
133 */ | |
134 ()) | |
135 { | |
136 init (); | |
137 | |
138 balloon_help_move_to_pointer (); | |
139 | |
140 return Qnil; | |
141 } | |
142 | |
143 | |
144 | |
145 /************************************************************************/ | |
146 /* initialization */ | |
147 /************************************************************************/ | |
148 | |
149 void | |
150 syms_of_balloon_x (void) | |
151 { | |
152 DEFSUBR (Fshow_balloon_help); | |
153 DEFSUBR (Fhide_balloon_help); | |
154 DEFSUBR (Fballoon_help_move_to_pointer); | |
155 } | |
156 | |
157 void | |
158 vars_of_balloon_x (void) | |
159 { | |
160 Fprovide (intern ("c-balloon-help")); | |
161 } |