Skip to content

Commit 1fb11aa

Browse files
committed
Issues #166 Allow all windows to be resizable by default
1 parent 7925fc4 commit 1fb11aa

File tree

7 files changed

+59
-23
lines changed

7 files changed

+59
-23
lines changed

SmartSystemMenu/Forms/MainForm.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,12 @@ protected override void OnLoad(EventArgs e)
135135
var isAdded = window.Menu.Create();
136136
if (isAdded)
137137
{
138+
if (_settings.Sizer.ResizableByDefault)
139+
{
140+
window.MakeResizable(true);
141+
window.Menu.CheckMenuItem(MenuItemId.SC_RESIZABLE, true);
142+
}
143+
138144
window.CheckDefaultMenuItems();
139145
window.NoRestoreMenu = !string.IsNullOrEmpty(fileName) && _settings.NoRestoreMenuProcessNames.Contains(fileName.ToLower());
140146

@@ -454,6 +460,12 @@ private void CreateMenu(Window window, int processId, string processPath)
454460
var isAdded = window.Menu.Create();
455461
if (isAdded)
456462
{
463+
if (_settings.Sizer.ResizableByDefault)
464+
{
465+
window.MakeResizable(true);
466+
window.Menu.CheckMenuItem(MenuItemId.SC_RESIZABLE, true);
467+
}
468+
457469
window.CheckDefaultMenuItems();
458470

459471
var fileName = Path.GetFileName(processPath);
@@ -797,11 +809,11 @@ private void SysCommand(object sender, SysCommandEventArgs e)
797809
{
798810
window.ShowNormal();
799811

800-
if (_settings.Sizer == WindowSizerType.WindowWithMargins)
812+
if (_settings.Sizer.SizerType == WindowSizerType.WindowWithMargins)
801813
{
802814
window.SetSize(sizeForm.WindowWidth, sizeForm.WindowHeight, sizeForm.WindowLeft, sizeForm.WindowTop);
803815
}
804-
else if (_settings.Sizer == WindowSizerType.WindowWithoutMargins)
816+
else if (_settings.Sizer.SizerType == WindowSizerType.WindowWithoutMargins)
805817
{
806818
var margins = window.GetSystemMargins();
807819
window.SetSize(sizeForm.WindowWidth == null ? null : (sizeForm.WindowWidth + margins.Left + margins.Right),
@@ -1203,11 +1215,11 @@ private void SetSizeMenuItem(Window window, int itemId, WindowSizeMenuItem item)
12031215
window.Menu.UncheckSizeMenu();
12041216
window.Menu.CheckMenuItem(itemId, true);
12051217
window.ShowNormal();
1206-
if (_settings.Sizer == WindowSizerType.WindowWithMargins)
1218+
if (_settings.Sizer.SizerType == WindowSizerType.WindowWithMargins)
12071219
{
12081220
window.SetSize(item.Width, item.Height, item.Left, item.Top);
12091221
}
1210-
else if (_settings.Sizer == WindowSizerType.WindowWithoutMargins)
1222+
else if (_settings.Sizer.SizerType == WindowSizerType.WindowWithoutMargins)
12111223
{
12121224
var margins = window.GetSystemMargins();
12131225
window.SetSize(item.Width == null ? null : (item.Width + margins.Left + margins.Right),

SmartSystemMenu/Forms/SettingsForm.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ private void InitializeControls(ApplicationSettings settings)
160160
cmbSizer.Items.Add(settings.Language.GetValue("sizer_window_with_margins"));
161161
cmbSizer.Items.Add(settings.Language.GetValue("sizer_window_without_margins"));
162162
cmbSizer.Items.Add(settings.Language.GetValue("sizer_window_client_area"));
163-
cmbSizer.SelectedIndex = (int)settings.Sizer;
163+
cmbSizer.SelectedIndex = (int)settings.Sizer.SizerType;
164164
chkEnableHighDPI.Checked = settings.EnableHighDPI;
165165
chkAeroGlass.Checked = settings.SaveSelectedItems.AeroGlass;
166166
chkAlwaysOnTop.Checked = settings.SaveSelectedItems.AlwaysOnTop;
@@ -598,7 +598,8 @@ private void ButtonApplyClick(object sender, EventArgs e)
598598
settings.SaveSelectedItems.Buttons = chkButtons.Checked;
599599
settings.Dimmer.Color = txtDimmerColor.Text;
600600
settings.Dimmer.Transparency = trackbDimmerTransparency.Value;
601-
settings.Sizer = (WindowSizerType)cmbSizer.SelectedIndex;
601+
settings.Sizer.SizerType = (WindowSizerType)cmbSizer.SelectedIndex;
602+
settings.Sizer.ResizableByDefault = _settings.Sizer.ResizableByDefault;
602603
settings.EnableHighDPI = chkEnableHighDPI.Checked;
603604
settings.LanguageName = cmbLanguage.SelectedValue == null ? "" : cmbLanguage.SelectedValue.ToString();
604605

SmartSystemMenu/Settings/ApplicationSettings.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ public class ApplicationSettings : ICloneable
1717

1818
public DimmerSettings Dimmer { get; set; }
1919

20+
public SizerSettings Sizer { get; set; }
21+
2022
public SaveSelectedItemsSettings SaveSelectedItems { get; set; }
2123

2224
public bool ShowSystemTrayIcon { get; set; }
2325

2426
public bool EnableHighDPI { get; set; }
2527

26-
public WindowSizerType Sizer { get; set; }
27-
2828
public string LanguageName { get; set; }
2929

3030
public LanguageSettings Language { get; set; }
@@ -38,8 +38,8 @@ public ApplicationSettings()
3838
MenuItems = new MenuItems();
3939
Closer = new CloserSettings();
4040
Dimmer = new DimmerSettings();
41+
Sizer = new SizerSettings();
4142
SaveSelectedItems = new SaveSelectedItemsSettings();
42-
Sizer = WindowSizerType.WindowWithMargins;
4343
ShowSystemTrayIcon = true;
4444
EnableHighDPI = false;
4545
LanguageName = "";
@@ -87,8 +87,8 @@ public object Clone()
8787

8888
settings.Closer= (CloserSettings)Closer.Clone();
8989
settings.Dimmer = (DimmerSettings)Dimmer.Clone();
90+
settings.Sizer = (SizerSettings)Sizer.Clone();
9091
settings.SaveSelectedItems = (SaveSelectedItemsSettings)SaveSelectedItems.Clone();
91-
settings.Sizer = Sizer;
9292
settings.ShowSystemTrayIcon = ShowSystemTrayIcon;
9393
settings.EnableHighDPI = EnableHighDPI;
9494
settings.LanguageName = LanguageName;
@@ -257,6 +257,11 @@ public bool Equals(ApplicationSettings other)
257257
return false;
258258
}
259259

260+
if (Sizer.SizerType != other.Sizer.SizerType || Sizer.ResizableByDefault != other.Sizer.ResizableByDefault)
261+
{
262+
return false;
263+
}
264+
260265
if (SaveSelectedItems.AeroGlass != other.SaveSelectedItems.AeroGlass ||
261266
SaveSelectedItems.AlwaysOnTop != other.SaveSelectedItems.AlwaysOnTop ||
262267
SaveSelectedItems.HideForAltTab != other.SaveSelectedItems.HideForAltTab ||
@@ -270,11 +275,6 @@ public bool Equals(ApplicationSettings other)
270275
return false;
271276
}
272277

273-
if (Sizer != other.Sizer)
274-
{
275-
return false;
276-
}
277-
278278
if (ShowSystemTrayIcon != other.ShowSystemTrayIcon)
279279
{
280280
return false;
@@ -337,6 +337,8 @@ public override int GetHashCode()
337337
hashCode ^= Closer.MouseButton.GetHashCode();
338338
hashCode ^= Dimmer.Color.GetHashCode();
339339
hashCode ^= Dimmer.Transparency.GetHashCode();
340+
hashCode ^= Sizer.SizerType.GetHashCode();
341+
hashCode ^= Sizer.ResizableByDefault.GetHashCode();
340342
hashCode ^= SaveSelectedItems.AeroGlass.GetHashCode();
341343
hashCode ^= SaveSelectedItems.AlwaysOnTop.GetHashCode();
342344
hashCode ^= SaveSelectedItems.HideForAltTab.GetHashCode();
@@ -346,7 +348,6 @@ public override int GetHashCode()
346348
hashCode ^= SaveSelectedItems.Priority.GetHashCode();
347349
hashCode ^= SaveSelectedItems.MinimizeToTrayAlways.GetHashCode();
348350
hashCode ^= SaveSelectedItems.Buttons.GetHashCode();
349-
hashCode ^= Sizer.GetHashCode();
350351
hashCode ^= LanguageName.GetHashCode();
351352
hashCode ^= ShowSystemTrayIcon.GetHashCode();
352353
hashCode ^= EnableHighDPI.GetHashCode();

SmartSystemMenu/Settings/ApplicationSettingsFile.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ public static ApplicationSettings Read(string fileName, string languageFileName)
102102
settings.Dimmer.Color = dimmerElement.Attribute("color") != null ? dimmerElement.Attribute("color").Value : string.Empty;
103103
settings.Dimmer.Transparency = dimmerElement.Attribute("transparency") != null ? int.Parse(dimmerElement.Attribute("transparency").Value) : 0;
104104

105+
var sizerElement = document.XPathSelectElement("/smartSystemMenu/sizer");
106+
settings.Sizer.SizerType = sizerElement.Attribute("type") != null && !string.IsNullOrEmpty(sizerElement.Attribute("type").Value) ? (WindowSizerType)int.Parse(sizerElement.Attribute("type").Value) : WindowSizerType.WindowWithMargins;
107+
settings.Sizer.ResizableByDefault = sizerElement.Attribute("resizableByDefault") != null && !string.IsNullOrEmpty(sizerElement.Attribute("resizableByDefault").Value) && sizerElement.Attribute("resizableByDefault").Value.ToLower() == "true";
108+
105109
var saveSelectedItemsElement = document.XPathSelectElement("/smartSystemMenu/saveSelectedItems");
106110
settings.SaveSelectedItems.AeroGlass = saveSelectedItemsElement.Attribute("aeroGlass") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("aeroGlass").Value) ? saveSelectedItemsElement.Attribute("aeroGlass").Value.ToLower() == "true" : true;
107111
settings.SaveSelectedItems.AlwaysOnTop = saveSelectedItemsElement.Attribute("alwaysOnTop") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("alwaysOnTop").Value) ? saveSelectedItemsElement.Attribute("alwaysOnTop").Value.ToLower() == "true" : true;
@@ -113,9 +117,6 @@ public static ApplicationSettings Read(string fileName, string languageFileName)
113117
settings.SaveSelectedItems.MinimizeToTrayAlways = saveSelectedItemsElement.Attribute("minimizeToTrayAlways") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("minimizeToTrayAlways").Value) ? saveSelectedItemsElement.Attribute("minimizeToTrayAlways").Value.ToLower() == "true" : true;
114118
settings.SaveSelectedItems.Buttons = saveSelectedItemsElement.Attribute("buttons") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("buttons").Value) ? saveSelectedItemsElement.Attribute("buttons").Value.ToLower() == "true" : true;
115119

116-
var sizerElement = document.XPathSelectElement("/smartSystemMenu/sizer");
117-
settings.Sizer = sizerElement.Attribute("type") != null && !string.IsNullOrEmpty(sizerElement.Attribute("type").Value) ? (WindowSizerType)int.Parse(sizerElement.Attribute("type").Value) : WindowSizerType.WindowWithMargins;
118-
119120
var systemTrayIconElement = document.XPathSelectElement("/smartSystemMenu/systemTrayIcon");
120121
if (systemTrayIconElement != null && systemTrayIconElement.Attribute("show") != null && systemTrayIconElement.Attribute("show").Value != null && systemTrayIconElement.Attribute("show").Value.ToLower() == "false")
121122
{
@@ -214,6 +215,10 @@ public static void Save(string fileName, ApplicationSettings settings)
214215
new XAttribute("color", settings.Dimmer.Color),
215216
new XAttribute("transparency", settings.Dimmer.Transparency.ToString())
216217
),
218+
new XElement("sizer",
219+
new XAttribute("type", ((int)settings.Sizer.SizerType).ToString()),
220+
new XAttribute("resizableByDefault", settings.Sizer.ResizableByDefault.ToString().ToLower())
221+
),
217222
new XElement("saveSelectedItems",
218223
new XAttribute("aeroGlass", settings.SaveSelectedItems.AeroGlass.ToString().ToLower()),
219224
new XAttribute("alwaysOnTop", settings.SaveSelectedItems.AlwaysOnTop.ToString().ToLower()),
@@ -225,9 +230,6 @@ public static void Save(string fileName, ApplicationSettings settings)
225230
new XAttribute("minimizeToTrayAlways", settings.SaveSelectedItems.MinimizeToTrayAlways.ToString().ToLower()),
226231
new XAttribute("buttons", settings.SaveSelectedItems.Buttons.ToString().ToLower())
227232
),
228-
new XElement("sizer",
229-
new XAttribute("type", ((int)settings.Sizer).ToString())
230-
),
231233
new XElement("systemTrayIcon",
232234
new XAttribute("show", settings.ShowSystemTrayIcon.ToString().ToLower())
233235
),
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
3+
namespace SmartSystemMenu.Settings
4+
{
5+
public class SizerSettings : ICloneable
6+
{
7+
public WindowSizerType SizerType { get; set; }
8+
9+
public bool ResizableByDefault { get; set; }
10+
11+
public SizerSettings()
12+
{
13+
SizerType = WindowSizerType.WindowWithMargins;
14+
ResizableByDefault = false;
15+
}
16+
17+
public object Clone() => MemberwiseClone();
18+
}
19+
}

SmartSystemMenu/SmartSystemMenu.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211
<Compile Include="Settings\CloserSettings.cs" />
212212
<Compile Include="Settings\DimmerSettings.cs" />
213213
<Compile Include="Settings\SaveSelectedItemsSettings.cs" />
214+
<Compile Include="Settings\SizerSettings.cs" />
214215
<Compile Include="Settings\WindowSettings.cs" />
215216
<Compile Include="Settings\MenuItemType.cs" />
216217
<Compile Include="ToggleParser.cs" />

SmartSystemMenu/SmartSystemMenu.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,8 @@
166166
</menuItems>
167167
<closer type="" key1="" key2="" mouseButton="" />
168168
<dimmer color="#000000" transparency="50" />
169+
<sizer type="" resizableByDefault="false" />
169170
<saveSelectedItems aeroGlass="true" alwaysOnTop="true" hideForAltTab="true" resizable="true" alignment="true" transparency="true" priority="true" minimizeToTrayAlways="true" buttons="true" />
170-
<sizer type="" />
171171
<systemTrayIcon show="true" />
172172
<display highDPI="true" />
173173
<language name="" />

0 commit comments

Comments
 (0)