Glade: gtk <-> gtkmm

Hallo!
Ich habe da mal eine Frage zu dem C++ Code, den Glade fabriziert. Unzwar bin ich diesem GTK Tutorial gefolgt:
http://www.pl-berichte.de/work/gtk/gtk.rvb.2.html
Auf der selben Seite heißt es auch, man könne mit Glade den Code einfacher erzeugen. Dann habe ich mir Glade runter geladen (Ubuntu->Anwendungen->Hinzufügen...).
Damit lassen sich zwar Fenster erstellen, aber nicht in C++-Code umwandeln. (scheinbar geht das in einigen Windows-Versionen)
Also musste libglademm her. Nun hab ich mit
Code:
glade-- DATEINAME
Den Code konvertiert. Das funktioniert soweit auch. Aber der Quelltext, der dabei rauskommt, hat eine komplett andere syntax, weil es scheinbar gtkmm und nicht gtk nutzt. Diese syntax funktioniert auch nicht, da irgendwelche gtkmm libs includiert werden, die natürlich nicht da sind.
Ich weis an dem Punkt auch nicht mehr weiter, weil das Durcheinander von gtk und gtkmm mich zutiefst irritiert. Scheinbar wird auf manchen Seiten gar nicht unterschieden... ?(
Hier mal ein Beispiel von glade--:
Code:
// generated 2008/9/22 17:45:52 CEST by extinction@extinction-desktop.(none)
// using glademm V2.6.0
//
// DO NOT EDIT THIS FILE ! It was created using
// glade-- /home/extinction/Desktop/glade projects/Ungespeichert 4.glade
// for gtk 2.12.9 and gtkmm 2.12.5
//
// Please modify the corresponding derived classes in ./src/window1.cc
#if defined __GNUC__ && __GNUC__ < 3
#error This program will crash if compiled with g++ 2.x
// see the dynamic_cast bug in the gtkmm FAQ
#endif //
#include "config.h"
#include <gtkmmconfig.h>
#if GTKMM_MAJOR_VERSION==2 && GTKMM_MINOR_VERSION>2
#include <sigc++/compatibility.h>
#define GMM_GTKMM_22_24(a,b) b
#else //gtkmm 2.2
#define GMM_GTKMM_22_24(a,b) a
#endif //
#include "window1_glade.hh"
#include <gdk/gdkkeysyms.h>
#include <gtkmm/accelgroup.h>

window1_glade::window1_glade(
)
{  window1 = this;
   gmm_data = new GlademmData(get_accel_group());
   button3 = Gtk::manage(new class Gtk::Button("button"));
   entry1 = Gtk::manage(new class Gtk::Entry());
   button2 = Gtk::manage(new class Gtk::Button("button"));
   button1 = Gtk::manage(new class Gtk::Button("button"));
   table1 = Gtk::manage(new class Gtk::Table(2, 2, true));
   button3->set_flags(Gtk::CAN_FOCUS);
   entry1->set_flags(Gtk::CAN_FOCUS);
   button2->set_flags(Gtk::CAN_FOCUS);
   button1->set_flags(Gtk::CAN_FOCUS);
   table1->attach(*button3, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
   table1->attach(*entry1, -1, -1, -1, -1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
   table1->attach(*button2, 2, 3, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
   table1->attach(*button1, -1, -1, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
   window1->add(*table1);
   button3->show();
   entry1->show();
   button2->show();
   button1->show();
   table1->show();
}

window1_glade::~window1_glade()
{  delete gmm_data;
}
Wäre nett, wenn mich da mal jemand aufklären könnte. :)
 
gtkmm = c++ libarys für GTK

Das "Normale" GTK ist für reines C. Wenn du unter C++ mit GTK entwickeln willst brauchst du gtkmm.

Mit anderen Worten. Glade baut dir eine solch "komische" Syntax weil es gtk C++ und nicht gtk C baut.
 
Zurück
Oben