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.
    • NatanN
      Natan @Christoph Hart
      last edited by

      @Christoph-Hart It was A Nightmare Christoph
      I Tried To Explain This In Another Thread, But No One Get It At That Time 😢 I Felt Like E.T 😩
      Thank You Legend 👏

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

        The text property of obj when applying LAF to combo boxes holds the text of the combo box's value, rather than the text property. This means we have no way to distinguish between different combo boxes (unless we get clever/hacky with some of the other properties). Could we get the text property of the combo box added to its obj?

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

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

          @d-healey shouldn’t be hard to fix, I’ll have a look sometime today...

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

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

            @d-healey I just got an idea. What do you think of having a misc property for all the components, that is not linked to anything? So it would be just something we can get for any purpose we’d like, thinking of LAF customisation at the top of the list of course.
            So just a complementary text property... sounds cool enough?

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

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

              @ustk I think we should get @Christoph-Hart opinion

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

              1 Reply Last reply Reply Quote 0
              • 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

                                  27

                                  Online

                                  1.7k

                                  Users

                                  11.8k

                                  Topics

                                  102.7k

                                  Posts