GTK+(第2章、はじめてのGTK その2)

昨日終了。


#include
#include
#define DEFAULT_BORDER 10
#define DEFALUT_WINDOW_WIDTH 300
#define DEFALUT_WINDOW_HEIGHT 100

static void cb_button( GtkWidget* widget, gpointer data )
{
// callback function, when button is pushed
g_print( (gchar*) data );
}

int main( int argc, char* argv[] )
{
GtkWidget* window;
GtkWidget* button;
gchar* message;

// make a base window
gtk_init( &argc, &argv );
window = gtk_window_new( GTK_WINDOW_TOPLEVEL );
gtk_window_set_title( GTK_WINDOW( window ), "Button Sample" );
gtk_window_set_default_size( GTK_WINDOW( window ), DEFALUT_WINDOW_WIDTH, DEFALUT_WINDOW_HEIGHT );
gtk_container_set_border_width( GTK_CONTAINER( window ), DEFAULT_BORDER );
g_signal_connect( G_OBJECT( window ), "destroy", G_CALLBACK( gtk_main_quit ), NULL );

// add button to the base window
button = gtk_button_new_with_label( "Click me" );
gtk_container_add( GTK_CONTAINER( window ), button );

// map a callback function for the button
// with passing "message" as data
message = g_strdup( "Hello World\n" );
g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( cb_button ), (gpointer) message );

// show the widget, including any child widget
gtk_widget_show_all( window );
// start main loop
gtk_main();

return EXIT_SUCCESS;
}

明日からGlibっす。