sidepixmap.cpp
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include "sidepixmap.h"
00021 
00022 #include <qpainter.h>
00023 #include <kstandarddirs.h>
00024 
00025 SidePixmap::SidePixmap(QWidget *parent, const char *name)
00026 : QFrame(parent, name)
00027 {
00028     setLineWidth(1);
00029     setFrameStyle(QFrame::WinPanel|QFrame::Sunken);
00030 
00031     m_side.load(locate("data", "kdeprint/side.png"));
00032     m_tileup.load(locate("data", "kdeprint/tileup.png"));
00033     m_tiledown.load(locate("data", "kdeprint/tiledown.png"));
00034 
00035     setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum));
00036 }
00037 
00038 bool SidePixmap::isValid()
00039 {
00040     return (!m_side.isNull() && !m_tileup.isNull() && !m_tiledown.isNull() 
00041             && (m_side.width() == m_tileup.width())
00042             && (m_side.width() == m_tiledown.width()));
00043 }
00044 
00045 QSize SidePixmap::sizeHint() const
00046 {
00047     return (QSize(m_side.width()+lineWidth(), 300+lineWidth()));
00048 }
00049 
00050 void SidePixmap::drawContents(QPainter *p)
00051 {
00052     QRect   r = contentsRect();
00053     if (r.height() <= m_side.height())
00054     {
00055         
00056         int yoffset = (m_side.height()-r.height())/2;
00057         p->drawPixmap(r.left(), r.top(), m_side, 0, yoffset, r.width(), r.height());
00058     }
00059     else
00060     {
00061         
00062         
00063         int hh = (((r.height()-m_side.height())/2)/3)*3;
00064         if (hh > 0)
00065             p->drawTiledPixmap(r.left(), r.top(), r.width(), hh, m_tileup);
00066         p->drawPixmap(r.left(), r.top()+hh, m_side);
00067         p->drawTiledPixmap(r.left(), r.top()+m_side.height()+hh, r.width(), r.height()-m_side.height()-hh, m_tiledown);
00068     }
00069 }
 
This file is part of the documentation for kdeprint Library Version 3.2.0.