Skip to content

Commit 6d50b74

Browse files
committed
add new tray icon modes
1 parent 6aeea49 commit 6d50b74

File tree

3 files changed

+40
-39
lines changed

3 files changed

+40
-39
lines changed

TrayRAMBooster/Engine/Enums.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,11 @@ public enum MemoryUnit {
3737

3838
public enum TrayIconMode {
3939
Image,
40+
MemoryUsageBar,
41+
MemoryUsagePie,
4042
MemoryUsagePercent,
41-
MemoryAvailable,
4243
MemoryUsageValue,
44+
MemoryAvailable,
4345
}
4446

4547
public enum DoubleClickAction {

TrayRAMBooster/TrayApplicationContext.cs

Lines changed: 35 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -122,23 +122,20 @@ private void ExecuteInUiThread(Action action) {
122122

123123
private string GetTrayIconText() {
124124
return Settings.TrayIconMode switch {
125-
Enums.TrayIconMode.MemoryUsageValue => !Settings.ShowVirtualMemory
126-
? $"Memory used:\nPhysical: {computer.Memory.Physical.Used}"
127-
: $"Memory used:\nPhysical: {computer.Memory.Physical.Used}\nVirtual: {computer.Memory.Virtual.Used}",
128125
Enums.TrayIconMode.MemoryAvailable => !Settings.ShowVirtualMemory
129126
? $"Memory available:\nPhysical: {computer.Memory.Physical.Free}"
130127
: $"Memory available:\nPhysical: {computer.Memory.Physical.Free}\nVirtual: {computer.Memory.Virtual.Free}",
131128
_ => !Settings.ShowVirtualMemory
132-
? $"Memory usage:\nPhysical: {computer.Memory.Physical.Used.Percentage}%"
133-
: $"Memory usage:\nPhysical: {computer.Memory.Physical.Used.Percentage}%\nVirtual: {computer.Memory.Virtual.Used.Percentage}%",
129+
? $"Memory used:\nPhysical: {computer.Memory.Physical.Used}"
130+
: $"Memory used:\nPhysical: {computer.Memory.Physical.Used}\nVirtual: {computer.Memory.Virtual.Used}",
134131
};
135132
}
136133

137134
private void Update(bool fetchMemoryState) {
138135

139136
if (fetchMemoryState && !computer.UpdateMemoryState()) return;
140137

141-
UpdateIcon();
138+
UpdateIcon(fetchMemoryState);
142139

143140
if (statusMenuLabel.Visible)
144141
ExecuteInUiThread(() => { UpdateStatusMenuItem(false); });
@@ -153,42 +150,42 @@ private void SafeSetTrayIcon(Icon icon) {
153150

154151
private void UpdateIcon(bool force = false) {
155152

156-
string newIconValue = null;
157-
switch (Settings.TrayIconMode) {
158-
case Enums.TrayIconMode.MemoryUsageValue:
159-
newIconValue = computer.Memory.Physical.Used.Value.ToTrayValue();
160-
break;
161-
case Enums.TrayIconMode.MemoryAvailable:
162-
newIconValue = computer.Memory.Physical.Free.Value.ToTrayValue();
163-
break;
164-
case Enums.TrayIconMode.Image:
165-
case Enums.TrayIconMode.MemoryUsagePercent:
166-
default:
167-
if (Settings.TrayIconMode == Enums.TrayIconMode.MemoryUsagePercent)
168-
newIconValue = $"{computer.Memory.Physical.Used.Percentage:0}";
169-
break;
170-
}
171-
153+
string newIconValue = Settings.TrayIconMode switch {
154+
Enums.TrayIconMode.MemoryAvailable => computer.Memory.Physical.Free.Value.ToTrayValue(),
155+
Enums.TrayIconMode.MemoryUsageValue => computer.Memory.Physical.Used.Value.ToTrayValue(),
156+
_ => $"{computer.Memory.Physical.Used.Percentage:0}",
157+
};
172158
if (!force && string.Equals(iconValue, newIconValue, StringComparison.OrdinalIgnoreCase))
173159
return;
174-
175160
iconValue = newIconValue;
176-
177-
if (string.IsNullOrEmpty(iconValue) && optimizationProgressPercentage == 0) {
178-
SafeSetTrayIcon(imageIcon);
179-
}
180-
else {
181-
try {
182-
SafeSetTrayIcon(optimizationProgressPercentage > 0
183-
? iconFactory.CreatePercentagePieIcon(optimizationProgressPercentage)
184-
: iconFactory.CreateTransparentIcon(iconValue));
161+
try {
162+
if (optimizationProgressPercentage > 0) {
163+
SafeSetTrayIcon(iconFactory.CreatePercentagePieIcon(optimizationProgressPercentage));
185164
}
186-
catch {
187-
SafeSetTrayIcon(imageIcon);
165+
else {
166+
switch (Settings.TrayIconMode) {
167+
case Enums.TrayIconMode.Image:
168+
SafeSetTrayIcon(imageIcon);
169+
break;
170+
case Enums.TrayIconMode.MemoryUsageBar:
171+
SafeSetTrayIcon(iconFactory.CreatePercentageIcon(computer.Memory.Physical.Used.Percentage));
172+
break;
173+
case Enums.TrayIconMode.MemoryUsagePie:
174+
SafeSetTrayIcon(iconFactory.CreatePercentagePieIcon((byte)computer.Memory.Physical.Used.Percentage));
175+
break;
176+
case Enums.TrayIconMode.MemoryUsagePercent:
177+
case Enums.TrayIconMode.MemoryUsageValue:
178+
case Enums.TrayIconMode.MemoryAvailable:
179+
SafeSetTrayIcon(iconFactory.CreateTransparentIcon(iconValue));
180+
break;
181+
}
188182
}
189183
}
184+
catch {
185+
SafeSetTrayIcon(imageIcon);
186+
}
190187
}
191-
188+
192189
private void OnOptimizeProgressUpdate(byte value, string step) {
193190
var stepsCount = GetEnabledMemoryAreasCount();
194191
if (value > stepsCount)
@@ -522,9 +519,11 @@ private void AddMenuItems() {
522519
iconTypeMenu = new ToolStripMenuItem("Icon type") {
523520
DropDownItems = {
524521
new ToolStripMenuItem("Image", null, (_, _) => { SetIconType(Enums.TrayIconMode.Image); }),
522+
new ToolStripMenuItem("Memory usage (Bar)", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryUsageBar); }),
523+
new ToolStripMenuItem("Memory usage (Pie)", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryUsagePie); }),
525524
new ToolStripMenuItem("Memory usage (%)", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryUsagePercent); }),
525+
new ToolStripMenuItem("Memory usage (Value)", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryUsageValue); }),
526526
new ToolStripMenuItem("Memory available", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryAvailable); }),
527-
new ToolStripMenuItem("Memory usage", null, (_, _) => { SetIconType(Enums.TrayIconMode.MemoryUsageValue); }),
528527
}
529528
};
530529
iconTypeMenu.DropDown.Closing += OnContextMenuStripClosing;

TrayRAMBooster/TrayRAMBooster.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@
5959
<Content Include="FodyWeavers.xml" />
6060
</ItemGroup>
6161
<ItemGroup>
62-
<PackageReference Include="sergiye.Common" Version="1.*" />
63-
<PackageReference Include="sergiye.Common.UI" Version="1.*" />
62+
<PackageReference Include="SergiyE.Common" Version="1.*" />
63+
<PackageReference Include="SergiyE.Common.UI" Version="1.*" />
6464
<PackageReference Include="Costura.Fody" Version="4.1.0" PrivateAssets="all" />
6565
<PackageReference Include="Fody">
6666
<Version>6.9.2</Version>

0 commit comments

Comments
 (0)