Skip to Main Content
Oracle and Open Source
book

Oracle and Open Source

by Andy Duncan, Sean Hull
April 2001
Intermediate to advanced content levelIntermediate to advanced
432 pages
13h 2m
English
O'Reilly Media, Inc.
Content preview from Oracle and Open Source

Programming with GTK+

Let’s take an initial look inside a GTK+-based application. We recommend that you download and install GTK+ first so you can try this out. If you have a recent version of Linux, you may already have GTK+ installed.

Sample Program

In this section, we’ll run through Example 9-1, a quick “Hello World” program that’s a simple demonstration of a one-button window. When you click the button, “Hello World” is printed to your shell, and then the program exits. We’ve highlighted the program elements we’ll describe later on.

Example 9-1. GTK+ helloworld.c

#include <gtk/gtk.h>

/* This is a callback function. The data arguments are ignored
 * in this example. More on callbacks below. */
void hello( GtkWidget *widget,
            gpointer   data )
{
   g_print ("Hello World\n");
}

gint delete_event( GtkWidget *widget,
                   GdkEvent  *event,
                   gpointer   data )
{
   /* If you return FALSE in the "delete_event" signal handler,
    * GTK will emit the "destroy" signal. Returning TRUE means
    * you don't want the window to be destroyed.
    * This is useful for popping up 'are you sure you want to quit?'
    * type dialogs. */

   g_print ("delete event occurred\n"); /* Change TRUE to FALSE and the main window will be destroyed with * a "delete_event". */ return(TRUE); } /* Another callback */ void destroy( GtkWidget *widget, gpointer data ) { gtk_main_quit( ); } int main( int argc, char *argv[] ) { /* GtkWidget is the storage type for widgets */ GtkWidget *window; GtkWidget *button; /* This is called in all GTK applications. ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Oracle Procure-to-Pay Guide

Oracle Procure-to-Pay Guide

Melanie Cameron
Expert Oracle Exadata

Expert Oracle Exadata

Kerry Osborne, Randy Johnson, Tanel Pöder
Expert PL/SQL Practices for Oracle Developers and DBAs

Expert PL/SQL Practices for Oracle Developers and DBAs

John Beresniewicz, Adrian Billington, Martin Büchi, Melanie Caffrey, Ron Crisco, Lewis Cunningham, Dominic Delmolino, Sue Harper, Torben Holm, Connor McDonald, Arup Nanda, Stephan Petit, Michael Rosenblum, Robyn Sands, Riyaj Shamsudeen
Achieving Extreme Performance with Oracle Exadata

Achieving Extreme Performance with Oracle Exadata

Rick Greenwald, Robert Stackowiak, Maqsood Alam, Mans Bhuller

Publisher Resources

ISBN: 0596000189Catalog PageErrata