X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=common%2Ftextarea.js;h=6580d3ac2c29eb0f2f6b6043f74d8314bf3b092f;hb=850fb73617adfeee44e7fee1fd577d10fec38b10;hp=ce45d8a762a1fbb19b9d4d25b109039e5a62ee89;hpb=b49775481c37d9c849d91c25221e84349477361f;p=dygraphs.git diff --git a/common/textarea.js b/common/textarea.js index ce45d8a..6580d3a 100644 --- a/common/textarea.js +++ b/common/textarea.js @@ -38,6 +38,8 @@ function TextArea(parent) { this.ok.textContent = "OK"; this.cancel = TextArea.createChild("button", this.buttons); this.cancel.textContent = "Cancel"; + this.height = 315; + this.width = 445; var textarea = this; this.ok.onclick = function() { @@ -80,10 +82,6 @@ TextArea.prototype.show = function(title, content) { this.title.textContent = title; this.textarea.value = content; - var height = 315; - var width = 445; - - var sums = function(adds, subtracts, field) { var total = 0; for (var idx in adds) { @@ -97,18 +95,33 @@ TextArea.prototype.show = function(title, content) { this.elem.style.display = "block"; this.background.style.display = "block"; - this.elem.style.height = height + "px"; - this.elem.style.width = width + "px"; + this.elem.style.height = this.height + "px"; + this.elem.style.width = this.width + "px"; this.textarea.style.height = (-18 + sums([this.elem], [this.title, this.buttons], "offsetHeight")) + "px"; this.textarea.style.width = (-16 + sums([this.elem], [ ], "offsetWidth")) + "px"; + var textarea = this; + + this.keyDownListener_ = function(event) { + console.log(event); + if(event.keyCode == 13) { // enter / return + textarea.hide(); + } + if(event.keyCode == 27) { // esc + textarea.hide(); + } + } + + Dygraph.addEvent(document, "keydown", this.keyDownListener_); this.reposition(); window.addEventListener('resize', this.reposition, false); document.documentElement.addEventListener('onscroll', this.reposition); } TextArea.prototype.hide = function() { + Dygraph.removeEvent(document, "keypress", this.keyDownListener_); + this.keyDownListener_ = null; this.elem.style.display = "none"; this.background.style.display = "none"; window.removeEventListener("resize", this.reposition);