Create UI factory
-
Here with script :-)
HiseSnippet 938.3ocsV9taaaCD.mxIrnVstXEnO.D4SN.oNxa8e.EE0I1NEFMI0ntsXeZELTzVDQhTPhpoFEEXuD6MZOP6MX6nnjkbhiapGh7W7wi2c+3Qx633DEimlpRPNM+v7XNx493Iyk5f9ATgDMZ.x4A3SnoZdBwNzgyiooobejiyVuwLfSysQ4e+yqOjFRkLd0PHzmTBF+XQjPWM53duUDFdD0m+AQTsY+jdiXJYeUnJC3YKrGJlxNmNieJ0LsFXjycF5KzpjIZplmhb19Pk+7IApKj14+IQp3rPtQnKZB3H6vGoB8MDaFE0OPD5Otbcmh.uLtJKrkMK7H7IBewhwqxF+RtBRkE0yGNMVGdc+w34sJ7bpg21V7dHdBKQDqqzXX6d3QRXiZJE1BpikctnF+8V39JXFRcmH547iR.gEVz9Ydd6Qdpm2turka4u82e7AmN7XxEBc.4vLsVIIToO4X5Y7vG++4qkKrUmpIeglPFSk7vtjWQJoaFW2WEEqjfP6crp2wvUkMVXtdiJzeIqx495Mxpdm5Y.gLTH4joYRlV.qdkzhiwAIpv1rRq2CBPXFe2Vteqkay82+.eexb3fLgkkpUQjP0LAiDvS3c5zok62yiw5WvcRMCmGm9zvvyfKCsuT7qP8pfVjBtMIcQVd0ntLAqiUal+1D0x81US5Rw2.ZM1NUo4uS1dW2u41z86tjKqZ5zUpqvYg7jUp1T5KYcF1VlEcFOoLETNQnFvxEYtyMqHCylUpMQkbjTneWLuPd8UIQEoUSAoBBgopyKG8fhxQ18aj.bRSbwlOJG+5sDPebz.plV5HvmPbh4IZgY43Lf+EnkgsNWS7.d54ZUb9bK1KgkrMrsJqBZtQjG06hs2NPeE4fc9HDq4l+zC9yEBecfQ3u.g.tXVf1H8GfjSiZ9FeCVResZ4rWu4UB6zKll.dol6VPD5pwnj+7CeE7aOHdcQ3OGrtHb09DP2JkeVHUubKLSe6BEvQtk5UX5GHSE5406q+SzWy6F218lh6CwiEZVvp4swJ30rgdKyawqDZgGNcJmoqfca7Q+9l9jfeBTduJSKjyNgpSDli5mlEMAJKx3.IR3vPp4ncCykVqrmQ1jYlvk94B+K7UnrqQ1oPY2RknHJKQ8Yl8pt4cH2MeDfIY9ywZBuKDjIKtgiwdc7PQvyi9LiYREOFXe017qafM+1FXyS1.ad5FXyy1.ad9FXyKVqMlWldPFzWzdMAFX7v7JsNNCkT3TV9IRz+AnJAIEA
-
@MikeB Let me eat something then I'll do it ;)
-
@MikeB here you go :)
HiseSnippet 1485.3ocsXstaaaCEVJMpnwatXEXO.D9OSYMyUxNocsdEsMNwaoq4Bl65FPQPAsDsEWkIMjnZrQQdM1CwdA16z90dC1NGRYa4DGuX2EAXawCOW93GOjGReRhLfklJSrr230iFvrr+bm1iDpnlQTtv5f8rruqygzTEKgXDs6nAzzTVnks8s9dTf8Fqaoe96msKMlJBXSEYY8FIOf8JdetZpzSd9OxiiaQCYul2uf1a+7CBjhlxXYFfma43YMfF7dZO1QTTs0brru89gbkLoshpXoV1quqLbT6H4YBi9ugmx6DyvF9VsAGYD2RFGhHFkZ0LhGGdx3wcpE3kSlxB2xvBeoyg7P9D4SYiuP2AYpEE4C60VD77KBOu4BOu4AO6BvacC7tmS6fD9.0zdPr8YNGHfIptTXJnHrL5Zs1edamlRPCgpZe56YsRfFSrv8QddaQ1wyayFkKUtzCd.4WXeUbLIKkQhP.ljRRkjyXj.pfPCv3RTQr9DFMkGOhDSwjDonbIXRLUQ9.MgLPD+CZaIOk71SaTrqNJwU0UbmKXkFNuNhQ.fBz6HRelJRFVtDWDyEf3LQfhKEjfDFfhSnBVrq.RZ1hLbKxnMK8wxkHvC3kCgIRx.TAh6Y7vdL0l5thkAzXhQBD1w7DML7RdqgwYluGqXJCmLFvRTbVJvr8eY6iOJ2JRd3wmJQLduHUkmP7A9tfbHzpHT7NdZgmOabLHqZHUQq1omYMBfSugsZUq1ie7N6zPqVQcQHAiV0OIyT.K4Nlkb6YFxebRv6UsKrf7EwwtpHd5rAYyFyCN.SBTCNIR.9DRCLbZApD6ZFdb2LkBBNRIj6SprqRTYKfDvOy56IYFUGjkF4BMWVJep+mg5GPS.6ZJ6OPJfW.xVO+TPCEa3XwnOHnSVvvOl1AxitBB.xhmk.dEp8D78pNw4i+suv3eR5uY7CMWkwuw+Wiw+riO8WILUVhHOOpQoyaTJeMXS85KBMkzmJFkqPJ1djLiHXrvwrgYKCsQYobQOBMWD42xfk4CRXe.ff1rt.zImkvUnZ07H3R5zpUqVtTWYBwk+TuF7ua6F76e+MKOdk7jMVdK+TfkKttuh9mJ.GvQ9E90+gdeMG2aCxkOGGIHpNV.6YA7.rcVbbGnNCAiF7tF9czIqoWdGFo.xIvYfDYravXpbKXeq3LlAeaXl+4gCAjMMYlKBYCOt6TiPJOW2TrfAns1KjmQpb7QUHOA9oUqJnVnhclLhCGdJN46ZRW2xXM5syajyYcvogIgdSRGT+bT2Le75VbnfVWXLdjTwNV3BabVZiRmWhbwt51ct8k6rXVxb6Fq1mrHCcEY86vRFyliUDJ6MacUmqttZwx9AlEJETTJNPvUGOfItpCCXku5BOVPNp.UU5pt2MupqYmLKdHVxUms4ALokFzEO6i002A9epNn1mpCpOeG7yGrGTM.OERNwLcKGP1drO.GuybljMb1ik9dkbfl4xywgSrYBb4wmXAikNt2Im5rFBSn1kfXMBeoF7htVH3wa+64nvTzDkDlKwdsKGi+i4mYiC9Bt9AOwqQGb2dqKrGYAXZc0CJ8N6yDOX22KDOW3kq14Fj33.K3WTftD64ahxebixd9WC1yegrm+Rwd9KG64uxrWMSTdo8MI6U6Zvd0VH6UaoXuZKG6UakYu5ln7W2nrW8qA6UegrW8kh8pubrW8YYuKeSM39hxvL3tQydIR7ly4c.U.m41Z3MxDob0nh2r9S9lkysV20Dt2y4DtJHZ93cs4fWbR9FFu42Sury9c6xBTSA65Ns90+euT9bgh4RU8NjpR3X5xQY8aC2VJfAHQ.IF3oTrWCq.aZ6gsQloMSDpa7OvSdm9Xa67N8G2oUeZPh7cAlR33+DvczR.LIz+gHa3bH1l3OttsiiWUOq97P96BBPp3a.rOeapsB1TeErY6UvlcVAad3JXyiVAa91EZC9eC8hLkruYYBH3j80mex1deAExxzYjV+qq2KyI
-
@ustk: Super Thank you
This is the right approach and helps me a lot to understand.
But I still have a small problem :-)I have now tried a little bit.
In the for loop is the number of panels that will be created.I would like to move each button to a different position.
But when I add a new button, all of them will be moved to the
to the given position.Basically, panels that are already created should remain untouched.
only a new one would have to be added at 0,0 position.is this possible?
-
@MikeB That's doable.
So you need to place them in a non-related fashion regarding the position right?
In this case, you need to pre-define the positions in an arrayor do you need a new button to be inserted at the first position?
I'll work out a solution sometime in the afternoon/evening...
-
The problem is
You make 5 buttons and place them in your FrontInterfaceNow you make a 6.th and click compile
All five already placed buttons jump back to position e.g. 0.0
and you have to place all 6 new again
The creation of a new button must not change the already existing ones - that is the goal.
-
@MikeB That is because they are placed automatically. So yes when you move them manually, the script resets their position at compile.
As explained in the doc, there should be an automatic update of the positions arguments when using a "createXXX" factory name, but as I said earlier to @Christoph-Hart there's a problem with that, or I don't know how to use it...In waiting for a fix, even if not very practical, you'll have to use an array for the positions. So every time you move a panel, you need to update the positions. Every new panel will be created at [0,0], move it, and be sure to add its new position in that array.
HiseSnippet 1672.3ocsXs0aaaCEVJMpnwatnEX+.H7KyA0yU1NocMtEsMW7V1xEi4t1ATjUPKQawUYJCQpFaT3+F8487da+o1C6o8OX6bHkrkyEuDWDgbQj7b467wCIOhsii7XRYTrk8ZuZ7Plk8W5zYrPErS.kKr1eWK665bHUpXwDSWaOdHUJY9V11256vNrWaUK8y+77sogTgGaVWVVuNh6wNfOfql0a6W7i7vvVTe1q3CxI8FuXeuHwNQgQI.dtkiq0Pp26o8YGQQwVwwx9164yUQwcTTESZYu51Q9i6DDcpvH+q4Rd2PF1nlUGvPltaEE5iHF60Zm.dne6r3VZAVo8LV3VFV3qbNj6ym1+L13d5AHyzHOeXuxhfWs7vy8pCO6bvaUC7tuSGuX9P0rQPr8EN6KfIpdTXJHOrLxZsxedGmch.IDppCnum0JFZLUixO10sBYSW20aVrPwBO7gj2v95vPRhjQBP.FKIxHxoLhGUPndneIp.1.BiJ4giIgTLIIRTr.LIJUjOPiICEgeuVWxyHu8jl4GpqRbYCE18LZogyqBXD.n.8NlLfoBh7KVfKB4Bn6DgmhGIHdwL.EsoBVXYAjzTgLpBY75E9XwBD3ArxgvDIYHJ.o7ob+9L055gBi7ngDSOfay3Ipu+4rVSiwL+MSPICmLFxhUblDX1A+PmiOJUKRp6wmRALd+.UosH0.9NW+fqUAX2a5p6bx79wfrp9TEsZ29l0H.NcG0pU85O4IatYSsX4kEgDDspeJJQArT4LVpbeSH+woNue0dvBxWFFVVEvky6j0adQvAXRfZvIQBvmPZfgSyQk3PywiamnTfyQJg7.RosUhRU.R.+cdaOMyn5vDYPYn40kxmY+4n9gzXPuchFLLR.u.jsd9ImDJ1nrtQaPPirfvOj1ExitDB.xhmm.N.kdJ9NnaXZ7uwYh+oo+l3GZtLwuw9Wg3e93S+mXlJIVjlG0rvjlEltFjKIvOmFvhYjwQIDIrdjMK90wNljImaa.bnCh7v0yebzVPJNrNZqFttSxQ9y+fh8XsX0dzhEqgwZatXo13IZop2vcxIMuL4ltOiHYPWbyrdFnK0gpfw7yGUhtsMC9LxFYaRsidCHBURFPEiSYPI1NyBYoKl8T0JkH4h9DZZWjeKAbvvX1Gf4HsZ8f4VxowbEJVcWBtmmrZ0pEKzKJlTl+L2lD9SyfC79Cdv5Ey1yCQ5HbmhlyZONW6oIz62SiqrIPBaDWpjUHJ3nBBWUg.9ZXHbRAgBGKHXmlwMTE4stUbOwXIdO.QjmNcNuZHSzWErtYzboiHnxD5s7SpNJ2zx3yL13zwljGySObAj.jO+d+kz+qDrNfmsocgI3TDR2GKfSqfU.vAYggcgJLHHMhAEF+c0aSIO+YKQBX2.bsWbTXYurEQU.BMLgY360Lq749XrMaaLtvmM53dyTBWrkJqDKU.jVaExyIkN9nRjsf+0pUITJTvtSiS+QmfK6Ka1nphQazZSZllLzEyul550IcQ4SQ8Nowa47gBpctX7nHE6XQY3HyBqUXRAxYGpWuKbrTiExhuvgw57hWjhkMq3xXyLAgBdluhJmKuhp7E74Y1hLmfQh8Eb0wCYhKqNKqz8UwBBSQEHpRWu0cSq2xbFlE2GK1Rmi4BLokFz4q505pafZetFn9mqAZbwF3m2eWnN.r9yThY1gMPe6x9.TXuoZz0b1kIeuJZnl4RywgZ0MNtXVspnuz98NoTm0HXB09SfuFiuTw1xRWEDXwa+oTTXJWB6wOsG6UNuO9elez9oPlevWv0O325XjAOm25LmNlClVWdPoOSeN+Am6dF+UFd4xMtAINNvB9E4nywd0Ld4Ox7xuacCvd0tBrWsExd0tVrWsqG6UaoYu5Fu7q1odo9MA6U+Jvd0WH6U+Zwd0udrW8kl8ZX7xemwd+0MA603JvdMVH603ZwdMtdrWi4Yuy+M52y4vH+D3qhm+5Cv6LIc.3Dv49Nc7awERtZb96T4F4NEtpv89Ns4JufKFuqbA3Emjugwa5MzTzYud8XdpYfcUmV+xM+0wXY9b59GRUwbLc4njAcfuS1iAHQfEDiYNqfm.aZ6hsQloCS3qa7uvS5f0v11oCVKaPqATu3n24YNBGuCn6n6AvjPeUXq4bH1lTK6baGG2ptVC397244gTw2.X+h0o9RnSikPmMVBc1bIz4QKgNOdIz4aWnN3sB9xDUz.yxDni16oqex1dOAExxzYjV+G6dPsDB
-
@MikeB this is a very small snippet only for the actually creation of the panels, the script will read if there already is panels created and it will leave them as they are but will create the extra if specified.
However I didn't know how to make it check properlyMaybe this way to do it is not recommended, maybe @ustk knows?
HiseSnippet 822.3ocsV0sSaCCE1tzfnYqSCo8.XwUsCFJk+1jJnwnsLUsATsxP6NjmiC0hD6nDGFUHdq106YZuAaGmz1z1UPzJMeQU74b9r+NG+4iamHEiGGqhP3Rm2OjivO2paeotWidTgD0tIB+BqSnwZdDIyzQ8CowwbWDFuzGMFvkJhRG+98GQ8oRFO2DBcgRv3eVDHz4V6b3mD99GSc4mKBFK5cNrMSIan7UI.eVxxAERYWSuheJ0DVAKDd4VtBsJpqlp4wPLGob62sm5Gxr3uPDK9tO2LoFpKrPYlQM5I7c6LLWiQHbwN4Y9RYY9qrNQ3JFYOuB7xTGjbDiWCvEljREmfR0dHJcrx20r.O.8viQuhYzaUqtrHQnN2igaOypsDNb7nPYebZkEKpvuvVMTPDR8lAzq4GGASFgnxdNNaP10woZ8x1ksERegjS7RjLsPIIrHNjScnRtebEYRP0x12U1l.COUDohfb.woNQP1m.NgOVe8pYtGDkYH7HUFRfq35FpfPkDlTYsPy5t15hpjCNfjHc4dvl6VMG5XqhY3qXTeRJJXiGtlTW2TBludaPpAI0dNjWSDUqOZIt2N626MY5DY1NUqOJkUxSUZ9YxJUsuytjM.ZZWddyzmgOQJeedzLcaD5QOFPS8867nMH2P8S3iBDN8mTds7SSdwxJOiEnR1VJzmExGLOW.VaFBPzf5K70Wa2jpoFM4.aPbg7HsvPGbS9MvE7LEZIql73q0pPf0iNngu0odKOT+Zp5HAr0qXkdl4ftEgsv1vd027QZuf4.esovu+bheqove6bhe6ov+yzdb+y8WnKhxMwmpmr0hoG5.GffXh6vl6oxXgt+38Xmi9MNyreyLOtehzcUqNBMq2r4agYvWP17+luC5dW1pkmGmoyIaQqi+1h1pdNnxWTIZg7pSn5HgQHbZRPW3ALFGXhzzfwnIJXjTYycFpw6xktoS9CLF3rlYNdfyZCchBnrH0krrVEl2GVI0BvIY5Sikf2ng4jZnz1G.NKmMcPAvyVWxXlRwa.tOaLas.X1dAvryBfY2E.ydK.l2t.Xd2ihw7OF9PhVEjcMALzoUZeTLtkjBprTEI5uvGl5WR
-
@ulrik Oh yes I overlooked the
undefined
check, well done ;) -
With a little adaptation:
HiseSnippet 1559.3ocsXstaaaCEVJMpqwatnEXO.D9OSFMy0WRVWqWQSyEukslDi4ztATTzQKQayEYRAIpDaTjg8Trmj8.zGo8FrcNjR1x4hWraqAZp3gmKe7imi3gpcjziEGKirrW63wgLK6uvoyXgZvNCnbg096ZYeWmCnwJVDwHZ6wgz3Xluks8s9dTf8ZqZo+8OOaaZ.U3wlJxx5URtG6E7gb0Tos25m3AAsn9ri4Cyo8FasumTriLPl.34VNUsBodmP6yNjhpshik8s2ymqjQcTTEK1xd0sk9i6LPdlvn+q3w7tALbPMqNfiLhaIC7QDiRs1Y.Ovuc15N1B7R6orvsLrvW5b.2mOQ9T13d5IHSsHOeXux7fWs7vq5MGd14f2pF3cemNdQ7P0zYPr84N6KfMpdTXKHOrL5Zsxe+YN6HAMDpJComvZEAClXg6ipVccxlUqVtYwBEK7vGR9E1WEDPRhYjAH.ihIwRxYLhGUPndXbIpArgDFMlGLlDPwjDonXAXSLVQNkFQBEA+f1VxSIu9MMyOUWk35lJn6ErRCmiGvH.PA5cLYHSMP5Wr.WDvEf3DgmhKEDuHFfh1TAKvU.IMqSFsNYb4BuqXAB7C7xAvFIIDUf3dF2uOSUVOUfziFPLRfvlwSTe+K4slFmY9alhwLbyHjEo3rXfYG9icN5vTqHogG+UZ.i2efpzSH0.9NmbHzpAn3MqpEd9rwwfrJ9TEsR29lZD.mUG0pU85O9watYSsZ40EgDrZU+rLQArjaFK412rje2jf2uROnf74AAtpA73YCR4lWEb.lDnFbSj.7IjFX3zbTIN0L731IJEDbjRHOfTZaknz5.If+aVeOIynRXR7.WX3hR4S8+LTeHMBraG4vPo.d.Ha89SNMTrQYhQePPmLmke.sKjGcMD.jEOKA7BT6I36EcCRW+abg0+jzey5GFtLqei+uAq+YWe5+DwTIQhz7nlENuYArFbZApnqtnHFVeajUdtitziPiICohwo1FiiGKSHBFyOinLuMQaTRLWzmPSEQ98DH.gQrSAzoMqGrpHmEwUnZ0qRvp83JUpTrPOYDwk+zpMI7uKCNvyO3AkKlUsiH0KIZl0btcD.dSD6VR6gR.wwmkr48HtW1IOkjH7Y8.z3WdJAO4scul+FHP4eYTN+uNA1ymrkCvls3d3hHBWLtkFUp70M03RkgB4yw8Jj2OR.uvFlFdWdPPW3PVBxmvy5Mnt5J03K+5Uo.JHP9KRF35kEg0AlNHgYH90LI+b+Q.9mVIyA5ZzQ8lZDt9S0MFOsDzV6ExyHkN5vRjm.+WqVkPsPE6NgW7G8FLy20TqttwZzam2LMqnKlnMIzkIcQ8SQ8NoqW27KEz5bqwCkJ1QBW3TiBqU37BjKNUudW4boNKfEckSis5DMOCcEIC6xhxXyLEgy7msoBmquoh7873YRyyonTrufqNJjIttVMrRqMvdhRQEnpR2xwcSa4v7ZbKtO1ugNmrJvjVZPmuwOqatCp8g5f5enNnwU6fWt+tvQgXKXoDyz22Bx1kcJzaqogr0b1kEehRFpYtzbbncUSfKl0tFFKcbuSJ0YMZR.+M9VimL38Guktg.Pvs+qTzX5b.k3mJwdkKGq+m8IHdN1E.aGm8.VGgs8azAOxy5BGTjCtVW+hSe71LwCNB5BwyEd35ctAINNPg+7BzkXwZ4Xw6EliECO8iOKV6Fvh0lKKVagXwZKFKVaoYw54Xw22NGK9mC+3yh0uArX84xh0WHVr9hwh0WZVrQ9J5+HeE8Ie7YwF2.VrwbYwFKDK1XwXwFyxhW9Zrvkok9IvEGm8F13mUHcB3DxYtJKdcUQLWMN+mc3Sx0tuov89Ns4JuAWMdW4JvKtI+IFuoeDihN60qGySMErq5z5W+z+EKrL23r+ATUDGSWNLYXG3pjdL.IBrScLyYE7DZy3p3XjY5vD95A+K7KcxZ3X6zIqkMo0PpWj7sdli3wOSxczR.LIzesn0bN.GSpkcttiS0JUsFx84u0yCohuFv9UaS8kvlFKgMarD1r4RXy2rD17nkvluct1fe3rmmnjCMkIff16o6ux1dOAExxzYjV+GXatHlI
But IMO this should be removed after plugin development. I don't really like the idea of not getting the position from either an array or simply declaring components...
-
Great - that's exactly it
So, like from a library, you can add a new panel at any time without changing
the position and functionality of the already placed .Great - you should definitely publish this in the snippets category if you want.
I'm sure it will help others too.Thank you very much! Guys