From a55a902ba58bdb4af9f142315eb98360f0427ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20Mail=C3=A4nder?= Date: Tue, 2 Apr 2013 08:55:45 +0200 Subject: [PATCH] added switchable ruler markings to editor --- OpenRA.Editor/Form1.Designer.cs | 23 +++++++++++++++++++++++ OpenRA.Editor/Form1.cs | 15 ++++++++++++++- OpenRA.Editor/Form1.resx | 22 ++++++++++++++++++++++ OpenRA.Editor/Surface.cs | 25 +++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 1 deletion(-) diff --git a/OpenRA.Editor/Form1.Designer.cs b/OpenRA.Editor/Form1.Designer.cs index a49ce84816..775a3d3957 100755 --- a/OpenRA.Editor/Form1.Designer.cs +++ b/OpenRA.Editor/Form1.Designer.cs @@ -69,6 +69,7 @@ namespace OpenRA.Editor this.zoomIntoolStripButton = new System.Windows.Forms.ToolStripButton(); this.zoomOutToolStripButton = new System.Windows.Forms.ToolStripButton(); this.panToolStripButton = new System.Windows.Forms.ToolStripButton(); + this.showRulerToolStripItem = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripMenuItemFixOpenAreas = new System.Windows.Forms.ToolStripButton(); this.toolStripMenuItemSetupDefaultPlayers = new System.Windows.Forms.ToolStripButton(); @@ -97,6 +98,7 @@ namespace OpenRA.Editor this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator(); this.showActorNamesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showGridToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.showRulerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); this.fixOpenAreasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.setupDefaultPlayersMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -345,6 +347,7 @@ namespace OpenRA.Editor this.zoomIntoolStripButton, this.zoomOutToolStripButton, this.panToolStripButton, + this.showRulerToolStripItem, this.toolStripSeparator10, this.toolStripMenuItemFixOpenAreas, this.toolStripMenuItemSetupDefaultPlayers, @@ -477,6 +480,15 @@ namespace OpenRA.Editor this.panToolStripButton.Size = new System.Drawing.Size(23, 22); this.panToolStripButton.Text = "Pan view"; this.panToolStripButton.Click += new System.EventHandler(this.panToolStripButtonClick); + // + // showRulerToolStripItem + // + this.showRulerToolStripItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.showRulerToolStripItem.Image = ((System.Drawing.Image)(resources.GetObject("showRulerToolStripItem.Image"))); + this.showRulerToolStripItem.Name = "showRulerToolStripItem"; + this.showRulerToolStripItem.Size = new System.Drawing.Size(23, 22); + this.showRulerToolStripItem.Text = "Show Ruler"; + this.showRulerToolStripItem.Click += new System.EventHandler(this.showRulerToolStripItemClick); // // toolStripSeparator10 // @@ -687,6 +699,7 @@ namespace OpenRA.Editor this.toolStripSeparator9, this.showActorNamesToolStripMenuItem, this.showGridToolStripMenuItem, + this.showRulerToolStripMenuItem, this.toolStripSeparator5, this.fixOpenAreasToolStripMenuItem, this.setupDefaultPlayersMenuItem, @@ -739,6 +752,14 @@ namespace OpenRA.Editor this.showGridToolStripMenuItem.ToolTipText = "Enable a grid overlay for better orientation."; this.showGridToolStripMenuItem.Click += new System.EventHandler(this.ShowGridClicked); // + // showRulerToolStripMenuItem + // + this.showRulerToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("showRulerToolStripMenuItem.Image"))); + this.showRulerToolStripMenuItem.Name = "showRulerToolStripMenuItem"; + this.showRulerToolStripMenuItem.Size = new System.Drawing.Size(185, 22); + this.showRulerToolStripMenuItem.Text = "Show Ruler"; + this.showRulerToolStripMenuItem.Click += new System.EventHandler(this.showRulerToolStripMenuItemClick); + // // toolStripSeparator5 // this.toolStripSeparator5.Name = "toolStripSeparator5"; @@ -1036,6 +1057,8 @@ namespace OpenRA.Editor private System.Windows.Forms.ToolStripButton zoomOutToolStripButton; private System.Windows.Forms.ToolStripButton zoomIntoolStripButton; private System.Windows.Forms.ToolStripSeparator toolStripSeparator12; + private System.Windows.Forms.ToolStripButton showRulerToolStripItem; + private System.Windows.Forms.ToolStripMenuItem showRulerToolStripMenuItem; #endregion diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index 222e8c8191..6ce2f5f721 100755 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -718,7 +718,7 @@ namespace OpenRA.Editor { if (surface1.Map == null) return; - surface1.Zoom *= 4.0f / 3.0f; + surface1.Zoom /= .75f; surface1.Invalidate(); } @@ -737,5 +737,18 @@ namespace OpenRA.Editor panToolStripButton.Checked ^= true; surface1.IsPanning = panToolStripButton.Checked; } + + void showRulerToolStripMenuItemClick(object sender, EventArgs e) + { + showRulerToolStripMenuItem.Checked ^= true; + showRulerToolStripItem.Checked ^= true; + surface1.ShowRuler = showRulerToolStripMenuItem.Checked; + surface1.Chunks.Clear(); + } + + void showRulerToolStripItemClick(object sender, System.EventArgs e) + { + showRulerToolStripMenuItemClick(sender, e); + } } } diff --git a/OpenRA.Editor/Form1.resx b/OpenRA.Editor/Form1.resx index a6708e7729..dfc3958e13 100755 --- a/OpenRA.Editor/Form1.resx +++ b/OpenRA.Editor/Form1.resx @@ -264,6 +264,17 @@ cQrVPOWDuCxLqbPoadvIG+2dhA2YOI55goa/fdy2mkjDHL7vS8jy6rqWopqM435DL9sanudRmqZaXgb/ aohviB7btmmYYglhGEqoXNj8YoJ+3v5WlA/slphkWcYG117yzqwJln5EX9i3TyMmn8A5376Rzv8xjDs1 5wrrvlLxhgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAEiSURBVDhPvVO7TgJBFN2fovAHNDb+gLGywsbCxoTOxF/wgaLGRPGJNUEeglBaaKExWhF8E1kh + Cwsyxzl3d83Gip3Ck5zMvTtzz97cOWPtnFVBbmcusXVaEaZOytg8vsDGUUmYPCxi/aCAtXReuLp/jpW9 + HCyCxWHML6X8yEP/G2i7wEcHqH8C96/AdQOITc56AvxzAMdxMD696GfAYAgeQlMXN1rAw5uX5+9CAmyZ + YDE5NhWXnAffW11Zb1+GstYeve/ZvwILy7uYmEno4jnZGJUiwIGF8bsxKjjtADqNLsBrCmDbjrmADs06 + oEmUUuj19T033egCdJg7UPjqGc6A1gycdvOkzAToNB2adcCH8WwDV3WI0yIL8FWxKEx/6z9gWT/PHGlW + lc2EywAAAABJRU5ErkJggg== @@ -579,6 +590,17 @@ /02TVv03jF/x3yB6KaZByKEN8jOUieJskGYoExMEITkbObSRA0wvBpvNcGfvBycSkJ8doKFtDtRskrQa 7Gy96GX/daIW/9eKWAjGUO0IgBLa2QhnG8Uvh7OxaoQBZGdbpCJCG9nZeA0gHTAwAACOffGU2o3WzAAA AABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAEiSURBVDhPvVO7TgJBFN2fovAHNDb+gLGywsbCxoTOxF/wgaLGRPGJNUEeglBaaKExWhF8E1kh + Cwsyxzl3d83Gip3Ck5zMvTtzz97cOWPtnFVBbmcusXVaEaZOytg8vsDGUUmYPCxi/aCAtXReuLp/jpW9 + HCyCxWHML6X8yEP/G2i7wEcHqH8C96/AdQOITc56AvxzAMdxMD696GfAYAgeQlMXN1rAw5uX5+9CAmyZ + YDE5NhWXnAffW11Zb1+GstYeve/ZvwILy7uYmEno4jnZGJUiwIGF8bsxKjjtADqNLsBrCmDbjrmADs06 + oEmUUuj19T033egCdJg7UPjqGc6A1gycdvOkzAToNB2adcCH8WwDV3WI0yIL8FWxKEx/6z9gWT/PHGlW + lc2EywAAAABJRU5ErkJggg== diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs index 4699c66aae..2188f58264 100755 --- a/OpenRA.Editor/Surface.cs +++ b/OpenRA.Editor/Surface.cs @@ -38,6 +38,7 @@ namespace OpenRA.Editor public bool IsPanning; public bool ShowActorNames; public bool ShowGrid; + public bool ShowRuler; public bool IsPaste { get { return TileSelection != null && ResourceSelection != null; } } public TileReference[,] TileSelection; @@ -54,6 +55,9 @@ namespace OpenRA.Editor Dictionary ActorTemplates = new Dictionary(); public Dictionary ResourceTemplates = new Dictionary(); + static readonly Font MarkerFont = new Font(FontFamily.GenericSansSerif, 12.0f, FontStyle.Regular); + static readonly SolidBrush TextBrush = new SolidBrush(Color.Red); + public Keys GetModifiers() { return ModifierKeys; } public void Bind(Map m, TileSet ts, Palette p, Palette pp) @@ -438,6 +442,27 @@ namespace OpenRA.Editor Brushes.White, Brushes.Black); + if (ShowRuler && Zoom > 0.2) + { + for (int i = Map.Bounds.Left; i <= Map.Bounds.Right; i+=8) + { + if( i % 8 == 0) + { + PointF point = new PointF(i * TileSet.TileSize * Zoom + Offset.X, (Map.Bounds.Top - 8) * TileSet.TileSize * Zoom + Offset.Y); + e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); + } + } + + for (int i = Map.Bounds.Top; i <= Map.Bounds.Bottom; i+=8) + { + if (i % 8 == 0) + { + PointF point = new PointF((Map.Bounds.Left - 8) * TileSet.TileSize * Zoom + Offset.X, i * TileSet.TileSize * Zoom + Offset.Y); + e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); + } + } + } + if (Tool != null) Tool.Preview(this, e.Graphics);