HISE Logo Forum
    • Categories
    • Register
    • Login

    Custom look and feel component ID

    Scheduled Pinned Locked Moved Scripting
    laflook and feel
    43 Posts 6 Posters 2.3k 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.
    • Christoph HartC
      Christoph Hart
      last edited by

      I think it might be better to actually include the ID of the component as obj.ID - this way you can either use a lookup table or clever name mangling to figure out what path to take in the LAF function.

      Adding a new property seems a bit verbose to me as it pops up on every component's property editor.

      ustkU 1 Reply Last reply Reply Quote 0
      • ustkU
        ustk @Christoph Hart
        last edited by ustk

        @Christoph-Hart I totally agree, but how can the ID be gathered? I tried to add it back in time but then you told me we cannot (easily?) reach the ID from a custom LAF... So I imagine it is not my level of knowledge to implement it, unfortunately 🙃
        I tried obj->setProperty("id", s.getComponentID());with no luck

        Can't help pressing F5 in the forum...

        1 Reply Last reply Reply Quote 1
        • Christoph HartC
          Christoph Hart
          last edited by

          It would have to go through the JUCE::Component::setName() property - the scripting engine passes the ID as name to the component and the LaF fetches it with Component::getName() and then writes it to the obj parameter.

          ustkU 2 Replies Last reply Reply Quote 1
          • ustkU
            ustk @Christoph Hart
            last edited by

            @Christoph-Hart Alright I'll give it a go...
            One question though, you said once that accessing variables outside from the LAF is bad. So what about accessing a lookup table like you mentioned right above? assuming the lookup table is declared outside of course. Or should we declare it inside?

            Can't help pressing F5 in the forum...

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

              @ustk said in Custom look and feel component ID:

              @Christoph-Hart Alright I'll give it a go...
              One question though, you said once that accessing variables outside from the LAF is bad. So what about accessing a lookup table like you mentioned right above? assuming the lookup table is declared outside of course. Or should we declare it inside?

              I've been accessing variables (consts) outside of the LAF functions without issue. I think it might be that Christoph meant you can't pass in additional parameters to the LAF functions... ?

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

              Christoph HartC 1 Reply Last reply Reply Quote 0
              • Christoph HartC
                Christoph Hart @d.healey
                last edited by

                @d-healey have you tried multiple instances?

                1. create a plugin instance with a laf that refers to an outside variable
                2. create a second instance
                3. leave both windows open and delete the first instance

                This scenario was the most vurnerable setup I could find when debugging laf crashes.

                d.healeyD 2 Replies Last reply Reply Quote 0
                • ustkU
                  ustk @Christoph Hart
                  last edited by

                  @Christoph-Hart said in Custom look and feel component ID:

                  It would have to go through the JUCE::Component::setName() property - the scripting engine passes the ID as name to the component and the LaF fetches it with Component::getName() and then writes it to the obj parameter.

                  Oh, is this why text is automatically set from the ID when creating the component? getName() already returns the text property, this does not give the ID. Or is there something I don't understand? (what a question Greg... of course you don't...)

                  obj->setProperty("id", "Please fill in the form :)");
                  obj->setProperty("text", s.getName());
                  

                  @d-healey Yeah

                  I've been accessing variables (consts) outside of the LAF functions without issue.

                  Me too, but this goes back to when I had some crash issues to track down, the access to outside variable was a lead from Christoph. So even if it apparently works likes this, I'm afraid of instability we could prevent... You know, when Christoph says "be careful with this", I quickly get shaking legs 😰 😆

                  Can't help pressing F5 in the forum...

                  1 Reply Last reply Reply Quote 1
                  • d.healeyD
                    d.healey @Christoph Hart
                    last edited by

                    @Christoph-Hart said in Custom look and feel component ID:

                    @d-healey have you tried multiple instances?

                    1. create a plugin instance with a laf that refers to an outside variable
                    2. create a second instance
                    3. leave both windows open and delete the first instance

                    This scenario was the most vurnerable setup I could find when debugging laf crashes.

                    I hadn't tried in an exported plugin, just in HISE. I shall adjust my script accordingly!

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

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

                      @Christoph-Hart I just made a little test with external variables, following your steps. I found no issues. I was testing an SVG path in an external variable, I tried in Ardour and Qtractor, both seemed stable after I deleted the first instance.

                      HiseSnippet 1770.3ocsXs2ZbaDDWmiUI9ZuRBzO.h7WmgqFsqV8JgPb7qfo4gINMTZoDj0s2cpVmzgNcN0Dx2s9QpeCZmYeHsx2ESvPBXxs6ryL+lW6NiNqpLkubYYkUucd20K3V89A6yutnd1gyRxJrN8HXe67jI07k0VGb8hjkK4is506du.I2amssD+6ee1AI4IEo71srrdeYVJ+kYyypa28r8+kr77SRFyeW1biSy1+zzxhCKyKWAP4d1tVKRRuLYJ+0I3w1x1p22c73r5xpyqS.vX0a6CJGe84yJ+Xg77uOaY1E4bbAw5bPPxsOoLeLhXbWqCmkkO9LsIuzBjxYsNf6Ic.+j8qxFm0reqi3ABBNsbX5O5s0sAOhI7b+5gWOC3ssDdOz97zprE0sTPr881mVTyqlj.g.SXIOq0VOXf8gkvIJp2adxk7SpfEMbLLv0cjiuq6tOYP+A8q3ScVd0ziRpSDqU+14oN+Ag3Nh3FOxmLhDFOhx7FEDNh3yFQI3+GJV5FA+QE+QoTbKpq+HBC3k4iKiifcXhcnTFtCHPTXDOO4w6PTHeP.j.o36HZhq2Hpm6nXpV2cAGp5PfwHkhQV8.8yDBCfDEn3K+c.nGVnBOnL7i0KH9iFzWwjRj9LCQhPfBPFONUvKIxfWpGQpBzn.gF.FkGZTTRr1JDFVnORLVXEnSgDpDIJH3WlbxLII3Sa5DhFmBWYnqfOi3BI1sEOtspDwJIhnPNtQj.sC5q7ajPhYPPoWTNj.2NJkEqUpA0lfma.50i6RDLLweADjnHoANtejNmPHWRflXH5K7M4LNTI0l7ofN7FEIhwJdcij7RktTWBRTGIB8zBFrcSQqS3BB2.rHxrn0MFCBccAhnRCQg2vWGPvifBm0Mbph0TYBhtBQnLYzRRxqMJphwcx.BCahbXLUnvVPKyzfyIi7Jc1vruNcqMsrwSvTYoJH0jQSQGGb.rTLnSofqqzivnnGoS8C5LznR3sj.no1iBmlBng3EKSKjfPV3FGqPqnD2PLlBVFX0BVdOgvQA5PF5IdLMhi8z07hqNXFdA0sSs6KbsdrNwGojZVJuNTpsftvQljotRUj14aZLM4+wxTi1KMkdPQbQdknVxZOnRxAraH4a59wXuP1AFgM8JRrppLvLnqyIoMhlYluHJvT2a0voJUCjHUSqgsvlToH7VMOs2BYFr9lK3ITY4qPolEFtRw51ArLhwU7ZUBHDtTMnIbIC8ThQ9fwIT5f0jNzgcL0l0jNHSoP2J9P.SJPw6NgdZXgF.KtiAfu0p7E36U9dlu1Q7zuKfX.KBTvF7Sp6DWSr5mQ82.dz20JuHFr8VSnKoNFtLTXRVmYq7apqKMe2.ubIn4wqtu3Hy7TQKMsX20ixxWUjYLDCSWkhX77IyHKPuHfoeWUUE0j1IdhCdmW9n7MylkMKndJuoom3HiFXTs.HylwRnldLzIDqU9Y11g1Yopb6zph70o1NR9h8eIt0KVd8CMp4UkNc.gPHx6FzveNne2DB+l9DXshhF0fc89cE55pXMta2LN510VPzlEoAp6hHEgtBccUrN+C5a5oP2HVG39mh1fg4SVV6rHodFzIrtY5zJNzu+YvlCwlmQp6kWlLFZvdN1z7PUyyHQGGsPtJoxAFpBjywESyJ3Jw7h7xKRxksr+xxxKedw3S377gx1xAF1CZMOaIz09IqJRqyJKF9nwUIe7ckSmlyOXUccYwiF4LQSb5HmxK9qcGz+SnxcvE6cUR9JtySepiqyyblt2RdsbnqgHwrZ9b4RxtNO9VHSk1iCbjIv7bB6GscgB2KArF7.ed2mnwhSYwqKq4uoX3t8+T+c5+49N2jzjIajF5oqJyy4UajLNFY0sw3vhUyufWMxQX4MGDlmp6.a1e4A1LmmLUF3MNXYwoEY0uYAu3KMFmkJaAGnSgJ3n0hw49Q03bxnmU1Xbfa4Bhk.xliTa8qmhYSZAAxDzyBdUcFZB8NheELxsbNwcrOhu7x5xEhyNeQYAhfd2+qPs+ciJ+m2t+0MK1+22uMC.+PALZLKNHjF6aYjZHoDEDyb8YwVeLab8rVaHa+Y7roypM2wZ8obgYsKGuJOot6.33WcPQ.BxclzEmlsXYV80leUhuISk+0B2GZeVVc5rMi2s1.dgv52Z7p9FGCrOdxDdZcKX219je6a+Gzv5skqpyJl9pj5pLHMy90qleNjzjxAjTTvywBwdagkLx0t3ZzybNuXrXw+A+SQjfq6oHRzDslmjVU9gTYgF9UTtuXG.SEhOlzN1uBW6zTeYa6tmq07rwYeHMEcE+Lf8MyC8Nvi2cfG1cfG+6.OA2AdBuC7Dcq7feWsmuptbtrLA13riE2y0q2wEIPVlHiz5+AlYtqq
                      

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

                      1 Reply Last reply Reply Quote 1
                      • Christoph HartC
                        Christoph Hart
                        last edited by

                        Alright, it might be possible that I've fixed this already lol...

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

                        16

                        Online

                        1.7k

                        Users

                        11.8k

                        Topics

                        102.7k

                        Posts