From: <nic...@us...> - 2014-06-15 17:41:50
|
Revision: 4837 http://sourceforge.net/p/mp-plugins/code/4837 Author: nicsergio Date: 2014-06-15 17:41:39 +0000 (Sun, 15 Jun 2014) Log Message: ----------- Modified Paths: -------------- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/NavigatorDialog.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/NavigatorDialog.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/NavigatorDialog.cs 2014-06-14 21:34:40 UTC (rev 4836) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/NavigatorDialog.cs 2014-06-15 17:41:39 UTC (rev 4837) @@ -1,10 +1,10 @@ -using System.Drawing; +using System; +using System.Drawing; using System.Reflection; using MediaPortal.Dialogs; using MediaPortal.ExtensionMethods; using MediaPortal.GUI.Library; using My.Common; -using System; using Action = MediaPortal.GUI.Library.Action; namespace ShortCuter.Plugin @@ -27,19 +27,11 @@ private void UpdateSelectedListIcon() //Aggiornamento icona elemento della lista selezionato { if (!_panelView && listView.SelectedListItem != null && selectedListIcon != null) - selectedListIcon.SetFileName(listView.SelectedListItem.IconImageBig); //--> impostazione icona elemento della lista selezionato + if (btnClose != null && btnClose.IsFocused) + selectedListIcon.SetFileName(""); //--> nessuna icona se posizionati sul pulsante di chiusura + else + selectedListIcon.SetFileName(listView.SelectedListItem.IconImageBig); //--> impostazione icona elemento della lista selezionato } - private void SetDefaultControl(int controlId) //Impostazione ID controllo grafico con posizione predefinita - { - this._defaultControlId=controlId; - if (btnClose != null) //--> impostazione navigazione dal pulsante di chiusura - { - btnClose.NavigateUp = controlId; - btnClose.NavigateDown = controlId; - btnClose.NavigateLeft = controlId; - btnClose.NavigateRight = controlId; - } - } #endregion #region Metodi Pubblici @@ -51,17 +43,41 @@ { return Tools.MyAssembly.Title; //--> ritorno del titolo dell'assembly } + protected override void OnWindowLoaded() //Override metodo OnWindowLoaded + { + base.OnWindowLoaded(); + try { _defaultControlId = (_panelView ? panelView.GetID : listView.GetID); } //--> impostazione controllo con fuoco all'avvio a seconda del tipo di visualizzazione + catch { } + } + public override bool OnMessage(GUIMessage message) //Override metodo OnMessage + { + int selectedIndex = selectedItemIndex; + bool rtn = base.OnMessage(message); + + if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT && _panelView && panelView != null) + { + panelView.Clear(); + for (int i = 0; i < listItems.Count; i++) + panelView.Add((GUIListItem)listItems[i]); //--> aggiunta elementi nel pannello + if (selectedIndex >= 0) + OnMessage(new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECT, GetID, 0, panelView.GetID, selectedIndex, 0, null)); + } + + UpdateSelectedListIcon(); //--> aggiornamento icona elemento della lista selezionato + return rtn; + } protected override void OnPageLoad() //Override metodo OnPageLoad { base.OnPageLoad(); - base.lblHeading2.Label = Tools.MyAssembly.Title; //--> forzatura label "Menu" + lblHeading2.Label = Tools.MyAssembly.Title; //--> forzatura label "Menu" + int navControlId = 0; if (!_panelView) //Visualizzazione a lista { if (listView != null) { GUIControl.ShowControl(GetID, listView.GetID); //--> controllo lista visualizzato - SetDefaultControl(listView.GetID); //--> lista: controllo predefinito + navControlId = listView.GetID; //--> lista: controllo per navigazione } if (selectedListIcon != null) { @@ -76,47 +92,31 @@ if (panelView != null) { GUIControl.ShowControl(GetID, panelView.GetID); //--> controllo pannello icone visualizzato - SetDefaultControl(panelView.GetID); //--> pannello: controllo predefinito + navControlId = panelView.GetID; //--> pannello: controllo per navigazione } if (listView != null) GUIControl.HideControl(GetID, listView.GetID); //--> controllo lista nascosto if (selectedListIcon != null) GUIControl.HideControl(GetID, selectedListIcon.GetID); //--> controllo icona elemento lista selezionato nascosto } + if (btnClose != null && navControlId > 0) //--> impostazione navigazione dal pulsante di chiusura + { + btnClose.NavigateUp = navControlId; + btnClose.NavigateDown = navControlId; + btnClose.NavigateLeft = navControlId; + btnClose.NavigateRight = navControlId; + } - try + if (logo != null) { - if (logo != null) + try { logo.MemoryImage = Image.FromStream(Assembly.GetExecutingAssembly().GetManifestResourceStream("ShortCuter.Resources.Images.SkinNavigator.png")); logo.SetFileName("[ShortCuter:NavigatorLogo]"); //--> impostazione immagine logo Skin Navigator } + catch { } } - catch { } } - public override void Dispose() //Override metodo Dispose - { - selectedListIcon.SafeDispose(); - panelView.SafeDispose(); - logo.SafeDispose(); - base.Dispose(); - } - public override bool OnMessage(GUIMessage message) //Override metodo OnMessage - { - this._defaultControlId = 11; - int selectedIndex = selectedItemIndex; - bool rtn = base.OnMessage(message); - if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT && _panelView && panelView != null) - { - panelView.Clear(); - for (int i = 0; i < listItems.Count; i++) - panelView.Add((GUIListItem)listItems[i]); //--> aggiunta elementi nel pannello - if (selectedIndex >= 0) - OnMessage(new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECT, GetID, 0, panelView.GetID, selectedIndex, 0, null)); - } - UpdateSelectedListIcon(); //--> aggiornamento icona elemento della lista selezionato - return rtn; - } protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType) { //Override metodo OnClicked base.OnClicked(controlId, control, actionType); @@ -156,6 +156,13 @@ else base.selectOption(keySelected); //--> altrimenti selezione elemento lista } + public override void Dispose() //Override metodo Dispose + { + selectedListIcon.SafeDispose(); + panelView.SafeDispose(); + logo.SafeDispose(); + base.Dispose(); + } #endregion #region Proprietà Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs 2014-06-14 21:34:40 UTC (rev 4836) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Plugin/ShortCuter.cs 2014-06-15 17:41:39 UTC (rev 4837) @@ -76,7 +76,7 @@ { return Tools.MyAssembly.Title; } - public override int GetID { get { return NavigatorDialog.DialogWindowID + 1; } } //--> id finestra (deve avere un valore >0 e diverso da NavigatorDialog) + public override int GetID { get { return (NavigatorDialog.DialogWindowID + 1); } } //--> id finestra (deve avere un valore >0 e diverso da NavigatorDialog) #endregion #region Metodi Privati Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-06-14 21:34:40 UTC (rev 4836) +++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuts.cs 2014-06-15 17:41:39 UTC (rev 4837) @@ -81,7 +81,7 @@ break; } if (loadParameterChange && Log != null) - Log(this, new LogEventArgs(LogEventArgs.LogLevels.Debug, "GUIProperties replaced, LoadParameter=[" + loadParameter + "]")); + Log(this, new LogEventArgs(LogEventArgs.LogLevels.Debug, string.Format("GUIProperties replaced, LoadParameter=[{0}]", loadParameter))); GUIWindowManager.ActivateWindow(_windowID, loadParameter, true); //--> richiamo schermata con parametri di caricamento } @@ -148,7 +148,7 @@ } public override string ToString() //Override metodo ToString per stampare le proprietà del link { - return ((_caption.Length > 0) ? "Link " + _caption + " " : "") + "--> WindowID=" + _windowID.ToString() + ((_loadParameter.Length > 0) ? " LoadParameter=[" + _loadParameter + "]" : ""); + return ((_caption.Length > 0) ? "Link \"" + _caption + "\" " : "") + "--> WindowID=" + _windowID.ToString() + ((_loadParameter.Length > 0) ? " LoadParameter=[" + _loadParameter + "]" : ""); } #endregion @@ -463,13 +463,15 @@ { GUIDialogMenu dlg; - if (_general.DialogType != DialogTypes.DefaultDialog && (File.Exists(GUIGraphicsContext.Skin + @"\" + NavigatorDialog.DialogSkinFile) || - File.Exists(GUIGraphicsContext.Theme + @"\" + NavigatorDialog.DialogSkinFile))) + bool customDialog = (_general.DialogType != DialogTypes.DefaultDialog && (File.Exists(GUIGraphicsContext.Skin + @"\" + NavigatorDialog.DialogSkinFile) || + File.Exists(GUIGraphicsContext.Theme + @"\" + NavigatorDialog.DialogSkinFile))); + if (customDialog) { //Utilizzo della finestra di dialogo personalizzata NavigatorDialog dlgMenu = (NavigatorDialog)GUIWindowManager.GetWindow(NavigatorDialog.DialogWindowID); - dlgMenu.PanelView = (_general.DialogType == DialogTypes.CustomPanel); - dlg = dlgMenu; + if (dlgMenu != null) + dlgMenu.PanelView = (_general.DialogType == DialogTypes.CustomPanel); //--> eventuale visualizzazione a pannello di icone + dlg = dlgMenu; } else { @@ -477,9 +479,19 @@ GUIDialogMenu dlgMenu = (GUIDialogMenu)GUIWindowManager.GetWindow((int)GUIWindow.Window.WINDOW_DIALOG_MENU); dlg = dlgMenu; } + + if (dlg == null) //--> finestra di dialogo non agganciata + throw new NullReferenceException(String.Format("Dialog menu window reference is null! (ID:{0})", (customDialog ? NavigatorDialog.DialogWindowID : (int)GUIWindow.Window.WINDOW_DIALOG_MENU))); + dlg.Reset(); + try { dlg.SetHeading(_general.MenuHeader); } //--> intestazione menu (+ allocazione risorse e caricamento file skin) + catch (NullReferenceException e) + { + if (!dlg.WindowLoaded) + throw new NullReferenceException(String.Format("Dialog menu skin file not loaded! (Class:{0})", dlg.ToString()), e); + else + throw; + } - dlg.Reset(); - dlg.SetHeading(_general.MenuHeader); //--> intestazione menu dlg.ShowQuickNumbers = _general.ShowNumbers; //--> visualizzazione numeri per accesso diretto foreach (Item.Destination dst in destinations) //Iterazione per popolamento lista { @@ -642,7 +654,7 @@ public WindowLink Go(LogEventHandler Log) //Gestione finestra di dialogo e navigazione alla destinazione selezionata { if (Log != null) - Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, "Request Skin Navigator dialog menu")); + Log(this, new LogEventArgs(LogEventArgs.LogLevels.Info, string.Format("Request Skin Navigator dialog menu ({0})", Enum.GetName(typeof(SkinNavigator.DialogTypes), _general.DialogType)))); try { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |