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
centredTopas 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!
