Create UI factory
-
@ustk said in Create UI factory:
@MikeB Since you can create widgets with script, you can save this part of the code in an external JS file and use it in any project.
Select the code you want, right-click, "Move selection to external file". Hise will create a *.js in the Scripts folder and replace the exported part of the script using the include methodinclude("myScript.js");
Thank you, I always do it that way.
It's about the fact that I have added buttons to a project and I want to load them now.
completely - so button and scripts in a new project - and that is not possible.I can export the script but I have to create every single button in the new project and link it to the script.
And that is cumbersomeOr is there a way here?
-
-
@MikeB said in Create UI factory:
@ustk said in Create UI factory:
@MikeB Can you make the doc example working?
i dont understand?!
Don't bother, it doesn't seem relevant, I was talking about transforming a component script into a factory method...
But if your widget factory method contains something like
local widget = Content.addPanel(name, x, y);
then all widgets will be created with the function calls, so you'll never need to copy/paste components, unless there's something I don't understand in your problem...
It is the same thing if you don't have a factory method, but you use multiple
Content.addPanel(name, x, y);
you just need to copy-paste the code as components will be automatically added.
But if you inserted components manually and just use something like
const var Panel1 = Content.getComponent("Panel1");
then yes you need to insert buttons manually again in other projects.
In this case if you want them to have the same attributes, you have to copy-paste the JSON info from one project to the other (select the components in the first project, hit "J", copy the JSON, open the new project, select and press "J", paste, hit F5)
This is why using the factory method is the way. You don't need to bother copying-pasting components, just the script as components will be created by the factory method again... -
Ok - do you have a codefragment or snippet for this as an example?
-
@MikeB Hmmm... I'd like to make one but it won't give you more than the doc. A video would be better for demonstrating this but I don't know if I can right now
However if you have a minimal snippet I can probably show you a way to manage it across projects
-
@MikeB If you understand how to make the factory method (from scratch or by right click menu transformation) then you know it all :)
just use theinclude
thing across projects as you know -
Thank you - this is very simple - see snippet
A panel with a button and a label.I want to use this now 20 times in my project
HiseSnippet 753.3ocsUssaSCCF1tqdZsPmXR7.TwUaRioTXafDWPomPUrCUjsIthIOG2EqkXGk3rsJDR7RvaDOP7F.+NIsIiUJcQhbU99O94+C1iBULdTjJDgqcxj.NB+Xh8Do1sqKUHQC6gvqSNjFo4gMSE0YR.MJh6fv3UduQ.tVUTx2OeaGpGUx34hPnyTBF+.guPmKcT6OH77FPc3mH7KX8tsGxTxtJOULvmUHVn.J6J5k7inFypPP3U66HzpPaMUyiP3pcTNSrcU2HSs+LQj3BOtAzBYCAJU7.kmigwFonttBOmQSO2QHHJixqBqjVEdJ4PgiXl77pwSRTzL2ih0CbkEQuV+a5YMO5gKPupozaChMKTDny0X31iHCkPiZLEZAEoUpsH7OHcUfAR8N9zq3CBAvLG1beKqsatmk0VuoQ8F0GGKYZgR1TIORo4GK2bq5eods5esdy+T03wyUmIUgJOOd3bUa57gKxwMkw9WvC2t40TuX9LCgRvcqwqtb0XV5IufgJ4PoPeb.OCu3gDTVoyzOxXHXpNoardV2nSrVqjHADjZjTPKTB8KtQfNcXOplNMPPLg7DvC0BywA2ieMrwj1lqQ5witRqBRr0OPIML.uZZZaLcHfJ4dIYcMRx+sP2hvD7oPtlX9oM7yMBGsqA7c.3xEW5pMnOCHbkBwlrDGoayONa2dRN3YsCngPTJDtYLBc+bLk+GPuXF+S9+ulgu0aQY39qIvxpxI1ipu6Fr4ZqLEvH2cVUL6CxHgdRwq0d.q0VK8sNKKc2fLRnYtymuUlCeMMz+y7M6RxFj9iGyY5bxVkL3Sk8FwG.U9nJVKjWdHUGJLi5GE6aCuYv3.SjvvPjYzthYoMEaYvlJiMW5j.9E7korkAiyT1ZpRjOkEpNmktpatFdsDI.mjIuFUCdVDvMmsgSHV6Xg7gWGNmwLkhmCbe997hR3yKKgO6VBe1qD9reI74UkvmWuPeLOL+tXsxOcMADLpexMsXbeIElxRlHQ+VnYaUy
-
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