示例#1
0
 public ResourceContextMenuStrip(IResourceView irv)
 {
     this.irv = irv;
     // Set the 'enabled' properties
     ItemInsert.Enabled      = irv.CanInsert;
     ItemDuplicate.Enabled   = irv.CanDuplicate;
     ItemInsertGroup.Enabled = irv.CanInsertGroup;
     ItemSortByName.Enabled  = irv.CanSort;
     ItemDelete.Enabled      = irv.CanDelete;
     ItemRename.Enabled      = irv.CanRename;
     ItemProperties.Enabled  = irv.CanEdit;
     // Set custom icons and text
     if (!string.IsNullOrEmpty(irv.InsertString))
     {
         ItemInsert.Text = irv.InsertString;
     }
     if (irv.HasSpecialAction)
     {
         ItemSpecial.Image = irv.SpecialActionImage;
         ItemSpecial.Text  = irv.SpecialActionName;
     }
     if (!string.IsNullOrEmpty(irv.InsertGroupString))
     {
         ItemInsertGroup.Text = irv.InsertGroupString;
     }
     // More images
     ItemInsert.Image      = Properties.Resources.Add;
     ItemDuplicate.Image   = Properties.Resources.Copy;
     ItemInsertGroup.Image = Properties.Resources.CreateFolder;
     ItemDelete.Image      = Properties.Resources.Delete;
     ItemRename.Image      = Properties.Resources.Rename;
     ItemProperties.Image  = Properties.Resources.Preferences;
     // Set the events for the items
     ItemInsert.Click      += new EventHandler(ItemInsert_Click);
     ItemDuplicate.Click   += new EventHandler(ItemDuplicate_Click);
     ItemSpecial.Click     += new EventHandler(ItemSpecial_Click);
     ItemInsertGroup.Click += new EventHandler(ItemInsertGroup_Click);
     ItemSortByName.Click  += new EventHandler(ItemSortByName_Click);
     ItemDelete.Click      += new EventHandler(ItemDelete_Click);
     ItemRename.Click      += new EventHandler(ItemRename_Click);
     ItemProperties.Click  += new EventHandler(ItemProperties_Click);
     // Add the items
     Items.Add(ItemInsert);
     Items.Add(ItemDuplicate);
     Items.Add(new ToolStripSeparator());
     if (irv.HasSpecialAction)
     {
         Items.Add(ItemSpecial);
         Items.Add(new ToolStripSeparator());
     }
     Items.Add(ItemInsertGroup);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemSortByName);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemDelete);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemRename);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemProperties);
 }
示例#2
0
        void item_Click(object sender, EventArgs e)
        {
            IResourceView res = (sender as ToolStripMenuItem).Tag as IResourceView;

            action.AppliesTo = (int)res.ResourceID;
            label1.Text      = res.Name;
        }
 public void Dispose()
 {
     _view = null;
     foreach (var disposable in _disposables)
     {
         disposable.Dispose();
     }
 }
