More OS/2 Updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster 2000-11-20 05:18:32 +00:00
parent 75212e68fd
commit b7084589db
3 changed files with 28 additions and 43 deletions

View File

@ -143,6 +143,7 @@ public:
void SetClient(WXHWND c_Hwnd);
void SetClient(wxWindow* c_Window);
wxWindow *GetClient();
HWND GetFrame(void) const { return m_hFrame; }
friend MRESULT EXPENTRY wxFrameWndProc(HWND hWnd,ULONG ulMsg, MPARAM wParam, MPARAM lParam);
friend MRESULT EXPENTRY wxFrameMainWndProc(HWND hWnd,ULONG ulMsg, MPARAM wParam, MPARAM lParam);

View File

@ -55,7 +55,9 @@ extern wxList WXDLLEXPORT wxPendingDelete;
extern wxChar wxFrameClassName[];
extern wxMenu *wxCurrentPopupMenu;
extern void wxAssociateWinWithHandle( HWND hWnd,wxWindow* pWin);
extern void wxAssociateWinWithHandle( HWND hWnd
,wxWindow* pWin
);
// ----------------------------------------------------------------------------
// event tables
@ -630,7 +632,7 @@ void wxFrame::InternalSetMenuBar()
sError = wxPMErrorToStr(vError);
wxLogError("Error setting parent for submenu. Error: %s\n", sError);
}
WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
} // end of wxFrame::InternalSetMenuBar
//
@ -706,9 +708,9 @@ bool wxFrame::ShowFullScreen(
if (lStyle & wxFULLSCREEN_NOMENUBAR)
{
::WinSetParent(m_hMenu, GetHWND(), FALSE);
::WinSetOwner(m_hMenu, GetHWND());
::WinSendMsg((HWND)GetHWND(), WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
::WinSetParent(m_hMenu, m_hFrame, FALSE);
::WinSetOwner(m_hMenu, m_hFrame);
::WinSendMsg((HWND)m_hFrame, WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
}
#if wxUSE_STATUSBAR
@ -732,16 +734,16 @@ bool wxFrame::ShowFullScreen(
//
// Save the 'normal' window style
//
m_lFsOldWindowStyle = ::WinQueryWindowULong((HWND)GetHWND(), QWL_STYLE);
m_lFsOldWindowStyle = ::WinQueryWindowULong(m_hFrame, QWL_STYLE);
//
// Save the old position, width & height, maximize state
// Save the old position, width & height, maximize state
//
m_vFsOldSize = GetRect();
m_bFsIsMaximized = IsMaximized();
//
// Decide which window style flags to turn off
// Decide which window style flags to turn off
//
LONG lNewStyle = m_lFsOldWindowStyle;
LONG lOffFlags = 0;
@ -756,7 +758,7 @@ bool wxFrame::ShowFullScreen(
//
// Change our window style to be compatible with full-screen mode
//
::WinSetWindowULong((HWND)GetHWND(), QWL_STYLE, (ULONG)lNewStyle);
::WinSetWindowULong((HWND)m_hFrame, QWL_STYLE, (ULONG)lNewStyle);
//
// Resize to the size of the desktop
@ -827,13 +829,13 @@ bool wxFrame::ShowFullScreen(
if ((m_lFsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0))
{
::WinSetParent(m_hMenu, GetHWND(), FALSE);
::WinSetOwner(m_hMenu, GetHWND());
::WinSendMsg((HWND)GetHWND(), WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
::WinSetParent(m_hMenu, m_hFrame, FALSE);
::WinSetOwner(m_hMenu, m_hFrame);
::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)FCF_MENU, (MPARAM)0);
}
Maximize(m_bFsIsMaximized);
::WinSetWindowULong( (HWND)GetHWND()
::WinSetWindowULong( m_hFrame
,QWL_STYLE
,(ULONG)m_lFsOldWindowStyle
);
@ -1253,7 +1255,7 @@ bool wxFrame::HandlePaint()
HPOINTER hIcon;
if (m_icon.Ok())
hIcon = (HPOINTER)::WinSendMsg(GetHWND(), WM_QUERYICON, 0L, 0L);
hIcon = (HPOINTER)::WinSendMsg(m_hFrame, WM_QUERYICON, 0L, 0L);
else
hIcon = (HPOINTER)m_hDefaultIcon;
@ -1721,7 +1723,7 @@ void wxFrame::SetClient(
pOldClient->Show( FALSE );
::WinSetWindowUShort(pOldClient->GetHWND(), QWS_ID, (USHORT)pOldClient->GetId());
// to avoid OS/2 bug need to update frame
::WinSendMsg((HWND)this->GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
::WinSendMsg((HWND)this->GetFrame(), WM_UPDATEFRAME, (MPARAM)~0, 0);
return;
}
@ -1746,11 +1748,11 @@ void wxFrame::SetClient(
if( this->IsShown() )
{
this->Show();
::WinSendMsg(GetHWND(), WM_UPDATEFRAME, (MPARAM)~0, 0);
::WinSendMsg(m_hFrame, WM_UPDATEFRAME, (MPARAM)~0, 0);
}
}
wxWindow* wxFrame::GetClient()
{
return wxFindWinFromHandle((WXHWND)::WinWindowFromID(GetHWND(), FID_CLIENT));
return wxFindWinFromHandle((WXHWND)::WinWindowFromID(m_hFrame, FID_CLIENT));
}

View File

@ -37,11 +37,6 @@
#include <stdio.h>
#endif
#define DEBUG_PRINTF(NAME) { static int raz=0; \
printf( #NAME " %i\n",raz); fflush(stdout); \
raz++; \
}
#if wxUSE_OWNER_DRAWN
#include "wx/ownerdrw.h"
#endif
@ -250,9 +245,6 @@ bool wxWindow::OS2Command(
, WXWORD WXUNUSED(uId)
)
{
DEBUG_PRINTF(wxWindow::OS2Command);
return(FALSE);
}
@ -302,9 +294,6 @@ void wxWindow::Init()
m_lLastMouseY = -1;
m_nLastMouseEvent = -1;
#endif // wxUSE_MOUSEEVENT_HACK
DEBUG_PRINTF(wxWindow::Init-End);
} // wxWindow::Init
//
@ -312,7 +301,6 @@ DEBUG_PRINTF(wxWindow::Init-End);
//
wxWindow::~wxWindow()
{
DEBUG_PRINTF(wxWindow::~wxWindow-Start);
m_isBeingDeleted = TRUE;
OS2DetachWindowMenu();
@ -329,7 +317,6 @@ DEBUG_PRINTF(wxWindow::~wxWindow-Start);
//
wxRemoveHandleAssociation(this);
}
DEBUG_PRINTF(wxWindow::~wxWindow-End);
} // end of wxWindow::~wxWindow
bool wxWindow::Create(
@ -518,7 +505,6 @@ bool wxWindow::SetFont(
const wxFont& rFont
)
{
DEBUG_PRINTF(wxWindow::SetFont);
if (!wxWindowBase::SetFont(rFont))
{
// nothing to do
@ -1338,10 +1324,12 @@ int wxWindow::GetCharHeight() const
hPs = ::WinGetPS(GetHwnd());
if(!GpiQueryFontMetrics(hPs, sizeof(FONTMETRICS), &vFontMetrics))
{
::WinReleasePS(hPs);
return (0);
else
return(vFontMetrics.lMaxAscender + vFontMetrics.lMaxDescender);
}
::WinReleasePS(hPs);
return(vFontMetrics.lMaxAscender + vFontMetrics.lMaxDescender);
} // end of wxWindow::GetCharHeight
int wxWindow::GetCharWidth() const
@ -1352,10 +1340,12 @@ int wxWindow::GetCharWidth() const
hPs = ::WinGetPS(GetHwnd());
if(!GpiQueryFontMetrics(hPs, sizeof(FONTMETRICS), &vFontMetrics))
{
::WinReleasePS(hPs);
return (0);
else
return(vFontMetrics.lAveCharWidth);
}
::WinReleasePS(hPs);
return(vFontMetrics.lAveCharWidth);
} // end of wxWindow::GetCharWidth
void wxWindow::GetTextExtent(
@ -1519,8 +1509,6 @@ MRESULT wxWindow::OS2DefWindowProc(
, WXLPARAM lParam
)
{
DEBUG_PRINTF(wxWindow::OS2DefWindowProc);
if (m_fnOldWndProc)
return (MRESULT)m_fnOldWndProc(GetHWND(), (ULONG)uMsg, (MPARAM)wParam, (MPARAM)lParam);
else
@ -1804,7 +1792,6 @@ MRESULT EXPENTRY wxWndProc(
// Trace all ulMsgs - useful for the debugging
//
#ifdef __WXDEBUG__
DEBUG_PRINTF(__WXDEBUG__wxWndProc);
wxLogTrace(wxTraceMessages, wxT("Processing %s(wParam=%8lx, lParam=%8lx)"),
wxGetMessageName(ulMsg), wParam, lParam);
#endif // __WXDEBUG__
@ -1933,7 +1920,6 @@ MRESULT wxWindow::OS2WindowProc(
break;
case WM_PAINT:
DEBUG_PRINTF(WM_PAINT)
bProcessed = HandlePaint();
break;
@ -1944,11 +1930,9 @@ DEBUG_PRINTF(WM_PAINT)
//
bProcessed = TRUE;
mResult = (MRESULT)TRUE;
DEBUG_PRINTF(WM_CLOSE)
break;
case WM_SHOW:
DEBUG_PRINTF(WM_SHOW)
bProcessed = HandleShow(wParam != 0, (int)lParam);
break;
@ -1987,11 +1971,9 @@ DEBUG_PRINTF(WM_SHOW)
{
WORD id, cmd;
WXHWND hwnd;
DEBUG_PRINTF(WM_COMMAND-in)
UnpackCommand(wParam, lParam, &id, &hwnd, &cmd);
bProcessed = HandleCommand(id, cmd, hwnd);
DEBUG_PRINTF(WM_COMMAND-out)
}
break;