/*
* Test program for Gamma/GTK mappings
*/
FALSE := 0;
TRUE := 1;
function main ()
{
cd (root_path(absolute_path(car(argv))));
gtk_rc_parse ("testgtkrc");
create_main_window ();
init_ipc("gtktesting", "gtktestingq");
gtk_main ();
}
TestWindows =
[
[ "timertest2", #create_timertest2 ],
[ "button box", #create_button_box ],
[ "buttons", #create_buttons ],
[ "check buttons", #create_check_buttons ],
[ "clist", #create_clist],
[ "color selection", #create_color_selection ],
[ "ctree", #create_ctree ],
[ "cursors", #create_cursors ],
[ "dialog", #create_dialog ],
[ "entry", #create_entry ],
[ "event watcher", #create_event_watcher ],
[ "file selection", #create_file_selection ],
[ "font selection", #create_font_selection ],
[ "gamma curve", #create_gamma_curve ],
[ "handle box", #create_handle_box ],
[ "item factory", #create_item_factory ],
[ "labels", #create_labels ],
[ "layout", #create_layout ],
[ "list", #create_list ],
[ "menus", #create_menus ],
[ "modal window", #create_modal_window ],
[ "notebook", #create_notebook ],
[ "panes", #create_panes ],
[ "pixmap", #create_pixmap ],
[ "preview color", #create_color_preview ],
[ "preview gray", #create_gray_preview ],
[ "progress bar", #create_progress_bar ],
[ "radio buttons", #create_radio_buttons ],
[ "range controls", #create_range_controls ],
[ "rc file", #create_rc_file ],
[ "reparent", #create_reparent ],
[ "rulers", #create_rulers ],
[ "saved position", #create_saved_position ],
[ "scrolled windows", #create_scrolled_windows ],
[ "shapes", #create_shapes ],
[ "spinbutton", #create_spins ],
[ "statusbar", #create_statusbar ],
[ "test idle", #create_idle_test ],
[ "test mainloop", #create_mainloop ],
[ "test scrolling", #create_scroll_test ],
[ "test selection", #create_selection_test ],
[ "test timeout", #create_timeout_test ],
[ "text", #create_text ],
[ "toggle buttons", #create_toggle_buttons ],
[ "toolbar", #create_toolbar ],
[ "tooltips", #create_tooltips ],
[ "tree", #create_tree_mode_window],
[ "WM hints", #create_wmhints ],
[ "timer test", #create_timertest ]
];
function new_function (fname)
{
local subname = substr(string(fname),7,-1);
local wname = parse_string(string("win_", subname));
if(load (string ("testfns/", subname)))
{
if (!(undefined_p(eval(fname))) && (function_p (eval(fname))) &&
(undefined_p(eval(wname)) || (eval(wname) == nil)))
{
eval(fname)();
}
else if (instance_p(eval(wname)))
eval(wname).destroy();
}
else
princ("No example exists.\n");
}
function _ivar_filter (cls, !ivar)
{
if ((car (ivar) == #_callbacks) ||
(car (ivar) == #_exceptions))
nil;
else
t;
}
function create_main_window ()
{
local box1, label, window, scrolled_window, box2,
button, separator;
window = new (GtkWindow);
window.type = GTK_WINDOW_TOPLEVEL;
window.allow_grow = 0;
window.allow_shrink = 0;
window.auto_shrink = 0;
window.name = "main window";
window.title = "Gamma/GTK Test";
window.width = 200;
window.height = 400;
window.x = window.y = 20;
window.signal ("destroy", #exit_program (0));
box1 = new (GtkVBox);
window.add (box1);
label = new (GtkLabel);
label.set_text("Gtk+ v1.2.8");
box1.pack_start (label, FALSE, FALSE, 0);
scrolled_window = new (GtkScrolledWindow);
scrolled_window.border_width = 10;
box1.pack_start (scrolled_window, TRUE, TRUE, 0);
box2 = new (GtkVBox);
box2.border_width = 10;
scrolled_window.add_with_viewport (box2);
scrolled_window.vadjustment.lower = 0;
scrolled_window.vadjustment.upper = 100;
scrolled_window.vadjustment.step_increment = 40;
scrolled_window.vadjustment.changed();
scrolled_window.set_policy(GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
box2.set_focus_vadjustment(scrolled_window.vadjustment);
box2.show();
with spec in TestWindows do
{
button = new (GtkButton);
button.label = spec[0];
if (spec[1])
button.signal ("clicked", `new_function (#@spec[1]));
else
button.sensitive = 0;
box2.pack_start (button, TRUE, TRUE, 0);
}
separator = new (GtkHSeparator);
box1.pack_start (separator, FALSE, TRUE, 0);
box2 = new (GtkVBox);
box2.border_width = 10;
box1.pack_start (box2, FALSE, TRUE, 0);
button = new (GtkButton);
button.label = "close";
button.signal ("clicked", #exit_program(0));
box2.pack_start (button, TRUE, TRUE, 0);
button.can_default = TRUE;
button.grab_default();
window.show_all();
}