Reducing repetition with paint routines based on object text property?
-
I have a couple panels, with paint routines dependent on slider values. I'm already using an inline function to reduce a bit of the code in the paint routine, but I'm wondering if I can slim it even further. The setup looks like this:
Panel 1 has alpha based on the Current Level of Slider 1.
Panel 2 has alpha based on the Current Level of Slider 2.
...and so on.I put the Slider numbers into the text property of the panels, hoping I could do something like this:
local rowname = this.get("text"); local rowvalue = rowname.getValue(); g.setColour(Colours.withAlpha(0xFFFFFF, rowvalue));
but it doesn't work unfortunately. I'm sure I'm missing something obvius, but I'd really appreciate some help!
-
Put your panels into an array, put your sliders into an array.
Then you can do something like
local index = panelArray.indexOf(this); g.setColour(Colours.withAlpha(myColour, sliderArray[index].getValue());
Another approach is inside the slider's callback you set one of the colour properties of the panel. Then in the panel's paint routine you read that property and don't bother with the
Colours.withAlpha()
stuff. -
@d-healey thanks! If it's not too much to ask, would you be so kind and put this:
local index = panelArray.indexOf(this); g.setColour(Colours.withAlpha(myColour, sliderArray[index].getValue());
into a quick little snippet for me? Just two sliders and panels would be enough for me to understand the logic behind it :-) Thank you!
-
This is a slight improvement on my original suggestion.
HiseSnippet 1020.3ocsV0saaaCElxILq1asXEXO.B4JYfLC6j9y.FFhSrSF7ZSh2TVv.FFJnknr4BEofDUSLFFvdM5cEXuD6xdwdG1cCcuA6Mv6PQIa4DG2XCLeggN+78wy4Pd3g8ikdzjDYLxp54iinHqOA6NVnF0YDgIP85hrdD9DRhhFaaTc33HRRB0GYYswWqUXUcST1u+c+CIbhviNSEBcgj4QeIKjolose6Wv37iI9zyYgk79Is64IEcjbYJDOafahhHdWRFROkncqBFYs0Q9LkL1UQTzDvmCk9icGIuRX7+BVBa.mpEZgbAhLpQcFw398Kx0DDxZy9yx7MLY9mgOg4ylpeVE3SyLXOCQ4ZfUkkERsVgPxpTHsoIjdL10KlEolYQGOeLtm.1PBHPotbnX7EU4Oqf6HAODpFgjKoGGCBSQ37rlM2wF9q9WVqFTtST1uPHGjX+U1EfFRUGv4cjgQRAHm3rs1is0.Bjw1NWayDFP0qU85FITkFYrj2gv4CfsLGo3RvbtV.W0ZLAmIn1AoBOESJrmyCGuh0ZG6WS3oz509kZU4ROBGVJe50PvksdMxjNKXF.M48IBJO4Gyr8S5v4BMGNFltk8XZDrwpb.K+ZQEv3wRKAYtbiZfAVQQnul1uSlpfD0IRaprFMxaVDtkSNCKk4DHdTiXI5f4kZMGJSE9INMyJnUG1H.5hfnzwzwjz3JlZzA7nQDmBXNaOXnw5102YJYlxS855JPoMjSkJ5YBmrH.JM12zTPvBskuGxowKzrtEOdY.cDogCnwk240NB8.y2Xs08qwxyrCVxQonmfoNKhlKerj6qaXzee61PT9Q.ngbi7HD9Rk0N9n71QWNymFiX.IeDVevrEJK3yuJ68e6e726it2f2cNvu8Mu4eVAv6MGXze86ueez22qKQQz2njmKP9EQiULcYzpK80vUxl6Wph6RStTIifx6zC6Pk+CltWO8V6e6aZOdpv6baiVAd1sDOuaXIdPmuR7rWIddq5t4Aa34gE2ppa+xn4A3ruKmWntk3o8O2tnQBzsEBMYRl9Uf6x4JP2cy8jmtxbWN+su5t4dBZGC22dRCLiS5mxIp4G7omvma.ZZmaZidhhHgoFW9E.qvzvlKcZ38MDeLtOS4MZwwXkEDiPaw+GwX9aHdH9nf.pmZV.tI93eXcevvGX4MCMFdBQEyfC.3SSCcgcZOJr5B8jIPmUE8QIibSsrtB3RE9YBSfe4FaoksxM1pvHJj3EKekm45H8qTdPlFHlDYOJqJ75PP1d5MfXbyFMQgvCldkmmN8+b3V1EiY20.ydqAlmrFXd5Zf4YqAlmuFX9hkhQ+V0CRUxPS6.nn+QYyCrrNRPfSVYmBQ+G.PktDE
-
@d-healey awesome, thanks so much, this helps me understand it! :-)