summaryrefslogtreecommitdiff
path: root/gettext-tools/examples/hello-c-gnome/hello.c
diff options
context:
space:
mode:
Diffstat (limited to 'gettext-tools/examples/hello-c-gnome/hello.c')
-rw-r--r--gettext-tools/examples/hello-c-gnome/hello.c87
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;
+}