From: <nic...@us...> - 2014-05-12 14:52:45
|
Revision: 4804 http://sourceforge.net/p/mp-plugins/code/4804 Author: nicsergio Date: 2014-05-12 14:52:42 +0000 (Mon, 12 May 2014) Log Message: ----------- Modified Paths: -------------- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-05-12 08:46:12 UTC (rev 4803) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-05-12 14:52:42 UTC (rev 4804) @@ -81,7 +81,7 @@ #endregion #region Metodi Pubblici - public bool Go() { return Go(null); } //Visualizzazione finestra del collegamento (senza log) + public bool Go() { return Go(null); } //Visualizzazione finestra del collegamento (senza delegato per log) public bool Go(LogEventHandler Log) //Visualizzazione finestra del collegamento { if (_caption.Length > 0 && Log != null) @@ -138,7 +138,7 @@ return false; //--> comando non completato } } - public bool GoPrevious() { return GoPrevious(null); } //Ritorno alla finestra precedente (senza log) + public bool GoPrevious() { return GoPrevious(null); } //Ritorno alla finestra precedente (senza delegato per log) public bool GoPrevious(LogEventHandler Log) //Ritorno alla finestra precedente { if (_caption.Length > 0 && Log != null) @@ -304,7 +304,7 @@ #endregion #region Metodi Pubblici - public bool Go() { return Go(null); } //Visualizzazione finestra del collegamento (senza log) + public bool Go() { return Go(null); } //Visualizzazione finestra del collegamento (senza delegato per log) public bool Go(LogEventHandler Log) //Visualizzazione finestra del collegamento { if (_caption.Length > 0 && Log != null) @@ -313,7 +313,7 @@ Play(); //--> eventuale effetto sonoro return _destination.Go(Log); //--> visualizzazione finestra di destinazione } - public bool GoPrevious() { return GoPrevious(null); } //Ritorno alla finestra precedente (senza log) + public bool GoPrevious() { return GoPrevious(null); } //Ritorno alla finestra precedente (senza delegato per log) public bool GoPrevious(LogEventHandler Log) //Ritorno alla finestra precedente { if (_caption.Length > 0 && Log != null) @@ -387,6 +387,35 @@ public class SkinNavigator //Sotto-classe di gestione Skin Navigator { #region Classi + public class GeneralSettings //Sotto-classe di gestione impostazioni generali Skin Navigator + { + #region Dati + private string _menuHeader; //Titolo menu di navigazione + private bool _showSeparator; //Visualizzazione separatore gruppi di destinazioni + private string _separator; //Eventuale separatore da visualizzare + private bool _showNumbers; //Visualizzazione numeri cossispondenti a voci menu (per accesso da telecomando) + private bool _removeDuplicates; //Rimozione destinazioni duplicate + #endregion + + #region Costruttore + public GeneralSettings() //Costruttore classe GeneralSettings + { + _menuHeader = "Skin Navigator"; //--> titolo menu di navigazione + _showSeparator = true; //--> visualizzazione separatore attiva + _separator = "-- -- -- -- -- --"; //--> separatore da visualizzare + _showNumbers = true; //--> visualizzazione numeri cossispondenti a voci menu + _removeDuplicates = true; //--> rimozione di destinazioni duplicate + } + #endregion + + #region Proprietà + public string MenuHeader { get { return this._menuHeader; } set { this._menuHeader = value; } } + public bool ShowSeparator { get { return this._showSeparator; } set { this._showSeparator = value; } } + public string Separator { get { return this._separator; } set { this._separator = value; } } + public bool ShowNumbers { get { return this._showNumbers; } set { this._showNumbers = value; } } + public bool RemoveDuplicates { get { return this._removeDuplicates; } set { this._removeDuplicates = value; } } + #endregion + } public class Item //Sotto-classe elemento per navigazione { #region Classi @@ -415,7 +444,7 @@ #endregion } public class Destination : WindowLink //Sotto-classe destinazione di navigazione - { + { #region Dati private bool _force; //Forzatura destinazione #endregion @@ -463,55 +492,25 @@ #endregion #region Dati - private string _menuHeader; //Titolo menu di navigazione - private bool _showSeparator; //Visualizzazione separatore gruppi di destinazioni - private string _separator; //Eventuale separatore da visualizzare - private bool _showNumbers; //Visualizzazione numeri cossispondenti a voci menu (per accesso da telecomando) - private bool _removeDuplicates; //Rimozione destinazioni duplicate + private GeneralSettings _general; //Impostazioni generali private BindingList<Item> _items; //Lista (con associazione dati) elementi di navigazione + private readonly LogEventHandler Log; #endregion #region Costruttore - public SkinNavigator() //Costruttore classe NavigatorSettings + public SkinNavigator() : this(null) { } //Costruttore classe SkinNavigator (senza delegato per log) + public SkinNavigator(LogEventHandler LogHandler) //Costruttore classe SkinNavigator { - _menuHeader = "Skin Navigator"; //--> titolo menu di navigazione - _showSeparator = true; //--> visualizzazione separatore attiva - _separator = "-- -- -- -- -- --"; //--> separatore da visualizzare - _removeDuplicates = true; //--> rimozione di destinazioni duplicate - _items = new BindingList<Item>(); //--> istanziazione lista elementi di navigazione - - - - Item iii1 = new Item(); - Item.Destination ddd1 = new Item.Destination(); - iii1.Caption = "www"; - ddd1.Caption = "Home"; - ddd1.WindowID = 35; - iii1.Destinations.Add(ddd1); - Item.Destination ddd2 = new Item.Destination(); - ddd2.Caption = "Movie"; - ddd2.WindowID =96742; - iii1.Destinations.Add(ddd2); - _items.Add(iii1); - - Item.Window www = new Item.Window(); - www.WindowID = 1; - Item iii2 = new Item(); - iii2.Caption = "www"; - iii2.Windows.Add(www); - Item.Destination ddd3 = new Item.Destination(); - ddd3.Caption = "Music"; - ddd3.WindowID = 501; - iii2.Destinations.Add(ddd3); - _items.Add(iii2); - - - + _general = new GeneralSettings(); //--> istanziazione impostazioni generali + _items = new BindingList<Item>(); //--> istanziazione lista elementi di navigazione + Log = LogHandler; //--> assegnazione eventuale delegato per operazioni di log } #endregion #region Metodi Pubblici - public WindowLink Go(LogEventHandler Log) //Gestione finestra di dialogo e navigazione alla destinazione selezionata + + + public WindowLink Go() //Gestione finestra di dialogo e navigazione alla destinazione selezionata { if (Log != null) Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "Request Skin Navigator dialog menu")); @@ -521,8 +520,8 @@ int actWindowID = (int)GUIWindowManager.ActiveWindow; //--> id finestra attuale GUIDialogMenu dlgMenu = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); dlgMenu.Reset(); - dlgMenu.SetHeading(_menuHeader); //--> titolo menu - dlgMenu.ShowQuickNumbers = _showNumbers; + dlgMenu.SetHeading(_general.MenuHeader); //--> titolo menu + dlgMenu.ShowQuickNumbers = _general.ShowNumbers; //--> visualizzazione numeri voci List<WindowLink> dlgLinks = new List<WindowLink>(); //--> lista links corrispondenti agli elementi di menu foreach (Item item in _items) //Iterazione per valutazione elementi di navigazione impostati @@ -532,11 +531,11 @@ bool first = true; foreach (Item.Destination dst in item.Destinations) //Iterazione di aggiunta destinazioni { - if ((dlgLinks.Find(x => x.WindowID == dst.WindowID && x.LoadParameter == dst.LoadParameter) == null || !_removeDuplicates) && (dst.WindowID != actWindowID || dst.Force)) + if ((dlgLinks.Find(x => x.WindowID == dst.WindowID && x.LoadParameter == dst.LoadParameter) == null || !_general.RemoveDuplicates) && (dst.WindowID != actWindowID || dst.Force)) { //Controllo destinazione duplicata o corrispondente a finestra attuale - if (_showSeparator && first && dlgLinks.Count > 0) //Eventuale inserzione separatore destinazioni + if (_general.ShowSeparator && first && dlgLinks.Count > 0) //Eventuale inserzione separatore destinazioni { - dlgMenu.Add(_separator); + dlgMenu.Add(_general.Separator); dlgLinks.Add(null); } dlgMenu.Add(dst.Caption); //--> aggiunta voce di menu @@ -574,11 +573,7 @@ #endregion #region Proprietà - public string MenuHeader { get { return this._menuHeader; } set { this._menuHeader = value; } } - public bool ShowSeparator { get { return this._showSeparator; } set { this._showSeparator = value; } } - public string Separator { get { return this._separator; } set { this._separator = value; } } - public bool ShowNumbers { get { return this._showNumbers; } set { this._showNumbers = value; } } - public bool RemoveDuplicates { get { return this._removeDuplicates; } set { this._removeDuplicates = value; } } + public GeneralSettings General { get { return this._general; } } public BindingList<Item> Items { get { return this._items; } } #endregion } @@ -599,7 +594,7 @@ SettingsFile = settingsFile; //--> percorso & nome file delle impostazioni _general = new GeneralSettings(); //--> istanziazione impostazioni generali _items = new BindingList<ShortCut>(); //--> istanziazione lista shortcuts - _navigator = new SkinNavigator(); //--> istanziazione Skin Navigator + _navigator = new SkinNavigator(Log); //--> istanziazione Skin Navigator _initialized = false; //--> reset classe inizializzata lastDestination = new WindowLink(); //--> istanziazione ultima destinazione attivata dal plugin @@ -867,7 +862,7 @@ if (sc != null) //Se combinazione di tasti corrispondente a Skin Navigator { sc.Play(); //--> eventuale effetto sonoro - lastDestination.GetData(Navigator.Go(Log)); //--> gestione navigazione alla destinazione selezionata (ed eventuale memorizzazione) + lastDestination.GetData(Navigator.Go()); //--> gestione navigazione alla destinazione selezionata (ed eventuale memorizzazione) } else //Shortcuts normali if (scList.Count == 1) //Shortcut a destinazione singola This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |