/* 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.
+ Copyright (C) 1995, 2001-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#define EMACS_W32GUI_H
#include <windows.h>
-#include "w32bdf.h"
+#include "systime.h" /* for Time */
-/* Emulate XCharStruct. */
-typedef struct _XCharStruct
-{
- short rbearing;
- short lbearing;
- short width;
- short ascent;
- short descent;
-} XCharStruct;
-
-/* Emulate widget_value from ../lwlib/lwlib.h, modified for Windows. */
-typedef void * XtPointer;
-typedef char Boolean;
-enum button_type
-{
- BUTTON_TYPE_NONE,
- BUTTON_TYPE_TOGGLE,
- BUTTON_TYPE_RADIO
-};
-typedef struct _widget_value
-{
- /* name of widget */
- Lisp_Object lname;
- char* name;
- /* value (meaning depend on widget type) */
- char* value;
- /* keyboard equivalent. no implications for XtTranslations */
- Lisp_Object lkey;
- char* key;
- /* Help string or nil if none.
- GC finds this string through the frame's menu_bar_vector
- or through menu_items. */
- Lisp_Object help;
- /* true if enabled */
- Boolean enabled;
- /* true if selected */
- Boolean selected;
- /* The type of a button. */
- enum button_type button_type;
- /* true if menu title */
- Boolean title;
-#if 0
- /* true if was edited (maintained by get_value) */
- Boolean edited;
- /* true if has changed (maintained by lw library) */
- change_type change;
- /* true if this widget itself has changed,
- but not counting the other widgets found in the `next' field. */
- change_type this_one_change;
-#endif
- /* Contents of the sub-widgets, also selected slot for checkbox */
- struct _widget_value* contents;
- /* data passed to callback */
- XtPointer call_data;
- /* next one in the list */
- struct _widget_value* next;
-#if 0
- /* slot for the toolkit dependent part. Always initialize to NULL. */
- void* toolkit_data;
- /* tell us if we should free the toolkit data slot when freeing the
- widget_value itself. */
- Boolean free_toolkit_data;
-
- /* we resource the widget_value structures; this points to the next
- one on the free list if this one has been deallocated.
- */
- struct _widget_value *free_list;
-#endif
-} widget_value;
/* Local memory management for menus. */
#define local_heap (GetProcessHeap ())
#define local_alloc(n) (HeapAlloc (local_heap, HEAP_ZERO_MEMORY, (n)))
#define malloc_widget_value() ((widget_value *) local_alloc (sizeof (widget_value)))
#define free_widget_value(wv) (local_free ((wv)))
-
-enum w32_char_font_type
-{
- UNKNOWN_FONT = 0 /* FONT_TYPE_UNKNOWN */,
- ANSI_FONT,
- UNICODE_FONT,
- BDF_1D_FONT,
- BDF_2D_FONT
-};
-
-typedef struct W32FontStruct {
- enum w32_char_font_type font_type;
- TEXTMETRIC tm;
- HFONT hfont;
- bdffont *bdf;
- int double_byte_p;
- XCharStruct max_bounds;
- XCharStruct scratch;
- /* Only store info for ascii chars, if not fixed pitch. */
- XCharStruct * per_char;
-} W32FontStruct;
-
-typedef struct W32FontStruct XFontStruct;
-
/* Emulate X GC's by keeping color and font info in a structure. */
typedef struct _XGCValues
{
COLORREF foreground;
COLORREF background;
-#if OLD_FONT
- XFontStruct * font;
-#endif
struct font *font;
} XGCValues;
typedef XGCValues * GC;
typedef COLORREF Color;
-typedef DWORD Time;
typedef HWND Window;
typedef HDC Display; /* HDC so it doesn't conflict with xpm lib. */
typedef HCURSOR Cursor;
/* Dealing with bits of wchar_t as if they were an XChar2b. */
#define STORE_XCHAR2B(chp, byte1, byte2) \
- ((*chp) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff))))
+ ((*(chp)) = ((XChar2b)((((byte1) & 0x00ff) << 8) | ((byte2) & 0x00ff))))
#define XCHAR2B_BYTE1(chp) \
- (((*chp) & 0xff00) >> 8)
+ (((*(chp)) & 0xff00) >> 8)
#define XCHAR2B_BYTE2(chp) \
- ((*chp) & 0x00ff)
+ ((*(chp)) & 0x00ff)
/* Windows equivalent of XImage. */
#define PBaseSize (1L << 8) /* program specified base for incrementing */
#define PWinGravity (1L << 9) /* program specified window gravity */
-extern int XParseGeometry ();
+extern int XParseGeometry (char *, int *, int *, unsigned *, unsigned *);
typedef struct {
#endif /* EMACS_W32GUI_H */
-
-/* arch-tag: 9172e5fb-45a5-4684-afd9-ca0e81324604
- (do not change this comment) */