Skip to content

Commit 7925fc4

Browse files
committed
Issues #166 Allow to save "Resizable" menu item state between runs
1 parent 3b66577 commit 7925fc4

File tree

11 files changed

+484
-325
lines changed

11 files changed

+484
-325
lines changed

SmartSystemMenu/Forms/MainForm.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ private void SysCommand(object sender, SysCommandEventArgs e)
828828
{
829829
var isChecked = window.Menu.IsMenuItemChecked(MenuItemId.SC_RESIZABLE);
830830
window.Menu.CheckMenuItem(MenuItemId.SC_RESIZABLE, !isChecked);
831-
window.MakeThickFrame(!isChecked);
831+
window.MakeResizable(!isChecked);
832832
var size = window.Size;
833833
MoveWindow(window.Handle, size.Left, size.Top, size.Width, size.Height, true);
834834
InvalidateRect(window.Handle, IntPtr.Zero, true);

SmartSystemMenu/Forms/SettingsForm.Designer.cs

Lines changed: 369 additions & 270 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SmartSystemMenu/Forms/SettingsForm.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ private void InitializeControls(ApplicationSettings settings)
8282
toolTipAddProcessName.SetToolTip(btnMenuItemUp, settings.Language.GetValue("btn_menu_item_up"));
8383
chkAeroGlass.Text = settings.Language.GetValue("aero_glass");
8484
chkAlwaysOnTop.Text = settings.Language.GetValue("always_on_top");
85-
chkAlignment.Text = settings.Language.GetValue("alignment");
8685
chkHideForAltTab.Text = settings.Language.GetValue("hide_for_alt_tab");
86+
chkResizable.Text = settings.Language.GetValue("size_resizable");
87+
chkAlignment.Text = settings.Language.GetValue("alignment");
8788
chkTransparency.Text = settings.Language.GetValue("transparency");
8889
chkPriority.Text = settings.Language.GetValue("priority");
8990
chkMinimizeToTrayAlways.Text = settings.Language.GetValue("minimize_always_to_systemtray");
@@ -164,6 +165,7 @@ private void InitializeControls(ApplicationSettings settings)
164165
chkAeroGlass.Checked = settings.SaveSelectedItems.AeroGlass;
165166
chkAlwaysOnTop.Checked = settings.SaveSelectedItems.AlwaysOnTop;
166167
chkHideForAltTab.Checked = settings.SaveSelectedItems.HideForAltTab;
168+
chkResizable.Checked = settings.SaveSelectedItems.Resizable;
167169
chkAlignment.Checked = settings.SaveSelectedItems.Alignment;
168170
chkTransparency.Checked = settings.SaveSelectedItems.Transparency;
169171
chkPriority.Checked = settings.SaveSelectedItems.Priority;
@@ -588,6 +590,7 @@ private void ButtonApplyClick(object sender, EventArgs e)
588590
settings.SaveSelectedItems.AeroGlass = chkAeroGlass.Checked;
589591
settings.SaveSelectedItems.AlwaysOnTop = chkAlwaysOnTop.Checked;
590592
settings.SaveSelectedItems.HideForAltTab = chkHideForAltTab.Checked;
593+
settings.SaveSelectedItems.Resizable = chkResizable.Checked;
591594
settings.SaveSelectedItems.Alignment = chkAlignment.Checked;
592595
settings.SaveSelectedItems.Transparency = chkTransparency.Checked;
593596
settings.SaveSelectedItems.Priority = chkPriority.Checked;

SmartSystemMenu/Forms/SettingsForm.resx

Lines changed: 80 additions & 41 deletions
Large diffs are not rendered by default.

SmartSystemMenu/Settings/ApplicationSettings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ public bool Equals(ApplicationSettings other)
260260
if (SaveSelectedItems.AeroGlass != other.SaveSelectedItems.AeroGlass ||
261261
SaveSelectedItems.AlwaysOnTop != other.SaveSelectedItems.AlwaysOnTop ||
262262
SaveSelectedItems.HideForAltTab != other.SaveSelectedItems.HideForAltTab ||
263+
SaveSelectedItems.Resizable != other.SaveSelectedItems.Resizable ||
263264
SaveSelectedItems.Alignment != other.SaveSelectedItems.Alignment ||
264265
SaveSelectedItems.Transparency != other.SaveSelectedItems.Transparency ||
265266
SaveSelectedItems.Priority != other.SaveSelectedItems.Priority ||
@@ -339,6 +340,7 @@ public override int GetHashCode()
339340
hashCode ^= SaveSelectedItems.AeroGlass.GetHashCode();
340341
hashCode ^= SaveSelectedItems.AlwaysOnTop.GetHashCode();
341342
hashCode ^= SaveSelectedItems.HideForAltTab.GetHashCode();
343+
hashCode ^= SaveSelectedItems.Resizable.GetHashCode();
342344
hashCode ^= SaveSelectedItems.Alignment.GetHashCode();
343345
hashCode ^= SaveSelectedItems.Transparency.GetHashCode();
344346
hashCode ^= SaveSelectedItems.Priority.GetHashCode();

SmartSystemMenu/Settings/ApplicationSettingsFile.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ public static ApplicationSettings Read(string fileName, string languageFileName)
106106
settings.SaveSelectedItems.AeroGlass = saveSelectedItemsElement.Attribute("aeroGlass") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("aeroGlass").Value) ? saveSelectedItemsElement.Attribute("aeroGlass").Value.ToLower() == "true" : true;
107107
settings.SaveSelectedItems.AlwaysOnTop = saveSelectedItemsElement.Attribute("alwaysOnTop") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("alwaysOnTop").Value) ? saveSelectedItemsElement.Attribute("alwaysOnTop").Value.ToLower() == "true" : true;
108108
settings.SaveSelectedItems.HideForAltTab = saveSelectedItemsElement.Attribute("hideForAltTab") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("hideForAltTab").Value) ? saveSelectedItemsElement.Attribute("hideForAltTab").Value.ToLower() == "true" : true;
109+
settings.SaveSelectedItems.Resizable = saveSelectedItemsElement.Attribute("resizable") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("resizable").Value) ? saveSelectedItemsElement.Attribute("resizable").Value.ToLower() == "true" : true;
109110
settings.SaveSelectedItems.Alignment = saveSelectedItemsElement.Attribute("alignment") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("alignment").Value) ? saveSelectedItemsElement.Attribute("alignment").Value.ToLower() == "true" : true;
110111
settings.SaveSelectedItems.Transparency = saveSelectedItemsElement.Attribute("transparency") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("transparency").Value) ? saveSelectedItemsElement.Attribute("transparency").Value.ToLower() == "true" : true;
111112
settings.SaveSelectedItems.Priority = saveSelectedItemsElement.Attribute("priority") != null && !string.IsNullOrEmpty(saveSelectedItemsElement.Attribute("priority").Value) ? saveSelectedItemsElement.Attribute("priority").Value.ToLower() == "true" : true;
@@ -217,6 +218,7 @@ public static void Save(string fileName, ApplicationSettings settings)
217218
new XAttribute("aeroGlass", settings.SaveSelectedItems.AeroGlass.ToString().ToLower()),
218219
new XAttribute("alwaysOnTop", settings.SaveSelectedItems.AlwaysOnTop.ToString().ToLower()),
219220
new XAttribute("hideForAltTab", settings.SaveSelectedItems.HideForAltTab.ToString().ToLower()),
221+
new XAttribute("resizable", settings.SaveSelectedItems.Resizable.ToString().ToLower()),
220222
new XAttribute("alignment", settings.SaveSelectedItems.Alignment.ToString().ToLower()),
221223
new XAttribute("transparency", settings.SaveSelectedItems.Transparency.ToString().ToLower()),
222224
new XAttribute("priority", settings.SaveSelectedItems.Priority.ToString().ToLower()),

