public Xcls_LeftTreeMenu LeftTreeMenu;
// my vars (def)
- public signal bool before_node_change (JsRender.Node? node);
+ public signal bool before_node_change ();
public signal void changed ();
public signal void node_selected (JsRender.Node? node, string source);
public Xcls_MainWindow main_window;
// my vars (def)
public string dragData;
- public string[] dropList;
public int drag_x;
+ public string[] dropList;
public int drag_y;
public string lastEventSource;
public bool drag_in_motion;
this.el.button_press_event.connect( ( ev) => {
//console.log("button press?");
this.lastEventSource = "tree";
- if (! _this.before_node_change(null) ) {
+ if (! _this.before_node_change() ) {
return true;
}
+
if (ev.type != Gdk.EventType.BUTTON_PRESS || ev.button != 3) {
// print("click:" + res.path.to_string());
return true;
});
+ this.el.drag_begin.connect( ( ctx) => {
+ //print('SOURCE: drag-begin');
+
+
+ //this.targetData = "";
+
+ // find what is selected in our tree...
+
+ var s = _this.view.el.get_selection();
+ if (s.count_selected_rows() < 1) {
+ return;
+ }
+ Gtk.TreeIter iter;
+ Gtk.TreeModel mod;
+ s.get_selected(out mod, out iter);
+
+
+
+ // set some properties of the tree for use by the dropped element.
+ GLib.Value value;
+ _this.model.el.get_value(iter, 2, out value);
+ var tp = mod.get_path(iter).to_string();
+ var data = (JsRender.Node)(value.dup_object());
+ var xname = data.fqn();
+ print ("XNAME IS " + xname+ "\n");
+ this.dragData = tp;
+ this.dropList = _this.main_window.windowstate.file.palete().getDropList(xname);
+
+ print ("DROP LIST IS " + string.joinv(", ", this.dropList) + "\n");
+
+
+ // make the drag icon a picture of the node that was selected
+
+
+ // by default returns the path..
+ var path = _this.model.el.get_path(iter);
+
+
+ var pix = this.el.create_row_drag_icon ( path);
+
+ Gtk.drag_set_icon_surface (ctx, pix) ;
+
+ return;
+ });
this.el.cursor_changed.connect( ( ) => {
if (this.blockChanges) { // probably not needed..
return ;
}
- if (!_this.before_node_change(null) ) {
+ if (!_this.before_node_change( ) ) {
this.blockChanges = true;
this.el.get_selection().unselect_all();
this.blockChanges = false;
return ;
});
- this.el.drag_begin.connect( ( ctx) => {
- //print('SOURCE: drag-begin');
-
-
- //this.targetData = "";
-
- // find what is selected in our tree...
-
- var s = _this.view.el.get_selection();
- if (s.count_selected_rows() < 1) {
- return;
- }
- Gtk.TreeIter iter;
- Gtk.TreeModel mod;
- s.get_selected(out mod, out iter);
-
-
-
- // set some properties of the tree for use by the dropped element.
- GLib.Value value;
- _this.model.el.get_value(iter, 2, out value);
- var tp = mod.get_path(iter).to_string();
- var data = (JsRender.Node)(value.dup_object());
- var xname = data.fqn();
- print ("XNAME IS " + xname+ "\n");
- this.dragData = tp;
- this.dropList = _this.main_window.windowstate.file.palete().getDropList(xname);
-
- print ("DROP LIST IS " + string.joinv(", ", this.dropList) + "\n");
-
-
- // make the drag icon a picture of the node that was selected
-
-
- // by default returns the path..
- var path = _this.model.el.get_path(iter);
-
-
- var pix = this.el.create_row_drag_icon ( path);
-
- Gtk.drag_set_icon_surface (ctx, pix) ;
-
- return;
- });
this.el.drag_end.connect( (drag_context) => {
//Seed.print('LEFT-TREE: drag-end');
this.dragData = "";
}
}
+ public void setCursor (string treepath, string sourceEvent) {
+ this.lastEventSource = sourceEvent;
+ //this.blockChanges = true; << block changes prevents loading of 'node data' and firing of node_selected..
+ this.el.set_cursor(new Gtk.TreePath.from_string(treepath), null, false);
+ // fire node_selected..
+ //this.blockChanges = false;
+ this.lastEventSource = "";
+ }
public void selectNode (string treepath_str, string source) {
this.lastEventSource = source;
//this.selection.select_path(new Gtk.TreePath.from_string( treepath_str));