1 /* Example for use of GNU gettext.
2 This file is in the public domain.
3
4 Source code of the C++ program. */
5
6
7 /* Get GNOME declarations. */
8 #include <gnome.h>
9 #include <gtk--.h>
10
11 /* Get getpid() declaration. */
12 #if HAVE_UNISTD_H
13 # include <unistd.h>
14 #endif
15
16 static Gtk::Main *application;
17
18 static gint
quit_callback(GdkEventAny *)19 quit_callback (GdkEventAny*)
20 {
21 application->quit ();
22 }
23
24 int
main(int argc,char * argv[])25 main (int argc, char *argv[])
26 {
27 Gtk::Window *window;
28 Gtk::VBox *panel;
29 Gtk::Label *label1;
30 Gtk::Alignment *label1aligned;
31 Gtk::Label *label2;
32 Gtk::Alignment *label2aligned;
33 Gtk::Button *button;
34 Gtk::HButtonBox *buttonbar;
35
36 /* Initializations. */
37
38 setlocale (LC_ALL, "");
39 application = new Gtk::Main (argc, argv);
40 textdomain ("hello-c++-gnome");
41 bindtextdomain ("hello-c++-gnome", LOCALEDIR);
42
43 /* Create the GUI elements. */
44
45 window = new Gtk::Window (GTK_WINDOW_TOPLEVEL);
46 window->set_title ("Hello example");
47 window->realize ();
48 window->delete_event.connect (SigC::slot (quit_callback));
49
50 label1 = new Gtk::Label (_("Hello, world!"));
51
52 label1aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
53 label1aligned->add (*label1);
54
55 label2 = new Gtk::Label (g_strdup_printf (_("This program is running as process number %d."), getpid ()));
56
57 label2aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
58 label2aligned->add (*label2);
59
60 button = new Gtk::Button ("OK");
61 button->clicked.connect (Gtk::Main::quit.slot()); //slot (quit_callback));
62
63 buttonbar = new Gtk::HButtonBox (GTK_BUTTONBOX_END);
64 buttonbar->pack_start (*button);
65
66 panel = new Gtk::VBox (false, GNOME_PAD_SMALL);
67 panel->pack_start (*label1aligned);
68 panel->pack_start (*label2aligned);
69 panel->pack_start (*buttonbar);
70
71 window->add (*panel);
72
73 /* Make the GUI elements visible. */
74
75 label1->show ();
76 label1aligned->show ();
77 label2->show ();
78 label2aligned->show ();
79 button->show ();
80 buttonbar->show ();
81 panel->show ();
82 window->show ();
83
84 /* Start the event loop. */
85
86 application->run ();
87 }
88