_processLabel(ctx, selected, hover) {
    if (this.labelDirty === false && !this.differentState(selected, hover))
      return;

    const state = this._processLabelText(
      ctx,
      selected,
      hover,
      this.elementOptions.label
    );

    if (this.fontOptions.minWdt > 0 && state.width < this.fontOptions.minWdt) {
      state.width = this.fontOptions.minWdt;
    }

    this.size.labelHeight = state.height;
    if (this.fontOptions.minHgt > 0 && state.height < this.fontOptions.minHgt) {
      state.height = this.fontOptions.minHgt;
    }

    this.lines = state.lines;
    this.lineCount = state.lines.length;
    this.size.width = state.width;
    this.size.height = state.height;
    this.selectedState = selected;
    this.hoverState = hover;

    this.labelDirty = false;
  }
This explodes the label string into lines and sets the width, height and number of lines.
@param {CanvasRenderingContext2D} ctx
@param {boolean} selected
@param {boolean} hover
@private