#include <Xm/Xm.h>
#include <Xm/MainW.h>
#include <Xm/CascadeB.h>
#include <Xm/RowColumn.h>

void quit_call(), help_call(); /* callbacks */

/*---------------------------*/
main(int argc, char *argv[])
/*---------------------------*/
{   
  Widget top_wid, main_win, menu_bar, quit, help;
  XtAppContext app;
  int n=0;
  Arg args[10];  

  /* create application, main and menubar widgets */
    
  top_wid = XtVaAppInitialize(&app, "menu_cascade",
			      NULL, 0, &argc, argv, NULL, NULL);
  /* La main window */
  n=0;
  main_win = XmCreateMainWindow(top_wid, "main_window", args, n);
  XtManageChild(main_win);

  /* La barre de menu */
  n=0;
  menu_bar = XmCreateMenuBar(main_win, "main_list", args, n);
  XtManageChild(menu_bar);

    
  /* Bouton quit + callback */
  n=0;
  XtSetArg(args[n], XmNmnemonic, 'Q'); n++;
  quit = XmCreateCascadeButton(menu_bar, "Quit", args, n); n++;
  XtManageChild(quit);
  XtAddCallback(quit, XmNactivateCallback, quit_call, NULL);

  /* Bouton Help + callback */
  n=0;
  XtSetArg(args[n], XmNmnemonic, 'H'); n++;
  help = XmCreateCascadeButton(menu_bar, "Help", args, n); n++;
  XtManageChild(help);
    
  XtAddCallback(help, XmNactivateCallback, help_call, NULL);
  
  /* On indique a la barre de menu de mettre le bouton help a droite */
  XtVaSetValues(menu_bar, XmNmenuHelpWidget, help, NULL);

  XtRealizeWidget(top_wid);
  XtAppMainLoop(app);
}

/*---------------*/
void quit_call()
/*---------------*/

{   
  printf("On sort du programme!\n");
  exit(0);
}

/*---------------*/
void help_call()
/*---------------*/

{   
  printf("Désolé je ne peux pas vous aider\n");
}

