mirror of
https://git.do.srb2.org/STJr/UltimateZoneBuilder.git
synced 2025-01-31 04:40:55 +00:00
Fixed, portable mode: fixed a possible crash when trying to check write permissions for GZDB folder.
Fixed, Texture Browser, High-DPI: bottom panel of ImageSelectorControl had incorrect height when using DPI scaling. Changed, SplitterControl, High-DPI: DPI scaling is now used when drawing expand/collapse area. Documentation: fixed typos, filled "Compiling GZDoom Builder" page.
This commit is contained in:
parent
5147d0b8f5
commit
5668cfec10
15 changed files with 110 additions and 55 deletions
|
@ -9,13 +9,41 @@
|
|||
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
||||
<param name="keyword" value="compiling">
|
||||
<param name="keyword" value="compilation">
|
||||
<param name="keyword" value="svn">
|
||||
</object>
|
||||
<div id="gz_title">
|
||||
<h1>Compiling GZDoom Builder</h1>
|
||||
</div>
|
||||
<div id="contents">
|
||||
<p>
|
||||
[TODO] Just hit the button and all done.<br />
|
||||
</div>
|
||||
<h2>Required software:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Visual C# 2008 Express Edition or newer with .net Framework 3.5 support. You can download it for free from <a href="http://msdn.microsoft.com/vstudio/express/">http://msdn.microsoft.com/vstudio/express/</a>. Alternatively, you can use Visual Studio 2008 or newer with .net Framework 3.5 support.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Optional software:</h2>
|
||||
<ul>
|
||||
<li>Subversion command-line client. For example, Tortoise SVN (<a href="http://tortoisesvn.net/">http://tortoisesvn.net</a>).<br />
|
||||
<strong>Notice</strong>: when installing Tortoise SVN, make sure to select "command line client tools" option.</li>
|
||||
<li>7-zip archiver (<a href="www.7-zip.org">www.7-zip.org</a>).</li>
|
||||
<li>Inno Setup 5 or newer (<a href="http://www.jrsoftware.org/isinfo.php">http://www.jrsoftware.org/isinfo.php</a>).</li>
|
||||
<li>Microsoft HTML Help compiler (<a href="http://www.microsoft.com/en-us/download/details.aspx?id=21138">http://www.microsoft.com/en-us/download/details.aspx?id=21138</a>).</li>
|
||||
<li>SlimDX Developer SDK. You can download it for free from <a href="http://slimdx.org/download.php">http://slimdx.org/download.php</a>.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Obtaining the source:</h2>
|
||||
The Doom Builder 2 source code is hosted on SourceForge and is available through SVN at the following location:<pre>https://svn.code.sf.net/p/doombuilder/code/branches/GZDoomBuilder</pre>
|
||||
If you don't want to use a SVN client, head to
|
||||
<a href="https://sourceforge.net/p/doombuilder/code/HEAD/tree/branches/GZDoomBuilder/">https://sourceforge.net/p/doombuilder/code/HEAD/tree/branches/GZDoomBuilder/</a>
|
||||
and press "Download Snapshot" button.
|
||||
<h2>Bath files:</h2>
|
||||
GZDB source comes with several bath files, which can be used to automatically compile and package the editor. Before launching a bath file for the first time, make sure to open it and check that variables holding software paths point to the right directories. These variables are always located near the top of the file, after the info block.
|
||||
<ul>
|
||||
<li><strong>Clean Rebuild.bat</strong> - removes project cache files, then compiles it in Release mode.<br />Requires Visual C# Express Edition / Visual Studio.</li><br />
|
||||
<li><strong>CompileHelp.bat</strong> - compiles "Build\Refmanual.chm". Help source files are located in the "Help" directory.<br />Requires Microsoft HTML Help compiler.</li><br />
|
||||
<li><strong>MakeRelease.bat</strong> - removes project cache files, sets project version number to match the latest SVN revision, compiles the project in Release mode, generates "Build\Changelog.txt", compiles "Build\Refmanual.chm", creates an installer and places it in the "Release" folder.<br />Requires Subversion command-line client, Visual C# Express Edition / Visual Studio, Microsoft HTML Help compiler and Inno Setup 5.</li><br />
|
||||
<li><strong>MakeSVNRelease.bat</strong> - removes project cache files, sets project version number to match the latest SVN revision, compiles the project in Release mode, generates "Build\Changelog.txt", compiles "Build\Refmanual.chm", packs the build into 7-zip archive and places it in the "SVN_Build" folder.<br />Requires Subversion command-line client, Visual C# Express Edition / Visual Studio, Microsoft HTML Help compiler and 7-zip archiver.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ Actor ChexShield : ResistanceRune replaces ResistanceRune 5104
|
|||
//$Sprite ARMXA0
|
||||
//$Title "Chex Shield"
|
||||
//$Arg0 "Respawn Delay"
|
||||
//$Arg1 "Armor Ammount"
|
||||
//$Arg1 "Armor Amount"
|
||||
//$Color 12
|
||||
|
||||
Height 44
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
</head>
|
||||
<body>
|
||||
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
||||
<param name="keyword" value="Template">
|
||||
<param name="keyword" value="tags">
|
||||
<param name="keyword" value="tag">
|
||||
</object>
|
||||
<div id="gz_title">
|
||||
<h1>Enhanced Tag Support</h1>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<body>
|
||||
|
||||
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
|
||||
<param name="keyword" value="Template">
|
||||
<param name="keyword" value="Bridge Mode">
|
||||
</object>
|
||||
|
||||
<div id="gz_title"><h1>Bridge Mode</h1></div>
|
||||
|
@ -39,8 +39,8 @@ This mode lets you connect parts of existing geometry using Bezier curves.<br>
|
|||
<table width="100%" border="0" cellspacing="3" cellpadding="3">
|
||||
<tr>
|
||||
<td valign="top"><img src="bridge_settings.jpg" /></td>
|
||||
<td><b>Align floor / Align ceiling dropdowns</b> let you choose how the heights of created sectors are <a href="#interp_modes">interpolated</a>.<br>
|
||||
<b>Brightness dropdown</b> lets you choose how the brightness of created sectors is interpolated.<br>
|
||||
<td><b>Align floor and Align ceiling drop downs</b> let you choose how the heights of created sectors are <a href="#interp_modes">interpolated</a>.<br>
|
||||
<b>Brightness drop down</b> lets you choose how the brightness of created sectors is interpolated.<br>
|
||||
<b>Subdivisions</b> controls how many subdivisions a bridge has. You can also use "Increase Subdivisions" and "Decrease Subdivisions" actions to control this by using keyboard shortcuts.<br>
|
||||
<br>
|
||||
Activate <b>Mirror mode</b> to mirror paired handle movement:<br>
|
||||
|
|
|
@ -31,6 +31,6 @@ This mode lets you draw various ellipsoid shapes.<br>
|
|||
You can use side panel or "<strong>Increase Corners Bevel</strong>" and "<strong>Decrease Corners Bevel</strong>" actions to bevel the ellipse: <br>
|
||||
<img src="draw_ellipse2.jpg" />
|
||||
<br>
|
||||
When using "<strong>Increase/Decrease Corners Bevel</strong>" adtions, the bevel increment is based on the current grid size.</p>
|
||||
When using "<strong>Increase/Decrease Corners Bevel</strong>" actions, the bevel increment is based on the current grid size.</p>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -23,7 +23,7 @@ This mode lets you draw various rectangle shapes.<br>
|
|||
<b>Default key:</b> Ctrl-Shift-D.<br>
|
||||
<b>Additional actions:</b> Increase Subdivision Level, Decrease Subdivision Level, Increase Corners Bevel, Decrease Corners Bevel.<br><br>
|
||||
You can activate this mode by pressing <strong>Ctrl-Shift-D</strong> (default key).<br>
|
||||
You can use the side panel or "<strong>Increase/Decrease Subdivision Level</strong>" and "<strong>Increase/Decrease Corners Bevel</strong>" actions to change corner bevel ammount and detail level:
|
||||
You can use the side panel or "<strong>Increase/Decrease Subdivision Level</strong>" and "<strong>Increase/Decrease Corners Bevel</strong>" actions to change corner bevel amount and detail level:
|
||||
<br>
|
||||
<img src="draw_rectangle1.jpg" />
|
||||
<br>
|
||||
|
@ -31,6 +31,6 @@ Negative bevel values are also supported:
|
|||
<br>
|
||||
<img src="draw_rectangle2.jpg" />
|
||||
<br>
|
||||
When using "<strong>Increase/Decrease Corners Bevel</strong>" adtions, the bevel increment is based on the current grid size.</p>
|
||||
When using "<strong>Increase/Decrease Corners Bevel</strong>" actions, the bevel increment is based on the current grid size.</p>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -35,7 +35,7 @@ The mode also supplies a docker that supplies information about the sound enviro
|
|||
<li>Highlight a SoundEnvironment thing and press "Delete" key to remove it.</li>
|
||||
</ul>
|
||||
|
||||
This mode can also help you find problems (i.e. behavior that you probably that you probably did not intend). If there are any problems with a sound environment a warning sign will displayed in the list at the affected thing or line (the icon will bubble up the tree to make it easier to find when the whole list is collapsed).
|
||||
This mode can also help you find problems (i.e. behaviors that you probably did not intend). If there are any problems with a sound environment, a warning sign will be displayed in the list at the affected thing or line (the icon will bubble up the tree to make it easier to find when the whole list is collapsed).
|
||||
<br>
|
||||
<br>
|
||||
<span class="bold">Following problems are detected:</span>
|
||||
|
@ -44,8 +44,6 @@ This mode can also help you find problems (i.e. behavior that you probably that
|
|||
<li>Two-sided lines that are set to be a sound zone boundary, but the sectors on both sides belong to the same sound environment.</li>
|
||||
<li> Multiple non-dormant SoundEnivornment things.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
Note that the latter two can be caused by sound environments unintentionally bleeding into other sectors (i.e. not correctly sealed sound environments).
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<li><span class="style1"><strong>[new]</strong></span> <strong>Help</strong> side panel, which shows most of actions, available in current mode.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Maps can now be loaded by dragging wad files on top of GZDB's main window.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Open Map Options, Map Options and Game Configurations forms: resources can be added by dragging them on top of resources list.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> <strong>Game Configurations form</strong>: game configurations can be disabled. This setting is mostly cosmetic. When a game configuration is disabled, it won't be shown in "game configuration" dropdowns in New\Open Map Options and Map Options windows. If a map's .dbs file specifies a disabled configuration, it will be picked as a map configuration anyway.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> <strong>Game Configurations form</strong>: game configurations can be disabled. This setting is mostly cosmetic. When a game configuration is disabled, it won't be shown in the "game configuration" drop downs in New\Open Map Options and Map Options windows. If a map's .dbs file specifies a disabled configuration, it will be picked as a map configuration anyway.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> <strong>Game Configurations form</strong>: game configurations can be copied and pasted (a context menu is now available in the game configurations list).</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Numeric textboxes: in addition to '++NN' and '--NN' to increment or decrement by given value, you can use '*NN' and '/NN' to multiply or divide by given value.</li>
|
||||
<li><span class="style1"><strong>[new]</strong></span> Toolbar button groups can be toggled using context menu. Hold "Shift" to toggle several button groups at once.
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<div id="contents">
|
||||
<p>Multiple engines can now be setup for each game configuration by clicking on the + icon:</p>
|
||||
<img src="multi_engines1.jpg" />
|
||||
<p>Choose which engine to use in the <b>Test Map</b> -> <b>Engine:</b> drop down:</p>
|
||||
<p>Choose which engine to use in the <b>Test Map</b> -> <b>Engine</b> drop down:</p>
|
||||
<img src="multi_engines2.jpg" />
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
Building the BSP tree and other additional information such as BLOCKMAP and REJECT is useful to optimize the in-game performance and for most older sourceports and vanilla Doom it is even required. This is where you select the nodebuilder you want to run in certain cases and which settings to use. You can choose a nodebuilder to run when saving the map and when testing the map. Consult the documentation of the sourceport you are using to find out which nodebuilder and which settings you need. Advanced users may want to add more specific settings by writing a <a href="nodebuilderconfiguration.html">nodebuilder configuration</a>.
|
||||
|
||||
<h2>Testing</h2>
|
||||
No matter how well an editor works, testing to see how your map looks and performs in the sourceport is essential. Here you can choose the sourceport to test with and the parameters to use. You can also set the default skill level, but this can also be easily changed from the test dropdown menu in the toolbar of the <a href="w_mainwindow.html">main window</a>. You generally do not need to specify custom parameters (the default ones should work fine) but advanced users may wish to change these parameters.<br />
|
||||
No matter how well an editor works, testing to see how your map looks and performs in the sourceport is essential. Here you can choose the sourceport to test with and the parameters to use. You can also set the default skill level, but this can also be easily changed from the test drop down menu in the toolbar of the <a href="w_mainwindow.html">main window</a>. You generally do not need to specify custom parameters (the default ones should work fine) but advanced users may wish to change these parameters.<br />
|
||||
<br />
|
||||
The following special placeholders can be used in the parameters;
|
||||
<table border="0" cellspacing="6" width="90%">
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
This area contains several settings for the <a href="e_visualmode.html">Visual Mode</a>. To improve performance, you may want to decrease the <b>View distance</b> setting.
|
||||
|
||||
<h2>Controls</h2>
|
||||
This is where you configure your keyboard and mouse shortcut keys. On the left is a list of all <a href="actions.html">Actions</a> in Doom Builder with the current mouse or key combination shown next to them. Select an action to view a summary of this action on the right. Press any key combination to set to this action, or select a special mouse combination from the dropdown box. Below that, you can see which other actions share the same key combination so that you can verify any conflicts it may have. Note that actions used in different editing modes can safely share the same key combination.
|
||||
This is where you configure your keyboard and mouse shortcut keys. On the left is a list of all <a href="actions.html">Actions</a> in Doom Builder with the current mouse or key combination shown next to them. Select an action to view a summary of this action on the right. Press any key combination to set to this action, or select a special mouse combination from the drop down box. Below that, you can see which other actions share the same key combination so that you can verify any conflicts it may have. Note that actions used in different editing modes can safely share the same key combination.
|
||||
|
||||
<h2>Appearance</h2>
|
||||
On this tab you can change some settings related to visual aesthetics. On the top and the left of this tab you can change colors that are used in the <a href="w_mainwindow.html">Working Area</a>
|
||||
|
|
|
@ -8,10 +8,12 @@
|
|||
#region ================== Namespaces
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Reflection;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Windows;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -27,6 +29,7 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
private bool collapsed;
|
||||
private readonly Color hotcolor = CalculateColor(SystemColors.Highlight, SystemColors.Window, 70);
|
||||
private Rectangle bounds;
|
||||
private readonly Dictionary<int, int> scaled;
|
||||
|
||||
// Storesome settings
|
||||
private int storedpanel1minsize;
|
||||
|
@ -85,6 +88,11 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
|
||||
// Force the width to 8px so that everything always draws correctly
|
||||
this.SplitterWidth = 8;
|
||||
|
||||
//mxd. Create some scaled coordinates...
|
||||
int[] coords = new[] { 1, 2, 3, 4, 6, 8, 9, 14, 115 };
|
||||
scaled = new Dictionary<int, int>(coords.Length);
|
||||
foreach (int i in coords) scaled[i] = (int)Math.Round(i * MainForm.DPIScaler.Width);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -162,83 +170,84 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
Rectangle r = this.SplitterRectangle;
|
||||
e.Graphics.FillRectangle(new SolidBrush(this.BackColor), r);
|
||||
|
||||
Pen penlightlight = new Pen(SystemColors.ControlLightLight);
|
||||
Pen pendark = new Pen(SystemColors.ControlDark);
|
||||
SolidBrush brushlightlight = new SolidBrush(SystemColors.ControlLightLight);
|
||||
SolidBrush brushdark = new SolidBrush(SystemColors.ControlDark);
|
||||
SolidBrush brushdarkdark = new SolidBrush(SystemColors.ControlDarkDark);
|
||||
|
||||
// Check the docking style and create the control rectangle accordingly
|
||||
if(this.Orientation == Orientation.Vertical)
|
||||
{
|
||||
// create a new rectangle in the vertical center of the splitter for our collapse control button
|
||||
bounds = new Rectangle(r.X, r.Y + ((r.Height - 115) / 2), 8, 115);
|
||||
bounds = new Rectangle(r.X, r.Y + ((r.Height - scaled[115]) / 2), scaled[8], scaled[115]);
|
||||
|
||||
// draw the background color for our control image
|
||||
e.Graphics.FillRectangle(new SolidBrush(hot ? hotcolor : this.BackColor), new Rectangle(bounds.X + 1, bounds.Y, 6, 115));
|
||||
e.Graphics.FillRectangle(new SolidBrush(hot ? hotcolor : this.BackColor), new Rectangle(bounds.X + scaled[1], bounds.Y, scaled[6], scaled[115]));
|
||||
|
||||
// draw the top & bottom lines for our control image
|
||||
e.Graphics.DrawLine(pendark, bounds.X + 1, bounds.Y, bounds.X + bounds.Width - 2, bounds.Y);
|
||||
e.Graphics.DrawLine(pendark, bounds.X + 1, bounds.Y + bounds.Height, bounds.X + bounds.Width - 2, bounds.Y + bounds.Height);
|
||||
e.Graphics.DrawLine(pendark, bounds.X + scaled[1], bounds.Y, bounds.X + bounds.Width - scaled[2], bounds.Y);
|
||||
e.Graphics.DrawLine(pendark, bounds.X + scaled[1], bounds.Y + bounds.Height, bounds.X + bounds.Width - scaled[2], bounds.Y + bounds.Height);
|
||||
|
||||
if(this.Enabled)
|
||||
{
|
||||
// draw the arrows for our control image
|
||||
// the ArrowPointArray is a point array that defines an arrow shaped polygon
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + 2, bounds.Y + 3));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + 2, bounds.Y + bounds.Height - 9));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + scaled[2], bounds.Y + scaled[3]));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + scaled[2], bounds.Y + bounds.Height - scaled[9]));
|
||||
}
|
||||
|
||||
// draw the dots for our control image using a loop
|
||||
int x = bounds.X + 3;
|
||||
int y = bounds.Y + 14;
|
||||
int x = bounds.X + scaled[3];
|
||||
int y = bounds.Y + scaled[14];
|
||||
|
||||
for(int i = 0; i < 30; i++)
|
||||
{
|
||||
// light dot
|
||||
e.Graphics.DrawRectangle(penlightlight, x, y + 1 + (i * 3), 1, 1);
|
||||
e.Graphics.FillRectangle(brushlightlight, x, y + scaled[1] + (i * scaled[3]), scaled[2], scaled[2]);
|
||||
// dark dot
|
||||
e.Graphics.DrawRectangle(pendark, x - 1, y + (i * 3), 1, 1);
|
||||
e.Graphics.FillRectangle(brushdark, x - scaled[1], y + (i * scaled[3]), scaled[2], scaled[2]);
|
||||
i++;
|
||||
// light dot
|
||||
e.Graphics.DrawRectangle(penlightlight, x + 2, y + 1 + (i * 3), 1, 1);
|
||||
e.Graphics.FillRectangle(brushlightlight, x + scaled[2], y + scaled[1] + (i * scaled[3]), scaled[2], scaled[2]);
|
||||
// dark dot
|
||||
e.Graphics.DrawRectangle(pendark, x + 1, y + (i * 3), 1, 1);
|
||||
e.Graphics.FillRectangle(brushdark, x + scaled[1], y + (i * scaled[3]), scaled[2], scaled[2]);
|
||||
}
|
||||
}
|
||||
else // Should be Orientation.Horizontal
|
||||
{
|
||||
// create a new rectangle in the horizontal center of the splitter for our collapse control button
|
||||
bounds = new Rectangle(r.X + ((r.Width - 115) / 2), r.Y, 115, 8);
|
||||
bounds = new Rectangle(r.X + ((r.Width - scaled[115]) / 2), r.Y, scaled[115], scaled[8]);
|
||||
|
||||
// draw the background color for our control image
|
||||
e.Graphics.FillRectangle(new SolidBrush(hot ? hotcolor : this.BackColor), new Rectangle(bounds.X, bounds.Y + 1, 115, 6));
|
||||
e.Graphics.FillRectangle(new SolidBrush(hot ? hotcolor : this.BackColor), new Rectangle(bounds.X, bounds.Y + scaled[1], scaled[115], scaled[6]));
|
||||
|
||||
// draw the left & right lines for our control image
|
||||
e.Graphics.DrawLine(pendark, bounds.X, bounds.Y + 1, bounds.X, bounds.Y + bounds.Height - 2);
|
||||
e.Graphics.DrawLine(pendark, bounds.X + bounds.Width, bounds.Y + 1, bounds.X + bounds.Width, bounds.Y + bounds.Height - 2);
|
||||
e.Graphics.DrawLine(pendark, bounds.X, bounds.Y + scaled[1], bounds.X, bounds.Y + bounds.Height - scaled[2]);
|
||||
e.Graphics.DrawLine(pendark, bounds.X + bounds.Width, bounds.Y + scaled[1], bounds.X + bounds.Width, bounds.Y + bounds.Height - scaled[2]);
|
||||
|
||||
if(this.Enabled)
|
||||
{
|
||||
// draw the arrows for our control image
|
||||
// the ArrowPointArray is a point array that defines an arrow shaped polygon
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + 3, bounds.Y + 2));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + bounds.Width - 9, bounds.Y + 2));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + scaled[3], bounds.Y + scaled[2]));
|
||||
e.Graphics.FillPolygon(brushdarkdark, ArrowPointArray(bounds.X + bounds.Width - scaled[9], bounds.Y + scaled[2]));
|
||||
}
|
||||
|
||||
// draw the dots for our control image using a loop
|
||||
int x = bounds.X + 14;
|
||||
int y = bounds.Y + 3;
|
||||
int x = bounds.X + scaled[14];
|
||||
int y = bounds.Y + scaled[3];
|
||||
|
||||
for(int i = 0; i < 30; i++)
|
||||
{
|
||||
// light dot
|
||||
e.Graphics.DrawRectangle(penlightlight, x + 1 + (i * 3), y, 1, 1);
|
||||
e.Graphics.FillRectangle(brushlightlight, x + scaled[1] + (i * scaled[3]), y, scaled[2], scaled[2]);
|
||||
// dark dot
|
||||
e.Graphics.DrawRectangle(pendark, x + (i * 3), y - 1, 1, 1);
|
||||
e.Graphics.FillRectangle(brushdark, x + (i * scaled[3]), y - scaled[1], scaled[2], scaled[2]);
|
||||
i++;
|
||||
// light dot
|
||||
e.Graphics.DrawRectangle(penlightlight, x + 1 + (i * 3), y + 2, 1, 1);
|
||||
e.Graphics.FillRectangle(brushlightlight, x + scaled[1] + (i * scaled[3]), y + scaled[2], scaled[2], scaled[2]);
|
||||
// dark dot
|
||||
e.Graphics.DrawRectangle(pendark, x + (i * 3), y + 1, 1, 1);
|
||||
e.Graphics.FillRectangle(brushdark, x + (i * scaled[3]), y + scaled[1], scaled[2], scaled[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -329,14 +338,14 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
if((FixedPanel == FixedPanel.Panel2 && Panel2.Visible) || (FixedPanel == FixedPanel.Panel1 && !Panel1.Visible)) // Right arrow
|
||||
{
|
||||
points[0] = new Point(x, y);
|
||||
points[1] = new Point(x + 3, y + 3);
|
||||
points[2] = new Point(x, y + 6);
|
||||
points[1] = new Point(x + scaled[3], y + scaled[3]);
|
||||
points[2] = new Point(x, y + scaled[6]);
|
||||
}
|
||||
else // Left arrow
|
||||
{
|
||||
points[0] = new Point(x + 3, y);
|
||||
points[1] = new Point(x, y + 3);
|
||||
points[2] = new Point(x + 3, y + 6);
|
||||
points[0] = new Point(x + scaled[3], y);
|
||||
points[1] = new Point(x, y + scaled[3]);
|
||||
points[2] = new Point(x + scaled[3], y + scaled[6]);
|
||||
}
|
||||
}
|
||||
else // Up or down arrows
|
||||
|
@ -344,14 +353,14 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
if((FixedPanel == FixedPanel.Panel2 && Panel2.Visible) || (FixedPanel == FixedPanel.Panel1 && !Panel1.Visible)) // Down arrow
|
||||
{
|
||||
points[0] = new Point(x, y);
|
||||
points[1] = new Point(x + 6, y);
|
||||
points[2] = new Point(x + 3, y + 3);
|
||||
points[1] = new Point(x + scaled[6], y);
|
||||
points[2] = new Point(x + scaled[3], y + scaled[3]);
|
||||
}
|
||||
else // Up arrow
|
||||
{
|
||||
points[0] = new Point(x + 3, y);
|
||||
points[1] = new Point(x + 6, y + 4);
|
||||
points[2] = new Point(x, y + 4);
|
||||
points[0] = new Point(x + scaled[3], y);
|
||||
points[1] = new Point(x + scaled[6], y + scaled[4]);
|
||||
points[2] = new Point(x, y + scaled[4]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ using System.Collections.Generic;
|
|||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using CodeImp.DoomBuilder.Data;
|
||||
using CodeImp.DoomBuilder.Windows;
|
||||
|
||||
#endregion
|
||||
|
||||
|
@ -89,6 +90,12 @@ namespace CodeImp.DoomBuilder.Controls
|
|||
StepsList sizes = new StepsList { 4, 8, 16, 32, 48, 64, 96, 128, 196, 256, 512, 1024 };
|
||||
filterWidth.StepValues = sizes;
|
||||
filterHeight.StepValues = sizes;
|
||||
|
||||
//mxd. Looks like SplitterDistance is unaffected by DPI scaling. Let's fix that...
|
||||
if(MainForm.DPIScaler.Height != 1.0f)
|
||||
{
|
||||
splitter.SplitterDistance = splitter.Height - splitter.Panel2.Height - (int)Math.Round(splitter.SplitterWidth * MainForm.DPIScaler.Height);
|
||||
}
|
||||
}
|
||||
|
||||
// This applies the application settings
|
||||
|
|
|
@ -869,7 +869,7 @@ namespace CodeImp.DoomBuilder
|
|||
}
|
||||
}
|
||||
}
|
||||
catch(UnauthorizedAccessException) { }
|
||||
catch(Exception) { }
|
||||
|
||||
// Warn the user?
|
||||
if(!portablemode) ShowWarningMessage("Failed to enable portable mode.\nMake sure you have write premission for '" + apppath + "' directory.", MessageBoxButtons.OK);
|
||||
|
|
|
@ -209,7 +209,19 @@ namespace CodeImp.DoomBuilder.Windows
|
|||
|
||||
//mxd. Set splitter position and state (doesn't work when layout is suspended)
|
||||
if(General.Settings.ReadSetting("browserwindow.splittercollapsed", false)) splitter.IsCollapsed = true;
|
||||
splitter.SplitPosition = General.Settings.ReadSetting("browserwindow.splitterdistance", 210);
|
||||
|
||||
//mxd. Looks like SplitterDistance is unaffected by DPI scaling. Let's fix that...
|
||||
int splitterdistance = General.Settings.ReadSetting("browserwindow.splitterdistance", int.MinValue);
|
||||
if(splitterdistance == int.MinValue)
|
||||
{
|
||||
splitterdistance = 210;
|
||||
if(MainForm.DPIScaler.Width != 1.0f)
|
||||
{
|
||||
splitterdistance = (int)Math.Round(splitterdistance * MainForm.DPIScaler.Width);
|
||||
}
|
||||
}
|
||||
|
||||
splitter.SplitPosition = splitterdistance;
|
||||
}
|
||||
|
||||
//mxd
|
||||
|
|
Loading…
Reference in a new issue