示例#1
0
        private void addDragItemType(String type, object controlData, Point p)
        {
            clearSelectStatus();
            //RenderBase clickItem = getClickItem(new PointF(p.X, p.Y), null);
            ClickPosArena arena;
            TDPanel       panel = RenderBase.GetPanelNode(getClickItem(p, out arena));
            RenderBase    item  = null;

            try
            {
                item = UIHelper.CEGenerateItemByName(type, controlData as String, panel == null ? this : panel);
            }
            catch (NestException ex)
            {
                EventManager.RaiserEvent(Constant.StatusInfoChange, this, String.Format("{0} 文件不能嵌套 {1} 文件", this.panelPath, ex.Message));
            }
            if (item != null)
            {
                if (type == Constant.TypeSprite && controlData is String)
                {
                    (item as TDSprite).ImagePath = controlData as String;
                }
                DynamicObj.propDock.SetSelectItem(item);
                if (panel != null)
                {
                    PointF panelPos = panel.startPos();
                    item.pos = new PointF(p.X - panelPos.X, p.Y - panelPos.Y);
                }
                else
                {
                    item.pos = p;
                }
                commandManager.AddCommand(new CommandAdd(this, item));
                checkModifyStatus();
            }

            EventManager.RaiserEvent(Constant.RenderItemChange, this, null);
            Refresh();
        }
示例#2
0
        public void changePosByUniQue(String srcUni, String destUni)
        {
            RenderBase src  = getRenderByUniqueName(srcUni);
            RenderBase dest = getRenderByUniqueName(destUni);

            if (src == null || dest == null || src is RenderScene || src == dest)
            {
                return;
            }

            TDPanel parent = dest.getParent() as TDPanel;

            if (parent == null)
            {
                return;
            }
            List <RenderBase> childs = new List <RenderBase>();

            foreach (RenderBase child in parent.ChildItems)
            {
                if (child == dest)
                {
                    childs.Add(child);
                    childs.Add(src);
                }
                else if (child != src)
                {
                    childs.Add(child);
                }
            }
            if (src.getParent() != dest.getParent())
            {
                src.removeFromParent();
                src.setParent(dest.getParent());
            }
            parent.ChildItems = childs;
            Invalidate();
        }