/* * This file is part of the libCEC(R) library. * * libCEC(R) is Copyright (C) 2011-2013 Pulse-Eight Limited. All rights reserved. * libCEC(R) is an original work, containing original code. * * libCEC(R) is a trademark of Pulse-Eight Limited. * * This program is dual-licensed; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * * * Alternatively, you can license this library under a commercial license, * please contact Pulse-Eight Licensing for more information. * * For more information contact: * Pulse-Eight Licensing * http://www.pulse-eight.com/ * http://www.pulse-eight.net/ */ using System; using System.Windows.Forms; using CecSharp; using LibCECTray.controller.applications; namespace LibCECTray.ui { /// /// Form that implements IAsyncControls /// class AsyncForm : Form, IAsyncControls { /// /// Changes the ShowInTaskbar value /// /// True to show, false to hide public void SetShowInTaskbar(bool val) { if (InvokeRequired) { SetShowInTaskbarCallback d = SetShowInTaskbar; try { Invoke(d, new object[] { val }); } catch (Exception) { } } else { ShowInTaskbar = val; } } private delegate void SetShowInTaskbarCallback(bool val); /// /// Enable or disable a control /// /// The control to change /// True to enable, false to disable public void SetControlEnabled(Control control, bool val) { AsyncControls.SetControlEnabled(this, control, val); } /// /// Change the text label of a control /// /// The control to change /// The new text public void SetControlText(Control control, string val) { AsyncControls.SetControlText(this, control, val); } /// /// Changes the toolstrip menu text /// /// The toolstrip menu item to change /// The new value public void SetToolStripMenuText(ToolStripMenuItem item, string val) { AsyncControls.SetToolStripMenuText(this, item, val); } /// /// Change the checked status of a checkbox /// /// The control to change /// True to change to checked, false to change to unchecked public void SetCheckboxChecked(CheckBox control, bool val) { AsyncControls.SetCheckboxChecked(this, control, val); } /// /// Change the checked status of an item in a CheckedListBox /// /// 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 void SetCheckboxItemChecked(CheckedListBox control, int index, bool val) { AsyncControls.SetCheckboxItemChecked(this, control, index, val); } /// /// Changes the progress value of a progress bar /// /// The control to change /// The new percentage public void SetProgressValue(ProgressBar control, int val) { AsyncControls.SetProgressValue(this, control, val); } /// /// Replaces the items of a combobox /// /// The control to change /// The new selection index /// The new content public void SetComboBoxItems(ComboBox control, int selectedIndex, object[] val) { AsyncControls.SetComboBoxItems(this, control, selectedIndex, val); } /// /// Make a control visible or invisible /// /// The control to change /// True to make it visible, false to make it invisible public void SetControlVisible(Control control, bool val) { AsyncControls.SetControlVisible(this, control, val); } /// /// Display a new dialog /// /// The control to display /// True to make it a modal dialog public void DisplayDialog(Form control, bool modal) { AsyncControls.DisplayDialog(this, control, modal); } /// /// Hides a control /// /// True to hide, false to show public void SafeHide(bool val) { AsyncControls.SafeHide(this, val); } /// /// Change the selected index /// /// The control to change /// The new selected index public void SetSelectedIndex(ComboBox control, int index) { AsyncControls.SetSelectedIndex(this, control, index); } /// /// Get the name of the selected tab in a TabControl /// /// The tab container /// The tab pages /// The name of the selected tab public string GetSelectedTabName(TabControl container, TabControl.TabPageCollection tabPages) { return AsyncControls.GetSelectedTabName(container, tabPages); } /// /// Selects the row with the given CecKeypress for a datagrid /// /// The datagrid container /// The datagrid /// The key to selected public void SelectKeypressRow(Control container, DataGridView dgView, CecKeypress key) { AsyncControls.SelectKeypressRow(container, dgView, key); } } /// /// TabPage that implements IAsyncControls /// class AsyncTabPage : TabPage, IAsyncControls { /// /// Enable or disable a control /// /// The control to change /// True to enable, false to disable public void SetControlEnabled(Control control, bool val) { AsyncControls.SetControlEnabled(this, control, val); } /// /// Change the text label of a control /// /// The control to change /// The new text public void SetControlText(Control control, string val) { AsyncControls.SetControlText(this, control, val); } /// /// Changes the toolstrip menu text /// /// The toolstrip menu item to change /// The new value public void SetToolStripMenuText(ToolStripMenuItem item, string val) { AsyncControls.SetToolStripMenuText(this, item, val); } /// /// Change the checked status of a checkbox /// /// The control to change /// True to change to checked, false to change to unchecked public void SetCheckboxChecked(CheckBox control, bool val) { AsyncControls.SetCheckboxChecked(this, control, val); } /// /// Change the checked status of an item in a CheckedListBox /// /// 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 void SetCheckboxItemChecked(CheckedListBox control, int index, bool val) { AsyncControls.SetCheckboxItemChecked(this, control, index, val); } /// /// Changes the progress value of a progress bar /// /// The control to change /// The new percentage public void SetProgressValue(ProgressBar control, int val) { AsyncControls.SetProgressValue(this, control, val); } /// /// Replaces the items of a combobox /// /// The control to change /// The new selection index /// The new content public void SetComboBoxItems(ComboBox control, int selectedIndex, object[] val) { AsyncControls.SetComboBoxItems(this, control, selectedIndex, val); } /// /// Make a control visible or invisible /// /// The control to change /// True to make it visible, false to make it invisible public void SetControlVisible(Control control, bool val) { AsyncControls.SetControlVisible(this, control, val); } /// /// Display a new dialog /// /// The control to display /// True to make it a modal dialog public void DisplayDialog(Form control, bool modal) { AsyncControls.DisplayDialog(this, control, modal); } /// /// Hides a control /// /// True to hide, false to show public void SafeHide(bool val) { AsyncControls.SafeHide(this, val); } /// /// Change the selected index /// /// The control to change /// The new selected index public void SetSelectedIndex(ComboBox control, int index) { AsyncControls.SetSelectedIndex(this, control, index); } /// /// Get the name of the selected tab in a TabControl /// /// The tab container /// The tab pages /// The name of the selected tab public string GetSelectedTabName(TabControl container, TabControl.TabPageCollection tabPages) { return AsyncControls.GetSelectedTabName(container, tabPages); } /// /// Selects the row with the given CecKeypress for a datagrid /// /// The datagrid container /// The datagrid /// The key to selected public void SelectKeypressRow(Control container, DataGridView dgView, CecKeypress key) { AsyncControls.SelectKeypressRow(container, dgView, key); } } }