Всё написанное про Sciter 2.0.29 на Win7:
Почему в onControlEvent не приходит ни одного события?
Почему Event.SELECT_STATE_CHANGED приходит только когда я прокручиваю дерево с мыши mousewheel'ом?
Почему если экспандить узел дерева по двойному клику, то придёт Event.SELECT_SELECTION_CHANGED, а если кликнуть на иконке состояния узла, то при его раскрытии/свёртывании ни SELECT_SELECTION_CHANGED ни SELECT_STATE_CHANGED не приходят?
Это так задумано, или я что-то не так делаю?
Ну и как сделать визуальные эффекты для DnD на virtual tree -- по прежнему интересно.
Вот код (всё остальное, как в твоём примере про Virtual Tree):
<style>
widget#tree {
prototype: Draggable;
size: 300px *;
overflow-x:hidden;
}
</style>
<script type="text/tiscript">
class Draggable: Behavior
{
function attached() {
this.src = "";
this.dst = "";
this.dragging = false;
}
function onControlEvent(evt) {
stdout << "onControlEvent\n";
return false;
}
function onMouse(evt) {
switch(evt.type) {
case Event.SELECT_SELECTION_CHANGED:
stdout << "Event.SELECT_SELECTION_CHANGED\n";
break;
case Event.SELECT_STATE_CHANGED:
stdout << "Event.SELECT_STATE_CHANGED\n";
break;
case Event.MOUSE_DOWN:
if (evt.target.$is(text))
{
this.src = evt.target.text;
this.src_opt = evt.target.parent;
this.dst = "";
this.dragging = true;
return false;
}
break;
case Event.MOUSE_UP:
if(this.dragging)
{
this.dragging = false;
if (evt.target.$is(text)) {
this.dst = evt.target.text;
this.dst_opt = evt.target.parent;
if (this.dst != "" && this.src != "" && this.src_opt != this.dst_opt) {
view.moveRow(this.src, this.dst);
return true;
}
}
this.dst = this.src = "";
}
break;
case Event.MOUSE_MOVE:
if( this.dragging && evt.target.parent != this.dst_opt)
{
return true;
}
break;
}
return false;
}
}
include "virtual-tree.tis";
include "tree-data-source.tis";
var treew = $(widget#tree);
VirtualTree(treew, new TreeDataSource());
</script>