Skip to content

Commit

Permalink
Workspace
Browse files Browse the repository at this point in the history
  • Loading branch information
flyingpie committed Apr 18, 2024
1 parent 74c3d3f commit ed5baf1
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
19 changes: 19 additions & 0 deletions src/10-Core/Wtq.Core/Configuration/TaskBarIconVisibility.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
namespace Wtq.Core.Configuration;

public enum TaskBarIconVisibility
{
/// <summary>
/// Never show the task bar icon.
/// </summary>
AlwaysHidden,

/// <summary>
/// Always show the task bar icon (note that this can look a bit weird when the app is toggled off).
/// </summary>
AlwaysVisible,

/// <summary>
/// Only show the task bar icon when the app is toggled on.
/// </summary>
WhenAppVisible,
}
7 changes: 7 additions & 0 deletions src/10-Core/Wtq.Core/Configuration/WtqAppOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,13 @@ public class WtqAppOptions
/// </summary>
public int? Opacity { get; set; }

/// <summary>
/// <para>When to show the terminal window icon on the taskbar.</para>
/// <para>"AlwaysHidden", "AlwaysVisible" or "WhenTerminalVisible".</para>
/// <para>Defaults to "AlwaysHidden".</para>
/// </summary>
public TaskBarIconVisibility? TaskbarIconVisibility { get; set; }

#region Sizes

public HorizontalAlign? HorizontalAlign { get; set; }
Expand Down
14 changes: 14 additions & 0 deletions src/10-Core/Wtq.Core/Configuration/WtqOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,20 @@ public int GetOpacityForApp(WtqAppOptions opts)
return opts.Opacity ?? Opacity;
}

/// <summary>
/// <para>When to show the terminal window icon on the taskbar.</para>
/// <para>"AlwaysHidden", "AlwaysVisible" or "WhenTerminalVisible".</para>
/// <para>Defaults to "AlwaysHidden".</para>
/// </summary>
public TaskBarIconVisibility TaskBarIconVisibility { get; set; } = TaskBarIconVisibility.AlwaysHidden;

public TaskBarIconVisibility GetTaskbarIconVisibilityForApp(WtqAppOptions opts)
{
Guard.Against.Null(opts);

return opts.TaskbarIconVisibility ?? TaskBarIconVisibility;
}

#region Sizes

public HorizontalAlign HorizontalAlign { get; set; } = HorizontalAlign.Center;
Expand Down
5 changes: 4 additions & 1 deletion src/10-Core/Wtq.Core/Services/WtqApp.cs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,10 @@ public async Task AttachAsync(Process process)
Process = process;

// TODO: Configurable.
_procService.SetTaskbarIconVisibility(process, false);
if (_opts.CurrentValue.GetTaskbarIconVisibilityForApp(Options) == TaskBarIconVisibility.AlwaysHidden)
{
_procService.SetTaskbarIconVisibility(process, false);
}

await CloseAsync(ToggleModifiers.Instant).ConfigureAwait(false);

Expand Down

0 comments on commit ed5baf1

Please sign in to comment.