kgantt Library API Documentation

xQGanttListViewPort.cpp

00001 // 00002 // file : xQGanttListViewPort.C 00003 // date : 26 oct 2000 00004 // changed : 29 nov 2000 00005 // author : jh 00006 // 00007 00008 #include "xQGanttListViewPort.h" 00009 00010 #include <qcolor.h> 00011 00012 00013 int xQGanttListViewPort::_ListViewCounter = 0; 00014 00015 00016 xQGanttListViewPort::xQGanttListViewPort(KGanttItem* toplevelitem, QWidget* parent, 00017 const char * name, WFlags f ) 00018 : QFrame(parent,name,f) 00019 { 00020 _toplevelitem = toplevelitem; 00021 00022 setBackgroundColor(QColor(white)); 00023 00024 _barviewport = NULL; 00025 00026 _width = 1000; 00027 00028 brush1 = QBrush(QColor(200,200,230)); 00029 brush2 = QBrush(QColor(240,240,240)); 00030 00031 } 00032 00033 00034 00035 xQGanttListViewPort::~xQGanttListViewPort() 00037 { 00038 } 00039 00040 00041 00042 void 00043 xQGanttListViewPort::setBarViewPort(xQGanttBarViewPort* v) 00044 { 00045 _barviewport = v; 00046 00047 // printf("setBarViewPort()\n"); 00048 00049 resize(500, _barviewport->height()); 00050 00051 printf("setBarViewPort()\n"); 00052 00053 connect(_barviewport, SIGNAL(resized()), 00054 this, SLOT(barViewResized())); 00055 00056 00057 connect(_barviewport, SIGNAL(recalculated()), 00058 this, SLOT(update())); 00059 00060 /* 00061 connect(_barviewport, SIGNAL(contentsRepainted()), 00062 this, SLOT(barViewRepainted())); 00063 */ 00064 } 00065 00066 00067 00068 void 00069 xQGanttListViewPort::barViewResized() 00071 { 00072 printf("xQGanttListViewPort::barViewResized()\n"); 00073 00074 static int _h = 0; 00075 00076 int h = _barviewport->height(); 00077 00078 if(h!=_h) { 00079 _h = h; 00080 resize(_width, _h); 00081 } 00082 00083 } 00084 00085 00086 00087 void 00088 xQGanttListViewPort::drawContents(QPainter* p, int x1, int y1, int x2, int y2) 00090 { 00091 /*printf("\nxQGanttListViewPort::drawContents(%d,%d,%d,%d)\n", 00092 x1, y1, x2, y2 ); 00093 */ 00094 00095 _ListViewCounter = 0; 00096 00097 if(_barviewport) { 00098 drawItem(_toplevelitem, p, QRect(x1, y1, x2-x1, y2-y1), 5 ); 00099 } 00100 00101 } 00102 00103 00104 00105 void 00106 xQGanttListViewPort::drawItem(KGanttItem* item, QPainter* p, const QRect& rect, 00107 int offsetX ) 00109 { 00110 static int margin = 2; 00111 00112 xQTaskPosition* tpos = _barviewport->_gItemList[item]; 00113 00114 if(!tpos) return; 00115 00116 if( (tpos->_screenY+5 >= rect.y() && 00117 tpos->_screenY-5 <= rect.y() + rect.height()) || 00118 ((tpos->_screenY + tpos->_screenH)+5 >= rect.y() && 00119 (tpos->_screenY + tpos->_screenH)-5 <= rect.y() + rect.height() ) ) { 00120 00121 p->setPen(QPen(QColor(black))); 00122 00123 int y = tpos->_screenY; 00124 int h = tpos->_screenH; 00125 00126 if(tpos->_nr % 2 == 0) 00127 p->fillRect(0 + margin, y + margin , 00128 _width - 2 * margin, h - 2 * margin, brush1); 00129 else 00130 p->fillRect(0 + margin, y + margin, 00131 _width - 2* margin, h - 2* margin, brush2); 00132 00133 QString str = item->getText() + " [" + 00134 item->getStart().toString() + " / " + 00135 item->getEnd().toString() + "]"; 00136 00137 p->drawText(offsetX, tpos->_textPosY, str ); 00138 00139 } 00140 00141 00142 if(item->isOpen() && item->getSubItems().count()>0) { 00143 00144 for(KGanttItem* subitem = item->getSubItems().first(); 00145 subitem != 0; 00146 subitem = item->getSubItems().next() ) { 00147 00148 drawItem(subitem, p, rect, offsetX + 20); 00149 00150 } 00151 00152 p->setPen(QPen(QColor(blue),2)); 00153 p->drawLine(offsetX + 3, tpos->_textPosY + 3, 00154 offsetX + 3, tpos->_screenY + tpos->_screenHS - 3); 00155 00156 } 00157 00158 } 00159 00160 00161 void 00162 xQGanttListViewPort::update(int x1, int y1, int x2, int y2) 00164 { 00165 QPainter p(this); 00166 00167 /* 00168 printf("\nxQGanttListViewPort::update(%d,%d,%d,%d)\n", 00169 x1, y1, x2, y2 ); 00170 */ 00171 drawContents(&p, x1, y1, x2, y2); 00172 00173 } 00174 00175 #include "xQGanttListViewPort.moc"
KDE Logo
This file is part of the documentation for kgantt Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Aug 27 12:48:23 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003