//=============================================================================
//
// File : KviPixmapUtils.cpp
// Creation date : Wed Dec 29 2010 01:10:05 CEST by Elvio Basello
//
// This file is part of the KVIrc IRC client distribution
// Copyright (C) 2010 Elvio Basello (hellvis69 at gmail dot com)
//
// This program is FREE software. You can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program 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 General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, write to the Free Software Foundation,
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
//=============================================================================
#include "KviPixmapUtils.h"
namespace KviPixmapUtils
{
void drawPixmapWithPainter(QPainter * p, QPixmap * pix, int flags, const QRect & paintRect, int iWidgetWidth, int iWidgetHeight, int dx, int dy)
{
if(!pix)
return;
if(!flags)
{
p->drawTiledPixmap(paintRect.left(), paintRect.top(), paintRect.width(), paintRect.height(), *pix, dx, dy);
return;
}
int iPixWidth = pix->width();
int iPixHeight = pix->height();
int x = 0;
int y = 0;
if(!(flags & Qt::AlignHorizontal_Mask))
x = -1;
else if(flags & Qt::AlignRight)
x = iWidgetWidth - iPixWidth;
else if(flags & Qt::AlignHCenter)
x = (iWidgetWidth - iPixWidth) / 2;
if(!(flags & Qt::AlignVertical_Mask))
y = -1;
else if(flags & Qt::AlignBottom)
y = iWidgetHeight - iPixHeight;
else if(flags & Qt::AlignVCenter)
y = (iWidgetHeight - iPixHeight) / 2;
if(x == -1)
{
p->drawTiledPixmap(paintRect.left(), y, paintRect.width(), iPixHeight, *pix, dx, dy);
}
else if(y == -1)
{
p->drawTiledPixmap(x, paintRect.top(), iPixWidth, paintRect.height(), *pix, dx, dy);
}
else
{
p->drawPixmap(x, y, *pix);
}
}
}