/* Edouard.Thiel@lif.univ-mrs.fr */ #include He_node *princ, *panel, *tmp; char *lab1 = " Créer 600 boutons ", *lab2 = "Détruire les boutons "; void create_panel (); void butt_proc (He_node *hn); void create_panel () { panel = HeCreatePanel (princ); HeCreateButtonP (panel, "Quit", butt_proc, NULL); HeCreateButtonP (panel, lab1, butt_proc, NULL); HeCreateButtonP (panel, "Test", butt_proc, NULL); HeFit(panel); } void butt_proc (He_node *hn) { char *name = HeGetButtonLabel (hn); if (strcmp (name, "Quit") == 0) { HeQuit(0); } else if (strcmp (name, lab1) == 0) { int i, j, k = 0; char bla[80]; HeSetButtonLabel (hn, lab2); HeCreateMessageP (panel, "Cliquez sur un bouton pour le détruire", TRUE); HeSetPanelLayout (panel, HE_LINE_FEED); for (i = 0; i < 30; i++) { for (j = 0; j < 20; j++) { tmp = HeCreateButton (panel); sprintf (bla, "%3d", k++); HeSetButtonLabel (tmp, bla); HeSetButtonNotifyProc (tmp, butt_proc); } HeSetPanelLayout (panel, HE_LINE_FEED); } HeFit(panel); HeFit (princ); } else if (strcmp (name, lab2) == 0) { HeSetButtonLabel (hn, lab1); HeDestroy (panel); create_panel (); HeFit (princ); } else if (strcmp (name, "Test") == 0) { printf ("Liste des widgets en mémoire :\n"); HeNodeDebug(); printf ("Fin de la liste des widgets en mémoire.\n"); } else { printf ("butt_proc %s\n", name); HeDestroy (hn); } } int main (int argc, char *argv[]) { HeInit (&argc, &argv); princ = HeCreateFrame(); HeSetFrameLabel (princ, "Boum"); create_panel (); HeFit (princ); return HeMainLoop (princ); }