HISE Logo Forum
    • Categories
    • Register
    • Login

    New Feature (Probably?) Adds Full Component Access in LAF

    Scheduled Pinned Locked Moved Unsolved C++ Development
    24 Posts 3 Posters 1.5k 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.
    • d.healeyD
      d.healey
      last edited by

      What is the end result you're going for?

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

      1 Reply Last reply Reply Quote 1
      • clevername27C
        clevername27 @clevername27
        last edited by clevername27

        @clevername27 Thank you for your response - you always seem to have time to help. The lines of text with the green check mark work. The ones in red don't—they are the things I am trying to do. Essentially, I'm not understanding why the eval code doesn't execute as I expect (hope) it to.

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

          From my experience with eval() in HISE script it's mainly useful for evaluating mathematical strings. I don't think it can be used for running functions as in your example.

          Not sure if you've seen my video about eval so I'll post it here:

          Also for buttons the enabled property is available in LAF functions. obj.enabled I think is the one.

          I just noticed also the construction of your laf function registration is not using standard parameter names. This might make a difference to the auto complete. Also conceptually obj is not the same as widget.

          It should be:

          laf.registerFunction("drawToggleButton", function(g, obj) {
          });
          

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

          clevername27C 1 Reply Last reply Reply Quote 2
          • clevername27C
            clevername27 @d.healey
            last edited by

            @d-healey Thanks again for your feedback, Dave. A better way to describe what I'm trying to do—I want to access all of a components properties from its LAF. I've done the hard bit of changing the C++ code so I can get the component's ID from within the LAF. But I need to turn that name into a reference of the same name so I can use the GET and SET methods.

            I guess I could write C++ wrappers for the specific component properties I want to access from the LAF, but it's not an elegant solution. Thanks again for your thoughts.

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

              @clevername27

              But I need to turn that name into a reference of the same name so I can use the GET and SET methods.

              Get the reference in on init and stick it in an object, using the ID of the component as the key.

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

              clevername27C 3 Replies Last reply Reply Quote 1
              • clevername27C
                clevername27 @d.healey
                last edited by

                @d-healey Thy art a genius, thank you. I will post my addition to my LAF tutorial, and upload. Specifically, the modification allows you to have contextual tooltips (i.e. separate tooltips for enabled and disabled states) by specifying both (with '|' as the delimiter in the object's property editor. Basically, a drop in replacement for tooltips.

                1 Reply Last reply Reply Quote 0
                • clevername27C clevername27 has marked this topic as solved on
                • clevername27C
                  clevername27 @d.healey
                  last edited by

                  @d-healey I guess I upload the new source code file as well, or is it better for me to tell people what code to add, where (to the C++)?

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

                    @clevername27 Make a pull request if you think it should be part of the codebase.

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

                    1 Reply Last reply Reply Quote 1
                    • clevername27C
                      clevername27 @d.healey
                      last edited by

                      @d-healey I spoke too soon - I've only been able to get this to work when using quotes – could you please show me an example?

                      d.healeyD ulrikU 2 Replies Last reply Reply Quote 0
                      • clevername27C clevername27 has marked this topic as unsolved on
                      • d.healeyD
                        d.healey @clevername27
                        last edited by

                        @clevername27 I can't give an example because I don't have your additions. Maybe you could post the code that isn't working and I'll see if I can spot any issues. BTW I think it's already possible to create tooltips in the way you describe for enabled/disabled components. Without using laf.

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

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

                          @clevername27 this is an example with custom made tooltip panel, and LAF knob with different tooltip.
                          Maybe it's not a good idea to get a reference to the component inside the laf, I remember Christoph talked about not using outside references and I don't know if that has changed?

                          Anyway, you can accomplish to have separate tooltips for enabled/disabled (this is actually not disabling the component, because if you do, you'll get not response from the obj at all, no obj.hover)
                          What I did was in the Knobs callback, check if it's "text" property has a "1" or not.
                          A bit cumbersam yeah I know but...

                          HiseSnippet 1455.3ocsW0maaaCEWJIJnRacncXG.B8Wx.dt1ccsCsHq9yTXD2DiZuhALrVvHQYwEYRMI5jZrVfgcU1QXWfcA1cXGgcC1djTxRtwwMM.SHHVjuO3u268ijOMNk6Sxx3oFl1SWlPLL+TqIKYhndQXJyXXe4Dw3PAmGKnIFcWlfyxHAFll69LoFl16Ynd9mm1EGiY9jxoLLdIm5SFQmSEkyNt8Qz33CwAjoz4Uz9AsG5yY83w7E.Z10poQB1+L7LxwXoZ6XYXt+f.pfmNQfEjLPmt7fkSh3Wvz5+RZF8zXhbPKiIfizSazKhFGLtHRyLLL2abYbuqNt+BqmSCnqluL9uiR.pzhp4.yc1FjZ8Q.IyJPZOMjtq0D+TZhnThDOeh0PlfjFhgTcUnn00Xm+XeqdbPClnwb7YjCSgAqrv6gMaVGA+q1Sbbfzcl.cNNEcDieJ5.TgcyHhd74IbFLvyUJzEzuTcodo73XRvVMbc0V2ESAB0TZxUZatboQN4u2HiHFCUEwK3KDTFwKbAyWP4LuY0b9EG6YREz7GO8OYMtHhJHfO.gAo3K5DSmwHASIuQ3IhnYMBvBbibxccjZJ.Gi3933t7ErfLul0pibiIgBITdWYZ6H1oivgUvueJA3.JSGw4m0gEbHgD6IsPqaiTxLZFTHNr.2tRL8Bt.mtbRLMfj5VGUFT0Q7S+IUjISX33jHL.QZBDMN126dH+Hh+YHZHhvv.GK.wSQAzL060QPt.QEHr.hJBxuHylgDPviRvovtJ.KZmW3gCjKYCkFGb.xskK5oHQ5BB5wnPbbFIeosgbDxUlsbK8r1SxgWUQU5aZPspNgJAjN8ivr.TVRLUganLygYP3zT7RsqE.nT9W5UO2bybq0PYjm6aUjEaHg3kGO0brgrmsJ0A11pQSXssEJZmP7CM+QX36brIPjstlMa7n0zrUtlyZDBmc0IN1ys4aBCen5wUGQN1E7zpjp7TZD+bRpLYBy7Xjq6SJ0NkjHI0dZurQRLUD0Qhr0o000bhZaldKW0ywwKHcxjiUjoFXfiBzYenZjRBVwnkaOkq6kHuZhqTEGnfczwmzE0qynQc6z6HGJKF1Dthuh3Loax2y6shVTGoPghGKKMqDjWEAr4VKmsA0K60OzPhpWJs2S6E.v.X114T57mxG8vwwmB2g3sFzTQiNflNXxzgG+LzzSPCNtS2QCP8GNQ8qLT2PDNPwq5q2j0Uv1RzhbrKBf7nLWFvBfPEHAMUDGkR9QX1LRf2Viu2ewupX8J.I36JQxwbA4Dlmpr37NGz6KJLbixVUcR2nX4M5oayPO1h4mRRqRJjJBW4s98n6e8tG0WmnpnHmMjQEmjPxGeHONPd+n78KeqqQdlFt+c2bDBuIT299Y429pOY1fBNYeKY0xPg87FW96eO4udpwUYa2EBAmor8ysd+5xZ9Q+bMvvcrVeGxFPy2MrObBjrmh7vCB4DRpfJyrl8ImCMko6vv1pOI6LAOAJ.qXZFl25CkAdSIposWVcvEz.QT4DupcDgNKpR6eCaWzKo48sjWgff+Jt+IWzaKlu35rBAFxMREsPUh280381E8KgYjXEbssxOksJhMLVVcv5H9O+sKg3us8FVqqWE9JxS+5O+gyS821ptM9P4Z1dw1pMsIan1Xb4tPg9e4AKhwh0aJV18et.XG9ZchJ61jkQEKq90AeDcJ2bqcJecg3csFSE9QaFi6rALBaX9+.i4eewssFDFR7Ek.bOqC+9a5GS7AVdcGxydNVjRA9f0wKlOAZbvm.qNC1b.N2xbG4AN5wMkikYfIDVfZv+BO4BaIGalKrUgPi4X+T9q80jO4WvbK0L.lXpOXy154xwnVEmPYY0rQSi4vGS8ZeeY3+kvQxa1l6eCr4qtA17fafMe8MvlGdCr4Q2.a9lsZi76X6rPvmq2N.SLdf5lBSS8IWJVnw+wXSdYL
                          

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

                          d.healeyD clevername27C 2 Replies Last reply Reply Quote 1
                          • d.healeyD
                            d.healey @ulrik
                            last edited by

                            @ulrik

                            I remember Christoph talked about not using outside references and I don't know if that has changed

                            It seems to not cause any issues. But I still avoid it generally, unless there is no alternative. In the case of tooltips I don't see any reason to involve laf, it can all be done with panels/timers/broadcasters already.

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

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

                              @d-healey thank you David, do you have Broadcaster example that listen to MouseEvents, hover?

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

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

                                @ulrik See the last post in this thread (with the link to Christoph's example) - https://forum.hise.audio/topic/6104/tooltip-panel-is-not-working-on-the-project-i-m-working-on/18

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

                                clevername27C 1 Reply Last reply Reply Quote 2
                                • clevername27C
                                  clevername27 @d.healey
                                  last edited by clevername27

                                  Thank you, @d-healey for your many comments. Thank you, @ulrik, for taking the time to write this code - an elegant solution. There's simply too many widgets in my script for me to alter the meaning of enabling, though. I must be the last person to learn that, while disabled states are passed to LAF functions, mouse-overs are only passed if the component is enabled. So, while I've got access to a component's tooltip within the LAF function, it's ultimately not useful. I think what I'm trying to do (separated tooltips for enabled and disabled states, by writing only a single function) just isn't what the built-in functions are for. 😥

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

                                    @clevername27

                                    I think what I'm trying to do (separated tooltips for enabled and disabled states, by writing only a single function) just isn't what the built-in functions are for.

                                    You can achieve this with other (non laf) functions. Oh I just reread what you said about the mouse events not triggering for disabled components. Seems this is also the case for broadcasters so indeed it won't work!

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

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

                                      @d-healey said in New Feature (Probably?) Adds Full Component Access in LAF:

                                      Oh I just reread what you said about the mouse events not triggering for disabled components. Seems this is also the case for broadcasters so indeed it won't work!

                                      Actually the broadcaster will work also for deactivated components.

                                      HiseSnippet 1712.3ocsXstaSbDEd2jro3sEJHQ6um3ePWWBF6xkVAMPH2PQPRbqCTpPonw6N16TVOi0NyFGWDR7bzGi9DzGIdCZOmYu30WRTZTwJJwyYlyY9N2OSZEK8YJkL1xtxgiFvrr+Bm1iD5vMCobg0taYY+UNaDKoA9TklESNTJiz7AVaLZ.UoXAV11K9T7n1UVxx74iOdCZDU3yFSxx5kRtO6479b8XpsV+Y7nncnArC48Kc56t9t9RwlxHYB.qEcZXMf5+VZO19T7XK3XYu71AbsLtslpYJK6k1PFLpcnbnH87ujq3chX3hlVsAAkRdGYT.hXjp0lg7nfV4puxBjRqwFiESMFW2YOd.uf9XixUMaPFyQY6g8BSBuEm.dMKCuFkf2bfjcIHsTJjtlSa+X9.83cP774N6J.2SWJX1KCkzyZsvedImMkvID558ouksSLrnfCu62nwpD3W0dnqKX5UZxwzBW8uP09gfmeMx1hdbAqteLCzqRAEduysRUdP0GPppS4o5p.EZbOEP60U8k8GHEvcWcURU1w3WNx883kc6aSZK6yHwTQfjLfJXQyBfVHY35yU.ZPfgjW0xG.jMnDMxjZ.WQASLgqIJI96.ISI9FMIl4y3GyH8kIJFw.FkaY4TWwzdUYBj8.PncoQJVlToZM0OjPihHE5jhnkDc3DRjzoTFimNjqHvOTfbhlQ5Ji8Y.rhRzbof.pNJ6QxDReduPMYHEj.HT+DkV1m+GLhQB.ajHvlBhbPr72Y9ZUM2I8Q0SA3gxMyQ2dHn11nkd41udL8ShhJNhxqZ8usZMv0.TIaBJWGHcSg9pxFopY1fmwXCJouCjJNpFtnCauCdQ6seSqCZCdqWidii.dPlNzn.IBeiFODR6IcXDe3tXAjggLAbGwkjJb5PIPB1E+CX5Jr2n3PuJjewTFV75EI6PipMEhPCKIjGjcJSvEg2sru5DN37Q+pXToKXZaZPvy4fmT.A5kCT.6CJcRQHegB5UHqUSMd0beWkJtUlv7TbFze7TiFzJC4uxqF4lobV+jUI.mUpPvOmAO+ZIdFAlc793c8VIkhwXVCEDFJkFhebZUnwg3UJxIOS2EsKFUGRi5BtEECRWCLlZETfSY9VLK2GXL8nDyLRFe8bhd.wYxN8CohdvczOARy3omLBRiHZnCwbbLawhniXi8O2CKjMkSBw040I4VAit5RxSY0wIl70w.wOK+XUxPFTTAAcd9Z5EEVDQLqC.r+wLcRr.7OtUvLFv.bwBF9uDJX.xdTcXcZGkWQT3qabD4VHBfuTi7ijlMH23FtnvOOmETl2cJwSnUq1CmXyS.xobeylMlZuQY60rXOzxfQKqMoZ5UzdoVZ.NnWDuUl5L4ktqgl6JnXt4ZjpjDA3G0IBn0UzHrBB3dy5RDPdfW0BLEP0z54wqqg3.158o4FyzonELPf9mkPkbAyqHzpGDK4VoW8tPlCTT0qZiS5189lOFni6ALmNhiW5eT0GFx0F6Vu5Awzg6v0ZVvgrSzdyfqUMQnn99bIDQtgLQDn7ZfEw8ACQroy0cRaGlBb2hzYoXeolcfvy.R226Rldqtcm6dX+iXITCHdtaiCwEeVL5IR52gEuJzaOBBPxOHLYyjiK4b5iKUdZN+z1YkNnTrqfqOX.SbZy3Yk0CDFsZwLTAeSaFr5JYCV0NBppGawg4m9xIH0zx.7xi0ZMsPtZFGP20NxMjmXDy0lh3LB5iO15zPyFIZsTLAZRIMOz7hc2BBRv4FyzSP2Gvh0bzrZuE6XXH7zoHq3rES8Vsb.X8KlDvx9RmaSwIiuX95iJuXHOPGNlvusdHCGqYLkcWOKJFunmIjcxKXZkk5lON7L35bZcKgs8KgsO7SSgsOPmAaasdeJvtiMtn.lW24vhY37wqoCb2kw2xo36x4ylikGLf6JNkqXXP1x+Ul2BQ1xGksnP0Su5iyi4SWV9t9ryc.xX6veOrjcXc4z9nGMic3Qi8QesSKXRKUZOQnUX.msxJq.Oealml.OJRFjDQ0S9RI74gYa.0Cl34I3SPDPWqQkyE9e64SmWHdMmVbXjh4iwElCFgLrOEXL6QmW1Y6tcgw6GCvkb14UeZdgoUZuqdPG+XNF3ueR+1P2HeFb6BHjEqGau.FAlttQdHYalHvr3efOYa1DWamsYy7Ms5S8ikuwOsBG9r1KYn.XRXdQeEm8v0jhRZNNMp2vpO7B6236ip+sfh4ymmu6Bvyct.7b2K.O26Bvy8u.778W.d9gyjG7etwSRfWellN.DZsso0hs814EprWz5eAz1yMsD
                                      

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

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

                                        @ulrik Not working in your snippet here.

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

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

                                          @d-healey that's strange, it's working here

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

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

                                            @d-healey tooltip.gif

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

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

                                            15

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.4k

                                            Posts