Skriptirana GUI logika

Medtem ko je povezovanje lastnosti, kot je opisano zgoraj, pogosto dovolj, je včasih bolj prilagodljivo ali bolj priročno uporabiti JS za skript GUI logiko. Na ta način bi lahko zgornji primer prepisali kot:

[...]
        <code file="code.js"/>
'
        <logic>
                <script><![CDATA[
                        // ECMAScript code in this block
                        // the top-level statement is only called once
                        gui.addChangeCommand ("mode.string", "modeChanged ()");

                        // this function is called whenever the "mode" was changed
                        modeChanged = function () {
                                var varmode = (gui.getString ("mode.string") == "variable");
                                gui.setValue ("y.enabled", varmode);
                                gui.setValue ("constant.enabled", !varmode);
                        }
                ]]></script>
        </logic>

        <dialog label="T-Test">
        [...]
        

Prva vrstica kode pove RKWard za klic funkcije modeChanged() vsakič, ko se spremeni vrednost izbirnega polja id="mode". Znotraj te funkcije definiramo pomožno spremenljivko "varmode", ki je true, ko je način "variable", false, ker je "constant". Nato uporabimo gui.setValue() za nastavitev omogočenih lastnosti "y" in "constant", na povsem enak način, kot smo to storili prej z uporabo stavkov <connect>.

Skriptni pristop k GUI logika postane še posebej uporabna, ko želite spremeniti razpoložljivo možnost glede na vrsto predmeta, ki ga je izbral uporabnik. Oglejte si referenco za razpoložljive funkcije.

Upoštevajte, da je skriptni pristop k GUI logiko lahko zmešate s stavki <connect> in <convert>, če želite. Upoštevajte tudi, da oznaka <script> omogoča podajanje imena datoteke skripta poleg ali kot alternativo vstavljanju kode skripta. Običajno pa je najbolj priročna vdelava kode skripta, kot je prikazano zgoraj.