Lògica de la IGU amb scripts

Sovint és suficient connectar les propietats tal com es descriu anteriorment, però de vegades és més flexible o més pràctic utilitzar JS per a crear scripts en la lògica de la IGU. D'aquesta manera, l'exemple anterior es podria reescriure com:

[...]
        <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">
        [...]
        

La primera línia de codi li diu al RKWard que cridi a la funció modeChanged() sempre que canviï el valor del quadre de botons d'opció id="mode". Dins d'aquesta funció, definim una variable d'ajuda "varmode" que és certa quan el mode és "variable", falsa quan és "constant". Després utilitzem gui.setValue() per a establir les propietats «enabled» de "y" i "constant", de la mateixa manera que abans vam fer servir sentències <connect>.

L'enfocament amb scripts a la lògica de la IGU esdevé particularment útil quan voleu canviar l'opció disponible segons el tipus d'objecte que l'usuari ha seleccionat. Vegeu la referència per a les funcions disponibles.

Tingueu en compte que l'enfocament amb scripts a la lògica de la IGU es pot barrejar amb sentències <connect> i <convert> si voleu. Tingueu en compte també que l'etiqueta <script> permet especificar un nom de fitxer de script a més o com a alternativa a la inclusió del codi de script. Normalment la inclusió del codi de script tal com es mostra a dalt és més pràctic.