diff options
Diffstat (limited to 'gettext-tools/examples/hello-c-gnome/hello.c')
-rw-r--r-- | gettext-tools/examples/hello-c-gnome/hello.c | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/gettext-tools/examples/hello-c-gnome/hello.c b/gettext-tools/examples/hello-c-gnome/hello.c new file mode 100644 index 0000000..e7f5826 --- /dev/null +++ b/gettext-tools/examples/hello-c-gnome/hello.c @@ -0,0 +1,87 @@ +/* Example for use of GNU gettext. + This file is in the public domain. + + Source code of the C program. */ + + +/* Get GNOME declarations. */ +#include <gnome.h> + +/* Get getpid() declaration. */ +#if HAVE_UNISTD_H +# include <unistd.h> +#endif + +static void +quit_callback (GtkWidget *widget, void *data) +{ + gtk_main_quit (); +} + +int +main (int argc, char *argv[]) +{ + GtkWidget *window; + GtkWidget *panel; + GtkWidget *label1; + GtkWidget *label1aligned; + GtkWidget *label2; + GtkWidget *label2aligned; + GtkWidget *button; + GtkWidget *buttonbar; + + /* Initializations. */ + + gnome_init (PACKAGE, VERSION, argc, argv); + textdomain ("hello-c-gnome"); + bindtextdomain ("hello-c-gnome", LOCALEDIR); + + /* Create the GUI elements. */ + + window = gnome_app_new ("hello-c-gnome", "Hello example"); + gtk_widget_realize (window); + gtk_signal_connect (GTK_OBJECT (window), "delete_event", + GTK_SIGNAL_FUNC (quit_callback), NULL); + + label1 = gtk_label_new (_("Hello, world!")); + + label1aligned = gtk_alignment_new (0.0, 0.5, 0, 0); + gtk_container_add (GTK_CONTAINER (label1aligned), label1); + + label2 = gtk_label_new (g_strdup_printf (_("This program is running as process number %d."), getpid ())); + + label2aligned = gtk_alignment_new (0.0, 0.5, 0, 0); + gtk_container_add (GTK_CONTAINER (label2aligned), label2); + + button = gtk_button_new_with_label ("OK"); + gtk_signal_connect (GTK_OBJECT (button), "clicked", + GTK_SIGNAL_FUNC (quit_callback), NULL); + + buttonbar = gtk_hbutton_box_new (); + gtk_button_box_set_layout (GTK_BUTTON_BOX (buttonbar), GTK_BUTTONBOX_END); + gtk_box_pack_start_defaults (GTK_BOX (buttonbar), button); + + panel = gtk_vbox_new (FALSE, GNOME_PAD_SMALL); + gtk_box_pack_start_defaults (GTK_BOX (panel), label1aligned); + gtk_box_pack_start_defaults (GTK_BOX (panel), label2aligned); + gtk_box_pack_start_defaults (GTK_BOX (panel), buttonbar); + + gnome_app_set_contents (GNOME_APP (window), panel); + + /* Make the GUI elements visible. */ + + gtk_widget_show (label1); + gtk_widget_show (label1aligned); + gtk_widget_show (label2); + gtk_widget_show (label2aligned); + gtk_widget_show (button); + gtk_widget_show (buttonbar); + gtk_widget_show (panel); + gtk_widget_show (window); + + /* Start the event loop. */ + + gtk_main (); + + return 0; +} |