don't show size grip if the window the status bar is attached to is maximized or not resizeable at all
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -78,6 +78,11 @@ public:
|
|||||||
// Responds to colour changes
|
// Responds to colour changes
|
||||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||||
|
|
||||||
|
// true if the status bar shows the size grip: for this it must have
|
||||||
|
// wxST_SIZEGRIP style and the window it is attached to must be resizeable
|
||||||
|
// and not maximized
|
||||||
|
bool ShowsSizeGrip() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
void Init();
|
void Init();
|
||||||
|
@@ -80,14 +80,14 @@ bool wxStatusBarGeneric::Create(wxWindow *parent,
|
|||||||
SetFont(*wxSMALL_FONT);
|
SetFont(*wxSMALL_FONT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
wxCoord y;
|
wxCoord y;
|
||||||
{
|
{
|
||||||
// Set the height according to the font and the border size
|
// Set the height according to the font and the border size
|
||||||
wxClientDC dc(this);
|
wxClientDC dc(this);
|
||||||
dc.SetFont(GetFont());
|
dc.SetFont(GetFont());
|
||||||
|
|
||||||
dc.GetTextExtent(_T("X"), NULL, &y );
|
dc.GetTextExtent(_T("X"), NULL, &y );
|
||||||
}
|
}
|
||||||
int height = (int)( (11*y)/10 + 2*GetBorderY());
|
int height = (int)( (11*y)/10 + 2*GetBorderY());
|
||||||
|
|
||||||
SetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, height);
|
SetSize(wxDefaultCoord, wxDefaultCoord, wxDefaultCoord, height);
|
||||||
@@ -189,17 +189,27 @@ void wxStatusBarGeneric::SetStatusWidths(int n, const int widths_field[])
|
|||||||
wxStatusBarBase::SetStatusWidths(n, widths_field);
|
wxStatusBarBase::SetStatusWidths(n, widths_field);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxStatusBarGeneric::ShowsSizeGrip() const
|
||||||
|
{
|
||||||
|
if ( !HasFlag(wxST_SIZEGRIP) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
wxTopLevelWindow * const
|
||||||
|
tlw = wxDynamicCast(wxGetTopLevelParent(GetParent()), wxTopLevelWindow);
|
||||||
|
return tlw && !tlw->IsMaximized() && tlw->HasFlag(wxRESIZE_BORDER);
|
||||||
|
}
|
||||||
|
|
||||||
void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
wxPaintDC dc(this);
|
wxPaintDC dc(this);
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
// Draw grip first
|
// Draw grip first
|
||||||
if (HasFlag( wxST_SIZEGRIP ))
|
if ( ShowsSizeGrip() )
|
||||||
{
|
{
|
||||||
int width, height;
|
int width, height;
|
||||||
GetClientSize(&width, &height);
|
GetClientSize(&width, &height);
|
||||||
|
|
||||||
if (GetLayoutDirection() == wxLayout_RightToLeft)
|
if (GetLayoutDirection() == wxLayout_RightToLeft)
|
||||||
{
|
{
|
||||||
gtk_paint_resize_grip( m_widget->style,
|
gtk_paint_resize_grip( m_widget->style,
|
||||||
@@ -223,7 +233,7 @@ void wxStatusBarGeneric::OnPaint(wxPaintEvent& WXUNUSED(event) )
|
|||||||
width-height-2, 2, height-2, height-4 );
|
width-height-2, 2, height-2, height-4 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif // __WXGTK20__
|
||||||
|
|
||||||
if (GetFont().Ok())
|
if (GetFont().Ok())
|
||||||
dc.SetFont(GetFont());
|
dc.SetFont(GetFont());
|
||||||
@@ -415,7 +425,7 @@ void wxStatusBarGeneric::OnLeftDown(wxMouseEvent& event)
|
|||||||
int width, height;
|
int width, height;
|
||||||
GetClientSize(&width, &height);
|
GetClientSize(&width, &height);
|
||||||
|
|
||||||
if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
|
if ( ShowsSizeGrip() && (event.GetX() > width-height) )
|
||||||
{
|
{
|
||||||
GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
|
GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
|
||||||
|
|
||||||
@@ -462,7 +472,7 @@ void wxStatusBarGeneric::OnRightDown(wxMouseEvent& event)
|
|||||||
int width, height;
|
int width, height;
|
||||||
GetClientSize(&width, &height);
|
GetClientSize(&width, &height);
|
||||||
|
|
||||||
if (HasFlag( wxST_SIZEGRIP ) && (event.GetX() > width-height))
|
if ( ShowsSizeGrip() && (event.GetX() > width-height) )
|
||||||
{
|
{
|
||||||
GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
|
GtkWidget *ancestor = gtk_widget_get_toplevel( m_widget );
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user