Files
wxWidgets/src/qt/statusbar.cpp
Vadim Zeitlin 8fbca5cb70 Remove all trailing spaces
No real changes, just clean up sources by removing trailing spaces from
all the non-generated files.

This should hopefully avoid future commits mixing significant changes
with insignificant whitespace ones.
2019-01-30 17:35:54 +01:00

147 lines
3.4 KiB
C++

/////////////////////////////////////////////////////////////////////////////
// Name: src/qt/statusbar.cpp
// Author: Peter Most, Javier Torres, Mariano Reingart, Sean D'Epagnier
// Copyright: (c) 2010 wxWidgets dev team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#include "wx/statusbr.h"
#include "wx/qt/private/utils.h"
#include "wx/qt/private/converter.h"
#include "wx/qt/private/winevent.h"
#include <QtWidgets/QStatusBar>
#include <QtWidgets/QLabel>
class wxQtStatusBar : public wxQtEventSignalHandler< QStatusBar, wxStatusBar >
{
public:
wxQtStatusBar( wxWindow *parent, wxStatusBar *handler );
};
wxQtStatusBar::wxQtStatusBar( wxWindow *parent, wxStatusBar *handler )
: wxQtEventSignalHandler< QStatusBar, wxStatusBar >( parent, handler )
{
}
//==============================================================================
wxStatusBar::wxStatusBar()
{
Init();
}
wxStatusBar::wxStatusBar(wxWindow *parent, wxWindowID winid,
long style,
const wxString& name)
{
Init();
Create( parent, winid, style, name );
}
bool wxStatusBar::Create(wxWindow *parent, wxWindowID WXUNUSED(winid),
long style, const wxString& WXUNUSED(name))
{
m_qtStatusBar = new wxQtStatusBar( parent, this );
m_qtPanes = new QList < QLabel* >;
if ( style & wxSTB_SIZEGRIP )
m_qtStatusBar->setSizeGripEnabled(true);
PostCreation();
SetFieldsCount(1);
return true;
}
bool wxStatusBar::GetFieldRect(int i, wxRect& rect) const
{
wxCHECK_MSG( (i >= 0) && ((size_t)i < m_panes.GetCount()), false,
"invalid statusbar field index" );
if ( static_cast<size_t>(m_qtPanes->count()) != m_panes.GetCount() )
const_cast<wxStatusBar*>(this)->UpdateFields();
rect = wxQtConvertRect((*m_qtPanes)[i]->geometry());
return true;
}
void wxStatusBar::SetMinHeight(int height)
{
m_qtStatusBar->setMinimumHeight(height);
}
int wxStatusBar::GetBorderX() const
{
return 0;
}
int wxStatusBar::GetBorderY() const
{
return 0;
}
void wxStatusBar::DoUpdateStatusText(int number)
{
if ( static_cast<size_t>(m_qtPanes->count()) != m_panes.GetCount() )
UpdateFields();
(*m_qtPanes)[number]->setText( wxQtConvertString( m_panes[number].GetText() ) );
}
// Called each time number/size of panes changes
void wxStatusBar::Refresh( bool eraseBackground, const wxRect *rect )
{
UpdateFields();
wxWindow::Refresh( eraseBackground, rect );
}
void wxStatusBar::Init()
{
m_qtStatusBar = NULL;
m_qtPanes = NULL;
}
void wxStatusBar::UpdateFields()
{
// is it a good idea to recreate all the panes every update?
while ( !m_qtPanes->isEmpty() )
{
//Remove all panes
delete m_qtPanes->takeLast();
}
for (size_t i = 0; i < m_panes.GetCount(); i++)
{
//Set sizes
int width = m_panes[i].GetWidth();
QLabel *pane = new QLabel( m_qtStatusBar );
m_qtPanes->append( pane );
if ( width >= 0 )
{
//Fixed width field
pane->setMinimumSize( QSize(width, 0) );
m_qtStatusBar->addWidget( pane );
}
else
{
m_qtStatusBar->addWidget( pane, -width );
}
}
}
QWidget *wxStatusBar::GetHandle() const
{
return m_qtStatusBar;
}