예제 #1
0
파일: GraphViewer.cpp 프로젝트: AGenews/GUI
void GraphViewer::updateNodeLocations()
{
    // set the initial locations
    for (int i = 0; i < availableNodes.size(); i++)
    {

    }

    rootNum = 0;

    // do initial layout
    for (int i = 0; i < availableNodes.size(); i++)
    {
        checkLayout(availableNodes[i]);
    }

    // check for overlap
    for (int i = 0; i < availableNodes.size(); i++)
    {
        for (int j = 0; j < availableNodes.size(); j++)
        {
            if (j != i)
            {
                if (availableNodes[j]->getLevel() == availableNodes[i]->getLevel() &&
                    availableNodes[j]->getHorzShift() == availableNodes[i]->getHorzShift())
                {
                    availableNodes[j]->setHorzShift(availableNodes[j]->getHorzShift()+1);
                }
            }
        }
    }

    repaint();
}
예제 #2
0
LayoutDesc newSpriteDialog::getLayout()
{
    LayoutDesc ld;
    if (checkLayout())
    {
            ld.namePrefix = findChild<QLineEdit*>("lineEdit_5")->text();
            ld.indexValue = ld.namePrefix+"_indexer";
            ld.leftValue  = findChild<QComboBox*>("comboBox")->currentText();
            ld.topValue   = findChild<QComboBox*>("comboBox_2")->currentText();
            ld.leftShift  = findChild<QLineEdit*>("left_shift")->text();
            ld.topShift  = findChild<QLineEdit*>("top_shift")->text();
            ld.setAnimation = findChild<QCheckBox*>("checkBox_3")->isChecked();
            ld.type = findChild<QComboBox*>("sprite_types")->currentText();
            ld.typePostFix = "";
    }
    return ld;
}
예제 #3
0
void GraphViewer::updateNodeLocations()
{
    const int numAvailableNodes = availableNodes.size();
    
    // If this was made just for future purpose it would be better to execute this only in debug mode
#if JUCE_DEBUG
    // set the initial locations
    for (int i = 0; i < numAvailableNodes; ++i)
    {
    }
#endif
    
    rootNum = 0;
    
    // do initial layout
    for (int i = 0; i < numAvailableNodes; ++i)
    {
        checkLayout (availableNodes[i]);
    }
    
    // check for overlap
    for (int i = 0; i < numAvailableNodes; ++i)
    {
        for (int j = 0; j < numAvailableNodes; ++j)
        {
            if (j != i)
            {
                if (availableNodes[j]->getLevel() == availableNodes[i]->getLevel()
                    && availableNodes[j]->getHorzShift() == availableNodes[i]->getHorzShift())
                {
                    availableNodes[j]->setHorzShift (availableNodes[j]->getHorzShift() + 1);
                }
            }
        }
    }
    
    repaint();
}
예제 #4
0
파일: GraphViewer.cpp 프로젝트: AGenews/GUI
void GraphViewer::checkLayout(GraphNode* gn)
{
 
    if (gn != nullptr)
    {

        GraphNode* sourceNode;

        if (gn->isMerger())
        {
            Array<GenericEditor*> editors = gn->getConnectedEditors();

            int level1 = 0;
            int level2 = 0;

            if (editors[0] != nullptr)
            {
                level1 = getNodeForEditor(editors[0])->getLevel();
            }

            if (editors[1] != nullptr)
            {
                level2 = getNodeForEditor(editors[1])->getLevel();
            }

           // std::cout << "LEVEL1 = " << level1 << " LEVEL2 = " << level2 << std::endl;

            sourceNode = level1 > level2 ? getNodeForEditor(editors[0]) : 
                                           getNodeForEditor(editors[1]); // choose the higher source

        } else {
            sourceNode = getNodeForEditor(gn->getSource());
        }

        if (sourceNode == nullptr)
        {
            gn->setLevel(0);
            gn->setHorzShift(rootNum);
            rootNum++;
        } else if (sourceNode->isSplitter()) 
        {
            Array<GenericEditor*> editors = sourceNode->getConnectedEditors();

            if (gn->hasEditor(editors[1]))
            {
                gn->setLevel(sourceNode->getLevel()+1); // increase level
                gn->setHorzShift(sourceNode->getHorzShift()+1); // increase horz shift
            } else {
                 gn->setLevel(sourceNode->getLevel()+1); // increase level
                gn->setHorzShift(sourceNode->getHorzShift()); // same horz shift
            }

        } else {

            gn->setLevel(sourceNode->getLevel()+1); // increase level
            gn->setHorzShift(sourceNode->getHorzShift()); // same horz shift
        }

        checkLayout(getNodeForEditor(gn->getDest()));

    }

}
예제 #5
0
void  UBKeyboardPalette::paintEvent( QPaintEvent* event)
{
    checkLayout();

    UBActionPalette::paintEvent(event);

    QRect r = this->geometry();

    int lleft, ltop, lright, lbottom;
    getContentsMargins ( &lleft, &ltop, &lright, &lbottom ) ;

    //------------------------------------------------
    // calculate start offset from left, and from top

    int ctrlButtonsId = 0;
    lleft = ( r.width() - btnWidth * 15 ) / 2;
    ltop = ( r.height() - btnHeight * 5 ) / 2;

    //------------------------------------------------
    // set geometry (position) for row 1

    int offX = lleft;
    int offY = ltop;

    //-------------------

    // buttons [`]..[+]
    for (int i = 0; i<13; i++)
    {
        buttons[i]->setGeometry(offX, offY, btnWidth, btnHeight);
        offX += btnWidth;
    }

    // button Backspace
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight);
    offX += btnWidth * 2;

    //------------------------------------------------
    // set geometry (position) for row 2

    offX = lleft;
    offY += btnHeight;
    offX += btnWidth / 2;

    //-------------------

    // button Tab
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight);
    offX += btnWidth * 2;

    // buttons [q]..[]]
    for (int i = 0; i<12; i++)
    {
        buttons[i + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
        offX += btnWidth;
    }

//     // Row 2 Stub
//     ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1.5, btnHeight);
//     offX += btnWidth * 1.5;

    //------------------------------------------------
    // set geometry (position) for row 3

    offX = lleft;
    offY += btnHeight;

    //-------------------

//     // Row 3 Stub

    // button Enter
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 1, btnHeight);
    offX += btnWidth*1;

    // buttons [a]..[\]
    for (int i = 0; i < 12; i++)
    {
        buttons[i + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
        offX += btnWidth;
    }

    // button Enter
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth * 2, btnHeight);
    offX += btnWidth*2;

    //------------------------------------------------
    // set geometry (position) for row 4

    offX = lleft;
    offY += btnHeight;

    //-------------------

    // button LCapsLock
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight);
    offX += btnWidth*2.5;

    for (int i = 0; i < 10; i++)
    {
        buttons[i + 12 + 12 + 13]->setGeometry(offX, offY, btnWidth, btnHeight);
        offX += btnWidth;
    }

    // button RCapsLock
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX, offY, btnWidth*2.5, btnHeight);
    offX += btnWidth*2.5;

    //------------------------------------------------
    // set geometry (position) for row 5

    offX = lleft;
    offY += btnHeight;

    //-------------------

    ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 1 , offY, btnWidth * 2, btnHeight);
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 3 , offY, btnWidth * 9, btnHeight);
    ctrlButtons[ctrlButtonsId++]->setGeometry(offX + btnWidth * 12, offY, btnWidth * 2, btnHeight);

    //------------------------------------------------
}
예제 #6
0
파일: applier.cpp 프로젝트: DomT4/gaia
void Applier::checkLayout(const DataSet* dataset) const {
  checkLayout(dataset->layout());

  dataset->checkAllPointsShareSameLayout();
}