80 lines
2.5 KiB
JavaScript
80 lines
2.5 KiB
JavaScript
|
|
////////////////////////
|
|
// CTextBox_Multilin_SetText
|
|
//
|
|
var CTextBox_SetText = function (id, text) {
|
|
var element = document.getElementById(id);
|
|
element.value = text;
|
|
}
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_KeyDown
|
|
//
|
|
var CTextBox_Multiline_KeyDown = function (e) {
|
|
if (e.keyCode == 9 || e.which == 9) {
|
|
e.preventDefault();
|
|
var s = this.selectionStart;
|
|
this.value = this.value.substring(0, this.selectionStart) + "\t" + this.value.substring(this.selectionEnd);
|
|
this.selectionEnd = s + 1;
|
|
}
|
|
};
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_SaveSizeData
|
|
//
|
|
var CTextBox_Multiline_SaveSizeData = function (textArea) {
|
|
var hidSizeData = document.getElementById(textArea.cfg.hidSize);
|
|
hidSizeData.value = JSON.stringify(textArea.cfg.size);
|
|
}
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_RestoreSizeData
|
|
//
|
|
var CTextBox_Multiline_RestoreSizeData = function (textArea) {
|
|
var hidSizeData = document.getElementById(textArea.cfg.hidSize);
|
|
|
|
if (hidSizeData.value !== "") {
|
|
textArea.cfg.size = JSON.parse(hidSizeData.value);;
|
|
textArea.style.width = textArea.cfg.size.width + "px";
|
|
textArea.style.height = textArea.cfg.size.height + "px";
|
|
textArea.scrollTop = textArea.cfg.size.scrollTop;
|
|
}
|
|
textArea.cfg.size = { height: textArea.offsetHeight, scrollTop: textArea.scrollTop };
|
|
}
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_MouseUp
|
|
//
|
|
var CTextBox_Multiline_MouseUp = function (e) {
|
|
var textArea = e.target;
|
|
var newSize = { height: textArea.offsetHeight, width: textArea.offsetWidth, scrollTop: textArea.scrollTop };
|
|
if (textArea.cfg.size.height != newSize.height) {
|
|
textArea.cfg.size = newSize;
|
|
CTextBox_Multiline_SaveSizeData(textArea);
|
|
}
|
|
}
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_Scrolled
|
|
//
|
|
var CTextBox_Multiline_Scrolled = function (e) {
|
|
var textArea = e.target;
|
|
textArea.cfg.size = { height: textArea.offsetHeight, scrollTop: textArea.scrollTop };
|
|
CTextBox_Multiline_SaveSizeData(textArea);
|
|
}
|
|
|
|
////////////////////////
|
|
// CTextBox_Multiline_Init
|
|
//
|
|
var CTextBox_Multiline_Init = function (cfg) {
|
|
var textArea = document.getElementById(cfg.txtContent);
|
|
textArea.cfg = cfg;
|
|
|
|
textArea.onkeydown = CTextBox_Multiline_KeyDown;
|
|
if (cfg.keepSize) {
|
|
CTextBox_Multiline_RestoreSizeData(textArea);
|
|
textArea.onmouseup = CTextBox_Multiline_MouseUp;
|
|
textArea.onscroll = CTextBox_Multiline_Scrolled;
|
|
}
|
|
}
|