X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/51fb064bc72968e739e8dea580e58796c1a87f4c..9250c1e82544edcc8bf62ec9a5149e575fa3c73f:/src/w32term.h diff --git a/src/w32term.h b/src/w32term.h index d6b20bce91..8181d610cd 100644 --- a/src/w32term.h +++ b/src/w32term.h @@ -1,13 +1,13 @@ /* Definitions and headers for communication on the Microsoft W32 API. Copyright (C) 1995, 2001, 2002, 2003, 2004, - 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GNU Emacs. -GNU Emacs is free software; you can redistribute it and/or modify +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 3, or (at your option) -any later version. +the Free Software Foundation, either version 3 of the License, 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 @@ -15,9 +15,7 @@ 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. */ +along with GNU Emacs. If not, see . */ /* Added by Kevin Gallo */ @@ -27,22 +25,12 @@ Boston, MA 02110-1301, USA. */ #define BLACK_PIX_DEFAULT(f) PALETTERGB(0,0,0) #define WHITE_PIX_DEFAULT(f) PALETTERGB(255,255,255) -#define FONT_WIDTH(f) \ - ((f)->bdf ? (f)->bdf->width : (f)->tm.tmMaxCharWidth) -#define FONT_HEIGHT(f) \ - ((f)->bdf ? (f)->bdf->height : (f)->tm.tmHeight) -#define FONT_BASE(f) \ - ((f)->bdf ? (f)->bdf->ury : (f)->tm.tmAscent) -#define FONT_DESCENT(f) \ - ((f)->bdf ? -((f)->bdf->lly) : (f)->tm.tmDescent) -#define FONT_AVG_WIDTH(f) \ - ((f)->bdf ? (f)->bdf->width : (f)->tm.tmAveCharWidth) +#define FONT_WIDTH(f) ((f)->max_width) +#define FONT_HEIGHT(f) ((f)->height) +#define FONT_BASE(f) ((f)->ascent) +#define FONT_DESCENT(f) ((f)->descent) #define CP_DEFAULT 1004 -/* Special pseudo-codepages. */ -#define CP_8BIT -1 -#define CP_UNICODE -2 -#define CP_UNKNOWN -3 #define CHECK_W32_FRAME(f, frame) \ if (NILP (frame)) \ @@ -119,10 +107,6 @@ struct w32_display_info /* Number of bits per pixel on this screen. */ int n_cbits; - /* Dimensions of this screen. */ - int height, width; - int height_in,width_in; - /* Mask of things that cause the mouse to be grabbed. */ int grabbed; @@ -152,12 +136,6 @@ struct w32_display_info received; value is reset after key is received. */ int faked_key; - /* A table of all the fonts we have already loaded. */ - struct font_info *font_table; - - /* The current capacity of font_table. */ - int font_table_size; - /* Minimum width over all characters in all fonts in font_table. */ int smallest_char_width; @@ -255,13 +233,10 @@ Lisp_Object display_x_get_resource P_ ((struct w32_display_info *, Lisp_Object, Lisp_Object)); extern struct w32_display_info *w32_term_init (); - -extern Lisp_Object w32_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); -extern struct font_info *w32_get_font_info (), *w32_query_font (); -extern void w32_cache_char_metrics (XFontStruct *font); -extern void w32_find_ccl_program(); -extern Lisp_Object x_get_font_repertory P_ ((struct frame *, - struct font_info *)); + +extern int x_display_pixel_height P_ ((struct w32_display_info *)); +extern int x_display_pixel_width P_ ((struct w32_display_info *)); + #define PIX_TYPE COLORREF @@ -324,11 +299,7 @@ struct w32_output Window parent_desc; /* Default ASCII font of this frame. */ - XFontStruct *font; - -#ifdef USE_FONT_BACKEND - struct font *fontp; -#endif /* USE_FONT_BACKEND */ + struct font *font; /* The baseline offset of the default ASCII font. */ int baseline_offset; @@ -361,13 +332,12 @@ struct w32_output Cursor hourglass_cursor; Cursor horizontal_drag_cursor; - /* Window whose cursor is hourglass_cursor. This window is - temporarily mapped to display an hourglass cursor. */ - Window hourglass_window; - /* Non-zero means hourglass cursor is currently displayed. */ unsigned hourglass_p : 1; + /* Non-hourglass cursor that is currently active. */ + Cursor current_cursor; + /* Flag to set when the window needs to be completely repainted. */ int needs_exposure; @@ -417,10 +387,6 @@ extern struct w32_output w32term_display; #define FRAME_FONTSET(f) ((f)->output_data.w32->fontset) #define FRAME_BASELINE_OFFSET(f) ((f)->output_data.w32->baseline_offset) -#ifdef USE_FONT_BACKEND -#define FRAME_FONT_OBJECT(f) ((f)->output_data.w32->fontp) -#endif /* USE_FONT_BACKEND */ - /* This gives the w32_display_info structure for the display F is on. */ #define FRAME_W32_DISPLAY_INFO(f) (&one_w32_display_info) #define FRAME_X_DISPLAY_INFO(f) (&one_w32_display_info) @@ -428,9 +394,6 @@ extern struct w32_output w32term_display; /* This is the `Display *' which frame F is on. */ #define FRAME_X_DISPLAY(f) (0) -/* This is the 'font_info *' which frame F has. */ -#define FRAME_W32_FONT_TABLE(f) (FRAME_W32_DISPLAY_INFO (f)->font_table) - /* Value is the smallest width of any character in any font on frame F. */ #define FRAME_SMALLEST_CHAR_WIDTH(F) \ @@ -600,9 +563,6 @@ do { \ #define w32_clear_area(f,hdc,px,py,nx,ny) \ w32_fill_area (f, hdc, FRAME_BACKGROUND_PIXEL (f), px, py, nx, ny) -extern struct font_info *w32_load_font (); -extern void w32_unload_font (); - /* Define for earlier versions of Visual C */ #ifndef WM_MOUSEWHEEL #define WM_MOUSEWHEEL (WM_MOUSELAST + 1) @@ -649,7 +609,8 @@ extern void w32_unload_font (); #define WM_EMACS_SHOW_CARET (WM_EMACS_START + 17) #define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18) #define WM_EMACS_SETCURSOR (WM_EMACS_START + 19) -#define WM_EMACS_END (WM_EMACS_START + 20) +#define WM_EMACS_PAINT (WM_EMACS_START + 20) +#define WM_EMACS_END (WM_EMACS_START + 21) #define WND_FONTWIDTH_INDEX (0) #define WND_LINEHEIGHT_INDEX (4) @@ -764,15 +725,6 @@ struct frame * check_x_frame (Lisp_Object); EXFUN (Fx_display_color_p, 1); EXFUN (Fx_display_grayscale_p, 1); -#define FONT_TYPE_FOR_UNIBYTE(font, ch) \ - ((font)->bdf ? BDF_1D_FONT : ANSI_FONT) - -#define FONT_TYPE_FOR_MULTIBYTE(font, ch) \ - (!(font)->bdf \ - ? UNICODE_FONT \ - : ((CHARSET_DIMENSION (CHAR_CHARSET ((ch))) == 1) \ - ? BDF_1D_FONT : BDF_2D_FONT)) - typedef DWORD (WINAPI * ClipboardSequence_Proc) (); typedef BOOL (WINAPI * AppendMenuW_Proc) ( IN HMENU,