"\t return ;",
" }",
" string pos;",
- " var row = _this.view.getRowAt(x,y, out pos );",
- " if (row < 0) {",
+ " var row_widget = _this.view.getRowWidgetAt(x,y, out pos );",
+ " if (row_widget == null) {",
"\t GLib.debug(\"no row selected items\");",
"\t return;",
" }",
" ",
- " var node = _this.selmodel.getNodeAt(row);",
+ " var node = row_widget.get_data<JsRender.Node>(\"node\");",
" if (node == null) {",
- " \tGLib.warning(\"No node found at row %d\", row);",
+ " \tGLib.warning(\"No node found bound to widget\");",
" \treturn;",
"\t}",
"",
"\t return ;",
" }",
" string pos;",
- " var row = _this.view.getRowAt(x,y, out pos );",
- " if (row < 0) {",
+ " var row_widget = _this.view.getRowWidgetAt(x,y, out pos );",
+ " if (row_widget == null) {",
"\t GLib.debug(\"no row selected items\");",
"\t return;",
" }",
" ",
- " var node = _this.selmodel.getNodeAt(row);",
+ " var node = row_widget.get_data<JsRender.Node>(\"node\");",
" if (node == null) {",
- " \tGLib.warning(\"No node found at row %d\", row);",
+ " \tGLib.warning(\"No node found from widget\");",
" \treturn;",
"\t}",
"\t",
" var xname = data.fqn();",
" GLib.debug (\"XNAME IS %s\", xname);",
"",
- " \tvar widget = _this.view.getWidgetAtRow(_this.selmodel.el.selected);",
+ " \tvar widget = data.get_data<Gtk.Widget>(\"tree-row\");",
" \t",
" \t",
" var paintable = new Gtk.WidgetPaintable(widget);",
"\t",
"\t// must get the pos before we clear the hightlihg.",
" \tvar pos = \"\";",
- " \tvar row = _this.view.getRowAt(x,y, out pos);",
+ " \tvar row_widget = _this.view.getRowWidgetAt(x,y, out pos);",
"\tthis.addHighlight(null,\"\");",
" ",
" \tvar is_shift = _this.keystate.is_shift > 0;",
"",
"",
"",
- "\tif (row < 0) {",
+ "\tif (row_widget == null) {",
"\t\tGLib.debug(\"could not get row %d,%d, %s\", (int)x,(int)y,pos);",
"\t\treturn false; //Gdk.DragAction.COPY;",
"\t}",
- "\tvar tr = (Gtk.TreeListRow)_this.view.el.model.get_object(row);",
- "\t",
- "\tvar node = (JsRender.Node)tr.get_item();",
+ " \t",
+ "\tvar node = row_widget.get_data<JsRender.Node>(\"node\");",
"",
" \tif (pos == \"above\" || pos == \"below\") {",
"\t\tif (node.parent == null) {",
" // if path of source and dest are inside each other..",
" // need to add source info to drag?",
" // the fail();",
- " \tvar row = _this.view.getRowAt(x,y, out pos);",
+ " \t var row_widget = _this.view.getRowWidgetAt( x,y, out pos); ",
+ "// \tvar row = _this.view.getRowAt(x,y, out pos);",
" \t//GLib.debug(\"check is over %d, %d, %s\", (int)x,(int)y, pos);",
"",
- " \tif (row < 0) {",
+ " \tif (row_widget == null) {",
"\t\tthis.addHighlight(null, \"\");\t",
"\t \treturn Gdk.DragAction.COPY;",
" \t}",
- "\tvar tr = (Gtk.TreeListRow)_this.view.el.model.get_object(row);",
- "\t",
- "\tvar node = (JsRender.Node)tr.get_item();",
+ " \tvar node = row_widget.get_data<JsRender.Node>(\"node\");",
"\t",
"\t//GLib.debug(\"Drop over node: %s\", node.fqn());",
"\t",
" \t",
" \t",
" \t // _this.view.highlightDropPath(\"\", (Gtk.TreeViewDropPosition)0);",
- "\tvar w = _this.view.getWidgetAt(x,y);",
- "\tthis.addHighlight(w, pos); ",
+ "",
+ "\tthis.addHighlight(row_widget, pos); ",
"\treturn is_shift ? Gdk.DragAction.MOVE : Gdk.DragAction.COPY;\t\t",
"}"
]
"\tif (node == null || node.fqn() == \"\") {",
"\t\treturn;",
"\t}",
+ "\t",
+ "\tnode.set_data<Gtk.Widget>(\"tree-row\", expand.get_parent().get_parent());",
+ "\texpand.get_parent().get_parent().set_data<JsRender.Node>(\"node\", node);",
+ "\t",
" //GLib.debug(\"node is %s\", node.get_type().name());",
"// was item (1) in old layout",
"",
],
"string name" : "left-tree-view",
"xtype" : "ColumnView",
- "| Gtk.Widget? getWidgetAt" : [
- "(double x, double y) {",
+ "| Gtk.Widget? getRowWidgetAt" : [
+ "(double x, double y, out string pos) {",
"",
+ "\tpos = \"\";",
"\tvar w = this.el.pick(x, y, Gtk.PickFlags.DEFAULT);",
"\t//GLib.debug(\"got widget %s\", w == null ? \"nothing\" : w.get_type().name());",
"\tif (w == null) {",
"\t\treturn null;",
"\t}",
"\t",
- "\tvar row= w.get_ancestor(GLib.Type.from_name(\"GtkColumnViewRowWidget\"));",
+ "\tvar row = w.get_ancestor(GLib.Type.from_name(\"GtkColumnViewRowWidget\"));",
"\tif (row == null) {",
"\t\treturn null;",
"\t}",
+ "\t",
+ "\t//GLib.debug(\"got colview %s\", row == null ? \"nothing\" : row.get_type().name());",
+ "\t ",
+ "\t",
+ "\t",
+ "\t//GLib.debug(\"row number is %d\", rn);",
+ "\t//GLib.debug(\"click %d, %d\", (int)x, (int)y);",
+ "\t// above or belw",
+ "\tGraphene.Rect bounds;",
+ "\trow.compute_bounds(this.el, out bounds);",
+ "\t//GLib.debug(\"click x=%d, y=%d, w=%d, h=%d\", ",
+ "\t//\t(int)bounds.get_x(), (int)bounds.get_y(),",
+ "\t//\t(int)bounds.get_width(), (int)bounds.get_height()",
+ "\t//\t);",
+ "\tvar ypos = y - bounds.get_y();",
+ "\t//GLib.debug(\"rel ypos = %d\", (int)ypos);\t",
+ "\tvar rpos = 100.0 * (ypos / bounds.get_height());",
+ "\t//GLib.debug(\"rel pos = %d %%\", (int)rpos);",
+ "\tpos = \"over\";",
+ "\t",
+ "\tif (rpos > 80) {",
+ "\t\tpos = \"below\";",
+ "\t} else if (rpos < 20) {",
+ "\t\tpos = \"above\";",
+ "\t} ",
"\treturn row;",
- " ",
- "",
" }"
],
- "| Gtk.Widget? getWidgetAtRow" : [
+ "| Gtk.Widget? getWidgetAtRowBROKE" : [
"(uint row) {",
"/*",
" \t",
"",
" }"
],
- "| int getRowAt" : [
+ "| int getRowAtOLD" : [
"(double x, double y, out string pos) {",
"",
"\tpos = \"\";",
"\tthis.removeErrors();",
"\tthis.error_widgets = new Gee.ArrayList<Gtk.Widget>();",
"\tforeach(var diag in ar) { ",
- "\t",
- "\t\t ",
+ "\t ",
"// print(\"get inter\\n\");",
"\t var node= file.lineToNode( (int)diag.range.start.line) ;",
"\t if (node == null) {",
"\t \tcontinue;",
" \t}",
- " \tvar row = _this.model.nodeToRow(node);",
- " \tif (row < 0) {",
- " \t\tcontinue;",
- "\t\t}",
- " \tvar w = this.view.getWidgetAtRow(row);",
+ " \tvar w = node.get_data<Gtk.Widget>(\"tree-row\");",
" \tif (w == null) {",
" \t\treturn;",
"\t\t}",