function adt_label()
{
	dad("heldi", "new");
	dad("heldi", "label", "Hello\nworld!");
	dad("heldi", "run_modal", "adt_label", "adt: label");
}

function adt_button()
{
	dad("heldi", "new");
	dad("heldi", "button", "Click me");
	dad("heldi", "run_modal", "adt_button", "adt: button");
}

function adt_button_closes()
{
	dad("heldi", "new");
	dad("heldi", "label", "dummy");
	dad("heldi", "button_closes", "close", 0);
	dad("heldi", "run_modal", "adt_button_closes", "adt: button_closes");
}

function adt_hbox()
{
	dad("heldi", "new");
	dad("heldi", "begin_hbox");
	dad("heldi", "button", "one");
	dad("heldi", "button", "two");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: hbox");
}

function adt_vbox()
{
	dad("heldi", "new");
	dad("heldi", "begin_vbox");
	dad("heldi", "label", "one");
	dad("heldi", "label", "two");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: vbox");
}

function adt_hpane()
{
	dad("heldi", "new");
	dad("heldi", "begin_hpane");
	dad("heldi", "label", "one");
	dad("heldi", "label", "two");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: hpane");
}

function adt_vpane()
{
	dad("heldi", "new");
	dad("heldi", "begin_vpane");
	dad("heldi", "label", "one");
	dad("heldi", "label", "two");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: vpane");
}

function adt_table()
{
	dad("heldi", "new");
	dad("heldi", "begin_table", 3);
	dad("heldi", "label", "one");
	dad("heldi", "label", "two");
	dad("heldi", "label", "three");
	dad("heldi", "label", "four");
	dad("heldi", "label", "five");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: table");
}

function adt_tabbed()
{
	dad("heldi", "new");
	dad("heldi", "begin_tabbed", "p1	p2	p3");
	dad("heldi", "label", "one");
	dad("heldi", "label", "two");
	dad("heldi", "label", "three");
	dad("heldi", "end");
	dad("heldi", "run_modal", "adt_button", "adt: tabbed");
}

function adt_string()
{
	dad("heldi", "new");
	dad("heldi", "string");
	dad("heldi", "run_modal", "adt_string", "adt: string");
}

function adt_integer()
{
	dad("heldi", "new");
	dad("heldi", "integer", 1, 100);
	dad("heldi", "run_modal", "adt_integer", "adt: integer");
}

function adt_text()
{
	dad("heldi", "new");
	dad("heldi", "text");
	dad("heldi", "run_modal", "adt_text", "adt: text");
}

function adt_bool()
{
	dad("heldi", "new");
	dad("heldi", "bool");
	dad("heldi", "run_modal", "adt_bool", "adt: bool");
}

function adt_color()
{
	dad("heldi", "new");
	dad("heldi", "color");
	dad("heldi", "run_modal", "adt_color", "adt: color");
}

function adt_progress()
{
	dad("heldi", "new");
	dad("heldi", "progress");
	dad("heldi", "run_modal", "adt_progress", "adt: progress");
}

function adt_enum()
{
	dad("heldi", "new");
	dad("heldi", "enum", "one	two	three	four");
	dad("heldi", "run_modal", "adt_enum", "adt: enum");
}

function adt(test)
{
	if (test == "label") return adt_label();
	if (test == "button") return adt_button();
	if (test == "button_closes") return adt_button_closes();
	if (test == "hbox") return adt_hbox();
	if (test == "vbox") return adt_vbox();
	if (test == "hpane") return adt_hpane();
	if (test == "vpane") return adt_vpane();
	if (test == "table") return adt_table();
	if (test == "tabbed") return adt_tabbed();

	if (test == "string") return adt_string();
	if (test == "integer") return adt_integer();
	if (test == "text") return adt_text();
	if (test == "bool") return adt_bool();
	if (test == "color") return adt_color();
	if (test == "progress") return adt_progress();
	if (test == "enum") return adt_enum();

	message("ERROR", "invalid test");
	return 1;
}

function main(ARG) {
	fgw_func_reg(adt);
}

