/****************************************************************
** Title  : 	!AppModel.h.main
**
** Purpose: 	main application definitions
**   bas sur  Garbage Disposal et Dessin de courbes calcules en 2D
** Copyright:   1995 Control Computer Consultants
**
** History:     created:        961029  modif le Mon 21st April 2014
**    version Franaise JMB
*****************************************************************/
#ifndef MAIN_H
#define MAIN_H


//#endif
/* ci-dessous une technique utile pour dfinir/dclarer des variables
** globales visibles par toute l'application sans avoir d'ambiguit sur les
** noms.
** Si MAIN est dfinie (comme elle l'est dans le programme principal) alors
** EXTERN ne se compile en rien. Autrement , EXTERN se compile en extern.
** De cette manire, nous pouvons dfinir des variables globales un fois
** (dans main), et les dclarer extern dans tous les autres modules qui
** incluent ce fichier d'entte.
*/


#if defined MAIN
  #define EXTERN
#else
  #define EXTERN extern
#endif

#if defined __STDC_VERSION__
   #if __STDC_VERSION__ >= 199901L
      #include <stdbool.h>
   #endif
#endif

//#include "Fenprin.h"

#define WIMP_VERSION    310

#define APPNAM          "Drawf32"
#define APPVERSION      "3.10"
#define APPDIR          "<Drawf32$Dir>"
// doit tre initialis dans le fichier !run du classeur de l'appli
// il faut lancer le !run avant de compiler.

// --- application-wide globals ---
// Messages Trans File Descriptor
EXTERN MessagesFD   gbMessagesFD; //messagetrans_control_block (Oslib)

//--------------------  global ID et HANDLE  ---------------------------



//---     Identifiant d'objets   auto cres        ----------

//---  Handle et id  d'objet fentre options  ----------
EXTERN toolbox_o   opt_object; //ObjectId
EXTERN wimp_w     opt_handle;



//       objet fentre message info
EXTERN  toolbox_o   gbMessage_id;     // id (OsLib:toolbox_o)

//       objet menu/icon iconbar
EXTERN toolbox_o   gbMenuBar_id; // Id object menu Iconbar
EXTERN toolbox_o    gbIconBar_id;
EXTERN toolbox_o   gbProgInfo_id;

// objet save_as
EXTERN toolbox_o   save_object;
EXTERN wimp_w      save_handle; //gbSaveAs_hd;
//----------------------------------------------------------------------

//--- Structures globales ---
//----------------------------------------------------------------------


// Note:les variables ci-dessous seront initialises dans le main.c++ par une fonction initvar()

//--- variables globales du programme ---
//variable globale buf reserve aux messages initalise dans initvar de  main
EXTERN char *gbbufMess;
EXTERN char *gbbufHeure;// affihage horloge numrique

// ---variables globales boolennes ---
EXTERN os_error  out_of_date, no_templates, no_window, cw_failed, ci_failed, aargh,
                 no_memory, im_busy, no_errfile, save_failed, too_long, bye_bye  ;

// fonction globales
EXTERN  void lose( const void *e);
EXTERN os_error Mk_Error( int errnum, char* errtext);
EXTERN void err(const void *e);
EXTERN void finish(void);
#endif
/*** END ***/
