Copyright © 2008, 2009 Arndt Roger Schneider
Gestalt Items are a collection of composite windows written in Tcl/Tk. These composite windows are called templates inside of this book.
The book itself is organized in two parts: The first part presents the individual templates, their context and usage. The second part contains the manual pages for each Gestalt Items template.
The deployed template mechanism originates from the Runtime Library. The Rtl_gridwin is the only Runtime Library template directly used inside the Gestalt Items. The Rtl_gridwin is embedded inside the Gistbox and Galette templates.
The two dominant Gestalt Items features are the Gstripes template and toolbar management; both occupy roughly 40% of this book, each.
The toolbar is an AQUA® compliant toolbar and its infrastructure. The toolbar consists of two toolbar implementations, an customization dialog and a palette.
Toolbar Parts:
The two toolbars. Goolbar implemented in Tk Canvas and / or TkPath.
And Zoolbar, a toolbar implemented with TkZinc 3.3.6.
The interface of both toolbars resemble the Tk Menu interface, except: Every item is explicitly named –toolbar items are predeterministic . Menu entries–in contrast to toolbar items– feature an implicit naming convention.
# Implicit naming convention # inside of menus: menu .m set mID [.m add command ...] debug stdout "Menu Item $mID," debug stdout "...implicit created by: ».m«."
# Explicit naming convention # inside of toolbars: goolbar .t set tID [.t add command myItem ...] debug stdout "Toolbar Item $tID is »myItem«."
Palette window. The Galette is a Goolbar variation. The Galette arranges toolbar items in multiple lines and features attached scrollbars.
The Galette works somewhat akin to the »-columnbreak« property inside of Tk menus.
Toolbar customization. The Gooleditor –an embedded dialog– is used to customize palettes or toolbars interactively. The Gooleditor is implemented through the Goolbar, but Zoolbars can be customized with it, too.
The Goolbar and associated templates supplant other templates, with similar intent, from the Runtime Library.
Similar Templates from the Runtime Library
The design for all windows follows the AQUA® HCI Guidelines; deviations have technical reasons –for example missing Drag'n'Drop.
Gstripes, the second big piece inside this book, is a single template. Gstripes primary goal is to create and manage white space, Gstripes provides no functionality of its own.
Gstripes uses existing controls and changes their visual representation in respect to the surrounding white space created by Gstripes. The mechanism is called »hijacking« inside this book.
Gstripes mediates interactions between the user and the hijacked control. Gstripes monitors the events sent to the hijacked control or initiates such events. A hijacked control is represented by an avatar inside of Gstripes through which any interaction is channeled.
A hijacked controls gains –through Gstripes– the ability to interact with white space . Such controls can fade into white space or even interactively change their shape...
Gstripes also features: grouping, background frames, interactive contours and focus frames fading into white space.
Gstripes is designed for and used with TkPath, with anti-aliasing for every graphical object on every windowing system, gradients, animations, transformations and transparency.
Tk Controls supported by Gstripes:
Frames, either as part of a contour or a background frame, rectangular, smoothed, rounded, semi-transparent or with a gradient.
Messages and labels, both loose their background.
Buttons and menubuttons, stand alone and in groups.
Menus, only under X Window System! Anti-aliased glyphs as icons and custom indicators are possible for check- and radiobutton menu entries, gradients for selections.
checkbuttons and radiobuttons with custom indicators for stand alone controls. Check- and radiobuttons can be grouped.
Runtime Library Templates supported by Gstripes:
Rtlxsizer
Rtlysizer
Rtl_gridwin
Rtl_combobox
Rtl_mlistbox
Rtl_chooseFont
Rtl_question
Gstripes is also present inside of other Gestalt Items templates.
The white space, created through Gstripes, may contain any graphical object from Tk Canvas and TkPath. The background is thus not restricted to textures. For example: a radial gradient may run through an entire dialog, including the toolbar–Goolbar– on top and the elements inside the dialog.
Gstripes turns a conventional Tk Graphical User Interface into a sophisticated vector graphics. This graphics is convertible into Scalable Vector Graphics and later PDF. It is even possible to print an entire Tk Graphical User Interface, with the printer’s resolution instead of the display resolution –as is common for Tk today– through FOP. This book contains such Scalable Vector Graphicss.
The remainder, of this book, is dedicated to the Gistbox , another listbox template.
The Gistbox is an edit able listbox similar to a combobox. The Gistbox puts its emphasizes on the listbox contents, and not on the selection as a combobox would do.
Gistbox is bundled with a listbox window. The Tk listbox gets used as the default. Gistbox can be combined with any window conforming to the Tk listbox interface.
Listbox Controls:
Rtl_mlistbox
Hugelist
Listbox
The static property -listtype is used to tell Gistbox which listbox type to use. This is the same mechanism used by Rtl_combobox and Rtl_mlistbox respectively.