Change UI per preset
-
I'd like to change the UI per batch of presets.
Say presets 1-20 should have Look1, presets 21-40 should have Look2, etc.
Look1 and Look2, etc will have the same basic layout (number of controls and positioning) but the visual assets will be different.
Different background images. different knob styles (vectors through LAF), different meters, etc.
How would I do this?
I can imagine reacting to a preset change and showing/hiding the required background but how would I switch out the controls and meters?
-
@dannytaurus you could have hidden buttons which change these ui states (display certain panels, images etc), and save those with each preset. Otherwise perhaps the preset handler could 'handle' this...
-
@DanH said in Change UI per preset:
@dannytaurus you could have hidden buttons which change these ui states (display certain panels, images etc), and save those with each preset.
Ooh, that's an interesting idea! So the hidden button would be set to hide/show the real controls and the state of that button would be saved with each preset. Nice!
Do hidden (visible: disabled) controls still get saved with the preset? Somehow I thought by hiding them they would not save. I'll try it out.
@DanH said in Change UI per preset:
@dannytaurus Otherwise perhaps the preset handler could 'handle' this...
Doing it in the preset handler - would you recommend multiple versions of the same control, say MIX LEVEL, each visually different, or just use one MIX LEVEL control and re-style/re-draw it when the preset changes?
-
@dannytaurus hidden yes, disabled probably not... I've never tried it though. Don't disable, just hide it for this purpose. And check SaveInPreset is enabled in the attributes section on the right.
If you're drawing panels for each control then it could get a little messy trying to redraw these with preset changes. I'm sure it's doable though. I would probably do a panel swap myself with the different designs on the different panels. However if it was a simple colour change and the design otherwise stays the same then redrawing is actually simpler. I have 4 colour schemes in one of plugins that users can choose between at the click of a button.
-
@dannytaurus If this is just a matter of lookAndFeel, then yes definitely go for a theme management system rather than hiding components.
With one unique variable, you can:
- draw different LAF within the same function using a switch condition
- redraw panels with different image stored in arrays
- use colours from a predefined array
- etc...
-
A simple example of theme management:
HiseSnippet 1316.3ocyW01aZbDDdOaeIgKMQMR8yQm3SmqPDvuDSUTUMfAaT4MYHQMJxxZ4t8N15ico2sXaTkk5O49Onc1cO7cDvNoH0phrs7ryNy7LuryLzOh6Rhi4QHCqgymRPFei4f4Lw35iwTFp0IHiWZ1AGKHQ15ipMeJNNl3gLL19T4AF41Ao97m+TMbHl4RROBg9.m5RZSmPEom1+3elFF1D6QFRmj41GbbKWNqNOjOCvy1lkPSwtWgCHcwxqskI5Lb7Xjw2atOwauJUvGdv966V4Gp3djKtBws7niJsG12a+JDuQdGb3AXjwSZ3QE7nABrfDiL1oF2a9fw7aXZC7AZLcTHQRTFM.rr93l7POoKJOEUeLMzq+h.ULBzR+zv115v12Y1g5Qu+7zv22pXXmJQ1.nwVKCusWBdkeH3sFHYjAR6ngzqLG3FQmJR4HwyyMawfroOFxSYgh9tnsbMMqygavDEmfuhzLBHtWBm2VpTAa3O69NKKHWEKruFGY2GyHgks+Q6ERFPD04SlxY.gSdM67fLohTalPvYOrLI7kBYY8l2XeV0tmztg8vyZzowfr1VLlLgTSvhAU8o0qqEWoT9cKXYu9OOtjk2XI2K+tW.tPDIPiT.kkVJ1o7nK62s8k060t26Oef1OjuAhKFQ7JXufXT3LRJ0bRXH+lKd2Jpp1vtqSUgzfwhfHx7TUnNZJkc0mcjzPqQws5T8zFJclOeAa8uReyxhxBoLhs+LlqfxY1PDYQVQFch3gNtKBME.MB5eWqe2JG021IgJGPlaQD5doKRYdja64mJNTOjKG7itlBBPSgGZBG0wI0LEiILuy0L5.E9PCDE+6rtCPqOOx1YjMkkZkcsGAxHRfZcbX3HnuiypdgpXTUNNX3G0Ui1060oeutM5NDpJS.Enq9RieNel.hKNKhKNAJuNnnOz9qZXnyJ49Oor3ERzZkCLCfUuH7MKk.Rti0cInIyaJHy2tZyLuobiHPik1bWbXaN+ppLulDRnLZXkbYHBFPks2at.j4kVbHOHHjnCnPhN0CJXyG8qq0MxT2sjaDnisx5KmzRYH.KYGTTZspPYGi3MjbqvATeQA7OJCUDCN.Tm4BNC7VP1MP41oYZwJNWhiAWKS8XWtfzi4n.t0cV1eNKe+0xKIuGRhVKa43qnGSPG1rIiHQYq4kWDZQube+m70022UmVybQNqEiJ5MkjP+3CtPI0Ev+89VmfEX4fijyf6MkDInR3XbB4ZXrsdLRNySHwWI3SAXdeCNjwSEJtuHYHSa7HRHhBl9olp5AzsoC1+3wyyNk+Fpm.FiaZv.xwDYKGI0qAJBDVvJO2XaTFqkSasWlXMc9WYtmade68GzjsRM4qW0jLoAkCoaSvQLokivdT9oQ7YS0QxX70jVr9QDndaSPV4LH6Ov+eBY6kEY9+WgLyGDY4LSdZ+f4R5wOllexxUkpFxJE+LScy4r96usrdu2eucI+suZk0U1tB1qi6MKDKVdYO4JwILfNAKsgkbKJVLULO6Jy+C1.rzitA3WKDekYepvc75w3VqAiPOh+MvXxdyuvrguOwUjBvcLa9Ka5RxeAyqGHGzAKhnPcfY2YSF.yibIf0YP0QrLeukrOoltjjVFAF.aTnH9K3SByxRZiDlkWvDMA6FwuzU2+WtY9yTm.Xho9VL4fuNEPaWFolIjMNOAdOcoq6xpZEA2aSEb+MUvC1TAObSE7sapfGsoBV4KKnrcW0YB9D8yFDpS+FpgnFFMT8CUUqn+FXdNJAD
-
@ustk Perfect, thanks!