SmartSystemMenu/Settings/SaveSelectedItemsSettings.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public class SaveSelectedItemsSettings : ICloneable
1010

1111
public bool HideForAltTab { get; set; }
1212

13+
public bool Resizable { get; set; }
14+
1315
public bool Alignment { get; set; }
1416

1517
public bool Transparency { get; set; }
@@ -25,6 +27,7 @@ public SaveSelectedItemsSettings()
2527
AeroGlass = true;
2628
AlwaysOnTop = true;
2729
HideForAltTab = true;
30+
Resizable = true;
2831
Alignment = true;
2932
Transparency = true;
3033
Priority = true;

SmartSystemMenu/Settings/WindowSettings.cs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,17 @@ public static WindowSettings Read(string fileName)
5555
Top = int.Parse(positionElement.Attribute("top").Value),
5656
Width = int.Parse(positionElement.Attribute("width").Value),
5757
Height = int.Parse(positionElement.Attribute("height").Value),
58-
AeroGlass = systemMenuElement.Attribute("aeroGlass") == null ? (bool?)null : systemMenuElement.Attribute("aeroGlass").Value.ToLower() == "true",
59-
AlwaysOnTop = systemMenuElement.Attribute("alwaysOnTop") == null ? (bool?)null : systemMenuElement.Attribute("alwaysOnTop").Value.ToLower() == "true",
60-
HideForAltTab = systemMenuElement.Attribute("hideForAltTab") == null ? (bool?)null : systemMenuElement.Attribute("hideForAltTab").Value.ToLower() == "true",
61-
Alignment = systemMenuElement.Attribute("alignment") == null ? (WindowAlignment?)null : (WindowAlignment)int.Parse(systemMenuElement.Attribute("alignment").Value),
62-
Transparency = systemMenuElement.Attribute("transparency") == null ? (int?)null : int.Parse(systemMenuElement.Attribute("transparency").Value),
63-
Priority = systemMenuElement.Attribute("priority") == null ? (Priority?)null : (Priority)int.Parse(systemMenuElement.Attribute("priority").Value),
64-
MinimizeToTrayAlways = systemMenuElement.Attribute("minimizeToTrayAlways") == null ? (bool?)null : systemMenuElement.Attribute("minimizeToTrayAlways").Value.ToLower() == "true",
65-
IsDisabledMinimizeButton = systemMenuElement.Attribute("disableMinimizeButton") == null ? (bool?)null : systemMenuElement.Attribute("disableMinimizeButton").Value.ToLower() == "true",
66-
IsDisabledMaximizeButton = systemMenuElement.Attribute("disableMaximizeButton") == null ? (bool?)null : systemMenuElement.Attribute("disableMaximizeButton").Value.ToLower() == "true",
67-
IsDisabledCloseButton = systemMenuElement.Attribute("disableCloseButton") == null ? (bool?)null : systemMenuElement.Attribute("disableCloseButton").Value.ToLower() == "true"
58+
AeroGlass = systemMenuElement.Attribute("aeroGlass") == null ? null : systemMenuElement.Attribute("aeroGlass").Value.ToLower() == "true",
59+
AlwaysOnTop = systemMenuElement.Attribute("alwaysOnTop") == null ? null : systemMenuElement.Attribute("alwaysOnTop").Value.ToLower() == "true",
60+
HideForAltTab = systemMenuElement.Attribute("hideForAltTab") == null ? null : systemMenuElement.Attribute("hideForAltTab").Value.ToLower() == "true",
61+
Resizable = systemMenuElement.Attribute("resizable") == null ? null : systemMenuElement.Attribute("resizable").Value.ToLower() == "true",
62+
Alignment = systemMenuElement.Attribute("alignment") == null ? null : (WindowAlignment)int.Parse(systemMenuElement.Attribute("alignment").Value),
63+
Transparency = systemMenuElement.Attribute("transparency") == null ? null : int.Parse(systemMenuElement.Attribute("transparency").Value),
64+
Priority = systemMenuElement.Attribute("priority") == null ? null : (Priority)int.Parse(systemMenuElement.Attribute("priority").Value),
65+
MinimizeToTrayAlways = systemMenuElement.Attribute("minimizeToTrayAlways") == null ? null : systemMenuElement.Attribute("minimizeToTrayAlways").Value.ToLower() == "true",
66+
IsDisabledMinimizeButton = systemMenuElement.Attribute("disableMinimizeButton") == null ? null : systemMenuElement.Attribute("disableMinimizeButton").Value.ToLower() == "true",
67+
IsDisabledMaximizeButton = systemMenuElement.Attribute("disableMaximizeButton") == null ? null : systemMenuElement.Attribute("disableMaximizeButton").Value.ToLower() == "true",
68+
IsDisabledCloseButton = systemMenuElement.Attribute("disableCloseButton") == null ? null : systemMenuElement.Attribute("disableCloseButton").Value.ToLower() == "true"
6869
};
6970
})
7071
.ToList();
@@ -87,6 +88,7 @@ public static void Save(string fileName, WindowSettings windowSettings, Applicat
8788
settings.SaveSelectedItems.AeroGlass && x.AeroGlass.HasValue ? new XAttribute("aeroGlass", x.AeroGlass.Value.ToString().ToLower()) : null,
8889
settings.SaveSelectedItems.AlwaysOnTop && x.AlwaysOnTop.HasValue ? new XAttribute("alwaysOnTop", x.AlwaysOnTop.Value.ToString().ToLower()) : null,
8990
settings.SaveSelectedItems.HideForAltTab && x.HideForAltTab.HasValue ? new XAttribute("hideForAltTab", x.HideForAltTab.Value.ToString().ToLower()) : null,
91+
settings.SaveSelectedItems.Resizable && x.Resizable.HasValue ? new XAttribute("resizable", x.Resizable.Value.ToString().ToLower()) : null,
9092
settings.SaveSelectedItems.Alignment && x.Alignment.HasValue ? new XAttribute("alignment", (int)x.Alignment.Value) : null,
9193
settings.SaveSelectedItems.Transparency && x.Transparency.HasValue ? new XAttribute("transparency", x.Transparency.Value.ToString().ToLower()) : null,
9294
settings.SaveSelectedItems.Priority && x.Priority.HasValue ? new XAttribute("priority", (int)x.Priority) : null,

SmartSystemMenu/SmartSystemMenu.xml

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

SmartSystemMenu/Window.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ public void ClickThrough(bool enable)
601601
}
602602
}
603603

604-
public void MakeThickFrame(bool enable)
604+
public void MakeResizable(bool enable)
605605
{
606606
if (enable)
607607
{
@@ -618,6 +618,7 @@ public void MakeThickFrame(bool enable)
618618
WindowUtils.UnsetThickFrame(Handle);
619619
}
620620
}
621+
State.Resizable = enable;
621622
}
622623

623624
public void SendToBottom()
@@ -785,6 +786,12 @@ public void ApplyState(WindowState state, SaveSelectedItemsSettings settings, IL
785786
Menu.CheckMenuItem(MenuItemId.SC_HIDE_FOR_ALT_TAB, state.HideForAltTab.Value);
786787
}
787788

789+
if (settings.Resizable && state.Resizable.HasValue)
790+
{
791+
MakeResizable(state.Resizable.Value);
792+
Menu.CheckMenuItem(MenuItemId.SC_RESIZABLE, state.Resizable.Value);
793+
}
794+
788795
if (settings.Alignment && state.Alignment.HasValue)
789796
{
790797
SetAlignment(state.Alignment.Value);

0 commit comments

Comments
 (0)