KBS2.Controls.BlueprintPanel.LoadContextMenu C# (CSharp) Méthode

LoadContextMenu() protected méthode

protected LoadContextMenu ( ) : void
Résultat void
        protected void LoadContextMenu()
        {
            char sep = System.IO.Path.DirectorySeparatorChar;
            string exePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            string imagePath = exePath + sep + "Resources" + sep;

            this.ContextMenuStrip = new ContextMenuStrip();
            this.ContextMenuStrip.Renderer = new CustomNavigationRenderer();
            this.ContextMenuStrip.Opening += (sender, e) => this.ContextMenuStrip.Tag = this.PointToClient(Cursor.Position);

            //Context menus
            int state = (this.SelectedRoom == null ? 0 : 1) + (this.SelectedCorner == null ? 0 : 2) + (this.SelectedWall == null ? 0 : 4);
            int hoverState = (this.HoveredRoom == null ? 0 : 1) + (this.HoveredCorner == null ? 0 : 2) + (this.HoveredRoom == null ? 0 : 4);

            if(!this._editMode) {
                ToolStripMenuItem editButton = new ToolStripMenuItem("Aanpassen", Bitmap.FromFile(imagePath + "Edit.png"), this.EventContextMenuEdit);
                editButton.ImageScaling = ToolStripItemImageScaling.None;
                this.ContextMenuStrip.Items.Add(editButton);
            } else {
                if(state == 0) {
                    ToolStripMenuItem saveButton = new ToolStripMenuItem("Opslaan", Bitmap.FromFile(imagePath + "Save.png"), this.EventContextMenuSave);
                    ToolStripMenuItem undoButton = new ToolStripMenuItem("Ongedaan maken", Bitmap.FromFile(imagePath + "Undo.png"), this.EventContextMenuUndo);
                    this.ContextMenuStrip.Items.Add(saveButton);
                    this.ContextMenuStrip.Items.Add(undoButton);

                    ToolStripMenuItem newRoom = new ToolStripMenuItem("Nieuwe kamer", Bitmap.FromFile(imagePath + "NewRoom.png"), this.EventContextMenuNewRoom);
                    this.ContextMenuStrip.Items.Add(new ToolStripSeparator());
                    this.ContextMenuStrip.Items.Add(newRoom);

                    if(this._currentRoom != null) {
                        ToolStripMenuItem newCorner = new ToolStripMenuItem("Nieuwe hoek", Bitmap.FromFile(imagePath + "NewCorner.png"), this.EventContextMenuNewCorner);
                        this.ContextMenuStrip.Items.Add(new ToolStripSeparator());
                        this.ContextMenuStrip.Items.Add(newCorner);
                    }
                }
                if((state & 1) != 0) {
                    ToolStripMenuItem editRoom = new ToolStripMenuItem("Kamer aanpassen", Bitmap.FromFile(imagePath + "EditRoom.png"), this.EventContextMenuEditRoom);
                    ToolStripMenuItem deleteRoom = new ToolStripMenuItem("Verwijder kamer", Bitmap.FromFile(imagePath + "DeleteRoom.png"), this.EventContextMenuDeleteRoom);
                    this.ContextMenuStrip.Items.Add(editRoom);
                    this.ContextMenuStrip.Items.Add(deleteRoom);
                }
                if((state & 2) != 0) {
                    ToolStripMenuItem deleteCorner = new ToolStripMenuItem("Verwijder hoek", Bitmap.FromFile(imagePath + "DeleteCorner.png"), this.EventContextMenuDeleteCorner);
                    ToolStripMenuItem connectCorner = new ToolStripMenuItem("Nieuwe muur naar hoek", Bitmap.FromFile(imagePath + "NewWall.png"), this.EventContextMenuConnectCornersWithWall);
                    this.ContextMenuStrip.Items.Add(deleteCorner);
                    this.ContextMenuStrip.Items.Add(connectCorner);

                    if(this._currentRoom != null && this._currentRoom.GetCorners().Contains(this.SelectedCorner)) {
                        ToolStripMenuItem newCorner = new ToolStripMenuItem("Nieuwe muur en hoek", Bitmap.FromFile(imagePath + "NewCornerFromCorner.png"), this.EventContextMenuNewCornerWithWall);
                        this.ContextMenuStrip.Items.Add(newCorner);
                    }
                    if(this._currentRoom != null && !this._currentRoom.GetCorners().Contains(this.SelectedCorner)) {
                        ToolStripMenuItem addCorner = new ToolStripMenuItem("Voeg toe aan kamer", Bitmap.FromFile(imagePath + "AddCornerToRoom.png"), this.EventContextMenuAddCornerToCurrentRoom);
                        this.ContextMenuStrip.Items.Add(addCorner);
                    }
                }
                if((hoverState & 2) != 0) {
                    if(this.SelectedRoom != null && !this.SelectedRoom.GetCorners().Contains(this.HoveredCorner)) {
                        ToolStripMenuItem addCorner = new ToolStripMenuItem("Voeg toe aan kamer", Bitmap.FromFile(imagePath + "AddCornerToRoom.png"), this.EventContextMenuAddCornerToSelectedRoom);
                        if(this.ContextMenuStrip.Items.Count > 0) {
                            this.ContextMenuStrip.Items.Add(new ToolStripSeparator());
                        }
                        this.ContextMenuStrip.Items.Add(addCorner);
                    }
                }
                if((state & 4) != 0) {
                    if(this.SelectedWall.GetType() != typeof(Door)) {
                        ToolStripMenuItem wallToDoor = new ToolStripMenuItem("Verander naar deur", Bitmap.FromFile(imagePath + "ToDoor.png"), this.EventContextMenuWallToDoor);
                        ToolStripMenuItem deleteWall = new ToolStripMenuItem("Verwijder muur", Bitmap.FromFile(imagePath + "DeleteWall.png"), this.EventContextMenuDeleteWall);
                        this.ContextMenuStrip.Items.Add(wallToDoor);
                        this.ContextMenuStrip.Items.Add(deleteWall);
                    } else {
                        ToolStripMenuItem doorToWall = new ToolStripMenuItem("Verander naar muur", Bitmap.FromFile(imagePath + "ToWall.png"), this.EventContextMenuDoorToWall);
                        ToolStripMenuItem changeHinge = new ToolStripMenuItem("Wissel scharnier", Bitmap.FromFile(imagePath + "ChangeHinge.png"), this.EventContextMenuDoorChangeHinge);
                        ToolStripMenuItem changeDirection = new ToolStripMenuItem("Wissel deur richting", Bitmap.FromFile(imagePath + "ChangeDirection.png"), this.EventContextMenuDoorChangeDirection);
                        ToolStripMenuItem deleteDoor = new ToolStripMenuItem("Verwijder deur", Bitmap.FromFile(imagePath + "DeleteDoor.png"), this.EventContextMenuDeleteWall);
                        this.ContextMenuStrip.Items.Add(doorToWall);
                        this.ContextMenuStrip.Items.Add(changeHinge);
                        this.ContextMenuStrip.Items.Add(changeDirection);
                        this.ContextMenuStrip.Items.Add(deleteDoor);
                    }
                }
            }
        }