private void UpdateViews() { SplitViews.Height = this.ClientSize.Height - MainMenu.Height - SplitTab.Height; if (SurfaceTile != null) { int tile_x = (SurfaceTile.GetCurrentTileSheetWidth() - TileViewHScrollBar.Width) / KDefaultTileSize.Width; TileViewHScrollBar.Maximum = TileViewHScrollBar.LargeChange + tile_x; int tile_y = (SurfaceTile.GetCurrentTileSheetHeight() - TileViewVScrollBar.Height) / KDefaultTileSize.Height; TileViewVScrollBar.Maximum = TileViewVScrollBar.LargeChange + tile_y; SurfaceTile.Invalidate(); } if (SurfaceLevel != null) { SSize level_size = SurfaceLevel.GetLevelSize(); int level_x = ((int)(level_size.Width * SurfaceLevel.GetTileSize().Width *SurfaceLevel.GetScaleFactor()) - LevelViewHScrollBar.Width) / (int)(SurfaceLevel.GetTileSize().Width *SurfaceLevel.GetScaleFactor()); LevelViewHScrollBar.Maximum = Math.Max(LevelViewHScrollBar.LargeChange + level_x, LevelViewHScrollBar.LargeChange - 1); int level_y = ((int)(level_size.Height * SurfaceLevel.GetTileSize().Height *SurfaceLevel.GetScaleFactor()) - LevelViewVScrollBar.Height) / (int)(SurfaceLevel.GetTileSize().Height *SurfaceLevel.GetScaleFactor()) + 1; LevelViewVScrollBar.Maximum = Math.Max(LevelViewVScrollBar.LargeChange + level_y, LevelViewVScrollBar.LargeChange - 1); SurfaceLevel.Invalidate(); LabelScale.Text = "배율: " + (int)(SurfaceLevel.GetScaleFactor() * 100) + " %"; LabelLevelName.Text = "레벨 이름: " + m_LevelName; LabelLevelSize.Left = SplitViews.Panel2.Width - LabelLevelSize.Width; LabelLevelSize.Text = "레벨 크기: " + SurfaceLevel.GetLevelSize().Width + " x " + SurfaceLevel.GetLevelSize().Height; } }
private void SurfaceTile_MouseMove(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { SSize tile_size = SurfaceTile.GetTileSize(); SSize selection_rest; selection_rest.Width = m_MouseDownPos.X % tile_size.Width; selection_rest.Height = m_MouseDownPos.Y % tile_size.Height; SPosition selection_origin = m_MouseDownPos; SSize selection_size = tile_size; selection_size.Width += Math.Max(e.X - m_MouseDownPos.X, 0) + selection_rest.Width; selection_size.Height += Math.Max(e.Y - m_MouseDownPos.Y, 0) + selection_rest.Height; SurfaceTile.UpdateSelection(selection_origin, selection_size); SurfaceLevel.UpdateSelectedTile(SurfaceTile.GetCurrentSelectionOrigin(), SurfaceTile.GetCurrentSelectionSizeInTileCount()); } }