//****************************************************************
//Title  :	 h.MainWindow
// Purpose:	 dfinition de la classe
// *****************************************************************

#ifndef MainWindow_H
#define MainWindow_H

#include <stdio.h>

//#include <iostream.h>
//#include <vector.h>
//#include <algo.h>

 // ************* Cathlibcpp ************
//#include <cathlibcpp:fstream.h>
//#include <cathlibcpp:string.h>


// Classe de la fentre  afficher
// @author JMB   2021
// @version 1.1
// Historique:   cre le 23.07.21
//@}
class MainWindow
{
  private:
  /**   Identifiant de la fentre  principale  */
  toolbox_o WindowId;
  
  public:
  /****  Constructeur  ***** */
  /** Cr une instance  partir d'un objet window template (ResEd)  */
  MainWindow(toolbox_id OBJ_TEMPLATE );
  /**** Destructeur **** */
  /** Destructeur de l'instance de la fentre  */
  ~MainWindow();

  /* -----------------------------------  attributs ------------------------- */


  /** handle de la fentre. */
  wimp_w WindowHd;
  /** statut de la fentre. */
  osbool win_open;

  /** titre barre de titre de la fentre. */
  //string  sFenTitre;
  char *sFenTitre;
  /** Index position dans le textarea. */
  int TA_index;
  /** output string stream for script file */
  //ofstream *draw_stream;
  /** default name for script file: drawscript */
  char *file_name;
  /** slider_1 current value */
  int slider1_cur;

  /* ============  mthodes  ============= */
  /** Affichage dasn le text area */
  void TextArea_display( char *texte);
  void TextArea_clear( void);
  //osbool Titre_fen(string titre);
  osbool Titre_fen(char* titre);
  osbool Open(void);
  toolbox_o get_mainwinid(void) {return WindowId;}

 /* ============== fonctions amies   ============== */


  /* ==============   ToolBox Handler   ================ */

/** Toolbox event juste avant l'ouverture de MAinWindow  */

static osbool AboutToBeShow_handler(bits  Event_Code, toolbox_action *Event, toolbox_block *TBblock, void *vHandle);

static osbool Actions_button_handler(bits  Event_Code, toolbox_action *Event, toolbox_block *TBblock, void *vHandle);

static osbool Radios_button_handler(bits  Event_Code, toolbox_action *Event, toolbox_block *TBblock, void *vHandle);

static osbool Sliders_handler(bits  Event_Code, toolbox_action *Event, toolbox_block *TBblock, void *vHandle);

static osbool Arrow_adjusters_handler(bits  Event_Code, toolbox_action *Event, toolbox_block *TBblock, void *vHandle);

/**   rcupre les id toolbox des objets auto cres (via ResEdit) */
static osbool FindId_TBhandler(bits EventCode, toolbox_action *Event, toolbox_block* TBblock, void* vHandle );



   /*  ==============   Wimp Handler ================ */


   /*  ==============      Wimp messages Handler  ================  */

/**
  Handler Data Load  en rponse  un message du filer suite  un drag dans l'appli ,vrifie le type de fichier SVG, appel de la fonction Load_svg_file (svg) faisant appel au parser qui va parcourir, le document xml contenu dans xml_buf
*/
//static  osbool DataLoad_Handler(wimp_message * pxMessage, void* vxData);


//static  osbool DataSave_Handler(wimp_message * pxMessage, void* vxData);

};// fin class MainWindow



// Fonctions autres  en dehors de la classe


#endif
