"gen_extended" : false,
"items" : [
{
+ "# Gee.ArrayList<Gtk.Widget>? error_widgets" : "null",
"# JsRender.JsRender file" : "",
"# JsRender.Node node" : "",
"# Xcls_MainWindow main_window" : "null",
"bool loading" : false,
"bool vexpand" : true,
"id" : "LeftProps",
+ "int last_error_counter" : "-1",
"items" : [
{
"$ xns" : "Gtk",
},
{
"$ xns" : "Gtk",
- "bool always_show_image" : true,
- "bool hexpand" : true,
"items" : [
{
"$ xns" : "Gtk",
- "* pack" : false,
- "bool autohide" : true,
- "id" : "AddPropertyPopup",
+ "* prop" : "popover",
+ "id" : "addpop",
"items" : [
{
"$ xns" : "Gtk",
"items" : [
{
"$ xns" : "Gtk",
- "label" : "id: _this.{ID} (Vala)",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "id: _this.{ID} (Vala)",
+ "string tooltip_text" : "Using _this.{ID} will map to this element",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" () => {",
- " \t_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t// is this userdef or special??",
" \tvar add = new JsRender.NodeProp.prop(\"id\");",
" \tif (_this.node.has_prop_key(add)) {",
" \t",
" \t_this.view.editProp( add );",
" \t",
- "\t",
"}"
]
},
- "tooltip_markup" : "Using _this.{ID} will map to this element",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "pack: Pack method (Vala)",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "pack: Pack method (Vala)",
+ "string tooltip_text" : "how to pack this element onto parent, (method, 2nd arg, 3rd arg) .. the 1st argument is filled by the element",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) => {",
" ",
"",
- "\t_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t// is this userdef or special??",
" \tvar add = new JsRender.NodeProp.special(\"pack\", \"add\");",
" \tif (_this.node.has_prop_key(add)) {",
"}"
]
},
- "tooltip_markup" : "how to pack this element onto parent, (method, 2nd arg, 3rd arg) .. the 1st argument is filled by the element",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "ctor: Alterative to default contructor (Vala)",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "ctor: Alterative to default contructor (Vala)",
+ "string tooltip_text" : [
+ "eg. ",
+ "",
+ "new Clutter.Image.from_file(.....)"
+ ],
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) => {",
" ",
- " _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t// is this userdef or special??",
" \tvar add = new JsRender.NodeProp.special(\"ctor\");",
" \tif (_this.node.has_prop_key(add)) {",
"}"
]
},
- "tooltip_markup" : [
- "eg. ",
- "",
- "new Clutter.Image.from_file(.....)"
- ],
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "init: initialziation code (vala)",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "init: initialziation code (vala)",
+ "string tooltip_text" : "This code is called after the ctor",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) => {",
" ",
- " _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t// is this userdef or special??",
" \tvar add = new JsRender.NodeProp.special(\"init\",\"{\\n\\n}\\n\" ) ;",
" \tif (_this.node.has_prop_key(add)) {",
"}"
]
},
- "tooltip_markup" : "This code is called after the ctor",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "cms-id: (Roo JS/Pman library)",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "cms-id: (Roo JS/Pman library)",
+ "string tooltip_text" : [
+ "set the cms-id for this element, when converted to javascript, the html value will be wrapped with Pman.Cms.content({cms-id},{original-html})",
+ ""
+ ],
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" () => {",
- " ",
- " _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
+ " ",
" \t// is this userdef or special??",
" \tvar add = new JsRender.NodeProp.prop(\"cms-id\",\"string\", \"\" ) ;",
" \tif (_this.node.has_prop_key(add)) {",
"}"
]
},
- "tooltip_markup" : [
- "set the cms-id for this element, when converted to javascript, the html value will be wrapped with Pman.Cms.content({cms-id},{original-html})",
- ""
- ],
"xtype" : "Button"
},
{
},
{
"$ xns" : "Gtk",
- "label" : "String",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "String",
+ "string tooltip_text" : "Add a user defined string property",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
"(self) => {",
- " _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
"\t_this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
- "\t\t new JsRender.NodeProp.prop(\"\", \"string\", \"\") ,",
+ "\t\t new JsRender.NodeProp.user(\"\", \"string\", \"\") ,",
"\t\t-1, ",
"\t\ttrue",
"\t);",
"}"
]
},
- "tooltip_markup" : "Add a user defined string property",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Number",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Number",
+ "string tooltip_text" : "Add a user defined number property",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " _this.AddPropertyPopup.el.hide();",
- " ",
+ " ",
+ " \t_this.addpop.el.hide();",
" _this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
- "\t\t new JsRender.NodeProp.prop(\"\", \"int\", \"0\") ,",
+ "\t\t new JsRender.NodeProp.user(\"\", \"int\", \"0\") ,",
"\t\t-1, ",
"\t\ttrue",
"\t);",
"}"
]
},
- "tooltip_markup" : "Add a user defined number property",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Boolean",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Boolean",
+ "string tooltip_text" : "Add a user defined boolean property",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
" ",
- " \t _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" _this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
- "\t\t new JsRender.NodeProp.prop(\"\", \"bool\", \"true\") ,",
+ "\t\t new JsRender.NodeProp.user(\"\", \"bool\", \"true\") ,",
"\t\t-1, ",
"\t\ttrue",
"\t); ",
"}"
]
},
- "tooltip_markup" : "Add a user defined boolean property",
"xtype" : "Button"
},
{
},
{
"$ xns" : "Gtk",
- "label" : "Javascript Function",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Javascript Function",
+ "string tooltip_text" : "Add a javascript function",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " _this.AddPropertyPopup.el.hide(); ",
+ " \t_this.addpop.el.hide();",
" _this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"}"
]
},
- "tooltip_markup" : "Add a user function boolean property",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Vala Method",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Vala Method",
+ "string tooltip_text" : "Add a user defined method to a object",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- "_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" _this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"}"
]
},
- "tooltip_markup" : "Add a user function boolean property",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Vala Signal",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Vala Signal",
+ "string tooltip_text" : "Add a user defined signal to a object",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " _this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide(); ",
" _this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"}"
]
},
- "tooltip_markup" : "Add a vala signal",
"xtype" : "Button"
},
{
},
{
"$ xns" : "Gtk",
- "label" : "Flexy - If",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Flexy - If",
+ "string tooltip_text" : "Add a flexy if (for HTML templates)",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " \t_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t_this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"}"
]
},
- "tooltip_markup" : "Add a flexy if (for HTML templates)",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Flexy - Include",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Flexy - Include",
+ "string tooltip_text" : "Add a flexy include (for HTML templates)",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " \t_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t_this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"}"
]
},
- "tooltip_markup" : "Add a flexy include (for HTML templates)",
"xtype" : "Button"
},
{
"$ xns" : "Gtk",
- "label" : "Flexy - Foreach",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Flexy - Foreach",
+ "string tooltip_text" : "Add a flexy foreach (for HTML templates)",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
" ( ) =>{",
- " \t_this.AddPropertyPopup.el.hide();",
+ " \t_this.addpop.el.hide();",
" \t_this.view.popover.show(",
"\t\t_this.view.el, ",
"\t\t_this.node, ",
"xtype" : "Popover"
}
],
- "listeners" : {
- "clicked" : [
- "( ) => {",
- " //_this.before_edit();",
- " ",
- " ",
- " var p = _this.AddPropertyPopup;",
- " ",
- " //\tGtk.Allocation rect;",
- "\t//this.el.get_allocation(out rect);",
- "",
- "\t p.el.set_parent(this.el);",
- " //p.el.set_pointing_to(rect);",
- "\tp.el.show();",
- "\tp.el.set_position(Gtk.PositionType.BOTTOM);",
- "\tp.el.autohide = true;",
- " return;",
- "",
- "}",
- ""
- ]
- },
- "string icon_name" : "list-add",
"string label" : "Other",
- "xtype" : "Button"
+ "xtype" : "MenuButton"
}
],
"xtype" : "Box"
"id" : "EditProps",
"items" : [
{
+ "# Xcls_PopoverProperty popover" : "null",
"$ enable_tree_lines" : true,
"$ headers_visible" : true,
"$ xns" : "Gtk",
- "* init" : [
- "{",
- " ",
- " \tthis.css = new Gtk.CssProvider();",
- "\t ",
- "\t\tthis.css.load_from_string(\"",
- "#leftprops-view { font-size: 12px;}",
- "\t ",
- "#leftprops-view dropdown button { ",
- "\t\t\tmin-height: 16px;\t\t\t ",
- "\t\t\toutline-offset : 0;",
- "\t\t}",
- "#leftprops-view cell dropdown label {",
- " \t\tpadding-top:0px;",
- "\t\tpadding-bottom:0px;",
- "}",
- "#leftprops-view cell { ",
- " \t\tpadding-top:2px;",
- "\t\tpadding-bottom:2px;",
- "\t\t}",
- "#leftprops-view cell label, #leftprops-view cell editablelable {",
- " \t\tpadding-top:4px;",
- "\t\tpadding-bottom:4px;",
- "}\");",
- " ",
- "\t\tGtk.StyleContext.add_provider_for_display(",
- "\t\tthis.el.get_display(),",
- "\t\tthis.css,",
- "\t\tGtk.STYLE_PROVIDER_PRIORITY_APPLICATION",
- "\t);",
- "\t\t",
- " ",
- "}",
- ""
- ],
"* pack" : "set_child",
- "Gtk.CssProvider css" : "",
- "Xcls_PopoverProperty popover" : "null",
"bool hexpand" : true,
"bool show_row_separators" : true,
"bool single_click_activate" : false,
"items" : [
{
"$ xns" : "Gtk",
+ "bool has_frame" : false,
+ "items" : [
+ {
+ "$ xns" : "Gtk",
+ "* prop" : "child",
+ "Gtk.Align halign" : "Gtk.Align.START",
+ "string label" : "Delete Property / Method",
+ "xtype" : "Label"
+ }
+ ],
"listeners" : {
"clicked" : [
"( ) => {",
"\t",
"\tGLib.debug(\"Prssed %d\", (int) this.el.get_current_button());",
"\t//_this.deletemenu.el.set_parent(_this.view.el);",
- "\t_this.deletemenu.el.set_parent(_this.main_window.el);",
+ "\tif (_this.deletemenu.el.parent == null) {",
+ "\t\t_this.deletemenu.el.set_parent(_this.main_window.el);",
+ "\t}",
"\t",
"\t",
"\t ",
"\t ",
"}"
],
+ "| int propToRow" : [
+ "(JsRender.NodeProp prop) {",
+ "\tfor (var i = 0 ; i < this.el.n_items; i++) {",
+ "\t\tvar r = (JsRender.NodeProp)this.el.get_item(i);",
+ "\t\tif (r.equals(prop)) {",
+ "\t\t\treturn i;",
+ "\t\t\t",
+ "\t\t}",
+ "\t}",
+ "\treturn -1;",
+ "\t ",
+ "}"
+ ],
"| void selectProp" : [
"(JsRender.NodeProp prop) {",
"\tfor (var i = 0 ; i < this.el.n_items; i++) {",
" \t\t ",
" \t}",
" \t*/",
- "\t\tGLib.debug(\"Get Widget At Row %d\", (int)row);",
+ "\t\t//GLib.debug(\"Get Widget At Row %d\", (int)row);",
" var child = this.el.get_first_child(); ",
" \tvar line_no = -1; ",
" \tvar reading_header = true;",
"",
" \twhile (child != null) {",
- "\t\t\tGLib.debug(\"Got %s\", child.get_type().name());",
+ "\t\t\t//GLib.debug(\"Got %s\", child.get_type().name());",
" \t if (reading_header) {",
"\t\t\t ",
"\t\t\t ",
"\t\t\t\t}",
"\t\t\t\tchild = child.get_first_child(); ",
"\t\t\t\treading_header = false;",
+ "\t\t\t\tcontinue;",
"\t }",
"\t\t if (child.get_type().name() != \"GtkColumnViewRowWidget\") {",
" \t\t child = child.get_next_sibling();",
"\t\t }",
"\t\t line_no++;",
"\t\t\tif (line_no == row) {",
- "\t\t\t\tGLib.debug(\"Returning widget %s\", child.get_type().name());",
+ "\t\t\t\t//GLib.debug(\"Returning widget %s\", child.get_type().name());",
"\t\t\t return (Gtk.Widget)child;",
"\t\t }",
"\t child = child.get_next_sibling(); ",
" \t}",
- "\t\tGLib.debug(\"Rturning null\");",
+ "\t\t//GLib.debug(\"Rturning null\");",
" return null;",
"",
" }"
" }"
],
"| int getRowAt" : [
- "(double x, double in_y, out string pos) {",
- "",
+ "(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 -1;",
+ "\t}",
+ "\t",
+ "\tvar row= w.get_ancestor(GLib.Type.from_name(\"GtkColumnViewRowWidget\"));",
+ "\tif (row == null) {",
+ "\t\treturn -1;",
+ "\t}",
+ "\t",
+ "\t//GLib.debug(\"got colview %s\", row == null ? \"nothing\" : row.get_type().name());",
"\t ",
- "",
- "/*",
- " \t",
- "from \thttps://discourse.gnome.org/t/gtk4-finding-a-row-data-on-gtkcolumnview/8465",
- " \tvar colview = gesture.widget;",
- " \tvar line_no = check_list_widget(colview, x,y);",
- " if (line_no > -1) {",
- " \t\tvar item = colview.model.get_item(line_no);",
- " \t\t ",
- " \t}",
- " \t*/",
- " \t\t ",
- " \t\t",
- " \t\t//GLib.debug(\"offset = %d y = %d\", (int) voff, (int) in_y);",
- " \tvar y = in_y + _this.EditProps.el.vadjustment.value; ",
- " var child = this.el.get_first_child(); ",
- " \t//Gtk.Allocation alloc = { 0, 0, 0, 0 };",
- " \tvar line_no = -1; ",
- " \tvar reading_header = true;",
- " \tvar real_y = 0;",
- " \tvar header_height = 0;",
- " \tpos = \"none\";",
- " \tvar h = 0;",
- " \twhile (child != null) {",
- "\t\t\t//GLib.debug(\"Got %s\", child.get_type().name());",
- " \t if (reading_header) {",
- "\t\t\t\t",
- "",
- "\t\t\t\tif (child.get_type().name() != \"GtkColumnListView\") {",
- "\t\t\t h += child.get_height();",
- "\t\t\t\t\tchild = child.get_next_sibling();",
- "\t\t\t\t\tcontinue;",
- "\t\t\t\t}",
- "\t\t\t\t// should be columnlistview",
- "\t\t\t\tchild = child.get_first_child(); ",
- "\t\t\t GLib.debug(\"header height=%d\", h);",
- "\t\t\t\theader_height = h;",
- "\t\t\t\t",
- "\t\t\t\treading_header = false;",
- "\t\t\t\t",
- "\t }",
- "\t ",
- "\t\t if (child.get_type().name() != \"GtkColumnViewRowWidget\") {",
- " \t\t child = child.get_next_sibling();",
- " \t\t continue;",
- "\t\t }",
- "\t\t ",
- "\t\t \tif (y < header_height) {",
- "\t\t \treturn -1;",
- "\t \t}",
- "\t\t ",
- "\t\t line_no++;",
- "\t\t\tvar hh = child.get_height();",
- "\t\t\t//child.get_allocation(out alloc);",
- "\t\t\t//GLib.debug(\"got cell xy = %d,%d w,h= %d,%d\", alloc.x, alloc.y, alloc.width, alloc.height);",
- "\t\t\t//GLib.debug(\"row %d y= %d %s\", line_no, (int) (header_height + alloc.y),",
- "\t\t\t",
- "\t\t\t//\tchild.visible ? \"VIS\" : \"hidden\");",
- "",
- "\t\t if (y > (header_height + real_y) && y <= (header_height + real_y + hh) ) {",
- "\t\t \tif (y > ( header_height + real_y + (hh * 0.8))) {",
- "\t\t \t\tpos = \"below\";",
- "\t \t\t} else if (y > ( header_height + real_y + (hh * 0.2))) {",
- "\t \t\t\tpos = \"over\";",
- " \t\t\t} else {",
- " \t\t\t\tpos = \"above\";",
- "\t\t\t\t}",
- "\t\t \t GLib.debug(\"getRowAt return : %d, %s\", line_no, pos);",
- "\t\t\t return line_no;",
- "\t\t }",
- " ",
- "",
- "\t\t if (real_y + hh > y) {",
- "\t\t return -1;",
- "\t }",
- "\t real_y += hh;",
- "\t child = child.get_next_sibling(); ",
- " \t}",
- " return -1;",
- "",
+ "\tvar rn = 0;",
+ "\tvar cr = row;",
+ "\t ",
+ "\twhile (cr.get_prev_sibling() != null) {",
+ "\t\trn++;",
+ "\t\tcr = cr.get_prev_sibling();",
+ "\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 rn;",
" }"
],
"| void editProp" : [
"\t\tvar ll = (Gtk.Label)ca.get_first_child();",
"\t\tvar cb = ca.get_next_sibling();",
"\t\tvar b = cb.get_first_child();",
- "\t\tvar e = (Gtk.Entry) b.get_first_child();",
+ "\t\tvar e = (Gtk.EditableLabel) b.get_first_child();",
"\t\tvar l = (Gtk.Label) e.get_next_sibling();",
"\t\tvar d = (Gtk.DropDown) l.get_next_sibling();",
"\t\t",
"\t\tGLib.debug(\"row key = %s\", ll.label);",
"\t\tif (e.get_visible()) {",
"\t\t\t_this.stop_editor();",
- "\t\t\te.grab_focus_without_selecting();",
+ "\t\t\te.start_editing();",
+ "\t\t\t//GLib.Timeout.add_once(500, () => {",
+ "\t\t\t//\tvar st = (Gtk.Stack) e.get_first_child();",
+ "\t\t\t//\tvar ed = (Gtk.Entry) st.get_visible_child();",
+ "\t\t\t//\ted.grab_focus_without_selecting();",
+ "\t\t\t//});",
"\t\t\treturn;",
"\t\t}",
"\t\tif (d.get_visible()) {",
"",
"}"
],
- "| void a_addProp" : [
- " (JsRender.NodeProp prop) {",
- " // info includes key, val, skel, etype..",
- " //console.dump(info);",
- " //type = info.type.toLowerCase();",
- " //var data = this.toJS();",
- " ",
- " ",
- " if (prop.ptype == JsRender.NodePropType.LISTENER) {",
- " if (this.node.listeners.has_key(prop.name)) {",
- " return;",
- " }",
- " this.node.listeners.set(prop.name,prop);",
- " } else {",
- " assert(this.node != null);",
- " assert(this.node.props != null);",
- " if (this.node.props.has_key(prop.to_index_key())) {",
- " return;",
- " }",
- " this.node.props.set(prop.to_index_key(),prop);",
- " }",
- " ",
- " ",
- " // add a row???",
- " this.load(this.file, this.node);",
- " ",
- " ",
- " ",
- " ",
- " GLib.debug(\"trying to find new iter\");",
- " ",
- " ",
- " ",
- "}",
- ""
- ],
"| void deleteSelected" : [
" () {",
" ",
" if (node ==null) {",
" return ;",
" }",
- " node.loadProps(this.model.el); ",
+ "",
+ " node.loadProps(this.model.el, _this.main_window.windowstate.project); ",
" ",
" ",
" //GLib.debug(\"clear selection\\n\");",
" ",
" \tthis.loading = false;",
" this.selmodel.el.set_selected(Gtk.INVALID_LIST_POSITION);",
+ " this.updateErrors();",
" // clear selection?",
" //this.model.el.set_sort_column_id(4,Gtk.SortType.ASCENDING); // sort by real key..",
" ",
" ",
"}",
""
+ ],
+ "| void removeErrors" : [
+ "() {",
+ "\t\tif (this.error_widgets == null || this.error_widgets.size < 1) {",
+ " \t\treturn;",
+ "\t}",
+ "\tforeach(var child in this.error_widgets) {",
+ "\t",
+ "\t\tif (child.has_css_class(\"node-err\")) {",
+ "\t\t\tchild.remove_css_class(\"node-err\");",
+ "\t\t}",
+ "\t\tif (child.has_css_class(\"node-warn\")) {",
+ "\t\t\tchild.remove_css_class(\"node-warn\");",
+ "\t\t}",
+ "\t\t",
+ "\t\tif (child.has_css_class(\"node-depr\")) {",
+ "\t\t\tchild.remove_css_class(\"node-depr\");",
+ "\t\t}",
+ "\t}",
+ "\tthis.error_widgets = null;",
+ "\treturn;",
+ "\t//GLib.debug(\"Rturning null\");",
+ " ",
+ "}"
+ ],
+ "| void updateErrors" : [
+ "() {",
+ "\tvar file = this.file;",
+ "\tif (file == null) {",
+ "\t\treturn;",
+ "\t}",
+ "\tvar ar = file.getErrors();",
+ "\tif (ar == null || ar.size < 1) {",
+ "\t\tif (this.last_error_counter != file.error_counter) {",
+ "\t\t\tthis.removeErrors();",
+ "\t\t}",
+ "",
+ "\t\tthis.last_error_counter = file.error_counter ;",
+ "",
+ "\t\treturn;",
+ "\t}",
+ " \tif (this.last_error_counter == file.error_counter) {",
+ "\t\treturn;",
+ "\t}",
+ "\tthis.removeErrors();",
+ "\tthis.error_widgets = new Gee.ArrayList<Gtk.Widget>();",
+ "\tforeach(var diag in ar) { ",
+ "\t",
+ "\t\t ",
+ "// print(\"get inter\\n\");",
+ "\t var node = file.lineToNode( (int)diag.range.start.line) ;",
+ "\t if (node == null || this.node == null || node.oid != this.node.oid) {",
+ "\t \tcontinue;",
+ " \t}",
+ " \tvar prop = node.lineToProp( (int)diag.range.start.line) ;",
+ " \tif (prop == null) {",
+ " \t\tcontinue;",
+ "\t\t}",
+ " \tvar row = _this.selmodel.propToRow(prop);",
+ " \tif (row < 0) {",
+ " \t\tcontinue;",
+ "\t\t}",
+ " \tvar w = this.view.getWidgetAtRow(row);",
+ " \tif (w == null) {",
+ " \t\treturn;",
+ "\t\t}",
+ "",
+ "\t\t",
+ " \t\tvar ed = diag.category.down();",
+ "\t\tif (ed != \"err\" && w.has_css_class(\"node-err\")) {",
+ "\t\t\tcontinue;",
+ "\t\t}",
+ "\t\tthis.error_widgets.add(w);\t\t",
+ "\t\tif (ed == \"err\" && w.has_css_class(\"node-warn\")) {",
+ "\t\t\tw.remove_css_class(\"node-warn\");",
+ "\t\t}",
+ "\t\tif (ed == \"err\" && w.has_css_class(\"node-depr\")) {",
+ "\t\t\tw.remove_css_class(\"node-depr\");",
+ "\t\t}",
+ "\t\tif (!w.has_css_class(\"node-\"+ ed)) {",
+ "\t\t\tw.add_css_class(\"node-\" + ed);",
+ "\t\t}",
+ "\t\t",
+ "\t}",
+ "\t",
+ "}"
]
}
],