#include "w32gui.h"
-/* The class of this X application. */
-#define EMACS_CLASS "Emacs"
\f
#define BLACK_PIX_DEFAULT(f) PALETTERGB(0,0,0)
#define WHITE_PIX_DEFAULT(f) PALETTERGB(255,255,255)
/* Structure recording bitmaps and reference count.
If REFCOUNT is 0 then this record is free to be reused. */
-struct w32_bitmap_record
+struct w32_bitmap_record
{
Pixmap pixmap;
char *file;
/* The cursor to use for vertical scroll bars. */
Cursor vertical_scroll_bar_cursor;
+ /* Resource data base */
+ XrmDatabase xrdb;
+
/* color palette information. */
int has_palette;
struct w32_palette_entry * color_list;
/* Foreground color for scroll bars. A value of -1 means use the
default (black for non-toolkit scroll bars). */
COLORREF scroll_bar_foreground_pixel;
-
+
/* Background color for scroll bars. A value of -1 means use the
default (background color of the frame for non-toolkit scroll
bars). */
Cursor text_cursor;
Cursor nontext_cursor;
Cursor modeline_cursor;
- Cursor cross_cursor;
+ Cursor hand_cursor;
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;
extern struct w32_output w32term_display;
-enum
-{
- /* Values used as a bit mask, BOTH == WIDTH | HEIGHT. */
- FULLSCREEN_NONE = 0,
- FULLSCREEN_WIDTH = 1,
- FULLSCREEN_HEIGHT = 2,
- FULLSCREEN_BOTH = 3,
- FULLSCREEN_WAIT = 4,
- FULLSCREEN_MOVE_WAIT = 8,
-};
+/* Return the X output data for frame F. */
+#define FRAME_X_OUTPUT(f) ((f)->output_data.w32)
/* Return the window associated with the frame F. */
#define FRAME_W32_WINDOW(f) ((f)->output_data.w32->window_desc)
+#define FRAME_X_WINDOW(f) ((f)->output_data.w32->window_desc)
#define FRAME_FOREGROUND_PIXEL(f) ((f)->output_data.x->foreground_pixel)
#define FRAME_BACKGROUND_PIXEL(f) ((f)->output_data.x->background_pixel)
#define FRAME_W32_DISPLAY_INFO(f) (&one_w32_display_info)
#define FRAME_X_DISPLAY_INFO(f) (&one_w32_display_info)
+/* 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)
/* Return the length of the rectangle within which the top of the
handle must stay. This isn't equivalent to the inside height,
- because the scroll bar handle has a minimum height.
+ because the scroll bar handle has a minimum height.
This is the real range of motion for the scroll bar, so when we're
scaling buffer positions to scroll bar positions, we use this, not
+ (f)->output_data.w32->internal_border_width)
-/* Return the row/column (zero-based) of the character cell containing
+/* Return the row/column (zero-based) of the character cell containing
the pixel on FRAME at ROW/COL. */
#define PIXEL_TO_CHAR_ROW(f, row) \
(((row) - (f)->output_data.w32->internal_border_width) \
extern struct font_info *w32_load_font ();
extern void w32_unload_font ();
-extern void x_fullscreen_adjust P_ ((struct frame *f, int *, int *,
- int *, int *));
-
/* Define for earlier versions of Visual C */
#ifndef WM_MOUSEWHEEL
#define WM_MOUSEWHEEL (WM_MOUSELAST + 1)
#define WM_EMACS_DESTROY_CARET (WM_EMACS_START + 16)
#define WM_EMACS_SHOW_CARET (WM_EMACS_START + 17)
#define WM_EMACS_HIDE_CARET (WM_EMACS_START + 18)
-#define WM_EMACS_END (WM_EMACS_START + 19)
-
-#define WND_FONTWIDTH_INDEX (0)
-#define WND_LINEHEIGHT_INDEX (4)
-#define WND_BORDER_INDEX (8)
-#define WND_SCROLLBAR_INDEX (12)
-#define WND_BACKGROUND_INDEX (16)
+#define WM_EMACS_SETCURSOR (WM_EMACS_START + 19)
+#define WM_EMACS_END (WM_EMACS_START + 20)
+
+#define WND_FONTWIDTH_INDEX (0)
+#define WND_LINEHEIGHT_INDEX (4)
+#define WND_BORDER_INDEX (8)
+#define WND_SCROLLBAR_INDEX (12)
+#define WND_BACKGROUND_INDEX (16)
#define WND_LAST_INDEX (20)
#define WND_EXTRA_BYTES (WND_LAST_INDEX)
#define WM_MOUSELEAVE 0x02A3
#define TME_LEAVE 0x00000002;
-typedef struct tagTRACKMOUSEEVENT
+typedef struct tagTRACKMOUSEEVENT
{
DWORD cbSize;
DWORD dwFlags;
EXFUN (Fx_display_color_p, 1);
EXFUN (Fx_display_grayscale_p, 1);
int image_ascent P_ ((struct image *, struct face *));
+
+#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))