Unnamed Fossil Project

Artifact [1403df46bc]
Login

Artifact [1403df46bc]

Artifact 1403df46bcd14da72ca7730a44ce649202670cf7e47ed18dfd5d48cce7d65aca:




@@@ DESPERATELY NEED: introspection/debugging features 
    (what elements make up a layout, what resources get set, &c).

@@@ [style configure] -- make sure changes get propagated to ElementImpl's.
    [style configure] -- validate statemaps 

@@@ change TTK_LAYOUT_AROUND to TTK_LAYOUT_BORDER; update WidgetGeometry()
   to use TTK_LAYOUT_BORDER-tagged element to set internal padding.

@@@ Layout engine BUG: TTK_LAYOUT_INSIDE, TTK_LAYOUT_BORDER nodes
	must be the sole children of their parent node, otherwise
	reqsize calculation is wrong.  (probable cause of problem: 
	INSIDE/BORDER flags lack a packing specification).

@@@ TTK_LayoutFindNode, [$sb identify], &c -- need a way to identify
    nodes by name instead of class.

~~ Layout engine:
    + Reimplement; the current design is subtly but fatally flawed.
    + Change ElementSpec draw procedure to take a TTK_Box * instead
      of separate x, y, width, height arguments.

~~ General:
    + Need per-engine cleanup procedures. [done, PT]
    + Rethink resource allocation (AllocateResource,DeallocateResources)
    + [style configure] should schedule a WorldChanged call
    + WorldChanged handler should reload all elements
    + Need: windows-native theme (use native (non-XP-theme) widgets)
    + Need: MacOSX-native theme (ditto).
    + Need to support both "native/default" L&F and highly-customized L&F
      (Ex: http://www.iit.demokritos.gr/~petasis/Tcl/PeculiarButtons.gif)


~~ Buttons, checkbuttons, radiobuttons:
    + rename 'compound' element to 'label', 'label' => 'text'
    + add -width resource to text element; negative -width => minimum.
    + [$checkbutton configure -variable foo] does not set state [fixed]
    + [$label configure -textvariable foo] does not update -text [fixed]
    + alt theme: focus ring should go around text (in check/radio buttons)
      (maybe we can get away with not doing this...)
    + alt theme: buttons: move focus ring back into BorderElement;
      this shouldn't shift in/out on press/release. 

~~ Scrollbars:
    + classic theme: scrollbar arrows don't look quite right.
    + alt theme: scrollbar arrows don't look quite right.
    + scrollbar elements don't activate/prelight on hover. [fixed]

~~ Notebook:
    + add [$nb index current]
    + Generate <<NotebookTabChanged>> on raise.
    + [$nb index $labelName] -- interpret $labelName as pattern.
    + a way to reorder tabs, and insert tabs at places other than the end
    + Ctrl-Tab / Ctrl-Shift-Tab to switch panes.
    + [$nb insert $idx $child options...]; if $child is already in,
    	this moves it?

    + Possibly: [$nb select] instead of [$nb raise]
    + Possibly: a way to pack widgets inside tabs (gtk+), and/or in 
      the area to the right of the tabs (Mozilla).

~~ Windows:

~ Eventually:
    + Make 'alt' theme the default (or something even simpler), 
      move Motif L&F to "classic" theme.

~ Suggested changes to Tk:
    + Need TK_OPTION_IMAGE resource type
    + Named fonts should always have a refcount >= 1,
      instead of freeing and reallocating them when the go
      in and out of use.
    + Expose some of Tk's internals (esp. Windows-specific stuff):
	++ TkWinGetDrawableDC
	++ TkGetOptionSpec
    + Some way to invoke WorldChanged class proc of all widgets.