Source Code (Use browser search to find items of interest.)
Class Index
kspread'AIBar (./koffice/kspread/qtai_bar.h:39)
class AIBar : public AIBase
{
Q_OBJECT
public:
AIBar(QWidget *parent,const char *name,int n=1);
void setData(int bar,double value);
void setRanges(double mn,double mx);
void setRangeType(QString range_type_string);
void setScaleTile(int scale_tile);
void setAutoRepaint(bool ar);
void setPlotColor(int bar,int r,int g,int b);
void setPlotColor(int bar,QColor c);
void setCalcLimits(bool calc_limits);
void setAlarmBG(bool alarm_bg);
// shows the alarm levels as bar background and uses pointer
// for min/max and actual value display
void showScale(bool sscale);
void addLimits(double ll,double l,double h,double hh);
void addLimitLL(double ll,bool on);
void addLimitL(double l,bool on);
void addLimitH(double h,bool on);
void addLimitHH(double hh,bool on);
void enableLimits(bool ll,bool l,bool h,bool hh);
QBrush *brush;
int nbars;
double min,max;
double *actual;
QColor color[8];
QString range_s;
double d_limits[4];
bool b_limits[4];
QColor c_limits[4];
public slots:
void printIt();
signals:
protected:
virtual void drawIt( QPainter *p);
virtual void drawGrid( QPainter *p);
void drawContents(QPainter *p);
void paintEvent( QPaintEvent *p );
int scale_tile;
bool autorepaint;
bool showscale;
bool alarm_bg;
bool calc_limits;
private:
QPrinter *printer;
};
/*******************************************************************/
/********* End Draw Window Definition *****************************/
/*******************************************************************/
kspread'AIBar::AIBar() (./koffice/kspread/qtai_bar.cpp:39)
AIBar::AIBar(QWidget *parent,const char *name,int n)
: AIBase(parent,name)
{
int i;
printer = new QPrinter;
brush = new QBrush(SolidPattern);
nbars=n;
if ((actual=(double*)malloc(nbars*sizeof(double)))==NULL) {
actual=NULL;
nbars=0;
fprintf(stderr,"Can't alloc memory for actual!\n");
exit(-1);
}
for (i=0;i<n;i++) {
actual[i] = 0.0;
}
for (i=0;i<8;i++) {
color[i].setRgb( 0, 164, 0 );
}
range_s="";
c_limits[D_LL].setRgb(255,0,0);
c_limits[D_HH].setRgb(255,0,0);
c_limits[D_L].setRgb(255,255,0);
c_limits[D_H].setRgb(255,255,0);
scale_tile=8;
autorepaint=FALSE;
showscale=TRUE;
alarm_bg=FALSE;
calc_limits=FALSE;
}
kspread'AIBar::drawGrid() (./koffice/kspread/qtai_bar.cpp:78)
void AIBar::drawGrid( QPainter *p )
{
int i;
int w=width()*FACTOR,h=height()*FACTOR;
int bl,br;
int bzero=0,bact=0,bmax=1,bmin=0;
int bstart,bwidth;
QString str="";
QFont font("Helvetica",9);
QFontMetrics fm(font);
p->setFont(font);
//bl=(int)((double)w/2.0+1);
//br=(int)((double)2*w/3.0+1);
QString sm1="";
QString sm2="";
sm1.sprintf("%.2f\0",(double)min);
sm2.sprintf("%.2f\0",(double)max);
//bl=(int)((double)w/2.0+1);
//br=(int)((double)2*w/3.0+1);
if (fm.width(sm1)>fm.width(sm2)) {
bl=(fm.width(sm1))*FACTOR;
} else {
bl=(fm.width(sm2))*FACTOR;
}
br=w-5;
if (br-bl>50) br=bl+50;
bmax=(int)_BAR_MARGIN;
bmin=(int)h-_BAR_MARGIN;
bzero=(int)(bmin-min*(bmin-bmax)/(min-max));
bstart=bzero,bwidth=bact-bzero;
p->setWindow(0,0,w,h); // defines coordinate system
p->setPen(c_grid);
p->drawLine(bl-1,bmax,bl-1,bmin);
p->drawLine(bl-5,bzero,br+10,bzero);
for (i=0;i<=scale_tile;i++) {
p->drawLine(bl-5,bmin-i*(bmin-bmax)/scale_tile,bl,
bmin-i*(bmin-bmax)/scale_tile);
str.sprintf("%.0f\0",(double)min-i*(min-max)/scale_tile);
p->drawText(bl-8-fm.width(str),bmin-i*(bmin-bmax)/scale_tile+fm.height()/2,str);
}
}
kspread'AIBar::drawIt() (./koffice/kspread/qtai_bar.cpp:131)
void AIBar::drawIt( QPainter *p )
{
QPoint qp(0,0);
QColor c;
QPointArray qa(4);
int w=width()*FACTOR;
int h=height()*FACTOR;
QFont font("Helvetica",9);
QFontMetrics fm(font);
QString str="";
int i,j;
int bl,br;
int bzero,bact,bmax,bmin;
int bstart,bwidth;
QString sm1="";
QString sm2="";
if (showscale) {
sm1.sprintf("%.2f\0",(double)min);
sm2.sprintf("%.2f\0",(double)max);
//bl=(int)((double)w/2.0+1);
//br=(int)((double)2*w/3.0+1);
if (fm.width(sm1)>fm.width(sm2)) {
bl=(fm.width(sm1))*FACTOR;
} else {
bl=(fm.width(sm2))*FACTOR;
}
br=w-5;
if (br-bl>50) br=bl+50;
} else {
bl=0;br=w;
}
bmax=_BAR_MARGIN; //(int)20;
bmin=(int)h-_BAR_MARGIN; //-20;
bstart=bzero=(int)(bmin-min*(bmin-bmax)/(min-max));
p->setViewport(0,0,width(),height()); // defines coordinate system
p->setWindow(0,0,w,h); // defines coordinate system
int n;
static int bw=-1,bh=-1; // BG Buffer
static QPixmap *bg_buf=NULL;
QPainter bg_p;
kspread'AIBar::printIt() (./koffice/kspread/qtai_bar.cpp:348)
void AIBar::printIt()
{
if ( printer->setup(this) ) {
QPainter paint;
paint.begin( printer );
drawIt(&paint);
paint.end();
}
}
//
// Called when the widget needs to be updated.
//
kspread'AIBar::paintEvent() (./koffice/kspread/qtai_bar.cpp:362)
void AIBar::paintEvent( QPaintEvent * )
{
QPoint qp(0,0);
QPainter paint;
QPainter tmp; // for double buffering
QPixmap pix(width(),height());
//QPixmap pix(width(),height());
//QPixmap *pix;
paint.begin(this);
// drawIt( &paint ); // without double buffer
// pix=new QPixmap(width(),height());
tmp.begin( &pix ); // begin painting
tmp.setWindow(0,0,width(),height());
drawIt( &tmp );
tmp.end(); // painting done
paint.drawPixmap(qp,pix);
paint.end();
// delete pix;
}
kspread'AIBar::drawContents() (./koffice/kspread/qtai_bar.cpp:390)
void AIBar::drawContents(QPainter *p)
{
drawIt(p);
}
kspread'AIBar::setData() (./koffice/kspread/qtai_bar.cpp:395)
void AIBar::setData(int bar,double value)
{
actual[bar]=value;
if (autorepaint)
repaint(FALSE);
}
kspread'AIBar::setAutoRepaint() (./koffice/kspread/qtai_bar.cpp:402)
void AIBar::setAutoRepaint(bool ar)
{
autorepaint=ar;
}
kspread'AIBar::showScale() (./koffice/kspread/qtai_bar.cpp:407)
void AIBar::showScale(bool sscale)
{
showscale=sscale;
}
kspread'AIBar::setRanges() (./koffice/kspread/qtai_bar.cpp:412)
void AIBar::setRanges(double mn,double mx)
{
min=mn;
max=mx;
}
kspread'AIBar::setPlotColor() (./koffice/kspread/qtai_bar.cpp:418)
void AIBar::setPlotColor(int bar,int r,int g,int b)
{
color[bar].setRgb(r,g,b);
}
kspread'AIBar::setPlotColor() (./koffice/kspread/qtai_bar.cpp:423)
void AIBar::setPlotColor(int bar,QColor c)
{
setPlotColor(bar,c.red(),c.green(),c.blue());
}
kspread'AIBar::setRangeType() (./koffice/kspread/qtai_bar.cpp:428)
void AIBar::setRangeType(QString rs)
{
range_s=rs;
}
kspread'AIBar::addLimits() (./koffice/kspread/qtai_bar.cpp:433)
void AIBar::addLimits(double ll,double l,double h,double hh)
{
d_limits[D_LL]=ll;
d_limits[D_L]=l;
d_limits[D_H]=h;
d_limits[D_HH]=hh;
}
kspread'AIBar::enableLimits() (./koffice/kspread/qtai_bar.cpp:441)
void AIBar::enableLimits(bool ll,bool l,bool h,bool hh)
{
b_limits[D_LL]=ll;
b_limits[D_L]=l;
b_limits[D_H]=h;
b_limits[D_HH]=hh;
}
kspread'AIBar::addLimitLL() (./koffice/kspread/qtai_bar.cpp:449)
void AIBar::addLimitLL(double ll,bool on)
{
d_limits[D_LL]=ll;
b_limits[D_LL]=on;
}
kspread'AIBar::addLimitL() (./koffice/kspread/qtai_bar.cpp:455)
void AIBar::addLimitL(double l,bool on)
{
d_limits[D_L]=l;
b_limits[D_L]=on;
}
kspread'AIBar::addLimitH() (./koffice/kspread/qtai_bar.cpp:461)
void AIBar::addLimitH(double h,bool on)
{
d_limits[D_H]=h;
b_limits[D_H]=on;
}
kspread'AIBar::addLimitHH() (./koffice/kspread/qtai_bar.cpp:467)
void AIBar::addLimitHH(double hh,bool on)
{
d_limits[D_HH]=hh;
b_limits[D_HH]=on;
}
kspread'AIBar::setScaleTile() (./koffice/kspread/qtai_bar.cpp:473)
void AIBar::setScaleTile(int scale_tile)
{
this->scale_tile=scale_tile;
}
kspread'AIBar::setAlarmBG() (./koffice/kspread/qtai_bar.cpp:477)
void AIBar::setAlarmBG(bool alarm_bg)
{
this->alarm_bg=alarm_bg;
}
kspread'AIBar::setCalcLimits() (./koffice/kspread/qtai_bar.cpp:483)
void AIBar::setCalcLimits(bool calc_limits)
{
this->calc_limits=calc_limits;
}