outils/OutilChoixSrcGraphConst.js

/*
 * MathGraph32 Javascript : Software for animating online dynamic mathematics figures
 * https://www.mathgraph32.org/
 * @Author Yves Biton (yves.biton@sesamath.net)
 * @License: GNU AGPLv3 https://www.gnu.org/licenses/agpl-3.0.html
 */
import Outil from './Outil'
import NatObj from '../types/NatObjAdd'
import CListeObjets from '../objets/CListeObjets'
export default OutilChoixSrcGraphConst

/**
 * Outil servant à cliquer sur des objets pour les rajouter à al liste des objets sources choisis pour une construction
 * @param {MtgApp} app L'application propriétaire
 * @constructor
 * @extends Outil
 */
function OutilChoixSrcGraphConst (app) {
  // Attention : Pour cet outil le troisième pramètre est "CreationConst" pour que l'icône de app.outilGestionConst soit
  // désactivée quand on désactive l'outil (cet outil n'a pas d'icône)
  // Dernier paramètre à false car pas d'icône associée
  Outil.call(this, app, 'CreationConst', -1, true, false, false, false)
}

OutilChoixSrcGraphConst.prototype = new Outil()

OutilChoixSrcGraphConst.prototype.select = function () {
  const app = this.app
  Outil.prototype.select.call(this)
  this.listObj = new CListeObjets()
  this.excluDesignationObjDepObjSrc() // pour ne pas désigner des objets dépendants des objest sources déjà choisis
  app.outilPointageActif = app.outilPointageCre
  app.listeClignotante.ajouteElementsDe(app.listeSrcG)
  app.outilPointageActif.aDesigner = NatObj.NObjGraphPourSourcesProto
  app.outilPointageActif.reset()
  this.resetClignotement()
  app.indication('indSrcGr')
  app.showStopButton(true)
}

OutilChoixSrcGraphConst.prototype.deselect = function () {
  this.app.showStopButton(false)
  Outil.prototype.deselect.call(this)
}

OutilChoixSrcGraphConst.prototype.traiteObjetDesigne = function (elg) {
  this.excluDesignationObjDepDe(elg)
  this.ajouteClignotementDe(elg)
  this.listObj.add(elg)
}

/**
 * Fonction appelée quand on appuyé sur le bouton STOP
 */
OutilChoixSrcGraphConst.prototype.actionFin = function () {
  this.app.listeSrcG.ajouteElementsDe(this.listObj)
  this.listObj.retireTout()
  this.listObj = null
  this.app.activeOutilCapt()
}