function cmw_file (parent) { local fs, vbox, hbuttonbox2, ok_button, cancel_button; fs = new(GtkFileSelection); fs.title = "This is a modal file selection dialog"; fs.set_modal(TRUE); fs.set_transient_for(parent); fs.signal("destroy", #gtk_main_quit()); vbox = car(fs.children()); hbuttonbox2 = caddr(cdddr(vbox.children())); ok_button = car(hbuttonbox2.children()); cancel_button = cadr(hbuttonbox2.children()); ok_button.signal("clicked", #fs.destroy()); cancel_button.signal("clicked", #fs.destroy()); fs.show(); init_ipc("modal_win1", "modal_win1q"); gtk_main(); } function create_modal_window () { local box1, frame1, box2, btnFile, btnClose, separator; win_modal_window = new (GtkWindow); win_modal_window.signal ("destroy", #win_modal_window = nil); win_modal_window.title = "This window is modal"; win_modal_window.set_modal(TRUE); box1 = new(GtkVBox); box1.border_width = 5; frame1 = new(GtkFrame); frame1.label = "A standard dialog in modal form"; box2 = new(GtkVBox); box2.border_width = 5; btnFile = new(GtkButton); btnFile.label = "File Selection"; btnClose = new(GtkButton); btnClose.label = "Close"; separator = new(GtkHSeparator); box1.border_width = 3; box2.border_width = 3; win_modal_window.add(box1); box1.pack_start(frame1, TRUE, TRUE, 4); frame1.add(box2); box2.pack_start(btnFile, FALSE, FALSE, 4); box1.pack_start(separator, FALSE, FALSE, 4); box1.pack_start(btnClose, FALSE, FALSE, 4); btnClose.signal("clicked", `(@win_modal_window).destroy()); win_modal_window.signal("destroy", #gtk_main_quit()); btnFile.signal("clicked", #cmw_file(win_modal_window)); win_modal_window.show_all(); win_modal_window; init_ipc("modal_win2", "modal_win2q"); gtk_main(); } function main () { local window, win_modal_window; TRUE=1; FALSE=0; window = create_modal_window (); window.signal ("destroy", #exit_program(0)); init_ipc("modal_win3", "modal_win3q"); gtk_main (); }
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.