X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3ca6a5f04692678cd2d9f3ea0843fc3f5a0b254f..c7ce8392e0fa752d121000b7732c8f4ac3e3088d:/src/msw/frame.cpp?ds=sidebyside diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp index 5b46e6c7c6..10ecf1553a 100644 --- a/src/msw/frame.cpp +++ b/src/msw/frame.cpp @@ -147,13 +147,6 @@ bool wxFrame::Create(wxWindow *parent, m_iconized = FALSE; - // we pass NULL as parent to MSWCreate because frames with parents behave - // very strangely under Win95 shell - // Alteration by JACS: keep normal Windows behaviour (float on top of parent) - // with this style. - if ((m_windowStyle & wxFRAME_FLOAT_ON_PARENT) == 0) - parent = NULL; - wxTopLevelWindows.Append(this); MSWCreate(m_windowId, parent, wxFrameClassName, this, title, @@ -523,9 +516,10 @@ bool wxFrame::ShowFullScreen(bool show, long style) // Save the number of fields in the statusbar if ((style & wxFULLSCREEN_NOSTATUSBAR) && theStatusBar) { - m_fsStatusBarFields = theStatusBar->GetFieldsCount(); - SetStatusBar((wxStatusBar*) NULL); - delete theStatusBar; + //m_fsStatusBarFields = theStatusBar->GetFieldsCount(); + //SetStatusBar((wxStatusBar*) NULL); + //delete theStatusBar; + theStatusBar->Show(FALSE); } else m_fsStatusBarFields = 0; @@ -587,10 +581,14 @@ bool wxFrame::ShowFullScreen(bool show, long style) theToolBar->Show(TRUE); } - if ((m_fsStyle & wxFULLSCREEN_NOSTATUSBAR) && (m_fsStatusBarFields > 0)) + if ((m_fsStyle & wxFULLSCREEN_NOSTATUSBAR)) // && (m_fsStatusBarFields > 0)) { - CreateStatusBar(m_fsStatusBarFields); - PositionStatusBar(); + //CreateStatusBar(m_fsStatusBarFields); + if (GetStatusBar()) + { + GetStatusBar()->Show(TRUE); + PositionStatusBar(); + } } if ((m_fsStyle & wxFULLSCREEN_NOMENUBAR) && (m_hMenu != 0)) @@ -667,14 +665,24 @@ bool wxFrame::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow WXDWORD extendedStyle = MakeExtendedStyle(style); + // make all frames appear in the win9x shell taskbar unless + // wxFRAME_TOOL_WINDOW or wxFRAME_NO_TASKBAR is given - without giving them + // WS_EX_APPWINDOW style, the child (i.e. owned) frames wouldn't appear in it #if !defined(__WIN16__) && !defined(__SC__) - if (style & wxFRAME_TOOL_WINDOW) - extendedStyle |= WS_EX_TOOLWINDOW; + if ( style & wxFRAME_TOOL_WINDOW ) + extendedStyle |= WS_EX_TOOLWINDOW; + else if ( !(style & wxFRAME_NO_TASKBAR) ) + extendedStyle |= WS_EX_APPWINDOW; #endif if (style & wxSTAY_ON_TOP) extendedStyle |= WS_EX_TOPMOST; +#ifndef __WIN16__ + if (m_exStyle & wxFRAME_EX_CONTEXTHELP) + extendedStyle |= WS_EX_CONTEXTHELP; +#endif + m_iconized = FALSE; if ( !wxWindow::MSWCreate(id, parent, wclass, wx_win, title, x, y, width, height, msflags, NULL, extendedStyle) ) @@ -799,7 +807,7 @@ void wxFrame::IconizeChildFrames(bool bIconize) // the child MDI frames are a special case and should not be touched by // the parent frame - instead, they are managed by the user wxFrame *frame = wxDynamicCast(win, wxFrame); - if ( frame && !wxDynamicCast(frame, wxMDIChildFrame) ) + if ( frame && !frame->IsMDIChild() ) { frame->Iconize(bIconize); }