HISE Logo Forum
    • Categories
    • Register
    • Login

    Change order of childComponents inside panel?

    Scheduled Pinned Locked Moved Scripting
    41 Posts 6 Posters 2.4k 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.
    • ulrikU
      ulrik @ulrik
      last edited by

      @ulrik ok, I tried but it wasn't

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

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

        @ulrik I think the commands "Backward" & "Forward" would be great to have (1 step for each execursion)

        btw, thank you @Christoph-Hart for implementing this!

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

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

          @ulrik I found this in Juce

          
          void 	toFront (bool shouldAlsoGainFocus)
           	Brings the component to the front of its siblings. 
           
          void 	toBack ()
           	Changes this component's z-order to be at the back of all its siblings. 
           
          void 	toBehind (Component *other)
           	Changes this component's z-order so that it's just behind another component. 
           
          void 	setAlwaysOnTop (bool shouldStayOnTop)
           	Sets whether the component should always be kept at the front of its siblings. 
           
          bool 	isAlwaysOnTop () const noexcept
           	Returns true if this component is set to always stay in front of its siblings. 
          
          

          I think the “toBehind” would be enough to handle several child panels

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

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

            @Christoph-Hart
            Ok, I got it working the way I wanted :)
            In this project I have to have all child panels in right z order, so I thought that if I iterate through the child array backwards, and used

            child.setZLevel("Front");
            

            it would work, and it did, for awhile
            I noticed that after a couple of rearranging in the child array, it did not work.

            So first I had to set all childs to

            child.setZLevel("Default");
            

            then I could use the

            child.setZlevel("Front");
            

            and it seems to work so far.

            I'm happy 🎉

            childpanelsZlevel.gif

            HiseSnippet 2894.3ocuZstTajbEdjsGrAujrNU9appW9gqQAPVBiMdCAGDRBrpU.ZQBRhoHjgYZg5vnYzNSKDJ6RU6iVdTxiPd.RUImtmKcO2jDjxAWkgo6y4zm96bs6YZ65Xf87bbUJrX2ICwJE9J0NSro8q0WmXqzrtRgWoVqOwxrstM1xCcDdrxdSFp64gMUJT3oGvHqvhOSg+y+5OrmtktsAVLjhxYNDCbKx.BULZ6c+Nhk095l3tjARTu4tMMbrq4X4LBTompVVYntwM5WiORmQ1STUJrPCSB0wsCUmh8TJ7r8bLmzouyXae5Oi3QtxBydnhRGPP9CuuikISiYip3ugB25dJfTZK.hm5CD+Z0CIljnwE.xWym.I3PFOJ7joodUjUuxyu5UPR8dlu58J0NFtjgTwLLc6kpMsoX2d5fIPVs7oU4IE+Mp0b.JrokFneCdeW3gHNzde4xqgdW4xE2d4k.yfGEcqtKp8Qstr1wG0sZyiZbBZGTn.tFSq4LXniM7f1JwnZk3RnSitGU8vF4xav7I35r14xvYs4zx92adCB0ASQV5SvtHavMY4kH1VDaLp2HaCJwwF4XGrBLo45XoYDJp0fUxZDt3xK8iKuDB9wxwP2hKFXw4yss7DDy6fwOqMSeNiMqVwf4CVgRdXP+t02JuxZnd5Vd3PZLXF1VDO54fbtHIoT2QSkRJ9NJPFS2xgLW7PvIkFoSKuz8bTZFnNS7AHSMcKqqfHNsjPVHbG.3fGNFAz5qAC8yMvgKO1Bud7eh4Kz83SpdvT7E7mOv9xVrC.qqXYPdj+NN4Bj6h07ySYkfIkVlr2SDajNxBPXz7rdQ1CXQO+hHQW0zDYiGKuKl1NX8r7fqVu9r8dI8PZgCwdNXXg+KWC.kKVzZIcSSQNdt2yhQdWw78VoEOJaEzphsZIKr80z9YwE.lNiCco7X7WEfWw.Q7D7KeczCzOvR0AryZIoHVT1XhIsOHUuRiyZ0mwz8wjq6S4ymgx2lEHchyHJXFzZeRZBNzYjGNJb4vZ6kTUYF9ZNironw8IF8gTGHhGx1ghnPlWagkgYzRhlnc1AUtnfFICo.nF55LrIyZ1v9ZPMKY5LBxjz0oC0kXesFjKubXlfveBhtJYpS0O2m+KB8UkoyeaxnpDgsBkkl+dweJ9KHVAOC0kDKxPd9dNtHMKVrVDNTLNEIDHG17wqgi75qYEppI2u2yBASsTDPIprMhf98P0N32qt5brbfU5aBVSHfmB9GdZjhESSYFLmEjR1Na5lKaKICa6C0FG9CjVwywBWZnKq1A0k0IfrLJl2BckKV+lLl69T1.o+TNDQ30CfI1kxbY4iEEK43Zhc44lDoB3lPi77VRf9FAHtWGrE1fhYPJulbRG9TEOk0WQc1xWjg.YUtC0Nn2.uvdChLQL4L8hwP587JDKx7KJVc7I0gdwp8olsp2t5QMZ0A8fqnHgrQ0OX0v7fNtYM+rYTSD4mZVLCjwhkHMCdlHk9HJ5qrezWxzdxwhRFRo1bB5EZBj2dhrkZBZ0c.kXUe0W.6reEuXW7j+oR79aQZQhg64eunsmSZHg6sZ1o6CF0cwBbmspZPeaqgzGvpSjrITqDYKCLAi0g.ZVWnrdQWMf2X3d9AHx8CDk7znXb3JQqkPfw.mawZVgsYlp4yvn2.UaMTJRC1.7bmVXc2HmmvbOwG8ArMhm7xfEUEzsRwL2Vf0+ysv2Bs4HDZnQl2EXitnSZdvm5h975sZbViVS2Dm1BKV.cWW8IBipX6DNQRu7RBdWoNtm9HKXWrc58PTTDWPhPGzG4wUqudZYyo7bBZcTkKjWF9A.iVjfLT9HQ8FsZzsgTNlGdJFaeYbYG3W051XFMvt3L6dM+Sek1U.nUdxTmTh4SC69As0cwIx5mx0ONyxjln9T59hluJGYRcVEjxq5xzJsjvHjWYlrsUhy846UzFRh18jiOsKjKEMCOhjmNpM61CzBcOztNdcGR9c6P6S7B6bRpwGFWlt5iAR.Vi01Cw7hX4Rh6aDvTnbtlAH66vvJyfvt0PUJKltGwxBN4hl+8R4U5Jn5ANdxpq8AU17QjMlP6W0ZXecAiV.VC6fRaUTHcl1zExX4uMkRfsF5bngnMWCENwejchFMX7JalH0Z9JAeIyHwpIKSTHPjJdyeO2vxhLzCqctI3OtFx77JWv0G1pmNsj7+yBkkrZQt7YsRo0YWbrF48gnS.Anw.jxY.HgC7IdccshfdVQN7P91hN73S6znV0Vs1qZsu6A5BCmyKlOLjEUtvc3kQ4ErcEfAmPnLGw3FAJDKSQHurafXjcbI7++1dSmIioefoBsBCqWAQcPo0wrL4oyxkVlL93Y2AodVa+hBYmzStoCS7cG2i6lkcs9XWMn+MClo4.85Wi7GXBzSZkMR6jlyk6IeicoHi0hpHhdxJEykxfKWIY3uL874l1UKd+1IC+xcK9wL2hx4XYUYyAn2NKNlHS+4wjzEQa+Lc.lmaMc9brlE.7S+T...4RtlAGei+id8I8n0cFamFRdbUkRcDbnVjei1m6uhPCxAlhKRsESFMl2tJRqEFV19ZZGcJgYItOZfYbUIY8my1hIzgAra.6zg4mDhgeGc5g0Y.9NnC0o8K4BGVwTSZQPuQxuO3TYotvgTmZJ1dYsvEIIa4zb18YWV3.nye98Eu+oGUqayiOZpkFR2saz4hSbLN1YlYxUNztj2PKB7DZk3mhdLP6PcWObSvGvCJ5l9P1RSuQxyWwIx4p+FZmT9AqLdkeGZ7ZRCzGFneVdYtX5HWalbhe52VGePzs2OyRloOK.v9kAr++zEYOsqqRbtfhy+UuHoX40abZcW1yoVqFUOAAMTLGMSjIzvEvkf.lMvLWGJ1H+y2vfCQpcwwtWL4MsEBowOtwzvwncQdnXxsISfRnvQNT7w1ZEW5GWZwkteITxo50Ky4BDlE1MyoYueY2ownl8nAWgcCQ5PBUJ7r3uIW07eStxunYCerQhPG6l1D5wCw1489cUB.TEkBKDnU.oT9648WE7ddwlmQviG53RUHlfxodVaEtFCZVA96NOIm+h.N2aDk5Xy4RUsZ85grIdC8oXc4vWtL6EBw4bQ0.GhHtWHWtyXgWVUJDZNTfLDwKUi7edbB3UpINhaFh4zl0gpJr23dfIALSCwtTByCnPc7sDCr+6eeQ05XuanNCUJ77nf.kBuX1Vs6j+bGlHdn9t72XUz.+iq10ufXzH+yQ6Rn3AgedDek5Fu6sucyxa9sarkxUWKM7leXiu88aA+GeiDobOOOq6uTM1cjJqhJJSjeHtJt6eUnhQ9CC4YbjVV9tNlh7x3JRK8qDtY9cDJqBufiRK7uSnBKbWv.IPI.UYUYgXIUHvkpzCrjrJyBBd8tozwjHfLbt4Fe38eXqM25cuW41vf9nXtjV9bi5Dane9GjM6ata9XZjmAw6PmAvxn6NwOIh+NbYljQu1+0ADSadddH7BprlQxSa94uOg1n7WxPa7W7kTqrQYzcnOTNKbXZoPlW2KkOtaZaqm9sP+OscwPMFer3V4uolL.gYlOJOSi4ixzLeZfb5r7LF+vWv0Oc1v7zhadbZQ5OYouV8PGyQV5z3eMUrOgrfIfByw9rkXeZR1dD5D4OwruHehUyq59J01DpQ+r02mjg9B0R9RquAevZKq1nWO3jwBk8Yp6+m9x+0oo3+YRbMb.OWB3DodznAcfTmFXPSrYeEMrzkOgksz+4xgoO6fsM4O7efeBlrB64BASVIbRkA5FtNWZ3Wkm8Iw8B9HfNYy+x.WT8P1ynJQMEoVtTYkADSxkFFLnXcP2ylmMdD771GAOa9H34cOBdd+ifmsdD77goxC6ijr5Hpy.+vDXf1M3MWUnPCacvKi6Qp7esMMA3E
            

            So for me this is enough of z-options, thank you Christoph!

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

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

              But why don't you use the always on top mode for the currently dragged one and set it back to default on mouseUp?

              In your animation the Layer 4 being dragged is still beyond level 2...

              ulrikU ustkU 2 Replies Last reply Reply Quote 0
              • ulrikU
                ulrik @Christoph Hart
                last edited by

                @Christoph-Hart Yes you're right about setting the dragged to Top so it's visible, I will do that change
                The purpose for the z-depth thing is this:
                notebook.gif

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

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

                  @Christoph-Hart Default doesn't seem to reset the level...

                  HiseSnippet 1063.3ocsW1saaaCEGmzILM1ctXEXO.D9Jafr.Ym1tgUTTO+QJLV9vHtM6i1hBZI5XhHQ5IQkFihBzGk8Hra2c8QXOB6QXWr68H0GVzKpAVtXBH.4bN7u3ORpygGOzWXSCBD9.X4mOeFE.+Bzn4b4ztSILNXPO.7dniIARpON1Um4yHAATG.Dt0yzNfk2FD872OsCwkvsoYt.fyELa5QLOlLy6v1+.y08PhC84LOiQ+f1CrE7tBWQnhmsPVfYD6KIWPOgnGVID.tSeGlT3ORRjz.0X5HblOZp3s73weNKfM1kpMZBFodQwtAcmxbcFltVC..31CyV4aEux+JzwLG1R+Y6.eYT.blBy8.XoUQZ6UPp4mBoCEtN5Wvm.OnAdaGi28Qir8YyjYQzrcWz.t5vYBQssahU7XAk9mRntB0H3x88HWROzWYrTQ8GYYsG9gVVMdLtZkJpM+.I9JhOdrjGfeB9koRufJ6J7lI3Ji505DJkBdyZM1qZE7MdtMMs1.MGTqwqe7JzMi6dKzMjvotECtHIsJtjTzpVgwcYbJdRH2VxDbrf2Qx0J8Et0sSksmBe2PZipUdW7LoWIuTuYuOi6Pu9zIYiswq2OfJ+kinWQcqGIC+TbsnyuZ3uCWqGcBIzUVqgBf2q9ahvGWeLlwiN7ZfGqkmPPWhq6XUpTcSrzB+7dLVsmHjzS40aT4cUJW48Uv+2PSljarDTbo94FVWdv+1DVmG5Ml5mtulNPUNypIk2c8RJsiOpMFnfOfyjmNilXmk1piEupSiZAVtXMcksFM8FszxYXYttYUAPxmhp5CakLb0+IipNbujpCw4L.lhwxnjDUPztiYUYPAj25yS9A4H+EC5QjDcYtjUjZUNi5KY5yJXO5Up6LhK5UF0iFboTLSU5eY1G.ta7zVMsjnNYLZV2EEm9Ctd4D9gWzd9RiO9p1uk4HmBfHXMH.LkxtXpTa8GpnLI0K85mx6..KV.VwaKS2fBvSKCd9KaCd9fn.7rHedVTbdNvfme+WM342lt973u.jGOotM4Ym03izLh934FDA50lEbrvS8dH9J2vRR50ZhPm0uWAmDyiArv7Xna9Sxtnet+QGc5OVv4wb68OudMlm6fd1Y86ehp0nabsup4CgSnKQtZGI5VuRBnpHtxU+5q24AL4byVyJPaJV41lRy7JHsl3dezPlzdZ97VJGdUkF9+l2jl9ph5OYB0VlA61nC+oMsCuBfxYhPIiewwDoOS80B5jPuQpTHaphDtJEMPmzURmFEaaos06LinbmHCUd+hjfM01vjfMSCB7H19h2XGWrV2V4tQdTLwi5ntrp0dkMd4MDHj09V.OU2tuw1VuU70J1yWSqMPyAaflGrAZd3Fn4QafluYCz7s2pF8Oz36CkBu3zDkig8itqDB6yIpuxh9hD7u.dhqlXC
                  

                  After analysing the source I thought they should have been in a parent but this doesn't fix the issue either:

                  HiseSnippet 1088.3ocsWssaaaDDcorVWKkpfFf7ArPOIA3ZHImjVzfhnpKNPn9hfUh6kffzUjqrVXxcEHW5Xgf.jeq9V9D5eP+E5C8c0Y4EwU0LFRJsBv.dtb3blY4L6vg9RaVPfzGYU5EymwPVeIdzbgZZ2oTt.MnGx593SnAJlOIVUm4ynAALGjk0NOWqvpTQTzu+5YcntTgMKSEBcgjayNl6wUYZG19G4ttGQcXuf6Y38iZOvVJ5Jckg.e1A2.MiZeE8R1oTsaEvHqc66vUR+QJphE.9zQ5LezT4aEw9eAOfO1koEZhFAOnX0ntS4tNCSy0.Dxp3vrLem3L+g3S3N7k5yp.eUjARFByZfUgUoTwUnTyOEkNR55ne.eB5YYPuhwz6A3Q197YpLKZtcO7.Ab3LgBkcSZE6KpveW.2UBdHTG3QuhcjOHrDQsmznw9jG2nQ8mRpTtLT7CTjqo9jwJQ.46IuJE5kLUWo2Lo.DpUsSnRIEMqVe+JkI252cgo0Vf4vp0e8SWgcyDt2A6FREL2MibQPZs4PRoVkxbgKWvHSBE1JtTPjhNJgFouzslcJr8A56FxpWo76hijNSdktXe.W3vt4rIY9V+0GDvT+5wrqYt0hfQdFoZz4WUx2Qp1iMgF5ppVGHv6g+lH8I0FS3hnCu5jwZ3ILnK00cLzJUyjVZfed+Lx1SkJ1YhZ0K+txkJ+9xj+soISx0VBUbY94ZVOdv+t.VSD5Ml4mVWScD5YVso7dqWSoc7QsgiRw.AWc1LVhbVaq1VbVmZsAZYxZpJKGM0FkZ43VlpaOU.k7pHLeXmD2g+SEMc39ISGh6YPbfikvIMpnnpi4TYzF.u0mG7CyA9KGzipn5wbIYDjkyX9Jt9rxpG6Z3Ni3gdkv8XAWojyfizkcev0.wgsR5HQcyXTT2COj5qc4lr.dd64KEZeQ62xcTSQVXq+zBglx3WNUok9Mq3x5xXT5thgdDiYLdnQL.gkwn5Jw32AibEyK8JtR6hPKVfVQaKS0yhRFCRsL+Pa.SaYvzOLxfoejtALcQ9Lcw+kL8PCl1laxzWt9L0eAJOllpd8X5tqQaUFW+3Elm+8ZyCNQ5AOGpOn1pfhcilq3y62aCCh4QGQZDjOzM+frG9W5e7wm8SaXbLK7+wMqQb9B7yOue+Sgk4t0hJv5RRmPWpZ0cnzKKlX.lguxxJ5ERDAb0bykI2fEqZj6hUMyaD5ZR2GfGxU1SymuExguvvi+u4axZpUv8mLgYqxHaQ7Q+71tS5FPkykgJt3xSnJeN71B9zPuQPykMCXh.ZdCzsiEz2NDK2PKqqLiXBmHAXVwhDiM0xVIFalZD4Qs8kuwN95E8hv6EoA3jH5a.JAeLBHSVdmFF23fFHOX+72XaqKEeMv87wzZKvb3Vf4QaAlGuEXdxVf4a1BLe6chQ+oQ+PnR5E2l.JF1O51cKq9BJ7VVzajn+A7F4HCB
                  

                  I don't understand why you declare this:

                  Component::SafePointer<Component> c = getComponent();
                  

                  And then use this everywhere?

                  c.getComponent()
                  

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

                  1 Reply Last reply Reply Quote 0
                  • SteveRiggsS
                    SteveRiggs
                    last edited by

                    Just spotted this post.

                    Does this mean that users would be able to rearrange the signal chain now from the GUI if the plugin is built using this method? This is huge if so! :beaming_face_with_smiling_eyes:

                    www.anarchyaudioworx.com

                    www.facebook.com/groups/audioworx/

                    SteveRiggsS 1 Reply Last reply Reply Quote 0
                    • SteveRiggsS
                      SteveRiggs @SteveRiggs
                      last edited by

                      @SteveRiggs said in Change order of childComponents inside panel?:

                      Just spotted this post.

                      Does this mean that users would be able to rearrange the signal chain now from the GUI if the plugin is built using this method? This is huge if so! :beaming_face_with_smiling_eyes:

                      Bump Bump ;)

                      www.anarchyaudioworx.com

                      www.facebook.com/groups/audioworx/

                      LindonL 1 Reply Last reply Reply Quote 0
                      • LindonL
                        Lindon @SteveRiggs
                        last edited by Lindon

                        @SteveRiggs do you mean the FX chain? if so thats always been possible...just use FX Slots

                        HISE Development for hire.
                        www.channelrobot.com

                        SteveRiggsS 1 Reply Last reply Reply Quote 1
                        • SteveRiggsS
                          SteveRiggs @Lindon
                          last edited by

                          @Lindon Amazing mate! Thanks. I'll look into this properly :beaming_face_with_smiling_eyes:

                          www.anarchyaudioworx.com

                          www.facebook.com/groups/audioworx/

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

                          29

                          Online

                          1.7k

                          Users

                          11.8k

                          Topics

                          102.4k

                          Posts