diff dw.h @ 3:67a643a734d9

Import
author ktk@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 03 Jul 2001 07:50:39 +0000
parents
children 005fa766e8c2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dw.h	Tue Jul 03 07:50:39 2001 +0000
@@ -0,0 +1,693 @@
+/* $Id$ */
+
+#ifndef _H_DW
+#define _H_DW
+
+#if defined(__OS2__) || defined(__WIN32__) || defined(WINNT) || defined(__EMX__)
+/* OS/2 or Windows */
+
+/* Used internally */
+#define TYPEBOX  0
+#define TYPEITEM 1
+
+#define SIZESTATIC 0
+#define SIZEEXPAND 1
+
+#define SPLITBAR_WIDTH 3
+#define BUBBLE_HELP_MAX 256
+
+#if defined(__OS2__) || defined(__EMX__)
+#define INCL_DOS
+#define INCL_WIN
+#define INCL_GPI
+
+#include <os2.h>
+
+/* Lets make some platform independent defines :) */
+#define DW_DT_LEFT               DT_LEFT
+#define DW_DT_QUERYEXTENT        DT_QUERYEXTENT
+#define DW_DT_UNDERSCORE         DT_UNDERSCORE
+#define DW_DT_STRIKEOUT          DT_STRIKEOUT
+#define DW_DT_TEXTATTRS          DT_TEXTATTRS
+#define DW_DT_EXTERNALLEADING    DT_EXTERNALLEADING
+#define DW_DT_CENTER             DT_CENTER
+#define DW_DT_RIGHT              DT_RIGHT
+#define DW_DT_TOP                DT_TOP
+#define DW_DT_VCENTER            DT_VCENTER
+#define DW_DT_BOTTOM             DT_BOTTOM
+#define DW_DT_HALFTONE           DT_HALFTONE
+#define DW_DT_MNEMONIC           DT_MNEMONIC
+#define DW_DT_WORDBREAK          DT_WORDBREAK
+#define DW_DT_ERASERECT          DT_ERASERECT
+
+#define DW_CLR_WHITE             16
+#define DW_CLR_BLACK             17
+#define DW_CLR_BLUE              CLR_BLUE
+#define DW_CLR_RED               CLR_RED
+#define DW_CLR_PINK              CLR_PINK
+#define DW_CLR_GREEN             CLR_GREEN
+#define DW_CLR_CYAN              CLR_CYAN
+#define DW_CLR_YELLOW            CLR_YELLOW
+#define DW_CLR_DARKGRAY          CLR_DARKGRAY
+#define DW_CLR_DARKBLUE          CLR_DARKBLUE
+#define DW_CLR_DARKRED           CLR_DARKRED
+#define DW_CLR_DARKPINK          CLR_DARKPINK
+#define DW_CLR_DARKGREEN         CLR_DARKGREEN
+#define DW_CLR_DARKCYAN          CLR_DARKCYAN
+#define DW_CLR_BROWN             CLR_BROWN
+#define DW_CLR_PALEGRAY          CLR_PALEGRAY
+
+#define DW_FCF_TITLEBAR          FCF_TITLEBAR
+#define DW_FCF_SYSMENU           FCF_SYSMENU
+#define DW_FCF_MENU              FCF_MENU
+#define DW_FCF_SIZEBORDER        FCF_SIZEBORDER
+#define DW_FCF_MINBUTTON         FCF_MINBUTTON
+#define DW_FCF_MAXBUTTON         FCF_MAXBUTTON
+#define DW_FCF_MINMAX            FCF_MINMAX
+#define DW_FCF_VERTSCROLL        FCF_VERTSCROLL
+#define DW_FCF_HORZSCROLL        FCF_HORZSCROLL
+#define DW_FCF_DLGBORDER         FCF_DLGBORDER
+#define DW_FCF_BORDER            FCF_BORDER
+#define DW_FCF_SHELLPOSITION     FCF_SHELLPOSITION
+#define DW_FCF_TASKLIST          FCF_TASKLIST
+#define DW_FCF_NOBYTEALIGN       FCF_NOBYTEALIGN
+#define DW_FCF_NOMOVEWITHOWNER   FCF_NOMOVEWITHOWNER
+#define DW_FCF_SYSMODAL          FCF_SYSMODAL
+#define DW_FCF_HIDEBUTTON        FCF_HIDEBUTTON
+#define DW_FCF_HIDEMAX           FCF_HIDEMAX
+#define DW_FCF_AUTOICON          FCF_AUTOICON
+
+#define DW_CFA_BITMAPORICON      CFA_BITMAPORICON
+#define DW_CFA_STRING            CFA_STRING
+#define DW_CFA_ULONG             CFA_ULONG
+#define DW_CFA_TIME              CFA_TIME
+#define DW_CFA_DATE              CFA_DATE
+#define DW_CFA_CENTER            CFA_CENTER
+#define DW_CFA_LEFT              CFA_LEFT
+#define DW_CFA_RIGHT             CFA_RIGHT
+#define DW_CFA_HORZSEPARATOR     CFA_HORZSEPARATOR
+#define DW_CFA_SEPARATOR         CFA_SEPARATOR
+
+#define DW_CA_DETAILSVIEWTITLES  CA_DETAILSVIEWTITLES
+#define DW_CV_MINI               CV_MINI
+#define DW_CV_DETAIL             CV_DETAIL
+
+#define DW_SLS_READONLY          SLS_READONLY
+#define DW_SLS_RIBBONSTRIP       SLS_RIBBONSTRIP
+
+#define DW_CCS_SINGLESEL         CCS_SINGLESEL
+#define DW_CCS_EXTENDSEL         CCS_EXTENDSEL
+
+#define DW_LS_MULTIPLESEL        LS_MULTIPLESEL
+
+#define DW_LIT_NONE              -1
+
+#define DW_MLE_CASESENSITIVE     MLFSEARCH_CASESENSITIVE
+
+typedef struct _hpixmap {
+	unsigned long width, height;
+	HDC hdc;
+	HPS hps;
+	HBITMAP hbm;
+	HWND handle;
+} *HPIXMAP;
+
+typedef struct _hmenui {
+	HWND menu;
+} *HMENUI;
+
+extern HAB dwhab;
+extern HMQ dwhmq;
+#endif
+
+#if defined(__WIN32__) || defined(WINNT)
+#include <windows.h>
+#include <commctrl.h>
+
+/* Cygwin doesn't seem to have these... */
+#if defined(__CYGWIN32__)
+#define LVS_EX_GRIDLINES        0x00000001
+#define LVS_EX_FULLROWSELECT    0x00000020
+#define LVM_SETEXTENDEDLISTVIEWSTYLE (0x1000 + 54)
+#define ListView_SetExtendedListViewStyle(hwndLV, dw) (DWORD)SendMessage((hwndLV), LVM_SETEXTENDEDLISTVIEWSTYLE, 0, dw)
+#endif
+#ifndef UDM_SETPOS32
+#define UDM_SETPOS32            (WM_USER+113)
+#endif
+#ifndef UDM_GETPOS32
+#define UDM_GETPOS32            (WM_USER+114)
+#endif
+
+/* Lets make some platform independent defines :) */
+#define DW_DT_LEFT               SS_LEFT
+#define DW_DT_QUERYEXTENT        0
+#define DW_DT_UNDERSCORE         0
+#define DW_DT_STRIKEOUT          0
+#define DW_DT_TEXTATTRS          0
+#define DW_DT_EXTERNALLEADING    0
+#define DW_DT_CENTER             SS_CENTER
+#define DW_DT_RIGHT              SS_RIGHT
+#define DW_DT_TOP                0
+#define DW_DT_VCENTER            0
+#define DW_DT_BOTTOM             0
+#define DW_DT_HALFTONE           0
+#define DW_DT_MNEMONIC           0
+#define DW_DT_WORDBREAK          0
+#define DW_DT_ERASERECT          0
+
+/* These corespond to the entries in the color
+ * arrays in the Win32 dw.c, they are also the
+ * same as DOS ANSI colors.
+ */
+#define DW_CLR_BLACK             0
+#define DW_CLR_DARKRED           1
+#define DW_CLR_DARKGREEN         2
+#define DW_CLR_BROWN             3
+#define DW_CLR_DARKBLUE          4
+#define DW_CLR_DARKPINK          5
+#define DW_CLR_DARKCYAN          6
+#define DW_CLR_PALEGRAY          7
+#define DW_CLR_DARKGRAY          8
+#define DW_CLR_RED               9
+#define DW_CLR_GREEN             10
+#define DW_CLR_YELLOW            11
+#define DW_CLR_BLUE              12
+#define DW_CLR_PINK              13
+#define DW_CLR_CYAN              14
+#define DW_CLR_WHITE             15
+
+#define DW_FCF_TITLEBAR          WS_CAPTION
+#define DW_FCF_SYSMENU           WS_SYSMENU
+#define DW_FCF_MENU              0
+#define DW_FCF_SIZEBORDER        WS_THICKFRAME
+#define DW_FCF_MINBUTTON         WS_MINIMIZEBOX
+#define DW_FCF_MAXBUTTON         WS_MAXIMIZEBOX
+#define DW_FCF_MINMAX            (WS_MINIMIZEBOX|WS_MAXIMIZEBOX)
+#define DW_FCF_VERTSCROLL        WS_VSCROLL
+#define DW_FCF_HORZSCROLL        WS_HSCROLL
+#define DW_FCF_DLGBORDER         WS_DLGFRAME
+#define DW_FCF_BORDER            WS_BORDER
+#define DW_FCF_SHELLPOSITION     0
+#define DW_FCF_TASKLIST          WS_VSCROLL
+#define DW_FCF_NOBYTEALIGN       0
+#define DW_FCF_NOMOVEWITHOWNER   0
+#define DW_FCF_SYSMODAL          0
+#define DW_FCF_HIDEBUTTON        WS_MINIMIZEBOX
+#define DW_FCF_HIDEMAX           0
+#define DW_FCF_AUTOICON          0
+
+#define DW_CFA_BITMAPORICON      1
+#define DW_CFA_STRING            1 << 2
+#define DW_CFA_ULONG             1 << 3
+#define DW_CFA_TIME              1 << 4
+#define DW_CFA_DATE              1 << 5
+#define DW_CFA_CENTER            1 << 6
+#define DW_CFA_LEFT              1 << 7
+#define DW_CFA_RIGHT             1 << 8
+#define DW_CFA_HORZSEPARATOR     0
+#define DW_CFA_SEPARATOR         0
+
+#define DW_CA_DETAILSVIEWTITLES  0
+#define DW_CV_MINI               0
+#define DW_CV_DETAIL             0
+
+#define DW_SLS_READONLY          0
+#define DW_SLS_RIBBONSTRIP       0
+
+#define DW_CCS_SINGLESEL         0
+#define DW_CCS_EXTENDSEL         0
+
+#define DW_LS_MULTIPLESEL        LBS_MULTIPLESEL
+
+#define DW_LIT_NONE              -1
+
+#define DW_MLE_CASESENSITIVE     1
+
+#define STATICCLASSNAME "STATIC"
+#define COMBOBOXCLASSNAME "COMBOBOX"
+#define LISTBOXCLASSNAME "LISTBOX"
+#define BUTTONCLASSNAME "BUTTON"
+#define POPUPMENUCLASSNAME "POPUPMENU"
+#define EDITCLASSNAME "EDIT"
+#define FRAMECLASSNAME "FRAME"
+
+#define ClassName "dynamicwindows"
+#define SplitbarClassName "dwsplitbar"
+#define ObjectClassName "dwobjectclass"
+#define DefaultFont NULL
+
+typedef struct _color {
+	int fore;
+	int back;
+	HWND buddy;
+	int user;
+	HBRUSH hbrush;
+	char fontname[128];
+	WNDPROC pOldProc;
+} ColorInfo;
+
+typedef struct _notebookpage {
+	ColorInfo cinfo;
+	TC_ITEM item;
+	HWND hwnd;
+	int realid;
+} NotebookPage;
+
+typedef unsigned long HAB;
+typedef HANDLE HMTX;
+typedef HANDLE HEV;
+
+typedef struct _container {
+	ColorInfo cinfo;
+	ULONG *flags;
+	WNDPROC pOldProc;
+} ContainerInfo;
+
+typedef struct _hpixmap {
+	unsigned long width, height;
+	HBITMAP hbm;
+	HDC hdc;
+	HWND handle;
+	void *bits;
+} *HPIXMAP;
+
+typedef struct _hmenui {
+	HMENU menu;
+	HWND hwnd;
+} *HMENUI;
+
+#endif
+
+typedef struct _item {
+    /* Item type - Box or Item */
+	int type;
+    /* Handle to Frame or Window */
+	HWND hwnd;
+    /* Width and Height of static size */
+	int width, height, origwidth, origheight;
+    /* Size Type - Static or Expand */
+	int hsize, vsize;
+	/* Padding */
+	int pad;
+	/* Ratio of current item */
+    float xratio, yratio;
+} Item;
+
+typedef struct _box {
+#if defined(__WIN32__) || defined(WINNT)
+	ColorInfo cinfo;
+#elif defined(__OS2__)
+	PFNWP oldproc;
+#endif
+    /* Number of items in the box */
+	int count;
+	/* Box type - horizontal or vertical */
+	int type;
+	/* Padding */
+	int pad, parentpad;
+	/* Groupbox */
+    HWND grouphwnd;
+	/* Used as temporary storage in the calculation stage */
+    int upx, upy, minheight, minwidth;
+	/* Ratio in this box */
+	float xratio, yratio, parentxratio, parentyratio;
+	/* Used for calculating individual item ratios */
+    int width, height;
+    /* Array of item structures */
+	struct _item *items;
+} Box;
+
+typedef struct _bubblebutton {
+#if defined(__WIN32__) || defined(WINNT)
+	ColorInfo cinfo;
+#endif
+	unsigned long id;
+	char bubbletext[BUBBLE_HELP_MAX];
+#if defined(__OS2__) || defined(__EMX__)
+	PFNWP pOldProc;
+#else
+	WNDPROC pOldProc;
+#endif
+} BubbleButton;
+
+void dw_box_pack_start_stub(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
+void dw_box_pack_end_stub(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
+#else
+/* GTK */
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include <gdk/gdkprivate.h>
+#include <pthread.h>
+
+/* Lets make some platform independent defines :) */
+#define DW_DT_LEFT               1
+#define DW_DT_UNDERSCORE         (1 << 1)
+#define DW_DT_STRIKEOUT          (1 << 2)
+#define DW_DT_CENTER             (1 << 3)
+#define DW_DT_RIGHT              (1 << 4)
+#define DW_DT_TOP                (1 << 5)
+#define DW_DT_VCENTER            (1 << 6)
+#define DW_DT_BOTTOM             (1 << 7)
+#define DW_DT_HALFTONE           (1 << 8)
+#define DW_DT_MNEMONIC           (1 << 9)
+#define DW_DT_WORDBREAK          (1 << 10)
+#define DW_DT_ERASERECT          (1 << 11)
+
+#define DW_CLR_BLACK             0
+#define DW_CLR_DARKRED           1
+#define DW_CLR_DARKGREEN         2
+#define DW_CLR_BROWN             3
+#define DW_CLR_DARKBLUE          4
+#define DW_CLR_DARKPINK          5
+#define DW_CLR_DARKCYAN          6
+#define DW_CLR_PALEGRAY          7
+#define DW_CLR_DARKGRAY          8
+#define DW_CLR_RED               9
+#define DW_CLR_GREEN             10
+#define DW_CLR_YELLOW            11
+#define DW_CLR_BLUE              12
+#define DW_CLR_PINK              13
+#define DW_CLR_CYAN              14
+#define DW_CLR_WHITE             15
+
+#define DW_FCF_TITLEBAR          1
+#define DW_FCF_SYSMENU           (1 << 1)
+#define DW_FCF_MENU              (1 << 2)
+#define DW_FCF_SIZEBORDER        (1 << 3)
+#define DW_FCF_MINBUTTON         (1 << 4)
+#define DW_FCF_MAXBUTTON         (1 << 5)
+#define DW_FCF_MINMAX            (1 << 6)
+#define DW_FCF_VERTSCROLL        (1 << 7)
+#define DW_FCF_HORZSCROLL        (1 << 8)
+#define DW_FCF_DLGBORDER         (1 << 9)
+#define DW_FCF_BORDER            (1 << 10)
+#define DW_FCF_SHELLPOSITION     (1 << 11)
+#define DW_FCF_TASKLIST          (1 << 12)
+#define DW_FCF_NOBYTEALIGN       (1 << 13)
+#define DW_FCF_NOMOVEWITHOWNER   (1 << 14)
+#define DW_FCF_SYSMODAL          (1 << 15)
+#define DW_FCF_HIDEBUTTON        (1 << 16)
+#define DW_FCF_HIDEMAX           (1 << 17)
+#define DW_FCF_AUTOICON          (1 << 18)
+
+#define DW_CFA_BITMAPORICON      1
+#define DW_CFA_STRING            (1 << 1)
+#define DW_CFA_ULONG             (1 << 2)
+#define DW_CFA_TIME              (1 << 3)
+#define DW_CFA_DATE              (1 << 4)
+#define DW_CFA_CENTER            (1 << 5)
+#define DW_CFA_LEFT              (1 << 6)
+#define DW_CFA_RIGHT             (1 << 7)
+#define DW_CFA_HORZSEPARATOR     (1 << 8)
+#define DW_CFA_SEPARATOR         (1 << 9)
+
+#define DW_CA_DETAILSVIEWTITLES  1
+#define DW_CV_MINI               (1 << 1)
+#define DW_CV_DETAIL             (1 << 2)
+
+#define DW_SLS_READONLY          1
+#define DW_SLS_RIBBONSTRIP       (1 << 1)
+
+#define DW_CCS_SINGLESEL         1
+#define DW_CCS_EXTENDSEL         (1 << 1)
+
+#define DW_LS_MULTIPLESEL        1
+
+#define DW_LIT_NONE              -1
+
+#define DW_MLE_CASESENSITIVE     1
+
+#define DW_DESKTOP               ((HWND)0)
+#define HWND_DESKTOP             ((HWND)0)
+
+typedef GtkWidget *HWND;
+typedef void *HAB;
+typedef unsigned long ULONG;
+typedef unsigned char UCHAR;
+typedef long LONG;
+typedef unsigned short USHORT;
+typedef short SHORT;
+typedef pthread_mutex_t HMTX;
+typedef struct _dw_unix_event {
+	pthread_mutex_t mutex;
+	pthread_cond_t event;
+	pthread_t thread;
+	int alive;
+    int posted;
+} *HEV;
+typedef pthread_t DWTID;
+
+typedef struct _hpixmap {
+	unsigned long width, height;
+	GdkPixmap *pixmap;
+    HWND handle;
+} *HPIXMAP;
+
+typedef struct _hmenui {
+	GtkWidget *menu;
+} *HMENUI;
+
+typedef struct _resource_struct {
+	long resource_max, *resource_id;
+	char **resource_data;
+} DWResources;
+
+#if !defined(DW_RESOURCES) || defined(BUILD_DLL)
+static DWResources _resources = { 0, 0, 0 };
+#else
+extern DWResources _resources;
+#endif
+
+#endif
+
+#if !defined(__OS2__) && !defined(__EMX__)
+typedef struct _CDATE
+{
+  UCHAR	 day;
+  UCHAR	 month;
+  USHORT year;
+} CDATE;
+typedef CDATE *PCDATE;
+
+typedef struct _CTIME
+{
+  UCHAR hours;
+  UCHAR minutes;
+  UCHAR seconds;
+  UCHAR ucReserved;
+} CTIME;
+typedef CTIME *PCTIME;
+#endif
+
+#if defined(__OS2__) || defined(__WIN32__) || defined(WINNT) || defined(__EMX__)
+typedef unsigned long DWTID;
+#endif
+
+typedef struct _dwenv {
+    /* Operating System Name */
+	char osName[30];
+	/* Versions and builds */
+	short MajorVersion, MinorVersion, MajorBuild, MinorBuild;
+} DWEnv;
+
+
+typedef struct _dwexpose {
+	int x, y;
+	int width, height;
+} DWExpose;
+
+typedef struct _dwdialog {
+	HEV eve;
+	int done;
+	void *data, *result;
+} DWDialog;
+
+#define DW_SIGNAL_FUNC(a) ((void *)a)
+
+#define DW_BUTTON1_MASK 1
+#define DW_BUTTON2_MASK (1 << 1)
+#define DW_BUTTON3_MASK (1 << 2)
+
+#define DW_EXEC_CON 0
+#define DW_EXEC_GUI 1
+
+#define DW_FILE_OPEN 0
+#define DW_FILE_SAVE 1
+
+#define BOXHORZ 0
+#define BOXVERT 1
+
+#define DW_PIXMAP_WIDTH(x) (x ? x->width : 0)
+#define DW_PIXMAP_HEIGHT(x) (x ? x->height : 0)
+
+#define DW_RGB_COLOR (0xFF000000)
+#define DW_RGB_MASK (0x00FFFFFF)
+#define DW_RED_MASK (0x000000FF)
+#define DW_GREEN_MASK (0x0000FF00)
+#define DW_BLUE_MASK (0x00FF0000)
+#define DW_RED_VALUE(a) (a & DW_RED_MASK)
+#define DW_GREEN_VALUE(a) ((a & DW_GREEN_MASK) >> 8)
+#define DW_BLUE_VALUE(a) ((a & DW_BLUE_MASK) >> 16)
+#define DW_RGB(a, b, c) (0xFF000000 | a | b << 8 | c << 16)
+
+#ifdef __OS2__
+#define DW_OS2_RGB(a) ((DW_RED_VALUE(a) << 16) | (DW_GREEN_VALUE(a) << 8) | DW_BLUE_VALUE(a))
+#endif
+
+/* Public function prototypes */
+void dw_box_pack_start(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
+void dw_box_pack_end(HWND box, HWND item, int width, int height, int hsize, int vsize, int pad);
+#if !defined(__OS2__) && !defined(__WIN32__)
+int dw_int_init(DWResources *res, int newthread);
+#define dw_init(a) dw_int_init(&_resources, a)
+#else
+int dw_init(int newthread);
+#endif
+void dw_main(HAB currenthab, void *filterfunc);
+void dw_free(void *ptr);
+int dw_window_show(HWND handle);
+int dw_window_hide(HWND handle);
+int dw_window_destroy(HWND handle);
+int dw_window_set_font(HWND handle, char *fontname);
+int dw_window_set_color(HWND handle, unsigned long fore, unsigned long back);
+HWND dw_window_new(HWND hwndOwner, char *title, unsigned long flStyle);
+HWND dw_box_new(int type, int pad);
+HWND dw_groupbox_new(int type, int pad, char *title);
+HWND dw_bitmap_new(unsigned long id);
+HWND dw_bitmapbutton_new(char *text, unsigned long id);
+HWND dw_container_new(unsigned long id);
+HWND dw_text_new(char *text, unsigned long id);
+HWND dw_mle_new(unsigned long id);
+HWND dw_entryfield_new(char *text, unsigned long id);
+HWND dw_entryfield_password_new(char *text, ULONG id);
+HWND dw_combobox_new(char *text, unsigned long id);
+HWND dw_button_new(char *text, unsigned long id);
+HWND dw_spinbutton_new(char *text, unsigned long id);
+HWND dw_radiobutton_new(char *text, ULONG id);
+HWND dw_slider_new(unsigned long id);
+HWND dw_checkbox_new(char *text, unsigned long id);
+HWND dw_listbox_new(unsigned long id, int multi);
+void dw_listbox_append(HWND handle, char *text);
+void dw_listbox_clear(HWND handle);
+int dw_listbox_count(HWND handle);
+void dw_listbox_set_top(HWND handle, int top);
+void dw_listbox_select(HWND handle, int index, int state);
+void dw_listbox_delete(HWND handle, int index);
+void dw_listbox_query_text(HWND handle, unsigned int index, char *buffer, unsigned int length);
+void dw_listbox_set_text(HWND handle, unsigned int index, char *buffer);
+unsigned int dw_listbox_selected(HWND handle);
+int dw_listbox_selected_multi(HWND handle, int where);
+unsigned int dw_slider_query_range(HWND handle);
+void dw_slider_set_pos(HWND handle, unsigned int position);
+void dw_window_set_pos(HWND handle, unsigned long x, unsigned long y);
+void dw_window_set_usize(HWND handle, unsigned long width, unsigned long height);
+void dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height);
+void dw_window_get_pos_size(HWND handle, unsigned long *x, unsigned long *y, unsigned long *width, unsigned long *height);
+void dw_window_set_style(HWND handle, unsigned long style, unsigned long mask);
+void dw_window_set_icon(HWND handle, unsigned long id);
+void dw_window_set_bitmap(HWND handle, unsigned long id);
+char *dw_window_get_text(HWND handle);
+void dw_window_set_text(HWND handle, char *text);
+int dw_window_set_border(HWND handle, int border);
+void dw_window_disable(HWND handle);
+void dw_window_enable(HWND handle);
+void dw_window_capture(HWND handle);
+void dw_window_release(void);
+void dw_window_reparent(HWND handle, HWND newparent);
+unsigned int dw_mle_import(HWND handle, char *buffer, int startpoint);
+void dw_mle_export(HWND handle, char *buffer, int startpoint, int length);
+void dw_mle_query(HWND handle, unsigned long *bytes, unsigned long *lines);
+void dw_mle_delete(HWND handle, int startpoint, int length);
+void dw_mle_clear(HWND handle);
+void dw_mle_freeze(HWND handle);
+void dw_mle_thaw(HWND handle);
+void dw_mle_set(HWND handle, int point);
+void dw_mle_set_visible(HWND handle, int line);
+int dw_mle_search(HWND handle, char *text, int point, unsigned long flags);
+void dw_spinbutton_set_pos(HWND handle, long position);
+void dw_spinbutton_set_limits(HWND handle, long upper, long lower);
+void dw_entryfield_set_limit(HWND handle, ULONG limit);
+long dw_spinbutton_query(HWND handle);
+int dw_checkbox_query(HWND handle);
+void dw_checkbox_set(HWND handle, int value);
+int dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator);
+unsigned long dw_icon_load(unsigned long module, unsigned long id);
+void dw_icon_free(unsigned long handle);
+void *dw_container_alloc(HWND handle, int rowcount);
+void dw_container_set_item(HWND handle, void *pointer, int column, int row, void *data);
+void dw_container_set_row_title(void *pointer, int row, char *title);
+void dw_container_insert(HWND handle, void *pointer, int rowcount);
+void dw_container_clear(HWND handle);
+void dw_container_set_view(HWND handle, unsigned long flags, int iconwidth, int iconheight);
+char *dw_container_query_start(HWND handle, unsigned long flags);
+char *dw_container_query_next(HWND handle, unsigned long flags);
+int dw_filesystem_setup(HWND handle, unsigned long *flags, char **titles, int count);
+void dw_filesystem_set_item(HWND handle, void *pointer, int column, int row, void *data);
+void dw_filesystem_set_file(HWND handle, void *pointer, int row, char *filename, unsigned long icon);
+int dw_screen_width(void);
+int dw_screen_height(void);
+unsigned long dw_color_depth(void);
+HWND dw_notebook_new(unsigned long id, int top);
+unsigned long dw_notebook_page_new(HWND handle, unsigned long flags, int front);
+void dw_notebook_page_destroy(HWND handle, unsigned int pageid);
+void dw_notebook_page_set_text(HWND handle, unsigned long pageid, char *text);
+void dw_notebook_page_set_status_text(HWND handle, unsigned long pageid, char *text);
+void dw_notebook_page_set(HWND handle, unsigned int pageid);
+unsigned int dw_notebook_page_query(HWND handle);
+void dw_notebook_pack(HWND handle, unsigned long pageid, HWND page);
+void dw_box_pack_splitbar_start(HWND box);
+void dw_box_pack_splitbar_end(HWND box);
+HMENUI dw_menu_new(unsigned long id);
+HMENUI dw_menubar_new(HWND location);
+HWND dw_menu_append_item(HMENUI menu, char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu);
+void dw_menu_item_set_check(HMENUI menu, int id, int check);
+void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y);
+void dw_menu_destroy(HMENUI *menu);
+void dw_pointer_query_pos(long *x, long *y);
+void dw_pointer_set_pos(long x, long y);
+void dw_window_function(HWND handle, void *function, void *data);
+HWND dw_window_from_id(HWND handle, int id);
+HMTX dw_mutex_new(void);
+void dw_mutex_close(HMTX mutex);
+void dw_mutex_lock(HMTX mutex);
+void dw_mutex_unlock(HMTX mutex);
+HEV dw_event_new(void);
+int dw_event_reset(HEV eve);
+int dw_event_post(HEV eve);
+int dw_event_wait(HEV eve, unsigned long timeout);
+int dw_event_close (HEV *eve);
+DWTID dw_thread_new(void *func, void *data, int stack);
+void dw_thread_end(void);
+DWTID dw_thread_id(void);
+void dw_exit(int exitcode);
+HWND dw_render_new(unsigned long id);
+void dw_color_foreground_set(unsigned long value);
+void dw_color_background_set(unsigned long value);
+void dw_draw_point(HWND handle, HPIXMAP pixmap, int x, int y);
+void dw_draw_line(HWND handle, HPIXMAP pixmap, int x1, int y1, int x2, int y2);
+void dw_draw_rect(HWND handle, HPIXMAP pixmap, int fill, int x, int y, int width, int height);
+void dw_draw_text(HWND handle, HPIXMAP pixmap, int x, int y, char *text);
+void dw_flush(void);
+void dw_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc);
+HPIXMAP dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth);
+HPIXMAP dw_pixmap_grab(HWND handle, ULONG id);
+void dw_pixmap_destroy(HPIXMAP pixmap);
+void dw_beep(int freq, int dur);
+int dw_messagebox(char *title, char *format, ...);
+int dw_yesno(char *title, char *text);
+void dw_environment_query(DWEnv *env);
+int dw_exec(char *program, int type, char **params);
+int dw_browse(char *url);
+char *dw_file_browse(char *title, char *defpath, char *ext, int flags);
+char *dw_user_dir(void);
+DWDialog *dw_dialog_new(void *data);
+int dw_dialog_dismiss(DWDialog *dialog, void *result);
+void *dw_dialog_wait(DWDialog *dialog);
+#ifndef NO_SIGNALS
+void dw_signal_connect(HWND window, char *signame, void *sigfunc, void *data);
+void dw_signal_disconnect_by_window(HWND window);
+void dw_signal_disconnect_by_data(HWND window, void *data);
+void dw_signal_disconnect_by_name(HWND window, char *signame);
+#endif
+
+#endif