sp<Retval> GdMonCpustat::draw(int num, sp<info>& info, sp<MonBase>& dest , const char* path) { sp<Retval> retval; if( DFW_RET(retval, MonCpustat::draw(num, info, dest, path)) ) return DFW_RETVAL_D(retval); if( DFW_RET(retval, baseInit()) ) return DFW_RETVAL_D(retval); struct max_st max; struct data_st dt; getMax(&max, info, m_g.cs.w); setData(&dt); drawHead(dest->m_sec, info->m_sec); uint64_t first_sec; uint64_t last_sec = dest->m_sec; for(int k=info->m_aLists.size(), dx=m_g.cr.ex; ((k>0)&&(dx>m_g.cr.sx));) { sp<GdMonCpustat> p = info->m_aLists.get(k-1); sp<GdMonCpustat> pp = info->m_aLists.get(k-2); procData(dx, &max, &dt, p, pp); drawData(dx, &dt); k--; dx--; first_sec = p->m_sec; } drawBottom(dest, &max, &dt); drawLast(first_sec, last_sec); if( DFW_RET(retval, savePng(path, savename(), 0)) ) return DFW_RETVAL_D(retval); return NULL; }
void BoardGame::refresh(QPixmap *cache) { if (gameName() == BoardGame::gameName()) { QPainter painter(cache); painter.setPen(NoPen); painter.setBrush(QBrush(white)); painter.drawRect(cache->rect()); painter.setPen(QPen(COLOR_LINE, 10)); painter.setBrush(QBrush(COLOR_BOARD)); painter.drawEllipse(cache->rect()); QFont f("noah", 24); painter.setFont(f); painter.drawText(cache->rect(), AlignCenter, tr("Board Games!")); return; } /* generalRefresh(cache); } void BoardGame::generalRefresh(QPixmap *cache) {*/ QPainter painter(cache); drawBackground(cache, &painter); switch (boardType()) { case CenterLine: drawBoardLines(cache, &painter); case NoLine: break; case EdgeLine: drawEdgeLines(cache, &painter); } for (int r = 0; r < size().height(); r++) for (int c = 0; c < size().width(); c++) drawPoint(cache, &painter, QPoint(c, r), data.pos[r][c]); if (data.last.x() != -1) drawLast(cache, &painter, data.last, DATA(data.last)); }