Giff Home - Owen2k6/GoOS GitHub Wiki

GoOS Giff — Home

Welcome to the Giff scripting language for GoOS (v0.35). Giff is a tiny, UI scripting language that builds GoOS windows and controls, wires events, and performs simple logic, file I/O, and HTTP (plain http://) fetches.

  • Designed for British English spellings (e.g., colour), but property keys are case-insensitive.
  • Version: 0.35

What you can do

  • Declare windows, panels, and controls (label, button, input, image placeholder, listbox).
  • Handle events: onLoad, onClose, onClick, onChange, onSelect.
  • Use commands: message, close, set, concat, length, substr, if { } else { }.
  • File/Directory: fileWrite, fileAppend, fileRead, fileDelete, fileCopy, fileExists, dirCreate, dirDelete, dirExists.
  • Persistence: varsSave, varsLoad, varClear, varsClearAll.
  • Networking: netGet (download file), netGetText (download text; HTTP only).

Quick example

window Hello {
  title "Greetings"
  width 320; height 180; background "#F0F0F0"

  label title {
    x 10; y 10; text "Welcome to Giff"
    textColour black
  }

  input nameBox {
    x 10; y 40; width 200; placeholder "Type your name"
    onChange {
      set name = "$input_nameBox_text";
    }
  }

  button sayHi {
    x 10; y 80; width 80; text "Say Hi"
    onClick {
      message "Hello, $name!";
    }
  }

  onLoad {
    message "Window loaded.";
  }
}

Wiki structure

  • Language Specification — tokens, properties, values.
  • Windows & Layout — sizes, positions, colours, centring.
  • Controls — label, button, input, image, listbox.
  • Panels — grouping & relative layout.
  • Events & Commands — full catalogue with examples.
  • Variables & Expressions$var substitution and conditions.
  • File & Directory I/O — read/write/copy, existence checks.
  • Networking — HTTP GET, DNS limits, status variables.
  • Persistence & State — saving/loading variables to disk.
  • Examples — complete, runnable scripts.
  • Troubleshooting — common mistakes, runtime notes.
⚠️ **GitHub.com Fallback** ⚠️