| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/os2/private.h
 
- // Purpose:     Private declarations: as this header is only included by
 
- //              wxWidgets itself, it may contain identifiers which don't start
 
- //              with "wx".
 
- // Author:      Julian Smart
 
- // Modified by:
 
- // Created:     01/02/97
 
- // Copyright:   (c) Julian Smart
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_OS2_PRIVATE_H_
 
- #define _WX_OS2_PRIVATE_H_
 
- #define INCL_BASE
 
- #define INCL_PM
 
- #define INCL_GPI
 
- #define INCL_WINSYS
 
- #define INCL_GPIERRORS
 
- #define INCL_DOS
 
- #define INCL_DOSPROCESS
 
- #define INCL_DOSERRORS
 
- #define INCL_WIN
 
- #define INCL_WINATOM
 
- #define INCL_SHLERRORS
 
- #include <os2.h>
 
- #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 <os2def.h>
 
-     #define I_NEED_OS2_H
 
-     #include <X11/Xmd.h>
 
-     // include this header from here for many of the GUI related code
 
-     #if wxUSE_GUI
 
-         extern "C" {
 
-             #include <Xm/VendorSP.h>
 
-         }
 
-     #endif
 
-     // provide Unix-like pipe()
 
-     #include <types.h>
 
-     #include <tcpustd.h>
 
-     #include <sys/time.h>
 
-     // 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
 
- #if defined (__EMX__) && !defined(USE_OS2_TOOLKIT_HEADERS) && !defined(HAVE_SPBCDATA)
 
-     typedef struct _SPBCDATA {
 
-         ULONG     cbSize;       /*  Size of control block. */
 
-         ULONG     ulTextLimit;  /*  Entryfield text limit. */
 
-         LONG      lLowerLimit;  /*  Spin lower limit (numeric only). */
 
-         LONG      lUpperLimit;  /*  Spin upper limit (numeric only). */
 
-         ULONG     idMasterSpb;  /*  ID of the servant's master spinbutton. */
 
-         PVOID     pHWXCtlData;  /*  Handwriting control data structure flag. */
 
-     } SPBCDATA;
 
-     typedef SPBCDATA *PSPBCDATA;
 
- #endif
 
- #include "wx/dlimpexp.h"
 
- #include "wx/fontenc.h"
 
- class WXDLLIMPEXP_FWD_CORE wxFont;
 
- class WXDLLIMPEXP_FWD_CORE wxWindow;
 
- class WXDLLIMPEXP_FWD_BASE wxString;
 
- class WXDLLIMPEXP_FWD_CORE wxBitmap;
 
- // ---------------------------------------------------------------------------
 
- // private constants
 
- // ---------------------------------------------------------------------------
 
- //
 
- // Constant strings for control names and classes
 
- //
 
- //
 
- // Controls
 
- //
 
- 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
 
- //
 
- 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
 
- // ---------------------------------------------------------------------------
 
- #ifdef __WXPM__
 
- 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
 
- // ---------------------------------------------------------------------------
 
- // this defines a CASTWNDPROC macro which casts a pointer to the type of a
 
- // window proc for PM.
 
- // MPARAM is a void * but is really a 32-bit value
 
- // ---------------------------------------------------------------------------
 
- typedef MRESULT (APIENTRY * WndProcCast) (HWND, ULONG, MPARAM, MPARAM);
 
- #define CASTWNDPROC (WndProcCast)
 
- /*
 
-  * Decide what window classes we're going to use
 
-  * for this combination of CTl3D/FAFA settings
 
-  */
 
- #define STATIC_CLASS     wxT("STATIC")
 
- #define STATIC_FLAGS     (SS_TEXT|DT_LEFT|SS_LEFT|WS_VISIBLE)
 
- #define CHECK_CLASS      wxT("BUTTON")
 
- #define CHECK_FLAGS      (BS_AUTOCHECKBOX|WS_TABSTOP)
 
- #define CHECK_IS_FAFA    FALSE
 
- #define RADIO_CLASS      wxT("BUTTON" )
 
- #define RADIO_FLAGS      (BS_AUTORADIOBUTTON|WS_VISIBLE)
 
- #define RADIO_SIZE       20
 
- #define RADIO_IS_FAFA    FALSE
 
- #define PURE_WINDOWS
 
- /*  PM has no group box button style
 
- #define GROUP_CLASS      "BUTTON"
 
- #define GROUP_FLAGS      (BS_GROUPBOX|WS_CHILD|WS_VISIBLE)
 
- */
 
- /*
 
- #define BITCHECK_FLAGS   (FB_BITMAP|FC_BUTTONDRAW|FC_DEFAULT|WS_VISIBLE)
 
- #define BITRADIO_FLAGS   (FC_BUTTONDRAW|FB_BITMAP|FC_RADIO|WS_CHILD|WS_VISIBLE)
 
- */
 
