Mercurial > emacs
annotate src/w32font.h @ 104155:87373993f3bd
* progmodes/gdb-mi.el (gdb-frame-number): Initialize with nil.
(gdb-overlay-arrow-position): Renamed to
`gdb-disassembly-position'.
(gdb-overlay-arrow-position, gdb-thread-position)
(gdb-disassembly-position): Declare variables.
(gdb-wait-for-pending): Function now.
(gdb-add-subscriber, gdb-delete-subscriber, gdb-get-subscribers)
(gdb-emit-signal, gdb-buf-publisher): Declare before first use so
compilation goes smoothly.
(gdb, gdb-non-stop, gdb-buffers): New customization groups.
(gdb-non-stop-setting): New customization setting which replaces
`gdb-non-stop' so changing it doesn't break active GDB session.
(gdb-stack-buffer-locations, gdb-stack-buffer-addresses)
(gdb-thread-buffer-verbose-names, gdb-thread-buffer-arguments)
(gdb-thread-buffer-locations, gdb-thread-buffer-addresses)
(gdb-show-threads-by-default): New customization options.
(gdb-buffer-type, gdb-buffer-shows-main-thread-p): New helper
routines.
(gdb-get-buffer-create): Send buffers update signal when they are
created.
(gdb-invalidate-locals, gdb-invalidate-registers)
(gdb-invalidate-breakpoints)
(gdb-invalidate-threads, gdb-invalidate-disassembly)
(gdb-invalidate-memory): Accept update signal.
(gdb-current-context-command): Use --frame option.
(gdb-update-gud-running, gdb-running, gdb-setq-thread-number):
Implement `gdb-frame-number' selection logic.
(gdb-show-run-p, gdb-show-stop-p): Helper functions which decide
whether to show GUD toolbar buttons.
(gdb-thread-exited): Unselect current thread when it exits.
(gdb-stopped): Typo fixed (now really runs `gdb-stopped-hooks').
(gdb-mark-line): Routine which sets overlay arrow or inverses
video on fringeless displays.
(gdb-table, gdb-table-add-row, gdb-table-string): Structure used
to build aligned columns of data in GDB buffers and set text
properties line-by-line.
(gdb-invalidate-breakpoints)
(gdb-breakpoints-list-handler-custom)
(gdb-thread-list-handler-custom, gdb-disassembly-handler-custom)
(gdb-stack-list-frames-custom, gdb-locals-handler-custom)
(gdb-registers-handler-custom): Align data columns.
(gdb-locals-handler-custom): Now prints data like in variable
declarations.
(gdb-jump-to, gdb-file-button, gdb-insert-file-location-button):
Removed confusing buttons.
(gdb-invalidate-threads): Append --frame.
(gdb-threads-mode-map, gdb-breakpoints-mode-map): TAB to switch
between breakpoints/threads buffers.
(gdb-set-window-buffer): Now can ignore dedicated windows.
(gdb-propertize-header): Use `gdb-set-window-buffer'.
(def-gdb-thread-buffer-simple-command): Numerous typos fixed.
(def-gdb-thread-buffer-gud-command): Replaces
`def-gdb-thread-buffer-gdb-command' and uses standard GUD commands
for fine thread control.
(gdb-preempt-existing-or-display-buffer): New function used to
display bound buffers without breaking window layout.
(gdb-frame-location): Replaces `gdb-insert-frame-location'.
(gdb-select-frame): New version of `gdb-frames-select' which now
sets `gdb-frame-number' so commands may use --frame option instead
of inner debugger state.
(gdb-frame-handler): Do not set `gdb-frame-number'.
(gdb-threads-mode-map): Select threads with mouse.
(I forgot to include sources in previous commit)
author | Dmitry Dzhus <dima@sphinx.net.ru> |
---|---|
date | Tue, 04 Aug 2009 17:16:58 +0000 |
parents | e038c1a8307c |
children | 1d1d5d9bd884 |
rev | line source |
---|---|
91206 | 1 /* Shared GDI and Uniscribe Font backend declarations for the W32 API. |
100951 | 2 Copyright (C) 2007, 2008, 2009 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) */ |