|
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.
|