Kidistb : point d'entrée
	détection de l'installation du logiciel, des répertoires, mapage des fontes windows/linux
	sourcing : msg, tool, event, son, texte, enveloppe, utils, image, Editeur, bouton1, polygon, bouton2, choixpoly

	procédures : 	cplace pour les bannières de la page d'accueil
			CanvasStart, CanvasDrag, CanvasStopDrag pour la gestion des évènements souris

	Variables :	tid :	Tableau des identificateurs d'objets tid(uidentxxx) -> liste de paramètres
			canvw canvh : dimensions de la fenêtre (de 640*480 à 1024*768)
			indexpage : le numéro de la page en cours (base 0)
			totalpage : le nombre de pages
			nbpage : nombre total de pages
			listdata : liste contenant tout le fichier de données
			nomf : le nom du fichier ouvert
			taillefont : liste des tailles de fontes (windows/linux)
			indexlibre : premier numéro disponible pour obtenir un identificateur d'objet (procédure getid)
			imgid : premier numéro disponible pour obtenir un identificateur d'image
			CanvasGere : flag (valeurs 0 ou 1) 1 : mousedown sur le canvas détecté (pour la sélection d'un groupe d'objets)
			tamponpage : liste pour placer en attente une page copiée
			Home : répertoire Home utilisateur
			tabevent : tableau des listes des évènements pour chaque objet tabevent(nom_de_l'objet) -> {enter {} leave {} click {}} ou tabeven(canvas) -> {pageenter {} pageleave {}} 
			tabson : tableau des sons affectés aux objets (au survol) ex : set tabson($id) fichier.wav
			tabpage : tableau des pages affectés aux objets (au clic) ex : set tabpage($id) numero_de_page
			lsauve : liste temporaire des données de la page en cours de traitement

Enveloppe : 	gestion du sélecteur d’objets
		Procédures :	startdim ,dimDrag, stopdim, redessineenveloppe, createenveloppe, sideenveloppe
		Variables : 	envparam : détermine le côté à redimensionner (0 1 2 3)
				lcord : stocke les coordonnées de l’enveloppe

utils :		bibliothèque partagée
		procédures : 	getid : retourne un identificateur d'objet du type uidentx, non recyclés
				getimgid :retourne un identificateur d'image du type kimagex, non recyclé
				affichenouvellepage
				sauvepage
				delitem : suppression d'un objet
				sauve : appelle sauvepage, ouvre les boites de dialogue appropriées variable type, pour déterminer si c'est un fichier nouveau ou déjà existant.
				nouveau : reinitialise et propose une boite de dialogue pour la taille écran du projet
				charge
				devant
				derriere
				imprime (linux seulement)
				changetaillecanvas : appelé depuis procédure nouveau

tools :		manipulation de l'interface (mise à jour des frames)
		procédures :	peuplelistpage : à partir de nbpage
				creetool en entrée : itm , type de l'objet qui permet de contextualiser la barre des actions sur l'objet
				changelistpage : passe à une autre page
				inserepage : appelle relink pour rechainer les pages restantes (up : ajouter la page)
				deletepage : idem que inserepage
				joue : en entrée page, pour jouer la page ou tout le projet
				bouton1 :quand on crée un bouton de type 1, quand on selectionne le sous menu page suivante ou précédente, ou sommaire (géré par la variable sens)
				forme : appelé quand on a sélectionné une forme, pour achever de la créer.
				settabpage : capture le numero de page dans la champ "aller à la page" lorsqu'on a un bouton de type 2.
				relink : rechaine les pages apres ajout ou suppression agit dans tabpage et listdata pour synchroniser
				copiepage : cree un tamponpage qui reproduit la page, mais avec tous les appel à createobject new.
				collepage : evalue tamponpage
				setcolor : appelée sur clic pour changer les couleurs
				diffuse : package le projet pour diffusion
				setnomobj : ouvre un dialogue pour changer le nom de l'objet
				verifnomobj : appelé par set nomobj pour valider le nom (s'il n'est pas dupliqué)

bouton1 : 			création et gestion des boutons prédéfinis (suivant, précédent, sommaire)
				createbouton1 : c fichier arrfill outcoul tag identif
				tag : pagesuiv ou pageprec ou sommaire
				identif : new (nouveau, fichier est un fichier .pol) renew (déjà enregistré, fichier est une liste de points extraite de listdata) ou id (déja chargé)
				appel à create polygon
				tid($id) : "$fichier $id"

bouton2 : 			création et gestion des boutons images
				createbouton2 : c fichier x y zoom1 zoom2 identif texte police coul
				identif : new ou id
				tid($id) : "$fichier $zoom1 $zoom2 $bimage $idtmp $id"
				(bimage : id de l'image du bouton idtmp retourné par getimgid : id réel du texte du bouton retourné par le sytème)
				zoomebouton1 : c id imgcor psens x
				zoomebouton2 : c id imgcor psens y
				(imgcor : liste des coordonnées de l'image, psens :1 agrandir -1 retrécir x ou y : valeur pour l'action)
				bouton2move : c tg x y lastX lastY (tg : id de l'objet)
				bouton2textInsert, bouton2keyc, bouton2TextMoveLeft, bouton2TextMoveRight, bouton2textBs, bouton2textDel : gestion du texte du bouton
				changetextebouton2   : gestion de la couleur du texte du bouton
				stretchbouton2 c x y : pour le zoom du bouton, appelle les fonctions zoomebouton appropriées , en fonction de envparam (0 1 2 ou 3 pour le côté concerné)

image : 			création et gestion des images
				createimage : c fichier x y zoom1 zoom2 identif
				identif : new ou id
				tid($id) : "$fichier $zoom1 $zoom2 $bimage $id"
				(bimage : id de l'image du bouton idtmp retourné par getimgid : id réel du texte du bouton retourné par le sytème)
				zoomeimage1 : c id imgcor psens x
				zoomeimage2 : c id imgcor psens y
				(imgcor : liste des coordonnées de l'image, psens :1 agrandir -1 retrécir x ou y : valeur pour l'action)
				stretchimage c x y : pour le zoom du bouton, appelle les fonctions zoomebouton appropriées , en fonction de envparam (0 1 2 ou 3 pour le côté concerné)

choixpoly : 			ouvre un dialogue pour choisir une forme
				openpoly : appel à forme $c $it (it : poly1 ou poly2 ou poly3 ....) qui appelle create polygon

polygon : 			création et gestion des formes
				createpolygon : c fichier arrcoul linecoul smoth identif
				identif :  new (nouveau, fichier est un fichier .pol) renew (déjà enregistré, fichier est une liste de points extraite de listdata) ou id (déja chargé)
				tid($id) : "$fichier $id"
				(bimage : id de l'image du bouton idtmp retourné par getimgid : id réel du texte du bouton retourné par le sytème)
				zoomepolygon1 : c id imgcor cote x
				zoomepolygon2 : c id imgcor cote y
				(imgcor : liste des coordonnées de l'image, cote :0 (haut ou gauche) ou 1 (droit ou bas) , permet de replacer l'objet après agrandissement oun réduction retrécir x ou y : valeur pour l'action)
				stretchpolygon c x y : pour le zoom du bouton, appelle les fonctions zoomebouton appropriées , en fonction de envparam (0 1 2 ou 3 pour le côté concerné)
				fondtrans1, changefond1, changetrait1 : pour la gestion des attributs de couleur

texte : 				création et gestion des textes
				createtexte c x y texte couleur largeur fillcouleur police taillepol trait identif : (identif : new ou id, trait : contour ou pas)
				tid($id) : $idtmp2 $taillepol $id (idtmp2 : id système du rectangle)
				retailletexte : agrandit ou retrécit le cadre de texte
				changepolice, changetaille, fondtrans, changefond, changetrait : pour la gestion des attributs de couleur et de police
				opentext : appelé quand on clique sur le bouton "texte", appelle createtexte
				redessinetexte ?
				textmove c tg x y lastX lastY (tg : id de l'objet texte)
				textDel, textBs, textB1Press, textPaste, textInsert, keyc, TextMoveRight,TextMoveLeft 

Editeur : 			ouvre un dialogue pour choisir une image
				openimg c type (type : image ou bouton2)
				appel à setimage wind c type qui appelle createimage ou createbouton2 et detruit ensuite wind		

son : 				pour la gestion du son
				opensound : ouvre un dialogue pour choisir ou enregistrer un son
				soundEnter c idt, soundLeave c,Record, Play, Stop, Pause,...
				setson idt  : affecte son à tabson($idt)

msg : 				pour la gestion de l'internationalisation

event : 				pour la gestion de l'interface de programmation
				select i, pushEnter i, pushLeave i gere le changement d'event
				openevent c : ouvre la fenêtre principale
				enrtabevent : enregistre les scripts pour les évenements de l'objet en cours (à partir de listtmp), appelée à depuis quitevent

jouer ou kidiplayer: 		pour passer en mode représentation, lancé par un exec, avec en argument 						le nom du fichier et le numero de page
				differences dans les 2 modules, kidiplayer commence à la page 0 et se postitionne dans le rep de base pour le chemin relatif de Home. Kidiplayer ne prend qu'un argument, le nom du fichier.
				ouvreprojet : reninitialise les variables et listdata
				appelle charge
				effectue les liaisons évènements des objets préprogrammés (bouton1, bouton2)
				appelle initpage (<event enterpage)

jouerutils :  			Bibli partagée pour jouer et kidiplayer
				getid, getimgid, enterbouton et leavebouton (<event), updownbouton (gestion bouton2, pour l'effet bouton enfoncé)
				changepage (appelle initialise , affichepage, initpage (<event enterpage)), createbouton1, createbouton2, zoomebouton1, zoomebouton2,zoome1, zoome2, createimage, zoomepolygon1, zoomepolygon2, createpolygon, createtexte, affiche(<event), cache(<event), jouerson (<event), aller (<event), curseur (<event), deplace (<event), charge (appelle ouvreprojet, initialise, affichepage)
				
version 2.x :
create texte :
les arguments pour l'ancienne version sont :
c x y texte couleur largeur fillcouleur police taillepol trait(contour ou pas) identif(new ou id)
pour la nouvelle version : 
c x y texte couleur largeur hauteur fillcouleur police taillepol trait(contour ou pas) identif(new ou id) sep (liste indiquant le nombre de caractères de chaque ligne de texte)
Apparaissent donc 2 params supplémentaires : hauteur et sep
Il faut donc les introduire en 7 éme et dernière position et on peut les mettre à 0
Par exemple, on remplace :
{createtexte $c 343 15 {Le prince et la princesse} "" 475 DarkViolet Helvetica 4 "" uident11}
par :
{createtexte $c 343 14 {Le prince et la princesse} "" 475 0 DarkViolet Helvetica 4 "" uident11 {0}}	

le dernier enregistrement du fichier qui était :
set indexlibre x
devient 
set indexlibre x ; array set nompage _listedespages_ pour le nommage des pages