private void btnOpen_Click(object sender, EventArgs e) { if (isDirty && curEditAEData != null) { // Ask Is Needed Saving ?? DialogResult dialogResult = MessageBox.Show("请问是否需要保存 " + curEditAEData.fileName + "?", "确认下 (^_^)", MessageBoxButtons.YesNoCancel); if (dialogResult == DialogResult.Cancel) { return; } else if (dialogResult == DialogResult.Yes) { curEditAEData.WriteToFile(curEditAEData.fileName); } } AETypeForm aeTypeForm = new AETypeForm(); aeTypeForm.ShowDialog(); if (aeTypeForm.DialogResult == DialogResult.OK) { if (getOpenFileDialog(aeTypeForm.getType()).ShowDialog() == DialogResult.OK) { String curfileName = getOpenFileDialog(aeTypeForm.getType()).FileName; AEData aeData = AEData.create(curfileName, table); if (aeData != null) { setAEData(aeData); } } } updateStatus(); }
void setAEData(AEData aeData) { curEditAEData = aeData; curEditAEData.addToView(treeView1); //默认不展开 //treeView1.ExpandAll(); treeView1.Nodes[0].EnsureVisible(); updateStatus(); }
bool isDragCurSecond = false; // 当前是否在拖拽当前刻度 internal void updateActionBox(AEData aeData) { if (aeData == null) { return; } spriteBoxs.Clear(); int curHeight = 0; foreach (AESprite aeSprite in aeData.aeSprites) { spriteBoxs.Add(new SpriteBox(aeSprite, curHeight)); curHeight += aeSprite.__spanHeight; } this.Invalidate(); }
public MainFrame(string[] args) { InitializeComponent(); treeView1.NodeMouseClick += treeView_NodeClick; treeView1.KeyUp += treeView_KeyUp; treeView1.ContextMenu = nodeContextMenu; // init file init(".\\Editor\\aeditor\\aeditor.ini"); // action template file table = new ActionTemplateTable(".\\Editor\\template.xml"); MainFrame.instance = this; if (args.Length == 0) { setAEData(new AEData(EAeDataType.Cocos)); } else { setAEData(AEData.create(args[0], table)); } }
internal void updateActionBox(AEData aeData) { spanPanel.updateActionBox(aeData); }
//// true / false : res //private String isFileInResDir(String strFile) //{ // foreach (String strResDir in resPath) { // //File f; // } //} //private String selectPngFileInResDir() //{ // if (DialogResult.OK == openPngFileDialog.ShowDialog(this)) // { // String file = openPngFileDialog.FileName; // } //} private void contextmenu_Click(object sender, EventArgs e) { if (curTreeNodeBindedObject == null) { return; } MenuItem item = sender as MenuItem; if (item == null) { return; } bool __isOpDirty = true; if (curTreeNodeBindedObject is AEData) { // AEData AEData aeData = (AEData)curTreeNodeBindedObject; if (item.Text == "新建精灵") { AESprite aeSprite = aeData.createSprite(); aeData.addSprite(aeSprite); treeView1.SelectedNode = aeSprite.getTreeNode(); } } else if (curTreeNodeBindedObject is AEConfig) { // AEConfig if (item.Text == "修改配置") { curEditAEData.createConfigPropForm(this).ShowDialog(this); __isOpDirty = false; // 内部设置了Dirty } } else if (curTreeNodeBindedObject is AESprite) { // AESprite AESprite aeSprite = (AESprite)curTreeNodeBindedObject; if (item.Text == "新建精灵(上方)") { AESprite newAESprite = curEditAEData.createSprite(); this.curEditAEData.addSprite(newAESprite, aeSprite, true); treeView1.SelectedNode = newAESprite.getTreeNode(); } else if (item.Text == "新建精灵(下方)") { AESprite newAESprite = curEditAEData.createSprite(); this.curEditAEData.addSprite(newAESprite, aeSprite, false); treeView1.SelectedNode = newAESprite.getTreeNode(); } else if (item.Text == "上移精灵") { this.curEditAEData.moveSprite(aeSprite, true); treeView1.SelectedNode = aeSprite.getTreeNode(); } else if (item.Text == "下移精灵") { this.curEditAEData.moveSprite(aeSprite, false); treeView1.SelectedNode = aeSprite.getTreeNode(); } else if (item.Text == "删除精灵") { this.curEditAEData.removeSprite(aeSprite); } else if (item.Text == "修改精灵") { this.curEditAEData.createSpritePropForm(aeSprite, this).ShowDialog(this); __isOpDirty = false; // dirty setted in PropForm setBack } else if (item.Text == "复制精灵") { curToCopyed = aeSprite; __isOpDirty = false; } else if (item.Text == "粘贴精灵(上方)") { AESprite newSprite = curEditAEData.copySprite((AESprite)curToCopyed, table); this.curEditAEData.addSprite(newSprite, aeSprite, true); newSprite.recalcAndUpdate(); treeView1.SelectedNode = newSprite.getTreeNode(); } else if (item.Text == "粘贴精灵(下方)") { AESprite newSprite = curEditAEData.copySprite((AESprite)curToCopyed, table); this.curEditAEData.addSprite(newSprite, aeSprite, false); newSprite.recalcAndUpdate(); treeView1.SelectedNode = newSprite.getTreeNode(); } else if (item.Text == "新建动作") { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate action = table.createActionByNote(selected); aeSprite.addAction(action); treeView1.SelectedNode = action.getTreeNode(); } } } else if (item.Text == "粘贴动作") { if (curToCopyed is ActionTemplate) { aeSprite.addAction(((ActionTemplate)curToCopyed).copy(table)); } } } else if (curTreeNodeBindedObject is ActionTemplate) { // ActionTemplate ActionTemplate actionTemplate = (ActionTemplate)curTreeNodeBindedObject; Object parentBindedObject = curEditAEData.getNodeBindedObject(actionTemplate.getTreeNode().Parent); if (item.Text == "修改动作") { new ActionPropForm(actionTemplate, this).ShowDialog(this); __isOpDirty = false; // 内部设置了Dirty } if (item.Text == "复制动作") { curToCopyed = actionTemplate.copy(table); __isOpDirty = false; } else if (item.Text == "添加子动作") { if (actionTemplate.actionList == 0) { return; } if (actionTemplate.actionList == 1 && actionTemplate.subActionList.Count >= 1) { return; } if (!actionTemplate.isContainGridSubAction()) { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); } else { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2, ActionTemplateTable.EActionFilterType.GRID)); } if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate newAction = table.createActionByNote(selected); actionTemplate.addSubAction(newAction); treeView1.SelectedNode = newAction.getTreeNode(); } } } else if (item.Text == "粘贴子动作") { if (actionTemplate.actionList == 0) { return; } if (actionTemplate.actionList == 1 && actionTemplate.subActionList.Count >= 1) { return; } if (curToCopyed is ActionTemplate) { ActionTemplate newAction = ((ActionTemplate)curToCopyed).copy(table); actionTemplate.addSubAction(newAction); treeView1.SelectedNode = newAction.getTreeNode(); } } if (parentBindedObject is AESprite) { AESprite parent = (AESprite)parentBindedObject; if (item.Text == "覆盖动作 -- 使用复制") { if (curToCopyed is ActionTemplate) { ActionTemplate newAction = ((ActionTemplate)curToCopyed).copy(table); parent.addAction(newAction, actionTemplate, true); treeView1.SelectedNode = newAction.getTreeNode(); parent.removeAction(actionTemplate); } } else if (item.Text == "删除动作") { if (actionTemplate.subActionList.Count == 1) { ActionTemplate actionToAddBack = actionTemplate.subActionList[0]; actionTemplate.removeSubAction(actionToAddBack, false); parent.replaceAction(actionTemplate, actionToAddBack); treeView1.SelectedNode = actionToAddBack.getTreeNode(); } else { parent.removeAction(actionTemplate); } } else if (item.Text == "上移动作") { parent.moveAction(actionTemplate, true); } else if (item.Text == "下移动作") { parent.moveAction(actionTemplate, false); } else if (item.Text == "添加父动作") { if (actionTemplate.eActionType == EActionType.CCActionInstant) { alfForm.setItems(table.getActionsByPerferList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.SPAWN_AND_SEQUENCE)); } else { alfForm.setItems(table.getActionsByPerferList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); } if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate newAction = table.createActionByNote(selected); parent.replaceAction(actionTemplate, newAction); newAction.addSubAction(actionTemplate); treeView1.SelectedNode = actionTemplate.getTreeNode(); newAction.getTreeNode().ExpandAll(); } } } } else if (parentBindedObject is ActionTemplate) { ActionTemplate parent = (ActionTemplate)parentBindedObject; if (item.Text == "覆盖动作 -- 使用复制") { if (curToCopyed is ActionTemplate) { ActionTemplate newAction = ((ActionTemplate)curToCopyed).copy(table); parent.addSubAction(newAction, actionTemplate, true); treeView1.SelectedNode = newAction.getTreeNode(); parent.removeSubAction(actionTemplate); } } else if (item.Text == "删除动作") { if (actionTemplate.subActionList.Count == 1) { ActionTemplate actionToAddBack = actionTemplate.subActionList[0]; actionTemplate.removeSubAction(actionToAddBack, false); parent.replaceAction(actionTemplate, actionToAddBack); treeView1.SelectedNode = actionToAddBack.getTreeNode(); } else { parent.removeSubAction(actionTemplate); } } else if (item.Text == "新建动作(上方)") { if (parent.actionList <= 1) { return; } if (!parent.isContainGridSubAction()) { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); } else { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2, ActionTemplateTable.EActionFilterType.GRID)); } if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate newAction = table.createActionByNote(selected); parent.addSubAction(newAction, actionTemplate, true); treeView1.SelectedNode = newAction.getTreeNode(); } } } else if (item.Text == "新建动作(下方)") { if (parent.actionList <= 1) { return; } if (!parent.isContainGridSubAction()) { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); } else { alfForm.setItems(table.getActionsByIgnoreList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2, ActionTemplateTable.EActionFilterType.GRID)); } if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate newAction = table.createActionByNote(selected); parent.addSubAction(newAction, actionTemplate, false); treeView1.SelectedNode = newAction.getTreeNode(); } } } else if (item.Text == "粘贴动作(上方)") { if (parent.actionList <= 1) { return; } if (curToCopyed is ActionTemplate) { ActionTemplate newAction = ((ActionTemplate)curToCopyed).copy(table); parent.addSubAction(newAction, actionTemplate, true); treeView1.SelectedNode = newAction.getTreeNode(); } } else if (item.Text == "粘贴动作(下方)") { if (parent.actionList <= 1) { return; } if (curToCopyed is ActionTemplate) { ActionTemplate newAction = ((ActionTemplate)curToCopyed).copy(table); parent.addSubAction(newAction, actionTemplate, false); treeView1.SelectedNode = newAction.getTreeNode(); } } else if (item.Text == "上移动作") { parent.moveSubAction(actionTemplate, true); } else if (item.Text == "下移动作") { parent.moveSubAction(actionTemplate, false); } else if (item.Text == "添加父动作") { if (actionTemplate.eActionType == EActionType.CCActionInstant) { alfForm.setItems(table.getActionsByPerferList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.SPAWN_AND_SEQUENCE)); } else { alfForm.setItems(table.getActionsByPerferList(curEditAEData.eType, ActionTemplateTable.EActionFilterType.ACTION_LIST_1, ActionTemplateTable.EActionFilterType.ACTION_LIST_2)); } if (alfForm.ShowDialog(this) == DialogResult.OK) { String selected = alfForm.getSelected(); if (selected != null) { ActionTemplate newAction = table.createActionByNote(selected); parent.replaceAction(actionTemplate, newAction); newAction.addSubAction(actionTemplate); treeView1.SelectedNode = actionTemplate.getTreeNode(); newAction.getTreeNode().ExpandAll(); } } } } } curEditAEData.recalcAndUpdate(); if (__isOpDirty) { setDirty(__isOpDirty); } curTreeNodeBindedObject = null; treeView1.Update(); }