X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2FLibCecTray%2Fui%2FAsyncForm.cs;h=bba4e35d8e49d996be8a39ef6347ff56e7788eb5;hb=07224bf34475a5bcabc52d364ae7b795541346be;hp=464547bad2a57b173f633b7f61598065cdf15504;hpb=16f47961800432dbdd5b3ead717908f383d26d6b;p=deb_libcec.git
diff --git a/src/LibCecTray/ui/AsyncForm.cs b/src/LibCecTray/ui/AsyncForm.cs
index 464547b..bba4e35 100644
--- a/src/LibCecTray/ui/AsyncForm.cs
+++ b/src/LibCecTray/ui/AsyncForm.cs
@@ -37,370 +37,6 @@ using LibCECTray.controller.applications;
namespace LibCECTray.ui
{
- interface IAsyncControls
- {
- void SetControlEnabled(Control control, bool val);
- void SetControlText(Control control, string val);
- void SetToolStripMenuText(ToolStripMenuItem item, string val);
- void SetCheckboxChecked(CheckBox control, bool val);
- void SetCheckboxItemChecked(CheckedListBox control, int index, bool val);
- void SetProgressValue(ProgressBar control, int val);
- void SetComboBoxItems(ComboBox control, int selectedIndex, object[] val);
- void SetControlVisible(Control control, bool val);
- void DisplayDialog(Form control, bool modal);
- void SafeHide(bool val);
- void SetSelectedIndex(ComboBox control, int index);
- string GetSelectedTabName(TabControl container, TabControl.TabPageCollection tabPages);
- void SelectKeypressRow(Control container, DataGridView dgView, CecKeypress key);
- }
-
- ///
- /// Utility methods to change GUI content from another thread
- ///
- class AsyncControls
- {
- ///
- /// Enable or disable a control
- ///
- /// The control that contains the control to change
- /// The control to change
- /// True to enable, false to disable
- public static void SetControlEnabled(Control container, Control control, bool val)
- {
- if (container == null || control == null) return;
- if (container.InvokeRequired)
- {
- SetControlEnabledCallback d = SetControlEnabled;
- try
- {
- container.Invoke(d, new object[] { container, control, val });
- }
- catch { }
- }
- else
- {
- control.Enabled = val;
- }
- }
- private delegate void SetControlEnabledCallback(Control container, Control control, bool val);
-
- ///
- /// Change the text label of a control
- ///
- /// The control that contains the control to change
- /// The control to change
- /// The new text
- public static void SetControlText(Control container, Control control, string val)
- {
- if (container == null || control == null) return;
- if (container.InvokeRequired)
- {
- SetControlTextCallback d = SetControlText;
- try
- {
- container.Invoke(d, new object[] { container, control, val });
- }
- catch { }
- }
- else
- {
- control.Text = val;
- }
- }
- private delegate void SetControlTextCallback(Control container, Control control, string val);
-
- ///
- /// Change the checked status of a checkbox
- ///
- /// The control that contains the control to change
- /// The control to change
- /// True to change to checked, false to change to unchecked
- public static void SetCheckboxChecked(Control container, CheckBox control, bool val)
- {
- if (container.InvokeRequired)
- {
- SetCheckboxCheckedCallback d = SetCheckboxChecked;
- try
- {
- container.Invoke(d, new object[] { container, control, val });
- }
- catch { }
- }
- else
- {
- control.Checked = val;
- }
- }
- private delegate void SetCheckboxCheckedCallback(Control container, CheckBox control, bool val);
-
- ///
- /// Change the checked status of an item in a CheckedListBox
- ///
- /// The control that contains the control to change
- /// The control to change
- /// The index of the checkbox in the list to change
- /// True to change to checked, false to change to unchecked
- public static void SetCheckboxItemChecked(Control container, CheckedListBox control, int index, bool val)
- {
- if (container.InvokeRequired)
- {
- SetCheckboxItemCheckedCallback d = SetCheckboxItemChecked;
- try
- {
- container.Invoke(d, new object[] { container, control, index, val });
- }
- catch (Exception) { }
- }
- else
- {
- control.SetItemChecked(index, val);
- }
- }
- private delegate void SetCheckboxItemCheckedCallback(Control container, CheckedListBox control, int index, bool val);
-
- ///
- /// Changes the toolstrip menu text
- ///
- /// The control that contains the control to change
- /// The toolstrip menu item to change
- /// The new value
- public static void SetToolStripMenuText(Control container, ToolStripMenuItem item, string val)
- {
- if (container.InvokeRequired)
- {
- SetToolStripMenuTextCallback d = SetToolStripMenuText;
- try
- {
- container.Invoke(d, new object[] { container, item, val });
- }
- catch (Exception) { }
- }
- else
- {
- item.Text = val;
- }
- }
- private delegate void SetToolStripMenuTextCallback(Control container, ToolStripMenuItem item, string val);
-
- ///
- /// Changes the progress value of a progress bar
- ///
- /// The control that contains the control to change
- /// The control to change
- /// The new percentage
- public static void SetProgressValue(Control container, ProgressBar control, int val)
- {
- if (container.InvokeRequired)
- {
- SetProgressValueCallback d = SetProgressValue;
- try
- {
- container.Invoke(d, new object[] { container, control, val });
- }
- catch (Exception) { }
- }
- else
- {
- control.Value = val;
- }
- }
- private delegate void SetProgressValueCallback(Control container, ProgressBar control, int val);
-
- ///
- /// Replaces the items of a combobox
- ///
- /// The control that contains the control to change
- /// The control to change
- /// The new selection index
- /// The new content
- public static void SetComboBoxItems(Control container, ComboBox control, int selectedIndex, object[] val)
- {
- if (container.InvokeRequired)
- {
- SetComboBoxItemsCallback d = SetComboBoxItems;
- try
- {
- container.Invoke(d, new object[] { container, control, selectedIndex, val });
- }
- catch (Exception) { }
- }
- else
- {
- control.Items.Clear();
- control.Items.AddRange(val);
- if (control.Items.Count > 0)
- control.SelectedIndex = selectedIndex;
- }
- }
- private delegate void SetComboBoxItemsCallback(Control container, ComboBox control, int selectedIndex, object[] val);
-
- ///
- /// Make a control visible or invisible
- ///
- /// The control that contains the control to change
- /// The control to change
- /// True to make it visible, false to make it invisible
- public static void SetControlVisible(Control container, Control control, bool val)
- {
- if (container.InvokeRequired)
- {
- SetControlVisibleCallback d = SetControlVisible;
- try
- {
- container.Invoke(d, new object[] { container, control, val });
- }
- catch (Exception) { }
- }
- else
- {
- control.Visible = val;
- }
- }
- private delegate void SetControlVisibleCallback(Control container, Control control, bool val);
-
- ///
- /// Display a new dialog
- ///
- /// The control that contains the control to change
- /// The control to display
- /// True to make it a modal dialog
- public static void DisplayDialog(Control container, Form control, bool modal)
- {
- if (container.InvokeRequired)
- {
- DisplayDialogCallback d = DisplayDialog;
- try
- {
- container.Invoke(d, new object[] { container, control, modal });
- }
- catch (Exception) { }
- }
- else
- {
- if (modal)
- control.ShowDialog(container);
- else
- control.Show(container);
- }
- }
- private delegate void DisplayDialogCallback(Control container, Form control, bool modal);
-
- ///
- /// Hides a control
- ///
- /// The control to hide
- /// True to hide, false to show
- public static void SafeHide(Control container, bool val)
- {
- if (container.InvokeRequired)
- {
- SafeHideCallback d = SafeHide;
- try
- {
- container.Invoke(d, new object[] { container, val });
- }
- catch (Exception) { }
- }
- else
- {
- if (val)
- container.Hide();
- else
- container.Show();
- }
- }
- private delegate void SafeHideCallback(Control container, bool val);
-
- ///
- /// Change the selected index
- ///
- /// The control that contains the control to change
- /// The control to change
- /// The new selected index
- public static void SetSelectedIndex(Control container, ComboBox control, int index)
- {
- if (container.InvokeRequired)
- {
- SetSelectedIndexCallback d = SetSelectedIndex;
- try
- {
- container.Invoke(d, new object[] { container, control, index });
- }
- catch (Exception) { }
- }
- else
- {
- control.SelectedIndex = index;
- }
- }
- private delegate void SetSelectedIndexCallback(Control container, ComboBox control, int index);
-
- ///
- /// Get the name of the selected tab in a TabControl
- ///
- /// The tab container
- /// The tab pages
- /// The name of the selected tab
- public static string GetSelectedTabName(TabControl container, TabControl.TabPageCollection tabPages)
- {
- if (container.InvokeRequired)
- {
- GetSelectedTabNameCallback d = GetSelectedTabName;
- try
- {
- return container.Invoke(d, new object[] { container, tabPages }) as string;
- }
- catch (Exception) { }
- }
- else
- {
- return tabPages[container.SelectedIndex].Name;
- }
- return string.Empty;
- }
- private delegate string GetSelectedTabNameCallback(TabControl container, TabControl.TabPageCollection tabPages);
-
- ///
- /// Selects the row with the given CecKeypress for a datagrid
- ///
- /// The datagrid container
- /// The datagrid
- /// The key to selected
- public static void SelectKeypressRow(Control container, DataGridView dgView, CecKeypress key)
- {
- if (dgView.InvokeRequired)
- {
- SelectKeypressRowCallback d = SelectKeypressRow;
- try
- {
- container.Invoke(d, new object[] { container, dgView, key });
- }
- catch (Exception) { }
- }
- else
- {
- var rowIndex = -1;
- foreach (DataGridViewRow row in dgView.Rows)
- {
- CecButtonConfigItem item = row.DataBoundItem as CecButtonConfigItem;
- if (item != null && item.Key.Keycode == key.Keycode)
- {
- rowIndex = row.Index;
- row.Selected = true;
- item.Enabled = true;
- }
- else
- {
- row.Selected = false;
- }
- }
- if (rowIndex > -1)
- dgView.FirstDisplayedScrollingRowIndex = rowIndex;
- }
- }
- private delegate void SelectKeypressRowCallback(Control container, DataGridView dgView, CecKeypress key);
- }
-
///
/// Form that implements IAsyncControls
///