Pave, sort of geometry manager

Difference between version 11 and 12 - Previous - Next
The ''apave'' software 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 ''APaveMe'' oo::class'', so that you can enhance it with your own inherited / mixin-ed class.
While ''APaveMe'' oo::class'' allows to layout highly sophisticated windows, you can also employ its more 'earthy' descendants - :

''APaveDialog oo::class'' and ''APaveInput oo::class'' that 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, wincludingth entry, text, (incl. readonlymbobox, and stand-afile conte),nt combobox, (spincbox, l.istbox, file clistbonx, tablenlist), soptinboxn cascade, checkbutton, radiobutton, landbel, title label.
   * to resize windows neatly (however strange, not done in Tk standard dialogs)
AThe theming lfascilit,y aof ''stand-palonve dialog'' allowis enot onabled by ''ObjectoTheming'' oo::clasks "OK/Canwhicel"h oembr "Yaces/N bo"th returtk anid ngon-ttk 1/0 buwidgets, also to set envir onment var
[https://giathub.com/aplsimple/apls to usimple .gin ''sthub.io/rell eascries/download/demo_apave_v2.9.2/tes''t2pave-292.mp4%|%demo (31 Mb)%|%]
TAlong with standard widgets, the mieng facility iofned ''apave'' iclasses providen abled by ''ObjecatTcheming of fo::class'' lowhichng e''mbraces both ttk gand non-ttk widgets, as seen on demo video.'':
Along with standard widgets, the mentioned ''pave'' 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
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/aplsimple_github_io/uv/pave.zip/download%|%pave.zip%|%]


** **
'''Demo video (3.2 Mb) link:'''
[https://chgiselappthub.com/user/aplsimple/repository/aplsimple_.github_.io/uv/treleast2es/download/demo_apave-14_v2.mp4%|%9.2/test2pave-14292.mp4%|%demo (31 Mb)%|%]

** **

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''.

** **