@kl3m3n .
Hi Kl3m3m,
I will apologize for the start if this post is incorrect in some way. You have been dealing with GUI-O for a long time and are exceedingly more familiar with the inner workings then I am.
I would like to tackle the issue of widget location/positioning in Android Devices having different pixel sizes using my initial gut reaction and instinct.
Let's assume that we know the pixel sizes of 2 devices and are faced with the problem of relocating widgets from one device to the other while simultaneously trying to keep a similar appearance.
More likely than not, I would use the approach depicted in the diagram below. That is, first dividing both screens into quadrants, then moving widgets one quadrant at a time.
This approach (on the surface) appears to be mathematically correct - although I cannot test it within the GUIO environment to prove its accuracy.
However, the existing "@guis" command does not appear to have facilities to set the OLD device pixel count, only the original device ASR can be specified. For this scenario, the mathematics need to be changed somewhat. Specifically, since the original device DPW/DPH values are not known, they need to be estimated using the new, current device pixel count. Then an estimate - for example - can be made for the original device DPW/DPH using the new device DPH and the original device ASR. From these values, the new locations on the new device can be calculated.
Again, I cannot test this approach within the GUIO environment, but appears to be mathematically correct.
[Footnote: the original device pixel count estimating procedure could also be based on the new device DPW instead of DPH. The calculations for the movement within each quadrant would be similar.]
Lastly, a thought for your consideration. It may be useful to provide the programmers writing code for GUIO with the ability to specify either the base/original device ASR, OR, the original device DPWO:xxx and DPHO:yyy. GUIO could then perform the more-simplistic calculations while using the known original layout.
Enniom