diff dw.h @ 634:c6a216c8174f

Support for setting transparent colour for bitmaps Support for checkable menu items Mouse support on render window Fix bubble text on buttons dw_window_set_text() works for group box dw_window_set_size() and dw_window_set_pos_size() to allow negative values Add dw_draw_polygon()
author mhessling@81767d24-ef19-dc11-ae90-00e081727c95
date Fri, 10 Apr 2009 10:25:26 +0000
parents 87db549e79bc
children 9fa3cb5b3290
line wrap: on
line diff
--- a/dw.h	Tue Jan 06 11:00:15 2009 +0000
+++ b/dw.h	Fri Apr 10 10:25:26 2009 +0000
@@ -55,7 +55,14 @@
 #define DW_MIS_CHECKED           (1 << 2)
 #define DW_MIS_UNCHECKED         (1 << 3)
 
-#if defined(__OS2__) || defined(__WIN32__) || defined(__MAC__) || defined(WINNT) || defined(__EMX__)
+/* ensure we can build the Gtk port with MingW on Windows */
+#if defined(DW_USE_GTK) && defined(__MINGW32__)
+# ifndef GDK_WINDOWING_WIN32
+#   define GDK_WINDOWING_WIN32
+# endif
+#endif
+
+#if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__)
 /* OS/2, Windows or MacOS */
 
 #if (defined(__IBMC__) || defined(_System)) && !defined(API)
@@ -586,6 +593,7 @@
 	unsigned long width, height;
 	HBITMAP hbm;
 	HDC hdc;
+	unsigned long transcolor;
 	HWND handle;
 	void *bits;
 } *HPIXMAP;
@@ -656,11 +664,17 @@
 #else
 /* GTK Specific section */
 #include <gtk/gtk.h>
-#include <gdk/gdkx.h>
+#ifdef GDK_WINDOWING_X11
+# include <gdk/gdkx.h>
+#else
+# include <gdk/gdk.h>
+#endif
 #include <gdk/gdkprivate.h>
 #include <gdk/gdkkeysyms.h>
 #include <pthread.h>
-#include <dlfcn.h>
+#if !defined(GDK_WINDOWING_WIN32)
+# include <dlfcn.h>
+#endif
 
 #define DW_DT_LEFT               1
 #define DW_DT_UNDERSCORE         (1 << 1)
@@ -898,7 +912,7 @@
 typedef CTIME *PCTIME;
 #endif
 
-#if defined(__OS2__) || defined(__WIN32__) || defined(WINNT) || defined(__EMX__)
+#if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__)
 typedef unsigned long DWTID;
 #endif
 
@@ -1035,6 +1049,9 @@
 int API dw_window_set_color(HWND handle, unsigned long fore, unsigned long back);
 HWND API dw_window_new(HWND hwndOwner, char *title, unsigned long flStyle);
 HWND API dw_box_new(int type, int pad);
+#ifdef INCOMPLETE
+HWND API dw_scrollbox_new(int type, int pad);
+#endif
 HWND API dw_groupbox_new(int type, int pad, char *title);
 HWND API dw_mdi_new(unsigned long id);
 HWND API dw_bitmap_new(unsigned long id);
@@ -1074,10 +1091,10 @@
 unsigned int API dw_scrollbar_get_pos(HWND handle);
 void API dw_scrollbar_set_pos(HWND handle, unsigned int position);
 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible);
-void API dw_window_set_pos(HWND handle, unsigned long x, unsigned long y);
+void API dw_window_set_pos(HWND handle, long x, long y);
 void API dw_window_set_size(HWND handle, unsigned long width, unsigned long height);
-void API dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height);
-void API dw_window_get_pos_size(HWND handle, unsigned long *x, unsigned long *y, unsigned long *width, unsigned long *height);
+void API dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height);
+void API dw_window_get_pos_size(HWND handle, long *x, long *y, unsigned long *width, unsigned long *height);
 void API dw_window_set_style(HWND handle, unsigned long style, unsigned long mask);
 void API dw_window_set_icon(HWND handle, unsigned long id);
 void API dw_window_set_bitmap(HWND handle, unsigned long id, char *filename);
@@ -1168,8 +1185,7 @@
 HMENUI API dw_menu_new(unsigned long id);
 HMENUI API dw_menubar_new(HWND location);
 HWND API dw_menu_append_item(HMENUI menu, char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu);
-#if 0
-TBD
+#ifdef INCOMPLETE
 void API dw_menu_delete_item(HMENUI menu, unsigned long id);
 #endif
 void API dw_menu_item_set_check(HMENUI menu, unsigned long id, int check);
@@ -1209,6 +1225,7 @@
 HPIXMAP API dw_pixmap_new_from_file(HWND handle, char *filename);
 HPIXMAP API dw_pixmap_new_from_data(HWND handle, char *data, int len);
 HPIXMAP API dw_pixmap_grab(HWND handle, ULONG id);
+void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color );
 void API dw_pixmap_destroy(HPIXMAP pixmap);
 void API dw_beep(int freq, int dur);
 int API dw_messagebox(char *title, int flags, char *format, ...);