Aligned Text with the LAF Arc Knob
-
This is a little LAF slider. I couldn't find a way to center the arc knob below the Text Label.
HiseSnippet 1556.3ocsWssaaaCFVJMps1qcXEn6lcEguxo0w0xwYKCYE0NNwcA4jWbV1.BJBnkns4hDoFEURbO.rK2avtduF6psmg8hzmf08ScvRxwMM0.MnP07+D+9OQ9ytBtEw2mKzzKbzXOhl98L5MlIG0dDlxz1dSM8GZzpFZYT6.eI2E0ygZSDZaL1C66Sr0z0u0yURpWXQsv+d6y1.6fYVjTRZZGyoVjcotTYJ0tM2g53zAaSNh5lQ5FM21hyZyc3A.ptkQMMOr0Y3gj8wJwVvPS+1aYSkbQOIVR7AY1faOt2H9ErH4Ol5S66PTKL05AFJhrV6QTG6tIdrull9hcS8+aE4+OzXOpMcB8z3vWDx.kpQ1Xf9BWGjL+HfjdFHsXDjdfQOKA0SlxQgmOyXaljHFfgPcVnDIq1B+4cLZyAIXxpt3yHcDvhIZT1b0ZUP0qUao0KVrHDu8knywBjCd.5onsXCoLRUKAA7lm6v6ichr5tb9YsX1cHDmxJMAwqJHCo9fY6DvrjTNqbIaA9hC4RrXbT0RoJnAILGVAw6+KKU7UEKhPzAnxvppRxkRzSeJpTKWd.SVZIfGB8pvugeTPaG.XINTDx5hkiTvHQBOyOnHBLaHAjRsqt3Kg55veQYqmey7AzKOXv.eB.LT8pqlZBrv5nQTqyXPp.3UqZs0xw7mn1xQ.Cypp1l5v2GkSmHgg8J7+8LqZ4PvhvvYwBJaPX1S14kyBjGGasrzdTnCbN1IfrOW3hcnujXOky.bASUpTJLgDdBLq+sqWLE9wgFLD7Rk9hYRU.oJakARIorG9jUdQx9WDU3IOAsKtOwAcDjii77gUAfG0eGl8oRhazRy3LUjHcfLY4RGb43gDFTBYVeo0QIrUkXsbnCYDakgmTEUAcBTWC+CeR8W.5TC9TxBpGDD6RJqmFYR+LMf5OLZQLZfTD11tkvp7I4x8OAUuBZlThhsONGy2KC.gKmKkVQUusTbVIWhzCplaAIAHLCfZHQtgJG3WNIcdEk9.dVTbLrGwyrxDyWIs9Heoah8C+rym7nR1fxxgMZPrYR2ATMjzDMq.zNyN9j1489KCqe0vyN2fnCJN7jBojy2FwOmHPu90gcQVNf7D6rmwMMTTUxIIpByKTTp8lopzgtQTWNUcKPrYEb0MVkmDUgFnI1LLwkc0KlDXd+3MVfAvc6Gph9D6CIVR3XWGR4blFRoYPOjcajeyll+pYXeUETDpuBT0Dci1aPpOg+rXxcOHNaetjb.qr55mBEgfyzrFLXl7T2oH3NNDwLYqleQbcJVlE31mHpfBOmdhfvE74mZ312roFrhthKifb11Lp7.OR75NbGa0z.pee0YLzhuiTMsQLBAQkgyZ74wyZDOmG0VQpy16dj4osCTMiZg9vjw0X+SSseb6MwRbh0.CCalGQHoJeReSx4vveQSxTvXSh+YRtGLGWatqGmofgdwn899Iy4fYDmvsdQiMdt1kYmjbb1EWnR8SH728aNhPGNJyLlzloc0.0aCjdWH8zd8rj6yEfS2CtBM6tDQ8PrMMvOKcsLdvWdSidYbl8al5L+1OzL1YLz+NXchiXnWFVo5uzzuqQz3QZtbahZ9uNBxuFPXVi0byNAdilvjMSV96+aSX5Lu7N0aelevfATPJCCz2+RPeaaGRWtOUU3NQNu+noOTjcrJi2k6E.os6XrAwgeglMY.NvQdbthAXulJxV3u9unH6vjjv8LZTeMyUZrlYiFZSmcdWT1wuqS.LAZWr.F4GNqJpP1KOwnmC7Ugg2sNLI.eZZPg5uGQhmxHZWc7ZXvdtcfCVleZe0yZhYnhIYGwVMFMChUiyFQ+HdBPsq8I.2TH9.itTo0nYiwElAFgNzOEXL9gS22XqACfi5SA3hFc9448URefsGtZQRYC2CKEgUw6G31CphrHvtyfSO7UsNKn5QiVWSsVEA5A2zEt3cvewLMUq0iYZlvTyEaI3mZEc.o5oY2MjBfIVXoWAi8TqQlIGIZX.WJo5knmZYob+kg5sYqS84PmUlCcZLG5r5bnyWOG57MygNqcs5ndfdq.I2Mpc.Hzcqvqlz02hggJqvpPs+GfFDn9O
-
@Fortune Your knob is completely left aligned, this will not work (Amount is wider than the knob). You need to center all path bounds, then you can use
centredTop
as alignment. -
@Christoph-Hart Thanks.
I will try to center all path bounds but I think it is beyond my knowledge :/
-
@Fortune I'm using a bunch of helper functions that mimic the juce::Rectangle methods and allow super easy rectangle layout:
namespace Rect { inline function reduced(area, amount) { return [ area[0] + amount, area[1] + amount, area[2] - 2 * amount, area[3] - 2 * amount]; } inline function copy(area) { return [ area[0], area[1], area[2], area[3]]; } inline function contains(area, point) { return point[0] >= area[0] && point[0] < area[0] + area[2] && point[1] >= area[1] && point[1] < area[1] + area[3]; } inline function withSizeKeepingCentre(area, width, height) { return [ area[0] + (area[2] - width) / 2, area[1] + (area[3] - height) / 2, width, height]; } inline function removeFromLeft(area, amount) { area[0] += amount; area[2] -= amount; return [area[0] - amount, area[1], amount, area[3]]; } inline function removeFromRight(area, amount) { area[2] -= amount; return [area[0] + area[2], area[1], amount, area[3]]; } inline function removeFromTop(area, amount) { area[1] += amount; area[3] -= amount; return [area[0], area[1] - amount, area[2], amount]; } inline function scale(area, scaleFactor) { local newArea = []; newArea.reserve(4); for(a in area) newArea.push(a * scaleFactor); return newArea; } inline function removeFromBottom(area, amount) { area[3] -= amount; return [area[0], area[1] + area[3], area[2], amount]; } inline function translated(area, xDelta, yDelta) { return [area[0] + xDelta, area[1] + yDelta, area[2], area[3]]; } }
Those should get you started.
-
@Christoph-Hart Fantastic! Thank you so much!