CCoreAudioChannelLayout::CCoreAudioChannelLayout(AudioChannelLayout& layout) : m_pLayout(NULL) { CopyLayout(layout); }
//------------------------------------------------------------------------------ CIwAttrInstance* CUIEdProjectUI::Add(CIwAttrInstance* inst,CIwAttrInstance* parent,int actionModifer) { if (inst==NULL || parent==NULL) return NULL; CUIEdAttrLinkData* link=GetLink(inst); if (link==NULL) return NULL; if ((actionModifer&ACTIONMODIFIER_TAKEALL)==0) link=ResolveAddItem(link); CUIEdAttrLinkData* sibling=NULL; CUIEdAttrLinkData* parentLink=GetLink(parent); CUIEdAttrLinkData* layout=NULL; CUIEdAttrLinkData* layoutSibling=NULL; if (parentLink==NULL) return NULL; if ((actionModifer&ACTIONMODIFIER_INSERT) && parentLink->m_Parent!=NULL) { sibling=parentLink; parentLink=parentLink->m_Parent; } if (link->m_Type==LAYOUTITEM_FOCUS) { if (parentLink->m_Type!=LAYOUTITEM_ELEMENT) parentLink=parentLink->GetParent(LAYOUTITEM_ELEMENT); if (parentLink==NULL) return NULL; return CopyFocus(link,parentLink); } if (link->m_Type==LAYOUTITEM_PROPERTYSET) { if (parentLink->m_Type!=LAYOUTITEM_ELEMENT) parentLink=parentLink->GetParent(LAYOUTITEM_ELEMENT,&sibling); if (parentLink==NULL) return NULL; if (parentLink->m_Element->m_Class->GetMember(link->m_Element->m_Parent->m_Member->m_Name)==NULL) return NULL; link=Copy(link,parentLink,sibling,actionModifer); if (link==NULL) return NULL; AddToElement(link,parentLink,sibling); return link->m_Element; } if (parentLink->m_Type==LAYOUTITEM_FOCUS || parentLink->m_Type==LAYOUTITEM_PROPERTYSET) parentLink=parentLink->GetParent(LAYOUTITEM_ELEMENT,&sibling); if (parentLink->m_Type==LAYOUTITEM_LAYOUTITEM) parentLink=parentLink->GetParent(LAYOUTITEM_LAYOUT,&sibling); if (link->m_Type==LAYOUTITEM_ELEMENT) { if (parentLink->m_Type==LAYOUTITEM_LAYOUT) { layout=parentLink; layoutSibling=sibling; parentLink=layout->GetParent(LAYOUTITEM_ELEMENT,&sibling); } else if (parentLink->m_Type==LAYOUTITEM_ELEMENT) layout=parentLink->GetLayout(); if (layout!=NULL) link=Copy(link,layout,layoutSibling,actionModifer); else link=Copy(link,parentLink,sibling,actionModifer); if (link==NULL) return NULL; if ((actionModifer&ACTIONMODIFIER_KEEPNAME)==0) SetName(link); AddToElement(link,parentLink,sibling); if (layout!=NULL) AddToLayout(link,layout,layoutSibling); return link->m_Element; } if (link->m_Type==LAYOUTITEM_LAYOUT) { bool replaceLayout=false; if (parentLink->m_Type==LAYOUTITEM_ELEMENT) { if (parentLink->GetLayout()==NULL) replaceLayout=true; else parentLink=parentLink->GetLayout(); sibling=NULL; } layout=link; if (replaceLayout) link=CopyLayout(link,parentLink); else link=Copy(link,parentLink,sibling,actionModifer); if (link==NULL) return NULL; if ((actionModifer&ACTIONMODIFIER_KEEPNAME)==0) SetName(link); if (!replaceLayout) { AddToLayout(link,parentLink,sibling); Add2(link->m_Element,link->m_LayoutItem); } CopyLayoutChildren(link,layout,actionModifer); return link->m_Element; } if (link->m_Type==LAYOUTITEM_LAYOUTITEM) { if (parentLink->m_Type==LAYOUTITEM_ELEMENT) { if (parentLink->GetLayout()==NULL) parentLink=parentLink->GetParent(LAYOUTITEM_LAYOUT,&sibling); else { parentLink=parentLink->GetLayout(); sibling=NULL; } } if (parentLink==NULL) return NULL; link=Copy(link,parentLink,sibling,actionModifer); if (link==NULL) return NULL; if ((actionModifer&ACTIONMODIFIER_KEEPNAME)==0) SetName(link); AddToLayout(link,parentLink,sibling); Add2(link->m_Element,link->m_LayoutItem); return link->m_Element; } return NULL; }