//--------------------------------------------------------------------------------------- ImoObj* Linker::add_text(ImoScoreText* pText) { if (m_pParent) { //compatibility with 1.5. Since 1.6 auxObjs can not be included //in musicData; they must go attached to an spacer. if (m_pParent->is_music_data()) { //musicData: create anchor (ImoSpacer) and attach to it ImoSpacer* pSpacer = static_cast<ImoSpacer*>( ImFactory::inject(k_imo_spacer, m_pDoc) ); pSpacer->add_attachment(m_pDoc, pText); add_staffobj(pSpacer); return pText; } //if language not set, use document language if (!pText->has_language()) pText->set_language( m_pDoc->get_language() ); if (m_pParent->is_instrument()) { ImoInstrument* pInstr = static_cast<ImoInstrument*>(m_pParent); //could be 'name' or 'abbrev' if (m_ldpChildType == k_name) pInstr->set_name(pText); else pInstr->set_abbrev(pText); return NULL; } if (m_pParent->is_instr_group()) { ImoInstrGroup* pGrp = static_cast<ImoInstrGroup*>(m_pParent); //could be 'name' or 'abbrev' if (m_ldpChildType == k_name) pGrp->set_name(pText); else pGrp->set_abbrev(pText); return NULL; } if (m_pParent->is_content()) { add_child(k_imo_content, pText); return pText; } return add_attachment(pText); } return pText; }