On May 23, 2009, at 7:13 PM, Krzysztof KosiĆski wrote:
Jon A. Cruz wrote:
The internal rendering (from a single icons.svg file) is 100% compatible with regular theming mechanisms of GTK apps.
It is not compatible with many convenient GTK APIs, for instance Gtk::Action::create_with_icon_name.
Yes, it *IS* compatible with all of those GTK APIs.
I have seen it working with my own eyes
Did you even bother to test any of your assertions, or are you just making blind guesses???
There is no way to convince Gtk::IconTheme to fetch named icons from the monolithic file. One can define stock icons for every icon used in the application or add builtin icons to the icon theme, but those approaches don't work with scalable icons.
Please review the code that is in play when icons.svg *is* used. It does use the theme mechanism. Your assertion that there is *no* way to do this is not true.
The bigger problem is that the concept itself is wrong. The fixed- sized PNG versions were added as a work-around for systems that did not have librsvg to the latest version.
They are a workaround for systems that don't have librsvg at all, and I don't like it. The real solution is to either bundle librsvg on those systems, or write another GdkPixbuf loader for SVG that will use our renderer. Those are the only ways to be able to use all the convenient APIs for named icons. I would opt for the former because it is much less work and has superior performance (librsvg is quite fast, in my tests it was even slightly faster than loading PNG icons).
No... those are *not* the only ways to do that.
Again, the current icons.svg file code *does* work with icons, falling back, etc.
Here too is another key point I need to stress. You keep ignoring this. Please listen this time
WE CAN NOT USE LIBRSVG TO GET FULL FEATURES OF SVG!!!!
That is *BY DESIGN* of librsvg. They have improved many things recently, but they are intentionally *not* targeting full SVG support.
Also.. the source SVG icons themselves were also dumbed down to work for librsvg, and thus lost some Inkscape features.
When I extracted icons from icons.svg, I had to modify exactly one icon (randomize.svg). And in fact it was just fixing malformed markup that was interpreted by Inkscape as correct. By the way, all other SVG icons in existence are also "dumbed down" for librsvg, yet there are some beautiful icon sets out there, so the limitations can't be that severe.
No...
Here is another key point.
They did not break for *you* but they *DID* break for other people.
Please keep in mind that not everyone will be running the latest and greatest versions of all libraries. You *must* keep cross-platform support in mind for any code work you do on Inkscape. One of our key promises is good cross-platform support.