Using Tables

Gamma/GTK: Using Gamma™ with GTK, Version 0.9
Prev | Chapter 3. Building Applications - a Tutorial | Next

# 3.5. Using Tables

    #!/usr/cogent/bin/gamma

    /* Example: Packing Widgets using Tables.
     * Another useful way to control widget layout is
     * with tables. This example packs three buttons
     * into a table.
     */

    /* Initialize Cogent interprocess communication.*/
    init_ipc("a", "aq");

    /* Make a simple function for the buttons to call. */
    function print_out (label)
    {
      princ(string(label," was pressed.\n"));
    }

    /* Create a window.*/
    window = new(GtkWindow);
    window.set_border_width(20);
    window.set_default_size(200,100);
    window.set_title("Table Packing Example");

    /* Make a 2 X 2 table, set row and column spacings,
     * and add it to the window.
     */
    table = new(GtkTable);
    table.n_rows = 2;
    table.n_columns = 2;
    table.set_col_spacings(30);
    table.set_row_spacings(10);
    window.add(table);

    /* Make a button and put it in the upper left cell
     * of the table.
     */
    button1 = new(GtkButton);
    button1.label = "Button 1";
    button1.signal("clicked",#print_out(button1.label));
    table.attach_defaults(button1, 0, 1, 0, 1);

    /* Make another button for the upper right cell.*/
    button2 = new(GtkButton);
    button2.label = "Button 2";
    button2.signal("clicked",#print_out(button2.label));
    table.attach_defaults(button2, 1, 2, 0, 1);

    /* Make a "Quit" button that spans both bottom cells
     * of the table.
     */
    button_q = new(GtkButton);
    button_q.label = "Quit";
    button_q.signal("clicked",#gtk_main_quit());
    table.attach_defaults(button_q, 0, 2, 1, 2);

    /* Show everything and enter the GTK main processing loop.*/
    window.show_all();
    gtk_main();

Prev | Home | Next
Packing Widgets in Boxes | Up | Example Code

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.