예제 #1
0
        //-----------------------------------------------------------------------------
        // Constructor
        //-----------------------------------------------------------------------------
        public EditorForm()
        {
            InitializeComponent();

            editorControl				= new EditorControl();
            editorControl.EditorForm	= this;

            // Create the level display.
            levelDisplay				= new LevelDisplay();
            levelDisplay.EditorControl	= editorControl;
            levelDisplay.Name			= "levelDisplay";
            levelDisplay.Dock			= DockStyle.Fill;
            levelDisplay.EditorForm		= this;
            panelWorld.Controls.Add(this.levelDisplay);

            tileDisplay					= new TileDisplay();
            tileDisplay.EditorControl	= editorControl;
            tileDisplay.Name			= "tileDisplay";
            tileDisplay.Dock			= DockStyle.Fill;
            tileDisplay.EditorForm		= this;
            panelTiles2.Controls.Add(tileDisplay);

            /*treeViewLevels.AfterLabelEdit += delegate(object sender, NodeLabelEditEventArgs e) {
                Console.WriteLine("Renamed level to " + e.Label);
                int levelIndex = e.Node.Index;
                Level level = editorControl.World.GetLevel(levelIndex);
                level.Name = e.Label;
            };*/

            treeViewWorld.NodeMouseDoubleClick += delegate(object sender, TreeNodeMouseClickEventArgs e) {
                if (e.Node.Name == "level") {
                    editorControl.OpenLevel(e.Node.Index);
                }
                else if (e.Node.Name == "world") {
                    editorControl.OpenObjectProperties(editorControl.World);
                }
            };

            this.comboBoxWorldLayer.Items.Add("Layer 1");
            this.comboBoxWorldLayer.Items.Add("Layer 2");
            this.comboBoxWorldLayer.Items.Add("Layer 3");
            this.comboBoxWorldLayer.Items.Add("Events");
            this.comboBoxWorldLayer.SelectedIndex = 0;

            // Create tools.
            this.toolButtons	= new ToolStripButton[] {
                buttonToolPointer,
                buttonToolPlace,
                buttonToolSelection,
                buttonToolEyedropper
            };

            this.hotKeyCommands = new Dictionary<Keys, HotKeyAction>();
            this.hotKeyCommands.Add(Keys.PageUp, delegate() { cycleLayerUpToolStripMenuItem_Click(null, null); });
            this.hotKeyCommands.Add(Keys.PageDown, delegate() { cycleLayerUpToolStripMenuItem1_Click(null, null); });
            this.hotKeyCommands.Add(Keys.M, delegate() { buttonTool_Click(this.buttonToolPointer, null); });
            this.hotKeyCommands.Add(Keys.P, delegate() { buttonTool_Click(this.buttonToolPlace, null); });
            this.hotKeyCommands.Add(Keys.S, delegate() { buttonTool_Click(this.buttonToolSelection, null); });
            this.hotKeyCommands.Add(Keys.K, delegate() { buttonTool_Click(this.buttonToolEyedropper, null); });
        }
예제 #2
0
        public override void Delete(EditorControl editorControl)
        {
            DialogResult result = MessageBox.Show(editorControl.EditorForm,
                "You are about to delete the level '" + level.Id + "'. This will be permanent. Continue?", "Confirm",
                MessageBoxButtons.YesNo, MessageBoxIcon.Information,
                MessageBoxDefaultButton.Button2);

            if (result == DialogResult.Yes) {
                int levelIndex = editorControl.World.Levels.IndexOf(level);
                editorControl.World.RemoveLevel(level);
                editorControl.RefreshWorldTreeView();

                if (editorControl.World.LevelCount == 0) {
                    editorControl.CloseLevel();
                    //worldTreeView.SelectedNode = worldTreeView.Nodes[0].Nodes[0];
                    //treeViewLevels_AfterSelect(null, new TreeViewEventArgs(worldTreeView.SelectedNode));
                }
                else {
                    editorControl.OpenLevel(Math.Max(0, levelIndex - 1));
                    //worldTreeView.SelectedNode = worldTreeView.Nodes[0].Nodes[0].Nodes[GMath.Max(0, index - 1)];
                }
            }
        }
예제 #3
0
 public override void Open(EditorControl editorControl)
 {
     editorControl.OpenLevel(level);
     editorControl.OpenObjectProperties(level);
 }