HISE Logo Forum
    • Categories
    • Register
    • Login

    ComboBox Sub Categories

    Scheduled Pinned Locked Moved General Questions
    32 Posts 8 Posters 2.0k 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
      last edited by Natan

      i need A Little help here, To Show The Selected Item From The menu On A Label:

      I Already Attached A Knob, And It Shows The Value Of The Menu, But Can't SHow The Exact Name Of Selected Menu Item INstead Of Menu Value:

      Here is the Code:

      Content.makeFrontInterface(600, 500);
      
      
      
      const var Label1 = Content.getComponent("Label1");
      const var Knob1 = Content.getComponent("Knob1");
      
      
      const var Panel1 = Content.getComponent("Panel1");
      Content.setPropertiesFromJSON("Panel1", {
          "width": 100,
          "height": 32,
          "popupMenuItems": "SubMenu1::Item1\nSubMenu1::Item2\nSubMenu1::Item3\nSubMenu1::Item4\nSubMenu1::Item5\nSubMenu2::Item1\nSubMenu2::Item2",
          "allowCallbacks": "Context Menu",
          "popupMenuAlign": true,
          "popupOnRightClick": false
          
      });
      
      
      inline function onPanel1Control(component, value)
      {
      	Console.print("Selected Item ID: " + value);
          Label1.set("text",value);
      };
      
      Content.getComponent("Panel1").setControlCallback(onPanel1Control);
      
      
      
      Panel1.setMouseCallback(function(event)
      {
      	this.setValue(event.result);
      	this.changed();
          Knob1.setValue(event.result);
          Knob1.changed();
          
      
          Label1.changed();
      });
      
      HiseSnippet 1144.3ocsVslaaaDDdosnSDaUPBPO.D5WxntFRx1oENnnNV1NUIw1BgoF8GEHXE4JoEhbWVxk1QHv.8bzSSOR8FzNCWRwGV1MQ.kFvPyy8adryNihjtr3XYDwn46WDxHFesoyBgZ1fYTtfL7DhwSLOmFqXQ1ZVGuHjFGy7HFFa9JjgQyFjzu+9mNl5SEtrBVDxURtK6s7.tpf6nidC22+LpG687fRZu+QCckhAReYBfmMM6RBotyoSYWPQ01vjXr0odbkLxQQUrXPmikdKblIuQn0+JdLerOCI5Qb.GoYSFLi66MJOViIDiFiJh7M0Q92XdN2iujeQF3ooBrKrnbNvXipPpQEH069fzYReOzA2C7LJAuFZ38LSG2HdnpPBhsuxbn.JNSnPZuLrz5R13UMLGHAMDpcCnyYmEADKsnyy61cG6C51c6WzxR+GT.hU1WSireKcLyum8OZma+TlZfLHTJ.hNs0haiVVXyaDxw2uIoRameVEVMhJdnSRKN0tbEhYXZHjEo3rXHlBdsykWrTycr+TKKa3q8MbO0r1GZ2ChyLVyX7oyT.u85myJTFlDdNSjLTwBhAQscRFiz8N7PjUueSTkQ+5L1qNi8qy3fkL5W2oYL52NGOTee4MCf+OFZ+SwSZb+QkMpd66.6W5ymJ.0TQIrJBuT7NLXG3ycmCxmP8iYZ4srtMuNvE9bAydRhvUwkBaoPmFwyLR52wMuRrCTr7SXa2xBRuMAwwRe1tgQbrH4v7YtJlmMFJ1COA.s82lYvKzmotiAqccZiQS6cVJ91Tr7vkezvLLkma5TCqEswZ1nImKShYKMHOJ6vtFbdVnnlwiQUuBgiVxtQr3DeE5PsX2YTwTlWm7fIsW99MpPk5FhnqT1nrXnjTpJbgTwtTzYaqOY0z5VK65hlLYkxxRE9rnUJFm3F8PF1QjDLlEkWryUDFCUcN2Vedy4b00zRJJECEb0kgrL5hIg8VwjPRVSANSLCgfppzIhOIahniO2iEQ3fSdjYZVmjBdhgowivGV9kgmPUzbW.dqX3Av6D10vaT5grMMOgEOWICgCYYOHD6+mG3GKdF60GsXIwnviHk7ik1OsxGkicoot4wl5NVzOlFGBVt.+weB+HcFF3vs7xdRUOAC4Xmwo5.CDmkGXPpNeiX76l0luYUa7VM58pQueM5CrpMZqFcexclFgAGh7pyvPtorKkxLqlxRu1jkxzWgJk5+ietTp+uleDlBV1Db2WTg20kdI9TU0G6wsZxD.2Lp7pJ9xoHlqVTdqmufM.5txM.VYe+mIbel4Htxc1pw6Fq.uvsf+uwa19TsLOcxD3QgBv1v7reccWd5K.JuSln3homSUQb79zEIANvJktL.IB3VVL1SrA1loo6l2M5vDdoD+C7kIrWdSIJrWtPR.0MR9AW8DIbisGmxAvjHcY0lvVy.scwnHyt61kD.KR9AWWLU7c.1WsM8WCa1aMrY+0vlCVCad9ZXy2uF17COnM3N7uLQICzWS.FiNM8YACiSETnKKsij7u.RBUmSC
      
      1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey
        last edited by

        I'm going to bed, but this should get you started

        inline function onPanel1Control(component, value)
        {
            local t = component.get("popupMenuItems").split("\n");
            Console.print(trace(t));
            Label1.set("text",value);
        };
        

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

        NatanN 1 Reply Last reply Reply Quote 1
        • NatanN
          Natan @d.healey
          last edited by

          @d-healey said in ComboBox Sub Categories:

          inline function onPanel1Control(component, value)
          {
          local t = component.get("popupMenuItems").split("\n");
          Console.print(trace(t));
          Label1.set("text",value);
          };

          Thank You Sir :) Sleep Tight <3

          1 Reply Last reply Reply Quote 0
          • NatanN
            Natan
            last edited by

            No Luck :/

            @d-healey said in ComboBox Sub Categories:

            I'm going to bed, but this should get you started

            inline function onPanel1Control(component, value)
            {
                local t = component.get("popupMenuItems").split("\n");
                Console.print(trace(t));
                Label1.set("text",value);
            };
            
            ulrikU 1 Reply Last reply Reply Quote 0
            • ulrikU
              ulrik @Natan
              last edited by ulrik

              @Natan

              inline function onPanel1Control(component, value)
              {
                  local t = component.get("popupMenuItems").split("\n");
                  Console.print(trace(t));
                  Label1.set("text", t[value - 1]);
              };
              

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

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

                @ulrik said in ComboBox Sub Categories:

                inline function onPanel1Control(component, value)
                {
                local t = component.get("popupMenuItems").split("\n");
                Console.print(trace(t));
                Label1.set("text", t[value - 1]);
                };

                Thank you Ulrick :)
                So What is The Trick To Not Including The Sub Menu's Name, Just The Item1/Item2/Item3...?

                Thank You Works Like A Charm, And Thanks To @d-healey I Didnt Figure It Out Until Ulrick Sent The Code Again :)

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

                  @Natan If you don't want to include the submenu name

                  inline function onPanel1Control(component, value)
                  {
                      local array = component.get("popupMenuItems").split("\n");
                      local t = array[value - 1];
                      //  Without submenu name
                      local t2 = t.substring(t.indexOf(":") + 2, 20);
                      
                      Label1.set("text", t2);
                  };
                  

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

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

                    @ulrik said in ComboBox Sub Categories:

                    local array = component.get("popupMenuItems").split("\n");
                    local t = array[value - 1];
                    //  Without submenu name
                    local t2 = t.substring(t.indexOf(":") + 2, 20);
                    
                    Label1.set("text", t2);
                    

                    YOU ROCK :) 👍 👏 :face_with_tongue:

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

                      @Natan actually this is better, it will follow the length of your "item names"

                      local array = component.get("popupMenuItems").split("\n");
                      local t = array[value - 1];
                      //  Without submenu name
                      local t2 = t.substring(t.indexOf(":") + 2, t.length);
                      
                      Label1.set("text", t2);
                      

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

                      NatanN 1 Reply Last reply Reply Quote 1
                      • NatanN
                        Natan @ulrik
                        last edited by

                        @ulrik Have You Noticed, If You Dont Click On The Menu When Its Open, It Will Show Some Errors?

                        Interface:! Line 2705, column 27: Unknown function 'substring'
                        

                        Just Click On Panel, Once The Drop Down Shows Up, Click On Outside of The Panel

                        1 Reply Last reply Reply Quote 0
                        • NatanN
                          Natan
                          last edited by

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • NatanN
                            Natan
                            last edited by Natan

                            @ulrik
                            And Here you Can Clearly See That It Goes To Zero, If You Select Nothing:
                            It Goes To Zero, And Shows The Error:

                            HiseSnippet 1243.3ocsW01aaaCDlJIpq1atXEXebefvexAK001IoaHCCyMNIatsIwntqc.qCEzRzVDghTShJIFEAX+z1OoAre.aGIkrjUdYEFHNANfO2K7g2c73kQwROZRhLF4T6MyinHmuvc7bgJXP.gIPCO.47H2iIIJZL1Bs+7HRRB0G43r9OoAbpsAx74u+w8IbhviV.gPuUx7nuhExTEni5+RFmeDwm9FVXIs2o+POoXfjKSA9rtaGTDw6LxL5IDsZq4hbdvg9LkLdrhnnIHmM1W5Oebf7BgU+2xRXS3T8htnwfirvGI49ZFqQQCBXb+Q4m6DD3kQEQg0sQgux8XlOaAdQz3KMBvEVTNd3r1cQutkoWmOc54ThdaXo2icG6EyhTERzb6ycGJfD0TBjBJSKqtn09mMbGHAMDp1gjynGECKVXQqm0oyV3c6zYyuuQc6OPxHQgOmDieEYBk2E+C3b6mQUCjgQRArnUSq3lZKKr4kB4ja2Dizl46UgUiHh6ZmrhM1kqPBUGFhnwJFMANSguX7omrPysverQcL7o4ELeUPy8vcgyYFT.kMKPAXa2KGJRFkFcLUjNTQCS.QMGmNQut6d6og59dwx.8pBrcUfcpBr6BfdUcZFPul47gv4xKF.eOAtJX3i4beoBqUu40n8y4rYBPMUbJcIgmJds9vNfy7NCjOkvSnV4MpeUddfI3LAEOMU3oXRAVJrgQ8dFK4s7xyDaAIKdJcyF0gvaMPbhjSaGEyzIowTN0SQ8w5iBd3A.oweSlAvFUy7KW5Q3XRbLYNjsW3Xc9tU0rvlsSh3L.+8BSp2ZqBryX+uYbM9I3t+NH7oOEieGSEHSU3jzIgfWvBnAxBy5A1AkMoSRT.em0R0lI7oWd5zVM2q4l.S6sEHmSEyTA1.is9VWo0poN1CUUpdZQWYDe2kpZyxhe44wVUhqEW4rvZSNVllPWXPdFoE8bv4YgcU.KQq5a0Geqj1wzjTtxDlMh8BHhYT+VZDcx1bu61MpPkpFpYm9uYwhxhgxmRULmHUzSEs1r9GqWq9U0wUEMc5MJKKTvow2nX8KEw2kgsDogSnw4El4JBsLWtmr6s2St7SFd1bZIEkhgBl5zHp315TixJDz8ryXEnpxzw9QYcrGyY9zXDCZL+YtlHMxP3hWA+59neY3ADEI2MfGKZvAXGPOGdS09PPM2CnImojQvFsn1CNj+ua5kEa3K5OewhQQ8CIWV9IYTI2V251F4u9nKVMd8gt1B2xt83RtsuWeS6W.3A9YSFXa9pQvYHK2qSS+x85PK2T.47GtUZMWuRm4Jq2tx5cprd25U5JWYcOz0ZjBQZGMyWt8qF0.e8LRdnybKJKzYuQUJz8m+boP2ecVecHPm4rj.c8wAfgRj9obhZ4IUzimkI.tprzHA5m8EIL07xiucuL9xmJcer6HlxK3l46Z2.egqG227MaXvFtGNcJ7hVAY2v8ne89exOzqg2vfWnNl.OTAkGtmjFNFlM1iBLQ.22zsybVSWnYW2IudbLU3aV7uvmLgcyKK0B6lKDER7hkevy1tROt4CMH.mDlotqAi+CqwK5S451ocGTHLE7G77zghm.b+lso2JXy1qfM6rB1r6JXyyVAa91Uvlu6NsQ+Of77TkLzdMA.Fcn48BGmCEDnJyTQh9O.MJF1IA
                            
                            ulrikU 1 Reply Last reply Reply Quote 0
                            • ulrikU
                              ulrik @Natan
                              last edited by

                              @Natan it's because if the value = 0, then value - 1 will be -1 and you can't take the "substring"

                              Try this:

                              inline function onPanel1Control(component, value)
                              {
                                  if (value)
                                  {
                                      local array = component.get("popupMenuItems").split("\n");
                                      local t = array[value - 1];
                                      //  Without submenu name
                                      local t2 = t.substring(t.indexOf(":") + 2, t.length);
                                      Label1.set("text", t2);
                                      Console.print("Selected Item ID: " + value);
                                  }
                              };
                              
                              Content.getComponent("Panel1").setControlCallback(onPanel1Control);
                              

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

                              NatanN 1 Reply Last reply Reply Quote 1
                              • NatanN
                                Natan @ulrik
                                last edited by

                                @ulrik said in ComboBox Sub Categories:

                                @Natan it's because if the value = 0, then value - 1 will be -1 and you can't take the "substring"

                                Try this:

                                inline function onPanel1Control(component, value)
                                {
                                    if (value)
                                    {
                                        local array = component.get("popupMenuItems").split("\n");
                                        local t = array[value - 1];
                                        //  Without submenu name
                                        local t2 = t.substring(t.indexOf(":") + 2, t.length);
                                        Label1.set("text", t2);
                                        Console.print("Selected Item ID: " + value);
                                    }
                                };
                                
                                Content.getComponent("Panel1").setControlCallback(onPanel1Control);
                                

                                EXCELLENT 👏 👏 👏

                                1 Reply Last reply Reply Quote 0
                                • NatanN
                                  Natan
                                  last edited by

                                  @ulrik Ulrik
                                  Trying To Add A Pre Next Button To The Sub Menu, But It Doesn't Work And It Loop Throw The Menu.
                                  Do You Have Any Ideas?

                                  HiseSnippet 1430.3ocuX0saaaCElJMJq1aYnEXWtKH7UNnIo1NIcCYXXtwIYys0IF0coCXcnfVh1lHxjdRTownH.6QaOR6MX6bHkrjUhcCxPpDPP34O9wy2gTG5tgJOdTjJj3T5MSmvINekauoR8nViXBIo8gDmu1sCKRyCoVQGLcBKJh6SbbdvOiBbJsJw77O+zAr.lzimIhPNSI73uRLVnyj1s4KEAAGy74uQLNm061rsmR1REnhA77.2ZjILuyYC4mvPyVwk3r1Q9BsJrmlo4QDmUOP4Os2H0GjV6OSDI5GvwA0I8f.YEerJvGQLJkzZjHvua55Nh.QoaVV3A1rv231Q3KlIOKa7HiBZlG4yGNqrL3UOO7pc6gmSN3spEdO1smWnXhNSChsuzssDHpALfBxCKqsjUZUxskBrPp2dL6b9wgvfYdT8Y0psIcuZ013GVur8EHiHM8BVH8Ur97f5zejl5+PttkZ7DkDFTshUcEzyLedoT0ewtXzVIctx7pKStrYxp13WpAQbLMLgGpE7HXMM9E8N8jYVtI8iqWlBOU9fvWOpx9z5v5LQzHtX3HMHamFohlnlDOoCWF2VyGGAppzKtONt996ihp+N47BZTTvNEEraQA6MSPihAMQPiJo3gEDn9PK3u8gsBF7XV2Wpon4UtFredfXnDLSGFymS4oxWiK1VABuyA8CXAQbq90KeUJOHjABImNHV5oEJIUIsoQbNCUAU8RYhMAxJHluw5kSRuhAzpohvwIhwm.kGKfxBCYSAdcVHPlsZw78FaGMIP.xemzPxyGCM3uIN+tYpnaQq+G4L5oOkReqPOREqoQw8GCQkJgiNtVXZ.wAJbh6GoCExgU0aKj97KOcP0J6WYC5SnM1DzGvkC0ixiBacNVwUsBxAP0ktQdCf7TjJfu8DHrfM83AbOM2mhKNZ6CA1CBtMMk30UP12j7Wd8NNmIjPZwP0BjS19VqXzkNp3H9LGRo0p7Kffa4tR5QhHzzyPTY0rcHOJNPiAzp1aDSNj6WMEzlMuK1oLSJ5HhtbIx7puJC+36SQx7DrNuaH+h4OivHdQmPfJKbRDFgEehBnL4bHXJwQacPrVqjacu9rfcavz++ZuVF0aoljwCSGuAtmwPr4rtHKkTStr70BpGyfeZFcqOSOY0MlxiDNjdeOoWmBwY+dlBexshBWFIZ2jbyjXtE.FsO+TH9lOgpz7SkU2n7GKWp7UkoEUMXvMpKYIDvCuQ0XmmgKywpx3w84goLWpgPKXy2im6h6wKeKndVdHmgJYaoPe5DtbQc9QRHOrGvDTAlpMc.90Ic.1KP3yCIBnQuuv0bnKw.3rtp+1ljes8gLMKMLPDyZXBjcH+BnGcaikkbOjGctVMAVXypWf++SNoWlMgun4zYC5No4X1k4awmjKrksgc8ztYwZYSTenqstNeX6jKrM8ZZZmCDrlexMMrMygRnIRlu2ID946chLeqGDm+zsPqdkKzoWgw6TX7tEFuW4Bc4UXbCx0ZLCxzNHxmucNTpQ70YjzTm4CpIoN6GWyk59qeIWp6uOuIlBPly.p4h5Zyyy1CQMgcMW7v877wixETxaaFwtf2F+B.bnBdoCQTGEzAllEBl4rxscVvSexCcVdV+rO4rb8qJAWXS4GGvzyeKN7pqIJfs8yccI7JQxHgdZ9q1dub0taKberaWg1azMi2UtA7Ba0uuwaxEkW28nACflby.6ptG+a2+2Jl7ZnKen28NLnEdndw8j3w8Twgdb.IR3rC7nYnf.c0LtV5dqdbouYv+BOIJqmtECUVOUIYLyKT8dO6Qu3UwenQBfIo4WjnjaGbLc1Yttt01tFYrvW7dOOLUrEf8a1mF2Ae14N3yt2Ae16N3yytC97c2Ae99k5C9iy77XsZrcaBHn6Qlu843bjjAUYlJRx+gf0V3I
                                  
                                  ulrikU 2 Replies Last reply Reply Quote 0
                                  • ulrikU
                                    ulrik @Natan
                                    last edited by

                                    @Natan what have you tried so far?

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

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

                                      @ulrik Check Snippet Above,
                                      I Did This:

                                      ///  Next Prev
                                      
                                      const var Next = Content.getComponent("Next");
                                      const var Prev = Content.getComponent("Prev");
                                      
                                      // Prev-Button----------------------------------------------------------------------------------------------
                                      
                                      inline function onPrevControl(component, value)
                                      {
                                          if (value)
                                          {
                                              Panel1.setValue(Panel1.getValue() - 1);
                                      	    Panel1.changed();
                                          }
                                      };
                                      Content.getComponent("Prev").setControlCallback(onPrevControl);
                                      
                                      //--------------------------------------------------------------------------------------------------------
                                      
                                      
                                      
                                      // Next-Button ----------------------------------------------------------------------------------------------
                                      inline function onNextControl(component, value)
                                      {
                                          if (value)
                                          {
                                              Panel1.setValue(Panel1.getValue() + 1);
                                      	    Panel1.changed();
                                          }
                                      
                                      };
                                      Content.getComponent("Next").setControlCallback(onNextControl);
                                      //--------------------------------------------------------------------------------------------------------
                                      

                                      But It's not Stable

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

                                        @Natan I thought you said you want to get previous and next "submenu" ?

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

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

                                          @Natan said in ComboBox Sub Categories:

                                          Trying To Add A Pre Next Button To The Sub Menu

                                          Do you mean you want to get to next/prev submenu?
                                          In that case you have to know at which indexes they are located, like in your snippet you have the first appearance of SubMenu1 at index 0 and SubMenu2 at index 5, so you have to work with those indexes to jump between SubMenus

                                          Something like this maybe

                                          //  sub menues
                                                  local subName;
                                                  local subIdxs = [];
                                                  local items = Panel1.get("popupMenuItems").split("\n");
                                                  
                                                  //  get indexes of first apperance of submenu
                                                  for (i = 0; i < items.length; i++)
                                                  {
                                                      //  get sub menu name
                                                      local sub = items[i].substring(0, items[i].indexOf(":"));
                                          
                                                      //  check if sub name is different than the stored one
                                                      if (sub != subName)
                                                      {
                                                          //  store indexes of every "new" subMenu
                                                          subIdxs.push(i);
                                                          //  store current sub name, to be able to compare with the next
                                                          subName = sub;
                                                      }
                                                      
                                                  }
                                          

                                          With this you'll get the first index of all submenus, dynamically

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

                                          NatanN 1 Reply Last reply Reply Quote 1
                                          • NatanN
                                            Natan @ulrik
                                            last edited by

                                            @ulrik Thank you Ulrik :folded_hands_medium-light_skin_tone: Will Give it A Go

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

                                            22

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.4k

                                            Posts