Source
//# Copyright (C) 2005
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: aips2-request@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
//#
namespace casa {
ExternalAxisControlBottom::ExternalAxisControlBottom( QWidget* parent ):
ExternalAxisControl( parent ){
setFixedHeight( AXIS_SMALL_SIDE / 2 );
setSizePolicy( QSizePolicy::MinimumExpanding, QSizePolicy::Fixed );
}
void ExternalAxisControlBottom::defineAxis( QLine& axisLine ){
int left = MARGIN;
int right = width() - MARGIN;
int top = 1;
int bottom = 1;
QPoint firstPt( left, top );
QPoint secondPt( right, bottom );
axisLine.setP1( firstPt );
axisLine.setP2( secondPt );
}
void ExternalAxisControlBottom::drawTick( QPainter* painter, double xPixel, double value,
int tickLength ){
int yEnd = 0;
int xPosition = static_cast<int>(xPixel);
painter->drawLine( xPosition, yEnd, xPosition, yEnd + tickLength );
QFont font = painter->font();
QString tickLabel( QString::number( value ) );
QRect fontBoundingRect = QFontMetrics(font).boundingRect( tickLabel );
int letterWidth = fontBoundingRect.width();
int letterHeight = fontBoundingRect.height();
xPosition = static_cast<int>( xPixel - letterWidth / 2 );