/* 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.
+ 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#define EMACS_W32GUI_H
#include <windows.h>
-#include "w32bdf.h"
-
-/* 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;