- // ---------------------------------------------------------------------------
 
- // misc macros
 
- // ---------------------------------------------------------------------------
 
- #define MEANING_CHARACTER '0'
 
- #define DEFAULT_ITEM_WIDTH  200
 
- #define DEFAULT_ITEM_HEIGHT 80
 
- // Scale font to get edit control height
 
- #define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)    (3*(cy)/2)
 
- #ifdef __WXPM__
 
- // Generic subclass proc, for panel item moving/sizing and intercept
 
- // EDIT control VK_RETURN messages
 
- extern LONG APIENTRY wxSubclassedGenericControlProc(WXHWND hWnd, WXDWORD message, WXWPARAM wParam, WXLPARAM lParam);
 
- #endif
 
- // ---------------------------------------------------------------------------
 
- // constants which might miss from some compilers' headers
 
- // ---------------------------------------------------------------------------
 
- #if !defined(WS_EX_CLIENTEDGE)
 
-     #define WS_EX_CLIENTEDGE 0x00000200L
 
- #endif
 
- #ifndef ENDSESSION_LOGOFF
 
-     #define ENDSESSION_LOGOFF    0x80000000
 
- #endif
 
- #ifndef PMERR_INVALID_PARM
 
-     #define PMERR_INVALID_PARM 0x1303
 
- #endif
 
- #ifndef PMERR_INVALID_PARAMETERS
 
-     #define PMERR_INVALID_PARAMETERS 0x1208
 
- #endif
 
- #ifndef BOOKERR_INVALID_PARAMETERS
 
-     #define BOOKERR_INVALID_PARAMETERS -1
 
- #endif
 
- #ifndef DLGC_ENTRYFIELD
 
-     #define DLGC_ENTRYFIELD  0x0001
 
- #endif
 
- #ifndef DLGC_BUTTON
 
-     #define DLGC_BUTTON      0x0002
 
- #endif
 
- #ifndef DLGC_MLE
 
-     #define DLGC_MLE         0x0400
 
- #endif
 
- #ifndef DP_NORMAL
 
-     #define DP_NORMAL 0
 
- #endif
 
- // ---------------------------------------------------------------------------
 
- // debug messages -- OS/2 has no native debug output system
 
- // ---------------------------------------------------------------------------
 
- // ---------------------------------------------------------------------------
 
- // macros to make casting between WXFOO and FOO a bit easier: the GetFoo()
 
- // returns Foo cast to the Windows type for oruselves, while GetFooOf() takes
 
- // an argument which should be a pointer or reference to the object of the
 
- // corresponding class (this depends on the macro)
 
- // ---------------------------------------------------------------------------
 
- #define GetHwnd()               ((HWND)GetHWND())
 
- #define GetHwndOf(win)          ((HWND)((win)->GetHWND()))
 
- // old name
 
- #define GetWinHwnd              GetHwndOf
 
- #define GetHdc()                ((HDC)GetHDC())
 
- #define GetHdcOf(dc)            ((HDC)(dc).GetHDC())
 
- #define GetHbitmap()            ((HBITMAP)GetHBITMAP())
 
- #define GetHbitmapOf(bmp)       ((HBITMAP)(bmp).GetHBITMAP())
 
- #define GetHicon()              ((HICON)GetHICON())
 
- #define GetHiconOf(icon)        ((HICON)(icon).GetHICON())
 
- #define GetHaccel()             ((HACCEL)GetHACCEL())
 
- #define GetHaccelOf(table)      ((HACCEL)((table).GetHACCEL()))
 
- #define GetHmenu()              ((HMENU)GetHMenu())
 
- #define GetHmenuOf(menu)        ((HMENU)menu->GetHMenu())
 
- #define GetHcursor()            ((HCURSOR)GetHCURSOR())
 
- #define GetHcursorOf(cursor)    ((HCURSOR)(cursor).GetHCURSOR())
 
- #define GetHfont()              ((HFONT)GetHFONT())
 
- #define GetHfontOf(font)        ((HFONT)(font).GetHFONT())
 
- // 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 __WXPM__
 
- // The MakeProcInstance version of the function wxSubclassedGenericControlProc
 
- WXDLLIMPEXP_DATA_CORE(extern int) wxGenericControlSubClassProc;
 
- WXDLLIMPEXP_DATA_CORE(extern wxChar*) wxBuffer;
 
- WXDLLIMPEXP_DATA_CORE(extern HINSTANCE) wxhInstance;
 
- #endif
 
- // ---------------------------------------------------------------------------
 
- // global functions
 
- // ---------------------------------------------------------------------------
 
- #ifdef __WXPM__
 
- extern "C"
 
