LAF disappears when preset is selected!
-
Hey guys!
I've got a problem (See screenshots), I've got a combobox going with custom LAF, and whenever I select a preset, the text within the box, and the LAF disappears, any ideas on how to fix this?
const var PresetDropdown = Content.getComponent("PresetDropdown"); // 2) Position & size (adjust x/y to sit in your top‐left corner; width/height as desired) PresetDropdown.set("x", 88); PresetDropdown.set("y", 57); PresetDropdown.set("width", 150); PresetDropdown.set("height", 30); // 3) Populate with 12 preset names (each on its own line): PresetDropdown.set("items", ITEMS... const var ddCombo = Content.getComponent("PresetDropdown"); const var lafDropdown = Content.createLocalLookAndFeel(); // DRAW CLOSED DROPDOWN lafDropdown.registerFunction("drawComboBox", function(g, obj) { var a = obj.area; var radius = 6.0; // corner radius var outlineThickness= 1.0; // border thickness // 1) background g.setColour(0xFF191919); // dark grey g.fillRoundedRectangle(a, radius); // 2) outline g.setColour(0xFF000000); // black g.drawRoundedRectangle(a, radius, outlineThickness); // 3) displayed text g.setColour(obj.textColour); g.setFont("Roboto-Medium", 13.0); g.drawAlignedText(obj.text, [ a[0] + 10, a[1], a[2] - 20, a[3] ], "left"); // 4) small arrow var arrowSize = a[3] * 0.4; // 40% of height var px = a[0] + a[2] - arrowSize - 6; var py = a[1] + (a[3] - arrowSize) * 0.5; g.setColour(obj.itemColour1); g.fillTriangle([ px, py, arrowSize, arrowSize ], Math.PI); }); // DRAW POPUP BACKGROUND lafDropdown.registerFunction("drawPopupMenuBackground", function(g, obj) { g.setColour(0xFF191919); g.fillRoundedRectangle([0, 0, obj.width, obj.height], 4.0); g.setColour(0xFF000000); g.drawRoundedRectangle([0, 0, obj.width, obj.height], 4.0, 1.0); }); // DRAW EACH POPUP ITEM (text + highlight) lafDropdown.registerFunction("drawPopupMenuItem", function(g, obj) { var a = obj.area; if (obj.isSeparator) { g.setColour(obj.textColour); g.drawLine(a[0] + 5, a[1] + a[3]/2, a[0] + a[2] - 5, a[1] + a[3]/2, 1); } else { if (obj.isHighlighted) { g.setColour(Colours.darkgrey); g.fillRect(a); } g.setColour(obj.textColour); g.setFont("Roboto", 12.0); g.drawAlignedText(obj.text, a, "center"); } }); ddCombo.setLocalLookAndFeel(lafDropdown);
-
@MysticForgeRider I first notice "center". Should be "centred".
-
@MysticForgeRider try this?
HiseSnippet 1637.3ocsXr1aZaE0NMtZg8PqRS6iSWgzlfNJwFBoICEsl.gVTCInP5ConnpK1Wfai4dsruzDVUj1Og8o8aqeaR6S6i6eP24Xavl.4ozbjn9ddeOu74z19RaVPfzWSOyQi8XZ5ekQmwB0fZCnbgVy5Z5eiQKZfh4Sh.syXOZP.yQSW+AOGAnuxxZgO+6utC0kJrYIfzzdsjay1iOjqRf19Yuj651f5vNhOLE0q8rl1RQMoqbDXOOvvTyiZeJsOaeJR1RFZufFLPS+wFkJ0ydCSyMJWthIkV1gRWyhUdSVu06YWwbSSmtULg+VWS+g65vUR+NJphE.BcGoy3NCjmIhTvq4A7ttL7fkVGPyQf0pMf65zdhyIPSSe41ItpGD4p9NiVbG9T3ItruMDAIgizNM8ktNSx5NXR5oLokiLoGYzw1m6oRvf1yWZzT.QvdTH1j1ThnUao0xXTSBTHTEGROk0vGNLkibqaZVf.+juZlLYf.Tfh7ApOb6XALUceomCX6jsHSDQelplbnmT.GxkcVxxhBY0UIkxSZKC3JtTP9IR.+2XjbTm2OBj84qNlnj.LEgKHigbA3n2e+6+gKqmhXK8EL+pjy3NpAqNfw6OPQnADGV.2m4jOyr5qH7dtrmmsvJqP1XCP4KB83PzUd5UfNTUYKPHVULuBRhrCflxlwWvx3EzajKDiAaUMfXUh3ExIQ.YyAjbLp8.Bb84p.B5.c4BV9eYghmqXCC.oGJ7jHfiC3m6JI3ys28mvuKs2BBe19Lvn2SZSc2SJOcagSCFyMW78p9ga+FRs8Nnyt0g2Onc8Cdy9YRInh9r9brcQiQBaL7lKqiO8rPCcGIDHH8lfneAhr66ym4iYvK.ZPTxrOagDTjBFT0oz3Sc3iBRSy5EMqllKvJixRhocJqxQJzIez.t8oBn5XKh07r1U56.rplPTlLwHrxS5Bsi56KGIbBA1GiNQsqxYddiFVah+kuJRsC0+TRee13XJ6Ac7ND4j4bHyVQE8cY4nEhMQz4FqFnxH1NWnNLCehzQWWvdhoBcxWs7KL2cOkFgTUGdfmKcLygnXmqlSwXT.QDcLe0DBZHwjrCkckJ4SZw.cMDBwVkKZNkJzx11k2WvbNBjwTgUHCYgOGSnGadB4mIVPaG5wVmf+V5DxSHkBAT9DxIWEuYwdDYSc2VKOIXH00kP88kmkjngm5fcc1JRhOlXVbspyIOTBl+HQ1iDUgOU.dmmj+EatwFYhneBY8jzVuwoYvBYHWnlSwQ9PynR0E5+wd.QGsl5Zwjpi74QA6iAip.nmBIBL0qfOizhpFTrcSf8KRWM29f1upMYmsq8xme3AuZ+52hxYr0lWKlXzNSqHt5J6qpL45pLNFB0lgRoXX62nWiBBvMYsT4WKt935JKtYgW.6LbY+ztaW6EwNqlGsaKRNLKFhiC.9bQdyeW7bMg34M0M7x8+B+g2iDkPDzg4Q8ovnD4CQ7woEEWctSriIw4rGzTHWbFbkBSRMwLyUKsvprYy1miExjryKHS4NwhewDWE9k5In+3LpIssG8OAEwloXuzTVepbGHtlidITYlsJ9FalcIRS2VC6mUZZ91rduE1Wi.scyZCeJElGI6T1hZIcQTJU7WtQUM2GZSkCgjNIAAFUXeohcfHGlirRlKxPtLpd8VHN7C69RWWl+BQiyf6ecLlSLZXWleAHozcDaJgvLmyNH6CucCxZGMmQJBkhlBt5.OV74FRWGb.U784G6UKdPEb.3XKDHUEN962FO96jwMz3NHvYGBRK7djduEsW0rNUQmHQP3fB8X9JNduzqy9.rDSz.1qXTmEbJLPZHswiYAfuK5+bf9G913EjFiG1L9PX6HDveFCHpoDB4GhgjTKiP+j1+7YDZ29Iv99+5SedBkAHfI6hoM+9BvlJRGbJ0YWeAWrKFAjJLyNC3dABX37wocf2gcZLu1cZtsl3iLZyU1CVrMtzBrQH19+gMFuI3WaraudPenDCbYiFu89t12Mnd36YJtnO70beNjJYr+ngcfPuMCztPvbAganuDVnDc1DOidfNLgS3gOCOwHsvy5wHslfTaH01W9N6nxKbWyuHDBXShvcwWwnEdlXc4hIMsgvpuuy1dVQMGiktuLV99x3Z2WFqbeYb86KiO89x3F2Li3+yDaORIGFU1no0p8tgM+z02UPgLvvrUs+C.EQZ7M
-
@Chazrox that fixed a lot, thank you!
Now only to fix the list showing up, it keeps it LAF, but doesn't show anything when selected.
-
@MysticForgeRider You're only drawing the text if
obj.isHighlighted
is true. -
@d-healey call me an absolute noob, but where do I put that value?
-
@MysticForgeRider Actually it's in @Chazrox snippet, yours is fine.
-
@d-healey woops