#!/usr/cogent/bin/gamma /* Example: This example demonstrates how the return values are treated by machine-wrapped Gamma functions. - C functions with 'void' return values return 'nil' in Gamma. - C functions with one return value return that value in Gamma. - C functions with multiple return values return a list of those values in Gamma. */ init_ipc("a", "aq"); TRUE = 1; FALSE = 0; window = new(GtkWindow); window.set_border_width(20); window.title = ""; /* Use a method that has no return value, and print the results. */ ret1 = window.set_uposition(400, 200); princ(string("\n*** No return values:", "\n\nThe C function gtk_widget_set_uposition() return type is: void", "\nand it has no return value.", "\n\nThe Gamma/GTK method GtkWidget.set_uposition() returns: ", ret1, "\n")); /* Create a button. */ button = new(GtkButton); button.label = " Exit "; button.name = "Exit button"; /* Use a method that has one return value, and print the results. */ ret2 = button.get_name(); princ(string("\n*** One return value:", "\n\nThe C function gtk_widget_get_name() return type is: gchar", "\n\nThe Gamma/GTK method GtkWidget.get_name() ", "\napplied to the button named 'Exit button' returns: ", ret2, "\n")); /* Create a font, a string, and a text box to display them. */ font = gdk_font_load ("-adobe-courier-medium-r-normal--*-120-*-*-*-*-*-*"); mystring = "Testing"; text = new(GtkText); text.width = 100; text.height = 50; text.insert(font, nil, nil, mystring, -1); /* Use a function that has a void return typem, wih multiple return values. */ ret3 = gdk_text_extents(font, mystring, 14); princ(string("\n*** Multiple return values:", "\n\nThe C function gdk_text_extents() return type is: void", "\nIts return values are: lbearing, rbearing, width, ascent, and descent.", "\nThe type of all these return values is: int.", "\n\nThe Gamma/GTK function gdk_text_extents(), when applied to", "\nthe string 'Testing' in Courier 12 pt font returns: ", ret3, "\n\n")); /* Create a box to display the text and button widgets. */ box1 = new(GtkVBox); box1.spacing = 20; box1.pack_start (text, TRUE, TRUE, 0); box1.pack_start (button, TRUE, TRUE, 0); button.signal("clicked",#gtk_main_quit()); window.add(box1); window.show_all(); gtk_main();
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.