On Mon, September 27, 2010 6:46 am, Olivier Guilyardi wrote: > On 09/27/2010 01:44 PM, Patrick Shirkey wrote: >> On Sun, September 26, 2010 1:35 pm, pete shorthose wrote: >>> WRT the recent discussion about pixmap knob widgets and theme >>> conformance (that i can't reply to since i wasn't on the list >>> at the time, sorry) > > AFAICS, no one mentioned themable pixmap knobs. When it came to supporting > themes, it was all about vector drawing, especially with Cairo. > > [...] > >>> another possibility that was briefly discussed for use with >>> phat was that of a composite widget with different layers that >>> could be drawn separately, one on top of the other. eg render an SVG >>> or pixmap as a background on the first pass, then draw something >>> with cairo (a value indicator..) on top. > > Yes, I did mention this SVG idea, but it was pointed out that it won't > work > because some lines/borders need to be 1px or so, no matter what the scale > factor is. > > [...} > >>> there are obvious limits to what you can achieve with this kind of >>> thing, >> >> Like what exactly? Pretty much only what the mind can think of. Anything >> you can achieve in inkscape or gimp will be possible with cairo. That is >> much more than most widgets will ever need. > > Agreed. IMO, for proper scaling and theme support, the only solution is to > draw > everything in code, with Cairo for instance. > > Thus, the most obvious possibility is simplified knobs as those designed > by > Thorwil, which use very few colors. > > Another solution, for more graphical knobs, would be to expose specific > GTK > style properties, which themes would have to explicitly support. That > could > allow for all sort pretty rendering, with theme-specific gradients and so > on. >
Yes it does allow for some more advanced control but if you want to get really flash and support scaling without all the hassle of integrating an svg handler then afaik with gtk you only have that one option of drawing the widgets with code. Doing things like 1px borders is with the internals scaled is entirely possible. > One thing though, as you seem to be into gtk engine development, is that > IIUC, > the whole Cairo idea defeats the general principle of engines which seem > to rely > on the fact that widgets are drawn with gtk_paint_*() functions. Is this > correct? > IIUC, gtk_paint_*() functions are not needed if you use cairo directly. I'm not sure what you are meaning with the engines in this context though. Sorry if it has already been discussed I have just started following this discussion. I have become more interested in the possibilities available with drawing widgets in cairo though. 3d layering ala blender becomes completely possible. With enough time one could even go so far as to have a completely 3d or even poly dimensional ui. With buttons and layers all over the place responding to different actions. Add in multi touch support and things become very interesting for the user. Especially in the context of musical performance. You are really only limited by your imagination and ability to visualise and translate those ideas to the dimensional space. The more research I do on how to work quickly with blender and inkscape the more possibilities open up in front of me for really impressive ui design. I highly recommend taking the time to figure out cairo if you are interested in taking ui's to another level. There are many online video tutorials for how to use the image tools and they are very enlightening from a ui design perspective too. Watching professionals build 3d models for example shows me how to recreate the same effect in code. Of course there is also opengl for the 3d space too and I feel if enough time is spent working with both options there will be some very amazing interfaces designed over the next decade now that multi touch is available to us all. -- Patrick Shirkey Boost Hardware Ltd. _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
