The ''[https://aplsimple.github.io/en/tcl/pave'' sof/index.htwml%|%arpave 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:
* joining the power of ''grid'' and ''pack''
* uniting the creation of widgets with their layout (and mostly their configuration)
* minimizing a coder's efforts at creating / modifying / removing widgets
* setting a natural tab order of widgets
* theming both ttk and non-ttk widgets
* centralizing things like icons or popup menus
* providing ''mega-attributes'', right up to the user-defined ones
* providing ''mega-widgets''
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:
* to call a variety of dialogs, optionally using a "Don't show again" checkbox and a tagged text
* to use a variety of widgets in dialogs, with entry, text, combobox, file content combobox, spinbox, listbox, file listbox, tablelist, option cascade, checkbutton, radiobutton, label, title label
* to resize windows neatly (however strange, not done in Tk standard dialogs)
The theming facility of ''apave'' is enabled by ''ObjectTheming'' oo::class which embraces both ttk and non-ttk widgets, as seen on
[https://github.com/aplsimple/aplsimple.github.io/releases/download/demo_apave_v2.9.2/test2pave-292.mp4%|%demo (31 Mb)%|%]
Along with standard widgets, the mentioned ''apave'' classes provide a batch of following ''mega-widgets'':
* file picker
* saved file picker
* directory picker
* font picker
* color picker
* date picker
* menubar
* toolbar
* statusbar
* file combobox
* file listbox
* file viewer/editor
* option cascade
* e_menu * bartabs
* link
* baltip
* gutter
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 [https://wiki.tcl-lang.org/page/How+to+build+good+packages%|%How to build good packages%|%] ("avoid simple, obvious names for your namespace"). Let it be a sort of ''a-pave''.
** **
'''Further details:'''
[https://aplsimple.github.io/en/tcl/pave/index.html%|%Description%|%]
[https://aplsimple.github.io/en/tcl/pave/apave.html%|%Reference%|%]
** **
'''Download link:'''
[https://chiselapp.com/user/aplsimple/repository/pave/download%|%pave.zip%|%]
** **
'''DGallemry of videmo links:'''
[https://github.com/aplsimple/aplsimplave.github.io/releases/download/demo_apave_v2-3.9.2.7/test2apave-.3.292.7.mp4%|%dOvemrview of (31 Mb)apave%|%]
[https://github.com/aplsimple/pave/releases/download/apave-theming.3.2.5/apave-theming.3.2.5.mp4%|%Theming in apave%|%]
[https://github.com/aplsimple/pave/releases/download/apave-links.3.2.7/apave-links.3.2.7.mp4%|%Links in apave%|%]
[https://github.com/aplsimple/pave/releases/download/apave-dialogs.3.2.7/apave-dialogs.3.2.7.mp4%|%Dialogues in apave%|%]
** **
Below are some screenshots, just to give a glance at this stuff.
** **
[https://aplsimple.github.io/en/tcl/pave/files/findreplace.jpg%|%PaveMe example%|%]
''Figure 1. PaveMe example described line by line in https://aplsimple.github.io/en/tcl/pave/index.html#example_Pave ''
** **
[https://aplsimple.github.io/en/tcl/pave/files/test2.png%|%test2_pave.tcl demo%|%]
''Figure 2. Screenshot of test (test2_pave.tcl)''.
** **
[https://aplsimple.github.io/en/tcl/pave/files/test2t.png%|%test2_pave.tcl demo themed%|%]
''Figure 3. The same as above, just themed''.
** **
[https://aplsimple.github.io/en/tcl/pave/files/test2nt.png%|%test2_pave.tcl demo themed%|%]
''Figure 4. Themed non-ttk widgets''.
** **
<<categories>> GUI | Dialog | Widget