コード例 #1
0
void MyMainWindow::paintEvent()
{
    Rect rc = realRect();

    glSetPen(0xFF1d1b1b);
    glDrawFilledRectange(rc.x(), rc.y(), rc.x2(), rc.y2());

    glSetPen(0xFFFFFFFF);
    glDrawHLine(rc.x(), rc.x2(), rc.y()+25);

    //glDrawString(filename, rect().x()+3, rect().y(), rect().x2(), rect().y()+25, 18, FT_TEXT_H_CENTER, 0, 128);
    m_headText.paintEvent();


    int mx, my;

    mx = rc.w() / 2 - m_musicImage.width()/2;
    my = m_mediaList.rect().h() / 2 - m_musicImage.height()/2;

    drawImage(rc.x()+mx, m_mediaList.rect().y()+my, &m_musicImage);

    if(!m_player->isPlaying()) {
        m_playPos.setPosition(0);
        m_playPos.setLength(0);

    } else {
        m_playPos.setPosition(m_player->position());
        m_playPos.setLength(m_player->length());


        if(m_player->isHaveAlbymImage())
            drawImage(rc.x(), m_playButton.realRect().y2(), &m_player->albymImage());
    }


    MainWindow::paintEvent();

    eventManager()->update();
}
コード例 #2
0
void ProgressDialog::paintEvent()
{
    if(!m_background->isEmpty()) {
        drawImage(realRect().x(), realRect().y(), m_background);
    }

    glDrawString(m_progressName.c_str(), realRect().x()+2, realRect().y()+1, realRect().x2()-2, realRect().y()+20,
                 15, FT_TEXT_H_CENTER, 0, 128);


    char info[56];
    sprintf(info, "%d/%d", m_fullProgress, m_maxFullProgress);

    glDrawString(info, realRect().x()+2, realRect().y()+1, realRect().x2()-2, realRect().y()+20,
                 15, FT_TEXT_H_CENTER | FT_TEXT_W_RIGHT, 0, 128);

    glSetPen(0xFFFFFFFF);
    glDrawString(m_whatDoing.c_str(), realRect().x()+2, realRect().y()+23, realRect().x2()-2, realRect().y()+23+22,
                 15, FT_TEXT_W_CENTER | FT_TEXT_H_DOWN | FT_TEXT_CENTER_BY_XSTART, 0, 128);

    int y = realRect().y()+60;

    int percent_full = m_fullProgress*100/m_maxFullProgress;
    int percent = m_progress? m_progress*100/m_maxProgress : 0;

    int max_w = realRect().w()-10;
    int full_x = max_w*percent_full/100;
    int cur_x = max_w*percent/100;


    glSetPen(0xFFFF0000);
    glDrawRectange(realRect().x()+4, y, realRect().x2()-6, y+4);

    if(full_x < 1)
        full_x = 0;
    if(full_x > max_w)
        full_x = max_w;

    glSetPen(0xFFFFFFFF);
    glDrawFilledRectange(realRect().x()+5, y+1, realRect().x()+5+full_x, y+4);


    y += 10;

    glSetPen(0xFFFF0000);
    glDrawRectange(realRect().x()+4, y, realRect().x2()-6, y+4);

    if(cur_x < 1)
        cur_x = 0;
    if(cur_x > max_w)
        cur_x = max_w;

    glSetPen(0xFFFFFFFF);
    glDrawFilledRectange(realRect().x()+5, y+1, realRect().x()+5-1+cur_x, y+4);

    Widget::paintEvent();
}
コード例 #3
0
void CalloutNote::drawNoteNodeConnector(QPainter *painter, bool visible)
{	
	float width;
	float height;
	QRectF itemPos;
	if(_scene->_pathBubbles[_pid]==NULL) //does not work
		return;
	PathBubble1* path=_scene->_pathBubbles[_pid];
	if(!path || path==NULL || !path->isVisible())
		return;

	QPointF dis1=this->sceneBoundingRect().center();
	QPointF dis2=path->sceneBoundingRect().center();

	if(fixedSize)
	{		
		width=graphReferenceSize/2*path->_scale; height=graphReferenceSize/2*path->_scale;
	}
	else
	{
		width=this->realRect().width()/2*path->_scale;
	    height=this->realRect().height()/2*path->_scale;
	}

	if(_type == 'L' && _id>=path->ANodeRect.size())
		return;

	switch(_type)
	{
		 case 'C': itemPos = path->complexRect[_id];  break;
		 case 'E': itemPos = path->physicalEntityRect[_id];  break;
		 case 'P': itemPos = path->proteinRect[_id];  break;				
		 case 'S': itemPos = path->smallMoleculeRect[_id];  break;
		 case 'D': itemPos = path->DnaRect[_id];  break;
		 case 'R': itemPos = path->reactionRect[_id];  break;
		 case 'L': itemPos = path->ANodeRect[_id];  break;
		 case 'M': itemPos = path->compartmentRect[_id];  break;
	}

	
	QPointF start,end;
	
	start=QPointF(0,0);
	end=itemPos.center();

	start=start+dis1;
	end=end+dis2;

	QRectF noteRect=this->sceneBoundingRect();	
	QRectF pathRect=path->sceneBoundingRect();
	
	float w,h;
	w=realRect().width(),  h=realRect().height();
	noteRect=QRectF(noteRect.center().x()-w/2, noteRect.center().y()-h/2, w, h );

	QPointF markPos(end.x()+itemPos.width()*0.5, end.y()-itemPos.height()*0.1);
	_deleteMark = QRectF(noteRect.x()+noteRect.width()*0.90, noteRect.y()+noteRect.height()*0.03, noteRect.width()*0.08, noteRect.width()*0.08);	
	_minimizeMark = QRectF(noteRect.x()+noteRect.width()*0.80, noteRect.y()+noteRect.height()*0.03, noteRect.width()*0.08, noteRect.width()*0.08);	

	

	//clip	    
	QColor c=QColor(_colorBoarder.a, _colorBoarder.b, _colorBoarder.c, 255);
	if(visible)
	{		
		
		if(!noteRect.contains(end))
		{
			drawArrow_5(painter, start, markPos-QPointF(itemPos.width()*0.04,0), QRect(noteRect.center().x()-w/2,noteRect.center().y()-h/2, w, h ), width, height, c );						
		}		
		drawCross(painter,_deleteMark, c);
		drawMinus(painter,_minimizeMark, c);
	}
	else 
	{
		//if within the path bubble
		if(pathRect.contains(start)|| pathRect.contains(end))
		   drawNoteMark(painter, start, end,  QRect(noteRect.center().x()-w/2,noteRect.center().y()-h/2, w, h ), markPos, markRect, width, height, c );						
	}		
}