Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > media > main > by-pkgid > ca81b57b553ae75608ba0fc5e7925e4e > files > 700

libgtkmm1.2-devel-1.2.10-1mdk.ppc.rpm

#include <gtk--/main.h>
#include <gtk--/window.h>
#include <gtk--/box.h>
#include <gtk--/separator.h>
#include <gtk--/button.h>
#include <gtk--/radiobutton.h>
// Gtk-- version of the radiobuttons example from the gtk+ tutorial

class RadioButtons : public Gtk::Window
{
public:

  Gtk::VBox m_box1, m_box2, m_box3;
  Gtk::RadioButton m_rb1, m_rb2, m_rb3;
  Gtk::HSeparator m_seperator;
  Gtk::Button m_closeButton;
  
  RadioButtons();
  
  gint delete_event_impl(GdkEventAny*) { 
    Gtk::Main::quit(); return 0; 
  }

  void close_application() 
    {
      delete_event_impl(0);
    }

};

RadioButtons::RadioButtons() :
  m_box1(false, 0),
  m_box2(false, 10),
  m_box3(false, 10),
  m_rb1("button1"),
  m_rb2("button2"),
  m_rb3("button3"),
  m_closeButton("close")
{
  set_title("radio buttons");
  set_border_width(0);

  m_rb2.set_group(m_rb1.group());
  m_rb3.set_group(m_rb1.group());
  
  add(m_box1);
  
  m_box2.set_border_width(10);
  m_box1.pack_start(m_box2);
  
  m_box2.pack_start(m_rb1);
  m_box2.pack_start(m_rb2);
  m_rb2.set_active(true);
  
  m_box2.pack_start(m_rb3);
  
  m_box1.pack_start(m_seperator, false, true, 0);
  
  m_box3.set_border_width(10);
  m_box1.pack_start(m_box3, false, true, 0);
  
  m_closeButton.clicked.connect(slot(this,&RadioButtons::close_application));
  
  m_box3.pack_start(m_closeButton);
  m_closeButton.set_flags(GTK_CAN_DEFAULT);
  m_closeButton.grab_default();
  
  show_all();
}

int main (int argc, char *argv[])
{
          
  // all GTK applications must have a gtk_main(). Control ends here
  // and waits for an event to occur (like a key press or mouse event).
  Gtk::Main myapp(&argc, &argv);

  RadioButtons radiobuttons;

  myapp.run();
  return 0;
}