git @ Cat's Eye Technologies Gridoggerel / master demo / gridoggerel-launcher.js
master

Tree @master (Download .tar.gz)

gridoggerel-launcher.js @masterraw · history · blame

// SPDX-FileCopyrightText: Chris Pressey, the creator of this work, has dedicated it to the public domain.
// For more information, please refer to <https://unlicense.org/>
// SPDX-License-Identifier: Unlicense

/*
 * dam-plus-widgets-0.2.js, dam-download-image-button.js, and gridoggerel.js should be loaded before this.
 * After this is loaded, call launch() to start the gewgaw.
 */

function launch(config) {
    var div=DAM.maker('div'), button=DAM.maker('button'), canvas=DAM.maker('canvas');

    var can = canvas({ width: 400, height: 400 });
    config.container.appendChild(can);

    var gewgaw = new Gridoggerel();
    gewgaw.init({
        'canvas': can
    });

    var controlPanel = div(
        div(
            DAM.makeDownloadImageButton({
                canvas: can,
                basename: "gridoggerel"
            })
        ),
        div(
            DAM.makeRange({
                title: "Number of vertices",
                min: 1,
                max: 200,
                value: 50,
                onchange: function(v) {
                    gewgaw.numPoints = v;
                    gewgaw.reset();
                }
            })
        ),
        div(
            DAM.makeRange({
                title: "Line thickness",
                min: 1,
                max: 30,
                value: 4,
                onchange: function(v) {
                    gewgaw.lineWidth = v;
                    gewgaw.draw();
                }
            })
        ),
        div(
            button("Re-roll", {
                onclick: function() {
                    gewgaw.reset();
                }
            })
        )
  );
  config.container.appendChild(controlPanel);
}