X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/550343399aa1355469ffed72c8cf84c732dcf98b..eafdb19c44154550b3c6155a62642e7ab5c6e64d:/include/wx/os2/private.h diff --git a/include/wx/os2/private.h b/include/wx/os2/private.h index aab13247a9..f343d85a69 100644 --- a/include/wx/os2/private.h +++ b/include/wx/os2/private.h @@ -19,20 +19,45 @@ #define INCL_GPI #define INCL_WINSYS #define INCL_SHLERRORS +#define INCL_GPIERRORS #define INCL_DOS +#define INCL_WINATOM +#define INCL_WIN #include +#if wxONLY_WATCOM_EARLIER_THAN(1,4) + inline HATOMTBL APIENTRY WinQuerySystemAtomTable(VOID){return NULL;} + inline ULONG APIENTRY WinQueryAtomName(HATOMTBL,ATOM,PCSZ,ULONG){return 0;} + inline LONG APIENTRY GpiPointArc(HPS,PPOINTL){return GPI_ERROR;} + inline BOOL APIENTRY WinDrawPointer(HPS,LONG,LONG,HPOINTER,ULONG){return FALSE;} + inline HPOINTER APIENTRY WinCreatePointerIndirect(HWND,PPOINTERINFO){return NULLHANDLE;} + inline BOOL APIENTRY WinGetMaxPosition(HWND,PSWP){return FALSE;} + inline BOOL APIENTRY WinGetMinPosition(HWND,PSWP,PPOINTL){return FALSE;} +#endif + #if defined(__WATCOMC__) && defined(__WXMOTIF__) #include #define I_NEED_OS2_H #include - #ifdef __cplusplus - extern "C" { + + // include this header from here for many of the GUI related code + #if wxUSE_GUI + extern "C" { + #include + } #endif - #include - #ifdef __cplusplus + + // provide Unix-like pipe() + #include + #include + #include + // Use ::DosCreatePipe or ::DosCreateNPipe under OS/2 + // for more see http://posix2.sourceforge.net/guide.html + inline int pipe( int WXUNUSED(filedes)[2] ) + { + wxFAIL_MSG(wxT("Implement first")); + return -1; } - #endif #endif #if defined (__EMX__) && !defined(USE_OS2_TOOLKIT_HEADERS) && !defined(HAVE_SPBCDATA) @@ -53,10 +78,10 @@ #include "wx/dlimpexp.h" #include "wx/fontenc.h" -class WXDLLEXPORT wxFont; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxString; -class WXDLLEXPORT wxBitmap; +class WXDLLIMPEXP_FWD_CORE wxFont; +class WXDLLIMPEXP_FWD_CORE wxWindow; +class WXDLLIMPEXP_FWD_BASE wxString; +class WXDLLIMPEXP_FWD_CORE wxBitmap; // --------------------------------------------------------------------------- // private constants @@ -69,56 +94,50 @@ class WXDLLEXPORT wxBitmap; // // Controls // -WXDLLEXPORT_DATA(extern const wxChar*) wxButtonNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxCanvasNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxCheckBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxChoiceNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxDialogNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxListBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticTextNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticBitmapNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxMultiTextNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxRadioBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxRadioButtonNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxBitmapRadioButtonNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxScrollBarNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxSliderNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlWindowNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxVirtListBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxButtonBarNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEnhDialogNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxGetTextFromUserPromptStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxMessageBoxCaptionStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorDefaultWildcardStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxInternalErrorStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxFatalErrorStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxTreeCtrlNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxDirDialogDefaultFolderStr; +WXDLLIMPEXP_DATA_CORE(extern const char) wxButtonNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxCheckBoxNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxChoiceNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxComboBoxNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxDialogNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxFrameNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxGaugeNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxStaticBoxNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxListBoxNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxStaticLineNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxStaticTextNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxStaticBitmapNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxPanelNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxRadioBoxNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxRadioButtonNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxBitmapRadioButtonNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxScrollBarNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxSliderNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxTextCtrlNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxToolBarNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxStatusLineNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxGetTextFromUserPromptStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxMessageBoxCaptionStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxFileSelectorPromptStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxFileSelectorDefaultWildcardStr[]; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxInternalErrorStr; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxFatalErrorStr; +WXDLLIMPEXP_DATA_CORE(extern const char) wxTreeCtrlNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxDirDialogNameStr[]; +WXDLLIMPEXP_DATA_CORE(extern const char) wxDirDialogDefaultFolderStr[]; // // Class names // -WXDLLEXPORT_DATA(extern const wxChar*) wxFrameClassName; -WXDLLEXPORT_DATA(extern const wxChar*) wxFrameClassNameNoRedraw; -WXDLLEXPORT_DATA(extern const wxChar*) wxMDIFrameClassName; -WXDLLEXPORT_DATA(extern const wxChar*) wxMDIFrameClassNameNoRedraw; -WXDLLEXPORT_DATA(extern const wxChar*) wxMDIChildFrameClassName; -WXDLLEXPORT_DATA(extern const wxChar*) wxMDIChildFrameClassNameNoRedraw; -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelClassName; -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelClassNameNR; -WXDLLEXPORT_DATA(extern const wxChar*) wxCanvasClassName; -WXDLLEXPORT_DATA(extern const wxChar*) wxCanvasClassNameNR; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxFrameClassName; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxFrameClassNameNoRedraw; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxMDIFrameClassName; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxMDIFrameClassNameNoRedraw; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxMDIChildFrameClassName; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxMDIChildFrameClassNameNoRedraw; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxPanelClassName; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxPanelClassNameNR; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxCanvasClassName; +WXDLLIMPEXP_DATA_CORE(extern const wxChar*) wxCanvasClassNameNR; // --------------------------------------------------------------------------- // standard icons from the resources @@ -126,13 +145,13 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxCanvasClassNameNR; #ifdef __WXPM__ -WXDLLEXPORT_DATA(extern HICON) wxSTD_FRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxSTD_MDIPARENTFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxSTD_MDICHILDFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_FRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_MDIPARENTFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_MDICHILDFRAME_ICON; -WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxSTD_FRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxSTD_MDIPARENTFRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxSTD_MDICHILDFRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxDEFAULT_FRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxDEFAULT_MDIPARENTFRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HICON) wxDEFAULT_MDICHILDFRAME_ICON; +WXDLLIMPEXP_DATA_CORE(extern HFONT) wxSTATUS_LINE_FONT; #endif @@ -150,12 +169,12 @@ typedef MRESULT (APIENTRY * WndProcCast) (HWND, ULONG, MPARAM, MPARAM); * for this combination of CTl3D/FAFA settings */ -#define STATIC_CLASS _T("STATIC") +#define STATIC_CLASS wxT("STATIC") #define STATIC_FLAGS (SS_TEXT|DT_LEFT|SS_LEFT|WS_VISIBLE) -#define CHECK_CLASS _T("BUTTON") +#define CHECK_CLASS wxT("BUTTON") #define CHECK_FLAGS (BS_AUTOCHECKBOX|WS_TABSTOP) #define CHECK_IS_FAFA FALSE -#define RADIO_CLASS _T("BUTTON" ) +#define RADIO_CLASS wxT("BUTTON" ) #define RADIO_FLAGS (BS_AUTORADIOBUTTON|WS_VISIBLE) #define RADIO_SIZE 20 #define RADIO_IS_FAFA FALSE @@ -269,29 +288,30 @@ extern LONG APIENTRY wxSubclassedGenericControlProc(WXHWND hWnd, WXDWORD message // OS/2 convention of the mask is opposed to the wxWidgets one, so we need // to invert the mask each time we pass one/get one to/from Windows extern HBITMAP wxInvertMask(HBITMAP hbmpMask, int w = 0, int h = 0); +extern HBITMAP wxCopyBmp(HBITMAP hbmp, bool flip=false, int w=0, int h=0); // --------------------------------------------------------------------------- // global data // --------------------------------------------------------------------------- -#ifdef __WXOS2__ +#ifdef __WXPM__ // The MakeProcInstance version of the function wxSubclassedGenericControlProc -WXDLLEXPORT_DATA(extern int) wxGenericControlSubClassProc; -WXDLLEXPORT_DATA(extern wxChar*) wxBuffer; -WXDLLEXPORT_DATA(extern HINSTANCE) wxhInstance; +WXDLLIMPEXP_DATA_CORE(extern int) wxGenericControlSubClassProc; +WXDLLIMPEXP_DATA_CORE(extern wxChar*) wxBuffer; +WXDLLIMPEXP_DATA_CORE(extern HINSTANCE) wxhInstance; #endif // --------------------------------------------------------------------------- // global functions // --------------------------------------------------------------------------- -#ifdef __WXOS2__ +#ifdef __WXPM__ extern "C" { -WXDLLEXPORT HINSTANCE wxGetInstance(); +WXDLLIMPEXP_CORE HINSTANCE wxGetInstance(); } -WXDLLEXPORT void wxSetInstance(HINSTANCE hInst); +WXDLLIMPEXP_CORE void wxSetInstance(HINSTANCE hInst); #endif #include "wx/thread.h" @@ -310,19 +330,19 @@ static inline MRESULT MySendMsg(HWND hwnd, ULONG ulMsgid, #ifdef __WXPM__ -WXDLLEXPORT void wxDrawBorder( HPS hPS +WXDLLIMPEXP_CORE void wxDrawBorder( HPS hPS ,RECTL& rRect ,WXDWORD dwStyle ); -WXDLLEXPORT wxWindow* wxFindWinFromHandle(WXHWND hWnd); +WXDLLIMPEXP_CORE wxWindow* wxFindWinFromHandle(WXHWND hWnd); -WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y,wxFont *the_font); +WXDLLIMPEXP_CORE void wxGetCharSize(WXHWND wnd, int *x, int *y,wxFont *the_font); -WXDLLEXPORT void wxConvertVectorFontSize( FIXED fxPointSize +WXDLLIMPEXP_CORE void wxConvertVectorFontSize( FIXED fxPointSize ,PFATTRS pFattrs ); -WXDLLEXPORT void wxFillLogFont( LOGFONT* pLogFont +WXDLLIMPEXP_CORE void wxFillLogFont( LOGFONT* pLogFont ,PFACENAMEDESC pFaceName ,HPS* phPS ,bool* pbInternalPS @@ -330,40 +350,40 @@ WXDLLEXPORT void wxFillLogFont( LOGFONT* pLogFont ,wxString& sFaceName ,wxFont* pFont ); -WXDLLEXPORT wxFontEncoding wxGetFontEncFromCharSet(int nCharSet); -WXDLLEXPORT void wxOS2SelectMatchingFontByName( PFATTRS vFattrs +WXDLLIMPEXP_CORE wxFontEncoding wxGetFontEncFromCharSet(int nCharSet); +WXDLLIMPEXP_CORE void wxOS2SelectMatchingFontByName( PFATTRS vFattrs ,PFACENAMEDESC pFaceName ,PFONTMETRICS pFM ,int nNumFonts ,const wxFont* pFont ); -WXDLLEXPORT wxFont wxCreateFontFromLogFont( LOGFONT* pLogFont +WXDLLIMPEXP_CORE wxFont wxCreateFontFromLogFont( LOGFONT* pLogFont ,PFONTMETRICS pFM ,PFACENAMEDESC pFace ); -WXDLLEXPORT int wxGpiStrcmp(wxChar* s0, wxChar* s1); +WXDLLIMPEXP_CORE int wxGpiStrcmp(wxChar* s0, wxChar* s1); -WXDLLEXPORT void wxSliderEvent(WXHWND control, WXWORD wParam, WXWORD pos); -WXDLLEXPORT void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos); +WXDLLIMPEXP_CORE void wxSliderEvent(WXHWND control, WXWORD wParam, WXWORD pos); +WXDLLIMPEXP_CORE void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos); // Find maximum size of window/rectangle -WXDLLEXPORT extern void wxFindMaxSize(WXHWND hwnd, RECT *rect); +WXDLLIMPEXP_CORE extern void wxFindMaxSize(WXHWND hwnd, RECT *rect); -WXDLLEXPORT wxWindow* wxFindControlFromHandle(WXHWND hWnd); -WXDLLEXPORT void wxAddControlHandle(WXHWND hWnd, wxWindow *item); +WXDLLIMPEXP_CORE wxWindow* wxFindControlFromHandle(WXHWND hWnd); +WXDLLIMPEXP_CORE void wxAddControlHandle(WXHWND hWnd, wxWindow *item); // Safely get the window text (i.e. without using fixed size buffer) -WXDLLEXPORT extern wxString wxGetWindowText(WXHWND hWnd); +WXDLLIMPEXP_CORE extern wxString wxGetWindowText(WXHWND hWnd); // get the window class name -WXDLLEXPORT extern wxString wxGetWindowClass(WXHWND hWnd); +WXDLLIMPEXP_CORE extern wxString wxGetWindowClass(WXHWND hWnd); // get the window id (should be unsigned, hence this is not wxWindowID which // is, for mainly historical reasons, signed) -WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd); +WXDLLIMPEXP_CORE extern WXWORD wxGetWindowId(WXHWND hWnd); // Convert a PM Error code to a string -WXDLLEXPORT extern wxString wxPMErrorToStr(ERRORID vError); +WXDLLIMPEXP_BASE extern wxString wxPMErrorToStr(ERRORID vError); // Does this window style specify any border? inline bool wxStyleHasBorder(long style) @@ -380,22 +400,22 @@ inline RECTL wxGetWindowRect(HWND hWnd) return vRect; } // end of wxGetWindowRect -WXDLLEXPORT extern void wxOS2SetFont( HWND hWnd +WXDLLIMPEXP_CORE extern void wxOS2SetFont( HWND hWnd ,const wxFont& rFont ); -WXDLLEXPORT extern bool wxCheckWindowWndProc( WXHWND hWnd +WXDLLIMPEXP_CORE extern bool wxCheckWindowWndProc( WXHWND hWnd ,WXFARPROC fnWndProc ); -WXDLLEXPORT extern wxBitmap wxDisableBitmap( const wxBitmap& rBmp +WXDLLIMPEXP_CORE extern wxBitmap wxDisableBitmap( const wxBitmap& rBmp ,long lColor ); - -#include "wx/colour.h" - -WXDLLEXPORT extern COLORREF wxColourToRGB(const wxColour& rColor); +#if wxUSE_GUI +class wxColour; +WXDLLIMPEXP_CORE extern COLORREF wxColourToRGB(const wxColour& rColor); +#endif #endif // __WXPM__ -#endif // _WX_PRIVATE_H_ +#endif // _WX_OS2_PRIVATE_H_