#include <iostream>
#include <gtk--/window.h>
#include <gtk--/box.h>
#include <gtk--/button.h>
#include <gtk--/separator.h>
#include <gtk--/main.h>
using SigC::bind;
using SigC::slot;
class HelloWorld : public Gtk::Window
{
Gtk::HBox m_box1;
Gtk::Button m_button1, m_button2;
public:
HelloWorld();
void callback(string data);
gint delete_event_impl(GdkEventAny*)
{
Gtk::Main::quit(); return 0;
}
};
HelloWorld::HelloWorld() :
m_button1("Button 1"),
m_button2("Button 2")
{
set_title("Hello Buttons!");
set_border_width(10);
add(m_box1);
// connecting signals and passing some data to callback
m_button1.clicked.connect(bind<string>(slot(this, &HelloWorld::callback), "button 1"));
m_button2.clicked.connect(bind<string>(slot(this, &HelloWorld::callback), "button 2"));
m_box1.pack_start(m_button1);
m_box1.pack_start(*manage(new Gtk::VSeparator())); // no need to take care of deletion
m_box1.pack_start(m_button2);
show_all();
}
void HelloWorld::callback(string data)
{
cout << "Hello World - " << data << " was pressed" << endl;
}
int main (int argc, char *argv[])
{
Gtk::Main kit(argc, argv);
HelloWorld helloworld;
kit.run();
return 0;
}
next