Mercurial > emacs
annotate src/w32font.h @ 107474:f7e5232d459a
Synch with Gnus trunk
=====================
2010-03-23 Katsumi Yamaoka <yamaoka@jpl.org>
* gnus-art.el (canlock-verify): Autoload it for Emacs 21.
* message.el (ecomplete-setup): Autoload it for Emacs <23.
* mml-sec.el (mml-secure-cache-passphrase): Default to t that is
password-cache's default if it is not bound.
(mml-secure-passphrase-cache-expiry): Default to 16 that is
password-cache-expiry's default if it is not bound.
* pop3.el (pop3-list): Don't use 3rd arg of `split-string' which is not
available in Emacs 21.
2010-03-23 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-sources): Fix up definition so extra parameters
are always inline.
2010-03-22 Martin Stjernholm <mast@lysator.liu.se>
* nnimap.el (nnimap-verify-uidvalidity): Fixed bug where uidvalidity
wasn't updated after mismatch. Clear cached mailbox info correctly
when uidvalidity changes.
(nnimap-group-prefixed-name): New function to avoid some code
duplication.
(nnimap-verify-uidvalidity, nnimap-group-overview-filename)
(nnimap-request-group): Use it.
(nnimap-retrieve-groups, nnimap-verify-uidvalidity)
(nnimap-update-unseen): Significantly improved speed of Gnus startup
with many imap folders. This is done by caching the group status from
the imap server persistently in a group parameter `imap-status'. (This
was cached before too if `nnimap-retrieve-groups-asynchronous' was set,
but not persistently, so every Gnus startup was still very slow.)
2010-03-20 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el: Set up autoloads. Bump to 23.2 because of the
secrets.el dependency.
(auth-sources): Add optional user name. Add secrets.el configuration
choice (unused right now).
2010-03-20 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-sum.el (gnus-summary-make-menu-bar): Let
`gnus-registry-install-shortcuts' fill in the functions.
* gnus-registry.el (gnus-summary-misc-menu): Declare to avoid
warnings.
(gnus-registry-misc-menus): Variable to hold registry mark menus.
(gnus-registry-install-shortcuts): Populate and use it in a
`gnus-summary-menu-hook' lambda, under "Gnus"->"Registry Marks".
2010-03-20 Martin Stjernholm <mast@lysator.liu.se>
* nnimap.el (nnimap-decode-group-name, nnimap-encode-group-name):
In-place substitutions for the group name encoding/decoding.
(nnimap-find-minmax-uid, nnimap-possibly-change-group)
(nnimap-retrieve-headers-progress, nnimap-possibly-change-group)
(nnimap-retrieve-headers-progress, nnimap-request-article-part)
(nnimap-update-unseen, nnimap-request-list)
(nnimap-retrieve-groups, nnimap-request-update-info-internal)
(nnimap-request-set-mark, nnimap-split-to-groups)
(nnimap-split-articles, nnimap-request-newgroups)
(nnimap-request-create-group, nnimap-request-accept-article)
(nnimap-request-delete-group, nnimap-request-rename-group)
(nnimap-acl-get, nnimap-acl-edit): Use them. Replace `mbx' with
`encoded-mbx' for consistency.
(nnimap-close-group): Call `imap-current-mailbox' instead of using the
variable `imap-current-mailbox'.
* gnus-agent.el (gnus-agent-fetch-articles, gnus-agent-fetch-headers)
(gnus-agent-regenerate-group): Use `gnus-agent-decoded-group-name'.
2010-03-20 Bojan Petrovic <bpetrovi@f.bg.ac.rs>
* pop3.el (pop3-display-message-size-flag): Display message size byte
counts during POP3 download.
(pop3-movemail): Use it.
(pop3-list): Implement listing of available messages.
2010-03-20 Mark Triggs <mst@dishevelled.net> (tiny change)
* nnir.el (nnir-get-article-nov-override-function): New function to
override the normal NOV retrieval.
(nnir-retrieve-headers): Use it.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Tue, 23 Mar 2010 07:38:13 +0000 |
parents | 1d1d5d9bd884 |
children | 1dc371b29285 376148b31b5e |
rev | line source |
---|---|
91206 | 1 /* Shared GDI and Uniscribe Font backend declarations for the W32 API. |
106815 | 2 Copyright (C) 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
91206 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94916
diff
changeset
|
6 GNU Emacs is free software: you can redistribute it and/or modify |
91206 | 7 it under the terms of the GNU General Public License as published by |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94916
diff
changeset
|
8 the Free Software Foundation, either version 3 of the License, or |
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94916
diff
changeset
|
9 (at your option) any later version. |
91206 | 10 |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
94916
diff
changeset
|
17 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
91206 | 18 |
19 #ifndef EMACS_W32FONT_H | |
20 #define EMACS_W32FONT_H | |
21 | |
22 | |
23 /* Bit 17 of ntmFlags in NEWTEXTMETRIC is set for Postscript OpenType fonts, | |
92408
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
24 bit 18 for Truetype OpenType fonts, bit 20 for Type1 fonts. */ |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
25 #ifndef NTM_PS_OPENTYPE |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
26 #define NTM_PS_OPENTYPE 0x00020000 |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
27 #endif |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
28 #ifndef NTM_TT_OPENTYPE |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
29 #define NTM_TT_OPENTYPE 0x00040000 |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
30 #endif |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
31 #ifndef NTM_TYPE1 |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
32 #define NTM_TYPE1 0x00100000 |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
33 #endif |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
34 |
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
35 #define NTMFLAGS_OPENTYPE (NTM_PS_OPENTYPE | NTM_TT_OPENTYPE) |
91206 | 36 |
93860
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
37 struct w32_metric_cache |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
38 { |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
39 short lbearing, rbearing, width; |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
40 unsigned char status; |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
41 }; |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
42 |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
43 #define W32METRIC_NO_ATTEMPT 0 |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
44 #define W32METRIC_SUCCESS 1 |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
45 #define W32METRIC_FAIL 2 |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
46 |
91206 | 47 /* The actual structure for a w32 font, that can be cast to struct font. |
48 The Uniscribe backend extends this. */ | |
49 struct w32font_info | |
50 { | |
51 struct font font; | |
97135
09abb4487286
* w32font.h (struct w32font_info): Use unicode version of textmetrics.
Jason Rumney <jasonr@gnu.org>
parents:
96343
diff
changeset
|
52 TEXTMETRICW metrics; |
92408
a371504924ef
(NTM_PS_OPENTYPE, NTM_TT_OPENTYPE, NTM_TYPE1): Define
Jason Rumney <jasonr@gnu.org>
parents:
91593
diff
changeset
|
53 unsigned int glyph_idx; |
93860
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
54 struct w32_metric_cache **cached_metrics; |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
55 int n_cache_blocks; |
96327
2fc5aff56d81
* w32bdf.c, w32bdf.h: Remove obsolete files.
Jason Rumney <jasonr@gnu.org>
parents:
94994
diff
changeset
|
56 HFONT hfont; |
91206 | 57 }; |
58 | |
96343
5c8f2b7d28ae
* w32font.h (FONT_HANDLE, FONT_TEXTMETRIC): New macros.
Jason Rumney <jasonr@gnu.org>
parents:
96327
diff
changeset
|
59 /* Macros for getting OS specific information from a font struct. */ |
5c8f2b7d28ae
* w32font.h (FONT_HANDLE, FONT_TEXTMETRIC): New macros.
Jason Rumney <jasonr@gnu.org>
parents:
96327
diff
changeset
|
60 #define FONT_HANDLE(f) (((struct w32font_info *)(f))->hfont) |
5c8f2b7d28ae
* w32font.h (FONT_HANDLE, FONT_TEXTMETRIC): New macros.
Jason Rumney <jasonr@gnu.org>
parents:
96327
diff
changeset
|
61 #define FONT_TEXTMETRIC(f) (((struct w32font_info *)(f))->metrics) |
5c8f2b7d28ae
* w32font.h (FONT_HANDLE, FONT_TEXTMETRIC): New macros.
Jason Rumney <jasonr@gnu.org>
parents:
96327
diff
changeset
|
62 |
93860
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
63 #define CACHE_BLOCKSIZE 128 |
0fecf07dfe3c
(struct w32_metric_cache): New struct.
Jason Rumney <jasonr@gnu.org>
parents:
93594
diff
changeset
|
64 |
91254
21661755910b
(w32font_get_cache): Update declaration.
Jason Rumney <jasonr@gnu.org>
parents:
91213
diff
changeset
|
65 Lisp_Object w32font_get_cache P_ ((FRAME_PTR fe)); |
91206 | 66 Lisp_Object w32font_list_internal P_ ((Lisp_Object frame, |
67 Lisp_Object font_spec, | |
68 int opentype_only)); | |
69 Lisp_Object w32font_match_internal P_ ((Lisp_Object frame, | |
70 Lisp_Object font_spec, | |
71 int opentype_only)); | |
91210
4de7fe00ac26
(w32font_open_internal): New function.
Jason Rumney <jasonr@gnu.org>
parents:
91206
diff
changeset
|
72 int w32font_open_internal P_ ((FRAME_PTR f, Lisp_Object font_entity, |
94916
283ee643ce8b
(struct w32font_info): New member.
Kenichi Handa <handa@m17n.org>
parents:
93860
diff
changeset
|
73 int pixel_size, Lisp_Object font_object)); |
91206 | 74 void w32font_close P_ ((FRAME_PTR f, struct font *font)); |
75 int w32font_has_char P_ ((Lisp_Object entity, int c)); | |
76 int w32font_text_extents P_ ((struct font *font, unsigned *code, int nglyphs, | |
77 struct font_metrics *metrics)); | |
78 int w32font_draw P_ ((struct glyph_string *s, int from, int to, | |
79 int x, int y, int with_background)); | |
80 | |
93594
46b8fe649bbc
(uniscribe_check_otf): Declare.
Jason Rumney <jasonr@gnu.org>
parents:
92408
diff
changeset
|
81 |
46b8fe649bbc
(uniscribe_check_otf): Declare.
Jason Rumney <jasonr@gnu.org>
parents:
92408
diff
changeset
|
82 int uniscribe_check_otf P_ ((LOGFONT *font, Lisp_Object otf_spec)); |
46b8fe649bbc
(uniscribe_check_otf): Declare.
Jason Rumney <jasonr@gnu.org>
parents:
92408
diff
changeset
|
83 |
100409
4be3711ceff9
* w32font.c (intern_font_name): New function.
Jason Rumney <jasonr@gnu.org>
parents:
97135
diff
changeset
|
84 Lisp_Object intern_font_name P_ ((char *)); |
4be3711ceff9
* w32font.c (intern_font_name): New function.
Jason Rumney <jasonr@gnu.org>
parents:
97135
diff
changeset
|
85 |
91206 | 86 #endif |
91213 | 87 |
88 /* arch-tag: ef9d9675-a2a5-4d01-9526-815e9a3da7cb | |
89 (do not change this comment) */ |