示例#4
0
        private void treeView1_ItemDrag(object sender, ItemDragEventArgs e)
        {
            IResourceView res = (IResourceView)((TreeNode)e.Item).Tag;

            if (!string.IsNullOrEmpty(res.DragDropFormat))
            {
                DoDragDrop(new ResourceViewDataObject(res.DragDropFormat, res), DragDropEffects.All);
            }
        }
 public ResourceContextMenuStrip(IResourceView irv)
 {
     this.irv = irv;
     // Set the 'enabled' properties
     ItemInsert.Enabled = irv.CanInsert;
     ItemDuplicate.Enabled = irv.CanDuplicate;
     ItemInsertGroup.Enabled = irv.CanInsertGroup;
     ItemSortByName.Enabled = irv.CanSort;
     ItemDelete.Enabled = irv.CanDelete;
     ItemRename.Enabled = irv.CanRename;
     ItemProperties.Enabled = irv.CanEdit;
     // Set custom icons and text
     if (!string.IsNullOrEmpty(irv.InsertString))
         ItemInsert.Text = irv.InsertString;
     if (irv.HasSpecialAction)
     {
         ItemSpecial.Image = irv.SpecialActionImage;
         ItemSpecial.Text = irv.SpecialActionName;
     }
     if (!string.IsNullOrEmpty(irv.InsertGroupString))
         ItemInsertGroup.Text = irv.InsertGroupString;
     // More images
     ItemInsert.Image = Properties.Resources.Add;
     ItemDuplicate.Image = Properties.Resources.Copy;
     ItemInsertGroup.Image = Properties.Resources.CreateFolder;
     ItemDelete.Image = Properties.Resources.Delete;
     ItemRename.Image = Properties.Resources.Rename;
     ItemProperties.Image = Properties.Resources.Preferences;
     // Set the events for the items
     ItemInsert.Click += new EventHandler(ItemInsert_Click);
     ItemDuplicate.Click += new EventHandler(ItemDuplicate_Click);
     ItemSpecial.Click += new EventHandler(ItemSpecial_Click);
     ItemInsertGroup.Click += new EventHandler(ItemInsertGroup_Click);
     ItemSortByName.Click += new EventHandler(ItemSortByName_Click);
     ItemDelete.Click += new EventHandler(ItemDelete_Click);
     ItemRename.Click += new EventHandler(ItemRename_Click);
     ItemProperties.Click += new EventHandler(ItemProperties_Click);
     // Add the items
     Items.Add(ItemInsert);
     Items.Add(ItemDuplicate);
     Items.Add(new ToolStripSeparator());
     if (irv.HasSpecialAction)
     {
         Items.Add(ItemSpecial);
         Items.Add(new ToolStripSeparator());
     }
     Items.Add(ItemInsertGroup);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemSortByName);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemDelete);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemRename);
     Items.Add(new ToolStripSeparator());
     Items.Add(ItemProperties);
     
 }
示例#6
0
        private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            IResourceView irv = (IResourceView)e.Node.Tag;

            if (irv.CanEdit)
            {
                irv.Edit();
            }
        }
示例#7
0
        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            IResourceView irv = (IResourceView)e.Node.Tag;

            if (e.Button == MouseButtons.Right)
            {
                treeView1.SelectedNode = e.Node;
                ResourceContextMenuStrip rc = new ResourceContextMenuStrip(irv);
                rc.Show(treeView1, e.Location, ToolStripDropDownDirection.Default);
            }
        }
    public void DealDamage(IResourceView obj, float damage)
    {
        currentHealth -= damage;
        healthBar.SetDamage(currentHealth / maxHealth);

        if (currentHealth <= 0)
        {
            itemPooler.SendScore(this, (int)maxHealth);
            itemPooler.InitResource(this);
            healthBar.ResetBarView();
        }
    }
 ToolStripMenuItem CreateItem(IResourceView res)
 {
     ToolStripMenuItem item = new ToolStripMenuItem(res.Name);
     if (res.ImageKey != null)
         item.Image = Program.IDE.ResourceImageList.Images[res.ImageKey];
     if (res.CanEdit)
         item.Click += new EventHandler(item_Click);
     item.Tag = res;
     foreach (TreeNode n in res.Node.Nodes)
         item.DropDownItems.Add(CreateItem(n.Tag as IResourceView));
     return item;
 }
示例#10
0
 internal void MoveResource(TreeNode newparent, IResourceView res, int treeIndex)
 {
     res.Node.Remove();
     res.Node.Collapse();
     if (treeIndex == -1)
     {
         newparent.Nodes.Add(res.Node);
     }
     else
     {
         newparent.Nodes.Insert(treeIndex, res.Node);
     }
     res.Node.EnsureVisible();
     treeView1.SelectedNode = res.Node;
 }
示例#11
0
        private void treeView1_DragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.None;
            TreeNode tn = treeView1.GetNodeAt(treeView1.PointToClient(new Point(e.X, e.Y)));

            if (tn != null)
            {
                IResourceView res = (IResourceView)tn.Tag;
                if (res.AcceptsResource(e.Data))
                {
                    treeView1.SelectedNode = res.Node;
                    e.Effect = DragDropEffects.Move;
                }
            }
        }
示例#12
0
        void ShowView(Control viewer)
        {
            // remove old view if there is one
            if (panel.Controls.Count == 1)
            {
                Control control = panel.Controls[0];
                panel.Controls.Remove(control);
                control.Dispose();
            }

            if (viewer != null)
            {
                viewer.Dock = DockStyle.Fill;
                panel.Controls.Add(viewer);
                currentView = (IResourceView)viewer;
                currentView.WriteProtected   = resourceList.WriteProtected;
                currentView.ResourceChanged += ViewResourceChanged;
            }
        }
