function new_pixmap (window_wgt, filename) { local pixmask; pixmask = gdk_pixmap_create_from_xpm (window_wgt.get_window(), window_wgt.get_color_struct (GTK_COLOR_BACKGROUND, GTK_STATE_NORMAL), filename); if (car(pixmask)) gtk_pixmap_new (car(pixmask), cadr(pixmask)); else nil; } method GtkWidget.get_color_struct (where, state) { local color = new GdkColor(); color.pixel = .get_color (where, state); color; } function create_handle_box () { local handle_box, handle_box2, vbox, hbox, label, separator, toolbar, button; win_handle_box = new (GtkWindow); win_handle_box.signal ("destroy", #win_handle_box = nil); win_handle_box.title = "Handle Box Test"; win_handle_box.border_width = 20; win_handle_box.set_policy(TRUE, TRUE, TRUE); win_handle_box.realize(); vbox = new(GtkVBox); win_handle_box.add(vbox); vbox.show(); label = new(GtkLabel); label.set_text("Above"); vbox.add(label); label.show(); separator = new(GtkHSeparator); vbox.add(separator); separator.show(); hbox = new(GtkHBox); hbox.set_spacing(10); vbox.add(hbox); hbox.show(); separator = new(GtkHSeparator); vbox.add(separator); separator.show(); label = new(GtkLabel); label.set_text("Below"); vbox.add(label); label.show(); handle_box = new(GtkHandleBox); hbox.pack_start(handle_box, FALSE, FALSE, 0); hbox.show(); toolbar = new(GtkToolbar); toolbar.set_orientation(GTK_ORIENTATION_HORIZONTAL); toolbar.set_style(GTK_TOOLBAR_BOTH); toolbar.set_button_relief(GTK_RELIEF_NORMAL); button = toolbar.append_item("Horizontal", "Horizontal toolbar layout", "Toolbar/Horizontal", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_orientation(GTK_ORIENTATION_HORIZONTAL))); button = toolbar.append_item("Vertical", "Vertical toolbar layout", "Toolbar/Vertical", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_orientation(GTK_ORIENTATION_VERTICAL))); toolbar.append_space(); button = toolbar.append_item("Icons", "Only show toolbar icons", "Toolbar/Icons", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_style(GTK_TOOLBAR_ICONS))); button = toolbar.append_item("Text", "Only show toolbar text", "Toolbar/Text", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_style(GTK_TOOLBAR_TEXT))); button = toolbar.append_item("Both", "Show toolbar icons and text", "Toolbar/Both", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_style(GTK_TOOLBAR_BOTH))); toolbar.append_space(); button = toolbar.append_item("Small", "Use small spaces", "Toolbar/Small", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_space_size(5))); button = toolbar.append_item("Big", "Use big spaces", "Toolbar/Big", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_space_size(15))); toolbar.append_space(); button = toolbar.append_item("Enable", "Enable tooltips", "Toolbar/Enable", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_tooltips(TRUE))); button = toolbar.append_item("Disable", "Disable tooltips", "Toolbar/Disable", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_tooltips(FALSE))); toolbar.append_space(); button.label = "Borders"; button = toolbar.append_item("Borders", "Show button borders", "Toolbar/Borders", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_button_relief(GTK_RELIEF_NORMAL))); button = toolbar.append_item("Borderless", "Hide button borders", "Toolbar/Borderless", new_pixmap(win_handle_box, "test.xpm")); button.signal("clicked", `((@toolbar).set_button_relief(GTK_RELIEF_NONE))); toolbar.set_tooltips(TRUE); handle_box.add(toolbar); handle_box = new(GtkHandleBox); hbox.pack_start( handle_box, FALSE, FALSE, 0); handle_box.show(); handle_box2 = new(GtkHandleBox); handle_box.add(handle_box2); label = new(GtkLabel); label.set_text("Fooo!"); handle_box2.add(label); label.show(); win_handle_box.show_all(); win_handle_box; } function main () { local window, win_handle_box; TRUE=1; FALSE=0; window = create_handle_box (); window.signal ("destroy", #exit_program(0)); init_ipc("handle_box", "handle_boxq"); gtk_main (); }
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.