/* * charles vidal 25.06.97 */ #include #include #include #include /* gets us in the door with libsx */ #define X_SIZE 320 #define Y_SIZE 200 #define NB_SCREEN 4 Widget screen[NB_SCREEN]; Widget wdesc[NB_SCREEN]; Widget form2; int current_screen =0; int index_screen=0; char *listshell[]={ "/bin/ash", "/bin/bash", "/bin/sh", "/bin/tcsh", "/bin/bsh", "/bin/csh", "/bin/ksh", "/bin/zsh"}; void quit(Widget w, void *data); void nextecran(Widget w, void *data) { if (current_screen+1=0) { XtUnmanageChild(screen[current_screen]); current_screen--; XtManageChild(screen[current_screen]); } } void AddWidget(Widget w) { static Widget w_up; if (!(w==wdesc[index_screen])) SetWidgetPos(w,PLACE_UNDER,w_up,NO_CARE,NULL); w_up=w; } void MakeAssistantScreen(char *title,char *description) { Widget wtitle; screen[index_screen] = MakeForm(TOP_LEVEL_FORM,PLACE_RIGHT, form2, NO_CARE, NULL); wtitle = MakeLabel(title); wdesc[index_screen] = MakeTextWidget(description,0,0,250,100); SetWidgetPos(wtitle, NO_CARE, NULL, NO_CARE, NULL); SetWidgetPos(wdesc[index_screen], PLACE_UNDER, wtitle, NO_CARE, NULL); XtUnmanageChild(screen[index_screen]); AddWidget(wdesc[index_screen]); index_screen++; } void main(int argc, char **argv) { argc = init_display(argc, argv, NULL); /* setup the display */ if (argc == 0) exit(0); MainLoop(); /* go right into the main loop */ } /* This function sets up the display. For any kind of a real program, * you'll probably want to save the values returned by the MakeXXX calls * so that you have a way to refer to the display objects you have * created (like if you have more than one drawing area, and want to * draw into both of them). */ int init_display(int argc, char **argv, void *data) { Widget form1; Widget w[20]; char nomuser[256]; char realnomuser[256]; char homedir[256]; int i; strcpy(nomuser,""); strcpy(realnomuser,""); strcpy(homedir,""); argc = OpenDisplay(argc, argv); if (argc == FALSE) return argc; /* Creation image */ form2 = MakeForm(TOP_LEVEL_FORM, NO_CARE, NULL, NO_CARE, NULL); w[2] = MakeDrawArea(200, 200, NULL, NULL); MakeAssistantScreen("Nom utilisateur","entrez le nom de l'utilisateur\nsans espace ni tabulation,\nainsi que son nom reel avec espace"); AddWidget(MakeLabel("Nom utilisateur")); AddWidget(MakeStringEntry(nomuser,256,NULL,NULL)); AddWidget(MakeLabel("nom reel utilisateur")); AddWidget(MakeStringEntry(realnomuser,256,NULL,NULL)); MakeAssistantScreen("Shell utilisateur","Choisissez parmi\nles divers shells"); AddWidget(MakeScrollList(listshell,250,80,NULL,NULL)); MakeAssistantScreen("Home directory","Choisissez le chemin \ndu home directory \ndu nouvel utilisateur"); AddWidget(MakeLabel("Home directory")); AddWidget(MakeStringEntry(homedir,256,NULL,NULL)); MakeAssistantScreen("Congratulation","Vous venez de creer \nun nouvel utilisateur"); /*form3 = MakeForm(TOP_LEVEL_FORM, PLACE_RIGHT, form2, NO_CARE, NULL); XtUnmanageChild(form4);*/ XtManageChild(screen[0]); /* Creation boutons */ form1 = MakeForm(TOP_LEVEL_FORM, PLACE_UNDER , screen[0], PLACE_RIGHT, form2); w[0] = MakeButton("Precedent", prececran, NULL); w[1] = MakeButton("Suivant", nextecran, NULL); w[3] = MakeButton("Annuler", quit, NULL); SetWidgetPos(w[1], PLACE_RIGHT, w[0], NO_CARE, NULL); SetWidgetPos(w[3], PLACE_RIGHT, w[1], NO_CARE, NULL); ShowDisplay(); return argc; } /* Make the commande */ /* * quit() - Callback function for the quit button */ void quit(Widget w, void *data) { if (GetYesNo("Quitter ???")==TRUE) exit(0); }