示例#13
0
        ToolStripMenuItem CreateItem(IResourceView res)
        {
            ToolStripMenuItem item = new ToolStripMenuItem(res.Name);

            if (res.ImageKey != null)
            {
                item.Image = Program.IDE.ResourceImageList.Images[res.ImageKey];
            }
            if (res.CanEdit)
            {
                item.Click += new EventHandler(item_Click);
            }
            item.Tag = res;
            foreach (TreeNode n in res.Node.Nodes)
            {
                item.DropDownItems.Add(CreateItem(n.Tag as IResourceView));
            }
            return(item);
        }
示例#14
0
        internal void AddResource(TreeNode parent, IResourceView res, string name, int treeIndex, bool ensureVisible, bool rename, bool edit)
        {
            if (!string.IsNullOrEmpty(name))
            {
                res.Name = name;
            }
            TreeNode tn = new TreeNode(res.Name);

            res.Node            = tn;
            tn.Name             = tn.Text;
            tn.ImageKey         = res.ImageKey;
            tn.SelectedImageKey = res.ImageKey;
            tn.Tag = res;
            if (parent == null)
            {
                tn.NodeFont = new Font(treeView1.Font, FontStyle.Regular);
            }
            TreeNodeCollection tnc = parent == null ? treeView1.Nodes : parent.Nodes;

            if (treeIndex == -1)
            {
                tnc.Add(tn);
            }
            else
            {
                tnc.Insert(treeIndex, tn);
            }
            if (ensureVisible)
            {
                tn.EnsureVisible();
                treeView1.SelectedNode = tn;
            }
            if (edit)
            {
                res.Edit();
            }
            if (rename)
            {
                tn.BeginEdit();
            }
        }
示例#15
0
        private ToolStripItem CreateResourceMenuItem(TreeNode n, EventHandler click, object dropDownTag)
        {
            ToolStripMenuItem item = new ToolStripMenuItem(n.Name);
            IResourceView     res  = n.Tag as IResourceView;

            if (res.ImageKey != null)
            {
                item.Image = Program.IDE.ResourceImageList.Images[res.ImageKey];
            }
            if (res.CanEdit)
            {
                item.Click += click;
            }
            item.Tag          = res;
            item.DropDown.Tag = dropDownTag;
            foreach (TreeNode tn in res.Node.Nodes)
            {
                item.DropDownItems.Add(CreateResourceMenuItem(tn, click, dropDownTag));
            }
            return(item);
        }
