#include <gtk++/gtkcombos.hpp>
#include <gtk++/gtkdialogs.hpp>
#include <gtk++/gtklabels.hpp>
#include <gtk++/gtktables.hpp>
#include <gtk++/gtkbuttons.hpp>
#include <gtk++/gtkentries.hpp>
bool CallBackOk (GtkButton* Bouton, lgtkpp::gtk_combo **Combo)
{
lgtkpp::gtk_entry Entry0 = ENTRY((*Combo[0])->entry);
std::cout << "Fruit : " << Entry0.GetText()<<std::endl;
lgtkpp::gtk_entry Entry1 = ENTRY((*Combo[1])->entry);
std::cout << "Couleur : " << Entry1.GetText()<<std::endl;
return true;
}
int main (int argc, char * argv [])
{
::gtk_init (&argc, &argv);
lgtkpp::gtk_combo ** Combos = new lgtkpp::p_combo [2];
Combos[0] = Combos[1] = NULL;
lgtkpp::gtk_dialog Dialogue;
Dialogue.SetTitle("Test GtkCombo");
Dialogue.SignalConnect ("delete_event",GtkSignalFunc(gtk_main_quit), gpointer(Combos));
Dialogue.SignalConnect ("destroy",GtkSignalFunc(gtk_main_quit), gpointer(Combos));
lgtkpp::gtk_table Table (2,2,false);
Dialogue.GetVBox () += Table;
lgtkpp::gtk_label LabelFruit ("Fruit : ");
Table.Attach(LabelFruit,0,1,0,1);
lgtkpp::gtk_combo Combo0;
Combos[0] = &Combo0;
Table.Attach(Combo0,1,2,0,1);
lgtkpp::char_lst Liste0;
Liste0.Append(strdup("Banane"));
Liste0.Append(strdup("Pomme"));
Liste0.Append(strdup("Poire"));
Combo0.SetPopdownStrings (Liste0);
lgtkpp::gtk_label LabelCouleur (strdup("Fruit : "));
Table.Attach(LabelCouleur,0,1,1,2);
lgtkpp::gtk_combo Combo1;
Combos[1] = &Combo1;
Table.Attach(Combo1,1,2,1,2);
lgtkpp::char_lst Liste1;
Liste1.Append(strdup("Bleu"));
Liste1.Append(strdup("Vert"));
Liste1.Append(strdup("Rouge"));
Combo1.SetPopdownStrings (Liste1);
Combo1.SetUseArrowsAlways (true);
lgtkpp::gtk_button BoutonOk ("OK");
BoutonOk.SignalConnect ("clicked", GtkSignalFunc(CallBackOk), Combos);
BoutonOk.SignalConnectObject("clicked", GtkSignalFunc(gtk_widget_destroy), Dialogue);
BoutonOk.SetFlags (GTK_CAN_DEFAULT);
Dialogue.GetActionArea().PackStart(BoutonOk,true,true,0);
BoutonOk.GrabDefault();
lgtkpp::gtk_button BoutonAnnuler ("Annuler");
BoutonOk.SignalConnectObject("clicked", GtkSignalFunc(gtk_widget_destroy), Dialogue);
BoutonOk.SetFlags (GTK_CAN_DEFAULT);
Dialogue.GetActionArea().PackStart(BoutonAnnuler,true,true,0);
Dialogue.ShowAll();
::gtk_main();
return EXIT_SUCCESS;
}