Mit der neuen Scriptfunktion gibt es nun die Möglichkeit, Schalter zu erstellen, die den vorherigen Zustand exakt wiederherstellen. Ich habe hier 3 Schalter in VB-Script erstellt, die alle vom Dual- in den Einzel-Modus umschalten und die Metadatenanzeige oder Dateivorschau einblenden. Die Schalter arbeiten perfekt zusammen, d.h. wenn ich z.B. die Dateivorschau im Einzel-Modus öffne, kann ich durch Klick auf den Metadaten-Schalter die Metadatenanzeige zusätzlich einblenden. Erst wenn ich wieder den Dateivorschau-Schalter klicke, komme ich zurück in den Dual-Modus. Der Schalter Dual-Modus umschalten geht immer sofort in den Dual-Modus zurück und schaltet sowohl Dateivorschau als auch Metadaten-Anzeige ab, wenn er im Einzel-Modus geklickt wird.
Die Schalter basieren auf einem Script des Users Peperoni aus diesem Beitrag im englischen Forum: DO11 Scripting: Create Lister variables on OnClick function
Achtung: Diese Schaltercodes funktionieren nicht DOpus 10, da die erweiterten Scripting-Funktionen von DOpus 11 benötigt werden.
Dateivorschau Umschalten
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>ToggleViewpane</label>
<icon1>#viewerpane</icon1>
<function type="script">
<instruction>@language vbscript</instruction>
<instruction />
<instruction>Function OnClick(ByRef ClickData)</instruction>
<instruction> If (ClickData.Func.Command.IsSet("VIEWPANE=Off")) Then</instruction>
<instruction> Call Restore(ClickData)</instruction>
<instruction> Else</instruction>
<instruction> Call Save(ClickData)</instruction>
<instruction> End If</instruction>
<instruction>End Function</instruction>
<instruction />
<instruction>Sub Save(ClickData)</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=Off")) Then</instruction>
<instruction> DOpus.vars.Set "VIEWPANEDUAL", false</instruction>
<instruction> Else</instruction>
<instruction> DOpus.vars.Set "VIEWPANEDUAL", true</instruction>
<instruction> If ClickData.Func.sourcetab.right Then</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", true</instruction>
<instruction> Else</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", false</instruction>
<instruction> End If</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> End If</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set VIEWPANE=On")</instruction>
<instruction>End Sub</instruction>
<instruction />
<instruction>Sub Restore(ClickData)</instruction>
<instruction> Dim dual, swap</instruction>
<instruction> dual = false</instruction>
<instruction> swap = false</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set VIEWPANE=Off")</instruction>
<instruction> If DOpus.vars.Exists("VIEWPANEDUAL") Then</instruction>
<instruction> dual = DOpus.vars.Get("VIEWPANEDUAL")</instruction>
<instruction> End If</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=Off")) and dual Then</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set METAPANE=Off")</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> If DOpus.vars.Exists("DUALSWAP") Then</instruction>
<instruction> swap = DOpus.vars.Get("DUALSWAP")</instruction>
<instruction> End If</instruction>
<instruction> If swap Then</instruction>
<instruction> ClickData.Func.Command.RunCommand("Go SWAP")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set FOCUS=Right ")</instruction>
<instruction> End If</instruction>
<instruction> End If</instruction>
<instruction>End Sub</instruction>
</function>
</button>
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>ToggleMetapane</label>
<icon1>#metapane</icon1>
<function type="script">
<instruction>@language vbscript</instruction>
<instruction />
<instruction>Function OnClick(ByRef ClickData)</instruction>
<instruction> If (ClickData.Func.Command.IsSet("METAPANE=Off")) Then</instruction>
<instruction> Call Restore(ClickData)</instruction>
<instruction> Else</instruction>
<instruction> Call Save(ClickData)</instruction>
<instruction> End If</instruction>
<instruction>End Function</instruction>
<instruction />
<instruction>Sub Save(ClickData)</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=Off")) Then</instruction>
<instruction> DOpus.vars.Set "METAPANEDUAL", false</instruction>
<instruction> Else</instruction>
<instruction> DOpus.vars.Set "METAPANEDUAL", true</instruction>
<instruction> If ClickData.Func.sourcetab.right Then</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", true</instruction>
<instruction> Else</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", false</instruction>
<instruction> End If</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> End If</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set METAPANE=On")</instruction>
<instruction>End Sub</instruction>
<instruction />
<instruction>Sub Restore(ClickData)</instruction>
<instruction> Dim dual, swap</instruction>
<instruction> dual = false</instruction>
<instruction> swap = false</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set METAPANE=Off")</instruction>
<instruction> If DOpus.vars.Exists("METAPANEDUAL") Then</instruction>
<instruction> dual = DOpus.vars.Get("METAPANEDUAL")</instruction>
<instruction> End If</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=Off")) and dual Then</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set VIEWPANE=Off")</instruction>
<instruction> If DOpus.vars.Exists("DUALSWAP") Then</instruction>
<instruction> swap = DOpus.vars.Get("DUALSWAP")</instruction>
<instruction> End If</instruction>
<instruction> If swap Then</instruction>
<instruction> ClickData.Func.Command.RunCommand("Go SWAP")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set FOCUS=Right ")</instruction>
<instruction> End If</instruction>
<instruction> End If</instruction>
<instruction>End Sub</instruction>
</function>
</button>
Code: Alles auswählen
<?xml version="1.0"?>
<button backcol="none" display="both" textcol="none">
<label>Toggledual</label>
<icon1>#dualdisplay</icon1>
<function type="script">
<instruction>@language vbscript</instruction>
<instruction />
<instruction>Function OnClick(ByRef ClickData)</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=On")) Then</instruction>
<instruction> Call Save(ClickData)</instruction>
<instruction> Else</instruction>
<instruction> Call Restore(ClickData)</instruction>
<instruction> End If</instruction>
<instruction>End Function</instruction>
<instruction />
<instruction>Sub Save(ClickData)</instruction>
<instruction> If ClickData.Func.sourcetab.right Then</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", true</instruction>
<instruction> Else</instruction>
<instruction> DOpus.vars.Set "DUALSWAP", false</instruction>
<instruction> End If</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction>End Sub</instruction>
<instruction />
<instruction>Sub Restore(ClickData)</instruction>
<instruction> Dim swap</instruction>
<instruction> swap = false</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set VIEWPANE=Off")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set METAPANE=Off")</instruction>
<instruction> If DOpus.vars.Exists("DUALSWAP") Then</instruction>
<instruction> swap = DOpus.vars.Get("DUALSWAP")</instruction>
<instruction> End If</instruction>
<instruction> If (ClickData.Func.Command.IsSet("DUAL=Off")) and swap Then</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Go SWAP")</instruction>
<instruction> ClickData.Func.Command.RunCommand("Set SOURCE=Right ")</instruction>
<instruction> Else</instruction>
<instruction> ClickData.Func.Command.RunCommand("SET Dual=Remember,Toggle")</instruction>
<instruction> End If</instruction>
<instruction>End Sub</instruction>
</function>
</button>