|
From: <nic...@us...> - 2014-01-12 18:53:17
|
Revision: 4721
http://sourceforge.net/p/mp-plugins/code/4721
Author: nicsergio
Date: 2014-01-12 18:53:13 +0000 (Sun, 12 Jan 2014)
Log Message:
-----------
Modified Paths:
--------------
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.cs
trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj
trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs 2014-01-10 16:19:47 UTC (rev 4720)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/LockKeys.cs 2014-01-12 18:53:13 UTC (rev 4721)
@@ -25,8 +25,8 @@
#region Metodi Pubblici
public static bool ChangeCapsLock(LockKeyActions forcing) //Richiesta di modifica stato CapsLock
{
- if ((Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.On) ||
- (!Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.Off)) //Se richiesta una variazione di stato
+ if ((Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.Off) ||
+ (!Control.IsKeyLocked(Keys.CapsLock) & forcing == LockKeyActions.On)) //Se richiesta una variazione di stato
{
keybd_event(VK_CAPITAL, SC_CAPITAL, 0, (UIntPtr)0); //--> simulazione pressione del tasto CapsLock
keybd_event(VK_CAPITAL, SC_CAPITAL, KEYEVENTF_KEYUP, (UIntPtr)0); //--> simulazione rilascio del tasto CapsLock
@@ -37,8 +37,8 @@
}
public static bool ChangeNumLock(LockKeyActions forcing) //Richesta di modifica stato NumLock
{
- if ((Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.On) ||
- (!Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.Off)) //Se richiesta una variazione di stato
+ if ((Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.Off) ||
+ (!Control.IsKeyLocked(Keys.NumLock) & forcing == LockKeyActions.On)) //Se richiesta una variazione di stato
{
keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0); //--> simulazione pressione del tasto NumLock
keybd_event(VK_NUMLOCK, HK_NUMLOCK, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2014-01-10 16:19:47 UTC (rev 4720)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/Properties/AssemblyInfo.cs 2014-01-12 18:53:13 UTC (rev 4721)
@@ -33,8 +33,8 @@
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// utilizzando l'asterisco (*) come descritto di seguito:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("2.0.5.0")]
-[assembly: AssemblyFileVersion("2.0.5.0")]
+[assembly: AssemblyVersion("2.0.6.0")]
+[assembly: AssemblyFileVersion("2.0.6.0")]
//Importante per la compatibilità con MediaPortal
[assembly: CompatibleVersion("1.1.6.27644")]
\ No newline at end of file
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.cs
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.cs 2014-01-10 16:19:47 UTC (rev 4720)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.cs 2014-01-12 18:53:13 UTC (rev 4721)
@@ -111,18 +111,55 @@
GUIWindowManager.SendMessage(msg);
//GUIGraphicsContext.SendMessage(msg); //Metodo usato dal vecchio plugin
}
+ lastWindowID = sc.WindowID; lastLoadParameter = sc.LoadParameter; //--> memorizzazione ultima destinazione visualizzata dal plugin
}
catch (Exception e)
{
MpLog(true, "Error going to screen", e);
}
}
- private void GoToPrevious() //Esecuzione azione relativa allo shortcut
+ private void GoToPrevious(bool soundEffect) //Ritorno alla finestra precedente
{
+ try
+ {
+ MpLog(false, "Go to previous window");
+
+ GUIGraphicsContext.ResetLastActivity();
+ if (soundEffect)
+ Utils.PlaySound("back.wav", false, true); //--> eventuale effetto sonoro (indietro)
+
+ GUIWindowManager.ShowPreviousWindow(); //--> visualizzazione finestra precedente
+ }
+ catch (Exception e)
+ {
+ MpLog(true, "Error going to previous window", e);
+ }
}
- private bool AlreadyAtDestination(ShortCut sc)
+ private bool AlreadyAtDestination(ShortCut sc) //Verifica se finestra attuale corrispondente a destinazione shortcut
{
- return false;
+ if ((int)GUIWindowManager.ActiveWindow == sc.WindowID) //Prima verifica: da gestore finestra di mediaPortal
+ {
+ if (lastWindowID == sc.WindowID) //Seconda verifica: utilizzo dei parametri memorizzati dal plugin se attendibili
+ if (lastLoadParameter == sc.LoadParameter) //--> verifica corrispondenza eventuali parametri di caricamento per visualizzazione
+ {
+ MpLog(false, "Actual window (ID & LoadParameter) corresponds to destination, " + sc.ToString());
+ return true; //--> finestra attuale e parametri di caricamento corrispondenti a destinazione shortcut
+ }
+ else
+ return false; //--> parametri di caricamento per visualizzazione non corrispondenti a destinazione shortcut
+ else //Altrimenti parametri memorizzati dal plugin non attendibili (non si riescono a verificare i parametri di caricamento)
+ {
+ if (sc.LoadParameter.Length == 0) //Se destinazione senza parametri di caricamento
+ {
+ MpLog(false, "Actual window (ID) corresponds to destination, " + sc.ToString());
+ return true; //--> finestra attuale corrispondente a destinazione shortcut
+ }
+ else
+ return false; //--> finestra attuale non corrispondente a destinazione shortcut
+ }
+ }
+ else
+ return false; //--> finestra attuale non corrispondente a destinazione shortcut
}
#endregion
@@ -150,37 +187,35 @@
{
if (!ShortCut.ModifierKeys.Contains(e.KeyCode)) //Verifica se il tasto premuto non corrisponde ad un modificatore
{
-
- /*
- -ricerca sc, se nessuno: log
- -se almeno 1, verifica ID finestra
- - se <> da dest: gotoscreen
- - se = a destinazione, verifica se ci sono altri sc
- - se nessun sc, se return = false->gotoscreen altrimenti gotoback
- - se altri sc --> gotoscreen(next)
- */
- List<ShortCut> scList = myShortCuts.Items.ToList().FindAll(x => x.Key == e.KeyCode.ToString()
- && x.Ctrl == e.Control
- && x.Alt == e.Alt
- && x.Shift == e.Shift);
- if (scList != null && scList.Count > 0) //Se la combinazione di tasti corrisponde ad almeno uno shortcut
+ List<ShortCut> scList = myShortCuts.Items.ToList().FindAll(x =>
+ x.Key == e.KeyCode.ToString()
+ && x.Ctrl == e.Control
+ && x.Alt == e.Alt
+ && x.Shift == e.Shift); //--> raccolta lista shortcut associati alla combinazione di tasti attuale
+ if (scList != null && scList.Count > 0) //Se trovato almeno uno shortcut
{
- if (scList.Count == 1)
+ if (scList.Count == 1) //Shortcut a destinazione singola
{
- if (scList[0].Return && AlreadyAtDestination(scList[0]))
- GoToPrevious();
+ if (scList[0].Return && AlreadyAtDestination(scList[0])) //Se impostato flag di ritorno e finestra attuale corrispondente a destinazione
+ GoToPrevious(scList[0].SoundEffect.Length > 0); //--> visualizzazione finestra precedente
else
- GoToScreen(scList[0]);
+ GoToScreen(scList[0]); //--> visualizzazione finestra di destinazione shortcut
}
- else
+ else //Shortcut a destinazione multipla (ciclico)
{
- foreach (ShortCut sc in scList)
- {
-
- }
+ int scIndex = 0;
+ for (int i = 0; i < scList.Count; i++) //Iterazione di verifica se la finestra attuale corrisponde ad una delle destinazioni
+ {
+ if (AlreadyAtDestination(scList[i]))
+ {
+ scIndex = (i + 1) % scList.Count; //--> impostazione indice shortcut successivo
+ break;
+ }
+ }
+ GoToScreen(scList[scIndex]); //--> visualizzazione finestra di destinazione shortcut
}
}
- else
+ else //Combinazione di tasti non corrispondente a nessuno shortcut
MpLog(false, "Key not mapped: Key=" + (e.Control ? "<CTRL>" : "") + (e.Alt ? "<ALT>" : "") + (e.Shift ? "<SHIFT>" : "") + "<" + e.KeyCode.ToString() + ">");
}
}
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj 2014-01-10 16:19:47 UTC (rev 4720)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/ShortCuter/ShortCuter.csproj 2014-01-12 18:53:13 UTC (rev 4721)
@@ -6,7 +6,7 @@
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{20CEBE32-A39E-4A61-B2BD-90BF16E2AEE8}</ProjectGuid>
- <OutputType>WinExe</OutputType>
+ <OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ProcessPlugins.ShortCuter</RootNamespace>
<AssemblyName>ShortCuter</AssemblyName>
Modified: trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj
===================================================================
--- trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj 2014-01-10 16:19:47 UTC (rev 4720)
+++ trunk/plugins/ShortCuter&SkinEditor/Source/XtremeMenuEditor/XtremeMenuEditor.csproj 2014-01-12 18:53:13 UTC (rev 4721)
@@ -6,7 +6,7 @@
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{350D17A6-0F6B-43C4-898F-33CC68EBCD75}</ProjectGuid>
- <OutputType>WinExe</OutputType>
+ <OutputType>Library</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.
|