bright-gpu-74537
05/26/2020, 4:20 PMhaxe
package custom;
import haxe.ui.containers.Box;
import js.Browser;
import js.html.TextAreaElement;
class CodeMirror extends Box {
private var _textarea:TextAreaElement = null;
private var _codemirror:js.codemirror.CodeMirror;
private override function onReady() {
super.onReady();
initCodeMirror();
}
private function initCodeMirror() {
if (_textarea == null) {
_textarea = Browser.document.createTextAreaElement();
this.element.appendChild(_textarea);
}
if (_codemirror == null) {
_codemirror = js.codemirror.CodeMirror.fromTextArea(_textarea);
_codemirror.setValue(this.text);
}
}
public override function validateComponentLayout():Bool {
var b = super.validateComponentLayout();
if (this.width > 0 && this.height > 0 && _codemirror != null) {
var usableSize = this.layout.usableSize;
_codemirror.setSize(usableSize.width, usableSize.height);
}
return b;
}
private override function set_text(value:String):String {
super.set_text(value);
if (_codemirror != null) {
_codemirror.setValue(value);
}
return value;
}
}
bright-gpu-74537
05/26/2020, 4:20 PMbright-gpu-74537
05/26/2020, 4:20 PMxml
<?xml version="1.0" encoding="utf-8" ?>
<module>
<components>
<class package="custom" />
</components>
</module>
bright-gpu-74537
05/26/2020, 4:20 PMbright-gpu-74537
05/26/2020, 4:20 PMxml
<vbox>
<style>
.code-mirror {
border: 1px solid red;
padding: 5px;
}
</style>
<code-mirror width="300" height="100" text="Something text" />
</vbox>
bright-gpu-74537
05/26/2020, 4:21 PMbright-gpu-74537
05/26/2020, 4:21 PMbright-gpu-74537
05/26/2020, 4:28 PMclever-oil-61353
05/26/2020, 4:29 PMbright-gpu-74537
05/26/2020, 4:29 PMbright-gpu-74537
05/26/2020, 4:35 PMhaxe
package custom;
import haxe.ui.backend.html5.HtmlUtils;
import haxe.ui.containers.Box;
import js.Browser;
import js.html.TextAreaElement;
class CodeMirror extends Box {
private var _textarea:TextAreaElement = null;
private var _codemirror:js.codemirror.CodeMirror;
private override function onReady() {
super.onReady();
initCodeMirror();
}
private function initCodeMirror() {
if (_textarea == null) {
_textarea = Browser.document.createTextAreaElement();
this.element.appendChild(_textarea);
}
if (_codemirror == null) {
_codemirror = js.codemirror.CodeMirror.fromTextArea(_textarea);
if (this.text != null) {
_codemirror.setValue(this.text);
}
_codemirror.setOption("lineWrapping", _wrap);
invalidateComponent();
}
}
public override function validateComponentLayout():Bool {
var b = super.validateComponentLayout();
if (this.width > 0 && this.height > 0 && _codemirror != null) {
var usableSize = this.layout.usableSize;
_codemirror.setSize(usableSize.width, usableSize.height);
}
return b;
}
private override function set_text(value:String):String {
super.set_text(value);
if (_codemirror != null) {
_codemirror.setValue(value);
}
return value;
}
private var _wrap:Bool = true;
public var wrap(get, set):Bool;
private function get_wrap():Bool {
return _wrap;
}
private function set_wrap(value:Bool):Bool {
_wrap = value;
if (_codemirror != null) {
_codemirror.setOption("lineWrapping", _wrap);
}
return value;
}
}
bright-gpu-74537
05/26/2020, 4:36 PMbright-gpu-74537
05/26/2020, 4:36 PMxml
<vbox style="padding: 20px;">
<style>
.code-mirror {
border: 1px solid red;
padding: 1px;
}
</style>
<hbox style="padding: 5px;" width="600" height="400">
<button text="Button" height="100%" onclick="this.width += 25" />
<vbox width="100%" height="100%">
<hbox width="100%">
<button text="Button" verticalAlign="top" />
<button text="Button" width="100%" onclick="this.height += 25" />
<button text="Button" verticalAlign="bottom" />
</hbox>
<hbox width="100%" height="100%">
<code-mirror id="ex1" width="50%" height="100%" text="..." />
<code-mirror id="ex2" width="50%" height="100%" style="border:1px solid blue;" text="..." />
</hbox>
<hbox width="100%">
<button text="Button" verticalAlign="top" />
<button text="Button" width="100%" onclick="this.height += 25" />
<button text="Button" verticalAlign="bottom" />
</hbox>
</vbox>
<button text="Button" height="100%" onclick="this.width += 25" />
</hbox>
<checkbox text="Wrap" selected="true" onchange="ex1.wrap = ex2.wrap = this.selected" />
</vbox>
clever-oil-61353
05/26/2020, 4:39 PMclever-oil-61353
05/26/2020, 4:58 PMbright-gpu-74537
05/26/2020, 5:16 PMbright-gpu-74537
05/26/2020, 5:16 PMclever-oil-61353
05/26/2020, 5:25 PMclever-oil-61353
05/26/2020, 5:27 PMclever-oil-61353
05/27/2020, 12:28 AMclever-oil-61353
05/27/2020, 1:05 AMclever-oil-61353
05/27/2020, 7:40 AMclever-oil-61353
05/27/2020, 8:29 PMbright-yak-48460
05/27/2020, 10:12 PMbrave-kangaroo-30399
05/29/2020, 12:00 AM:hover
brave-kangaroo-30399
05/29/2020, 12:01 AMbutton
style because if I removeClass("button")
then it works as intendedbrave-kangaroo-30399
05/29/2020, 12:01 AMuser
05/29/2020, 6:13 AMuser
05/29/2020, 6:13 AMuser
05/29/2020, 6:14 AM