From: <nic...@us...> - 2013-11-07 20:26:06
|
Revision: 4671 http://sourceforge.net/p/mp-plugins/code/4671 Author: nicsergio Date: 2013-11-07 20:26:03 +0000 (Thu, 07 Nov 2013) Log Message: ----------- Modified Paths: -------------- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.Designer.cs trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.cs trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/Menu.cs trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj Modified: trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.Designer.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.Designer.cs 2013-11-07 16:35:13 UTC (rev 4670) +++ trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.Designer.cs 2013-11-07 20:26:03 UTC (rev 4671) @@ -312,7 +312,7 @@ this.multiImageComboBox.FormattingEnabled = true; this.multiImageComboBox.Location = new System.Drawing.Point(98, 42); this.multiImageComboBox.Name = "multiImageComboBox"; - this.multiImageComboBox.Size = new System.Drawing.Size(220, 21); + this.multiImageComboBox.Size = new System.Drawing.Size(164, 21); this.multiImageComboBox.TabIndex = 10; this.multiImageComboBox.TextChanged += new System.EventHandler(this.multiImageComboBox_TextChanged); // @@ -374,7 +374,6 @@ this.multiImageBrowseButton.TabIndex = 11; this.multiImageBrowseButton.Text = "Browse"; this.multiImageBrowseButton.UseVisualStyleBackColor = true; - this.multiImageBrowseButton.Visible = false; this.multiImageBrowseButton.Click += new System.EventHandler(this.multiImageBrowseButton_Click); // // singleImageBrowseButton Modified: trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.cs 2013-11-07 16:35:13 UTC (rev 4670) +++ trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/BHEditorForm.cs 2013-11-07 20:26:03 UTC (rev 4671) @@ -17,7 +17,6 @@ { #region Dati private const string SkinName = "Xtreme"; //Nome della skin - private const string SkinMenuFile = "SkinSettings.xml"; //Nome del file delle impostazioni della skin private const int MenuItemsMinNum = 5; //Numero minimo elementi di menu private const int MenuItemsMaxNum = 10; //Numero massimo elementi di menu private const int SubMenuItemsMaxNum = 5; //Numero massimo elementi di sotto-menu @@ -240,7 +239,7 @@ singleImageComboBox.Enabled = singleImageRadioButton.Checked; singleImageBrowseButton.Enabled = singleImageRadioButton.Checked; multiImageComboBox.Enabled = multiImageRadioButton.Checked; - //multiImageBrowseButton.Enabled = multiImageRadioButton.Checked; //Problemi skin engine: disabilitata impostazione cartelle esterne per multi-image + multiImageBrowseButton.Enabled = multiImageRadioButton.Checked; fanartComboBox.Enabled = fanartRadioButton.Checked; } private void ShowBackgroundImage() //Visualizzazione immagine(i) di sfondo selezionata per l'elemento @@ -454,7 +453,7 @@ myMenu.EditorCreateBackup = createBackupCheckBox.Checked; myMenu.SaveMenu(myMediaPortal.SelectedSkin.CachePath, - myMediaPortal.SelectedSkin.SkinPath + SkinMenuFile); //--> salvataggio & creazione (con eventuale cancellazione cache) + myMediaPortal.SelectedSkin.SkinPath); //--> salvataggio & creazione (con eventuale cancellazione cache) } private void ShowInfo() //Visualizzazione informazioni versione { Modified: trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/Menu.cs =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/Menu.cs 2013-11-07 16:35:13 UTC (rev 4670) +++ trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/Menu.cs 2013-11-07 20:26:03 UTC (rev 4671) @@ -196,8 +196,11 @@ userMenu.Close(); //--> eventuale chiusura oggetto FileStream } } - private bool SetMenu(string skinMenuFile) //Attivazione menu skin + private bool WriteSkinSettings(string skinPath) //Scrittura impostazioni skin { + const string SkinSettingsFile = "SkinSettings.xml"; //Nome del file delle impostazioni della skin [SkinEngine MediaPortal] + + string skinMenuFile = skinPath + SkinSettingsFile; if (!File.Exists(skinMenuFile)) { Tools.ErrorMessage("Skin settings file not found!", skinMenuFile); @@ -243,7 +246,7 @@ XmlAddMenuSetting(ref xmlSkinSettings, NodeName, menuSectionIndex, "#skin.CustomMenu.General.BackgroundAnimated", Convert.ToInt16(_general.BackgroundAnimated).ToString()); XmlAddMenuSetting(ref xmlSkinSettings, NodeName, menuSectionIndex, "#skin.CustomMenu.General.DefaultItemIndex", "1"); //(_general.DefaultItemIndex + 1).ToString()); - /* Problema nello skin engine: non si riesce a specifica l'elemento di default in maniera parametrica: viene quindi fissato il primo + /* Problema nello skin engine: non si riesce a specificare l'elemento di default in maniera parametrica: viene quindi fissato il primo e si shiftano tutti gli elementi fino a portare al primo posto quello selezionato */ int itemIndex = _general.DefaultItemIndex; XmlAddMenuSetting(ref xmlSkinSettings, NodeName, menuSectionIndex, "#skin.CustomMenu.Items.Count", _items.Count.ToString()); @@ -289,6 +292,56 @@ skinSettings.Close(); //--> eventuale chiusura oggetto FileStream } } + private bool WriteSkinMultiImages(string skinPath) //Scrittura controlli multi-image skin + { + //Questa procedura si è resa necessaria per limitazioni dello skin engine: non si riesce ad assegnare un path parametrico ai controlli multi-image + + const string SkinMltImgAnimFile = "BasicHomeBackgrounds.MultiImages.animated.xml"; //Nome del file di definizione controlli multi-image animati della skin + const string SkinMltImgNormFile = "BasicHomeBackgrounds.MultiImages.normal.xml"; //Nome del file di definizione controlli multi-image normali della skin + + string skinMltImgFile = skinPath + (_general.BackgroundAnimated ? SkinMltImgAnimFile : SkinMltImgNormFile); + if (!File.Exists(skinMltImgFile)) + { + Tools.ErrorMessage("Skin multi-image file not found!", skinMltImgFile); + return false; //--> file di definizione controlli multi-image skin non trovato + } + + FileStream mltImg = null; + try + { + XmlDocument xmlMltImg = new XmlDocument(); + mltImg = new FileStream(skinMltImgFile, FileMode.Open, FileAccess.Read); + xmlMltImg.Load(mltImg); //--> lettura file di definizione controlli multi-image skin + mltImg.Close(); //--> chiusura file + + XmlNodeList controlsList = xmlMltImg.DocumentElement.SelectNodes("/window/controls/control"); + if (controlsList.Count != ItemsMaxNum) + { + Tools.ErrorMessage("Skin multi-image file not valid!", skinMltImgFile); + return false; //--> file di definizione controlli multi-image skin non valido + } + + /* Problema nello skin engine: non si riesce a specificare l'elemento di default in maniera parametrica: viene quindi fissato il primo + e si shiftano tutti gli elementi fino a portare al primo posto quello selezionato */ + for (int i = 0; i < controlsList.Count; i++) //Iterazione di modifica path controlli multi-image + controlsList[i].SelectSingleNode("imagepath").InnerText = ((i < _items.Count) ? _items[(i + _general.DefaultItemIndex) % _items.Count].BackgroundFolder : ""); + + mltImg = new FileStream(skinMltImgFile, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite); + xmlMltImg.Save(mltImg); //--> salvataggio file di definizione controlli multi-image skin manipolato + mltImg.Close(); //--> chiusura file + return true; //--> procedura terminata correttamente + } + catch (Exception e) + { + Tools.ErrorMessage("Error writing multi-image settings.", e.Message); + return false; //--> procedura terminata con errori + } + finally + { + if (mltImg != null) + mltImg.Close(); //--> eventuale chiusura oggetto FileStream + } + } private void XmlAddMenuSetting(ref XmlDocument xmlSkinSettings, string nodeName, int menuSectionIndex, string nameData, string valueData) { //Aggiunta scrittura impostazione di menu XmlElement menuSetting = xmlSkinSettings.CreateElement("entry"); @@ -301,7 +354,7 @@ #endregion #region Metodi Pubblici - public bool SaveMenu(string skinCachePath, string skinMenuFile) //Salvataggio impostazioni di menu (e successiva attivazione nella cartella della skin) + public bool SaveMenu(string skinCachePath, string skinPath) //Salvataggio impostazioni di menu (e successiva attivazione nella cartella della skin) { if (_items.Count < ItemsMinNum) //Controllo della validità del menu { @@ -383,7 +436,7 @@ if (menuSettings != null) menuSettings.Close(); //--> eventuale chiusura oggetto XmlWriter } - if (SetMenu(skinMenuFile)) //--> attivazione menu skin + if (WriteSkinSettings(skinPath) && WriteSkinMultiImages(skinPath)) //--> scrittura impostazioni e controlli multi-image skin { Tools.InfoMessage("Procedure completed successfully."); return true; //--> procedura terminata correttamente Modified: trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj =================================================================== --- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj 2013-11-07 16:35:13 UTC (rev 4670) +++ trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj 2013-11-07 20:26:03 UTC (rev 4671) @@ -6,7 +6,7 @@ <ProductVersion>8.0.30703</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{350D17A6-0F6B-43C4-898F-33CC68EBCD75}</ProjectGuid> - <OutputType>Library</OutputType> + <OutputType>WinExe</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>ProcessPlugins.XtremeMenuEditor</RootNamespace> <AssemblyName>XtremeMenuEditor</AssemblyName> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |