More framework updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6403 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -196,6 +196,9 @@ WXDLLEXPORT extern wxString wxGetWindowClass(WXHWND hWnd);
|
|||||||
// is, for mainly historical reasons, signed)
|
// is, for mainly historical reasons, signed)
|
||||||
WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd);
|
WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd);
|
||||||
|
|
||||||
|
// Convert a PM Error code to a string
|
||||||
|
WXDLLEXPORT extern wxString wxPMErrorToStr(ERRORID vError);
|
||||||
|
|
||||||
// Does this window style specify any border?
|
// Does this window style specify any border?
|
||||||
inline bool wxStyleHasBorder(long style)
|
inline bool wxStyleHasBorder(long style)
|
||||||
{
|
{
|
||||||
|
150
src/os2/app.cpp
150
src/os2/app.cpp
@@ -119,6 +119,16 @@ bool wxApp::Initialize(
|
|||||||
HAB vHab
|
HAB vHab
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
//
|
||||||
|
// OS2 has to have an anchorblock
|
||||||
|
//
|
||||||
|
vHab = WinInitialize(0);
|
||||||
|
|
||||||
|
if (!vHab)
|
||||||
|
return FALSE;
|
||||||
|
else
|
||||||
|
vHabmain = vHab;
|
||||||
|
|
||||||
// Some people may wish to use this, but
|
// Some people may wish to use this, but
|
||||||
// probably it shouldn't be here by default.
|
// probably it shouldn't be here by default.
|
||||||
#ifdef __WXDEBUG__
|
#ifdef __WXDEBUG__
|
||||||
@@ -188,100 +198,110 @@ bool wxApp::RegisterWindowClasses(
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
APIRET rc;
|
APIRET rc;
|
||||||
|
ERRORID vError = 0L;
|
||||||
|
wxString sError;
|
||||||
|
|
||||||
if ((rc = ::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxFrameClassName
|
,wxFrameClassName
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
|
,CS_SIZEREDRAW | CS_SYNCPAINT | CS_FRAME
|
||||||
,0
|
,0
|
||||||
)) != 0)
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(frame)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxFrameClassNameNoRedraw
|
,wxFrameClassNameNoRedraw
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
|
,CS_FRAME
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(no redraw frame)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxMDIFrameClassName
|
,wxMDIFrameClassName
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
|
,CS_SIZEREDRAW | CS_SYNCPAINT | CS_FRAME
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(MDI parent)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxMDIFrameClassNameNoRedraw
|
,wxMDIFrameClassNameNoRedraw
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_HITTEST | CS_CLIPCHILDREN | CS_FRAME
|
,CS_FRAME
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(no redraw MDI parent)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxMDIChildFrameClassName
|
,wxMDIChildFrameClassName
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_CLIPSIBLINGS | CS_FRAME
|
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_SYNCPAINT | CS_HITTEST | CS_FRAME
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(MDI child)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxMDIChildFrameClassNameNoRedraw
|
,wxMDIChildFrameClassNameNoRedraw
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_HITTEST | CS_CLIPSIBLINGS | CS_FRAME
|
,CS_HITTEST | CS_FRAME
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(no redraw MDI child)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxPanelClassName
|
,wxPanelClassName
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_CLIPSIBLINGS | CS_SAVEBITS | CS_SYNCPAINT
|
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(Panel)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!::WinRegisterClass( vHab
|
if ((rc = ::WinRegisterClass( vHab
|
||||||
,wxCanvasClassName
|
,wxCanvasClassName
|
||||||
,(PFNWP)wxWndProc
|
,(PFNWP)wxWndProc
|
||||||
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_CLIPSIBLINGS | CS_SAVEBITS | CS_SYNCPAINT
|
,CS_MOVENOTIFY | CS_SIZEREDRAW | CS_HITTEST | CS_SAVEBITS | CS_SYNCPAINT
|
||||||
,0
|
,0
|
||||||
))
|
)) != 0)
|
||||||
{
|
{
|
||||||
wxLogLastError("RegisterClass(Canvas)");
|
vError = ::WinGetLastError(vHab);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogLastError(sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -483,9 +503,17 @@ int wxEntry(
|
|||||||
|
|
||||||
bool wxApp::OnInitGui()
|
bool wxApp::OnInitGui()
|
||||||
{
|
{
|
||||||
vHabmain = WinInitialize(0);
|
ERRORID vError;
|
||||||
m_hMq = WinCreateMsgQueue(vHabmain, 0);
|
wxString sError;
|
||||||
|
|
||||||
|
m_hMq = WinCreateMsgQueue(vHabmain, 0);
|
||||||
|
if (!m_hMq)
|
||||||
|
{
|
||||||
|
vError = ::WinGetLastError(vHabmain);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogDebug(sError);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -727,70 +727,63 @@ bool wxFrame::OS2Create(
|
|||||||
, long ulStyle
|
, long ulStyle
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ULONG ulPmFlags = 0;
|
ULONG ulPmFlags = 0L;
|
||||||
ULONG ulExtraFlags = 0;
|
ULONG ulExtraFlags = 0L;
|
||||||
ULONG ulTempFlags = FCF_TITLEBAR |
|
ULONG ulTempFlags = FCF_STANDARD;
|
||||||
FCF_SYSMENU |
|
|
||||||
FCF_MINBUTTON |
|
|
||||||
FCF_MAXBUTTON |
|
|
||||||
FCF_SIZEBORDER |
|
|
||||||
FCF_ICON |
|
|
||||||
FCF_MENU |
|
|
||||||
FCF_ACCELTABLE |
|
|
||||||
FCF_SHELLPOSITION |
|
|
||||||
FCF_TASKLIST;
|
|
||||||
|
|
||||||
m_hDefaultIcon = (WXHICON) (wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON : wxDEFAULT_FRAME_ICON);
|
m_hDefaultIcon = (WXHICON) (wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON : wxDEFAULT_FRAME_ICON);
|
||||||
|
|
||||||
if ((ulStyle & wxCAPTION) == wxCAPTION)
|
if (ulStyle == wxDEFAULT_FRAME_STYLE)
|
||||||
ulPmFlags = FCF_TASKLIST;
|
|
||||||
else
|
|
||||||
ulPmFlags = FCF_NOMOVEWITHOWNER;
|
|
||||||
|
|
||||||
if (ulStyle & wxMINIMIZE_BOX)
|
|
||||||
ulPmFlags |= FCF_MINBUTTON;
|
|
||||||
if (ulStyle & wxMAXIMIZE_BOX)
|
|
||||||
ulPmFlags |= FCF_MAXBUTTON;
|
|
||||||
if (ulStyle & wxTHICK_FRAME)
|
|
||||||
ulPmFlags |= FCF_DLGBORDER;
|
|
||||||
if (ulStyle & wxSYSTEM_MENU)
|
|
||||||
ulPmFlags |= FCF_SYSMENU;
|
|
||||||
if ((ulStyle & wxMINIMIZE) || (ulStyle & wxICONIZE))
|
|
||||||
ulPmFlags |= WS_MINIMIZED;
|
|
||||||
if (ulStyle & wxMAXIMIZE)
|
|
||||||
ulPmFlags |= WS_MAXIMIZED;
|
|
||||||
if (ulStyle & wxCAPTION)
|
|
||||||
ulPmFlags |= FCF_TASKLIST;
|
|
||||||
if (ulStyle & wxCLIP_CHILDREN)
|
|
||||||
{
|
|
||||||
// Invalid for frame windows under PM
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Keep this in wxFrame because it saves recoding this function
|
|
||||||
// in wxTinyFrame
|
|
||||||
//
|
|
||||||
#if wxUSE_ITSY_BITSY
|
|
||||||
if (ulStyle & wxTINY_CAPTION_VERT)
|
|
||||||
ulExtraFlags |= kVertCaption;
|
|
||||||
if (ulStyle & wxTINY_CAPTION_HORIZ)
|
|
||||||
ulExtraFlags |= kHorzCaption;
|
|
||||||
#else
|
|
||||||
if (ulStyle & wxTINY_CAPTION_VERT)
|
|
||||||
ulPmFlags |= FCF_TASKLIST;
|
|
||||||
if (ulStyle & wxTINY_CAPTION_HORIZ)
|
|
||||||
ulPmFlags |= FCF_TASKLIST;
|
|
||||||
#endif
|
|
||||||
if ((ulStyle & wxTHICK_FRAME) == 0)
|
|
||||||
ulPmFlags |= FCF_BORDER;
|
|
||||||
if (ulStyle & wxFRAME_TOOL_WINDOW)
|
|
||||||
ulExtraFlags = kFrameToolWindow;
|
|
||||||
|
|
||||||
if (ulStyle & wxSTAY_ON_TOP)
|
|
||||||
ulPmFlags |= FCF_SYSMODAL;
|
|
||||||
|
|
||||||
if (ulPmFlags & ulTempFlags)
|
|
||||||
ulPmFlags = FCF_STANDARD;
|
ulPmFlags = FCF_STANDARD;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((ulStyle & wxCAPTION) == wxCAPTION)
|
||||||
|
ulPmFlags = FCF_TASKLIST;
|
||||||
|
else
|
||||||
|
ulPmFlags = FCF_NOMOVEWITHOWNER;
|
||||||
|
|
||||||
|
if (ulStyle & wxMINIMIZE_BOX)
|
||||||
|
ulPmFlags |= FCF_MINBUTTON;
|
||||||
|
if (ulStyle & wxMAXIMIZE_BOX)
|
||||||
|
ulPmFlags |= FCF_MAXBUTTON;
|
||||||
|
if (ulStyle & wxTHICK_FRAME)
|
||||||
|
ulPmFlags |= FCF_DLGBORDER;
|
||||||
|
if (ulStyle & wxSYSTEM_MENU)
|
||||||
|
ulPmFlags |= FCF_SYSMENU;
|
||||||
|
if ((ulStyle & wxMINIMIZE) || (ulStyle & wxICONIZE))
|
||||||
|
ulPmFlags |= WS_MINIMIZED;
|
||||||
|
if (ulStyle & wxMAXIMIZE)
|
||||||
|
ulPmFlags |= WS_MAXIMIZED;
|
||||||
|
if (ulStyle & wxCAPTION)
|
||||||
|
ulPmFlags |= FCF_TASKLIST;
|
||||||
|
if (ulStyle & wxCLIP_CHILDREN)
|
||||||
|
{
|
||||||
|
// Invalid for frame windows under PM
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Keep this in wxFrame because it saves recoding this function
|
||||||
|
// in wxTinyFrame
|
||||||
|
//
|
||||||
|
#if wxUSE_ITSY_BITSY
|
||||||
|
if (ulStyle & wxTINY_CAPTION_VERT)
|
||||||
|
ulExtraFlags |= kVertCaption;
|
||||||
|
if (ulStyle & wxTINY_CAPTION_HORIZ)
|
||||||
|
ulExtraFlags |= kHorzCaption;
|
||||||
|
#else
|
||||||
|
if (ulStyle & wxTINY_CAPTION_VERT)
|
||||||
|
ulPmFlags |= FCF_TASKLIST;
|
||||||
|
if (ulStyle & wxTINY_CAPTION_HORIZ)
|
||||||
|
ulPmFlags |= FCF_TASKLIST;
|
||||||
|
#endif
|
||||||
|
if ((ulStyle & wxTHICK_FRAME) == 0)
|
||||||
|
ulPmFlags |= FCF_BORDER;
|
||||||
|
if (ulStyle & wxFRAME_TOOL_WINDOW)
|
||||||
|
ulExtraFlags = kFrameToolWindow;
|
||||||
|
|
||||||
|
if (ulStyle & wxSTAY_ON_TOP)
|
||||||
|
ulPmFlags |= FCF_SYSMODAL;
|
||||||
|
}
|
||||||
//
|
//
|
||||||
// Clear the visible flag, we always call show
|
// Clear the visible flag, we always call show
|
||||||
//
|
//
|
||||||
|
@@ -68,7 +68,15 @@ wxIcon::wxIcon(
|
|||||||
, int nDesiredHeight
|
, int nDesiredHeight
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
LoadFile( rIconFile
|
//
|
||||||
|
// A very poor hack, but we have to have separate icon files from windows
|
||||||
|
// So we have a modified name where replace the last three characters
|
||||||
|
// with os2. Also need the extension.
|
||||||
|
//
|
||||||
|
wxString sOs2Name = rIconFile.Mid(0, rIconFile.Length() - 3);
|
||||||
|
|
||||||
|
sOs2Name += "Os2.ico";
|
||||||
|
LoadFile( sOs2Name
|
||||||
,lFlags
|
,lFlags
|
||||||
,nDesiredWidth
|
,nDesiredWidth
|
||||||
,nDesiredHeight
|
,nDesiredHeight
|
||||||
|
@@ -915,7 +915,7 @@ $(WXDIR)\lib\wxos22.lib: $(OS2LIBOBJS2)
|
|||||||
ilib $(LIBFLAGS) $@ @<<
|
ilib $(LIBFLAGS) $@ @<<
|
||||||
$**;
|
$**;
|
||||||
<<
|
<<
|
||||||
del *.obj
|
# del *.obj
|
||||||
|
|
||||||
$(WXDIR)\lib\wx.lib: \
|
$(WXDIR)\lib\wx.lib: \
|
||||||
$D\dummy.obj \
|
$D\dummy.obj \
|
||||||
@@ -933,14 +933,14 @@ $(WXDIR)\lib\wx.lib: \
|
|||||||
ilib $(LIBFLAGS) $@ @<<
|
ilib $(LIBFLAGS) $@ @<<
|
||||||
$**;
|
$**;
|
||||||
<<
|
<<
|
||||||
del $(COMTEMPTGT1)
|
# del $(COMTEMPTGT1)
|
||||||
del $(COMTEMPTGT2)
|
# del $(COMTEMPTGT2)
|
||||||
del $(COMTEMPTGT3)
|
# del $(COMTEMPTGT3)
|
||||||
del $(GENTEMPTGT)
|
# del $(GENTEMPTGT)
|
||||||
del $(HTMLTEMPTGT)
|
# del $(HTMLTEMPTGT)
|
||||||
del $(NONESTEMPTGT)
|
# del $(NONESTEMPTGT)
|
||||||
del $(OS2TEMPTGT1)
|
# del $(OS2TEMPTGT1)
|
||||||
del $(OS2TEMPTGT2)
|
# del $(OS2TEMPTGT2)
|
||||||
|
|
||||||
!else
|
!else
|
||||||
|
|
||||||
|
@@ -180,17 +180,17 @@ void wxMenuItem::Enable(
|
|||||||
if (m_isEnabled == bEnable)
|
if (m_isEnabled == bEnable)
|
||||||
return;
|
return;
|
||||||
if (bEnable)
|
if (bEnable)
|
||||||
bOk = ::WinSendMsg( GetHMenuOf(m_parentMenu)
|
bOk = (bool)::WinSendMsg( GetHMenuOf(m_parentMenu)
|
||||||
,MM_SETITEMATTR
|
,MM_SETITEMATTR
|
||||||
,MPFROM2SHORT(GetRealId(), TRUE)
|
,MPFROM2SHORT(GetRealId(), TRUE)
|
||||||
,MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED)
|
,MPFROM2SHORT(MIA_DISABLED, MIA_DISABLED)
|
||||||
);
|
);
|
||||||
else
|
else
|
||||||
bOk = ::WinSendMsg( GetHMenuOf(m_parentMenu)
|
bOk = (bool)::WinSendMsg( GetHMenuOf(m_parentMenu)
|
||||||
,MM_SETITEMATTR
|
,MM_SETITEMATTR
|
||||||
,MPFROM2SHORT(GetRealId(), TRUE)
|
,MPFROM2SHORT(GetRealId(), TRUE)
|
||||||
,MPFROM2SHORT(MIA_DISABLED, FALSE)
|
,MPFROM2SHORT(MIA_DISABLED, FALSE)
|
||||||
);
|
);
|
||||||
if (!bOk)
|
if (!bOk)
|
||||||
{
|
{
|
||||||
wxLogLastError("EnableMenuItem");
|
wxLogLastError("EnableMenuItem");
|
||||||
@@ -208,17 +208,17 @@ void wxMenuItem::Check(
|
|||||||
if (m_isChecked == bCheck)
|
if (m_isChecked == bCheck)
|
||||||
return;
|
return;
|
||||||
if (bCheck)
|
if (bCheck)
|
||||||
bOk = ::WinSendMsg( GetHMenuOf(m_parentMenu)
|
bOk = (bool)::WinSendMsg( GetHMenuOf(m_parentMenu)
|
||||||
,MM_SETITEMATTR
|
,MM_SETITEMATTR
|
||||||
,MPFROM2SHORT(GetRealId(), TRUE)
|
,MPFROM2SHORT(GetRealId(), TRUE)
|
||||||
,MPFROM2SHORT(MIA_CHECKED, MIA_CHECKED)
|
,MPFROM2SHORT(MIA_CHECKED, MIA_CHECKED)
|
||||||
);
|
);
|
||||||
else
|
else
|
||||||
bOk = ::WinSendMsg( GetHMenuOf(m_parentMenu)
|
bOk = (bool)::WinSendMsg( GetHMenuOf(m_parentMenu)
|
||||||
,MM_SETITEMATTR
|
,MM_SETITEMATTR
|
||||||
,MPFROM2SHORT(GetRealId(), TRUE)
|
,MPFROM2SHORT(GetRealId(), TRUE)
|
||||||
,MPFROM2SHORT(MIA_CHECKED, FALSE)
|
,MPFROM2SHORT(MIA_CHECKED, FALSE)
|
||||||
);
|
);
|
||||||
if (!bOk)
|
if (!bOk)
|
||||||
{
|
{
|
||||||
wxLogLastError("EnableMenuItem");
|
wxLogLastError("EnableMenuItem");
|
||||||
@@ -250,7 +250,7 @@ void wxMenuItem::SetText(
|
|||||||
USHORT uId = GetRealId();
|
USHORT uId = GetRealId();
|
||||||
MENUITEM vItem;
|
MENUITEM vItem;
|
||||||
USHORT uFlagsOld;
|
USHORT uFlagsOld;
|
||||||
|
|
||||||
if (!::WinSendMsg( hMenu
|
if (!::WinSendMsg( hMenu
|
||||||
,MM_QUERYITEM
|
,MM_QUERYITEM
|
||||||
,MPFROM2SHORT(uId, TRUE)
|
,MPFROM2SHORT(uId, TRUE)
|
||||||
|
@@ -817,3 +817,62 @@ WXWORD WXDLLEXPORT wxGetWindowId(
|
|||||||
return ::WinQueryWindowUShort((HWND)hWnd, QWS_ID);
|
return ::WinQueryWindowUShort((HWND)hWnd, QWS_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString WXDLLEXPORT wxPMErrorToStr(
|
||||||
|
ERRORID vError
|
||||||
|
)
|
||||||
|
{
|
||||||
|
wxString sError;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Remove the high order byte -- it is useless
|
||||||
|
//
|
||||||
|
vError &= 0x0000ffff;
|
||||||
|
switch(vError)
|
||||||
|
{
|
||||||
|
case PMERR_INVALID_HWND:
|
||||||
|
sError = wxT("Invalid window handle specified");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_FLAG:
|
||||||
|
sError = wxT("Invalid flag bit set");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_NO_MSG_QUEUE:
|
||||||
|
sError = wxT("No message queue available");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_PARM:
|
||||||
|
sError = wxT("Parameter contained invalid data");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_PARAMETERS:
|
||||||
|
sError = wxT("Parameter value is out of range");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_PARAMETER_OUT_OF_RANGE:
|
||||||
|
sError = wxT("Parameter value is out of range");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_INTEGER_ATOM:
|
||||||
|
sError = wxT("Not a valid atom");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_HATOMTBL:
|
||||||
|
sError = wxT("Atom table handle is invalid");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_INVALID_ATOM_NAME:
|
||||||
|
sError = wxT("Not a valid atom name");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PMERR_ATOM_NAME_NOT_FOUND:
|
||||||
|
sError = wxT("Valid name format, but cannot find name in atom table");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
sError = wxT("Unknown error");
|
||||||
|
}
|
||||||
|
return(sError);
|
||||||
|
} // end of wxPMErrorToStr
|
||||||
|
|
||||||
|
|
||||||
|
@@ -2327,6 +2327,8 @@ bool wxWindow::OS2Create(
|
|||||||
, WXDWORD dwExtendedStyle // Port compatability only
|
, WXDWORD dwExtendedStyle // Port compatability only
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
ERRORID vError;
|
||||||
|
wxString sError;
|
||||||
int nX1 = CW_USEDEFAULT;
|
int nX1 = CW_USEDEFAULT;
|
||||||
int nY1 = 0;
|
int nY1 = 0;
|
||||||
int nWidth1 = CW_USEDEFAULT;
|
int nWidth1 = CW_USEDEFAULT;
|
||||||
@@ -2350,6 +2352,8 @@ bool wxWindow::OS2Create(
|
|||||||
nWidth1 = vParentRect.xRight - vParentRect.xLeft;
|
nWidth1 = vParentRect.xRight - vParentRect.xLeft;
|
||||||
nHeight1 = vParentRect.yTop - vParentRect.yBottom;
|
nHeight1 = vParentRect.yTop - vParentRect.yBottom;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
hParent = HWND_DESKTOP;
|
||||||
|
|
||||||
if (nX > -1)
|
if (nX > -1)
|
||||||
nX1 = nX;
|
nX1 = nX;
|
||||||
@@ -2373,7 +2377,7 @@ bool wxWindow::OS2Create(
|
|||||||
PDLGTEMPLATE pDlgt;
|
PDLGTEMPLATE pDlgt;
|
||||||
|
|
||||||
::DosGetResource(0L, RT_DIALOG, vId, (PPVOID)&pDlgt);
|
::DosGetResource(0L, RT_DIALOG, vId, (PPVOID)&pDlgt);
|
||||||
m_hWnd = (WXHWND)::WinCreateDlg( pParent->GetHWND()
|
m_hWnd = (WXHWND)::WinCreateDlg( hParent
|
||||||
,NULLHANDLE
|
,NULLHANDLE
|
||||||
,(PFNWP)wxDlgProc
|
,(PFNWP)wxDlgProc
|
||||||
,pDlgt
|
,pDlgt
|
||||||
@@ -2381,8 +2385,11 @@ bool wxWindow::OS2Create(
|
|||||||
);
|
);
|
||||||
if (m_hWnd == 0)
|
if (m_hWnd == 0)
|
||||||
{
|
{
|
||||||
wxLogError(_("Can't find dummy dialog template!\n"
|
vError = ::WinGetLastError(vHabmain);
|
||||||
"Check resource include path for finding wx.rc."));
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogError("Can't find dummy dialog template!\n"
|
||||||
|
"Check resource include path for finding wx.rc.\n"
|
||||||
|
"Error: %s\n", sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2398,7 +2405,9 @@ bool wxWindow::OS2Create(
|
|||||||
,SWP_MOVE | SWP_SIZE | SWP_NOREDRAW
|
,SWP_MOVE | SWP_SIZE | SWP_NOREDRAW
|
||||||
));
|
));
|
||||||
{
|
{
|
||||||
wxLogLastError(wxT("MoveWindow"));
|
vError = ::WinGetLastError(vHabmain);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogError("MoveWindow, error: %s\n", sError);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -2447,7 +2456,9 @@ bool wxWindow::OS2Create(
|
|||||||
);
|
);
|
||||||
if (!m_hWnd)
|
if (!m_hWnd)
|
||||||
{
|
{
|
||||||
wxLogError("Can't create window of class %s!\n", zWclass);
|
vError = ::WinGetLastError(vHabmain);
|
||||||
|
sError = wxPMErrorToStr(vError);
|
||||||
|
wxLogError("Can't create window of class %s!. Error: %s\n", zWclass, sError);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user