//$Id: helloworld.cc,v 1.4 2005/01/25 12:55:03 murrayc Exp $ -*- c++ -*- /* gtkmm example Copyright (C) 2002 gtkmm development team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "TwoButtons.h" #include TwoButtons::TwoButtons() : m_button1("Button 1"), m_button2("Button 2") { // This just sets the title of our new window. set_title("Hello Buttons!"); // sets the border width of the window. set_border_width(10); // put the box into the main window. add(m_box1); // Now when the button is clicked, we call the "on_button_clicked" function // with a pointer to "button 1" as it's argument m_button1.signal_clicked().connect(sigc::bind( sigc::mem_fun(*this, &TwoButtons::on_button_clicked), "button 1") ); // instead of gtk_container_add, we pack this button into the invisible // box, which has been packed into the window. // note that the pack_start default arguments are Gtk::EXPAND | Gtk::FILL, 0 m_box1.pack_start(m_button1); // always remember this step, this tells GTK that our preparation // for this button is complete, and it can be displayed now. m_button1.show(); // call the same signal handler with a different argument, // passing a pointer to "button 2" instead. m_button2.signal_clicked().connect(sigc::bind<-1, Glib::ustring>( sigc::mem_fun(*this, &TwoButtons::on_button_clicked), "button 2") ); m_box1.pack_start(m_button2); // Show the widgets. // They will not really be shown until this Window is shown. m_button2.show(); m_box1.show(); } TwoButtons::~TwoButtons() { } // Our new improved signal handler. The data passed to this method is // printed to stdout. void TwoButtons::on_button_clicked(Glib::ustring data) { std::cout << "Hello World - " << data << " was pressed" << std::endl; }