Page principale   Modules   Liste des namespaces   Hiérarchie des classes   Liste des composants   Liste des fichiers   Membres des namespaces   Composants   Déclarations   Pages associées   Exemples  

combobox.cpp

Exemple d'utilisation de la classe gtk_combo. Une boite de dialogue qui permet la selection d'items dans deux combo et affiche la sélection à l'ecran lorsque la boite est fermée.

#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);

  // Tableau combo qui  contiendra des pointeurs sur les deux combos.
  lgtkpp::gtk_combo ** Combos = new lgtkpp::p_combo [2];
  Combos[0] = Combos[1] = NULL;

  // La fenetre de dialogue
  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));

  // Corps de la boite de dialogue, une table
  lgtkpp::gtk_table Table (2,2,false);
  Dialogue.GetVBox () += Table;

  // Le label fruit :
  lgtkpp::gtk_label LabelFruit ("Fruit :  ");
  Table.Attach(LabelFruit,0,1,0,1);
  // Le combo box pour les fruits
  lgtkpp::gtk_combo Combo0;
  Combos[0] = &Combo0;
  Table.Attach(Combo0,1,2,0,1);
  // La liste des fruits
  lgtkpp::char_lst Liste0;
  Liste0.Append(strdup("Banane"));
  Liste0.Append(strdup("Pomme"));
  Liste0.Append(strdup("Poire"));
  Combo0.SetPopdownStrings (Liste0);

  // Le label couleur :
  lgtkpp::gtk_label LabelCouleur (strdup("Fruit :  "));
  Table.Attach(LabelCouleur,0,1,1,2);
  // Le combo box pour les fruits
  lgtkpp::gtk_combo Combo1;
  Combos[1] = &Combo1;
  Table.Attach(Combo1,1,2,1,2);
  // La liste des fruits
  lgtkpp::char_lst Liste1;
  Liste1.Append(strdup("Bleu"));
  Liste1.Append(strdup("Vert"));
  Liste1.Append(strdup("Rouge"));
  Combo1.SetPopdownStrings (Liste1);
  // Activation des fleches
  Combo1.SetUseArrowsAlways (true);

  // Les boutons de la boite de dialogue
  // Le bouton OK
  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();

  // Le bouton Annuler
  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);
  
  // Affichage de la boite et boucle principale
  Dialogue.ShowAll();
  ::gtk_main();

  return EXIT_SUCCESS;
}

Généré le Sun Oct 5 15:03:43 2003 pour lightgtk++ par doxygen1.3-rc3