Tooltips for Disabled Components? (To Tell Users WHY a Widget Isn't Available)
-
@Christoph-Hart, is it possible to show tooltips for disabled components? Thank you.
-
@clevername27 Not possible with ``Content.getComponent("btnHelp")``` but maybe with some sort of Broadcaster ?
On one of my old project, I showed a panel on top of a knob when in disabled state (I was less experienced than today ).
If you don't have hundreds of controls, that might be a workaround, just put the tooltip in that panel... -
@Matt_SF Thank you for your response - an interesting solution. Unfortunately, I do have hundreds of controls.
-
@clevername27 said in Tooltips for Disabled Components?:
Unfortunately, I do have hundreds of controls.
That's what I suspected
In a project, I'm using a broadcaster to display the controls' values on hover but this doesn't work either if the control is disabled.
A solution which could work would be to display the tool tip when the mouse hovers a certain area on the GUI, so no matter the state of the control.... But this means having to reference each control's area....
-
@Matt_SF said in Tooltips for Disabled Components?:
A solution which could work would be to display the tool tip when the mouse hovers a certain area on the GUI, so no matter the state of the control.... But this means having to reference each control's area....
I'm doing exactly that for a project I'm working on, but in my case it's rather easy to do since I'm using only 1 main panel
-
@ulrik indeed it will be a tad more complicated if using a multi panel GUI
-
@clevername27 this is a solution, but you have to collect all your components in an array and exclude the "on top over all" - panel (that track the mouse position)
HiseSnippet 2513.3ocsY0sbaabEFz1v0j1IwJIyzoWzLazjwC0HFZIYaU65ZaQQBIwXJBZRHaqwiaLDvRx0FDfAXoDYxnN4ldeej7iRuu2j2.2yYA.wRQPJJ0TNdrvd18b1u867ytKPCeOKZPfmuRlrFi5SUxbK0Vib4cK20j4pTshRlkT0bMOxgZWgEH9qx1i5aFD.OjIyU2EGVlrWSQ762d11lNltVzDQJJuziYQqw5w3IRar0yYNN6XZSMX8jF882ppkmaYOGuA.jtp5ZJ8Ms9fYGZcSbXWQUIy00rYbO+VbSNMPIy011ydTqtdm3FN9WxBX.JwFqqzBLTn3c7brQDiRUJ2k4X2HdoGn.VoQBQb0Ph3qU2mYyFKOgPtsnCRhFx7QlqLI7t5Dva8YAuTfTFIHcsPHsjZKKeVedROHdtoZUWN0usIP6xPIbrJW4KxoV1CFgKuXOyOP2wGZLVi7at1ZEHv+sxiyk6t2krqlAoTsZjx562PutVciV4.GR.mTxworWu9dtfcBHOgDaxNT9Dcke4kCMU1lZ6n0TqdYMhgNoR0VMpU5P3Q8ZFUaPZTptVsHSeroOwvyygy52v0YRaO1v4WNYHwyvXi0L62Ome4RzrX.k2.bj7ldC3LWZ91Cbs3LO27cVI2ujKaGb.gge4C+SPwS5x3TbFyxZSxy6xBJZaxMKxrIe6SHvxMWVPyr3pvZVfWVKvTgilSGxAErvgleYdHHWVzM7Obx91n9ngYfKuBLWYyJzaUXpI4sixIWY4Hs5Tz127jRNrNtTaCXf4wQWfH..XqZdVlNa6Mv0NH+ZqTfrrCsMWLmmlK2o3pDIVQTPSsRj6PpVgrSS88OSPAQ60k0ZXPL1SKzUBOUxfTsEQuN3iaPzeoVSTmb9zNDjGBp511CVsu4svbvbc.xmDS9DAW44aybwrl7BWQaOeRdKBycxPuH1FYmHxgA7hvSru2f.ZCSWpC5SDCKqCtdIdG8dxSvlBYYQU9qDI0KDJ1zmZBc7lndFBcDOpQie9ULad27ws1ix5zkmek2hV3TzIfdgriWwE6OHnadX9Et0SQZ9TAEqMjZMfSyc1kdbtytUaYfTHo7AMgrHCxdHkpUIwIHnVqA99.sfyWTNw44Qj7hEHkpWgXzrT4mK7j6qePKPa8VUMppWWJ6LgYmY1oL4+3bIsvDJQqxlNNGAEySR4nGCZJ70.tKiPamCpWFmZrhAFC9p8pVduD.iqlHZH237MH8zpKBj7iI8Bj2HrcwgEHgOL5sH+GlAyBpPaCge14sVIJZRp.QbpMlWxrQmlDEKIUREeZerjR93LWX0Tcmo8WH50pWZ6ZZUJf0CwmBo7vhgBEQGRKiRMgTqp6CNLgS7UUQ21dZfaBLbhmBLXKCrObph0OdNRl3BnV00g+NV0vHDgc2VarFk1sT05QIWo5kwE+JoTRRjVIJwDH2WARaSm.pfWxxKFvM8439894WWrgSTBAvYTXXywUr7xygxOMrtEF6KnLAQUs9t3pdLOIh9mhYH5MQhIJRGKFq41ABMJZAUB3hyl3qez6oVhYhiqNgroikEgwyh2Nv0l5KRBxKpTIEQEE.NY9hLCx8GDRfgzK2qeHCJsxEq8vvCL7oolwAMqmV7WEndNVVeN6VNUo4jzKKL8p.AKRJVsgkVGBjFJ5MqAE1ijMJV15uUj0IJkahkxE1HZMGN1dL2WiCuXhQh6wbnTOa71UwgFkhMV2CSFw5SpqTO2Sn6gRarNj7zmDN024NvR3u8jvYCZLJpmCCaD1ygh8c8o7A9tjeIb6CLzD1+LZOivY5zGGUfG9MlA8bq6wo5QwHPujy1U61o1GFJ4643fd6T5NJNX1Jl2cPuin9EfR3NPPT7.giSN4YTu9hcFUqvHaoA54V0kw06SiZO+CYqDkZ.ms8VQHDFJWbx1OO5jssbXPphBCLxWLgn0UDKhnaJ7wu4e9edlxE1HaLgQB+MKir8.N2ycBiDJZ8eOLxbQx0BMxmEogAVJPXiOWVRJ3.KXpj4Ap2ayhS96X8cu+NG9nFUdQkGVVzF9u1qhc8nxhQbgm9Ml0zC2QaJ931QZB0QNxaaugByszYDN0B52d1kyPar.F5KizgZ+RF8j9d9bgo9poDuHt6E1XKha+KmHjsArKyDFKQbJ7UnG3Mpad+h6owqup6gNG9.lygNd5+vQOz8Q+bsQ01j8S6pMT23dO3EqVgaa7vVvSqo24m18.416OpVKQ.xCGAJMReyWz44qV7+A3Ny.FAbmLd7d5+9zVQ4fpUvIAtObT0GnhTepOmgE9xTgdLyhFd45rpUnAe.1eEVSi24VIyeXgKPMLYoYr0nwM90Wr0I3UFR58uuUWwsFRjTcqna+AEiUEuREEIHbiEt7VBDHmHAAv9K.DhNyA9pCFilrpwuPGkYyIyoT4PYZHAPaQuPbxMT0cuKrK47Xk4TpUBDGKyJ7KKqb6nWI1cidkXoQNma06YPMJtmAUa8toPU8DpYI0Jv88Ii7F3iGq7XZZbz4VJenrmQBKiVDrjFCcS0VT9rAzBtefTF02ICquaQbbvw1TxnlQ3nig0s.X4.mlGNSW+IvU1Kz1KR35oxQ0Ctf3JMl6qhgXoA1LORalybco0LOh5LgKUHYBtyUl6pDiQ0L1PyX7ol4ajIpkTwhhggUA7APpG9Zjfh9pcYoQbmCbjorOJWY5iGMW3HlyyrvRiz9igvMvqGk3w6RiAcJ4kWfM9kxJ7jcyuKcLmz8XbIlL3D7D.SBWYPZ9xKvwGFJ+pxSfz+9mOOHkFq8mhQmDuMMHOS8LwkTmvCKjLQ.2+PNfiMKOrsb.2MUgZo8cLGQVedg6yX1mYM92Mbdyd5UthAxFyK7YANc1PY9OAR+qect9J4h6esZI62OHfi4gj.goma.zBbFLo7PmKDnROsKBeX.DuKysCAeQNS.waNKG3sTSdoGJiKINJ9gwv40WQ1sgsNpS7GHJ60+zm9TXTFm1KQZ7ALSjtgrXrtxzlvzww6j32rS.dLhRPtQhfEJo3VpIukJ4TBlbJw3UWb56fo1m3oIQA+YUitr.B7OrJBGRXAwD6vnTEko+LQ2FXV6ANl7I+pU34Ji5fAmTR9SEgeNH2.Fej7kIt.eJq0l6mxZQg3RpMXbqtoiwqjBFgi0++CLF8A.+LUs1sgchS.30T240W1u124L8geOpN6ax8YXxP8A8ZAwmVTX1cgfq.L3+J30ECauVbdRKpqsnADF+onNWGamIpy0i6TomITt+GsBu.G9IFugPBfIWwWWMq59Xax3KVpptVw0T5wrY+nkEt7+dn3b55rwkPm6cIz49WBcdvkPmMuD57WtD57v4pC9glKMf60KLc.DzPSbe1LYzRpGq7eg.LocO
-
@ulrik yeah, unfortunately it's not easy to enable mouse hover on disabled components - it's deeply embedded into JUCE and hacking around this will definitely cause issues on another end, so I guess you'll have to do some hacking like you described.
-
@Christoph-Hart Yeah, this works ok
-
@ulrik Thank you once again for taking the time to write a solution here. You've inspired another approach - assuming our UI widgets, hierarchically, belong to panels, I think we could take your approach one step further, and automate the process to include more complex UIs (e.g., with tabbed panels):
-
At INIT, look through all the components, and see which have tooltips.
-
Read those components' starting points and dimensions — and create invisible, disabled, transparent panels (with standard or child panels, since it's at INIT), on top of the widgets with tooltips. (These panels have the tooltips for when a widget is disabled.)
-
When enabling or disabling a widget, instead of calling set or get directly, call a user-defined "enable" function.
-
In this function, when you enable or disable a widget, the transparent tooltip is disabled or enabled.
This seems doable in maybe 10 lines of code. The only question I can think of is ensuring that the tooltip panels are on top of the widgets, but other than that, seems sound?
-
-
@clevername27 can you make a snippet and show what you mean?
-
@ulrik Snippet below. Comments inside.
Would probably better implemented with a component property broadcaster, so when you enable/disable a component, the intended functionality is automatic - without making any changes to your existing code. But I didn't see how to set this up without creating a separate broadcaster for every component (with a tooltip). @Christoph-Hart?
HiseSnippet 2346.3ocuY0saajaEdFGOAqTxtMKZJJZ6MrpE6JgpHKI6swoFaqksj2JzXagH07CJVjRMCkEWOZnvLT1VH0.8gnn222g9.zGkE8In21qROGx4WYIaIsY6fDCQxyOemCO7vCI63KrYAABeCyb8lNlYX9PqtS8jCObHk6YztogokUspUMNX5XZP.ywvz7deENjYtMMTe+me2ATWpmMKoKCiWJ31rmyGwkI81Y++.208HpCqGeTJp2Y+11BuCEthI.LtmUUiwT6yomwNghjsgkg48a4vkB+tRpjEXXt4ABmocGJtzSS+K4A79tLrQMitffzcejv0AQL1qwgC4tNchL2.CPJcRL96oM9GacL2gG2ehS3QpAHIbj1eXtQV3cuLvqVZ3UME7lCjLSAoM0P5Ss5Z6yGKSFAwyCrZ6IY9CnfaOMTzzZrg6OzZqk7izrU2CeQ6N8Ze5IjsV9OR9s1B9G4PgG6J4DpKQJDtR9XRvz.IaTEza0m12cJoOSBfkvGM1kMhA.2gbIWNjz2WPcro.09Ajh7JrJkQIRkRp8vdhCEiFCB2Cs8wLeImETh7u+q+MxXeVvjQnnKS7DD6gTuyXAjKESbcHdLP7RAnTxHHVC+I0aJvi3aX1RT9xg7fPPRtjFPnNNJVpDZQs8zjDiWpjK7JSlJlfzBCxHN7.P+J1TFc.pGb.wELeW5z.hK+blhEMrFH7ww49nFXdZlsESvowwTeYPERKvpIRXsghMTXApoyxD9.UWCoWvBQKZRdrKA+nyYLYPYjbOTzbIw1mgAhXWvrPia39UlSHr5qbPJACK+HPLa7znDlVIiodL2xf5bHimn7d8EvLGBtHi.G6ltCtWFhrilKKqm5ojO+u74n3bXtXZBlen2eIC9ZeR6dqVzpJVU4YT.yl5cAMnRdH7UBvpxH54ri7gFwKrJVuZ0xD3Ok1KedHCUfLx5vDSstBXK.cjeIovacfdKrW9ybgHdWB00smlxS0QCcPuX.P46tNlH4bnngZt8KICntALPqIxKds.JkHLCy7MROTwBEJsWt7KuWrWqt8HMazqwp6J+JlT4G8YCX9LH8efJDu+DoDbUjKYv7rqKYR.SOgGEXTIzUdA0OpuCT7TKqgEaUEKjkLvDWjHpubhnNJBzFZxFv8hWKCBiARUaAogYz3ZtWnNxRFpir8TI.I2S5KbODlQ6CaxUT3ERSDQgD.Ly8bQvMXhmsZ85hHsXpkVWPcmvJQdW974fTFEialKetVpEhuBlJBCMCJl0uBoP7Ap26tIsdBofful.AtLTIKmVTw1KoZhoE0S9q2aEBsO7EsZzqEo2om97ds6P5z3jVOu6JFlO6TfN8gF2N5c66B66CkpPJF5lw0.IyHm.6Ew8NKz9vbhYVJWJzqkCz1Sl8izCiFgowvcTzohAA.fvYZXRdmJ.2tBaZ7.ZLlJIhRAZRBcupbMXNLfnE.ULztXAtSgRje0by5gxMQv7fr46VFAWAVfIg5qhm0yHeLOVNLHNWwh2pnBYFjmKy6LHQyukTsD4y9LRwe9rnpD5ugUMABWVkw9bbQaySKnhuBMjXU0t4xXCyiSHtvW956h6qtEleycw7TLMu1+mKQHP4.o2LIUdJnjAUWEyMaDPYBxepuYLi6X72TJJNH2LZuhCURqH74mw8nt+dF+rgx6xrfZYjCC8KyJtfDBJuDp5CJtFpn51.VHEe2PlRR8OSePnBkqdU0vuaQwPgSiVSFpujbfkAtHUjD7AkvhEpq96c4O0zFmFLzwhaXsFqzmKlmUCkSCOs5xk61lFtPejsBk0azcajFVg6Ljh+eAkA9mlcQ3WCNrYDMBwqW487h1r6zW15EOuwa9vro2b1lVz+aJGUYe39dPWy3NhIXOb7atAjJCKx1RrUS9kxW1t4WiXfr.PrZhHNBHqcfQoos7UQpwIvTlclbCuBGPEXtRxKJuSh.iWAkjsIUAZqEXq9c.WJduFcb4udMBj60508zQwqyMSz6TxAsHMO8jV+ln6pPe9Op5T13gGHiDd3U2PtbHGN7cr2SczlQB7zK7.UEX5y.eoOWc9QnS0wiAIfGa1dRfTLRc2Bgk5oJVqB4.PgmqDVlSUqOQDzKbHX8IfYRMdfZ7GiEPk9ry.7TmTdlyXqDUkUvqdbi1q3M7jOaA4ytBOp77rk3uHplywgdId.khQDr3xqKhrm5jPmHjrS8JVJ+6TAVjYGZvf4NV3Il.HL2gwqkz+1Xrn2jQ8wPA8AqhHzvbyrW.n0hu.vz2Oost7rTDJ7ZCgimNl4snaszHrlN3W+w1MgU73sFF1Wx0jA80jcA2louCwbVMYAmKEiMLue7lh.pkpQ+3naXDCYM3NFleh0k9zwfrzccEXQl+22+92OE+w+.9gQJo7QZo7IgRQO4pDyirxFXfBJ5Re+k6OMtw+5U6GRng4O0Re9aRs3v+nwBnWvZ60wmAANZGnJCUhX5uuNuS5qVNMRu+hr2GYw7rcEAS7YwVbjHdbJfBMBUok4eGZFoNKym.sL2Hktxsrdk5Kxq.Mh8J+XqVWYykPEQjna5.KKxXl5blikrPmlk40YrfGanBthkzCWjy5GMC9U28kNFIOHhoQ+HTOl4hzgYtnhaAa79QuTPRAoyu25o6NoVzz8d2dgXG4OKJ7p9MRmZrrA0YSisnouukse1vSxMCOe19nAYX9SrzI81poVzjFttpi+Omouzn7AxvWsPixibETLFoGGx0fX8GXktqEt96a+yIg0+yLAE+hjDN8BcH8RseuQxD5Cs1o9t018o6ryt6lYN8AV69z56T6Kpucsrypnwjd97gVauy1Oa65Oq9Se17rx6LRr17hDe6+WiDuYbVs4DmcyG44QVGKbl3RkYeyI7g1BG.1GJyC8f2RMTcrbZ5Gh6C1CQsrP7Ss5vk1CmOF2XNXDyR98.FCe9tO1p0fALaYB.2z5nW+8ya0Y7BwDbk0wToOGi4NYxntP3fMCztGVZLF9sAt.R2tJ1F8.cYdNpFvFouObvZXayvAqEMnwHpsu3s15pOvGH7iT8.XxS81n4rNFaSpYnpHAer1pUpZLh6veqsMZ9OAJhX97TeM3Y60fmcVCd9h0fme8ZvySWCd18V4Ael3FSfCCnWN.czokpLMSyvBawnPi+GfPyB0N
-
@ulrik what about this solution?
HiseSnippet 1911.3ocsX8laajaEeFmLoQZ6ltKvVTz9IlAEARHJN1NoaCZZ1UwxxABarsZj1sMHXaJ0PJIBOhivLTIVYQ.B5gXOA8HzCPN.8HTTzdC5Wa+h66MjyLbjkcTT5JHXKR9dO9i+d+YdC6FGEvSRhhcbqze9Tti6O1q2boZbqwTgzoydNt+LOlHgNHjyHAQSlRTQQgJwTmcmOkljvYNttW5QnvtUtrS5m+8WtKMjJC3ES437MQh.9iESDphY617qDgg6SY79hIVRe2lcBhjshBilA.6Rda4LkFbLcD+PJJ1FdNtWoMSnhh6onJdhi6k2MhMu23nWJ0x+MhDA.Ybv1N8.Comd+nPFhXbVmViEgrtYDPhCXktEzwkzzwm4cffIxmufV9jzEHEZXyGtaTFdWpD711FdaYAuk.IWKHcYMj9TudAwhophUP77QdcjJd7PJP61PQKqyF+mq50JBjPp1bB8X99wvfbMp84asUCB7m52uZ0ae6JOhqHzvvTGdjDzIoJ3PRTjGFF1JeNxCHYlbDWUZoZ99FSEyGIRfsgPkDZbLcNYXTLQMlS1MNhxBn3hIUAwHJ0zcagV8YeKnKp79fnkwA4kB0XzVBFXDphHiTDtjYVv+4fQ7a.BvHioIDZV3JZsVwbvcjpr7EZO.4Fjqyk5n6oTIODkaZHPILRjDTdJI5EbMdyAQC8dgyk.AjYaAA1OAfvozXPHxMI0xRbpWUHCERNY3LYfR.FNHEJ80J1UFlTqd0uqZEjZpE.vqLQWuZEXwJgQAzP7f+.R.x307ELjlqTA9hmuw7fiKXEJAIC8whHRPqhPN0I.JHFRpIXalLaPhJVHGgCB4xQvI6Vj61fjOrN45OvPrjabirs1bn8qmIEXRDjFTNH.PYa4H3Tuo9vZ4tqkJXED9+FhODGOkGqlSfBOA7X+F5ECRS+AAt01lYnwiRfwOyO2S.dZ+oF0we+BZ3Lt+2hh+5ThAYFjZdnRQCf3FxfBT.9MfP.hI2bnvCB1jlJb+nbGfAgBdBPRv1XhXvcrsI342SUAiAvq2Ucj7lSmkLt1ffRHwJHjkmJT3mv.WMeUNlqfYAY6fg.B1M0Nk6WZMqjRJi0EMZsTUZj44NwuNog42y8qWlmXLfjBwLVIONiOXrEoh4O1HBZ6Fflj91nUGDlLNZVHiL.VXLUNhyP6QdGeJHWzpHGj4f0FE8WuGVa1TFxkEdL8D6aRDwhTZ+0lIHe7RASM1OmpzCqm6T0BMlKFMVUHkY7hhUrmW2HX1LKJYVtTiyjbcSeqpHPvExIfOBB37sl2xXcgmOodRzLEj3UKqbSsQ0+Nc9vqqBeestxb6S3AyvPQfTkBU0kTSRKXeLIonzEVkII0yjefJ7QX7aLWMKVlVKDJzBSCvMMy7LkAK6LpIjL9IcjXrUC6xsYVug1LokJMax0Sm49omIyyLN5Ij9s60uygOhz8qeR2i50lz9vGt6iae685zC+O4NjVGcP2iNr8g86U4VK+yYvZjbOMgi4BIXNVbTXMKTVfMqmJlm3Ty+qjC1FJWtXrgVs6edZsqRtFZAtuKRKjsVth1mQsALmzVvygG.cgUao7.XSKh5vHE+Ho9QZUecUxhKMb3RWyXqPnpxxVF6QL9hTrlb1jA7XaOAJHz3T4tw7N+twraVLPSPVBFI6.IJGMkKOuVHcLrJz4lmAUfnpz91tlousdgBFO1Q.smcEOLnvIEul1e+mu5y9Geoypp6Nkzs4+5U+0yW2cmoTQRitXXUIc0eVUc2Y8z8Zd1wNKwFecm8nJJ12qgHKdzKL2d7W.uDgtK3Jd6wSNFZPCdkk73WG2ez6hqOoX+dZy4ECNrYZw9hI9iM000KloSyr28w8mfFirc9KC4r5PXGKHzL5CEB6rJP3rddKH7mrfvaGrHDd5EAgqkZr0AAmKIrNHX4bvGoLu.mFA6GFQgGJNpu.xzQb7SWxBkBO9BaeyubQXoNCr9hllX19lid1iRwdvbFLJ68Yqbk6cu6cJpgPwmTL6omd5cJO6N3zYoFJ9IpRB+2LYc4m3qrp4cEGx2Lz5PBNhxGx27rEOju420zdGqn2wON6MRSOoZmL9DHam7qr1n2b761I+zBmrwXkYq2912d5RXq1s2+zE4kqddnrZZIArIZDodtLPu43O9svOdexE+EkKGX0yli4ou3qhu5XZmBL8eswjkwd+g2NKCdqHlv77BL8myvz2eVd5BSW+4kJX7gQSXh+Rnou+Boo2M59PXILLs.R+EWCj96qBKYEu+ooF57XmydgPeh2AQrYgTU46mBuTNyBPaRktTH7hejIB0b6Ks6+aWZ0pBQ3bJf2Zd4XbikfQnufeHvn4p99Xu1CGxCTE.7xd6+G9g4d8bzuh1nCnpXAFsb3rI8fZXAbX2kPDE1lp6FXcL83svwHCziKYoCfm.bpYwswwtlE2NaQmIzf3nmGnaKCuLwqlNCfIY58nVw6.bLIuQPOus1bKmIBl34AA3w+VPOtKWmcVCctyZnycWCc9UqgNe9ZnyudMz4dWnN3UJ+vYpnI5zAXhtsSaH10ssUIf+G.nbFXl
However the ScriptSlider "leaks" tooltip when disabled, if you disable the Knb1 and hover over the value numbers, the Knbs tooltip will be shownEDITED: Changed the snippet to a better version
-
@ulrik
btw, when trying to upload an image I get this message:
"Imgur is temporarily over capacity. Please try again later" -
@ulrik said in Tooltips for Disabled Components? (To Tell Users WHY a Widget Isn't Available):
@ulrik
btw, when trying to upload an image I get this message:
"Imgur is temporarily over capacity. Please try again later"I remember reading that today Imugur is having a purge of all the porn on its servers, so that's probably affecting your dirty HISE pictures :)
-
@d-healey said in Tooltips for Disabled Components? (To Tell Users WHY a Widget Isn't Available):
I remember reading that today Imugur is having a purge of all the porn on its servers, so that's probably affecting your dirty HISE pictures :)