From af330f9a259da55dddb96000ec0f0b7e01eac26e Mon Sep 17 00:00:00 2001 From: Edward Date: Thu, 11 Jun 2015 11:06:41 +0800 Subject: [PATCH] resources/roo.builder.js src/Builder4/Editor.bjs src/Builder4/Editor.vala src/Builder4/MainWindow.bjs src/Builder4/MainWindow.vala resources/RooUsage.txt --- resources/RooUsage.txt | 4 ++ resources/roo.builder.js | 8 +++- src/Builder4/Editor.bjs | 8 ++-- src/Builder4/Editor.vala | 7 ++- src/Builder4/MainWindow.bjs | 86 ++++++++++++++++++------------------- 5 files changed, 63 insertions(+), 50 deletions(-) diff --git a/resources/RooUsage.txt b/resources/RooUsage.txt index eb0011dc9..7a671c02f 100644 --- a/resources/RooUsage.txt +++ b/resources/RooUsage.txt @@ -473,6 +473,10 @@ right: Roo.bootstrap.Container Roo.bootstrap.Row Roo.bootstrap.TabPanel + Roo.bootstrap.DateField + Roo.bootstrap.TimeField + Roo.bootstrap.CheckBox + Roo.bootstrap.Radio // Roo.bootstrap.Fieldset left: diff --git a/resources/roo.builder.js b/resources/roo.builder.js index bf08085d2..374c5ecb2 100644 --- a/resources/roo.builder.js +++ b/resources/roo.builder.js @@ -331,10 +331,16 @@ Builder = { //Roo.log("add flexy:if"); tree.el.attr('flexy:include', tree['flexy:include']); } + + if (typeof(tree['flexy:ignore']) != 'undefined') { + //Roo.log("add flexy:if"); + tree.el.attr('flexy:ignore', tree['flexy:ignore']); + } + //Roo.log("Add xtype") tree.el.attr('xtype', tree['|xns'] + '.' + tree['xtype']); if (!tree.items || !tree.items.length) { return; } - + //Roo.log(tree); for (var i = 0; i < tree.items.length; i++){ this.applyFlexy(tree.items[i]); } diff --git a/src/Builder4/Editor.bjs b/src/Builder4/Editor.bjs index fff1b3cf6..152ade260 100644 --- a/src/Builder4/Editor.bjs +++ b/src/Builder4/Editor.bjs @@ -9,8 +9,8 @@ "items" : [ { "# Xcls_MainWindow window" : "null", - "# string activeEditor" : "\"\"", "| bool saveContents" : " () {\n \n \n if (_this.file == null) {\n return true;\n }\n \n \n \n \n \n var str = _this.buffer.toString();\n \n _this.buffer.checkSyntax();\n \n \n \n // LeftPanel.model.changed( str , false);\n _this.dirty = false;\n _this.save_button.el.sensitive = false;\n \n // find the text for the node..\n if (_this.file.xtype != \"PlainFile\") {\n if (ptype == \"listener\") {\n this.node.listeners.set(key,str);\n \n } else {\n this.node.props.set(key,str);\n }\n } else {\n _this.file.setSource( str );\n }\n \n // call the signal..\n this.save();\n \n return true;\n\n} ", + "# string activeEditor" : "\"\"", "| void scroll_to_line" : "(int line) {\n\n\tGLib.Timeout.add(500, () => {\n \n\t\tvar buf = this.view.el.get_buffer();\n\n\t\tvar sbuf = (Gtk.SourceBuffer) buf;\n\n\n\t\tGtk.TextIter iter; \n\t\tsbuf.get_iter_at_line(out iter, line);\n\t\tthis.view.el.scroll_to_iter(iter, 0.1f, true, 0.0f, 0.5f);\n\t\treturn false;\n\t}); \n}\n", "# int pos_root_x" : "", "# int pos_root_y" : "", @@ -53,8 +53,8 @@ }, { "id" : "key_edit", - "xtype" : "Entry", "* pack" : "pack_end,true,true", + "xtype" : "Entry", "$ xns" : "Gtk" } ] @@ -72,7 +72,7 @@ }, "gboolean show_line_marks" : true, "id" : "view", - "* init" : " \n \n\t\tvar description = Pango.FontDescription.from_string(\"monospace\");\n\t\tdescription.set_size(8000);\n\t\t this.el.override_font(description);\n \n \n\tthis.el.completion.add_provider(new Palete.CompletionProvider(_this));\n\tthis.el.completion.unblock_interactive();\n\tthis.el.completion.select_on_show\t\t\t= true; // select\n\tthis.el.completion.show_headers\t\t\t= false;\n\tthis.el.completion.remember_info_visibility\t\t= true;\n \n \n var attrs = new Gtk.SourceMarkAttributes();\n var pink = Gdk.RGBA();\n pink.parse ( \"pink\");\n attrs.set_background ( pink);\n attrs.set_icon_name ( \"process-stop\"); \n attrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"ERR\", attrs, 1);\n \n var wattrs = new Gtk.SourceMarkAttributes();\n var blue = Gdk.RGBA();\n blue.parse ( \"#ABF4EB\");\n wattrs.set_background ( blue);\n wattrs.set_icon_name ( \"process-stop\"); \n wattrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"WARN\", wattrs, 1);\n \n \n \n var dattrs = new Gtk.SourceMarkAttributes();\n var purple = Gdk.RGBA();\n purple.parse ( \"#EEA9FF\");\n dattrs.set_background ( purple);\n dattrs.set_icon_name ( \"process-stop\"); \n dattrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"DEPR\", dattrs, 1);\n \n ", + "* init" : " \n\n\t\tvar description = Pango.FontDescription.from_string(\"monospace\");\n\t\tdescription.set_size(8000);\n\n\t\t this.el.override_font(description);\n\n\ttry { \n\t\tthis.el.completion.add_provider(new Palete.CompletionProvider(_this));\n } catch (GLib.Error e) {}\n \n\tthis.el.completion.unblock_interactive();\n\tthis.el.completion.select_on_show\t\t\t= true; // select\n\tthis.el.completion.show_headers\t\t\t= false;\n\tthis.el.completion.remember_info_visibility\t\t= true;\n \n \n var attrs = new Gtk.SourceMarkAttributes();\n var pink = Gdk.RGBA();\n pink.parse ( \"pink\");\n attrs.set_background ( pink);\n attrs.set_icon_name ( \"process-stop\"); \n attrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"ERR\", attrs, 1);\n \n var wattrs = new Gtk.SourceMarkAttributes();\n var blue = Gdk.RGBA();\n blue.parse ( \"#ABF4EB\");\n wattrs.set_background ( blue);\n wattrs.set_icon_name ( \"process-stop\"); \n wattrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"WARN\", wattrs, 1);\n \n \n \n var dattrs = new Gtk.SourceMarkAttributes();\n var purple = Gdk.RGBA();\n purple.parse ( \"#EEA9FF\");\n dattrs.set_background ( purple);\n dattrs.set_icon_name ( \"process-stop\"); \n dattrs.query_tooltip_text.connect(( mark) => {\n //print(\"tooltip query? %s\\n\", mark.name);\n return mark.name;\n });\n \n this.el.set_mark_attributes (\"DEPR\", dattrs, 1);\n \n ", "uint tab_width" : 4, "$ Gtk.SourceDrawSpacesFlags draw_spaces" : "Gtk.SourceDrawSpacesFlags.LEADING + Gtk.SourceDrawSpacesFlags.TRAILING + Gtk.SourceDrawSpacesFlags.TAB + Gtk.SourceDrawSpacesFlags.SPACE", "* pack" : "add", @@ -90,8 +90,8 @@ "changed" : " () => {\n // check syntax??\n // ??needed..??\n _this.save_button.el.sensitive = true;\n print(\"EDITOR CHANGED\");\n this.checkSyntax();\n \n _this.dirty = true;\n\n // this.get('/LeftPanel.model').changed( str , false);\n return ;\n}\n\n \n" }, "bool check_queued" : false, - "id" : "buffer", "int error_line" : "-1", + "id" : "buffer", "| bool highlightErrors" : "( Gee.HashMap validate_res) {\n \n this.error_line = validate_res.size;\n\n if (this.error_line < 1) {\n return true;\n }\n var tlines = this.el.get_line_count ();\n Gtk.TextIter iter;\n var valiter = validate_res.map_iterator();\n while (valiter.next()) {\n \n // print(\"get inter\\n\");\n var eline = valiter.get_key();\n if (eline > tlines) {\n continue;\n }\n this.el.get_iter_at_line( out iter, eline);\n //print(\"mark line\\n\");\n this.el.create_source_mark(valiter.get_value(), \"ERR\", iter);\n } \n return false;\n }", "| string toString" : " () {\n \n Gtk.TextIter s;\n Gtk.TextIter e;\n this.el.get_start_iter(out s);\n this.el.get_end_iter(out e);\n var ret = this.el.get_text(s,e,true);\n //print(\"TO STRING? \" + ret);\n return ret;\n}\n ", "| bool checkSyntax" : " () {\n \n if (this.check_running) {\n print(\"Check is running\\n\");\n if (this.check_queued) { \n print(\"Check is already queued\");\n return true;\n }\n this.check_queued = true;\n print(\"Adding queued Check \");\n GLib.Timeout.add_seconds(1, () => {\n this.check_queued = false;\n \n this.checkSyntax();\n return false;\n });\n \n\n return true;\n }\n var str = this.toString();\n \n // needed???\n if (this.error_line > 0) {\n Gtk.TextIter start;\n Gtk.TextIter end; \n this.el.get_bounds (out start, out end);\n\n this.el.remove_source_marks (start, end, null);\n }\n if (str.length < 1) {\n print(\"checkSyntax - empty string?\\n\");\n return true;\n }\n \n if (_this.file.xtype == \"PlainFile\") {\n \n // assume it's gtk...\n this.check_running = true;\n\n if (!_this.window.windowstate.valasource.checkPlainFileSpawn(\n\t _this.file,\n\t str\n\t )) {\n this.check_running = false;\n }\n\t\n return true;\n \n }\n if (_this.file == null) {\n return true;\n }\n var p = Palete.factory(_this.file.xtype); \n \n\n \n this.check_running = true;\n \n \n if (_this.file.language == \"js\") {\n this.check_running = false;\n print(\"calling validate javascript\\n\"); \n return this.highlightErrors(p.validateJavascript(\n str, \n _this.key, \n _this.ptype,\n _this.file,\n _this.node\n )); \n \n }\n \n \n print(\"calling validate vala\\n\"); \n // clear the buttons.\n \n \n if (! _this.window.windowstate.valasource.checkFileWithNodePropChange(\n _this.file,\n _this.node,\n _this.key, \n _this.ptype,\n str\n )) {\n this.check_running = false;\n } \n \n \n \n //print(\"done mark line\\n\");\n \n return true; // at present allow saving - even if it's invalid..\n}\n", diff --git a/src/Builder4/Editor.vala b/src/Builder4/Editor.vala index 63742b963..7f733674c 100644 --- a/src/Builder4/Editor.vala +++ b/src/Builder4/Editor.vala @@ -334,10 +334,13 @@ public class Editor : Object var description = Pango.FontDescription.from_string("monospace"); description.set_size(8000); + this.el.override_font(description); + + try { + this.el.completion.add_provider(new Palete.CompletionProvider(_this)); + } catch (GLib.Error e) {} - - this.el.completion.add_provider(new Palete.CompletionProvider(_this)); this.el.completion.unblock_interactive(); this.el.completion.select_on_show = true; // select this.el.completion.show_headers = false; diff --git a/src/Builder4/MainWindow.bjs b/src/Builder4/MainWindow.bjs index 0aa76a742..78d571b75 100644 --- a/src/Builder4/MainWindow.bjs +++ b/src/Builder4/MainWindow.bjs @@ -32,8 +32,8 @@ "items" : [ { "id" : "headerbar", - "xtype" : "HeaderBar", "* pack" : "set_titlebar", + "xtype" : "HeaderBar", "bool show_close_button" : true, "$ xns" : "Gtk", "string title" : "Application Builder", @@ -46,8 +46,8 @@ "items" : [ { "bool use_popover" : false, - "xtype" : "MenuButton", "* pack" : "add", + "xtype" : "MenuButton", "$ xns" : "Gtk", "items" : [ { @@ -61,9 +61,9 @@ "listeners" : { "activate" : " ( ) => {\n Xcls_MainWindow.singleton().no_windows++;\n var w = new Xcls_MainWindow();\n w.ref();\n\n w.el.show_all();\n w.initChildren();\n w.windowstate.switchState(WindowState.State.FILES);\n}" }, + "string label" : "Open a new Window", "* pack" : "append", "xtype" : "MenuItem", - "string label" : "Open a new Window", "$ xns" : "Gtk" }, { @@ -75,26 +75,26 @@ "listeners" : { "activate" : " ( ) => {\n Resources.singleton().fetchStart();\n}" }, + "xtype" : "MenuItem", "string label" : "Download updated Resources", "* pack" : "append", - "xtype" : "MenuItem", "$ xns" : "Gtk" }, { "listeners" : { "activate" : "() => {\n About.singleton().el.show();\n }" }, + "* pack" : "append", "xtype" : "MenuItem", "string label" : "About the Builder", - "* pack" : "append", "$ xns" : "Gtk" } ] }, { + "utf8 icon_name" : "help-about", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "help-about", "$ xns" : "Gtk" } ] @@ -105,8 +105,8 @@ }, { "id" : "vbox", - "* pack" : "add", "xtype" : "Box", + "* pack" : "add", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", "$ homogeneous" : false, @@ -122,29 +122,29 @@ "items" : [ { "id" : "leftpane", - "xtype" : "Box", "* pack" : "add1", + "xtype" : "Box", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", "items" : [ { "id" : "editpane", - "xtype" : "Paned", "* pack" : "pack_start,true,true,0", + "xtype" : "Paned", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL", "items" : [ { "id" : "tree", - "xtype" : "Box", "* pack" : "add1", + "xtype" : "Box", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL" }, { "id" : "props", - "xtype" : "Box", "* pack" : "add2", + "xtype" : "Box", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.VERTICAL" } @@ -225,8 +225,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "xtype" : "Actor", "* pack" : "add_child", + "xtype" : "Actor", "$ xns" : "GtkClutter", "items" : [ { @@ -234,16 +234,16 @@ "clicked" : " ( ) => {\n \n _this.windowstate.switchState(WindowState.State.PREVIEW);\n \n\n}" }, "utf8 tooltip_text" : "Back", - "* pack" : false, "xtype" : "Button", + "* pack" : false, "width_request" : 50, "$ xns" : "Gtk", "height_request" : 50, "items" : [ { + "xtype" : "Image", "utf8 icon_name" : "go-previous", "* pack" : "set_image", - "xtype" : "Image", "$ xns" : "Gtk" } ] @@ -261,8 +261,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -277,9 +277,9 @@ "$ tooltop_text" : "\"Open File\"", "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "document-open", - "* pack" : "set_image", "$ xns" : "Gtk" } ] @@ -297,8 +297,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -313,9 +313,9 @@ "height_request" : 50, "items" : [ { + "utf8 icon_name" : "document-properties", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "document-properties", "$ xns" : "Gtk" } ] @@ -333,8 +333,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -349,9 +349,9 @@ "height_request" : 50, "items" : [ { + "xtype" : "Image", "utf8 icon_name" : "emblem-system", "* pack" : "set_image", - "xtype" : "Image", "$ xns" : "Gtk" } ] @@ -373,8 +373,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -389,9 +389,9 @@ "height_request" : 50, "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "list-add", - "* pack" : "set_image", "$ xns" : "Gtk" } ] @@ -409,8 +409,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -425,9 +425,9 @@ "height_request" : 50, "items" : [ { + "utf8 icon_name" : "format-justify-left", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "format-justify-left", "$ xns" : "Gtk" } ] @@ -445,8 +445,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -461,9 +461,9 @@ "height_request" : 50, "items" : [ { + "xtype" : "Image", "utf8 icon_name" : "appointment-new", "* pack" : "set_image", - "xtype" : "Image", "$ xns" : "Gtk" } ] @@ -481,8 +481,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -497,9 +497,9 @@ "height_request" : 50, "items" : [ { + "utf8 icon_name" : "folder-new", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "folder-new", "$ xns" : "Gtk" } ] @@ -517,8 +517,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -533,9 +533,9 @@ "height_request" : 50, "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "document-new", - "* pack" : "set_image", "$ xns" : "Gtk" } ] @@ -553,8 +553,8 @@ "items" : [ { "* init" : "((Gtk.Container)(this.el.get_widget())).add ( child_0.el);", - "* pack" : "add_child", "xtype" : "Actor", + "* pack" : "add_child", "$ xns" : "GtkClutter", "items" : [ { @@ -569,9 +569,9 @@ "height_request" : 50, "items" : [ { + "utf8 icon_name" : "user-trash", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "user-trash", "$ xns" : "Gtk" } ] @@ -590,21 +590,21 @@ }, { "bool homogeneous" : false, - "xtype" : "Box", "* pack" : "pack_end,false,true,0", + "xtype" : "Box", "$ xns" : "Gtk", "Gtk.Orientation orientation" : "Gtk.Orientation.HORIZONTAL", "items" : [ { + "* pack" : "pack_start,true,true,0", "xtype" : "Label", "string label" : " ", - "* pack" : "pack_start,true,true,0", "$ xns" : "Gtk" }, { "bool show_text" : true, - "id" : "statusbar", "ulong handler_id" : "-1", + "id" : "statusbar", "* init" : "{\n this.handler_id = Resources.singleton().updateProgress.connect((pos,total) => {\n if (pos < 1) {\n this.el.hide();\n _this.mainpane.el.set_sensitive(true);\n \n return;\n }\n _this.mainpane.el.set_sensitive(false);\n this.el.show();\n this.el.set_fraction ((1.0f * pos) / (1.0f * total));\n this.el.set_text(\"Fetching Resource : %s/%s\".printf(pos.to_string(), total.to_string()));\n \n });\n}\n", "xtype" : "ProgressBar", "* pack" : "pack_start,true,true,0", @@ -618,9 +618,9 @@ "id" : "search_entry", "* init" : "var description = Pango.FontDescription.from_string(\"monospace\");\n\tdescription.set_size(8000);\n\t this.el.override_font(description);\n\n", "* pack" : "pack_start,false,true,0", - "xtype" : "Entry", + "xtype" : "SearchEntry", "$ xns" : "Gtk", - "| void forwardSearch" : "(bool change_focus) {\n\tswitch(_this.windowstate.state) {\n\t\tcase WindowState.State.CODEONLY:\n\t\tcase WindowState.State.CODE:\n\t\t\t// search the code being edited..\n\t\t\t_this.windowstate.code_editor.forwardSearch();\n\t\t\t\n\t\t\tbreak;\n\t\tcase WindowState.State.PREVIEW:\n\t\t\tif (_this.windowstate.file.xtype == \"Gtk\") {\n\t\t\t\t_this.windowstate.window_gladeview.forwardSearch(change_focus);\n\t\t\t} else { \n\t\t\t\t _this.windowstate.window_rooview.forwardSearch(change_focus);\n\t\t\t}\n\t\t\n\t\t\tbreak;\n\t}\n}\n" + "| void forwardSearch" : "(bool change_focus) {\n\tswitch(_this.windowstate.state) {\n\t\tcase WindowState.State.CODEONLY:\n\t\tcase WindowState.State.CODE:\n\t\t\t// search the code being edited..\n\t\t\t_this.windowstate.code_editor.forwardSearch(change_focus);\n\t\t\t\n\t\t\tbreak;\n\t\tcase WindowState.State.PREVIEW:\n\t\t\tif (_this.windowstate.file.xtype == \"Gtk\") {\n\t\t\t\t_this.windowstate.window_gladeview.forwardSearch(change_focus);\n\t\t\t} else { \n\t\t\t\t _this.windowstate.window_rooview.forwardSearch(change_focus);\n\t\t\t}\n\t\t\n\t\t\tbreak;\n\t}\n\t\n}\n" }, { "* pack" : "pack_end,false,true,0", @@ -640,18 +640,18 @@ "$ xns" : "Gtk", "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "system-search", - "* pack" : "set_image", "bool sensitive" : false, "$ xns" : "Gtk" } ] }, { + "xtype" : "MenuItem", "string label" : "Compile Status:", "* pack" : "add", - "xtype" : "MenuItem", "$ xns" : "Gtk" }, { @@ -669,9 +669,9 @@ "$ xns" : "Gtk", "items" : [ { + "xtype" : "Image", "utf8 icon_name" : "dialog-error", "* pack" : "set_image", - "xtype" : "Image", "$ xns" : "Gtk" } ] @@ -691,9 +691,9 @@ "$ xns" : "Gtk", "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "dialog-warning", - "* pack" : "set_image", "$ xns" : "Gtk" } ] @@ -713,9 +713,9 @@ "$ xns" : "Gtk", "items" : [ { + "utf8 icon_name" : "dialog-information", "* pack" : "set_image", "xtype" : "Image", - "utf8 icon_name" : "dialog-information", "$ xns" : "Gtk" } ] @@ -733,9 +733,9 @@ "$ xns" : "Gtk", "items" : [ { + "* pack" : "set_image", "xtype" : "Image", "utf8 icon_name" : "media-playback-start", - "* pack" : "set_image", "$ xns" : "Gtk" } ] -- 2.39.2