blob: 6056083dc63c1adf69da920576941fe38f16cbb1 [file] [log] [blame]
/* 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>
#include <gtk--.h>
/* Get getpid() declaration. */
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
static Gtk::Main *application;
static gint
quit_callback (GdkEventAny*)
{
application->quit ();
}
int
main (int argc, char *argv[])
{
Gtk::Window *window;
Gtk::VBox *panel;
Gtk::Label *label1;
Gtk::Alignment *label1aligned;
Gtk::Label *label2;
Gtk::Alignment *label2aligned;
Gtk::Button *button;
Gtk::HButtonBox *buttonbar;
/* Initializations. */
setlocale (LC_ALL, "");
application = new Gtk::Main (argc, argv);
textdomain ("hello-c++-gnome");
bindtextdomain ("hello-c++-gnome", LOCALEDIR);
/* Create the GUI elements. */
window = new Gtk::Window (GTK_WINDOW_TOPLEVEL);
window->set_title ("Hello example");
window->realize ();
window->delete_event.connect (SigC::slot (quit_callback));
label1 = new Gtk::Label (_("Hello, world!"));
label1aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
label1aligned->add (*label1);
label2 = new Gtk::Label (g_strdup_printf (_("This program is running as process number %d."), getpid ()));
label2aligned = new Gtk::Alignment (0.0, 0.5, 0, 0);
label2aligned->add (*label2);
button = new Gtk::Button ("OK");
button->clicked.connect (Gtk::Main::quit.slot()); //slot (quit_callback));
buttonbar = new Gtk::HButtonBox (GTK_BUTTONBOX_END);
buttonbar->pack_start (*button);
panel = new Gtk::VBox (false, GNOME_PAD_SMALL);
panel->pack_start (*label1aligned);
panel->pack_start (*label2aligned);
panel->pack_start (*buttonbar);
window->add (*panel);
/* Make the GUI elements visible. */
label1->show ();
label1aligned->show ();
label2->show ();
label2aligned->show ();
button->show ();
buttonbar->show ();
panel->show ();
window->show ();
/* Start the event loop. */
application->run ();
}