From: hermann m. <bru...@we...> - 2013-06-14 09:16:19
|
Am 30.05.2013 17:29, schrieb SxDx: > On 05/30/2013 11:53 AM, hermann meyer wrote: >> Am 30.05.2013 11:19, schrieb hermann meyer: >>> Am 29.05.2013 22:34, schrieb Andreas Degert: >>>> > >>>> > It might be possible to do the theming in such a way that all styles >>>> > are defined as paths beginning with the name of the theme. So if the >>>> > toplevel widget of a LV2 plugin is named "blue", one collection of >>>> > style definitions will apply. >>>> > >>> Hi Andreas >>> >>> Yep, that is a good idea.:-D >>> I've worked out a new "change_skin" routine were the widgets get >>> renamed >>> by style change. As far I can see I get it to work flawless with >>> multiple instances now. A new property for the paintbox class was >>> needed >>> to force reload the Background Image. >>> I will push it later today to git. >>> >>> greets >>> hermann >> >> Okay done, updated lv2 plugs are now in git. >> >> greets >> hermann > > Thanks Hermann. > Maybe I will try the git version. > Before reading your mail, I did something more or less similar, see > attached patch if you want. > (I just call gtk_rc_parse_string with > widget "*.<plug_name>" style:highest "gx_lv2-<model>" > after the call to gtk_rc_parse(rcfile.c_str()) and plug_name > is set to pluin_uri coming from host. Just a little hack.) > > There is still a very little bug. If I select the next > tube by using the keyboard's right arrow, when on tube > index 17 the next one is 0 but change_skin is first > called with index 18 and then with index 0. This > behavior is not seen if I click with the mouse instead > of using the keyboard. > > Anyway, thanks. > > Maybe I'll do an announcement on LAA for when a release of > my little minimalist DAW is there, but it's really nothing > worth noting. > > Thanks and regards. > Best continuation to the guitarix' team with your great program. > Cédric Hi Cédric I've played a bit with the different options to solve this, there are drawbacks in my solution (takes long to change skin in ardour, and the GUI hangs for this time), and as well there are drawbacks in your solution, ardour and qtractor, for example using the same pluin_uri for multiple instances, so they are not unic and the skins mismatch. The only unic 'var' I found so far, was the address of the GXPluginGUI-> this pointer. Adding this address to the widget names, instead using the plugin_uri, make them unic per instance and therewith your solution works for any host. greets hermann |