Exemplo n.º 1
0
void PartDisplay::calculate()
{
    _useColour = false;
    _r         = 255;
    _g         = 255;
    _b         = 255;

    Phrase        *phr  = p->phrase();
    DisplayParams *d    = p->displayParams();
    DisplayParams *phrd = phr ? phr->displayParams() : 0;

    if (d->style() != DisplayParams::None)
    {
        if (d->style() == DisplayParams::Default && phr)
        {
            // Get values from Phrase
            if (phrd->style() == DisplayParams::Colour)
            {
                phrd->colour(_r, _g, _b);
                _useColour = true;
            }
            else if (phrd->style() == DisplayParams::PresetColour && preset)
            {
                preset->colour(phrd->presetColour(), _r, _g, _b);
                _useColour = true;
            }
        }
        else if (d->style() != DisplayParams::Default)
        {
            // Values from Part: must be using colour
            _useColour = true;
            if (d->style() == DisplayParams::Colour)
            {
                d->colour(_r, _g, _b);
                _useColour = true;
            }
            else if (preset)
            {
                preset->colour(d->presetColour(), _r, _g, _b);
                _useColour = true;
            }
        }
    }

    _calculated = true;
}