+ //
+ // Decide which window style flags to turn off
+ //
+ LONG lNewStyle = m_lFsOldWindowStyle;
+ LONG lOffFlags = 0;
+
+ if (lStyle & wxFULLSCREEN_NOBORDER)
+ lOffFlags |= FCF_BORDER;
+ if (lStyle & wxFULLSCREEN_NOCAPTION)
+ lOffFlags |= (FCF_TASKLIST | FCF_SYSMENU);
+
+ lNewStyle &= (~lOffFlags);
+
+ //
+ // Change our window style to be compatible with full-screen mode
+ //
+ ::WinSetWindowULong((HWND)GetHWND(), QWL_STYLE, (ULONG)lNewStyle);
+
+ //
+ // Resize to the size of the desktop
+ int nWidth;
+ int nHeight;
+
+ RECTL vRect;
+
+ ::WinQueryWindowRect(HWND_DESKTOP, &vRect);
+ nWidth = vRect.xRight - vRect.xLeft;
+ //
+ // Rmember OS/2 is backwards!
+ //
+ nHeight = vRect.yTop - vRect.yBottom;
+
+ SetSize( nWidth
+ ,nHeight
+ );
+
+ //
+ // Now flush the window style cache and actually go full-screen
+ //
+ ::WinSetWindowPos( (HWND) GetParent()->GetHWND()
+ ,HWND_TOP
+ ,0
+ ,0
+ ,nWidth
+ ,nHeight
+ ,SWP_SIZE | SWP_SHOW
+ );
+
+ wxSizeEvent vEvent( wxSize( nWidth
+ ,nHeight
+ )
+ ,GetId()
+ );
+
+ GetEventHandler()->ProcessEvent(vEvent);
+ return TRUE;
+ }
+ else
+ {
+ if (!IsFullScreen())
+ return FALSE;
+
+ m_bFsIsShowing = FALSE;
+
+ wxToolBar* pTheToolBar = GetToolBar();
+
+ //
+ // Restore the toolbar, menubar, and statusbar
+ //
+ if (pTheToolBar && (m_lFsStyle & wxFULLSCREEN_NOTOOLBAR))
+ {
+ pTheToolBar->SetSize(-1, m_nFsToolBarHeight);
+ pTheToolBar->Show(TRUE);
+ }
+
+ if ((m_lFsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_nFsStatusBarFields > 0))
+ {
+ CreateStatusBar(m_nFsStatusBarFields);
+ PositionStatusBar();
+ }
+
+ 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);
+ }
+ Maximize(m_bFsIsMaximized);
+
+ ::WinSetWindowULong( (HWND)GetHWND()
+ ,QWL_STYLE
+ ,(ULONG)m_lFsOldWindowStyle
+ );
+ ::WinSetWindowPos( (HWND) GetParent()->GetHWND()
+ ,HWND_TOP
+ ,m_vFsOldSize.x
+ ,m_vFsOldSize.y
+ ,m_vFsOldSize.width
+ ,m_vFsOldSize.height
+ ,SWP_SIZE | SWP_SHOW
+ );
+ return TRUE;
+ }
+} // end of wxFrame::ShowFullScreen
+
+//
+// Frame window
+//
+bool wxFrame::OS2Create(
+ int nId
+, wxWindow* pParent
+, const wxChar* zWclass
+, wxWindow* pWxWin
+, const wxChar* zTitle
+, int nX
+, int nY
+, int nWidth
+, int nHeight
+, long ulStyle
+)