示例#16
0
        void NewGame()
        {
            if (Program.GameModified)
            {
                switch (MessageBox.Show("Game has been changed. Save changes?", "Confirm", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
                {
                case DialogResult.Yes:
                    /* Save the game */
                    break;

                case DialogResult.Cancel:
                    // don't start a new project, return
                    return;
                }
            }
            Program.SpriteIncremental     = 0;
            Program.SoundIncremental      = 0;
            Program.BackgroundIncremental = 0;
            Program.PathIncremental       = 0;
            Program.ScriptIncremental     = 0;
            Program.FontIncremental       = 0;
            Program.DataFileIncremental   = 0;
            Program.TimeLineIncremental   = 0;
            Program.ObjectIncremental     = 0;
            Program.RoomIncremental       = 0;
            IResourceView[] reslist = new IResourceView[] { Sprites, Sounds, Backgrounds, Paths, Scripts, Fonts, DataFiles, TimeLines, Rooms, Objects };
            foreach (IResourceView res in reslist)
            {
                foreach (TreeNode tn in res.Node.Nodes)
                {
                    (tn.Tag as IDeletable).DoDelete(false);
                }
            }
            treeView1.BeginUpdate();
            treeView1.Nodes.Clear();
            PopulateNewResourceTree();
            treeView1.EndUpdate();
            Program.GameModified = false;
        }
示例#17
0
 void NewGame()
 {
     if (Program.GameModified)
     {
         switch (MessageBox.Show("Game has been changed. Save changes?", "Confirm", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question))
         {
             case DialogResult.Yes:
                 /* Save the game */
                 break;
             case DialogResult.Cancel:
                 // don't start a new project, return
                 return;
         }
     }
     Program.SpriteIncremental = 0;
     Program.SoundIncremental = 0;
     Program.BackgroundIncremental = 0;
     Program.PathIncremental = 0;
     Program.ScriptIncremental = 0;
     Program.FontIncremental = 0;
     Program.DataFileIncremental = 0;
     Program.TimeLineIncremental = 0;
     Program.ObjectIncremental = 0;
     Program.RoomIncremental = 0;
     IResourceView[] reslist = new IResourceView[] { Sprites, Sounds, Backgrounds, Paths, Scripts, Fonts, DataFiles, TimeLines, Rooms, Objects };
     foreach (IResourceView res in reslist)
         foreach (TreeNode tn in res.Node.Nodes)
             (tn.Tag as IDeletable).DoDelete(false);
     treeView1.BeginUpdate();
     treeView1.Nodes.Clear();
     PopulateNewResourceTree();
     treeView1.EndUpdate();
     Program.GameModified = false;
 }
示例#18
0
 internal void AddResource(TreeNode parent, IResourceView res, string name, int treeIndex, bool ensureVisible, bool rename, bool edit)
 {
     if (!string.IsNullOrEmpty(name))
         res.Name = name;
     TreeNode tn = new TreeNode(res.Name);
     res.Node = tn;
     tn.Name = tn.Text;
     tn.ImageKey = res.ImageKey;
     tn.SelectedImageKey = res.ImageKey;
     tn.Tag = res;
     if (parent == null)
         tn.NodeFont = new Font(treeView1.Font, FontStyle.Regular);
     TreeNodeCollection tnc = parent == null ? treeView1.Nodes : parent.Nodes;
     if (treeIndex == -1)
         tnc.Add(tn);
     else
         tnc.Insert(treeIndex, tn);
     if (ensureVisible)
     {
         tn.EnsureVisible();
         treeView1.SelectedNode = tn;
     }
     if (edit)
         res.Edit();
     if (rename)
         tn.BeginEdit();
 }
示例#19
0
 internal void MoveResource(TreeNode newparent, IResourceView res, int treeIndex)
 {
     res.Node.Remove();
     res.Node.Collapse();
     if (treeIndex == -1)
         newparent.Nodes.Add(res.Node);
     else
         newparent.Nodes.Insert(treeIndex, res.Node);
     res.Node.EnsureVisible();
     treeView1.SelectedNode = res.Node;
 }
 public void SetView(IResourceView view)
 {
     _view = view;
     _view.InitView(this);
 }
示例#21
0
 public void SetData(string format, bool autoConvert, object data)
 {
     res = (IResourceView)data;
 }
示例#22
0
 public void SetData(string format, object data)
 {
     res = (IResourceView)data;
 }
 public void SetData(string format, object data)
 {
     res = (IResourceView)data;
 }
 public void SetData(object data)
 {
     res = (IResourceView)data;
 }
示例#25
0
        private void argument_Click(object sender, EventArgs e)
        {
            int i = (int)(sender as Control).Tag;
            ContextMenuStrip menu = new ContextMenuStrip();

            menu.Tag = (sender as Control).Tag;
            IResourceView res = null;
            int           col; // color
            string        defstr = null;

            switch (action.Kind.Arguments[i].Type)
            {
            case ActionArgumentType.Menu:
                foreach (string s in action.Kind.Arguments[i].Menu.Split('|'))
                {
                    menu.Items.Add(s).Click += new EventHandler(argCustomMenuItem_Click);
                }
                break;

            case ActionArgumentType.Background:
                res    = Program.IDE.Backgrounds;
                defstr = "No background";
                break;

            case ActionArgumentType.Font:
                res    = Program.IDE.Fonts;
                defstr = "No font";
                break;

            case ActionArgumentType.Object:
                res    = Program.IDE.Objects;
                defstr = "No object";
                break;

            case ActionArgumentType.Path:
                res    = Program.IDE.Paths;
                defstr = "No path";
                break;

            case ActionArgumentType.Room:
                res    = Program.IDE.Rooms;
                defstr = "No room";
                break;

            case ActionArgumentType.Script:
                res    = Program.IDE.Scripts;
                defstr = "No script";
                break;

            case ActionArgumentType.Sound:
                res    = Program.IDE.Sounds;
                defstr = "No sound";
                break;

            case ActionArgumentType.Sprite:
                res    = Program.IDE.Sprites;
                defstr = "No sprite";
                break;

            case ActionArgumentType.Timeline:
                res    = Program.IDE.TimeLines;
                defstr = "No timeline";
                break;

            case ActionArgumentType.Boolean:
                menu.Items.Add("True").Click  += new EventHandler(true_Click);
                menu.Items.Add("False").Click += new EventHandler(false_Click);
                break;

            case ActionArgumentType.Color:
                ColorDialog d = new ColorDialog();
                col     = int.Parse(action.Arguments[i]);
                d.Color = Color.FromArgb(255, col & 255, (col >> 8) & 255, (col >> 16) & 255);
                if (d.ShowDialog() == DialogResult.OK)
                {
                    ArgTextBoxes[i].BackColor = d.Color;
                    action.Arguments[i]       = ((int)d.Color.R | ((int)d.Color.G << 8) | ((int)d.Color.B << 16)).ToString();
                }
                break;

            case ActionArgumentType.FontString:
                FontDialog dialog = new FontDialog();
                dialog.ShowColor = true;
                string[] sl = action.Arguments[i].Split(',');
                col          = int.Parse(sl[2]);
                dialog.Color = Color.FromArgb(255, col & 255, (col >> 8) & 255, (col >> 16) & 255);
                FontStyle fs = FontStyle.Regular;
                if (sl[3] == "1")
                {
                    fs |= FontStyle.Bold;
                }
                if (sl[4] == "1")
                {
                    fs |= FontStyle.Italic;
                }
                if (sl[5] == "1")
                {
                    fs |= FontStyle.Underline;
                }
                if (sl[6] == "1")
                {
                    fs |= FontStyle.Strikeout;
                }
                dialog.Font = new Font(sl[0].Replace("\"", string.Empty), float.Parse(sl[1]), fs, GraphicsUnit.Point);
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    action.Arguments[i] = string.Format(
                        "\"{0}\",{1},{2},{3},{4},{5},{6}",
                        dialog.Font.Name,
                        (int)Math.Round(dialog.Font.SizeInPoints),
                        ((int)dialog.Color.R | ((int)dialog.Color.G << 8) | ((int)dialog.Color.B << 16)).ToString(),
                        dialog.Font.Bold ? "1" : "0",
                        dialog.Font.Italic ? "1" : "0",
                        dialog.Font.Underline ? "1" : "0",
                        dialog.Font.Strikeout ? "1" : "0"
                        );
                    ArgTextBoxes[i].Font      = dialog.Font;
                    ArgTextBoxes[i].ForeColor = dialog.Color;
                }
                break;
            }
            if (res != null)
            {
                menu.Items.Add(defstr).Click += new EventHandler(defaultItem_Click);
                foreach (TreeNode n in res.Node.Nodes)
                {
                    menu.Items.Add(CreateResourceMenuItem(n, new EventHandler(resItem_Click), menu.Tag));
                }
            }
            menu.Show(MousePosition);
        }
 internal ResourcePresenter(IResourceView view)
 {
     _view = view;
 }
示例#27
0
		void showView(Control viewer)
		{
			// remvoe old view if there is one
			if(panel.Controls.Count == 1) {
				Control control = panel.Controls[0];
				panel.Controls.Remove(control);
				control.Dispose();
			}
			
			if(viewer != null) {
				viewer.Dock = DockStyle.Fill;
				panel.Controls.Add(viewer);
				currentView = (IResourceView)viewer;
				currentView.WriteProtected = resourceList.WriteProtected;
				currentView.ResourceChanged += new ResourceChangedEventHandler(viewResourceChanged);
			}
		}
 public ResourceViewDataObject(string fmt, IResourceView data)
 {
     format = fmt;
     res = data;
 }
示例#29
0
 public ResourceViewDataObject(string fmt, IResourceView data)
 {
     format = fmt;
     res    = data;
 }
 public void SetData(Type format, object data)
 {
     res = (IResourceView)data;
 }
示例#31
0
 public void SetData(object data)
 {
     res = (IResourceView)data;
 }
 public void SetData(string format, bool autoConvert, object data)
 {
     res = (IResourceView)data;
 }
示例#33
0
 public void SetData(Type format, object data)
 {
     res = (IResourceView)data;
 }