private MapPanel GenerateMapPanelForRoom(Map map, Room room) { MapPanel panel = new MapPanel(); panel.Anchor = AnchorStyles.Left | AnchorStyles.Top; panel.BackColor = System.Drawing.SystemColors.ControlDark; panel.Font = new System.Drawing.Font("Consolas", 8F); panel.Location = new System.Drawing.Point(room.X * map.GridSize, room.Y * map.GridSize); panel.Margin = new System.Windows.Forms.Padding(0); panel.Size = new System.Drawing.Size(room.Width * map.GridSize, room.Height * map.GridSize); panel.MouseDown += new MouseEventHandler(panel_MouseDown); panel.MouseUp += new MouseEventHandler(panel_MouseUp); panel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.mapPanel_MouseMove); panel.MouseClick += new MouseEventHandler(HandleMapPanelClick); panel.MouseEnter += new EventHandler(mapPanel_MouseEnter); panel.MouseLeave += new EventHandler(mapPanel_MouseLeave); panel.KeyDown += new KeyEventHandler(HandleKeyDownForMapPanel); panel.Map = map; panel.Tiles = null; panel.Room = room; return panel; }
void HandleMapPanelClick(object sender, MouseEventArgs e) { var mapPanel = sender as MapPanel; if (mapPanel != null) { SelectedMapPanel = mapPanel; SelectedMapPanel.Focus(); SelectedMapPanel.BringToFront(); PerformToolOperation(sender, e); } }
private void BeginEditingMap(string mapFilePath) { Map map = LoadMapFromFile(mapFilePath); TileSet tileSet = LoadTileSetFromFile(map.TileSet); this.mapData = map; this.tileData = tileSet; this.selectedTile = null; // TODO: Set this to the first tile? tileSetPanel1.TileSet = tileSet; var panels = GeneratePanelsForMap(map); if (panels != null) { this.gridPanel.Controls.Clear(); foreach (MapPanel panel in panels) { panel.Map = this.mapData; panel.Tiles = this.tileData; this.gridPanel.Controls.Add(panel); } // this.gridPanel.Controls.Add(tileLocationPanel); } if (panels.Count > 0) { SelectedMapPanel = panels[0]; } undoBuffer.Clear(); redoBuffer.Clear(); }