Ejemplo n.º 1
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();
}
Ejemplo n.º 2
0
    void
    BitmapTextRenderer::renderText(TextPtr & theText) {
        glColor4fv(theText->_myTextStyle._myTextColor.begin());
        glDisable(GL_LIGHTING);

        unsigned int myXPos = (unsigned int) (theText->_myPos[0] * getWindowWidth() + 0.5);
        unsigned int myYPos = (unsigned int) (theText->_myPos[1] * getWindowHeight() + 0.5);

        glRasterPos2i(myXPos, myYPos);

        BITMAPFONT myFontEnum = BITMAPFONT(asl::getEnumFromString(theText->_myFont, myBitmapFontStr));
        switch(myFontEnum) {
            case BOOKMAN72_FONT:
                glDrawString(theText->_myString.c_str(), Bookman72);
                break;
            case COURIER24_FONT:
                glDrawString(theText->_myString.c_str(), ::Courier24);
                break;
            case HELV24_FONT:
                glDrawString(theText->_myString.c_str(), Helv24);
                break;
            case SCREEN8_FONT:
                glDrawString(theText->_myString.c_str(), Screen8);
                break;
            case SCREEN13_FONT:
                glDrawString(theText->_myString.c_str(), Screen13);
                break;
            case SCREEN15_FONT:
                glDrawString(theText->_myString.c_str(), Screen15);
                break;
            case SYNTAXBOLD18_FONT:
                glDrawString(theText->_myString.c_str(), SyntaxBold18);
                break;
            case SYNTAXMED144_FONT:
                glDrawString(theText->_myString.c_str(), SyntaxMed144);
                break;
            case TIMES12_FONT:
                glDrawString(theText->_myString.c_str(), Times12);
                break;
            case TIMES14_FONT:
                glDrawString(theText->_myString.c_str(), Times14);
                break;
            case TIMES144_FONT:
                glDrawString(theText->_myString.c_str(), Times144);
                break;
            default:
                throw GLTextRendererException("Sorry, font not found: " + theText->_myFont, PLUS_FILE_LINE);
        };

    }