- {
 
- WXDLLIMPEXP_CORE HINSTANCE wxGetInstance();
 
- }
 
- WXDLLIMPEXP_CORE void wxSetInstance(HINSTANCE hInst);
 
- #endif
 
- #include "wx/thread.h"
 
- static inline MRESULT MySendMsg(HWND hwnd, ULONG ulMsgid,
 
-                                 MPARAM mpParam1, MPARAM mpParam2)
 
- {
 
-     MRESULT vRes;
 
-     vRes = ::WinSendMsg(hwnd, ulMsgid, mpParam1, mpParam2);
 
- #if wxUSE_THREADS
 
-     if (!wxThread::IsMain())
 
-         ::WinPostMsg(hwnd, ulMsgid, mpParam1, mpParam2);
 
- #endif
 
-     return vRes;
 
- }
 
- #define WinSendMsg MySendMsg
 
- #ifdef __WXPM__
 
- WXDLLIMPEXP_CORE void wxDrawBorder( HPS     hPS
 
-                               ,RECTL&  rRect
 
-                               ,WXDWORD dwStyle
 
-                              );
 
- WXDLLIMPEXP_CORE wxWindow* wxFindWinFromHandle(WXHWND hWnd);
 
- WXDLLIMPEXP_CORE void   wxGetCharSize(WXHWND wnd, int *x, int *y,wxFont *the_font);
 
- WXDLLIMPEXP_CORE void   wxConvertVectorFontSize( FIXED   fxPointSize
 
-                                            ,PFATTRS pFattrs
 
-                                           );
 
- WXDLLIMPEXP_CORE void   wxFillLogFont( LOGFONT*      pLogFont
 
-                                  ,PFACENAMEDESC pFaceName
 
-                                  ,HPS*          phPS
 
-                                  ,bool*         pbInternalPS
 
-                                  ,long*         pflId
 
-                                  ,wxString&     sFaceName
 
-                                  ,wxFont*       pFont
 
-                                 );
 
- WXDLLIMPEXP_CORE wxFontEncoding wxGetFontEncFromCharSet(int nCharSet);
 
- WXDLLIMPEXP_CORE void   wxOS2SelectMatchingFontByName( PFATTRS       vFattrs
 
-                                                  ,PFACENAMEDESC pFaceName
 
-                                                  ,PFONTMETRICS  pFM
 
-                                                  ,int           nNumFonts
 
-                                                  ,const wxFont* pFont
 
-                                                 );
 
- WXDLLIMPEXP_CORE wxFont wxCreateFontFromLogFont( LOGFONT*      pLogFont
 
-                                            ,PFONTMETRICS  pFM
 
-                                            ,PFACENAMEDESC pFace
 
-                                           );
 
- WXDLLIMPEXP_CORE int    wxGpiStrcmp(wxChar* s0, wxChar* s1);
 
- 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
 
- WXDLLIMPEXP_CORE extern void wxFindMaxSize(WXHWND hwnd, RECT *rect);
 
- 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)
 
- WXDLLIMPEXP_CORE extern wxString wxGetWindowText(WXHWND hWnd);
 
- // get the window class name
 
- 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)
 
- WXDLLIMPEXP_CORE extern WXWORD wxGetWindowId(WXHWND hWnd);
 
- // Convert a PM Error code to a string
 
- WXDLLIMPEXP_BASE extern wxString wxPMErrorToStr(ERRORID vError);
 
- // Does this window style specify any border?
 
- inline bool wxStyleHasBorder(long style)
 
- {
 
-   return (style & (wxSIMPLE_BORDER | wxRAISED_BORDER |
 
-                    wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0;
 
- }
 
- inline RECTL wxGetWindowRect(HWND hWnd)
 
- {
 
-     RECTL                           vRect;
 
-     ::WinQueryWindowRect(hWnd, &vRect);
 
-     return vRect;
 
- } // end of wxGetWindowRect
 
- WXDLLIMPEXP_CORE extern void wxOS2SetFont( HWND          hWnd
 
-                                      ,const wxFont& rFont
 
-                                     );
 
- WXDLLIMPEXP_CORE extern bool wxCheckWindowWndProc( WXHWND    hWnd
 
-                                              ,WXFARPROC fnWndProc
 
-                                             );
 
- WXDLLIMPEXP_CORE extern wxBitmap wxDisableBitmap( const wxBitmap& rBmp
 
-                                             ,long            lColor
 
-                                            );
 
- #if wxUSE_GUI
 
- class wxColour;
 
- WXDLLIMPEXP_CORE extern COLORREF wxColourToRGB(const wxColour& rColor);
 
- #endif
 
- #endif // __WXPM__
 
- #endif // _WX_OS2_PRIVATE_H_
 
 
  |