Esempio n. 1
0
LineSegment* Ottava::createLineSegment()
      {
      OttavaSegment* os = new OttavaSegment(this, score());
      os->setTrack(track());
      os->initElementStyle(&ottavaSegmentStyle);
      return os;
      }
Esempio n. 2
0
void Ottava::setOttavaType(OttavaType val)
{
    setEndHook(true);
    _ottavaType = val;
    const OttavaDefault* def = &ottavaDefault[int(val)];

    Spatium hook(score()->styleS(ST_ottavaHook));

    SymId id = _numbersOnly ? def->numbersOnlyId : def->id;
    if (symIsValid(id)) {
        if (beginSymbolStyle == PropertyStyle::STYLED)
            setBeginSymbol(id);
        if (continueSymbolStyle == PropertyStyle::STYLED)
            setContinueSymbol(id);

        setBeginSymbolOffset(def->offset);
        setContinueSymbolOffset(def->offset);

        foreach(SpannerSegment* s, spannerSegments()) {
            OttavaSegment* os = static_cast<OttavaSegment*>(s);
            os->clearText();
        }
        delete _beginText;
        _beginText = 0;
        delete _continueText;
        _continueText = 0;
    }
Esempio n. 3
0
void Ottava::setOttavaType(OttavaType val)
      {
      setEndHook(true);
      _ottavaType = val;

      Spatium hook(score()->styleS(ST_ottavaHook));

      SymId id;
      if (_numbersOnly)
            id = ottavaDefault[int(val)].numbersOnlyId;
      else
            id = ottavaDefault[int(val)].id;
      if (beginSymbolStyle == PropertyStyle::STYLED)
            setBeginSymbol(id);
      if (continueSymbolStyle == PropertyStyle::STYLED)
            setContinueSymbol(id);

      setBeginSymbolOffset(ottavaDefault[int(val)].offset);
      setContinueSymbolOffset(ottavaDefault[int(val)].offset);
      setEndHookHeight(hook * ottavaDefault[int(val)].hookDirection);
      setPlacement(ottavaDefault[int(val)].place);
      _pitchShift = ottavaDefault[int(val)].shift;

      foreach(SpannerSegment* s, spannerSegments()) {
            OttavaSegment* os = static_cast<OttavaSegment*>(s);
            os->clearText();
            }
Esempio n. 4
0
void Ottava::setOttavaType(OttavaType val)
      {
      if (val == _ottavaType)
            return;
      setEndHook(true);
      _ottavaType = val;

      Spatium hook(score()->styleS(ST_ottavaHook));

      const TextStyle& ts = score()->textStyle(TEXT_STYLE_OTTAVA);

      switch(val) {
            case OTTAVA_8VA:
                  setBeginText("8va", ts);
                  setContinueText("(8va)", ts);
                  setEndHookHeight(hook);
                  _pitchShift = 12;
                  break;
            case OTTAVA_15MA:
                  setBeginText("15ma", ts);
                  setContinueText("(15ma)", ts);
                  setEndHookHeight(hook);
                  _pitchShift = 24;
                  break;
            case OTTAVA_8VB:
                  setBeginText("8vb", ts);
                  setContinueText("(8vb)", ts);
                  _pitchShift = -12;
                  setEndHookHeight(-hook);
                  break;
            case OTTAVA_15MB:
                  setBeginText("15mb", ts);
                  setContinueText("(15mb)", ts);
                  _pitchShift = -24;
                  setEndHookHeight(-hook);
                  break;
            }
      foreach(SpannerSegment* s, spannerSegments()) {
            OttavaSegment* os = static_cast<OttavaSegment*>(s);
            os->clearText();
            }