temp [non] fix for wxTLW [non] creation under wxMSW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
be71e18af4
commit
7ee7c43f7e
@ -45,7 +45,6 @@ END_EVENT_TABLE()
|
||||
|
||||
WX_FORWARD_TO_INPUT_CONSUMER(wxTopLevelWindow)
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
@ -63,7 +62,7 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString& title,
|
||||
const wxPoint& pos,
|
||||
const wxSize& sizeOrig,
|
||||
const wxSize& size,
|
||||
long style,
|
||||
const wxString &name)
|
||||
{
|
||||
@ -82,31 +81,40 @@ bool wxTopLevelWindow::Create(wxWindow *parent,
|
||||
|
||||
styleOrig = style;
|
||||
exstyleOrig = GetExtraStyle();
|
||||
style &= ~(wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
|
||||
wxSYSTEM_MENU | wxRESIZE_BORDER | wxFRAME_TOOL_WINDOW |
|
||||
style &= ~(wxCAPTION | wxMINIMIZE_BOX | wxMAXIMIZE_BOX |
|
||||
wxSYSTEM_MENU | wxRESIZE_BORDER | wxFRAME_TOOL_WINDOW |
|
||||
wxTHICK_FRAME);
|
||||
style = wxSIMPLE_BORDER;
|
||||
SetExtraStyle(exstyleOrig &
|
||||
SetExtraStyle(exstyleOrig &
|
||||
~(wxFRAME_EX_CONTEXTHELP | wxDIALOG_EX_CONTEXTHELP));
|
||||
}
|
||||
|
||||
if ( !wxTopLevelWindowNative::Create(parent, id, title, pos,
|
||||
sizeOrig, style, name) )
|
||||
if ( !wxTopLevelWindowNative::Create(parent, id, title, pos,
|
||||
size, style, name) )
|
||||
return FALSE;
|
||||
|
||||
// FIXME: to be removed as soon as wxTLW/wxFrame/wxDialog creation code in
|
||||
// wxMSW is rationalized
|
||||
#ifdef __WXMSW__
|
||||
extern const wxChar *wxFrameClassName;
|
||||
if ( !MSWCreate(id, NULL, wxFrameClassName, this, title,
|
||||
pos.x, pos.y, size.x, size.y, style) )
|
||||
return FALSE;
|
||||
#endif // __WXMSW__
|
||||
|
||||
if ( ms_drawDecorations )
|
||||
{
|
||||
m_windowStyle = styleOrig;
|
||||
m_exStyle = exstyleOrig;
|
||||
}
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool wxTopLevelWindow::ShowFullScreen(bool show, long style)
|
||||
{
|
||||
if ( show == IsFullScreen() ) return FALSE;
|
||||
|
||||
|
||||
if ( ms_drawDecorations )
|
||||
{
|
||||
if ( show )
|
||||
@ -146,7 +154,7 @@ long wxTopLevelWindow::GetDecorationsStyle() const
|
||||
style |= wxTOPLEVEL_BORDER;
|
||||
if ( m_windowStyle & (wxRESIZE_BORDER | wxTHICK_FRAME) )
|
||||
style |= wxTOPLEVEL_RESIZEABLE;
|
||||
|
||||
|
||||
if ( IsMaximized() )
|
||||
style |= wxTOPLEVEL_MAXIMIZED;
|
||||
if ( GetIcon().Ok() )
|
||||
@ -176,7 +184,7 @@ wxPoint wxTopLevelWindow::GetClientAreaOrigin() const
|
||||
wxTopLevelWindowNative::DoGetClientSize(&w, &h);
|
||||
wxRect rect = wxRect(wxTopLevelWindowNative::GetClientAreaOrigin(),
|
||||
wxSize(w, h));
|
||||
rect = m_renderer->GetFrameClientArea(rect,
|
||||
rect = m_renderer->GetFrameClientArea(rect,
|
||||
GetDecorationsStyle());
|
||||
return rect.GetPosition();
|
||||
}
|
||||
@ -194,7 +202,7 @@ void wxTopLevelWindow::DoGetClientSize(int *width, int *height) const
|
||||
wxTopLevelWindowNative::DoGetClientSize(&w, &h);
|
||||
wxRect rect = wxRect(wxTopLevelWindowNative::GetClientAreaOrigin(),
|
||||
wxSize(w, h));
|
||||
rect = m_renderer->GetFrameClientArea(rect,
|
||||
rect = m_renderer->GetFrameClientArea(rect,
|
||||
GetDecorationsStyle());
|
||||
if ( width )
|
||||
*width = rect.width;
|
||||
@ -209,7 +217,7 @@ void wxTopLevelWindow::DoSetClientSize(int width, int height)
|
||||
{
|
||||
if ( ms_drawDecorations )
|
||||
{
|
||||
wxSize size = m_renderer->GetFrameTotalSize(wxSize(width, height),
|
||||
wxSize size = m_renderer->GetFrameTotalSize(wxSize(width, height),
|
||||
GetDecorationsStyle());
|
||||
wxTopLevelWindowNative::DoSetClientSize(size.x, size.y);
|
||||
}
|
||||
@ -232,7 +240,7 @@ void wxTopLevelWindow::OnNcPaint(wxPaintEvent& event)
|
||||
rect.height = size.y;
|
||||
|
||||
wxWindowDC dc(this);
|
||||
m_renderer->DrawFrameTitleBar(dc, rect,
|
||||
m_renderer->DrawFrameTitleBar(dc, rect,
|
||||
GetTitle(), m_titlebarIcon,
|
||||
GetDecorationsStyle(),
|
||||
m_pressedButton,
|
||||
@ -245,7 +253,7 @@ long wxTopLevelWindow::HitTest(const wxPoint& pt) const
|
||||
int w, h;
|
||||
wxTopLevelWindowNative::DoGetClientSize(&w, &h);
|
||||
wxRect rect(wxTopLevelWindowNative::GetClientAreaOrigin(), wxSize(w, h));
|
||||
|
||||
|
||||
return m_renderer->HitTestFrame(rect, pt, GetDecorationsStyle());
|
||||
}
|
||||
|
||||
@ -259,7 +267,7 @@ void wxTopLevelWindow::SetIcon(const wxIcon& icon)
|
||||
if ( !m_renderer ) return;
|
||||
|
||||
wxSize size = m_renderer->GetFrameIconSize();
|
||||
|
||||
|
||||
if ( !icon.Ok() || size.x == -1 )
|
||||
m_titlebarIcon = icon;
|
||||
else
|
||||
@ -310,7 +318,7 @@ void wxTopLevelWindow::ClickTitleBarButton(long button)
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
wxFAIL_MSG(wxT("incorrect button specification"));
|
||||
}
|
||||
@ -320,33 +328,35 @@ bool wxTopLevelWindow::PerformAction(const wxControlAction& action,
|
||||
long numArg,
|
||||
const wxString& strArg)
|
||||
{
|
||||
bool isActive = numArg != 0;
|
||||
|
||||
if ( action == wxACTION_TOPLEVEL_ACTIVATE )
|
||||
{
|
||||
if ( m_isActive != (bool)numArg )
|
||||
if ( m_isActive != isActive )
|
||||
{
|
||||
Refresh();
|
||||
m_isActive = (bool)numArg;
|
||||
m_isActive = isActive;
|
||||
wxNcPaintEvent event(GetId());
|
||||
event.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
else if ( action == wxACTION_TOPLEVEL_BUTTON_PRESS )
|
||||
{
|
||||
m_pressedButton = numArg;
|
||||
RefreshTitleBar();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
else if ( action == wxACTION_TOPLEVEL_BUTTON_RELEASE )
|
||||
{
|
||||
m_pressedButton = 0;
|
||||
RefreshTitleBar();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
else if ( action == wxACTION_TOPLEVEL_BUTTON_CLICK )
|
||||
{
|
||||
m_pressedButton = 0;
|
||||
@ -354,7 +364,7 @@ bool wxTopLevelWindow::PerformAction(const wxControlAction& action,
|
||||
ClickTitleBarButton(numArg);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
@ -389,7 +399,7 @@ bool wxStdFrameInputHandler::HandleMouse(wxInputConsumer *consumer,
|
||||
{
|
||||
wxTopLevelWindow *w = wxStaticCast(consumer->GetInputWindow(), wxTopLevelWindow);
|
||||
long hit = w->HitTest(event.GetPosition());
|
||||
|
||||
|
||||
if ( hit & wxHT_TOPLEVEL_ANY_BUTTON )
|
||||
{
|
||||
m_winCapture = w;
|
||||
@ -422,7 +432,7 @@ bool wxStdFrameInputHandler::HandleMouse(wxInputConsumer *consumer,
|
||||
return wxStdInputHandler::HandleMouse(consumer, event);
|
||||
}
|
||||
|
||||
bool wxStdFrameInputHandler::HandleMouseMove(wxInputConsumer *consumer,
|
||||
bool wxStdFrameInputHandler::HandleMouseMove(wxInputConsumer *consumer,
|
||||
const wxMouseEvent& event)
|
||||
{
|
||||
// we only have to do something when the mouse leaves/enters the pressed
|
||||
@ -437,7 +447,7 @@ bool wxStdFrameInputHandler::HandleMouseMove(wxInputConsumer *consumer,
|
||||
consumer->PerformAction(wxACTION_TOPLEVEL_BUTTON_RELEASE, m_winPressed);
|
||||
else
|
||||
consumer->PerformAction(wxACTION_TOPLEVEL_BUTTON_PRESS, m_winPressed);
|
||||
|
||||
|
||||
m_winHitTest = hit;
|
||||
return TRUE;
|
||||
}
|
||||
@ -446,7 +456,7 @@ bool wxStdFrameInputHandler::HandleMouseMove(wxInputConsumer *consumer,
|
||||
return wxStdInputHandler::HandleMouseMove(consumer, event);
|
||||
}
|
||||
|
||||
bool wxStdFrameInputHandler::HandleActivation(wxInputConsumer *consumer,
|
||||
bool wxStdFrameInputHandler::HandleActivation(wxInputConsumer *consumer,
|
||||
bool activated)
|
||||
{
|
||||
consumer->PerformAction(wxACTION_TOPLEVEL_ACTIVATE, activated);
|
||||
|
Loading…
Reference in New Issue
Block a user