Giff Home - Owen2k6/GoOS GitHub Wiki
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
- 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).
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.";
}
}
- 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.