The apave v3.2.7 package provides a sort of geometry manager for Tcl/Tk.
The apave isn't designed to replace the existing Tk geometry managers (place, pack, grid). Rather the pave tries to simplify the window layout by using their best, by means of:
The apave is implemented as APave oo::class, so that you can enhance it with your own inherited / mixin-ed class.
While APave oo::class allows to layout highly sophisticated windows, you can also employ its more 'earthy' descendants:
APaveDialog and APaveInput allow you:
The theming facility of apave is enabled by ObjectTheming oo::class which embraces both ttk and non-ttk widgets.
Along with standard widgets, the mentioned apave classes provide a batch of following mega-widgets:
At last, a stand-alone dialog allows not only to ask "OK/Cancel" or "Yes/No" returning 1/0 but also to set environment variables to use in shell scripts.
The apave originates from the old pave package, to comply with How to build good packages ("avoid simple, obvious names for your namespace"). Let it be a sort of a-pave.
Further details:
Download link:
Gallery of demos:
Below are some screenshots, just to give a glance at this stuff.
Figure 1. PaveMe example described line by line in https://aplsimple.github.io/en/tcl/pave/index.html#example_Pave
Figure 2. Screenshot of test (test2_pave.tcl).
Figure 3. The same as above, just themed.
Figure 4. Themed non-ttk widgets.
Jeff Smith 2021-01- : Below is an online demo using CloudTk. This demo runs "Pave, sort of geometry manager" in an Alpine Linux Docker Container. It is a 28.4MB image which is made up of Alpine Linux + tclkit + Pave-sort-of-geometry-manager.kit + libx11 + libxft + fontconfig + ttf-linux-libertine. It is run under a user account in the Container. The Container is restrictive with permissions for "Other" removed for "execute" and "read" for certain directories.
Jeff Smith Without looking at the code this demo appears to disconnect at times. I think it maybe because when changes occur the Tk app gets "Restarted" and CloudTk disconnects the session if the Tk app disappears.