comparison 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
comparison
equal deleted inserted replaced
633:87db549e79bc 634:c6a216c8174f
53 #define DW_MIS_ENABLED 1 53 #define DW_MIS_ENABLED 1
54 #define DW_MIS_DISABLED (1 << 1) 54 #define DW_MIS_DISABLED (1 << 1)
55 #define DW_MIS_CHECKED (1 << 2) 55 #define DW_MIS_CHECKED (1 << 2)
56 #define DW_MIS_UNCHECKED (1 << 3) 56 #define DW_MIS_UNCHECKED (1 << 3)
57 57
58 #if defined(__OS2__) || defined(__WIN32__) || defined(__MAC__) || defined(WINNT) || defined(__EMX__) 58 /* ensure we can build the Gtk port with MingW on Windows */
59 #if defined(DW_USE_GTK) && defined(__MINGW32__)
60 # ifndef GDK_WINDOWING_WIN32
61 # define GDK_WINDOWING_WIN32
62 # endif
63 #endif
64
65 #if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || defined(__MAC__) || (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__)
59 /* OS/2, Windows or MacOS */ 66 /* OS/2, Windows or MacOS */
60 67
61 #if (defined(__IBMC__) || defined(_System)) && !defined(API) 68 #if (defined(__IBMC__) || defined(_System)) && !defined(API)
62 #define API _System 69 #define API _System
63 #endif 70 #endif
584 591
585 typedef struct _hpixmap { 592 typedef struct _hpixmap {
586 unsigned long width, height; 593 unsigned long width, height;
587 HBITMAP hbm; 594 HBITMAP hbm;
588 HDC hdc; 595 HDC hdc;
596 unsigned long transcolor;
589 HWND handle; 597 HWND handle;
590 void *bits; 598 void *bits;
591 } *HPIXMAP; 599 } *HPIXMAP;
592 600
593 typedef HWND HMENUI; 601 typedef HWND HMENUI;
654 } BubbleButton; 662 } BubbleButton;
655 663
656 #else 664 #else
657 /* GTK Specific section */ 665 /* GTK Specific section */
658 #include <gtk/gtk.h> 666 #include <gtk/gtk.h>
659 #include <gdk/gdkx.h> 667 #ifdef GDK_WINDOWING_X11
668 # include <gdk/gdkx.h>
669 #else
670 # include <gdk/gdk.h>
671 #endif
660 #include <gdk/gdkprivate.h> 672 #include <gdk/gdkprivate.h>
661 #include <gdk/gdkkeysyms.h> 673 #include <gdk/gdkkeysyms.h>
662 #include <pthread.h> 674 #include <pthread.h>
663 #include <dlfcn.h> 675 #if !defined(GDK_WINDOWING_WIN32)
676 # include <dlfcn.h>
677 #endif
664 678
665 #define DW_DT_LEFT 1 679 #define DW_DT_LEFT 1
666 #define DW_DT_UNDERSCORE (1 << 1) 680 #define DW_DT_UNDERSCORE (1 << 1)
667 #define DW_DT_STRIKEOUT (1 << 2) 681 #define DW_DT_STRIKEOUT (1 << 2)
668 #define DW_DT_CENTER (1 << 3) 682 #define DW_DT_CENTER (1 << 3)
896 UCHAR ucReserved; 910 UCHAR ucReserved;
897 } CTIME; 911 } CTIME;
898 typedef CTIME *PCTIME; 912 typedef CTIME *PCTIME;
899 #endif 913 #endif
900 914
901 #if defined(__OS2__) || defined(__WIN32__) || defined(WINNT) || defined(__EMX__) 915 #if defined(__OS2__) || (defined(__WIN32__) && !defined(GDK_WINDOWING_WIN32)) || (defined(WINNT) && !defined(GDK_WINDOWING_WIN32)) || defined(__EMX__)
902 typedef unsigned long DWTID; 916 typedef unsigned long DWTID;
903 #endif 917 #endif
904 918
905 typedef struct _dwenv { 919 typedef struct _dwenv {
906 /* Operating System Name and DW Build Date/Time */ 920 /* Operating System Name and DW Build Date/Time */
1033 void API dw_window_redraw(HWND handle); 1047 void API dw_window_redraw(HWND handle);
1034 int API dw_window_set_font(HWND handle, char *fontname); 1048 int API dw_window_set_font(HWND handle, char *fontname);
1035 int API dw_window_set_color(HWND handle, unsigned long fore, unsigned long back); 1049 int API dw_window_set_color(HWND handle, unsigned long fore, unsigned long back);
1036 HWND API dw_window_new(HWND hwndOwner, char *title, unsigned long flStyle); 1050 HWND API dw_window_new(HWND hwndOwner, char *title, unsigned long flStyle);
1037 HWND API dw_box_new(int type, int pad); 1051 HWND API dw_box_new(int type, int pad);
1052 #ifdef INCOMPLETE
1053 HWND API dw_scrollbox_new(int type, int pad);
1054 #endif
1038 HWND API dw_groupbox_new(int type, int pad, char *title); 1055 HWND API dw_groupbox_new(int type, int pad, char *title);
1039 HWND API dw_mdi_new(unsigned long id); 1056 HWND API dw_mdi_new(unsigned long id);
1040 HWND API dw_bitmap_new(unsigned long id); 1057 HWND API dw_bitmap_new(unsigned long id);
1041 HWND API dw_bitmapbutton_new(char *text, unsigned long id); 1058 HWND API dw_bitmapbutton_new(char *text, unsigned long id);
1042 HWND API dw_bitmapbutton_new_from_file(char *text, unsigned long id, char *filename); 1059 HWND API dw_bitmapbutton_new_from_file(char *text, unsigned long id, char *filename);
1072 unsigned int API dw_slider_get_pos(HWND handle); 1089 unsigned int API dw_slider_get_pos(HWND handle);
1073 void API dw_slider_set_pos(HWND handle, unsigned int position); 1090 void API dw_slider_set_pos(HWND handle, unsigned int position);
1074 unsigned int API dw_scrollbar_get_pos(HWND handle); 1091 unsigned int API dw_scrollbar_get_pos(HWND handle);
1075 void API dw_scrollbar_set_pos(HWND handle, unsigned int position); 1092 void API dw_scrollbar_set_pos(HWND handle, unsigned int position);
1076 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible); 1093 void API dw_scrollbar_set_range(HWND handle, unsigned int range, unsigned int visible);
1077 void API dw_window_set_pos(HWND handle, unsigned long x, unsigned long y); 1094 void API dw_window_set_pos(HWND handle, long x, long y);
1078 void API dw_window_set_size(HWND handle, unsigned long width, unsigned long height); 1095 void API dw_window_set_size(HWND handle, unsigned long width, unsigned long height);
1079 void API dw_window_set_pos_size(HWND handle, unsigned long x, unsigned long y, unsigned long width, unsigned long height); 1096 void API dw_window_set_pos_size(HWND handle, long x, long y, unsigned long width, unsigned long height);
1080 void API dw_window_get_pos_size(HWND handle, unsigned long *x, unsigned long *y, unsigned long *width, unsigned long *height); 1097 void API dw_window_get_pos_size(HWND handle, long *x, long *y, unsigned long *width, unsigned long *height);
1081 void API dw_window_set_style(HWND handle, unsigned long style, unsigned long mask); 1098 void API dw_window_set_style(HWND handle, unsigned long style, unsigned long mask);
1082 void API dw_window_set_icon(HWND handle, unsigned long id); 1099 void API dw_window_set_icon(HWND handle, unsigned long id);
1083 void API dw_window_set_bitmap(HWND handle, unsigned long id, char *filename); 1100 void API dw_window_set_bitmap(HWND handle, unsigned long id, char *filename);
1084 void API dw_window_set_bitmap_from_data(HWND handle, unsigned long id, char *data, int len); 1101 void API dw_window_set_bitmap_from_data(HWND handle, unsigned long id, char *data, int len);
1085 char * API dw_window_get_text(HWND handle); 1102 char * API dw_window_get_text(HWND handle);
1166 void API dw_splitbar_set(HWND handle, float percent); 1183 void API dw_splitbar_set(HWND handle, float percent);
1167 float API dw_splitbar_get(HWND handle); 1184 float API dw_splitbar_get(HWND handle);
1168 HMENUI API dw_menu_new(unsigned long id); 1185 HMENUI API dw_menu_new(unsigned long id);
1169 HMENUI API dw_menubar_new(HWND location); 1186 HMENUI API dw_menubar_new(HWND location);
1170 HWND API dw_menu_append_item(HMENUI menu, char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu); 1187 HWND API dw_menu_append_item(HMENUI menu, char *title, unsigned long id, unsigned long flags, int end, int check, HMENUI submenu);
1171 #if 0 1188 #ifdef INCOMPLETE
1172 TBD
1173 void API dw_menu_delete_item(HMENUI menu, unsigned long id); 1189 void API dw_menu_delete_item(HMENUI menu, unsigned long id);
1174 #endif 1190 #endif
1175 void API dw_menu_item_set_check(HMENUI menu, unsigned long id, int check); 1191 void API dw_menu_item_set_check(HMENUI menu, unsigned long id, int check);
1176 void API dw_menu_item_set_state( HMENUI menux, unsigned long id, unsigned long state); 1192 void API dw_menu_item_set_state( HMENUI menux, unsigned long id, unsigned long state);
1177 void API dw_menu_popup(HMENUI *menu, HWND parent, int x, int y); 1193 void API dw_menu_popup(HMENUI *menu, HWND parent, int x, int y);
1207 void API dw_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc); 1223 void API dw_pixmap_bitblt(HWND dest, HPIXMAP destp, int xdest, int ydest, int width, int height, HWND src, HPIXMAP srcp, int xsrc, int ysrc);
1208 HPIXMAP API dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth); 1224 HPIXMAP API dw_pixmap_new(HWND handle, unsigned long width, unsigned long height, int depth);
1209 HPIXMAP API dw_pixmap_new_from_file(HWND handle, char *filename); 1225 HPIXMAP API dw_pixmap_new_from_file(HWND handle, char *filename);
1210 HPIXMAP API dw_pixmap_new_from_data(HWND handle, char *data, int len); 1226 HPIXMAP API dw_pixmap_new_from_data(HWND handle, char *data, int len);
1211 HPIXMAP API dw_pixmap_grab(HWND handle, ULONG id); 1227 HPIXMAP API dw_pixmap_grab(HWND handle, ULONG id);
1228 void API dw_pixmap_set_transparent_color( HPIXMAP pixmap, ULONG color );
1212 void API dw_pixmap_destroy(HPIXMAP pixmap); 1229 void API dw_pixmap_destroy(HPIXMAP pixmap);
1213 void API dw_beep(int freq, int dur); 1230 void API dw_beep(int freq, int dur);
1214 int API dw_messagebox(char *title, int flags, char *format, ...); 1231 int API dw_messagebox(char *title, int flags, char *format, ...);
1215 void API dw_environment_query(DWEnv *env); 1232 void API dw_environment_query(DWEnv *env);
1216 int API dw_exec(char *program, int type, char **params); 1233 int API dw_exec(char *program, int type, char **params);