Three more attempts to get metal look.
- Added a few flags for inheriting background. - Added wxWindow param to wxR::DrawBackground() - Added wxR::DrawButtonSurface() - Removed wxR::DrawBackground() from wxR::DrawButtonBorder() - Adde DrawMetal to Metal theme Fixed minor bug in wxGTK scrollbar. Changed code in wxX11 wxTLW so that startup flicker no longer occurs in wxFrame. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
aaae829664
commit
193e19cfdf
@ -81,6 +81,10 @@ public:
|
||||
|
||||
virtual void InitDialog();
|
||||
|
||||
#ifdef __WXUNIV__
|
||||
virtual bool ProvidesBackground() { return TRUE; }
|
||||
#endif
|
||||
|
||||
WX_DECLARE_CONTROL_CONTAINER();
|
||||
|
||||
protected:
|
||||
|
@ -109,6 +109,8 @@ protected:
|
||||
long numArg = -1,
|
||||
const wxString& strArg = wxEmptyString);
|
||||
virtual wxSize DoGetBestClientSize() const;
|
||||
|
||||
virtual bool DoDrawBackground(wxDC& dc);
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
||||
virtual bool CanBeHighlighted() const { return TRUE; }
|
||||
|
@ -101,6 +101,8 @@ public:
|
||||
// overridden base class virtuals
|
||||
virtual bool IsPressed() const { return m_isPressed; }
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
virtual bool PerformAction(const wxControlAction& action,
|
||||
long numArg = -1,
|
||||
|
@ -69,7 +69,16 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags) = 0;
|
||||
int flags,
|
||||
wxWindow *window = NULL ) = 0;
|
||||
|
||||
// draw the button surface
|
||||
virtual void DrawButtonSurface(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags )
|
||||
{ DrawBackground( dc, col, rect, flags ); }
|
||||
|
||||
|
||||
// draw the label inside the given rectangle with the specified alignment
|
||||
// and optionally emphasize the character with the given index
|
||||
@ -497,8 +506,9 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags)
|
||||
{ m_renderer->DrawBackground(dc, col, rect, flags); }
|
||||
int flags,
|
||||
wxWindow *window = NULL )
|
||||
{ m_renderer->DrawBackground(dc, col, rect, flags, window ); }
|
||||
virtual void DrawLabel(wxDC& dc,
|
||||
const wxString& label,
|
||||
const wxRect& rect,
|
||||
|
@ -63,6 +63,8 @@ public:
|
||||
|
||||
wxIcon GetIcon() const;
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
private:
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
||||
|
@ -51,6 +51,8 @@ public:
|
||||
// take account of this
|
||||
virtual wxPoint GetBoxAreaOrigin() const;
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// draw the control
|
||||
virtual void DoDraw(wxControlRenderer *renderer);
|
||||
|
@ -55,6 +55,8 @@ public:
|
||||
|
||||
virtual void SetLabel(const wxString& label);
|
||||
|
||||
virtual bool HasTransparentBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// calculate the optimal size for the label
|
||||
virtual wxSize DoGetBestClientSize() const;
|
||||
|
@ -143,6 +143,8 @@ public:
|
||||
virtual int GetMinWidth() const;
|
||||
virtual int GetMinHeight() const;
|
||||
|
||||
virtual bool ProvidesBackground() { return TRUE; }
|
||||
|
||||
protected:
|
||||
// handle titlebar button click event
|
||||
virtual void ClickTitleBarButton(long button);
|
||||
|
@ -171,6 +171,16 @@ public:
|
||||
// control (e.g. a button, checkbox, ...)
|
||||
virtual bool IsContainerWindow() const { return FALSE; }
|
||||
|
||||
// returns TRUE if the control has "transparent" areas such
|
||||
// as a wxStaticText and wxCheckBox and the background should
|
||||
// be adapted from a parent window
|
||||
virtual bool HasTransparentBackground() { return FALSE; }
|
||||
|
||||
// to be used with function above: transparent windows get
|
||||
// their background from parents that return TRUE here,
|
||||
// so this is mostly for wxPanel, wxTopLevelWindow etc.
|
||||
virtual bool ProvidesBackground() { return FALSE; }
|
||||
|
||||
// return TRUE if this control can be highlighted when the mouse is over
|
||||
// it (the theme decides itself whether it is really highlighted or not)
|
||||
virtual bool CanBeHighlighted() const { return FALSE; }
|
||||
@ -201,9 +211,6 @@ public:
|
||||
// erase part of the control
|
||||
virtual void EraseBackground(wxDC& dc, const wxRect& rect);
|
||||
|
||||
// see below
|
||||
bool HasDialogBackground() { return m_hasDialogBackground; }
|
||||
|
||||
// overridden base class methods
|
||||
// -----------------------------
|
||||
|
||||
@ -270,10 +277,6 @@ protected:
|
||||
// the renderer we use
|
||||
wxRenderer *m_renderer;
|
||||
|
||||
// background like a dialog (e.g. wxStaticText,
|
||||
// wxRadioButton), not with a surface (wxButton)
|
||||
bool m_hasDialogBackground;
|
||||
|
||||
// background bitmap info
|
||||
wxBitmap m_bitmapBg;
|
||||
int m_alignBgBitmap;
|
||||
|
@ -114,9 +114,9 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
|
||||
{
|
||||
wxEventType command = wxEVT_SCROLL_THUMBRELEASE;
|
||||
int value = (int)ceil(win->m_adjust->value);
|
||||
int dir = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
|
||||
int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
|
||||
|
||||
wxScrollEvent event( command, value, dir );
|
||||
wxScrollEvent event( command, win->GetId(), value, orient );
|
||||
event.SetEventObject( win );
|
||||
win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
@ -114,9 +114,9 @@ static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget),
|
||||
{
|
||||
wxEventType command = wxEVT_SCROLL_THUMBRELEASE;
|
||||
int value = (int)ceil(win->m_adjust->value);
|
||||
int dir = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
|
||||
int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL;
|
||||
|
||||
wxScrollEvent event( command, value, dir );
|
||||
wxScrollEvent event( command, win->GetId(), value, orient );
|
||||
event.SetEventObject( win );
|
||||
win->GetEventHandler()->ProcessEvent( event );
|
||||
}
|
||||
|
@ -39,6 +39,7 @@
|
||||
#include "wx/univ/renderer.h"
|
||||
#include "wx/univ/inphand.h"
|
||||
#include "wx/univ/theme.h"
|
||||
#include "wx/univ/colschem.h"
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
@ -162,6 +163,30 @@ void wxButton::DoDraw(wxControlRenderer *renderer)
|
||||
renderer->DrawLabel(m_bitmap, m_marginBmpX, m_marginBmpY);
|
||||
}
|
||||
|
||||
bool wxButton::DoDrawBackground(wxDC& dc)
|
||||
{
|
||||
wxRect rect;
|
||||
wxSize size = GetSize();
|
||||
rect.width = size.x;
|
||||
rect.height = size.y;
|
||||
|
||||
if ( GetBackgroundBitmap().Ok() )
|
||||
{
|
||||
// get the bitmap and the flags
|
||||
int alignment;
|
||||
wxStretch stretch;
|
||||
wxBitmap bmp = GetBackgroundBitmap(&alignment, &stretch);
|
||||
wxControlRenderer::DrawBitmap(dc, bmp, rect, alignment, stretch);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_renderer->DrawButtonSurface(dc, wxTHEME_BG_COLOUR(this),
|
||||
rect, GetStateFlags());
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// input processing
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -70,8 +70,6 @@ bool wxCheckBox::Create(wxWindow *parent,
|
||||
if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
|
||||
return FALSE;
|
||||
|
||||
m_hasDialogBackground = TRUE;
|
||||
|
||||
SetLabel(label);
|
||||
SetBestSize(size);
|
||||
|
||||
|
@ -468,7 +468,8 @@ void wxControlRenderer::DrawButtonBorder()
|
||||
|
||||
m_renderer->DrawButtonBorder(m_dc, m_rect, flags, &m_rect);
|
||||
|
||||
m_renderer->DrawBackground(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags);
|
||||
// Why do this here?
|
||||
// m_renderer->DrawButtonSurface(m_dc, wxTHEME_BG_COLOUR(m_window), m_rect, flags );
|
||||
}
|
||||
|
||||
void wxControlRenderer::DrawBitmap(const wxBitmap& bitmap)
|
||||
|
@ -60,8 +60,6 @@ bool wxStaticBitmap::Create(wxWindow *parent,
|
||||
if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
|
||||
return FALSE;
|
||||
|
||||
m_hasDialogBackground = TRUE;
|
||||
|
||||
// set bitmap first
|
||||
SetBitmap(label);
|
||||
|
||||
|
@ -58,8 +58,6 @@ bool wxStaticBox::Create(wxWindow *parent,
|
||||
if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
|
||||
return FALSE;
|
||||
|
||||
m_hasDialogBackground = TRUE;
|
||||
|
||||
SetLabel(label);
|
||||
|
||||
return TRUE;
|
||||
|
@ -59,8 +59,6 @@ bool wxStaticText::Create(wxWindow *parent,
|
||||
if ( !wxControl::Create(parent, id, pos, size, style, wxDefaultValidator, name) )
|
||||
return FALSE;
|
||||
|
||||
m_hasDialogBackground = TRUE;
|
||||
|
||||
SetLabel(label);
|
||||
SetBestSize(size);
|
||||
|
||||
|
@ -77,7 +77,8 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags = 0);
|
||||
int flags = 0,
|
||||
wxWindow *window = NULL );
|
||||
virtual void DrawLabel(wxDC& dc,
|
||||
const wxString& label,
|
||||
const wxRect& rect,
|
||||
@ -336,7 +337,8 @@ protected:
|
||||
// draw the background with any colour, not only the default one(s)
|
||||
void DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect);
|
||||
const wxRect& rect,
|
||||
wxWindow *window = NULL);
|
||||
|
||||
// DrawBorder() helpers: all of them shift and clip the DC after drawing
|
||||
// the border
|
||||
@ -2280,7 +2282,8 @@ void wxGTKRenderer::GetComboBitmaps(wxBitmap *bmpNormal,
|
||||
|
||||
void wxGTKRenderer::DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect)
|
||||
const wxRect& rect,
|
||||
wxWindow *window )
|
||||
{
|
||||
wxBrush brush(col, wxSOLID);
|
||||
dc.SetBrush(brush);
|
||||
@ -2291,10 +2294,11 @@ void wxGTKRenderer::DoDrawBackground(wxDC& dc,
|
||||
void wxGTKRenderer::DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags)
|
||||
int flags,
|
||||
wxWindow *window )
|
||||
{
|
||||
wxColour colBg = col.Ok() ? col : GetBackgroundColour(flags);
|
||||
DoDrawBackground(dc, colBg, rect);
|
||||
DoDrawBackground(dc, colBg, rect, window );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -144,11 +144,19 @@ public:
|
||||
// ctor
|
||||
wxMetalRenderer(const wxColourScheme *scheme);
|
||||
|
||||
// Metal gradient
|
||||
void DrawMetal(wxDC &dc, const wxRect &rect );
|
||||
|
||||
// implement the base class pure virtuals
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags = 0);
|
||||
int flags = 0,
|
||||
wxWindow *window = NULL );
|
||||
virtual void DrawButtonSurface(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags );
|
||||
virtual void DrawLabel(wxDC& dc,
|
||||
const wxString& label,
|
||||
const wxRect& rect,
|
||||
@ -404,7 +412,8 @@ protected:
|
||||
// DrawButtonBorder() helper
|
||||
void DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect);
|
||||
const wxRect& rect,
|
||||
wxWindow *window = NULL );
|
||||
|
||||
// DrawBorder() helpers: all of them shift and clip the DC after drawing
|
||||
// the border
|
||||
@ -1331,12 +1340,6 @@ wxColour wxMetalColourScheme::GetBackground(wxWindow *win) const
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( win->HasDialogBackground() )
|
||||
{
|
||||
col = win->GetParent()->GetBackgroundColour();
|
||||
return col;
|
||||
}
|
||||
|
||||
int flags = win->GetStateFlags();
|
||||
|
||||
// the colour set by the user should be used for the normal state
|
||||
@ -3203,40 +3206,53 @@ void wxMetalRenderer::GetComboBitmaps(wxBitmap *bmpNormal,
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// metal gradient
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void wxMetalRenderer::DrawMetal(wxDC &dc, const wxRect &rect )
|
||||
{
|
||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
for (int y = rect.y; y < rect.height+rect.y; y++)
|
||||
{
|
||||
int intens = 230 + 80 * (rect.y-y) / rect.height;
|
||||
dc.SetBrush( wxBrush( wxColour(intens,intens,intens), wxSOLID ) );
|
||||
dc.DrawRectangle( rect.x, y, rect.width, 1 );
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// background
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void wxMetalRenderer::DrawButtonSurface(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags )
|
||||
{
|
||||
DrawMetal( dc, rect );
|
||||
}
|
||||
|
||||
void wxMetalRenderer::DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect)
|
||||
const wxRect& rect,
|
||||
wxWindow *window )
|
||||
{
|
||||
dc.SetPen(*wxTRANSPARENT_PEN);
|
||||
if (col == wxTheme::Get()->GetColourScheme()->Get( wxColourScheme::CONTROL ))
|
||||
{
|
||||
for (int y = rect.y; y < rect.height+rect.y; y++)
|
||||
{
|
||||
int intens = 230 + 80 * (rect.y-y) / rect.height;
|
||||
dc.SetBrush( wxBrush( wxColour(intens,intens,intens), wxSOLID ) );
|
||||
dc.DrawRectangle( rect.x, y, rect.width, 1 );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
wxBrush brush(col, wxSOLID);
|
||||
dc.SetBrush(brush);
|
||||
dc.DrawRectangle(rect);
|
||||
}
|
||||
wxBrush brush(col, wxSOLID);
|
||||
dc.SetBrush(brush);
|
||||
dc.DrawRectangle(rect);
|
||||
}
|
||||
|
||||
void wxMetalRenderer::DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags)
|
||||
int flags,
|
||||
wxWindow *window )
|
||||
{
|
||||
// just fill it with the given or default bg colour
|
||||
wxColour colBg = col.Ok() ? col : wxSCHEME_COLOUR(m_scheme, CONTROL);
|
||||
DoDrawBackground(dc, colBg, rect);
|
||||
DoDrawBackground(dc, colBg, rect, window);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
@ -3302,7 +3318,7 @@ void wxMetalRenderer::DrawArrowButton(wxDC& dc,
|
||||
wxArrowStyle arrowStyle)
|
||||
{
|
||||
wxRect rect = rectAll;
|
||||
DoDrawBackground(dc, wxSCHEME_COLOUR(m_scheme, CONTROL), rect);
|
||||
DrawMetal( dc, rect );
|
||||
DrawArrowBorder(dc, &rect, arrowStyle == Arrow_Pressed);
|
||||
DrawArrow(dc, rect, arrowDir, arrowStyle);
|
||||
}
|
||||
@ -3315,7 +3331,7 @@ void wxMetalRenderer::DrawScrollbarThumb(wxDC& dc,
|
||||
// we don't use the flags, the thumb never changes appearance
|
||||
wxRect rectThumb = rect;
|
||||
DrawArrowBorder(dc, &rectThumb);
|
||||
DrawBackground(dc, wxNullColour, rectThumb);
|
||||
DrawMetal( dc, rectThumb );
|
||||
}
|
||||
|
||||
void wxMetalRenderer::DrawScrollbarShaft(wxDC& dc,
|
||||
@ -3323,10 +3339,7 @@ void wxMetalRenderer::DrawScrollbarShaft(wxDC& dc,
|
||||
const wxRect& rectBar,
|
||||
int flags)
|
||||
{
|
||||
wxColourScheme::StdColour col = flags & wxCONTROL_PRESSED
|
||||
? wxColourScheme::SCROLLBAR_PRESSED
|
||||
: wxColourScheme::SCROLLBAR;
|
||||
DoDrawBackground(dc, m_scheme->Get(col), rectBar);
|
||||
DrawMetal( dc, rectBar );
|
||||
}
|
||||
|
||||
void wxMetalRenderer::DrawScrollCorner(wxDC& dc, const wxRect& rect)
|
||||
|
@ -148,7 +148,8 @@ public:
|
||||
virtual void DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags = 0);
|
||||
int flags = 0,
|
||||
wxWindow *window = NULL);
|
||||
virtual void DrawLabel(wxDC& dc,
|
||||
const wxString& label,
|
||||
const wxRect& rect,
|
||||
@ -404,7 +405,8 @@ protected:
|
||||
// DrawButtonBorder() helper
|
||||
void DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect);
|
||||
const wxRect& rect,
|
||||
wxWindow *window = NULL );
|
||||
|
||||
// DrawBorder() helpers: all of them shift and clip the DC after drawing
|
||||
// the border
|
||||
@ -3203,7 +3205,8 @@ void wxWin32Renderer::GetComboBitmaps(wxBitmap *bmpNormal,
|
||||
|
||||
void wxWin32Renderer::DoDrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect)
|
||||
const wxRect& rect,
|
||||
wxWindow *window )
|
||||
{
|
||||
wxBrush brush(col, wxSOLID);
|
||||
dc.SetBrush(brush);
|
||||
@ -3214,11 +3217,12 @@ void wxWin32Renderer::DoDrawBackground(wxDC& dc,
|
||||
void wxWin32Renderer::DrawBackground(wxDC& dc,
|
||||
const wxColour& col,
|
||||
const wxRect& rect,
|
||||
int flags)
|
||||
int flags,
|
||||
wxWindow *window )
|
||||
{
|
||||
// just fill it with the given or default bg colour
|
||||
wxColour colBg = col.Ok() ? col : wxSCHEME_COLOUR(m_scheme, CONTROL);
|
||||
DoDrawBackground(dc, colBg, rect);
|
||||
DoDrawBackground(dc, colBg, rect, window );
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@ -111,8 +111,6 @@ void wxWindow::Init()
|
||||
|
||||
m_oldSize.x = -1;
|
||||
m_oldSize.y = -1;
|
||||
|
||||
m_hasDialogBackground = FALSE;
|
||||
}
|
||||
|
||||
bool wxWindow::Create(wxWindow *parent,
|
||||
|
@ -924,8 +924,6 @@ bool wxApp::SendIdleEvents(wxWindow* win)
|
||||
|
||||
win->GetEventHandler()->ProcessEvent(event);
|
||||
|
||||
win->OnInternalIdle();
|
||||
|
||||
if (event.MoreRequested())
|
||||
needMore = TRUE;
|
||||
|
||||
@ -939,6 +937,8 @@ bool wxApp::SendIdleEvents(wxWindow* win)
|
||||
node = node->Next();
|
||||
}
|
||||
|
||||
win->OnInternalIdle();
|
||||
|
||||
return needMore;
|
||||
}
|
||||
|
||||
@ -1202,7 +1202,7 @@ void wxApp::OnAssert(const wxChar *file, int line, const wxChar *msg)
|
||||
{
|
||||
// While the GUI isn't working that well, just print out the
|
||||
// message.
|
||||
#if 0
|
||||
#if 1
|
||||
wxAppBase::OnAssert(file, line, msg);
|
||||
#else
|
||||
wxString msg2;
|
||||
|
@ -264,7 +264,10 @@ void wxTopLevelWindowX11::OnInternalIdle()
|
||||
{
|
||||
wxWindow::OnInternalIdle();
|
||||
|
||||
if (m_needResizeInIdle)
|
||||
// Do this only after the last idle event so that
|
||||
// all windows have been updated before a new
|
||||
// round of size events is sent
|
||||
if (m_needResizeInIdle && !wxTheApp->Pending())
|
||||
{
|
||||
wxSizeEvent event( GetClientSize(), GetId() );
|
||||
event.SetEventObject( this );
|
||||
@ -280,31 +283,15 @@ void wxTopLevelWindowX11::OnInternalIdle()
|
||||
|
||||
bool wxTopLevelWindowX11::Show(bool show)
|
||||
{
|
||||
// Nano-X has to force a size event,
|
||||
// else there's no initial size.
|
||||
#if wxUSE_NANOX
|
||||
if (show)
|
||||
#else
|
||||
if (show && m_needResizeInIdle)
|
||||
#endif
|
||||
{
|
||||
wxSizeEvent event(GetSize(), GetId());
|
||||
|
||||
event.SetEventObject(this);
|
||||
GetEventHandler()->ProcessEvent(event);
|
||||
|
||||
m_needResizeInIdle = FALSE;
|
||||
}
|
||||
if (show)
|
||||
{
|
||||
// This does the layout _before_ the
|
||||
// window is shown, else the items are
|
||||
// drawn first at the wrong positions,
|
||||
// then at the correct positions.
|
||||
if (GetAutoLayout())
|
||||
{
|
||||
Layout();
|
||||
}
|
||||
}
|
||||
|
||||
bool ret = wxWindowX11::Show(show);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user