Grammalecte  Hex Artifact Content

Artifact 562aee0f70eaf73c75a8a1390df53cb15ee111e05716efce958762dfa5f95f83:


0000: 2f 2f 20 4a 61 76 61 53 63 72 69 70 74 0a 0a 2f  // JavaScript../
0010: 2a 20 6a 73 68 69 6e 74 20 65 73 76 65 72 73 69  * jshint esversi
0020: 6f 6e 3a 36 2c 20 2d 57 30 39 37 20 2a 2f 0a 2f  on:6, -W097 */./
0030: 2a 20 6a 73 6c 69 6e 74 20 65 73 76 65 72 73 69  * jslint esversi
0040: 6f 6e 3a 36 20 2a 2f 0a 2f 2a 20 67 6c 6f 62 61  on:6 */./* globa
0050: 6c 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2c 20  l oGrammalecte, 
0060: 73 68 6f 77 45 72 72 6f 72 2c 20 77 69 6e 64 6f  showError, windo
0070: 77 2c 20 64 6f 63 75 6d 65 6e 74 20 2a 2f 0a 0a  w, document */..
0080: 22 75 73 65 20 73 74 72 69 63 74 22 3b 0a 0a 63  "use strict";..c
0090: 6c 61 73 73 20 47 72 61 6d 6d 61 6c 65 63 74 65  lass Grammalecte
00a0: 42 75 74 74 6f 6e 20 7b 0a 0a 20 20 20 20 63 6f  Button {..    co
00b0: 6e 73 74 72 75 63 74 6f 72 20 28 29 20 7b 0a 20  nstructor () {. 
00c0: 20 20 20 20 20 20 20 2f 2f 20 74 68 65 20 70 65         // the pe
00d0: 61 72 6c 20 62 75 74 74 6f 6e 0a 20 20 20 20 20  arl button.     
00e0: 20 20 20 74 68 69 73 2e 78 42 75 74 74 6f 6e 20     this.xButton 
00f0: 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63  = oGrammalecte.c
0100: 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76 22 2c  reateNode("div",
0110: 20 7b 20 63 6c 61 73 73 4e 61 6d 65 3a 20 22 67   { className: "g
0120: 72 61 6d 6d 61 6c 65 63 74 65 5f 6d 65 6e 75 5f  rammalecte_menu_
0130: 6d 61 69 6e 5f 62 75 74 74 6f 6e 22 2c 20 74 65  main_button", te
0140: 78 74 43 6f 6e 74 65 6e 74 3a 20 22 e2 80 af 22  xtContent: "..."
0150: 20 7d 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69   });.        thi
0160: 73 2e 78 42 75 74 74 6f 6e 2e 6f 6e 63 6c 69 63  s.xButton.onclic
0170: 6b 20 3d 20 28 29 20 3d 3e 20 7b 0a 20 20 20 20  k = () => {.    
0180: 20 20 20 20 20 20 20 20 69 66 20 28 74 68 69 73          if (this
0190: 2e 78 54 65 78 74 4e 6f 64 65 29 20 7b 0a 20 20  .xTextNode) {.  
01a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 47                oG
01b0: 72 61 6d 6d 61 6c 65 63 74 65 2e 73 74 61 72 74  rammalecte.start
01c0: 47 43 50 61 6e 65 6c 28 74 68 69 73 2e 78 54 65  GCPanel(this.xTe
01d0: 78 74 4e 6f 64 65 29 3b 0a 20 20 20 20 20 20 20  xtNode);.       
01e0: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d       }.        }
01f0: 3b 0a 20 20 20 20 20 20 20 20 2f 2f 20 61 62 6f  ;.        // abo
0200: 75 74 20 74 68 65 20 74 65 78 74 20 6e 6f 64 65  ut the text node
0210: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 54  .        this.xT
0220: 65 78 74 4e 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a  extNode = null;.
0230: 20 20 20 20 20 20 20 20 2f 2f 20 72 65 61 64 20          // read 
0240: 75 73 65 72 20 63 6f 6e 66 69 67 0a 20 20 20 20  user config.    
0250: 20 20 20 20 74 68 69 73 2e 5f 62 54 65 78 74 41      this._bTextA
0260: 72 65 61 20 3d 20 74 72 75 65 3b 0a 20 20 20 20  rea = true;.    
0270: 20 20 20 20 74 68 69 73 2e 5f 62 45 64 69 74 61      this._bEdita
0280: 62 6c 65 4e 6f 64 65 20 3d 20 74 72 75 65 3b 0a  bleNode = true;.
0290: 20 20 20 20 20 20 20 20 74 68 69 73 2e 5f 62 49          this._bI
02a0: 66 72 61 6d 65 20 3d 20 66 61 6c 73 65 3b 0a 20  frame = false;. 
02b0: 20 20 20 20 20 20 20 69 66 20 28 62 43 68 72 6f         if (bChro
02c0: 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  me) {.          
02d0: 20 20 62 72 6f 77 73 65 72 2e 73 74 6f 72 61 67    browser.storag
02e0: 65 2e 6c 6f 63 61 6c 2e 67 65 74 28 22 75 69 5f  e.local.get("ui_
02f0: 6f 70 74 69 6f 6e 73 22 2c 20 74 68 69 73 2e 73  options", this.s
0300: 65 74 4f 70 74 69 6f 6e 73 2e 62 69 6e 64 28 74  etOptions.bind(t
0310: 68 69 73 29 29 3b 0a 20 20 20 20 20 20 20 20 7d  his));.        }
0320: 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20   else {.        
0330: 20 20 20 20 62 72 6f 77 73 65 72 2e 73 74 6f 72      browser.stor
0340: 61 67 65 2e 6c 6f 63 61 6c 2e 67 65 74 28 22 75  age.local.get("u
0350: 69 5f 6f 70 74 69 6f 6e 73 22 29 2e 74 68 65 6e  i_options").then
0360: 28 74 68 69 73 2e 73 65 74 4f 70 74 69 6f 6e 73  (this.setOptions
0370: 2e 62 69 6e 64 28 74 68 69 73 29 2c 20 73 68 6f  .bind(this), sho
0380: 77 45 72 72 6f 72 29 3b 0a 20 20 20 20 20 20 20  wError);.       
0390: 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 65   }.    }..    se
03a0: 74 4f 70 74 69 6f 6e 73 20 28 6f 4f 70 74 69 6f  tOptions (oOptio
03b0: 6e 73 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66  ns) {.        if
03c0: 20 28 6f 4f 70 74 69 6f 6e 73 2e 68 61 73 4f 77   (oOptions.hasOw
03d0: 6e 50 72 6f 70 65 72 74 79 28 22 75 69 5f 6f 70  nProperty("ui_op
03e0: 74 69 6f 6e 73 22 29 29 20 7b 0a 20 20 20 20 20  tions")) {.     
03f0: 20 20 20 20 20 20 20 74 68 69 73 2e 5f 62 54 65         this._bTe
0400: 78 74 41 72 65 61 20 3d 20 6f 4f 70 74 69 6f 6e  xtArea = oOption
0410: 73 2e 75 69 5f 6f 70 74 69 6f 6e 73 2e 74 65 78  s.ui_options.tex
0420: 74 61 72 65 61 3b 0a 20 20 20 20 20 20 20 20 20  tarea;.         
0430: 20 20 20 74 68 69 73 2e 5f 62 45 64 69 74 61 62     this._bEditab
0440: 6c 65 4e 6f 64 65 20 3d 20 6f 4f 70 74 69 6f 6e  leNode = oOption
0450: 73 2e 75 69 5f 6f 70 74 69 6f 6e 73 2e 65 64 69  s.ui_options.edi
0460: 74 61 62 6c 65 6e 6f 64 65 3b 0a 20 20 20 20 20  tablenode;.     
0470: 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20     }.    }..    
0480: 65 78 61 6d 69 6e 65 4e 6f 64 65 20 28 78 4e 6f  examineNode (xNo
0490: 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66  de) {.        if
04a0: 20 28 78 4e 6f 64 65 20 26 26 20 78 4e 6f 64 65   (xNode && xNode
04b0: 20 69 6e 73 74 61 6e 63 65 6f 66 20 48 54 4d 4c   instanceof HTML
04c0: 45 6c 65 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20  Element) {.     
04d0: 20 20 20 20 20 20 20 69 66 20 28 78 4e 6f 64 65         if (xNode
04e0: 20 3d 3d 3d 20 74 68 69 73 2e 78 54 65 78 74 4e   === this.xTextN
04f0: 6f 64 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20  ode) {.         
0500: 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20         return;. 
0510: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
0520: 20 20 20 20 20 20 20 20 20 69 66 20 28 20 28 20           if ( ( 
0530: 28 78 4e 6f 64 65 2e 74 61 67 4e 61 6d 65 20 3d  (xNode.tagName =
0540: 3d 20 22 54 45 58 54 41 52 45 41 22 20 26 26 20  = "TEXTAREA" && 
0550: 74 68 69 73 2e 5f 62 54 65 78 74 41 72 65 61 20  this._bTextArea 
0560: 26 26 20 78 4e 6f 64 65 2e 67 65 74 41 74 74 72  && xNode.getAttr
0570: 69 62 75 74 65 28 22 73 70 65 6c 6c 63 68 65 63  ibute("spellchec
0580: 6b 22 29 20 21 3d 3d 20 22 66 61 6c 73 65 22 29  k") !== "false")
0590: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
05a0: 20 20 20 20 20 7c 7c 20 28 78 4e 6f 64 65 2e 69       || (xNode.i
05b0: 73 43 6f 6e 74 65 6e 74 45 64 69 74 61 62 6c 65  sContentEditable
05c0: 20 26 26 20 74 68 69 73 2e 5f 62 45 64 69 74 61   && this._bEdita
05d0: 62 6c 65 4e 6f 64 65 29 0a 20 20 20 20 20 20 20  bleNode).       
05e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 7c 20               || 
05f0: 28 78 4e 6f 64 65 2e 74 61 67 4e 61 6d 65 20 3d  (xNode.tagName =
0600: 3d 20 22 49 46 52 41 4d 45 22 20 26 26 20 74 68  = "IFRAME" && th
0610: 69 73 2e 5f 62 49 66 72 61 6d 65 29 20 29 0a 20  is._bIframe) ). 
0620: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0630: 20 20 20 26 26 20 78 4e 6f 64 65 2e 73 74 79 6c     && xNode.styl
0640: 65 2e 64 69 73 70 6c 61 79 20 21 3d 3d 20 22 6e  e.display !== "n
0650: 6f 6e 65 22 20 26 26 20 78 4e 6f 64 65 2e 73 74  one" && xNode.st
0660: 79 6c 65 2e 76 69 73 69 62 69 6c 69 74 79 20 21  yle.visibility !
0670: 3d 3d 20 22 68 69 64 64 65 6e 22 0a 20 20 20 20  == "hidden".    
0680: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0690: 26 26 20 21 28 78 4e 6f 64 65 2e 64 61 74 61 73  && !(xNode.datas
06a0: 65 74 2e 67 72 61 6d 6d 61 6c 65 63 74 65 5f 62  et.grammalecte_b
06b0: 75 74 74 6f 6e 20 20 26 26 20 20 78 4e 6f 64 65  utton  &&  xNode
06c0: 2e 64 61 74 61 73 65 74 2e 67 72 61 6d 6d 61 6c  .dataset.grammal
06d0: 65 63 74 65 5f 62 75 74 74 6f 6e 20 3d 3d 20 22  ecte_button == "
06e0: 66 61 6c 73 65 22 29 20 29 20 7b 0a 20 20 20 20  false") ) {.    
06f0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
0700: 2e 78 54 65 78 74 4e 6f 64 65 20 3d 20 78 4e 6f  .xTextNode = xNo
0710: 64 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  de;.            
0720: 20 20 20 20 74 68 69 73 2e 73 68 6f 77 28 29 0a      this.show().
0730: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20              }.  
0740: 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20        }.        
0750: 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20  else {.         
0760: 20 20 20 74 68 69 73 2e 78 54 65 78 74 4e 6f 64     this.xTextNod
0770: 65 20 3d 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20  e = null;.      
0780: 20 20 20 20 20 20 74 68 69 73 2e 68 69 64 65 28        this.hide(
0790: 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20  );.        }.   
07a0: 20 7d 0a 0a 20 20 20 20 73 68 6f 77 20 28 29 20   }..    show () 
07b0: 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68  {.        if (th
07c0: 69 73 2e 78 54 65 78 74 4e 6f 64 65 29 20 7b 0a  is.xTextNode) {.
07d0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
07e0: 2e 78 42 75 74 74 6f 6e 2e 73 74 79 6c 65 2e 64  .xButton.style.d
07f0: 69 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22 3b  isplay = "none";
0800: 20 2f 2f 20 77 65 20 68 69 64 65 20 69 74 20 62   // we hide it b
0810: 65 66 6f 72 65 20 73 68 6f 77 69 6e 67 20 69 74  efore showing it
0820: 20 61 67 61 69 6e 20 74 6f 20 72 65 6c 61 75 6e   again to relaun
0830: 63 68 20 74 68 65 20 61 6e 69 6d 61 74 69 6f 6e  ch the animation
0840: 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74  .            let
0850: 20 6f 43 6f 6f 72 64 20 3d 20 6f 47 72 61 6d 6d   oCoord = oGramm
0860: 61 6c 65 63 74 65 2e 67 65 74 45 6c 65 6d 65 6e  alecte.getElemen
0870: 74 43 6f 6f 72 64 28 74 68 69 73 2e 78 54 65 78  tCoord(this.xTex
0880: 74 4e 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20  tNode);.        
0890: 20 20 20 20 2f 2f 63 6f 6e 73 6f 6c 65 2e 6c 6f      //console.lo
08a0: 67 28 22 74 6f 70 3a 22 2c 20 6f 43 6f 6f 72 64  g("top:", oCoord
08b0: 2e 6c 65 66 74 2c 20 22 62 6f 74 74 6f 6d 3a 22  .left, "bottom:"
08c0: 2c 20 6f 43 6f 6f 72 64 2e 74 6f 70 2c 20 22 6c  , oCoord.top, "l
08d0: 65 66 74 3a 22 2c 20 6f 43 6f 6f 72 64 2e 62 6f  eft:", oCoord.bo
08e0: 74 74 6f 6d 2c 20 22 72 69 67 68 74 3a 22 2c 20  ttom, "right:", 
08f0: 6f 43 6f 6f 72 64 2e 72 69 67 68 74 29 3b 0a 20  oCoord.right);. 
0900: 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e             this.
0910: 78 42 75 74 74 6f 6e 2e 73 74 79 6c 65 2e 74 6f  xButton.style.to
0920: 70 20 3d 20 60 24 7b 6f 43 6f 6f 72 64 2e 62 6f  p = `${oCoord.bo
0930: 74 74 6f 6d 7d 70 78 60 3b 0a 20 20 20 20 20 20  ttom}px`;.      
0940: 20 20 20 20 20 20 74 68 69 73 2e 78 42 75 74 74        this.xButt
0950: 6f 6e 2e 73 74 79 6c 65 2e 6c 65 66 74 20 3d 20  on.style.left = 
0960: 60 24 7b 6f 43 6f 6f 72 64 2e 6c 65 66 74 7d 70  `${oCoord.left}p
0970: 78 60 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  x`;.            
0980: 74 68 69 73 2e 78 42 75 74 74 6f 6e 2e 73 74 79  this.xButton.sty
0990: 6c 65 2e 64 69 73 70 6c 61 79 20 3d 20 22 62 6c  le.display = "bl
09a0: 6f 63 6b 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a  ock";.        }.
09b0: 20 20 20 20 7d 0a 0a 20 20 20 20 68 69 64 65 20      }..    hide 
09c0: 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69  () {.        thi
09d0: 73 2e 78 42 75 74 74 6f 6e 2e 73 74 79 6c 65 2e  s.xButton.style.
09e0: 64 69 73 70 6c 61 79 20 3d 20 22 6e 6f 6e 65 22  display = "none"
09f0: 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 6e 73  ;.    }..    ins
0a00: 65 72 74 49 6e 74 6f 50 61 67 65 20 28 29 20 7b  ertIntoPage () {
0a10: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 62 53  .        this.bS
0a20: 68 61 64 6f 77 20 3d 20 64 6f 63 75 6d 65 6e 74  hadow = document
0a30: 2e 62 6f 64 79 2e 63 72 65 61 74 65 53 68 61 64  .body.createShad
0a40: 6f 77 52 6f 6f 74 20 7c 7c 20 64 6f 63 75 6d 65  owRoot || docume
0a50: 6e 74 2e 62 6f 64 79 2e 61 74 74 61 63 68 53 68  nt.body.attachSh
0a60: 61 64 6f 77 3b 0a 20 20 20 20 20 20 20 20 69 66  adow;.        if
0a70: 20 28 74 68 69 73 2e 62 53 68 61 64 6f 77 29 20   (this.bShadow) 
0a80: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68  {.            th
0a90: 69 73 2e 78 53 68 61 64 6f 77 42 74 6e 20 3d 20  is.xShadowBtn = 
0aa0: 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65  oGrammalecte.cre
0ab0: 61 74 65 4e 6f 64 65 28 22 64 69 76 22 2c 20 7b  ateNode("div", {
0ac0: 20 73 74 79 6c 65 3a 20 22 64 69 73 70 6c 61 79   style: "display
0ad0: 3a 6e 6f 6e 65 3b 20 70 6f 73 69 74 69 6f 6e 3a  :none; position:
0ae0: 61 62 73 6f 6c 75 74 65 3b 20 77 69 64 74 68 3a  absolute; width:
0af0: 30 3b 20 68 65 69 67 68 74 3a 30 3b 22 20 7d 29  0; height:0;" })
0b00: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68  ;.            th
0b10: 69 73 2e 78 53 68 61 64 6f 77 42 74 6e 4e 6f 64  is.xShadowBtnNod
0b20: 65 20 3d 20 74 68 69 73 2e 78 53 68 61 64 6f 77  e = this.xShadow
0b30: 42 74 6e 2e 61 74 74 61 63 68 53 68 61 64 6f 77  Btn.attachShadow
0b40: 28 7b 20 6d 6f 64 65 3a 20 22 6f 70 65 6e 22 20  ({ mode: "open" 
0b50: 7d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  });.            
0b60: 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65  oGrammalecte.cre
0b70: 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65 6e  ateStyle("conten
0b80: 74 5f 73 63 72 69 70 74 73 2f 6d 65 6e 75 2e 63  t_scripts/menu.c
0b90: 73 73 22 2c 20 6e 75 6c 6c 2c 20 74 68 69 73 2e  ss", null, this.
0ba0: 78 53 68 61 64 6f 77 42 74 6e 4e 6f 64 65 29 3b  xShadowBtnNode);
0bb0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69  .            thi
0bc0: 73 2e 78 53 68 61 64 6f 77 42 74 6e 4e 6f 64 65  s.xShadowBtnNode
0bd0: 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69  .appendChild(thi
0be0: 73 2e 78 42 75 74 74 6f 6e 29 3b 0a 20 20 20 20  s.xButton);.    
0bf0: 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65 6e 74          document
0c00: 2e 62 6f 64 79 2e 61 70 70 65 6e 64 43 68 69 6c  .body.appendChil
0c10: 64 28 74 68 69 73 2e 78 53 68 61 64 6f 77 42 74  d(this.xShadowBt
0c20: 6e 4e 6f 64 65 29 3b 0a 20 20 20 20 20 20 20 20  nNode);.        
0c30: 7d 0a 20 20 20 20 20 20 20 20 65 6c 73 65 20 7b  }.        else {
0c40: 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20  .            if 
0c50: 28 21 64 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c  (!document.getEl
0c60: 65 6d 65 6e 74 42 79 49 64 28 22 67 72 61 6d 6d  ementById("gramm
0c70: 61 6c 65 63 74 65 5f 63 73 73 6d 65 6e 75 22 29  alecte_cssmenu")
0c80: 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ) {.            
0c90: 20 20 20 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65      oGrammalecte
0ca0: 2e 63 72 65 61 74 65 53 74 79 6c 65 28 22 63 6f  .createStyle("co
0cb0: 6e 74 65 6e 74 5f 73 63 72 69 70 74 73 2f 6d 65  ntent_scripts/me
0cc0: 6e 75 2e 63 73 73 22 2c 20 22 67 72 61 6d 6d 61  nu.css", "gramma
0cd0: 6c 65 63 74 65 5f 63 73 73 6d 65 6e 75 22 2c 20  lecte_cssmenu", 
0ce0: 64 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a  document.head);.
0cf0: 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20              }.  
0d00: 20 20 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65            docume
0d10: 6e 74 2e 62 6f 64 79 2e 61 70 70 65 6e 64 43 68  nt.body.appendCh
0d20: 69 6c 64 28 74 68 69 73 2e 78 42 75 74 74 6f 6e  ild(this.xButton
0d30: 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20  );.        }.   
0d40: 20 7d 0a 7d 0a                                    }.}.