* Some styles are used across more than one group,
* so the values mustn't clash with others in the group.
* Otherwise, numbers can be reused across groups.
- *
- * From version 1.66:
- * Window (cross-group) styles now take up the first half
- * of the flag, and control-specific styles the
- * second half.
- *
+ */
+
+/*
+ Summary of the bits used by various styles.
+
+ High word, containing styles which can be used with many windows:
+
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ |31|30|29|28|27|26|25|24|23|22|21|20|19|18|17|16|
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ | | | | | | | | | | | | | | | |
+ | | | | | | | | | | | | | | | \_ wxFULL_REPAINT_ON_RESIZE
+ | | | | | | | | | | | | | | \____ wxPOPUP_WINDOW
+ | | | | | | | | | | | | | \_______ wxWANTS_CHARS
+ | | | | | | | | | | | | \__________ wxTAB_TRAVERSAL
+ | | | | | | | | | | | \_____________ wxTRANSPARENT_WINDOW
+ | | | | | | | | | | \________________ wxBORDER_NONE
+ | | | | | | | | | \___________________ wxCLIP_CHILDREN
+ | | | | | | | | \______________________ wxALWAYS_SHOW_SB
+ | | | | | | | \_________________________ wxBORDER_STATIC
+ | | | | | | \____________________________ wxBORDER_SIMPLE
+ | | | | | \_______________________________ wxBORDER_RAISED
+ | | | | \__________________________________ wxBORDER_SUNKEN
+ | | | \_____________________________________ wxBORDER_{DOUBLE,THEME}
+ | | \________________________________________ wxCAPTION/wxCLIP_SIBLINGS
+ | \___________________________________________ wxHSCROLL
+ \______________________________________________ wxVSCROLL
+
+
+ Low word style bits is class-specific meaning that the same bit can have
+ different meanings for different controls (e.g. 0x10 is wxCB_READONLY
+ meaning that the control can't be modified for wxComboBox but wxLB_SORT
+ meaning that the control should be kept sorted for wxListBox, while
+ wxLB_SORT has a different value -- and this is just fine).
*/
/*
/* ABX: check __WIN32__ instead of __WXMSW__ for the same MSWBase in any Win32 port */
#if defined(__WIN32__)
-/* the keywords needed for WinMain() declaration */
-#ifndef WXFAR
-# define WXFAR
-#endif
-
/* Stand-ins for Windows types to avoid #including all of windows.h */
-typedef void * WXHWND;
-typedef void * WXHANDLE;
-typedef void * WXHICON;
-typedef void * WXHFONT;
-typedef void * WXHMENU;
-typedef void * WXHPEN;
-typedef void * WXHBRUSH;
-typedef void * WXHPALETTE;
-typedef void * WXHCURSOR;
-typedef void * WXHRGN;
-typedef void * WXRECTPTR;
-typedef void * WXHACCEL;
-typedef void WXFAR * WXHINSTANCE;
-typedef void * WXHBITMAP;
-typedef void * WXHIMAGELIST;
-typedef void * WXHGLOBAL;
-typedef void * WXHDC;
+
+#ifndef NO_STRICT
+ #define WX_MSW_DECLARE_HANDLE(type) typedef struct type##__ * WX##type
+#else
+ #define WX_MSW_DECLARE_HANDLE(type) typedef void * WX##type
+#endif
+
+typedef void* WXHANDLE;
+WX_MSW_DECLARE_HANDLE(HWND);
+WX_MSW_DECLARE_HANDLE(HICON);
+WX_MSW_DECLARE_HANDLE(HFONT);
+WX_MSW_DECLARE_HANDLE(HMENU);
+WX_MSW_DECLARE_HANDLE(HPEN);
+WX_MSW_DECLARE_HANDLE(HBRUSH);
+WX_MSW_DECLARE_HANDLE(HPALETTE);
+WX_MSW_DECLARE_HANDLE(HCURSOR);
+WX_MSW_DECLARE_HANDLE(HRGN);
+WX_MSW_DECLARE_HANDLE(RECTPTR);
+WX_MSW_DECLARE_HANDLE(HACCEL);
+WX_MSW_DECLARE_HANDLE(HINSTANCE);
+WX_MSW_DECLARE_HANDLE(HBITMAP);
+WX_MSW_DECLARE_HANDLE(HIMAGELIST);
+WX_MSW_DECLARE_HANDLE(HGLOBAL);
+WX_MSW_DECLARE_HANDLE(HDC);
+typedef WXHINSTANCE WXHMODULE;
+
+#undef WX_MSW_DECLARE_HANDLE
+
typedef unsigned int WXUINT;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
typedef unsigned long WXHCURSOR;
typedef unsigned long WXHRGN;
typedef unsigned long WXHACCEL;
+typedef unsigned long WXHINSTANCE;
+typedef unsigned long WXHMODULE;
typedef unsigned long WXHBITMAP;
typedef unsigned long WXHDC;
typedef unsigned int WXUINT;