//--------------------------------------------------------------------------- // clip Drag'n'Drop // clip Mouse //. //--------------------------------------------------------------------------- void __fastcall TClipMaker::ClipDragOver(TObject *Sender, TObject *Source, int X, int Y, TDragState State, bool &Accept) { Accept = false; TElTreeDragObject* obj = dynamic_cast<TElTreeDragObject*>(Source); if (obj){ TMxPanel* A = dynamic_cast<TMxPanel*>(Sender); if (A==paClips){ TElTree* tv = dynamic_cast<TElTree*>(obj->Control); if (tv->SelectedCount){ for (TElTreeItem* item = tv->GetNextSelected(0); item; item = tv->GetNextSelected(item)){ ListItem* prop = (ListItem*)item->Tag; if (prop&&(prop->Type()==emMotion)){ Accept = true; } } } } }else{ Accept = (Sender==paClips); } }
void CParticleTools::OnParticleItemFocused(ListItemsVec& items) { PropItemVec props; m_EditMode = emEffect; ButtonValue* B; B=PHelper().CreateButton (props,"Transform\\Edit", "Reset", ButtonValue::flFirstOnly); B->OnBtnClickEvent.bind (this,&CParticleTools::OnControlClick); PHelper().CreateFlag32 (props,"Transform\\Type", &m_Flags, flSetXFORM,"Update","Set"); // reset to default ResetCurrent (); if (!items.empty()){ for (ListItemsIt it=items.begin(); it!=items.end(); it++){ ListItem* item = *it; if (item){ m_EditMode = EEditMode(item->Type()); switch(m_EditMode){ case emEffect:{ PS::CPEDef* def = ((PS::CPEDef*)item->m_Object); SetCurrentPE (def); def->FillProp (EFFECT_PREFIX,props,item); }break; case emGroup:{ PS::CPGDef* def = ((PS::CPGDef*)item->m_Object); SetCurrentPG (def); def->FillProp (GROUP_PREFIX,props,item); }break; default: THROW; } } } } m_ItemProps->AssignItems(props); UI->RedrawScene(); }