HISE Logo Forum
    • Categories
    • Register
    • Login

    LAF disappears when preset is selected!

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    8 Posts 3 Posters 146 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      MysticForgeRider
      last edited by MysticForgeRider

      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);
      

      Screenshot 2025-06-05 at 08.31.19.png

      ChazroxC 2 Replies Last reply Reply Quote 0
      • ChazroxC
        Chazrox @MysticForgeRider
        last edited by

        @MysticForgeRider I first notice "center". Should be "centred".

        1 Reply Last reply Reply Quote 0
        • ChazroxC
          Chazrox @MysticForgeRider
          last edited by

          @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
          
          M 1 Reply Last reply Reply Quote 0
          • M
            MysticForgeRider @Chazrox
            last edited by

            @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. Screenshot 2025-06-05 at 16.22.54.png

            d.healeyD 1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey @MysticForgeRider
              last edited by

              @MysticForgeRider You're only drawing the text if obj.isHighlighted is true.

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              M 1 Reply Last reply Reply Quote 0
              • M
                MysticForgeRider @d.healey
                last edited by

                @d-healey call me an absolute noob, but where do I put that value?

                d.healeyD 1 Reply Last reply Reply Quote 0
                • d.healeyD
                  d.healey @MysticForgeRider
                  last edited by

                  @MysticForgeRider Actually it's in @Chazrox snippet, yours is fine.

                  Libre Wave - Freedom respecting instruments and effects
                  My Patreon - HISE tutorials
                  YouTube Channel - Public HISE tutorials

                  ChazroxC 1 Reply Last reply Reply Quote 0
                  • ChazroxC
                    Chazrox @d.healey
                    last edited by Chazrox

                    @d-healey woops 🙏

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    9

                    Online

                    1.7k

                    Users

                    11.9k

                    Topics

                    103.5k

                    Posts