summaryrefslogtreecommitdiff
path: root/src/w32gui.h
diff options
context:
space:
mode:
authorAdrian Robert <Adrian.B.Robert@gmail.com>2008-07-15 18:15:18 +0000
committerAdrian Robert <Adrian.B.Robert@gmail.com>2008-07-15 18:15:18 +0000
commitedfda78355c5528eee489fa8a7f9c73bf8e734f2 (patch)
tree78d2414d9791e1efc17ec9b35b438ae35602340a /src/w32gui.h
parent1391cd548782097e34d7856ec4f20ca90bdf2c26 (diff)
downloademacs-edfda78355c5528eee489fa8a7f9c73bf8e734f2.tar.gz
merging Emacs.app (NeXTstep port)
Diffstat (limited to 'src/w32gui.h')
-rw-r--r--src/w32gui.h93
1 files changed, 35 insertions, 58 deletions
diff --git a/src/w32gui.h b/src/w32gui.h
index aea3582b3ef..d9f09e33134 100644
--- a/src/w32gui.h
+++ b/src/w32gui.h
@@ -21,66 +21,19 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define EMACS_W32GUI_H
#include <windows.h>
+#include "w32bdf.h"
-/* Emulate widget_value from ../lwlib/lwlib.h, modified for Windows. */
-typedef void * XtPointer;
-typedef char Boolean;
-enum button_type
+/* Emulate XCharStruct. */
+typedef struct _XCharStruct
{
- 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;
+ short rbearing;
+ short lbearing;
+ short width;
+ short ascent;
+ short descent;
+} XCharStruct;
+
+
/* Local memory management for menus. */
#define local_heap (GetProcessHeap ())
#define local_alloc(n) (HeapAlloc (local_heap, HEAP_ZERO_MEMORY, (n)))
@@ -89,6 +42,30 @@ typedef struct _widget_value
#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
{