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);
}
}
}
}