Look and Feel - Toggle Buttons and the MIDI Sources panel...
-
@d-healey Yes... LAF is okay in Exported plugins too.
-
@d-healey said in Look and Feel - Toggle Buttons and the MIDI Sources panel...:
if I comment it out and reset that doesn't fix the problem.
In such case you will need to reopen HISE.
-
@Rudra-Ghosh said in Look and Feel - Toggle Buttons and the MIDI Sources panel...:
@d-healey said in Look and Feel - Toggle Buttons and the MIDI Sources panel...:
if I comment it out and reset that doesn't fix the problem.
In such case you will need to reopen HISE.
What I mean is that hiding the problem is not a solution.
Are you saying that with laf enabled and the settings panel combo boxes black, I can export the plugin and the settings panel will look normal again?
-
@d-healey If you enable Laf register....you will get black box until or unless you write
laf.registerFunction("drawComboBox", function(g, obj) { .........rest of the code g.setColour(0xFFF7B7C7);
-
@d-healey I didn't hide anything...didn't hide black combobox either. If you write
laf.registerFunction("drawComboBox", function(g, obj) { .........rest of the code g.setColour(0x00F7B7C7); // make transparent });
-
Works perfectly in DAW -
So in order to use the settings tile I have to make all combo boxes transparent and then redraw the settings tile using a panel and a paint routine?
-
@d-healey Not only transparent, you can select any Combobox/Custom settings panel color from the code.
laf.registerFunction("drawComboBox", function(g, obj) { .........rest of the code g.setColour(0xFFC7D1D6); });
const var laf = Engine.createGlobalScriptLookAndFeel();
Always override the default LAF. So you don't need to write Paint routine to draw combobox. The default combo box will be overridden by the
drawComboBox
-
Content.makeFrontInterface(500, 400); const var laf = Engine.createGlobalScriptLookAndFeel(); laf.registerFunction("drawPopupMenuBackground", function(g, obj) { g.fillAll(0xFF222222); }); laf.registerFunction("drawPopupMenuItem", function(g, obj) { var a = obj.area; var h = a[3]; if(obj.isSeparator) { g.setColour(Colours.white); g.drawLine(a[0]+10, a[0] + a[2]-10, a[1] + a[3]/2, a[1] + a[3]/2, 1.0); return; } if(obj.isTicked) { g.setColour(0x9F5AC4EC); g.fillEllipse([a[0] + h/3, a[1] + h/3, h/3, h/3]); } g.setFont("Calibri", 15.0); if(obj.isHighlighted) { g.setColour(0x9F5AC4EC); g.fillRect(obj.area); g.setColour(Colours.white); g.drawAlignedText(obj.text, [a[0] + h, a[1], a[2] - h, a[3]], "left"); }else{ g.setColour(Colours.white); g.drawAlignedText(obj.text, [a[0] + h, a[1], a[2] - h, a[3]], "left"); } }); laf.registerFunction("drawComboBox", function(g, obj) { var a = obj.area; g.setColour(0xFF1B2129); g.fillRoundedRectangle(a, 1.0); g.setColour(Colours.withAlpha(0xFFACACAC, (obj.enabled && obj.active) ? 1.0 : 0.2)); g.drawAlignedText(obj.text, [a[0] + 10, a[1], a[2] - 30, a[3]], "centred"); var h = a[3]; g.drawTriangle([a[0] + a[2] - h/3 - 10, a[1] + h/3, h/4, h/4], Math.PI*2,1.0); });
-
@Rudra-Ghosh Thanks for the example, that makes it more clear. I think I'm still going to avoid LAF for now, it feels too janky.
-
@d-healey The only thing I'm not confident is the
Content.createPath()
issue that makes the components disappearing as we mentioned in the related thread. I'm pretty confident about the rest. It is just that switching from custom to standard LAF makes some weirdness inside Hise (hence the reset function), but once compiled, everything works as it should. -
@d-healey said in Look and Feel - Toggle Buttons and the MIDI Sources panel...:
@Rudra-Ghosh Thanks for the example, that makes it more clear. I think I'm still going to avoid LAF for now, it feels too janky.
exactly what I decided......
-
This post is deleted! -
@ustk I had to put
Content.createPath()
outside the function to get LAF to work with sliders, then it's working fine also when compiled
-
@ulrik yeah that might do it, but since Christoph said it was bad to refer to external variables in a custom LAF, I’m a bit confused on doing this...
-
@ustk said in Look and Feel - Toggle Buttons and the MIDI Sources panel...:
@ulrik yeah that might do it, but since Christoph said it was bad to refer to external variables in a custom LAF, I’m a bit confused on doing this...
I'm a bit confused by it too. Christoph said
the methods that you give the LAF object must never access script variables outside their scope
But does that mean passing variables in as parameters or referring to variables within the function? What about external constants, won't they be resolved at compile time?
-
Right, I've spent most of the day playing around with LAF. It's usable, but it takes some getting used to and it still feels janky.
-
But does that mean passing variables in as parameters or referring to variables within the function? What about external constants, won't they be resolved at compile time?
That was a question I asked Christoph but I can’t find the thread... my question was about colours, for instance, is it safe when you use your own external colour var inside a LAF
-
@Christoph-Hart Any idea why paths are causing LAF controls to vanish?
-
Do you have a reproducible example?