don't define SetShape() for Windows CE; use wxTLWBase::GetDefaultSize() to avoid creating too big windows under CE
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26616 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -58,7 +58,9 @@ public:
|
|||||||
virtual void SetIcons(const wxIconBundle& icons );
|
virtual void SetIcons(const wxIconBundle& icons );
|
||||||
virtual void Restore();
|
virtual void Restore();
|
||||||
|
|
||||||
|
#ifndef __WXWINCE__
|
||||||
virtual bool SetShape(const wxRegion& region);
|
virtual bool SetShape(const wxRegion& region);
|
||||||
|
#endif // __WXWINCE__
|
||||||
|
|
||||||
virtual bool Show(bool show = TRUE);
|
virtual bool Show(bool show = TRUE);
|
||||||
|
|
||||||
|
@@ -53,12 +53,6 @@
|
|||||||
#include "wx/msw/missing.h"
|
#include "wx/msw/missing.h"
|
||||||
#include "wx/msw/winundef.h"
|
#include "wx/msw/winundef.h"
|
||||||
|
|
||||||
// This can't be undefed in winundef.h or
|
|
||||||
// there are further errors
|
|
||||||
#if defined(__WXWINCE__) && defined(CreateDialog)
|
|
||||||
#undef CreateDialog
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "wx/display.h"
|
#include "wx/display.h"
|
||||||
|
|
||||||
#ifndef ICON_BIG
|
#ifndef ICON_BIG
|
||||||
@@ -166,34 +160,24 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
|
|||||||
msflags |= WS_POPUP;
|
msflags |= WS_POPUP;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#ifdef __WXWINCE__
|
|
||||||
if (msflags & WS_BORDER)
|
if (msflags & WS_BORDER)
|
||||||
#endif
|
|
||||||
msflags |= WS_OVERLAPPED;
|
msflags |= WS_OVERLAPPED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// border and caption styles
|
// border and caption styles
|
||||||
if ( style & wxRESIZE_BORDER )
|
if ( style & wxRESIZE_BORDER )
|
||||||
{
|
|
||||||
#ifndef __WXWINCE__
|
|
||||||
msflags |= WS_THICKFRAME;
|
msflags |= WS_THICKFRAME;
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else if ( exflags && ((style & wxBORDER_DOUBLE) || (style & wxBORDER_RAISED)) )
|
else if ( exflags && ((style & wxBORDER_DOUBLE) || (style & wxBORDER_RAISED)) )
|
||||||
*exflags |= WS_EX_DLGMODALFRAME;
|
*exflags |= WS_EX_DLGMODALFRAME;
|
||||||
else if ( !(style & wxBORDER_NONE) )
|
else if ( !(style & wxBORDER_NONE) )
|
||||||
msflags |= WS_BORDER;
|
msflags |= WS_BORDER;
|
||||||
#ifndef __WXWINCE__
|
|
||||||
else
|
else
|
||||||
msflags |= WS_POPUP;
|
msflags |= WS_POPUP;
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( style & wxCAPTION )
|
if ( style & wxCAPTION )
|
||||||
msflags |= WS_CAPTION;
|
msflags |= WS_CAPTION;
|
||||||
#ifndef __WXWINCE__
|
|
||||||
else
|
else
|
||||||
msflags |= WS_POPUP;
|
msflags |= WS_POPUP;
|
||||||
#endif
|
|
||||||
|
|
||||||
// next translate the individual flags
|
// next translate the individual flags
|
||||||
if ( style & wxMINIMIZE_BOX )
|
if ( style & wxMINIMIZE_BOX )
|
||||||
@@ -202,23 +186,20 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
|
|||||||
msflags |= WS_MAXIMIZEBOX;
|
msflags |= WS_MAXIMIZEBOX;
|
||||||
if ( style & wxSYSTEM_MENU )
|
if ( style & wxSYSTEM_MENU )
|
||||||
msflags |= WS_SYSMENU;
|
msflags |= WS_SYSMENU;
|
||||||
#ifndef __WXWINCE__
|
|
||||||
|
// under CE these 2 styles are not defined currently
|
||||||
|
#ifdef WS_MINIMIZE
|
||||||
if ( style & wxMINIMIZE )
|
if ( style & wxMINIMIZE )
|
||||||
msflags |= WS_MINIMIZE;
|
msflags |= WS_MINIMIZE;
|
||||||
|
#endif // WS_MINIMIZE
|
||||||
|
#ifdef WS_MAXIMIZE
|
||||||
if ( style & wxMAXIMIZE )
|
if ( style & wxMAXIMIZE )
|
||||||
msflags |= WS_MAXIMIZE;
|
msflags |= WS_MAXIMIZE;
|
||||||
#endif
|
#endif // WS_MAXIMIZE
|
||||||
|
|
||||||
// Keep this here because it saves recoding this function in wxTinyFrame
|
// Keep this here because it saves recoding this function in wxTinyFrame
|
||||||
#if wxUSE_ITSY_BITSY && !defined(__WIN32__)
|
|
||||||
if ( style & wxTINY_CAPTION_VERT )
|
|
||||||
msflags |= IBS_VERTCAPTION;
|
|
||||||
if ( style & wxTINY_CAPTION_HORIZ )
|
|
||||||
msflags |= IBS_HORZCAPTION;
|
|
||||||
#else
|
|
||||||
if ( style & (wxTINY_CAPTION_VERT | wxTINY_CAPTION_HORIZ) )
|
if ( style & (wxTINY_CAPTION_VERT | wxTINY_CAPTION_HORIZ) )
|
||||||
msflags |= WS_CAPTION;
|
msflags |= WS_CAPTION;
|
||||||
#endif
|
|
||||||
|
|
||||||
if ( exflags )
|
if ( exflags )
|
||||||
{
|
{
|
||||||
@@ -233,6 +214,8 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
|
|||||||
style |= wxFRAME_NO_TASKBAR;
|
style |= wxFRAME_NO_TASKBAR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// again, support for this is missing under CE
|
||||||
|
#ifdef WS_EX_APPWINDOW
|
||||||
// We have to solve 2 different problems here:
|
// We have to solve 2 different problems here:
|
||||||
//
|
//
|
||||||
// 1. frames with wxFRAME_NO_TASKBAR flag shouldn't appear in the
|
// 1. frames with wxFRAME_NO_TASKBAR flag shouldn't appear in the
|
||||||
@@ -245,23 +228,20 @@ WXDWORD wxTopLevelWindowMSW::MSWGetStyle(long style, WXDWORD *exflags) const
|
|||||||
// The second one is solved here by using WS_EX_APPWINDOW flag, the
|
// The second one is solved here by using WS_EX_APPWINDOW flag, the
|
||||||
// first one is dealt with in our MSWGetParent() method
|
// first one is dealt with in our MSWGetParent() method
|
||||||
// implementation
|
// implementation
|
||||||
#ifndef __WXWINCE__
|
|
||||||
if ( !(style & wxFRAME_NO_TASKBAR) && GetParent() )
|
if ( !(style & wxFRAME_NO_TASKBAR) && GetParent() )
|
||||||
{
|
{
|
||||||
// need to force the frame to appear in the taskbar
|
// need to force the frame to appear in the taskbar
|
||||||
*exflags |= WS_EX_APPWINDOW;
|
*exflags |= WS_EX_APPWINDOW;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
//else: nothing to do [here]
|
//else: nothing to do [here]
|
||||||
|
#endif // WS_EX_APPWINDOW
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( style & wxSTAY_ON_TOP )
|
if ( style & wxSTAY_ON_TOP )
|
||||||
*exflags |= WS_EX_TOPMOST;
|
*exflags |= WS_EX_TOPMOST;
|
||||||
|
|
||||||
#ifdef __WIN32__
|
|
||||||
if ( GetExtraStyle() & wxFRAME_EX_CONTEXTHELP )
|
if ( GetExtraStyle() & wxFRAME_EX_CONTEXTHELP )
|
||||||
*exflags |= WS_EX_CONTEXTHELP;
|
*exflags |= WS_EX_CONTEXTHELP;
|
||||||
#endif // __WIN32__
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return msflags;
|
return msflags;
|
||||||
@@ -433,12 +413,15 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
|
|||||||
const wxString& name)
|
const wxString& name)
|
||||||
{
|
{
|
||||||
bool ret wxDUMMY_INITIALIZE(false);
|
bool ret wxDUMMY_INITIALIZE(false);
|
||||||
int w, h;
|
|
||||||
|
|
||||||
// init our fields
|
// init our fields
|
||||||
Init();
|
Init();
|
||||||
w = WidthDefault(size.x);
|
|
||||||
h = HeightDefault(size.y);
|
wxSize sizeReal = size;
|
||||||
|
if ( !sizeReal.IsFullySpecified() )
|
||||||
|
{
|
||||||
|
sizeReal.SetDefaults(GetDefaultSize());
|
||||||
|
}
|
||||||
|
|
||||||
m_windowStyle = style;
|
m_windowStyle = style;
|
||||||
|
|
||||||
@@ -481,12 +464,12 @@ bool wxTopLevelWindowMSW::Create(wxWindow *parent,
|
|||||||
if ( style & (wxRESIZE_BORDER | wxCAPTION) )
|
if ( style & (wxRESIZE_BORDER | wxCAPTION) )
|
||||||
dlgTemplate->style |= DS_MODALFRAME;
|
dlgTemplate->style |= DS_MODALFRAME;
|
||||||
|
|
||||||
ret = CreateDialog(dlgTemplate, title, pos, wxSize(w,h));
|
ret = CreateDialog(dlgTemplate, title, pos, sizeReal);
|
||||||
free(dlgTemplate);
|
free(dlgTemplate);
|
||||||
}
|
}
|
||||||
else // !dialog
|
else // !dialog
|
||||||
{
|
{
|
||||||
ret = CreateFrame(title, pos, wxSize(w,h));
|
ret = CreateFrame(title, pos, sizeReal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ret && !(GetWindowStyleFlag() & wxCLOSE_BOX) )
|
if ( ret && !(GetWindowStyleFlag() & wxCLOSE_BOX) )
|
||||||
@@ -822,11 +805,10 @@ bool wxTopLevelWindowMSW::EnableCloseButton(bool enable)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef __WXWINCE__
|
||||||
|
|
||||||
bool wxTopLevelWindowMSW::SetShape(const wxRegion& region)
|
bool wxTopLevelWindowMSW::SetShape(const wxRegion& region)
|
||||||
{
|
{
|
||||||
#ifdef __WXWINCE__
|
|
||||||
return FALSE;
|
|
||||||
#else
|
|
||||||
wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), FALSE,
|
wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), FALSE,
|
||||||
_T("Shaped windows must be created with the wxFRAME_SHAPED style."));
|
_T("Shaped windows must be created with the wxFRAME_SHAPED style."));
|
||||||
|
|
||||||
@@ -867,9 +849,10 @@ bool wxTopLevelWindowMSW::SetShape(const wxRegion& region)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
return TRUE;
|
return TRUE;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif // !__WXWINCE__
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxTopLevelWindow event handling
|
// wxTopLevelWindow event handling
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user