Files
controlmymonitormanagement/Library/ViewModel/MonitorConfig.cs
Dave Friedel 2a3a502567 Add port config, quick-switch toolbar, and dark mode styling
- Add Config button to each monitor for hiding ports, custom labels, and quick-switch selection
- Add quick-switch toolbar at top of popup for one-click input switching
- Add dark mode styling for all controls (buttons, combobox, dropdown items)
- Add loading spinner animation
- Add Exit button in header
- Fix dropdown selection to correctly show current input

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 00:25:01 -05:00

45 lines
1.2 KiB
C#

namespace CMM.Library.ViewModel;
/// <summary>
/// Configuration for a single monitor's ports
/// </summary>
public class MonitorConfig
{
public string SerialNumber { get; set; } = string.Empty;
public string MonitorName { get; set; } = string.Empty;
public List<PortConfig> Ports { get; set; } = new();
}
/// <summary>
/// Configuration for a single input port
/// </summary>
public class PortConfig
{
public int VcpValue { get; set; }
public string DefaultName { get; set; } = string.Empty;
public string CustomLabel { get; set; } = string.Empty;
public bool IsHidden { get; set; }
public bool ShowInQuickSwitch { get; set; }
public string DisplayName => string.IsNullOrWhiteSpace(CustomLabel) ? DefaultName : CustomLabel;
}
/// <summary>
/// Quick switch item shown in toolbar
/// </summary>
public class QuickSwitchItem
{
public string MonitorSerialNumber { get; set; } = string.Empty;
public string MonitorName { get; set; } = string.Empty;
public int PortVcpValue { get; set; }
public string PortLabel { get; set; } = string.Empty;
}
/// <summary>
/// Root configuration object
/// </summary>
public class AppConfig
{
public List<MonitorConfig> Monitors { get; set; } = new();
}