Weird LAF behavior on vertical Sliders
-
@Morphoice The problem is that part of the slider is now occupied by the value display, but the slider doesn't know that, as far as it's concerned it's just a standard slider. So the click/drag area is still the full area of the slider.
I had a similar issue with a slider I'm working on. My solution was to use separate labels for the value display and update them via a broadcaster.
If this is suitable for you I can put a little example snippet together.
-
@d-healey I guess it will have to do, if that's the only workaround. I was hoping to avoid extra labels as there will be a whole lot and it was super convenient to have it within the slider and only switch from its name to its value during the dragging
-
Here's a factory function example, tweak it to suit your needs and apply laf, etc.
HiseSnippet 1469.3ocsW0kaabCDlqiWiH0lhjh7bAgdRtUPQRQw10AEww+kplXagJmzBDjFPQRIw3UjB6R4Hkf7VOE8PzqPOK8FzaP6Lj6Jsx14OATAaCQxY37My2vYF2N1vkIIlXRPwSmNRRB9xvNS01A6MfozjV6SB9lvykwVEmE0IRIjwGx3VS7zClvFNJRR1c5HVRhTPBBt1iPcBJrJw84edvtrHllKmuEg7LihKehZnxNe2167XUTzgLg7T0vbR2bmVbidOSjYLfuqEViLhwOi0WdLCEakPxOxRFPB91PQ8l06sEmswV0a1fyar0lM99M4RVudxMpeuMatUul8X7ZMHAqcfPAvuikYkIvktqQLsy.yq0dC7LUhpK3Uvh5jNfk8aS1afJRzNKXkPHAq1ddn6Z9P2sCORITy1edH7ltCny0HePKXkODjp+Y.ofbPZUOjtUXGdrZjc9IHd9hvVZqLFBIKxedYIqbdX3dFPBss5P1YxCigEyzn7F0pUgB+Y86WrnFXhDfUjzmsPRRw2VrfRGozRZuwZtUYzaS8W+Icekjao7XI3ukSbh2RrMMwFqz8qPGwhAC2lokQKpREJbBaa5CiiYSWuXAvDEhLfIo9Kg9CzLTyDhGqMcmc6Un.jQ.W.9.+IStDIFYFgPWl.t4vepyIGmSKzDEJMoz1NS+7ZunBszzrU0wUuVIrCx1oAty.op+.a1V28EUb2g2q1yLbjQCeANNmeVsuz1RTdcunI1oQRPfRYgzRo6C4DmJmX20f.pGKJQB6+NmW4+wGM5xgHwA59PvupOJuargI3rDfAK+VEFqS8P52AVgEMVVBCt8S1l97R7YXDblycG9BuQ5xqxrVFevolYNhS6bQrzqKCT24NzVzwIR5Y5tTVBkQGEK6olP6YhornHXeSWXasHESIUbKh5F4DIh0UFkTk9PwqFmXwaPKkBon5Lu0IwhT+SvslgopwxQQXdaI.CnOA2co0cYDozHDER4JLk9ikc3L3LFymhbA188SttzkKc7uf6lJgEXXf68btDpLvfG+WAcijgPLyjo.c5ST.KqAd1ASvaw6C8ZnZjtuLMbktY1SyxJsPNoBcF0Wg5Hd3Ql6UVgXocbrNKoRXFCX5TSG2K1xNQqPquNlMQE6V59o3r3LE8bw8Qf+thuqXQnrNvlN+udNtCBEybnxk7GioRdwA5Cav.xuXslzjbG+hB.NlW0Jzm2DX46A+1.98t0p4H3LulZzGarxSzkWGKWA3hdwi506JOCwarIJBByW0wXWr3Ojhk0iG1UFOKJmJHT0dwVAq8o0Jf6Ce4DznaoU1SFISWenIRfk3wue4FGjz3O1BIEgfnVWCjuJsAhOTSTvkTHLMPSbvOeCexSasOyxxtn44kJzcB1WdNz822YpP39xjyrlQNYSIcvk8l8FY8sPhzY0qG5IUxj4F73clNeQqcbOtHAgABXouLLt5OB.7rRNabyOAWCsxZkSGZAsxZMRW3JOCiKElkERFpDhHYaShBo4bwi+BdKNpi5MtXzau8e9n+9M+9CFleFIBYHaR9HXx3dP4Q2vM8TQCwlhiZMDl4gD70gOEJjJj8Xiirzjyf6AZvdlTbpwIep6WXsamd0YgfBqUIvuyEpSkKplq4BFybRmWtEoEWE1zHFTNMKh40aJ9keC9JVkAMQ8p0fxBjEnm2ORxp4MCFWdpFXdJiXbDyt3PVHLRO.4g7S1fSunA9YZ9X8mwjW09fSd8oBwaE1VY4CtZLtxUfQLw8+ALlNu5MBO.FPlamCvUCO7WW1gS+Hl+mMisP2hiXPFMlpb73gcf454RrwDP7IHeuBl04WWKi+6H0B2h+E9jdXcbcP5g0yNDdKwiMuj6KggSDec2N.lzt+igBgGgqo0uXkKB9FV8RNewq5RJ1XYU7tKqhMWVEu2xp3FKqhatrJt0GWQ7+e5gislg9mMDxQsOv0oIH3.MVsvksR9OfEwv3K
-
@d-healey brilliant. How would I style the slider with LAF though and set its colors? Is it possible to have the label display the slider's text instead of a value while it is not dragged?
-
@d-healey the problem is still the same btw, as the slider "handle" has a height and if you don't grab it at the absolute bottom it wont register as 0 value, so it's really just a few percent less (the hight of the former label) but not gone completely
-
@Morphoice said in Weird LAF behavior on vertical Sliders:
How would I style the slider with LAF though and set its colors?
Just like any other slider. The function returns a reference to the knob - in this case I've put it in a variable called
knbGain
. So you would doknbGain.setLocalLookAndFeel(etc.)
.Or if you want all of your sliders to have the same laf you could assign the laf within the factory function.
@Morphoice said in Weird LAF behavior on vertical Sliders:
Is it possible to have the label display the slider's text instead of a value while it is not dragged?
Yes this should be doable, do you want it to show the value only when dragging, or also on hover/mouse over?
-
@d-healey said in Weird LAF behavior on vertical Sliders:
Yes this should be doable, do you want it to show the value only when dragging, or also on hover/mouse over?
good question. I recon on hover has a nice touch to it, considering usability
-
@Morphoice Ok so we do the same thing but use a mouse broadcaster instead of a value listener. The label will display the knob's text when the mouse is not over, and the knob's value when it is over.
HiseSnippet 1480.3ocsW0kaabCDlqsWiH0lhFf7bA69PgTqfhjhhsqCJhhskaTSrsPkiSJBRCnHorX7JRgcobrRfA5C8fzSPuN84dC5MncH4tq10w4GXzH.aHNb94ieyPNi5Gon73XUDxq7gymxQdet+f4R83sGSDRTucPdek+o7HsfRBGDJX7ncITsJZd2yHSlFxQaMeJINlyPddK+iFa7JsBx94et2VjPhjxWHBgNRIn7GIlHzKj1uyCEgg6RX7CESxoc6N8nJ41pP0L.eK62.MkPOgbLeehQsk7QOfDOF48s9rlsaNZCJYsMZ1tEk1Zi0a88qS4jQi3q07Nq2diQsGQnMZg7VsKS.vefln4wHuU1RwlOXr5URW.NRDKFBmJXQSz.HxNw6pBYlinQJZ6whPV+ThKFAdo+BZbYGMdS+8DLQl7Ez4WZ2.uvh7Dn2REg2xEfWy7vqQN3cIPxKGjVwAoa3OfFIlpWriAOeleOolGAzSwboSWzRe8p9aq.Mj55SHmv2MBVjYQk0ZznFF9W06VtrDxJwPFhiOpPAS42TtjPFJjb7nYRpVnjahct+fgujS0XZDGNuUhsp2isINVGIjGWCOkDAAtOQxCKZRMLrCYS78ihHyqVtDDhRgJHjXmSv+.NE0DF6gR0vLuWCCP1.3RvG3eo5EyMLyTCz4wvwbxOM3f8yYkIDkBNKXSaneVimWCGLOcUSypWIX5woRZYjLlKNdrNUzsedMqObmpsUSlpjvWfsycNqeLW2iUopS0X87PNnPPJkFjHGpINjeldKkAPiHgwbP94KNU25V3d3Ywb7IxgXRLlfmFwGINCOREgIggfb0PPrjkvXw0rKBGFZUIjLjGFWGee1KmEqMdPx4vcf5YDsUih77iLhxnr5Q7oglhj..CA.a.9Nnpk9S3L72kRLl5mOTpvFvL5wkOt.U9tYRat4s19IFoIZnA5DHZGAygqgD3l1E4VGytUjhvnjX3V.lArpTXJpyXlgz8T.0+DhlN1VJ1UdLT8W2Ulmy3JuIPvLY2hVX3JRzwwvNOKflUl.R4mZ9xycXonQ0IZMgN9PUFYX2sqwh3jbB3gsCEzShweC9ApScQJvw8WzaLVliRxEyej..sDfsMSTC.mgyBLE5OdJCNZI0DFoXkL8p33jHkd4uhPx3mUCmcxpgsmK3Zr8dbIwHbEqj5VSqZqoi35YQxTpjolAYmCUCrOTTIyUlj5QjvYbSERypPAV.lsUf8ZQ4Edof9UbGCKmdtiLRTyc.tqwzyKed4xP2H3tfs5oYtJevGYbUk.21F24TGJ9M8EA8K9rXR4f81gQAfgblBDaa3Nxcf+ZA+c6FMrWORoOfY2Wo4GHqT07xJfK7E2ZznKcOCdiTggPF7x11z7M58YXE4rICMUQmZX3LEgFLE6Z4+t6ZkuoJ0Qe4TTI6AWkNXJW9tZ0hR3bSGtDTApps829hj9aN5EIf1Xk7SHWjExIiV7a27O+q6gdbucHZRpiVTlKLGAuc3mBCp3ZbVxeGd7IZ0TqtIIZXTBWXudZaUSxyF0q46RjnyVLKy9cluXQuN1miVH3W535TjI4Ol2waobwp7GwQzDsUqjLmkIZq1JYgsKB3D+zJPPBe5.wqSYjN+8q+86khoUuYhYYXZ0ZdNIW341bG0bMjfB.m540qHWYaTj.enqPJ7c1M27keE9p4ZY9CXB.88XuWnj91cFNd6QgfgvTrYgDcwIyLQIYCnvuv3PlQdjwB877y29+13ZerP7F98Ev6yWNFW5RvHTd+o.iIC4dc+tvD1T8B.th+tO8SyDsneVMSCu0uGAdx2Tqr+rICfeX.kCQWBIdyCOdKYJ6bqajl+GvkL6h+E9jrYSyZujMaltIZBgFodA08vhYL5qYk.XRZ+IGk72yrF2rv6I1OSfo5eAkVzUukgstpFd6qpgsupFdmqpgqcUMb8qpga7gMz7itt+LsZh6ZCBsW+t12+875JMuVXqVQ+GgFGTA.
-
@d-healey you are a gem!
-
@Morphoice Actually I need to modify it slightly because now it doesn't update when the value is changed.... one moment.
-
@Morphoice Here we go
HiseSnippet 1490.3ocsWssaabCDkqsWiH0lhFf7bAw9jTqfhjh7k5fhHeQtUMw1BUNNsHMMfhjxhwqHE1kxwJA4s9gz+r19Gz+f1gj6tZWamKvnQ.1VbtwCOyLbn6Gon73XUDxq7wymxQdet+f4R83cGSDRTu8Pdek+47HsfRBGDJX7n8ITsJZd2KHSlFxQ6LeJINlyPddK+8Fe7JsBx94ed3NjPhjxWHBgNQIn7GKlHzKj1uyiDgg6SX7iESxYc6N8nJ4tpP0L.eK62.MkPOibJ+Phwrk7Q+.IdLx6q8YMa2bzlTx5a1rcKJs0laz5a2fxIiFwWu4ZazdyQsGQnMZg7VsKS.vefln4wHuU1QwlOXr5UR2FbhHVLDNUvhlnAvN6DuuJjYNhFoncGKBY8SItXDDk9Knwkcz3c8OPvDYxWPmeoUAdgG4IPukJBukK.ul4gWibv6ZfjWNHshCR2we.MRLUuPiAOeleOolGAzSwboyVzROZU+cUfERc8Ijy36GAKx7nx5MZTCC+p5CJWVBYkXHCwwmTnfo7aJWRHCERNdzLIUKTxsvtvezvWxoZLMhCm2JwVy6w1BGqiDxSqgmRhfMtOQxCK5RMLngrEd6nHx7pkKAaQoPErkXWPveGNE0DF6QR0vrnWCCP1.3RvG3Wo1EyMLyTCz4wvwbxON3nCy4kYKJEbQvV1s9YMddMbv7zUMMqdkfoGmJokQxXt3zw5TQ2+40rwvcp1UMYpRBeATm6bV+TttGqRUmow54gbvffTJMHQNTSbL+B8NJCfFQBi4f72t3Tcu6g6gmEywmIGhIwXBdZDej3B7HUDlDFBxUCAwRVBiEWytHbXn0jPxPdXbc71rWNKVahfjygdf5YDs0hh77iMhxnr5Q7oglhj..CA.a.wNnpk9S3L72jRLl5mOTpvtgYziKebIp7cyj1byUT+TizDKz.ctUBYXzUIvHIvojCskDny6xbsio2IRQXTRLzUfY.KKElh7LlZH8.EjJdJQSGaKM6JOE5Fp6J6y4bk2DHXlrcQOLbGI5zXPyyBnYkMfT94lu7bGVJ5TchVSniOVkQNVscMdDmjifHrMTJrKTOLDtYM1DxfbmKWHviDQPIPn.fnDZmu5NwXYaRRda9iSr1k0f3ZIS3uOYJCNzIUOFgXkLsocr5b6oM8ZhJBIieQMb1YtF1dhgFdaGeIwHbEqj5VWqZq9i35YQxTRlolA4siUCrWoTIKTlT7IjvYbSsTypPoX.lsSfsAp7hnTv9zRhGjj+KmYl6.7.iqus7aKWFlaATlsNqYtdDHFYLUk.mZS3blCsIlInf8Eu.MoPw1GYL.XHmq0vOqMzMsF7SK3m62ngsQJk9.l8PklejrRUycv.tvWV0nQWqNCdiTggP965TaFSG89brhb1jgl5qyMLblgvnnhy27e2y2xO9k5nubFpj8flrilxkuqgxnDN2LKLAUfoZ6jvuHYRnidQBXfWI+DxEYgbxiP9qJ+5e9PzS5sGQSRCzhhbg4H3sG+b3IMtQrk72iGelVM0ZaRhFdzgaauc5.XSxytq2x2kHQWr3UOG1Y9hE85Xu3ZgfeoialRlj+XdGukxsWk+HNhlca0JIuHyraq1JYgcdCDD+zJPPBe5.wqSYjN+8q+8GlhoUuahaYXZ0ZdNIW5h4bG0bitfB.m44sqHWYGoj.eX9QJ7c9M27keC9posL+ALAf9dr2KTRuUOCGW8QSvy0TrYgDcw2vY1kDEPgegGNYdbjLVnmm+kv+u8vtOVHdG+9B314qGiKcMXDJu+TfwjmCea+tvawo5E.bE+8+4OMu8E8SpYZ3t9CHvU9lZkCmMY.7uPP4vtKgDu4hGukLkct0MRy+C3Rlcw+BeRT1zr1KQYyTknIDZj5ET2EKlGbeKqD.SR6+bRI+CLqwMKbeh8yD38+ufRKFpq3Xqapi2+l5X6apiqcScb8apiabScbyOril+8rsmoUSbsMHzA86Zu+2yqqzbagsZE8er2TdkH
-
@d-healey Beautiful! I'm getting the hang of this. I applied some small changes:
HiseSnippet 1503.3ocsW8tSabDDeOfCE6zT0HkOWs59jcqkiMFHAhph4OlV2D.qZBoUHZz5a2Cugy6d5t0Dbhx25CRe05aPeCZmc26NeGPHQnVj.7N+e9Myry5AwReVRhLF4T8nYQLjyW4NblPMdmwDt.0eWjy25dAKVw8IgCC4TV7dDekLdVuKIShBYnsmEQRRXTjiyh+nVGmJKgL+72OeaRHQ3ylSBgNVx8YujOgqlScP2WvCC2iPYGwmTP5U612WJ1QFJmBw2htsPQD+yImwNfnEaAWzOQRFib9NWRmNzf0W+oaP8Wcs1aDPdB0eTmMViQWY0NrMXT5S5PGEDfbVtGkCg+PEQwRPNKssjNa3X46DVGbLOgOBxJ3PazPvyVx6ICo5TTSEsyXdHcPFvkf.qLXNLtnEFej69bJOm9b37aLLvy0nH.5rP4vawRgW6hgWqBg2MDRNEBokrgzCcG5GyiTy4nim661WnXwAD+x0RqrnENcY2cjfDBUyIjyY6ECGx0n15sZ0.C+o9ypVU.UkDnBwvGWpgo5GpVgKB4BFNXpvWwkhMwVye3n2x7UX+XFju0RLh2mtINQEyEm0.GQhAGOfHXgkUoAF3P1DuUbLYV8pU.WTITBtDaMB9GvYQMgRegPNJ25MvPHqC3JvOvexjKgoQlHcnyRfzbxOO7vCJnk1EU7tzaSiqOo0oMvdyxN0Ve5cbpZbFkUzTFy3mMVkQpyoML1vlU6HmDIEvG.1ExylmwT8o0paEMQMKjAB3kAodozgdhiXWp1VpCn.RXBCn+w4Y0ieLtOdZBCetXDljfI3nXV.+RbfLFSBCA5xQ.YAMEwRZXNDNJzHRHYDKLoIdK5amlnzVPvXvLPybf1HQYb9kZR4PVyXVTntIwChAO.M.a6U2.+oXF96y.Fc+ymqTXbXN7XqGWAJ+zHoo1bM1uVSMUBE.malBFZd07zT7rLYvXIAl7tJVaQ5sikDpOIAlJvT.kEbcSdNRMxeeITJdMQ4O1zZ1SbFLMzz11WP4ZeviS0U6xZnwNR7YI.mS77yaa.prKze3TarTVolDkh3O9HYN3X31SqQRZMBrvVPqvNP+vH3l0DsI8JjWVSfC3wPKPHGBQALNecOQo4NIstM6koRaqZfcMfI7+WEQgjNs6QSDKEYCsikWXx1rqIpwET1kMv44bCrIigAdyDeEd.tlgRSip0Mc+wL0zXQFHSkSg51QxglqTpkaJcI9XR3TltWpccnUrDqZdISCf4EKbnwiL6dEwrMIOKsinZtX1T5YZU+X0OVsJrIC.QSmW6BSMfMxwtZdV1ZyYEGFbz6TA4KekZZqiYxRK.fYVUafOYUX9ZM32Ufe6zpkYzJCPAr9.ohcnnVc8sxPbguJqffajmNdikggPE8lXqWbGeaJVSLcxHcG2EZLOWPX4T4Mdte5MdEWH6aguBBJE8gwtCiXhO0ZZTJlq2NlFUfnJytwuNc2nEdQbXEXE2TvEYB4huqA8p96RTjLCMusmqSAmcYW.Oxwtzsh6trjyUxHiroEZ3YHV29frUx5hmwq2y0VHQWN2gGzc17C86ZtJaNgeqqcKSNk+bVWmEJ3q6+EjhZusbsz2no81xqjdvrABdcnaVGHPgEMj+9LDo6e89+34YwzxOJUs7XZ4FNVJW4p5BoZgkYPCfQb6vGzc3R2VW3lqTYfyrwIMWf0KY4h0Hyze32gOpmQKlsoQqqC8ViqrK8yrG55uoBdMmjNMjnJ+DOsWRY.SAkdWk9sShDtZVwFp+yd22WZH9P2Ab3x6aNFW3FhQnW++iXL80xOvsWP.7rt4A3Rt68q25SiW5Ky829K2Q+hbpBVKrOA1Nn6aNX5jgv21vmAQh.ZBz2H4rf9tC64VY8BCYBp4v+.+jxrs9rSJy1YLQSH9wx23auwQ+176Yn.wjv78Xp3tu9Lt8UunAgl.eUg236W1TWSwUtqJ14tp3p2UEW6tp352UEexcUwm94UT+M41ZpRNwNBgP6OnmYwfiSOg9lCSmK5ewCjuFR
-
@Morphoice Cool! You should put the namespace into an external file, then you can reuse it easily in any other project.