#include "wx/log.h"
#include "wx/intl.h"
#include "wx/frame.h"
+ #include "wx/control.h"
#endif //WX_PRECOMP
#include "wx/os2/private.h"
,nHeight
,SWP_MOVE | SWP_SIZE | SWP_ZORDER | SWP_SHOW
);
- if (!rsTitle.IsNull())
- {
- ::WinSetWindowText(GetHwnd(), rsTitle.c_str());
- }
SubclassWin(m_hWnd);
return TRUE;
} // end of wxTopLevelWindowOS2::CreateDialog
wxAssociateWinWithHandle(m_hWnd, this);
wxAssociateWinWithHandle(m_hFrame, this);
- m_backgroundColour.Set(wxString("GREY"));
+ m_backgroundColour.Set(wxString("MEDIUM GREY"));
LONG lColor = (LONG)m_backgroundColour.GetPixel();
wxLogError("Error sizing frame. Error: %s\n", sError);
return FALSE;
}
+ lStyle = ::WinQueryWindowULong( m_hWnd
+ ,QWL_STYLE
+ );
+ lStyle |= WS_CLIPCHILDREN;
+ ::WinSetWindowULong( m_hWnd
+ ,QWL_STYLE
+ ,lStyle
+ );
return TRUE;
} // end of wxTopLevelWindowOS2::CreateFrame
int nShowCmd
)
{
- ::WinShowWindow(m_hFrame, (BOOL)nShowCmd);
+ ::WinShowWindow(m_hFrame, (BOOL)(nShowCmd & SWP_SHOW));
+
+ //
+ // Need to artificially send a size event as wxApps often expect to do some
+ // final child control sizing
+ SendSizeEvent();
m_bIconized = nShowCmd == SWP_MINIMIZE;
} // end of wxTopLevelWindowOS2::DoShowWindow
{
if (m_bMaximizeOnShow)
{
- nShowCmd = SWP_SHOW;
+ nShowCmd = SWP_MAXIMIZE;
m_bMaximizeOnShow = FALSE;
}
else
{
- nShowCmd = SWP_HIDE;
+ nShowCmd = SWP_SHOW;
}
}
else // hide
DoShowWindow(SWP_RESTORE);
} // end of wxTopLevelWindowOS2::Restore
+// generate an artificial resize event
+void wxTopLevelWindowOS2::SendSizeEvent()
+{
+ if (!m_bIconized)
+ {
+ RECTL vRect = wxGetWindowRect(GetHwnd());
+
+ (void)::WinPostMsg( m_hFrame
+ ,WM_SIZE
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ ,MPFROM2SHORT(vRect.xRight - vRect.xLeft, vRect.yTop - vRect.yBottom)
+ );
+ }
+} // end of wxTopLevelWindowOS2::SendSizeEvent
+
// ----------------------------------------------------------------------------
// wxTopLevelWindowOS2 fullscreen
// ----------------------------------------------------------------------------