From: Alan Date: Mon, 6 Jun 2022 06:16:37 +0000 (+0800) Subject: Fix #7247 - icons for object add X-Git-Tag: release-4.4.2~73 X-Git-Url: http://git.roojs.org/?a=commitdiff_plain;h=4612e6ed1151dfaf5ac687641c53bf750e1d28bb;p=roobuilder Fix #7247 - icons for object add --- diff --git a/src/Builder4/Editor.vala b/src/Builder4/Editor.vala index 95cc02a5a..53969ac13 100644 --- a/src/Builder4/Editor.vala +++ b/src/Builder4/Editor.vala @@ -22,10 +22,10 @@ public class Editor : Object public Xcls_MainWindow window; public string activeEditor; public int pos_root_x; + public JsRender.JsRender? file; public int pos_root_y; public string ptype; public int last_search_end; - public JsRender.JsRender? file; public string key; public Gtk.SourceSearchContext searchcontext; public bool pos; @@ -42,9 +42,9 @@ public class Editor : Object // my vars (dec) this.window = null; this.activeEditor = ""; + this.file = null; this.ptype = ""; this.last_search_end = 0; - this.file = null; this.key = ""; this.searchcontext = null; this.pos = false; diff --git a/src/Builder4/PopoverAddObject.bjs b/src/Builder4/PopoverAddObject.bjs index 1f56151fc..77770ade3 100644 --- a/src/Builder4/PopoverAddObject.bjs +++ b/src/Builder4/PopoverAddObject.bjs @@ -64,11 +64,11 @@ "* pack" : "add", "items" : [ { - "$ columns" : "typeof(string),typeof(string)", + "$ columns" : "typeof(string),typeof(string),typeof(Gdk.Pixbuf)", "$ xns" : "Gtk", "* pack" : "set_model", "id" : "model", - "n_columns" : 2, + "n_columns" : 3, "xtype" : "ListStore", "| string getValue" : [ " (Gtk.TreeIter iter, int col) {", @@ -82,12 +82,18 @@ { "$ xns" : "Gtk", "* init" : [ - " this.el.add_attribute(_this.txtrender.el , \"markup\", 1 );", - " ", + "this.el.add_attribute(_this.txtrender.el , \"markup\", 1 );", + "this.el.add_attribute(_this.iconrender.el , \"pixbuf\", 2 );", "" ], "* pack" : "append_column", "items" : [ + { + "$ xns" : "Gtk", + "* pack" : "pack_start,true", + "id" : "iconrender", + "xtype" : "CellRendererPixbuf" + }, { "$ xns" : "Gtk", "* pack" : "pack_start,true", @@ -200,18 +206,35 @@ "", "", " Gtk.TreeIter citer;", + " var ic = Gtk.IconTheme.get_default();", + "\tvar pixdef = ic.load_icon(\"emblem-new\", 16,0);", "", " for(var i =0 ; i < tr.length; i++) {", " this.model.el.append(out citer); ", " var dname = tr[i];", + " var clsname = dname;", " if (dname.contains(\":\")) {", "\t\t\tvar ar = dname.split(\":\");", "\t\t\tdname = \"\" + ar[1] +\" - \"+ar[0]+\"\";", + "\t\t\tclsname = ar[0]; /// possibly?", "\t\t}", " ", " this.model.el.set_value(citer, 0, tr[i] ); // used data. ", " this.model.el.set_value(citer, 1, dname ); // displayed value.", " ", + " var clsb = clsname.split(\".\");", + " var sub = clsb.length > 1 ? clsb[1].down() : \"\";", + " ", + " var pix = pixdef;", + " var fn = \"/usr/share/glade/pixmaps/hicolor/16x16/actions/widget-gtk-\" + sub + \".png\";", + " if (FileUtils.test (fn, FileTest.IS_REGULAR)) {", + "\t pix = new Gdk.Pixbuf.from_file (fn);", + " }", + " ", + " ", + " this.model.el.set_value(citer, 2, pix );", + " ", + " ", " }", " this.model.el.set_sort_column_id(1,Gtk.SortType.ASCENDING);", " ", diff --git a/src/Builder4/PopoverAddObject.vala b/src/Builder4/PopoverAddObject.vala index 9ebadf535..bacdca727 100644 --- a/src/Builder4/PopoverAddObject.vala +++ b/src/Builder4/PopoverAddObject.vala @@ -13,6 +13,7 @@ public class Xcls_PopoverAddObject : Object return _PopoverAddObject; } public Xcls_model model; + public Xcls_iconrender iconrender; public Xcls_txtrender txtrender; // my vars (def) @@ -54,18 +55,35 @@ public class Xcls_PopoverAddObject : Object Gtk.TreeIter citer; + var ic = Gtk.IconTheme.get_default(); + var pixdef = ic.load_icon("emblem-new", 16,0); for(var i =0 ; i < tr.length; i++) { this.model.el.append(out citer); var dname = tr[i]; + var clsname = dname; if (dname.contains(":")) { var ar = dname.split(":"); dname = "" + ar[1] +" - "+ar[0]+""; + clsname = ar[0]; /// possibly? } this.model.el.set_value(citer, 0, tr[i] ); // used data. this.model.el.set_value(citer, 1, dname ); // displayed value. + var clsb = clsname.split("."); + var sub = clsb.length > 1 ? clsb[1].down() : ""; + + var pix = pixdef; + var fn = "/usr/share/glade/pixmaps/hicolor/16x16/actions/widget-gtk-" + sub + ".png"; + if (FileUtils.test (fn, FileTest.IS_REGULAR)) { + pix = new Gdk.Pixbuf.from_file (fn); + } + + + this.model.el.set_value(citer, 2, pix ); + + } this.model.el.set_sort_column_id(1,Gtk.SortType.ASCENDING); @@ -268,7 +286,7 @@ public class Xcls_PopoverAddObject : Object { _this = _owner; _this.model = this; - this.el = new Gtk.ListStore( 2, typeof(string),typeof(string) ); + this.el = new Gtk.ListStore( 3, typeof(string),typeof(string),typeof(Gdk.Pixbuf) ); // my vars (dec) @@ -302,17 +320,44 @@ public class Xcls_PopoverAddObject : Object // set gobject values this.el.title = "Drag to add Object"; - var child_0 = new Xcls_txtrender( _this ); + var child_0 = new Xcls_iconrender( _this ); child_0.ref(); this.el.pack_start ( child_0.el , true ); + var child_1 = new Xcls_txtrender( _this ); + child_1.ref(); + this.el.pack_start ( child_1.el , true ); // init method this.el.add_attribute(_this.txtrender.el , "markup", 1 ); + this.el.add_attribute(_this.iconrender.el , "pixbuf", 2 ); } // user defined functions } + public class Xcls_iconrender : Object + { + public Gtk.CellRendererPixbuf el; + private Xcls_PopoverAddObject _this; + + + // my vars (def) + + // ctor + public Xcls_iconrender(Xcls_PopoverAddObject _owner ) + { + _this = _owner; + _this.iconrender = this; + this.el = new Gtk.CellRendererPixbuf(); + + // my vars (dec) + + // set gobject values + } + + // user defined functions + } + public class Xcls_txtrender : Object { public Gtk.CellRendererText el; diff --git a/src/Builder4/WindowLeftTree.bjs b/src/Builder4/WindowLeftTree.bjs index d7a9906f4..36f7b1153 100644 --- a/src/Builder4/WindowLeftTree.bjs +++ b/src/Builder4/WindowLeftTree.bjs @@ -109,7 +109,7 @@ { "# DialogTemplateSelect template_select" : "null", "# string activePath" : "\"\"", - "$ columns" : "typeof(string),typeof(string),typeof(Object)", + "$ columns" : "typeof(string),typeof(string),typeof(Object),typeof(Gdk.Pixbuf)", "$ listAllTypes" : [ "function() {", " var s = this.get('/LeftTree.view').selection;", @@ -181,7 +181,7 @@ "* pack" : "set_model", "currentTree" : false, "id" : "model", - "n_columns" : 3, + "n_columns" : 4, "xtype" : "TreeStore", "| JsRender.Node pathToNode" : [ "(string path) {", @@ -542,6 +542,9 @@ "{", " Gtk.TreeIter citer;", " //this.insert(citer,iter,0);", + " var ic = Gtk.IconTheme.get_default();", + " var pixdef = ic.load_icon(\"emblem-new\", 16,0);", + " ", " for(var i =0 ; i < tr.size; i++) {", " if (iter != null) {", " this.el.insert(out citer,iter,-1); // why not append?", @@ -557,6 +560,24 @@ " ", " this.el.set_value(citer, 2, o);", " ", + " var clsname = tr.get(i).fqn();", + " ", + " var clsb = clsname.split(\".\");", + " var sub = clsb.length > 1 ? clsb[1].down() : \"\";", + " ", + " var pix = pixdef;", + " var fn = \"/usr/share/glade/pixmaps/hicolor/16x16/actions/widget-gtk-\" + sub + \".png\";", + " if (FileUtils.test (fn, FileTest.IS_REGULAR)) {", + "\t pix = new Gdk.Pixbuf.from_file (fn);", + " }", + " ", + " ", + " this.el.set_value(citer, 3, pix );", + " ", + " ", + " ", + " ", + " ", " if (tr.get(i).items.size > 0) {", " this.load(tr.get(i).items, citer);", " }", @@ -717,10 +738,17 @@ "$ xns" : "Gtk", "* init" : [ " this.el.add_attribute(_this.renderer.el , \"markup\", 0 );", + " this.el.add_attribute(_this.iconrender.el , \"pixbuf\", 3 );", " " ], "* pack" : "append_column", "items" : [ + { + "$ xns" : "Gtk", + "* pack" : "pack_start,true", + "id" : "iconrender", + "xtype" : "CellRendererPixbuf" + }, { "$ xns" : "Gtk", "* pack" : "pack_start,true", diff --git a/src/Builder4/WindowLeftTree.vala b/src/Builder4/WindowLeftTree.vala index 61924aac9..a4e4aa20c 100644 --- a/src/Builder4/WindowLeftTree.vala +++ b/src/Builder4/WindowLeftTree.vala @@ -14,6 +14,7 @@ public class Xcls_WindowLeftTree : Object } public Xcls_view view; public Xcls_model model; + public Xcls_iconrender iconrender; public Xcls_renderer renderer; public Xcls_LeftTreeMenu LeftTreeMenu; @@ -992,7 +993,7 @@ public class Xcls_WindowLeftTree : Object { _this = _owner; _this.model = this; - this.el = new Gtk.TreeStore( 3, typeof(string),typeof(string),typeof(Object) ); + this.el = new Gtk.TreeStore( 4, typeof(string),typeof(string),typeof(Object),typeof(Gdk.Pixbuf) ); // my vars (dec) this.template_select = null; @@ -1281,6 +1282,9 @@ public class Xcls_WindowLeftTree : Object { Gtk.TreeIter citer; //this.insert(citer,iter,0); + var ic = Gtk.IconTheme.get_default(); + var pixdef = ic.load_icon("emblem-new", 16,0); + for(var i =0 ; i < tr.size; i++) { if (iter != null) { this.el.insert(out citer,iter,-1); // why not append? @@ -1296,6 +1300,24 @@ public class Xcls_WindowLeftTree : Object this.el.set_value(citer, 2, o); + var clsname = tr.get(i).fqn(); + + var clsb = clsname.split("."); + var sub = clsb.length > 1 ? clsb[1].down() : ""; + + var pix = pixdef; + var fn = "/usr/share/glade/pixmaps/hicolor/16x16/actions/widget-gtk-" + sub + ".png"; + if (FileUtils.test (fn, FileTest.IS_REGULAR)) { + pix = new Gdk.Pixbuf.from_file (fn); + } + + + this.el.set_value(citer, 3, pix ); + + + + + if (tr.get(i).items.size > 0) { this.load(tr.get(i).items, citer); } @@ -1527,17 +1549,44 @@ public class Xcls_WindowLeftTree : Object // set gobject values this.el.title = "test"; - var child_0 = new Xcls_renderer( _this ); + var child_0 = new Xcls_iconrender( _this ); child_0.ref(); this.el.pack_start ( child_0.el , true ); + var child_1 = new Xcls_renderer( _this ); + child_1.ref(); + this.el.pack_start ( child_1.el , true ); // init method this.el.add_attribute(_this.renderer.el , "markup", 0 ); + this.el.add_attribute(_this.iconrender.el , "pixbuf", 3 ); + } + + // user defined functions + } + public class Xcls_iconrender : Object + { + public Gtk.CellRendererPixbuf el; + private Xcls_WindowLeftTree _this; + + + // my vars (def) + + // ctor + public Xcls_iconrender(Xcls_WindowLeftTree _owner ) + { + _this = _owner; + _this.iconrender = this; + this.el = new Gtk.CellRendererPixbuf(); + + // my vars (dec) + + // set gobject values } // user defined functions } + public class Xcls_renderer : Object { public Gtk.CellRendererText el; @@ -1581,20 +1630,20 @@ public class Xcls_WindowLeftTree : Object // my vars (dec) // set gobject values - var child_0 = new Xcls_MenuItem10( _this ); + var child_0 = new Xcls_MenuItem11( _this ); child_0.ref(); this.el.add ( child_0.el ); - var child_1 = new Xcls_MenuItem11( _this ); + var child_1 = new Xcls_MenuItem12( _this ); child_1.ref(); this.el.add ( child_1.el ); - var child_2 = new Xcls_MenuItem12( _this ); + var child_2 = new Xcls_MenuItem13( _this ); child_2.ref(); this.el.add ( child_2.el ); } // user defined functions } - public class Xcls_MenuItem10 : Object + public class Xcls_MenuItem11 : Object { public Gtk.MenuItem el; private Xcls_WindowLeftTree _this; @@ -1603,7 +1652,7 @@ public class Xcls_WindowLeftTree : Object // my vars (def) // ctor - public Xcls_MenuItem10(Xcls_WindowLeftTree _owner ) + public Xcls_MenuItem11(Xcls_WindowLeftTree _owner ) { _this = _owner; this.el = new Gtk.MenuItem(); @@ -1626,7 +1675,7 @@ public class Xcls_WindowLeftTree : Object // user defined functions } - public class Xcls_MenuItem11 : Object + public class Xcls_MenuItem12 : Object { public Gtk.MenuItem el; private Xcls_WindowLeftTree _this; @@ -1635,7 +1684,7 @@ public class Xcls_WindowLeftTree : Object // my vars (def) // ctor - public Xcls_MenuItem11(Xcls_WindowLeftTree _owner ) + public Xcls_MenuItem12(Xcls_WindowLeftTree _owner ) { _this = _owner; this.el = new Gtk.MenuItem(); @@ -1661,7 +1710,7 @@ public class Xcls_WindowLeftTree : Object // user defined functions } - public class Xcls_MenuItem12 : Object + public class Xcls_MenuItem13 : Object { public Gtk.MenuItem el; private Xcls_WindowLeftTree _this; @@ -1670,7 +1719,7 @@ public class Xcls_WindowLeftTree : Object // my vars (def) // ctor - public Xcls_MenuItem12(Xcls_WindowLeftTree _owner ) + public Xcls_MenuItem13(Xcls_WindowLeftTree _owner ) { _this = _owner; this.el = new Gtk.MenuItem();