HISE Logo Forum
    • Categories
    • Register
    • Login

    Best Way to Implement This?

    Scheduled Pinned Locked Moved Solved General Questions
    15 Posts 6 Posters 296 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.
    • clevername27C
      clevername27
      last edited by

      I've got an array of dynamically-generated panels (green boxes) inside of a viewport, inside a container panel. I'd like to have a single mouse callback for when users click on a green panel—and to know which panel was clicked. The viewport is to accommodate cases where the number of dynamic panels exceeds the space to draw them.

      Any ideas?

      Cheers.

      HISEnbergH A 2 Replies Last reply Reply Quote 0
      • HISEnbergH
        HISEnberg @clevername27
        last edited by

        @clevername27 probably child panels is the way to go here, check out the six state button example

        Link Preview Image
        HISE | Docs

        favicon

        (docs.hise.audio)

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

          @HISEnberg Thanks man. I am indeed using child panels—good thought. I guess I'm wondering if it's a good idea simply to assign the same callback function to all of them. (Is there overhead with that? Etc.) Cheers.

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

            @clevername27 You can get the parent panel's child panel list, and use index of, to find the index of the child panel in the array.

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

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

              @clevername27 I am afraid that one child = one CB... NON-SENSE EXPLAINED BELOW BY @d-healey
              Or...
              If you're concerned about this, why not dropping the child panel paradigm for an object where you create "virtual children" and draw zones in one unique panel? You can then detect the click position, deduce the area and the corresponding virtual child.
              I guess it depends on the complexity the children have to deal with. but if it's just for displaying simple stuff it might be very efficient.

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

              HISEnbergH d.healeyD clevername27C 3 Replies Last reply Reply Quote 2
              • HISEnbergH
                HISEnberg @ustk
                last edited by

                @ustk This is what I was referring to. You can calculate "zones" corresponding to the child panels, though this might be less efficient then just adding new panels in.

                1 Reply Last reply Reply Quote 2
                • ustkU
                  ustk
                  last edited by

                  @HISEnberg oh yes I haven't clicked but I remember when that six state button thing was published
                  I do think it is more efficient, especially if you have a lot of child panels, that would clutter the interface components (even if they don't appear in the list, they're still components)

                  That would be a good candidate for the new Profiler ☺

                  Here's a snippet

                  HiseSnippet 1549.3ocsWssbaaCDEzwLMR8xzjoO2AidHCUrirjksysdw1x1IdZbrlH2bY73IEhDTD0P.pffVVSF+Gzm6WR+.5i8yo+AsK.ojntT6DOs5AIsD6kC1cwhCapj9z3XoB4T7nA8nHmOys0.gNpQDgIP6uCx4NtM3zynpFQLdPShfxQaOnGINlFfbbtwSM54TXQj8ye88aS3DgOc7iPnWIY9zmy5xzieZyM+AFmuGIfdDqaNsWay88khFRtLAvzMbqh5Q7Okzg9BhQsEbQOiDGgbtmasG9HexZ9quQM5Zs2H3AAaz1+g90CI0Cdz5j51+tQ850QN2b2.lVpZoIZZL3zskACZEI6KRCvqXwr1bpQnFpED4zGiR2vCSPwHjyhMGmttQZ55qbOfEvF87wosuzt.drE4SZNKbYPp1GAjbxAoESgzsca4qX8ziWwfmO0ceglpBIPsIOTR0Esvu8ItMjfFBcktjSo6o.gQV3sQ0pKiguJ+jhfVwRNshOmRTdvCJVDpXwZ7YDEtGQAdnofi+V7P20gpaH61SJ.AuRiznDX5HgJwTXMBmK62.9tMTyiKsLtTCNC9G9PAefQ+bQ5LlRmP31LBDr2Kf9iGWpzEO4eQGHPfZGexSvqrB1mHvsoXlHlEPw5HZFvwADMAKa+yTeckJUxGuWd3qe2y1c+m9ri.2Tu5LXOhx5DoALOVQatoHSvYBJNLQ3qYRANoGDDZSq0dkK99hEtZOgu2z6kJbpniNBBQNyUzdP6m1TTt.hLrQaZjwuTlnALLIjsKksh2Pz40whnNUBgSmaw4dUOOLrp8iITEKDJUXuy7gT2zHpbwBfkEL4pAPJ5RAOSDPO+vPvQFuBtEhXroMwbr2K8m3JDgl8KIz9QLM0pWJrdITb7Nd0kwCVB9RGwhMsXulEni7Je+0xm2t+ZmbYAnMG5yx7bfhzeKNqifFbD8bM.sJlVpkwGWCZ8GLafLOdbjNAZV4zPcoKKdJZPtn8bSheZutZ04GoAKMNVqTeJ4ZUVeYbsJU+Ow4VmMc3xb9EEuv1TCcVGHSho3FaOYSk8oCOAOtqBt+PnscVrPbpDL+.NZCIjwsMJYenw4.hNpRHWJUYJ103ycfYiuEuxjmtrI5gyi5oLs9kdqLAm4ZLbZyb1Nq6C6amUXppAOFWBuzzskGC.3DaUenuMiJL9x5l.JmpoXekLNF6cJzCS.vmaGMBnuA+c3Yy836dW7LJ9MyofX7pImTX5iMJZW4Yzc4ztlYG.Zs37hTrN4bkbEKS0Zos1YGb6DsVJlYfjTPBB1VKLyqURtm+vg0KCC93IzQ0sLoz5UNnYSYCqbJhH.t2vq1p0gihluWurclKL3neDfPfJQJfmd20KINxaB+5yAb3UdX0Xd6PXCN+6YR2SkJmdLztyF0WN0NFbUtjwKjZ5ghzIyvXT7zKEFN20x7Empl6xFVNpKyPOQR21TU9btQQ3V8IoJbyOLpB9oIkbJJE6KX5C6Qyj2SxCLT.L+eVhEnrrJPwXgLDBppsDLtSFACZvqXz98jJMhEXXXLTrFxtIxyADMsS9hLmrssoz5fa4lVVli0+396.2La36jgK.q8nJMyjRb1gdFvvLk8SA2cnwmpk8r.Oqc.RaevP+7wAls4f7B8MmPQNtN+IHldK8PICtFEqakFqOeHOLKm4zvLZXY9vfPCxKjpSN+kGcivvumCCEt4WmY6jLnLXHGCJSQXjSKb0kgwP7O34xDa9SaxhOPZlAQTvicVfJHPKngu6yANgBCsxQ37WmHW4ARZ35Unf3ZlIAuHvL7WAlyxfDNQOIcZyKZjs.bvYBNrFdp.UN8f7uHxGAG6pWJG6OTHda2lLsez7w3ByAilyV+Ofwr2L4yc2MLDnJMFfK5t2attuFxUD9Tdjcfa.TLnsw8EIcaATd7oPzEP6ero3ufYLPpbUirICzhJBrB+M7IawZFYmrEqMbQTWBb0667SmiXd2maYeBfIg8cCK3dfQFOmoOcgVy246OoqlwvUutFV+5Z3ZWWCW+5Z3FWWCev00vGd0FZlbrUhV1M8XCBcPycsy6cb10NZw1sh9G.azGzJC
                  

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

                  HISEnbergH ustkU 2 Replies Last reply Reply Quote 1
                  • HISEnbergH
                    HISEnberg @ustk
                    last edited by

                    @ustk I am experiencing some buggy behaviour with child panels in a recent project release. I will have to isolate it further and test it but nothing is jumping out at me for how long it takes to register mousecallbacks and repainting the child panels.

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

                      @ustk said in Best Way to Implement This?:

                      I am afraid that one child = one CB...

                      You can apply the same callback function to all child panels, so it's not any extra work. Then you can get the index from the array.

                      @clevername27 If they're just boxes you might want to use the viewport in table mode instead of using panels.

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

                      1 Reply Last reply Reply Quote 2
                      • A
                        aaronventure @clevername27
                        last edited by

                        @clevername27 Mouse Broadcaster, and you can dynamically add or remove components to it. You can define one (or more) callbacks, and add or remove them, and in them simply filter for a component. The function will report the component which triggered the broadcaster.

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

                          Just to continue on my idea (but I understand the whole possibilities you guys are raising) here's the same example as above with a slider in the virtual children

                          HiseSnippet 1761.3ocsXssaabCDcWmrAQpMEMA8gh9PAgdHXUrirjkujK8hskcZLZbhPrqSBLLRo1kRKSnHU4RYYg.+GzOm9AzG6mS+CZmg6JsqjksSLZ0CxZHmKGNblgy3lZU.KNVocbKt+vdLG2O2augRSTiHJW5ryVNt2wqgfcLS2HhKBaRkLgylC6QiiYgNttW6mP9bKbcG6m+9G2jJnx.V1RNNGn3Armw6xMYq1b8elKDOgFx1m2MG2Ku9NAJYCkP0Gvz07p5ziF7dZG1yoHay447TZbji687p8fGFPWNXkUqwVt0pgqEtZqfGDTuMsd3CWgV29yUqWuti6M1NjaT58LTCKFT5lpvg6EoFHSLvA7XdKACIp4rGX4jkcRNvibPwNNtWuYl65ZItquxaWdHe75YtsuztAISh7NM24tHHU6S.Rt4fz0Sfzs81KPy6Yx1Awym4sizvzsovcSdnjvqybecQuFJfCooRW56YOQCDikve0pUWf.eU9wEAthUBVk.Aip8gEJVDtwhMjioZROpFzPSof78jQpqCyzP0smRBD9kFyQIPzwDUhYvdTgPMnA7cK3NOtzBjRMDb3WKPdpBh.I2krkl1oCW1AENmYOlqM8oBq6Ar7GjPvxiJAJ3XpnO6QUqT8zGeNrC..j3vidLYwEIATIoEivkw7PFwDwROPjPpgRTsdGKvToRk7l9ku3Uu8oauyO8z8A0Tu5YNSQLdmHC.kLFs9rhbofKYj18kAFtRR52CLBqoUZ+xE+PwBWtlH2a5yREAS1wDAlHm3ZVOHrzfWVmBVFNnMQZxKU8M.FlDx1sR2weD576XQTmJsgr1MDB+pmztcU6GzTEKzVoI9GG.ttoQT4hE.IKf9pgfK5BAOWFxN4EsAEgZETKXwXL7AKG3m7m3JTog+a8YCh3FlkuDX8R3xw+vkVfLbd3KSDOFC8dEOzD4W99Km2uc+kO5hLPKAD+kp4PMcvFBdGIKbe1IF.ZUvnqEHGVCRIFdVCgKmYoiffXAqsoTl8xv5ZnFlGEXspn2HnhMdcARspWH9zrvbn6Y3E0znXopyFYCmOCaKVeJ5ZUVArckp+mnbqxl1boJ+zhmZSBfHwcU8iYjFaNYPnc0QUBxhBg2gjFajHuMIgBpCAkH.GRRXlEVX1ZEsZ.DtsK0DUosPozor2E07VPk12PVbxbRq6dT0sdZLgozaT8IoFf.4nXEgzXVRfsXCFKD9HRIx7SGLe3DP4HaTyHqfkZPsZUXHSvLLRfVEGS7eWenvBt7qI8TwjHlFhGZ0GWiZHcwR.1RTc6ogZhgjAbSDgRrEjzPpKrza.eQNGz3S7qI+.4rWkj6dWxYX76lw8KpUzEWX5rVMqK.ksErtXoqIN11C7oIG5yAQqcdHn1xYlLSogvtGfYIvk6k3wsISOdRw4w3KuvKHizgQmvCBRlHlcIr2lB7jdKNYEaaXcg7QlP9SmzvRbwySqY9UnDojM.VbTfqlJ6v7m0ge97F40j6SxndS4EwBKvidYIyElw81LcWfkSfvXorbk6EDqqZTBLlAO+FasEFgZTxy7nlRRCC2zHwdAzJgevnFAReZdbtbJUxSE4voMsIm6HD5Iwu1R0gx432qT19tM73y.H8.aScZ4GcpFq.UW+QogSGH2qebj+DRGH.z5Wt74eiCMVTb1c5jbxKUNo.t87Oth1T9EPU4bYOWYXuPlzC.7fMY5sZ2dl6kpKASOysw9r0Wjf9x9cawz4uYPFg9JmrY0a7w0rZPhSIGiJ4NRt4E8XozOQIBwlPwee1VacR8pPStykhPfUisE26j1hKK7.NaPOk13vCwdbGQVywdHxOEhyzJ4KRUxl1PWqBtoWx0xLj9W1YKHSA63NEW.V6wzFN5Rb2hcLLiSR+2E71hE+dipmE3ogCfa6iF5mjYX95CySL.KF63549W.YR+finPbM1V2LwV2Zzj.1o1RLy3mYyaFGmg4IR3Im9xitwX3OxggB23aSkcxd3cb+FuyqGd7FYrEJb42IY38OE4bKq+qqyi2Ugu8P0vxtywjTHdDG+5YvHJRbJmwf92mvw4CTFnqN31wCKiAykdlwofA4Tg8ETyjS2gy8ltAjEMwHU3XSvDDlg4mK9SXjupW3HeerP71dM4lfnYiw4lAFwDs+GvX5fx2xa61sgtdy.308dxqupSEeIlOY7kNPMeMGBa7dd+t6AcNGv.qKgbgX7xeNrlPBcUjF8.6wjgVh+A9jtYMj1McyZi1zoKE5X6sAIEUvQwuocE.SR6+phBd6hzjYTJpKDZ91ffIU0YDboqpf0upBt7UUvUtpBt5UUv0tpB9fKWPrxwF8MptIoMNN61baaweW2sskVrQqN+KPn+wYd
                          

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

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

                            @ustk @HISEnberg @aaronventure @d-healey Thanks, guys!!!! 🙏

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

                              @clevername27 I can't wait to see what you are working on! I am quite interested when you reveal details about your project, even just technical bits like this on using dynamic child panels.

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

                                @VirtualVirgin I appreciate the enthusiasm. When I do take the wraps off, I'm following @d-healey's lead, and releasing the rest of my code to the community. Let me know if there's something specific you'd like.

                                VirtualVirginV 1 Reply Last reply Reply Quote 3
                                • VirtualVirginV
                                  VirtualVirgin @clevername27
                                  last edited by

                                  @clevername27 said in Best Way to Implement This?:

                                  @VirtualVirgin I appreciate the enthusiasm. When I do take the wraps off, I'm following @d-healey's lead, and releasing the rest of my code to the community. Let me know if there's something specific you'd like.

                                  Thank you! When I have enough experience, I would like to contribute as well.

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

                                  41

                                  Online

                                  1.7k

                                  Users

                                  11.7k

                                  Topics

                                  102.2k

                                  Posts