fixed the problem with iconizing the miniframes

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2000-07-27 22:52:59 +00:00
parent 75cd4558aa
commit fce5b5df0c
3 changed files with 48 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: minifram.h
// Name: wx/msw/minifram.h
// Purpose: wxMiniFrame class
// Author: Julian Smart
// Modified by:
@@ -20,36 +20,33 @@
#ifdef __WIN32__
class WXDLLEXPORT wxMiniFrame: public wxFrame {
DECLARE_DYNAMIC_CLASS(wxMiniFrame)
class WXDLLEXPORT wxMiniFrame : public wxFrame
{
public:
inline wxMiniFrame(void) {}
inline wxMiniFrame(wxWindow *parent,
wxMiniFrame() { }
wxMiniFrame(wxWindow *parent,
wxWindowID id,
const wxString& title,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxDEFAULT_FRAME_STYLE,
long style = wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER,
const wxString& name = wxFrameNameStr)
{
Create(parent, id, title, pos, size, style | wxFRAME_TOOL_WINDOW | wxFRAME_FLOAT_ON_PARENT, name);
}
protected:
DECLARE_DYNAMIC_CLASS(wxMiniFrame)
};
#else
class WXDLLEXPORT wxMiniFrame: public wxFrame {
DECLARE_DYNAMIC_CLASS(wxMiniFrame)
#else // !Win32
class WXDLLEXPORT wxMiniFrame : public wxFrame
{
public:
inline wxMiniFrame(void) {}
inline wxMiniFrame(wxWindow *parent,
wxMiniFrame() { }
wxMiniFrame(wxWindow *parent,
wxWindowID id,
const wxString& title,
const wxPoint& pos = wxDefaultPosition,
@@ -60,15 +57,14 @@ public:
Create(parent, id, title, pos, size, style, name);
}
~wxMiniFrame(void);
virtual ~wxMiniFrame();
long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
virtual long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
protected:
DECLARE_DYNAMIC_CLASS(wxMiniFrame)
};
#endif
#endif // Win32/!Win32
#endif
// _WX_MINIFRAM_H_

View File

@@ -102,7 +102,6 @@ static wxString ConstructLibraryName(const wxString& basename)
return fullname;
}
// ---------------------------------------------------------------------------
// wxLibrary (one instance per dynamic library)
// ---------------------------------------------------------------------------

View File

@@ -620,10 +620,17 @@ bool wxFrame::MSWCreate(int id, wxWindow *parent, const wxChar *wclass, wxWindow
// could be the culprit. But without it, you can get a lot of flicker.
DWORD msflags = 0;
if ((style & wxCAPTION) == wxCAPTION)
msflags = WS_OVERLAPPED;
if ( style & wxCAPTION )
{
if ( style & wxFRAME_TOOL_WINDOW )
msflags |= WS_POPUPWINDOW;
else
msflags = WS_POPUP;
msflags |= WS_OVERLAPPED;
}
else
{
msflags |= WS_POPUP;
}
if (style & wxMINIMIZE_BOX)
msflags |= WS_MINIMIZEBOX;
@@ -779,6 +786,16 @@ void wxFrame::IconizeChildFrames(bool bIconize)
{
wxWindow *win = node->GetData();
// iconizing the frames with this style under Win95 shell puts them at
// the bottom of the screen (as the MDI children) instead of making
// them appear in the taskbar because they are, by virtue of this
// style, not managed by the taskbar - instead leave Windows take care
// of them
#ifdef __WIN95__
if ( win->GetWindowStyle() & wxFRAME_TOOL_WINDOW )
continue;
#endif // Win95
// 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);