mirror of
https://github.com/ayufan/steam-deck-tools.git
synced 2026-04-21 06:03:52 +00:00
PowerControl: Update usage of ContextMenu to use events
This commit is contained in:
parent
b67a961f8e
commit
29e373d169
5 changed files with 26 additions and 49 deletions
|
|
@ -59,7 +59,7 @@ namespace PowerControl
|
|||
|
||||
rootMenu.Visible = false;
|
||||
rootMenu.Update();
|
||||
rootMenu.CreateMenu(contextMenu.Items);
|
||||
rootMenu.CreateMenu(contextMenu);
|
||||
rootMenu.VisibleChanged += delegate { updateOSD(); };
|
||||
contextMenu.Items.Add(new ToolStripSeparator());
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace PowerControl.Menu
|
|||
|
||||
public abstract string Render(MenuItem? selected);
|
||||
|
||||
public abstract void CreateMenu(ToolStripItemCollection collection);
|
||||
public abstract void CreateMenu(System.Windows.Forms.ContextMenuStrip contextMenu);
|
||||
public abstract void Update();
|
||||
public abstract void Reset();
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,23 @@ namespace PowerControl.Menu
|
|||
|
||||
onApply();
|
||||
};
|
||||
|
||||
toolStripItem.DropDownOpening += delegate
|
||||
{
|
||||
toolStripItem.DropDownItems.Clear();
|
||||
|
||||
foreach (var option in Options)
|
||||
{
|
||||
var item = new ToolStripMenuItem(option.ToString());
|
||||
item.Checked = Object.Equals(option, SelectedOption ?? ActiveOption);
|
||||
item.Click += delegate
|
||||
{
|
||||
SelectedOption = option;
|
||||
onApply();
|
||||
};
|
||||
toolStripItem.DropDownItems.Add(item);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public override void Reset()
|
||||
|
|
@ -62,20 +79,13 @@ namespace PowerControl.Menu
|
|||
{
|
||||
var result = OptionsValues();
|
||||
if (result != null)
|
||||
{
|
||||
Options = result.ToList();
|
||||
updateOptions();
|
||||
}
|
||||
else
|
||||
{
|
||||
Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (ActiveOption == null && Options.Count > 0)
|
||||
ActiveOption = Options.First();
|
||||
|
||||
onUpdateToolStrip();
|
||||
}
|
||||
|
||||
private void scheduleApply()
|
||||
|
|
@ -108,46 +118,13 @@ namespace PowerControl.Menu
|
|||
ActiveOption = SelectedOption;
|
||||
|
||||
SelectedOption = null;
|
||||
|
||||
onUpdateToolStrip();
|
||||
}
|
||||
|
||||
private void onUpdateToolStrip()
|
||||
{
|
||||
if (toolStripItem == null)
|
||||
return;
|
||||
|
||||
foreach (ToolStripMenuItem item in toolStripItem.DropDownItems)
|
||||
item.Checked = Object.Equals(item.Tag, SelectedOption ?? ActiveOption);
|
||||
|
||||
toolStripItem.Visible = Visible && Options.Count > 0;
|
||||
}
|
||||
|
||||
private void updateOptions()
|
||||
{
|
||||
if (toolStripItem == null)
|
||||
return;
|
||||
|
||||
toolStripItem.DropDownItems.Clear();
|
||||
|
||||
foreach (var option in Options)
|
||||
{
|
||||
var optionItem = new ToolStripMenuItem(option.ToString());
|
||||
optionItem.Tag = option;
|
||||
optionItem.Click += delegate (object? sender, EventArgs e)
|
||||
{
|
||||
SelectedOption = option;
|
||||
onApply();
|
||||
};
|
||||
toolStripItem.DropDownItems.Add(optionItem);
|
||||
}
|
||||
}
|
||||
|
||||
public override void CreateMenu(ToolStripItemCollection collection)
|
||||
public override void CreateMenu(System.Windows.Forms.ContextMenuStrip contextMenu)
|
||||
{
|
||||
toolStripItem.Text = Name;
|
||||
updateOptions();
|
||||
collection.Add(toolStripItem);
|
||||
contextMenu.Items.Add(toolStripItem);
|
||||
contextMenu.Opening += delegate { toolStripItem.Visible = Visible && Options.Count > 0; };
|
||||
}
|
||||
|
||||
private void SelectIndex(int index)
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@ namespace PowerControl.Menu
|
|||
}
|
||||
}
|
||||
|
||||
public override void CreateMenu(ToolStripItemCollection collection)
|
||||
public override void CreateMenu(System.Windows.Forms.ContextMenuStrip contextMenu)
|
||||
{
|
||||
foreach (var item in Items)
|
||||
item.CreateMenu(collection);
|
||||
item.CreateMenu(contextMenu);
|
||||
}
|
||||
|
||||
public override void Update()
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@ namespace PowerControl.Menu
|
|||
Selectable = false;
|
||||
}
|
||||
|
||||
public override void CreateMenu(ToolStripItemCollection collection)
|
||||
public override void CreateMenu(System.Windows.Forms.ContextMenuStrip contextMenu)
|
||||
{
|
||||
collection.Add(toolStripItem);
|
||||
contextMenu.Items.Add(toolStripItem);
|
||||
}
|
||||
|
||||
public override string Render(MenuItem? selected)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue