summaryrefslogtreecommitdiff
path: root/src/w32font.h
diff options
context:
space:
mode:
authorJason Rumney <jasonr@gnu.org>2007-12-08 01:47:40 +0000
committerJason Rumney <jasonr@gnu.org>2007-12-08 01:47:40 +0000
commit713849f63b782e52c558dd85add4f54c538a72c1 (patch)
tree68a61b4b72e81cbf8719a1534c9b22ddbe1ab2eb /src/w32font.h
parentfb220ed56a90caccafcf5c61faf51d033aca3e3f (diff)
downloademacs-713849f63b782e52c558dd85add4f54c538a72c1.tar.gz
New file.
Diffstat (limited to 'src/w32font.h')
-rw-r--r--src/w32font.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/w32font.h b/src/w32font.h
new file mode 100644
index 00000000000..1faa34dcb7a
--- /dev/null
+++ b/src/w32font.h
@@ -0,0 +1,55 @@
+/* Shared GDI and Uniscribe Font backend declarations for the W32 API.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+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., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+#ifndef EMACS_W32FONT_H
+#define EMACS_W32FONT_H
+
+
+/* Bit 17 of ntmFlags in NEWTEXTMETRIC is set for Postscript OpenType fonts,
+ bit 18 for Truetype OpenType fonts. */
+#define NTMFLAGS_OPENTYPE 0x60000
+
+/* The actual structure for a w32 font, that can be cast to struct font.
+ The Uniscribe backend extends this. */
+struct w32font_info
+{
+ struct font font;
+ TEXTMETRIC metrics;
+ struct frame *owning_frame;
+};
+
+Lisp_Object w32font_get_cache P_ ((Lisp_Object frame));
+Lisp_Object w32font_list_internal P_ ((Lisp_Object frame,
+ Lisp_Object font_spec,
+ int opentype_only));
+Lisp_Object w32font_match_internal P_ ((Lisp_Object frame,
+ Lisp_Object font_spec,
+ int opentype_only));
+struct font * w32font_open P_ ((FRAME_PTR f, Lisp_Object font_entity,
+ int pixel_size));
+void w32font_close P_ ((FRAME_PTR f, struct font *font));
+int w32font_has_char P_ ((Lisp_Object entity, int c));
+unsigned w32font_encode_char P_ ((struct font *font, int c));
+int w32font_text_extents P_ ((struct font *font, unsigned *code, int nglyphs,
+ struct font_metrics *metrics));
+int w32font_draw P_ ((struct glyph_string *s, int from, int to,
+ int x, int y, int with_background));
+
+#endif