HISE Logo Forum
    • Categories
    • Register
    • Login

    Repaint panel or sliders on combobox callback

    Scheduled Pinned Locked Moved General Questions
    25 Posts 3 Posters 1.2k 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.
    • gorangroovesG
      gorangrooves
      last edited by

      I don't know if this is a bug, or HISE limitation or I don't know what I am doing.

      I have a set of sliders that are getting painted using LocalLookAndFeel.
      I also have a matching set of comboboxes which can have values 1, 2, 3.
      I have 3 LAF methods for the sliders.

      The idea is that changing combobox value changes the look of the relevant slider.
      This only happens when I recompile the script, but not as soon as combobox value changes.

      I tried placing:

      DmsPanPanel.repaint();
      

      In the combobox callback to repaint the containing panel, but that doesn't do anything.
      Likewise,

      panner.sendRepaintMessage();
      

      placed in the callback or elsewhere doesn't do anything on the combobox value change.
      Tried using a timer: it doesn't work.

      Nothing I tried can repaint the sliders upon value change, only when I recompile the script.

      It is worth noting that when I had a script for a single slider (before I implemented loops for multiple sliders and comboboxes), I was able to achieve this as I was placing the condition (PanState==1, etc) within the actual single LAF method. Didn't need any repaint instructions.

      How do I get this to repaint on combobox callback?

      Goran Rista
      https://gorangrooves.com

      Handy Drums and Handy Grooves
      https://library.gorangrooves.com

      ulrikU 1 Reply Last reply Reply Quote 0
      • ulrikU
        ulrik @gorangrooves
        last edited by

        @gorangrooves have you tried to place the component.setLocalLookAndFeel(laf) inside the callback?

        Hise Develop branch
        MacOs 15.3.1, Xcode 16.2
        http://musikboden.se

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

          @ulrik said in Repaint panel or sliders on combobox callback:

          component.setLocalLookAndFeel(laf) inside the callback?

          That doesn't seem like a good idea?

          @gorangrooves Can you make a very simple snippet that demonstrates the issues?

          Free HISE Bootcamp Full Course for beginners.
          YouTube Channel - Public HISE tutorials
          My Patreon - HISE tutorials

          gorangroovesG ulrikU 2 Replies Last reply Reply Quote 0
          • gorangroovesG
            gorangrooves @d.healey
            last edited by

            @d-healey Yes, I'll do that....

            Goran Rista
            https://gorangrooves.com

            Handy Drums and Handy Grooves
            https://library.gorangrooves.com

            1 Reply Last reply Reply Quote 0
            • ulrikU
              ulrik @d.healey
              last edited by

              @d-healey Yeah, that was not a good idea ...

              Hise Develop branch
              MacOs 15.3.1, Xcode 16.2
              http://musikboden.se

              gorangroovesG 1 Reply Last reply Reply Quote 0
              • gorangroovesG
                gorangrooves @ulrik
                last edited by

                @d-healey Here is the simple example.

                HiseSnippet 2164.3oc6Z07aaibEmzwLvl65zr.sGVfdXfuDoFa8AkcxB3Fr9Ss0nR1FVNKV.Cifwjijl0TbDHGEKs6Zf8RQA58Bzi8b+yn+GzSEnmJPO1K8RO29lY3PQZ8Qrj8tnnIDIlZl48wu2adu2vYHOIj4RhhXgFlKe1ftDCyO1pwf.d68ZioAFGtug4Srpii3jPjpqcGzEGEQ7LLMezWH5vb4EMjW+qOeWrONvkLrKCiujQcI0ncn7g8dx1+ZpueUrG4LZmTTuw1G5xB1i4y5A34QVkL5hcuB2hbDVP1BVFlO9.OJmE1fi4jHflcYdCZzlccfh9ujFQuzmHZT1nAHHU2F60l56ch1ViLLLW7jgV9iTV9O0pN0ilz+POvSkCfFxQZef4BSCRkmAHYlBRKpfzmX0vMj1kObDAd9HqCCfIjlXvUmFJJZMV369YV6w.JB3E5fuhTMDZjvQtWTpzZH3O42xFnJh4SJ35Svg4fNrA+eDG8VbHZ+NQmfCf+Q7QuBokWKBeOVmtr.nQtUSQypBtSw9N99P+AjvHf6yGO6J71vm5QBKuZ90rQS35cyty8i8J2O1239w9lql+hL9dvyUm4Q.xujcIqOYJ9PIM6x5OU+2TQhVBN2aIT4dKgMt2RH1WZWr3qTWnJnZ6TE0gvay7hPMYgHdaBJR54ix5zgvUf1xoh2cCIPZcMlK1uFic0NAdUIDeHUYE6gzWHjzhJJQVsWfKmxBxspWH95Zz.HsRMEu5Znl5AasFhc4WmeE6ucE6UrWVpbLnSnyBXPeaI5TO.uM08JXPmsPEKJaD.EBPrlRqvGTgfxVEhDdCQgybk5Ws5KjW42RMVSnZ6ordAdDuSItbbPKeRtywmW5h0P3yqbApHxAstRSEcD84.iHaquKHIeFfcsFYuPfLz0TOdaMrZiC77IOKBccaJmfX83ZfJ3rslyXQrtx3lfHnA.tCQcYgBmWhL5C7KvI5WH8auE62ibDKrC1m9MDOPl4TpI+3IX8xRU1G4CSsBAmUuZ039NUiz+M1AS7V2dBRcKpfz4jWfii6IVeU4rBoAsFELSZRrcewzUYXZR4LUSnIMgoygyZSJHoXQpHRF0JDO3NoxmWVqz1YUZ6rJUn1aD+bkwkl4LioYN+uWZFoxm8RmW9gzrOjlMkzLcPB3GT4YrPPpjGzLM0+mbtVkYLWqxGx09Pt1OJ4ZG36S6FAyct8WONXWcuxEO2Qe+h7STySKCykFB6rYZpTmcITSbtkJGR9jlSwBAUUW9rjOqCKf8rzLTExyxU83iN6MmdvW75Z6b5ZnxkDRMlDQdzN9zVADuyH8gGcsNjIMdrrFZUWHkMj3sZ7JpII511wI3p8cJ1fvE.pJuNpVQPiNqeZwZqgprNp9wGcrss.p4DbPAJKsEb6WlZKZE7IAs3sgte9yyi9VIRED2UNLvwPROmBOdsd7HgtggSfQxnx+PahxESxqPk0BVboDrvaMRcngOVcdkntAQ7iHYElyrJLmoHrJypvpnEls8MxsZfzUIQbFpWWOgfSwI5RLrCcDLr1QYSCDkORJfFyzP2blJy.7VtXQ8l06BoSPTyqEbHRrv99wnNBR8YWgfvcTSfwBEJH2Ut.px4+67bu3RTEwepQ.CoZxwAIwBCuRZN4viYMD4NElLqgJ2ovkYMjQE1LhqHQDAvxYcwvDbcXIQbKRNYwTzYgCP7PZqVDYsTLJTQUh.JVL0YwTHdzbIwowgoMHbj9TYfHU3AE3gLwjbHF1ernWnJcCZmtPUSwY6g5v754ShFIbUg28fPuKwtWkyUuO70PxULjQrpPCJrTW+LwOEjccbygbof4xZVFSzjfCw15uQZFoNWDvoKWVYXgP.xiGvxSTYZH1dX.sF0ibPLSB7HM3GaBSL7WVR4sMKfVIDhGWRyTKGn7CpYT03HscEYOaI5YxpUq1ICIR7SYmnAUeiVsB+xTz6ndtwn9QHZxnH8rm.FIyrrfiXbxwA4xaCAc.9P2dnlMG6XwJwmDN1gEGMc3zXLWPuNWRB0APZBMLWL6AB+361AB6pd77TDxBNLfxOtKItcUlum3fdE+dziO1H946MLLsiQHPJWdLxOwJ8wMZPAg7SxzUYCoQDeT7e+e9e+2+biYVHNYDB527O+KygPp7PfjMxHjss+q+i4PHalQH+wtu5uMpPdZLG5SeTJlOxJ4PYyHB4qHYVEgysEgw1ypHpbaQrzLKhMt+FxliQDu9v8wbr3UeDG7BAzcIvthD4Ml6SdK0kndQHKasOI5JNqKjOkbpuvuUpdE8qIQr5mTuqXkZ8Pi9oeiTCR2PtAMCSKye2BFFsIzVs4hV8ggLsRonO9NmH0Wv+jzitii1Vqqgu6qH9.e46e6WwBoeC3OvfovIczuOrke7RK8GZJnkDfgBHh2IUMX23AhW8SDT1PraBgeGZB6wn09zPhrj0sjIrZOXRorsr9Ji4vpcTV8u88Kqthxpeh46UV8FJq92+9kUuoxp+4K7+EV8R2wUuRWKyx7OA+nCV12ifeJrAnL8mZIePGTYa0cm36UF02vACA31ZucKOGvIaQlGT33LGvIa1+CJbpLGvIaZ4CJb1XNfS17kGT3rogwnenDO0ptXqpXd1uaCwlXiGPjvj9ikP7AQDDQ4CR+DIyvGyQoo9wbbWg3mXcBk61d7XbgwfQ34R9g.iweBLqXcPylP0kg.bQqpe0798t7NT+ordhCvpNlGREQFG0qSCnhnKAzNrqS+HQzxBhc1nZWRWMpAIvS13+.WwCVVz1Ldvx5AgXN2P1ahOnCwGYyRxd.LEH+lhV1ptnMJ4I0srJUnjQGnF7abcEl+5kMLFOONyAOUlCd1XN3Yy4fmWLG77x4fmOap7HV9amdbVGU5.zwIGH2kfo4Ax0GkQgF+WOPk.aA
                

                Goran Rista
                https://gorangrooves.com

                Handy Drums and Handy Grooves
                https://library.gorangrooves.com

                d.healeyD ulrikU 2 Replies Last reply Reply Quote 0
                • d.healeyD
                  d.healey @gorangrooves
                  last edited by d.healey

                  @gorangrooves I see the problem. You can't change the LAF function assigned to a control after on init. You need to use a single LAF function and use if or switch statements in there to draw the control how you want based on the combo box values.

                  Free HISE Bootcamp Full Course for beginners.
                  YouTube Channel - Public HISE tutorials
                  My Patreon - HISE tutorials

                  gorangroovesG 1 Reply Last reply Reply Quote 0
                  • ulrikU
                    ulrik @gorangrooves
                    last edited by

                    @gorangrooves As David says, it doesn't work here either
                    I tried another way and that worked.

                    differentlafs.gif

                    HiseSnippet 1035.3ocsV01iZbCD1KGaTf9hRj5OfU2m1TQP.WRZkppJANnB0iKzv0nVEEEY7ZXcwq8JaStCUEo7an+R6+f1w6Kr6cfHbHU9.f8LOy7LiGOimnjDpVKUHmZWsNlhb9R2oqElv9gXl.M5bjyW6NFqMTkW5V8VGi0ZZ.xw4je1tgSspnjO+yO0CywBBsXKD5MRFgdAKhYJ1cR2egw4CwAzqXQkz9YcGQjh9RtbEvmSbaghwjk3EzKwV0p3hbdvf.lQplZvFpFzomLX8zP40hT8eCSylwo1EsQSACktMpeHiGLIOV0HjS0IEQ9IoQ923NlEv1reQF3QIB7JPTNG3TYeTp88fRNknT0TJ8X2oDEK1THwxmuvcj.NPligTcYpjpKpxeW0suDzPXZFgWRGpfEaP3+hVsZ3Ae8jendcHcqMde.CGti648id4vVPM8kQwRArv+TP1oVsyTmimWRUhhBA9ERBlegTt7khfgTJ2uv5f5CWIHsALygeMLoveQCO4r+7I0+q50VzTacl8L2O8GcyEJ5Zv.fr4PgxqkqDAzfWSIFrXAm5CPahA21vqsMJpsaibcHyPSsRfBe8.NmEqKCtCH7i2klctGzL.qVdvTsygS08EvEz9179r6AuIgXkQQWooGFyOXhekhcWviwlvlSF8ssZ97RTGpnrVaqpFHX1pvQCQ1ayKhZr4bZy+N6c.BlfyDzMY.OEcAy1z5B7beFDX2jjL.DMykLLOYcpk4P09LYO4Mmtwr52lf6c1nKktBH6DC8DLigqhPWIaM9GgfYKmC8vF2yd+PI49j76QMf6Y7UzDhTldI69z1Yol8bCLM+mX09XNeFzazurq.KThBWJMzWI7SbGPSu6JZ97cJKyVbpZmhsMrU6CnuXUzLppbvZUD5nc61jO3vZSRRSGkTTJFIXlWESyVOTxCrs+r+e6lpnr7os8ZFCAUMIMWeTVy07ydDCLiqKjPQIju7jMzuM5brAmaFvhfWhoJCyFLNmS+.LlKsmcM2yo5kFYbhtYGgHmG9Yc5MENj0ccwh+n60r.S3lM9DtaHksHrXh5m90tQX.tqyIVvFZj15InRtcc3qN1uNCl6t07EXxlLXEGat83N6b8LAvg6slwXmiHzLy5xYm6wLvV6cF3gRwG6NgYHg6liU1AGgCt+O3X1KG9J2AymCcNKHXU2g+9w9LgOi6gN0FlXAzXUwrm4WtJZJzLlPAuKDTt1VGTwV5mttkcsMCLE5fkr3egOYBaaW6jIrctPTDlnjumjdgw91jGlrCvIQxSwpAuIDV60N+lhqaqlsPQvyjdOgXC+mB2F2MlNGAlyNBLO6Hv77i.yKNBLe2Qf462KF6KTe4JiLJ85.rwjAIcrbbFHvPkURUH5+v3kgFg
                    

                    Hise Develop branch
                    MacOs 15.3.1, Xcode 16.2
                    http://musikboden.se

                    gorangroovesG 1 Reply Last reply Reply Quote 0
                    • gorangroovesG
                      gorangrooves @d.healey
                      last edited by

                      @d-healey Thank you. I thought it might be something like that. I was able to draw a single slider the way you suggested, however, I got tied up trying to implement it for the array.

                      Here is my original LAF script:

                      const var PannerLAF = Content.createLocalLookAndFeel();
                      PannerLAF.registerFunction("drawLinearSlider", function(g, obj)
                      {
                      
                      	 var a = obj.area;
                      	 
                      	 var thick = 2; //thickness of the line
                      	 g.setColour(PanState == 1 ? 0xFF666666 : 0xFFe38727);
                      	 g.fillRoundedRectangle([a[0], a[3] / 2 -thick /2, a[2], thick], thick / 2);
                      	 
                      	 var wthick = 6; // width of the handle's white outline
                      	 var hthick = wthick - 2; // width of the handle's innder portion
                      	 var hx = a[2] * obj.valueNormalized - (hthick) * obj.valueNormalized-1; // x location of the handle
                      	 var cx = a[2] * obj.valueNormalized - a[3] * obj.valueNormalized;
                      	 
                      	 
                      	 g.setColour(Colours.white); //Outer white ring of the handle
                      	 if (PanState ==3)
                      	 	g.fillEllipse([cx-1, a[1]-1, a[3]+2, a[3]+2]);
                      	 else
                      	 g.fillRoundedRectangle([hx, a[1], wthick, a[3]], wthick /2);
                      	 
                      	 g.setColour(PanState == 1 ? 0xFF666666 : 0xFFe38727);
                      	 
                      	 if (PanState == 1 || PanState ==2)
                      	 	g.fillRoundedRectangle([hx+1, a[1], hthick, a[3]], hthick /2);
                      	 else if (PanState == 3)
                      	 	{
                      		 	g.fillEllipse([cx, a[1], a[3], a[3]]);
                      		 	
                      		 	g.setColour(Colours.white);
                      		 	g.setFont(FONT_REGULAR, 10);
                      		 	g.drawAlignedText("M", [cx, a[1], a[3], a[3]], "centred");
                      	 	}
                      	 
                      });
                      
                      for (s in AllPanners)
                      {
                      	s.setLocalLookAndFeel(PannerLAF);
                      }
                      

                      It works perfectly for a single component.

                      How do I apply this to AllPanners array, using PanStates[] values of PanModeComboboxes array?

                      Goran Rista
                      https://gorangrooves.com

                      Handy Drums and Handy Grooves
                      https://library.gorangrooves.com

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

                        @gorangrooves If possible I wouldn't hard code the colours in the laf function but apply them to the sliders and use these within the laf.

                        Free HISE Bootcamp Full Course for beginners.
                        YouTube Channel - Public HISE tutorials
                        My Patreon - HISE tutorials

                        1 Reply Last reply Reply Quote 0
                        • gorangroovesG
                          gorangrooves @ulrik
                          last edited by

                          @ulrik

                          Thank you. That works for a single element.
                          As you can see from my script above, I was able to place all 3 looks within a single LAF function. It works perfectly if you want to set the same look for all of your sliders with a single change of the combobox.

                          The challenge here is applying LAF looks to individual sliders based on the value of their comboboxes.

                          @d-healey Hard cording or using slider colors doesn't really make any difference here. Its like telling the guys on a sinking ship: "I think you better put on some sunscreen." 😂

                          Goran Rista
                          https://gorangrooves.com

                          Handy Drums and Handy Grooves
                          https://library.gorangrooves.com

                          d.healeyD ulrikU 2 Replies Last reply Reply Quote 0
                          • d.healeyD
                            d.healey @gorangrooves
                            last edited by

                            @gorangrooves said in Repaint panel or sliders on combobox callback:

                            As you can see from my script above, I was able to place all 3 looks within a single LAF function.

                            Update the snippet with this change and I'll take a look

                            Free HISE Bootcamp Full Course for beginners.
                            YouTube Channel - Public HISE tutorials
                            My Patreon - HISE tutorials

                            gorangroovesG 1 Reply Last reply Reply Quote 0
                            • gorangroovesG
                              gorangrooves @d.healey
                              last edited by gorangrooves

                              @d-healey Thank you, Dave!

                              I appreciate you wanting to throw me a life line and not just a bottle of sunscreen 😁

                              HiseSnippet 1913.3oc4Y07aajaEeF6LAQZ2rMKvdo2H7kJ0Ha8oSVTWiH+k1ZTYaAqrKJfgaJ8LTZXMEovLTqkS2.rG5eDcu0+K589OQA5oTTfdtW5412iyLRyDI4Mqj2KMCL7HR993268HejONcBTtrvPUfkctWd6Plk8G6z8Vo1+.eJWZc7gV1ehyIzPMKfD0092NjFFx7rrsW+KvNry8.Kyy+9E6SEToKaZWVVekh6xZyGv0S6sSyeMWHZQ8XujOHE0MZdrqRdfRnFA3YcmJVCotWS6yNkhjslik8COxiqUAc0TMKzx9A6q7tsqu5FYD8eEOjekfgMpZ0EDTT2sTBODwXuVG3yEdcRr6PKPJcl5EVOxK7YNmv83S5ep23IlAHS4Hs+vdsrva8LvqZZ3UIE7lCjrSAoGDAoO0oqa.end5HHd9HmikPvoGEb6ogRDsVq8W9HmCT.ER8VCnWyZE.MlvQgmUoRIB7uh6jGnJTIXa4JXzfBPG4gXQnl70z.xgCB6PkveLAYWRh75yzGnFLTIgFE1HEMafbmh88DBneIKHD39h4ydDd6J3drfpaTrTdxBd99Yu1pwd8Ui8FqF6auQwKy36AO2IJOFP9UpqTiY2gOzPy9pw2o+6NQRhDpsxRn9JKgFqrDh8k4iciQqJQ22k6Ttb0MIsKedIRsMOub6Rj5aRN4rSOKO9TtLoKSSRlypUDHbnCTBxPZ.jJRi8p5Q5xGLTvHXVPx.k2HAKLOWJ3RFo2Hoqlqj.GnPNfJDWA4xJ3lfxRPvULhUj7GxmSnboBBW5wFCna5pksLccVuobAKr.qNWBKgnEArLw3tvvAZzuwXFol0DBVj1mkxQ.Pd9.1Le6tPrIrjE0yLMcQfmj.9HOSFCdB7yYn7cMKfVCDvwMVXTrJhYRBhCy2SEPJvApqrCgS9ko8nBlru1G59oOEMDTKoU+kaEhyjLA6IdfrgPvJdShZQK9Nz6r9j4n9YHZwnHcbIAF6F8PpSZuWKBL2zW4ERPjfA6PSNkvroS.iAocZhb2.F3kaiQk1J006I8ZwXBbOfITuU.qOGOEPq34IE1vKfdSaXpCMHJy0FklLIpP+RD0U+9h4goJ4LpkBpC5YKJnpch6KI7lYBLPDF+Iwzn84tWCDTaGR4xlFRXuObwGZd3LWfv9Q9K7XCElJzcIUIufTYbqVOy7P9ElFr5e9yq87h6X3qGbNjyUifYWdmyb0TYeAqvEzKpbYIB8h5WRJSpQ1LBDkqg8UCFwzN4MRRwTH9lDH+LDxja3dZ+D75SkdB1OKjbiOGfnZjN1BPF8SXLVBaFYzKPBbI.5.xPU.5vSDAtRDwH4ma71lUKmpBFPE7Wy7.QVHRKEmOAaV0nwwl01lrAYTarVb+d0hw0M2AicTuSPK5U3VF2RQDCmMBOwYjaJfK6OCP38Hoi00KB8kKJfdjPvGFBwQ2waVEiYUuL5c8KeZsj2WZhYLQH6NlH3ONh8RwwjHlmzDlRjD4W1ofyZI.Key2jZswt0RYZyChOsZBH8yBR+LfDM0YzUjaC1BZdNuDwhhKVnnjxg6+XnegAvoi2BRwTn0Ym9xWc9QewW1dOXC2pUlP.lBYOAuuj48R1XXm6SfjHyWykHa3B4pBXdaXLmbuA8duAOooIsKthHUpbL0StPDAyjVaRNMLE5js8TxSUZ1YxBFNgbqj2cnd8l6Xw4oErf4NLVgSvcwXA4nAWwBR1cMgP3X+YqkvYw0RjtTG2nb5oHTIOVx0mMjIWTAPVwaD.0cjOFU.oZSUGehS5SmZwghK9IY5ppkA3wUw8m+tu6e7BqevBoVFg71W+Y+qkPH0yHju8u9ed6RHjFYDRy7+s+4RHjsy5SFt6eeVg7jXNRNrpQLXwZwmgOiHLUW+CUD0VcQTe0EQiUWDaOGQ7kGeHUSwJkim7BSnGxfMCw0J1Gx9ZtKKpt4bNGxBuVqFZY+vIEI.+NR0ONopZrvUiderSpRYsFm9xLtMcCy9xS5nyeroOi22O00b7aaZ6jRge768Bp2WcZc5L5rQyP8sBy037qTA7WC9FJXVZ1fjqUI2Cezi9S8PZYRJj.AuNi1vg3j3sFDBoMvLwXL.ZB4m6eHOfYRY8NxDJEBLqT1WV+l0RX40RY4u8207CHKudZKe3GRVdiTVdma+Pxx2NcL+a++AK+Qum6rsf7aMYMGPgwbrWGZg1BjJ+m5DcX0p4idWK9c8Y8QZvf.tcNX+pKArVXxm6OXUaIf0ByLb+Aq5KArV3x16OX0XIf0BWSc+AqsACdl6l+INmf2+GUm8SEf2LX7.3Bqz2OOdG7xPt91zmp4d66G79BwO0oCW65OeLt1bvHbfqeLvX7Wc4wNG0qGjEZJ.efSqeyONehEKnVZMW1+DpNfiyLNczftPlSWFncnBQAVyk8ZX0QQsqfsQOPWlzyz3+BOwCVEaaGOX0jAsFPcCTuJ91iwuqyiL8.XRZ9jV4bNAaSlbZeGmJaUwZ.jq9Uttn4uIjKa97TaI3o9RvSikfmsWBdd1RvyyWBd976jGbax8FoUChVN.cz4HSkF11GY1G0LKz5+g3ZY.N
                              

                              In this script, changing the first combobox, changes the look of all sliders. (The other comboboxes are just standing there looking at what the first one is doing.)

                              Goran Rista
                              https://gorangrooves.com

                              Handy Drums and Handy Grooves
                              https://library.gorangrooves.com

                              1 Reply Last reply Reply Quote 0
                              • ulrikU
                                ulrik @gorangrooves
                                last edited by ulrik

                                @gorangrooves it works in your example as well, you have to have as many created laf objects as panners, and store the 3 functions as separated functions, then it's possible.
                                May a bit too much work

                                lafs.gif

                                EDIT simplified snippet

                                HiseSnippet 1996.3oc6Y8zbZjbEeFIMtDrqS7VUNjbqKtXHFg3exdqxI0Bh+XSEDPA3s1TJJNsloA5ngtolowBbpTUNjOD49dOmxGf7EHmy0MmRka62fjW2yLvLR.qDHmjJNTxdn698meuW+5Gu9Mcb3lDWWtildr9ymPzz+TidyYhQUFgoLsFU0z+gFv2YCInl3AHNCUAaaeI17JsSmOA65Rrzz02+URp0icfl5y29EmhswLSxxozz9RN0jzjNlJVNamR+LpsccrEoOcbHpKVpgImUgaymBHaeirZS.MhGRZgkjsmgl9ipYQEbmdBrf3poevobq48Fwul4Q+WRcoWZSjCxo0CDj2z041VRDKmUqxHpsUm.OfqFHkNK8G664O9AFmQsnKleoe4IpEPK4Hr+Peunva+HvKWX3kMD7VAjzCAoC7fzmYzyzgNQrbEId9DiFLAwY.Fb6gghGsZ605IFU3.ELQlw3qH0cfAK3H4yylMMB9uTuLNPkK2ljwzlfcRBSDG1KbEn2gcPUG61Ayf+H1neJJPdCIhJ7wS3LXPxDgnIQTtKaaCSyHNt.ymuZt8faOapEwIWhToiiVymua1yuarWX2Xu3tw9IIRcQDmG34NiaQ.xujeIeFYC9PEMmxmsQ+2FQRfDxuyRnvNKgh6rD78kwO93XEPUaTudst0Z0G0rbcT82zpR+Fsa0K1Qa9i+NgMdP8oLybfye.7TP4rjCSi3W9qSE+2DOlbiBCqAiyfcH3WFOl2jhQTyqfEx+RzwGqFvfitH9.XEBxlxHwiMLiqD9xjdIyNqd8mq9.GgfUF.4I6xmxfrWcIlBHgrMI443yydQZD97BWfNFkGcjmVNNubt7vJpwAOkjjZAftN.QOWhHz0TKwn.3.46srIO0Ec8Hpff3SEd.Tx2n.97EvQdlzZD.kAH1AMg6H8T9RXFvsDenerxO8Nr8TRKtyXrM88DKPhI8TRpUSvQ4TJbFxlahkhMpV8Th42oRTdsUtnxGEdyv6gaFk6HkT6smBIN8cONT1vaBg0sgMZlbqIGrk349717VLD15RcKsGNT33iox7mngN342Ak8rbApaTT0MJj59sKRy3Gbm+eGA2jBe9Kx+h+ev8+QBt+usv6ffAvx8hu4NpRN+PEgW3tGgGCI+2cMJOFZ8w4x0d.izWBrsIZ2iycKd2WFeni38TyNFy64s1sn9fMvZ11zItv9l4ri7C+7dV3hmkO34EoVoV2TztI0Ap4dSpKHVWpB+H8fHq0ZXfVNCMf6fd5XNi+zETWGJYJY81s5+1t0d0aZVtaZTtrARyxAecYa5PFwpOYFTJ0YIRiVM.RiRXBUa4PrR3eTCJypW+1cqg5+5ZmgZzBUF9qa2x+7nGBk60phXCpoJ8he.Zw2JDT2Vkt0J2uFpcqZdks0tKpV4JuF0qYip05BZnJZi5zqnZ3JrJMJkpzkjjBix9RDE8SBc4jL1D1PwHX5m8LUZgkLmYxT2QICp1zDRQHHMg3V6lb9UkYV0ID6jojdwkh6b5ER+8sHaoTAJjtNkkh5QDnfaII3H.9BGtMZB1At6qPNKDV1iNdBDpHu1MZL2ZpMwMNkIOZuHuFvgTHAWWOoYPcwoQpiGJKSdlyFhBsHxiWgbApoZOXIWd.T4zv.CgnMkp3brWDnBrKzYTHjxauDE5JL.OpiXfn7tprzZVssnt7y8vXt08kVoMIgd3MBIIWjwgLj5B95fvzjIjGHZBPB63QchzQBiOWghixcQH2zDoa5VnvyaMYMdqvFoxcsvCvYs3BRaVRkoBJAcykFLXkq4qEahyJWV13EmMwXR1zwWRbB6nkDpoePzVbXr9VbDtCLldmcBQHm0fQEsmPXqquLZ9G3zzzi6iJfTgpYHeOiv2ZViZoo+8iLUNMEvCZtTpewe+Kzt2BIeDgT5u89+zVHjBQDx270S9KagPJFQHn+3q9GagPNIpO4u90+4aKjm3yQvknUh4SLVzagnhPS6vR2WQj+lhP6dKhB6NJJdSQ7s2aewIqvPdSipXAV1.O+fWHfdBApbRdVQuJ4cTShW67hYTk3dkfOQS+QKZdA7cOU+3fl8I6mlRuO1HTG1zlEtGqyCOPUD2hI576KMhPGNJT2W+kkzMBovO8Nef5tpSsV2RmEK4Jlaq5y7q4Nz2C9FLXVBx3ft8F6QGd3eXfjVBCCIPjcYsIj2kIaloKj1PVPhbO.FBYkGVk5PTortgLgevDLqP1WT+l1VX44CY4eyupzGQVdgvV9jOlr7hgr7Ny+XxxOI7d9u6+Er7Cui+x1ZxuUhTZLFVyPeeXjzVfT4+HCUAPnbw8dl2+Yga6iDfAAbaT4zbaArVaxmGNXkeKf0ZyL7vAqBaArV6w1GNXUbKf0ZOS8vAqS.C9VuxvmXbl7VhXQz2fo79i9KHOXE90FJe0fLWpXd3Bidvdsl2UH9YFcnByQqFi6sBLBEb8g.i9uL3GaTav.HKzR.dfQ8u5Cya9UqKepfxFdFV3PkQFslNtGj4zjHee7PpM4ctz2Sd6HuwYkikdfdDlkZv+D93uXN4Xc+EyErn1XroC+s98XP95lOTMCfIl5MsGy3L4Xzhp8MLxlIq1XHW8aMMkl+QPtrUyS9sfmBaAOE2BdNYK344aAOuXK34y2HOxelr7TAer2wAXhN0T2zPWul52QUQgZ+K.bfrkzA
                                

                                Hise Develop branch
                                MacOs 15.3.1, Xcode 16.2
                                http://musikboden.se

                                gorangroovesG 1 Reply Last reply Reply Quote 2
                                • gorangroovesG
                                  gorangrooves @ulrik
                                  last edited by

                                  @ulrik Yeah, I know I can set each slider separately, but I am looking for a more elegant, scalable option. I know that Dave is a "freak" of that department 😁

                                  Goran Rista
                                  https://gorangrooves.com

                                  Handy Drums and Handy Grooves
                                  https://library.gorangrooves.com

                                  d.healeyD ulrikU 2 Replies Last reply Reply Quote 0
                                  • d.healeyD
                                    d.healey @gorangrooves
                                    last edited by

                                    @gorangrooves said in Repaint panel or sliders on combobox callback:

                                    I know that Dave is a "freak" of that department

                                    Working on it... :)

                                    Free HISE Bootcamp Full Course for beginners.
                                    YouTube Channel - Public HISE tutorials
                                    My Patreon - HISE tutorials

                                    1 Reply Last reply Reply Quote 0
                                    • ulrikU
                                      ulrik @gorangrooves
                                      last edited by

                                      @gorangrooves ok

                                      Hise Develop branch
                                      MacOs 15.3.1, Xcode 16.2
                                      http://musikboden.se

                                      gorangroovesG 1 Reply Last reply Reply Quote 0
                                      • gorangroovesG
                                        gorangrooves @ulrik
                                        last edited by

                                        @ulrik I appreciate your help very much, regardless of what solution yield most practical results! Thank you.

                                        Goran Rista
                                        https://gorangrooves.com

                                        Handy Drums and Handy Grooves
                                        https://library.gorangrooves.com

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

                                          This is the problem

                                          var PanState = PanStates[obj];

                                          obj is not an index, so you will always get PanStates[0].

                                          I can see a couple of possible solutions, but the thing that is really confusing me is why the laf function is retriggered when changing the combobox value... I added a button to the UI and pressing that also triggers the slider LAF function. Maybe it's always been this way but it seems weird to me.

                                          Edit: Nope, I just made a test and this is definitely weird behaviour in your snippet. I need to figure out what's going on.

                                          Free HISE Bootcamp Full Course for beginners.
                                          YouTube Channel - Public HISE tutorials
                                          My Patreon - HISE tutorials

                                          gorangroovesG 1 Reply Last reply Reply Quote 0
                                          • gorangroovesG
                                            gorangrooves @d.healey
                                            last edited by

                                            @d-healey I am itching. I've been pouring over this for over a day now....

                                            Goran Rista
                                            https://gorangrooves.com

                                            Handy Drums and Handy Grooves
                                            https://library.gorangrooves.com

                                            d.healeyD 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            19

                                            Online

                                            2.0k

                                            Users

                                            12.7k

                                            Topics

                                            110.2k

                                            Posts