Name : perl-Acme-TextLayout
| |
Version : 0.01
| Vendor : obs://build_opensuse_org/devel:languages:perl
|
Release : 8.18
| Date : 2023-11-27 14:15:02
|
Group : Development/Libraries/Perl
| Source RPM : perl-Acme-TextLayout-0.01-8.18.src.rpm
|
Size : 0.02 MB
| |
Packager : (none)
| |
Summary : Layout things in a grid, as described textually
|
Description :
For a GUI, controlling layout (especially on resize) can be difficult, especially if your layout is complex. When looking at a GUI, I came to the realization that I could express the layout nicely like this:
AAAAAAAAAAAAAAAA BBBBxxxxxxxxxxxx BBBBxxxxxxxxxxxx DDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDD %%%%%%%GGG
Where each group of contiguous, like characters specifies a screen region.
*Very important*: space is not legal. Nor should you use \"-\", trust me. A space (\" \") will cause you to die, but a \"-\" is accepted, but is used by other modules for other things. BEWARE!
To me, this gives an easy-to-grasp pictorial of the GUI layout, as long as one notes WTF the letters and symbols represent. The only caveat is that the collection of like characters/symbols making the pattern must be adjacent, and must be rectangular. And the overall pattern must be rectangular.
Note that this textual arrangement can be as big as you want. It\'s all relative. Although it might not look like it on the screen in your editor of choice, all spacing is assummed to be the same in X and Y. Thus, the aspect ratio of the above pattern is 16/7 (width/height).
To be useful for a GUI, one must be able to map this goofy space into screen coordinates. That\'s what the *map_range* function is for (see below).
Now, I know what you must be thinking: is this guy nuts? Why not use brand-X fancy GUI layout tool? Well, the fact is that those are nice and easy for the initial layout, but they generally generate code with precise XY coordinates in them, which makes resizing almost impossible.
The idea here is that we use the above textual layout to specify all the relative positions of things, then map this to a real coordinate system, preserving the spatial relativity and size associations.
I wrote this for use in a GUI application, but figured it might have use elsewhere. Hence, this class. If you find a novel use for it, please let me know what it is (email address in this document).
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-A/openSUSE_Tumbleweed/noarch |