void RenderArea::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.fillRect(event->rect(), QBrush(Qt::white));

    painter.translate(this->width()/3, this->height()/2.5);
    painter.save();
    transformPainter(painter);
    drawShape(painter);
    painter.restore();
    drawOutline(painter);
    transformPainter(painter);
    drawCoordinates(painter);
}
Example #2
0
void RenderArea::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    painter.setRenderHint(QPainter::Antialiasing);
    if (!operations.empty())
           painter.fillRect(event->rect(), QBrush(Qt::white));
    painter.fillRect(event->rect(), QBrush(Qt::black));

    painter.translate(this->width()/3, this->height()/3);
    transformPainter(painter);
    drawShape(painter);
    transformPainter(painter);
    drawCoordinates(painter);
}
Example #3
0
//! [5]
void RenderArea::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.fillRect(event->rect(), QBrush(Qt::white));

    painter.translate(66, 66);
//! [5]

//! [6]
    painter.save();
    transformPainter(painter);
    drawShape(painter);
    painter.restore();
//! [6]

//! [7]
    drawOutline(painter);
//! [7]

//! [8]
    transformPainter(painter);
    drawCoordinates(painter);
}
Example #4
0
void NoiseGen::mainLoop()
{
    bool quit = false;
    bool refresh = true;
    //int cursor = 0;
    //bool viewcontrol = false;
//    int viewcontrolunits = 12; // how many units moved when in view control
    bool mapDrag = false;
    sf::Vector2i mapDragOffset;


    //debug
    //std::cout << "SCREEN :" << IMAGE_SIZE*IMAGE_SCALE+RIGHT_MARGIN_WIDTH << "," << IMAGE_SIZE*IMAGE_SCALE+BOTTOM_MARGIN_HEIGHT << std::endl;

   while(!quit)
    {

        sf::Event event;

        screen->clear();

        //check for right mouse button release if dragging
        if(mapDrag && !sf::Mouse::isButtonPressed(sf::Mouse::Right))
        {
            mapDrag = false;
            xpos = xpos - (sf::Mouse::getPosition(*screen).x - mapDragOffset.x);
            ypos = ypos - (sf::Mouse::getPosition(*screen).y - mapDragOffset.y);

            refresh = true;
        }
        else if(mapDrag) refresh = true;

        //create, populate, and display map image
        if(refresh)
        {
            if(sf::Mouse::isButtonPressed(sf::Mouse::Right) && mapDrag)
            {
                int x_off = sf::Mouse::getPosition(*screen).x - mapDragOffset.x;
                int y_off = sf::Mouse::getPosition(*screen).y - mapDragOffset.y;

                createMapImage(xpos - x_off, ypos - y_off);

            }
            else createMapImage(xpos, ypos);
            refresh = false;
        }

        //DRAW OBJECTS
        drawMap();
        drawSliders();
        drawButtons();
        drawCoordinates( sf::Vector2i(IMAGE_SCALE*IMAGE_SIZE + 12, 300));

        //debug draw mouse coordinates
        /*
        std::stringstream mpos;
        mpos << "(" << sf::Mouse::getPosition(*screen).x << "," << sf::Mouse::getPosition(*screen).y << ")";
        sf::Text mposTXT(mpos.str(), font, 12);
        mposTXT.setColor(sf::Color(200,0,0));
        screen->draw(mposTXT);
        */

        //handle input
        while(screen->pollEvent(event))
        {
            //if resize event happened
            if(event.type == sf::Event::Resized)
            {
                screen->setSize( sf::Vector2u(IMAGE_SCALE*IMAGE_SIZE + RIGHT_MARGIN_WIDTH, IMAGE_SCALE*IMAGE_SIZE + BOTTOM_MARGIN_HEIGHT));
                continue;
            }

            //pass event to sliders
            if(updateSliders(&event)) refresh = true;


            //WINDOW CLOSE EVENT
            if(event.type == sf::Event::Closed) quit = true;

            // MOUSE EVENTS
            if(event.type == sf::Event::MouseButtonPressed)
            {
                //LEFT MOUSE BUTTON
                if(event.mouseButton.button == sf::Mouse::Left)
                {
                    for(int i = 0; i < int(buttons.size()); i++)
                    {
                        if(buttons[i]->mouseIn())
                        {
                            switch(i)
                            {
                            case 0:
                                N_MODE = SIMPLEX;
                                break;
                            case 1:
                                N_MODE = PERLIN;
                                break;
                            case 2:
                                if(terrainmode) terrainmode = false;
                                else terrainmode = true;
                                break;
                            case 3:
                                exportToTXT();
                                break;
                            case 4:
                                exportToIMAGE();
                                break;
                            case 5:
                                randomPosition();
                                break;
                            case 6:
                                /*
                                defaultSettings();
                                updateSliders(NULL);
                                refresh = true;
                                */
                                reloadDefaultSettings();
                                break;
                            default:
                                break;
                            }

                            refresh = true;

                        }
                    }

                }
                else if(event.mouseButton.button == sf::Mouse::Right)
                {
                    sf::Vector2i m_pos = sf::Mouse::getPosition(*screen);

                    if(m_pos.x >= 0 && m_pos.x <= mapTexture->getSize().x && m_pos.y >= 0 && m_pos.y <= mapTexture->getSize().y)
                    {
                        mapDrag = true;
                        mapDragOffset = m_pos;
                        refresh = true;
                    }

                }

            }

            // KEYBOARD EVENTS
            if(event.type == sf::Event::KeyPressed)
            {
                //escape to quit
                if(event.key.code == sf::Keyboard::Escape)
                {
                    quit = true;
                }
                else if(event.key.code == sf::Keyboard::Q)
                {
                    /*
                    defaultSettings();
                    std::cout << "loaded default settings\n";
                    initTerrainSlider(); // memory leak?
                    std::cout << "initialized terrain slider\n";
                    updateSliders(NULL);
                    std::cout << "updated sliders\n";
                    */
                    reloadDefaultSettings();
                    refresh = true;
                }
                else if(event.key.code == sf::Keyboard::F1)
                {
                    segment newseg;
                    newseg.value = 254;
                    newseg.red = rand()%256;
                    newseg.green = rand()%256;
                    newseg.blue = rand()%256;

                    terSlider->addSegment(&newseg);
                }
                else if(event.key.code == sf::Keyboard::F5)
                {
                    xpos = 10;
                    ypos = 10;
                    refresh = true;
                }
                else if(event.key.code == sf::Keyboard::W) {ypos = ypos - IMAGE_SIZE/2; refresh = true;}
                else if(event.key.code == sf::Keyboard::S) {ypos = ypos + IMAGE_SIZE/2; refresh = true;}
                else if(event.key.code == sf::Keyboard::A) {xpos = xpos - IMAGE_SIZE/2; refresh = true;}
                else if(event.key.code == sf::Keyboard::D) {xpos = xpos + IMAGE_SIZE/2; refresh = true;}


            }
        }

        //draw screen
        screen->display();


    }

    //save settings after mainloop quit
    saveSettings();
}
void SingleCellViewGraphPanelPlotWidget::drawCanvas(QPainter *pPainter)
{
    foreach (SingleCellViewGraphPanelPlotCurve *curve, mCurves)
        static_cast<SingleCellViewQwtCurveDataAdaptor*>(curve->data())->updateSize();

    switch (mAction) {
    case ShowCoordinates: {
        // We are showing some coordinates, so start by drawing our pixmap

        pPainter->drawPixmap(0, 0, mCanvasPixmap);

        // Draw the two dashed lines that show the coordinates, using a dark
        // cyan pen

        QPen pen = pPainter->pen();
        QColor backgroundColor = Qt::darkCyan;

        backgroundColor.setAlphaF(0.69);

        pen.setColor(backgroundColor);
        pen.setStyle(Qt::DashLine);

        pPainter->setPen(pen);

        QPointF coordinates = QPointF(canvasMap(QwtPlot::xBottom).transform(mOriginPoint.x()),
                                      canvasMap(QwtPlot::yLeft).transform(mOriginPoint.y()));

        pPainter->drawLine(0.0, coordinates.y(),
                           plotLayout()->canvasRect().width(), coordinates.y());
        pPainter->drawLine(coordinates.x(), 0.0,
                           coordinates.x(), plotLayout()->canvasRect().height());

        // Draw the coordinates

        drawCoordinates(pPainter, mOriginPoint, backgroundColor, Qt::white);

        break;
    }
    case ZoomRegion: {
        // We are zooming a region, so start by drawing our pixmap

        pPainter->drawPixmap(0, 0, mCanvasPixmap);

        // Retrieve the coordinates of the region to be zoomed

        QRectF zoomRegionRect = zoomRegion();

        // Now, draw the region to be zoomed

        QColor penColor = Qt::darkRed;
        QColor brushColor = Qt::yellow;

        penColor.setAlphaF(0.69);
        brushColor.setAlphaF(0.19);

        pPainter->setPen(penColor);

        QwtScaleMap canvasMapX = canvasMap(QwtPlot::xBottom);
        QwtScaleMap canvasMapY = canvasMap(QwtPlot::yLeft);

        double left = canvasMapX.transform(zoomRegionRect.left());
        double top = canvasMapY.transform(zoomRegionRect.top());

        QRectF unmappedZoomRegionRect = QRectF(left, top,
                                               canvasMapX.transform(zoomRegionRect.right())-left,
                                               canvasMapY.transform(zoomRegionRect.bottom())-top);

        pPainter->fillRect(unmappedZoomRegionRect, brushColor);
        pPainter->drawRect(unmappedZoomRegionRect);

        // Draw the two sets of coordinates

        drawCoordinates(pPainter, zoomRegionRect.topLeft(), penColor, Qt::white, BottomRight, false);
        drawCoordinates(pPainter, zoomRegionRect.bottomRight(), penColor, Qt::white, TopLeft, false);

        break;
    }
    default:
        // We aren't doing anything special, so just draw our canvas normally

        QwtPlot::drawCanvas(pPainter);
    }
}
Example #6
0
void K3ChessSettings::setDrawCoordinates(bool value)
{
   if(value==drawCoordinates()) return;
   settings_.setValue("Board/DrawCoordinates", value);
   emit boardStyleChanged();
}
Example #7
0
void My_Painter::paintEvent(QPaintEvent * event)
{
    QPainter painter(this);
    drawCoordinates(painter);
}