Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Ttk?V=28
QUERY_STRINGV=28
CONTENT_TYPE
DOCUMENT_URI/revision/Ttk
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.69.58.239
REMOTE_PORT14380
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.23.127.197
HTTP_CF_RAY87f3ac486a8e114f-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.23.127.197
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit Ttk **Introduction**\n\n'''Ttk'''\ is\ the\ \[Tile\]\ extension\ integrated\ into\ \[Tk\]\ as\ approved\ in\ \[TIP\]\ #248\ \[http://tip.tcl.tk/248\].\n\nSee\nhttp://www.tcl.tk/man/tcl8.5/TkCmd/ttk_intro.htm\ as\ well\ as\ other\ Ttk\nwidget\ pages\ that\ can\ be\ found\ at\nhttp://www.tcl.tk/man/tcl8.5/TkCmd/contents.htm\ .\n\nWidget\ pages\ on\ wiki:\n\ \ \ *\ \[ttk::button\]\n\ \ \ *\ \[ttk::checkbutton\]\n\ \ \ *\ \[ttk::combobox\]\n\ \ \ *\ \[ttk::entry\]\n\ \ \ *\ \[ttk::frame\]\n\ \ \ *\ \[ttk::label\]\n\ \ \ *\ \[ttk::labelframe\]\n\ \ \ *\ \[ttk::menubutton\]\n\ \ \ *\ \[ttk::notebook\]\n\ \ \ *\ \[ttk::panedwindow\]\n\ \ \ *\ \[ttk::progressbar\]\n\ \ \ *\ \[ttk::radiobutton\]\n\ \ \ *\ \[ttk::scale\]\n\ \ \ *\ \[ttk::scrollbar\]\n\ \ \ *\ \[ttk::separator\]\n\ \ \ *\ \[ttk::sizegrip\]\n\ \ \ *\ \[ttk::spinbox\]\n\ \ \ *\ \[ttk::treeview\]\n\nThemes\ etc.:\n\ \ \ *\ \[ttk::style\]\n\ \ \ **\ \[ttk_image\]\n\ \ \ *\ \[ttk::theme::alt\]\n\ \ \ *\ \[ttk::theme::clam\]\n\ \ \ *\ \[ttk::theme::classic\]\n\ \ \ *\ \[ttk::theme::default\]\n\ \ \ *\ \[ttk_vsapi\]\n\ \ \ *\ \[ttk::setTheme\]\n\ \ \ *\ \[ttk::themes\]\n\n\n\nThis\ page\ details\ the\ transition\ from\ the\ existing\ \[Tile\]\ extension\ to\ '''Ttk'''\ functionality\ inside\ the\ \[Tk\]\ source\ base.\n\nThere\ is\ no\ special\ '''Ttk'''\ package\ in\ Tk.\ \ It\ is\ simply\ part\ of\ Tk\ 8.5a6+\ and\ will\ not\ be\ made\ a\ separate\ binary\ library.\ \ It\ will\ use\ the\ '''ttk::'''\ namespace\ for\ the\ most\ part,\ sharing\ the\ '''tk::'''\ namespace\ and\ toplevel\ commands\ where\ appropriate.\ \ The\ classic\ \[Tk\]\ widgets\ will\ all\ be\ referenceable\ from\ the\ '''tk::'''\ namespace,\ in\ addition\ to\ remaining\ as\ toplevel\ commands\ (''for\ 8.x\ at\ least'').\n\nSee\ also\ \[http://tktable.sourceforge.net/tile/doc/internals.txt\]\n\n\n\[JE\]\ Also:\ it's\ worth\ considering\ removing\ some\ or\ all\ of\ tk/generic/tkStyle.c\ (TIP#48\ support)\n\n----\n**Questions**\n\n\[LV\]\ 2007\ Nov\ 01\nBottom\ line\ question\ -\ if\ someone\ wants\ (or\ needs)\ to\ use\ a\ ttk\ \[widget\],\nwhat\ do\ they\ need\ to\ do\ to\ begin.\ Would\ someone\ who\ is\ familar\ with\ ttk\nbe\ willing\ to\ write\ a\ step\ by\ step\ example\ of\ moving\ a\ relatively\ simple\napplication\ from\ being\ an\ original\ Tk\ widget\ application\ to\ an\ application\nusing\ Tk\ and\ Ttk?\n\n\n----\n\n\ 0.7.8\ tile\ source\ base\ \ \ \ \ \ \ =>\ Tk\ source\ base\ integration\ (completed\ 2006-10-30)\n\n\ tile:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk\n\ \ aclocal.m4\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ ChangeLog\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ demos/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ library/demos/...\ (''partial'')\n\ \ doc/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ doc/ttk_*\n\ \ generic/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ generic/ttk/...\n\ \ library/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ library/ttk/...\n\ \ license.terms\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ macosx/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ macosx/...\n\ \ Makefile.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ README.txt\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tclconfig/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tests/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tests/ttk/...\n\ \ tools/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ win/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ win/...\n\n\ tile/demos:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/demos/...\n\ \ autocomplete.tcl\ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ demo.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_demo.tcl\n\ \ dirbrowser.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ dlgtest.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ iconlib.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_iconlib.tcl\n\ \ repeater.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_repeater.tcl\n\ \ themes/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ toolbutton.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/demos/themes:\ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/doc:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/doc/...\n\ \ Doc\ files\ translated\ to\ ttk_*\ with\ a\ few\ exceptions:\n\ \ converting.txt\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ Makefile\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ man.macros\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ paned.n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_panedwindow.n\n\ \ tile-intro.n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_intro.n\n\ \ TILE.XML\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tmml.options\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/generic:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/generic/ttk/...\n\ \ altTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkDefaultTheme.c\n\ \ blink.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkBlink.c\n\ \ button.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkButton.c\n\ \ cache.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkCache.c\n\ \ clamTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkClamTheme.c\n\ \ classicTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkClassicTheme.c\n\ \ configure*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ entry.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkEntry.c\n\ \ frame.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkFrame.c\n\ \ gunk.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ image.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkImage.c\n\ \ label.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkLabel.c\n\ \ layout.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkLayout.c\n\ \ Makefile.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ manager.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkManager.c\n\ \ manager.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkManager.h\n\ \ notebook.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkNotebook.c\n\ \ paned.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkPanedwindow.c\n\ \ pkgIndex.tcl.in\ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ progress.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkProgress.c\n\ \ scale.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScale.c\n\ \ scrollbar.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScrollbar.c\n\ \ scroll.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScroll.c\n\ \ separator.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkSeparator.c\n\ \ square.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkSquare.c\n\ \ stepTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tile.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkInit.c\n\ \ tkElements.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkElements.c\n\ \ tkstate.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkState.c\n\ \ tkTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTheme.c\n\ \ tkTheme.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTheme.h\n\ \ tkThemeInt.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkThemeInt.h\n\ \ TODO\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ trace.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTrace.c\n\ \ track.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTrack.c\n\ \ treeview.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTreeview.c\n\ \ ttk.decls\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk.decls\n\ \ ttkDecls.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkDecls.h\n\ \ ttkStubInit.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkStubInit.c\n\ \ ttkStubLib.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkStubLib.c\n\ \ widget.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWidget.c\n\ \ widget.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWidget.h\n\n\ tile/library:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/ttk/...\n\ \ File\ names\ remained\ the\ same\ with\ these\ exceptions:\n\ \ paned.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ panedwindow.tcl\n\ \ stepTheme.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tile.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk.tcl\n\n\ tile/macosx:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/macosx/...\n\ \ aquaTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkMacOSXTheme.c\n\n\ tile/tclconfig:\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\[JE\]\ The\ *.tcl\ files\ in\ tile/tests\ (except\ for\ all.tcl)\ are\ mostly\ small\ interactive\ tests\nthat\ I\ used\ during\ development.\ \ There's\ no\ real\ need\ to\ import\ them\ into\ the\ Tk\ CVS\ repository.\n\n\ tile/tests:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/tests/ttk/...\n\ \ The\ *.tcl\ files\ were\ removed,\ other\ files\ were\ moved\ to\ the\ above\ directory\n\n\ tile/tools:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/tools\n\ \ genStubs.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\ Not\ included\ yet,\ needed\ for\ Ttk\ stubs\ library\n\n\ tile/win:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/win\n\ \ makefile.vc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ monitor.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinMonitor.c\n\ \ nmakehlp.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ rules.vc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ Tile.dsp\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ winTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinTheme.c\n\ \ xpTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinXPTheme.c\n\n----\n\n\[KJN\]\ Is\ it\ intended\ to\ supply\ any\ demos\ with\ Tk\ 8.5?\ \ I'm\ looking\ for\ the\ demos\ in\ 8.5b1,\ and\ I\ can't\ find\ them\ in\ the\ locations\ mentioned\ above:\n\ tile/demos:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/demos/...\n\ \ demo.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_demo.tcl\n\ \ iconlib.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_iconlib.tcl\n\ \ repeater.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_repeater.tcl\n\n\[JH\]\ The\ tile\ demo\ was\ designed\ more\ as\ a\ comparison\ view\ for\ core\ developers\ to\ understand\ theming.\ \ What\ we\ need\ in\ 8.5\ is\ straight\ new\ demos\ that\ update\ the\ regular\ demos\ with\ fully\ themed\ widgets.\ \ This\ is\ something\ that\ we\ really\ need\ to\ work\ on\ for\ 8.5.0\ (and\ ongoing).\n\n----\nhttp://www.tkdocs.com/\ has\ begun\ publishing\ a\ series\ of\ articles\ that\ introduce\ the\ reader\ to\ \[tcl\]\ and\ ttk.\n----\nhttp://code.google.com/p/python-ttk/\ is\ a\ \[Python\]\ package\ for\ ttk\ themed\ widgets.\n----\n<<discussion>>\ 2011-03-04\ Wojciech\ Kocjan\ answered\ on\ clt\ about\ custom\ background\ color.\n\[HaO\]\ Here\ is\ the\ clt\ post\ \[http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/e820331e1cc00c5d/8bca63d5f4b672f1#8bca63d5f4b672f1\]\ to\ not\ loose\ it.\nSomeone\ may\ put\ it\ at\ a\ better\ place\ and\ format\ it.\n======\n>\ 1)\ background\ color\n>\ Why\ do\ some\ themes\ don't\ allow\ to\ change\ the\ background\ color.\ My\n>\ application\ uses\ three\ different\ backgrounds\ depending\ on\ state:\n>\ warning,\ error,\ active.\ Consider\ 'warning'\ when\ the\ entered\ value\ is\n>\ near\ some\ limit,\ error\ if\ its\ out\ of\ limit,\ active\ if\ its\ currently\n>\ processed.\n>\ I\ considers\ this\ flaw\ as\ a\ no-go.\n\nYes\ and\ no.\ I\ agree\ it\ is\ silly\ you\ can't\ just\ specify\ background,\nespecially\ if\ you'd\ use\ \"background\"\ element.\nI\ think\ it's\ OSX's\ theme's\ fault\ since\ you\ can\ do\ that\ on\ any\ platform\nexcept\ for\ OSX.\ I\ remember\ seeing\ some\n\nHowever,\ you\ can\ easily\ work\ around\ this\ -\ I\ needed\ a\ white\ frame/\nlabel/checkbutton\ and\ native\ frame/label/checkbutton.\ So,\ I\ created\nthis:\n\nimage\ create\ photo\ image_osxWhite\ -width\ 16\ -height\ 16\nimage_osxWhite\ put\ \\#ffffff\ -to\ 0\ 0\ 16\ 16\n\nttk::style\ element\ create\ OSXWhiteBackground\ image\ image_osxBlank16\ \\\n\ \ \ \ -border\ \{6\ 6\ 6\ 6\}\ -padding\ \{0\}\ -sticky\ news\n#\ (although\ I\ don't\ think\ -border\ is\ needed,\ not\ sure)\n\nttk::style\ layout\ OSXWhiteFrame\ \{\n\ \ \ \ OSXWhiteWidget.background\n\n\}\n\nttk::style\ layout\ OSXWhiteLabel\ \{\n\ \ \ \ OSXWhiteWidget.background\ -children\ \{\n\ \ \ \ \ \ \ \ OSXWhiteLabel.label\n\ \ \ \ \}\n\n\}\n\nAgain,\ I\ do\ agree\ here\ that\ if\ someone\ sets\ -background,\ it\ should\ be\ndoable.\n\nBut\ I\ found\ ttk\ layouts\ VERY\ useful\ -\ for\ example\ if\ you\ want\ to\ just\ngrab\ the\ highlighted\ frame\ OSX\ gives\ you,\ you\ can\ do:\n\nttk::style\ layout\ OSXHighlightedFrame\ \{\n\ \ \ \ Entry.field\n\n\}\n\nbind\ OSXHighlightedFrame\ <FocusIn>\ \{%W\ state\ focus\}\nbind\ OSXHighlightedFrame\ <FocusOut>\ \{%W\ state\ !focus\}\n\nAnd\ then\ for\ the\ widget:\n\$path\ configure\ -style\ OSXHighlightedFrame\ -padding\ \{4\ 4\}\nbindtags\ \$path\ \[linsert\ \[bindtags\ \$path\]\ 0\ OSXHighlightedFrame\]\n\nI\ create\ an\ empty\ frame\ for\ non-OSX,\ a\ highlighted\ frame\ for\ OSX\ and\nyou\ can\ just\ put\ widgets\ in\ there\ (like\ text\ that\ doesn't\ have\ native\nframes)\ -\ and\ they\ get\ OSX\ native\ frame\ for\ free\ :-)\n\nSo,\ while\ this\ particular\ thing\ is\ missing,\ ttk\ gives\ you\ enough\ tools\nto\ work\ around\ it.\n\nI\ think\ the\ worse\ thing\ is\ lack\ of\ introspection\ -\ if\ you\ want\ to\n\"mimic\"\ ttk::checkbutton's\ default\ layout,\ you\ need\ to\ look\ in\ OSX\nsource\ code\ and\ TTK_BEGIN_LAYOUT\ to\ get\ the\ thing\ done\ right.\nBut,\ again,\ I\ think\ the\ advantages\ overwhelm\ the\ problems\ you\ can\ find\nwith\ ttk\ -\ if\ you\ fight\ such\ things,\ my\ recommendation\ is\ to\ learn\ ttk\nelements,\ layouts\ etc.\n======\n<<discussion>>\n\nThis\ is\ the\ code\ I've\ been\ using\ to\ wrap\ Tk\ widgets\ inside\ a\ Ttk\nborder.\n\n<<discussion>>\ 2011-03-14\ Emiliano\ posted\ this\ code\ on\ clt\ to\ have\ a\ Ttk\ frame\ around\ a\ Tk\ widget\n\[HaO\]\ 2011-03-14\ clt\ thread:\ \[http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/a188a6d7949bfa69/6603526e4d7b0057#6603526e4d7b0057\]\n\nThis\ is\ the\ code\ I've\ been\ using\ to\ wrap\ Tk\ widgets\ inside\ a\ Ttk\nborder.\ \n======\n#\ =================================================================\npackage\ require\ Tcl\ 8.5\npackage\ require\ Tk\n\nnamespace\ eval\ ::ttk\ \{\n\ \ \ \ bind\ Wrapframe\ <FocusIn>\ \ \{%W#border\ state\ \ focus\}\n\ \ \ \ bind\ Wrapframe\ <FocusOut>\ \{%W#border\ state\ !focus\}\n\n\}\n\n#\ wraps\ a\ plain\ Tk\ widget\ inside\ a\ ttk\ frame\nproc\ ::ttk::WrapWidget\ \{class\ path\ args\}\ \{\n\ \ \ \ #\ handle\ the\ args\n\ \ \ \ set\ args\ \[dict\ replace\ \$args\ \\\n\ \ \ \ \ \ \ \ -background\ white\ \\\n\ \ \ \ \ \ \ \ -borderwidth\ 0\ \\\n\ \ \ \ \ \ \ \ -highlightthickness\ 0\]\n\ \ \ \ set\ args\ \[dict\ remove\ \$args\ -bg\ -bd\]\n\n\ \ \ \ #\ real\ widget\n\ \ \ \ set\ rw\ \$path.\$class\n\n\ \ \ \ #\ create\ the\ container\ frame\ and\ the\ widget\n\ \ \ \ frame\ \$path\ -style\ TEntry\ -class\ Wrapframe\n\ \ \ \ ::\$class\ \$rw\ \{*\}\$args\n\ \ \ \ bindtags\ \$rw\ \[list\ \$path\ \$rw\ \[string\ totitle\ \$class\]\ \[winfo\ toplevel\ \$path\]\ all\]\n\n\ \ \ \ #\ rename\ the\ container\ widget\ cmd\ and\ install\n\ \ \ \ #\ a\ proxy\ cmd\ to\ the\ real\ one\n\ \ \ \ rename\ ::\$path\ ::\$\{path\}#border\n\ \ \ \ interp\ alias\ \{\}\ \$path\ \{\}\ ::ttk::WrapProxy\ \$rw\n\n\ \ \ \ pack\ \$rw\ -expand\ 1\ -fill\ both\ -padx\ 2\ -pady\ 2\n\n\ \ \ \ #\ adjust\ the\ select\{fore|back\}ground\ with\ the\ theme\n\ \ \ \ bind\ \$rw\ <<ThemeChanged>>\ \[list\ apply\ \{rw\ \{\n\ \ \ \ \ \ \ \ set\ sb\ \[ttk::style\ configure\ .\ -selectbackground\]\n\ \ \ \ \ \ \ \ set\ sf\ \[ttk::style\ configure\ .\ -selectforeground\]\n\ \ \ \ \ \ \ \ \$rw\ configure\ -selectbackground\ \$sb\n\ \ \ \ \ \ \ \ \$rw\ configure\ -selectforeground\ \$sf\n\ \ \ \ \}\}\ \$rw\]\n\ \ \ \ after\ idle\ \[list\ after\ 0\ \[list\ \\\n\ \ \ \ \ \ \ \ event\ generate\ \$rw\ <<ThemeChanged>>\]\]\n\n\ \ \ \ return\ \$path\n\n\}\n\nproc\ ::ttk::WrapProxy\ \{w\ args\}\ \{\n\ \ \ \ #\ prevent\ the\ border\ window\ to\ take\ focus\n\ \ \ \ if\ \{\[lindex\ \$args\ 0\]\ eq\ \"cget\"\ &&\n\ \ \ \ \ \ \ \ \[lindex\ \$args\ 1\]\ eq\ \"-takefocus\"\}\ \{\n\ \ \ \ \ \ \ \ return\ 0\n\ \ \ \ \}\n\ \ \ \ \$w\ \{*\}\$args\n\n\}\n\ninterp\ alias\ \{\}\ ::ttk::text\ \ \ \ \{\}\ ::ttk::WrapWidget\ text\ninterp\ alias\ \{\}\ ::ttk::listbox\ \{\}\ ::ttk::WrapWidget\ listbox\ninterp\ alias\ \{\}\ ::ttk::canvas\ \ \{\}\ ::ttk::WrapWidget\ canvas\n\n#\ demo\npack\ \[ttk::text\ .t\ -width\ 20\ -height\ 4\]\ -padx\ 6\ -pady\ 6\npack\ \[ttk::entry\ .e\ -width\ 20\]\ -padx\ 6\ -pady\ 6\nafter\ 2000\ \{ttk::setTheme\ clam\}\n#\ =================================================================\ \n======\n<<discussion>>\n\n<<discussion>>\ 2011-03-13\ Pat\ Thoyts\ on\ the\ core\ list\ about\ Ttk\ widget\ creation.\n\[HaO\]\ For\ me,\ this\ was\ very\ valuable\ so\ I\ have\ put\ it\ here.\nFeel\ free\ to\ delete,\ format\ or\ move\ to\ another\ place.\n======\nOne\ of\ the\ original\ intents\ of\ 'tile'\ was\ to\ make\ it\ simpler\ to\ create\nTk\ widgets.\ There's\ quite\ a\ lot\ of\ tedious\ boilerplate\ in\ Tk\ widget\ncreation.\ See\ http://tktable.sourceforge.net/tile/WidgetGuide.html\ for\nsomething\ about\ this.\ However,\ when\ 'tile'\ got\ integrated\ the\ necessary\nfunctions\ were\ not\ exposed\ as\ part\ of\ the\ tk\ stubs\ and\ its\ currently\nsomewhat\ hidden.\n\nRelated\ to\ this\ --\ to\ construct\ new\ UI's\ using\ elements\ you\ need\ a\nreasonably\ general\ purpose\ element\ engine.\ I\ one\ toyed\ with\ using\ GDI+\nso\ I\ could\ specify\ an\ element\ with,\ for\ instance,\ a\ certain\ gradient\ or\nshape.\ Working\ with\ this\ leads\ to\ the\ obvious\ conclusion\ that\ it\ would\nbe\ great\ to\ be\ able\ to\ specify\ the\ look\ of\ an\ element\ using\ something\nlike\ SVG.\ (See\ http://tktable.sourceforge.net/tile/Gdiplus.html\nand\ http://www.patthoyts.tk/gitweb.cgi?p=gdiplus\;a=summary)\n\nThere\ might\ be\ more\ involved\ in\ making\ the\ widget\ functionality\ easy\ to\nhook\ together\ but\ this\ would\ cover\ the\ look\ part\ of\ look\ and\nfeel.\ Events\ mostly\ deal\ with\ 'feel'.\n<<discussion>>\n\n----\n\n!!!!!!\n%|\[Category\ GUI\]|\[Category\ Package\]|\[Category\ Widget\]|%\n!!!!!! regexp2} CALL {my render Ttk **Introduction**\n\n'''Ttk'''\ is\ the\ \[Tile\]\ extension\ integrated\ into\ \[Tk\]\ as\ approved\ in\ \[TIP\]\ #248\ \[http://tip.tcl.tk/248\].\n\nSee\nhttp://www.tcl.tk/man/tcl8.5/TkCmd/ttk_intro.htm\ as\ well\ as\ other\ Ttk\nwidget\ pages\ that\ can\ be\ found\ at\nhttp://www.tcl.tk/man/tcl8.5/TkCmd/contents.htm\ .\n\nWidget\ pages\ on\ wiki:\n\ \ \ *\ \[ttk::button\]\n\ \ \ *\ \[ttk::checkbutton\]\n\ \ \ *\ \[ttk::combobox\]\n\ \ \ *\ \[ttk::entry\]\n\ \ \ *\ \[ttk::frame\]\n\ \ \ *\ \[ttk::label\]\n\ \ \ *\ \[ttk::labelframe\]\n\ \ \ *\ \[ttk::menubutton\]\n\ \ \ *\ \[ttk::notebook\]\n\ \ \ *\ \[ttk::panedwindow\]\n\ \ \ *\ \[ttk::progressbar\]\n\ \ \ *\ \[ttk::radiobutton\]\n\ \ \ *\ \[ttk::scale\]\n\ \ \ *\ \[ttk::scrollbar\]\n\ \ \ *\ \[ttk::separator\]\n\ \ \ *\ \[ttk::sizegrip\]\n\ \ \ *\ \[ttk::spinbox\]\n\ \ \ *\ \[ttk::treeview\]\n\nThemes\ etc.:\n\ \ \ *\ \[ttk::style\]\n\ \ \ **\ \[ttk_image\]\n\ \ \ *\ \[ttk::theme::alt\]\n\ \ \ *\ \[ttk::theme::clam\]\n\ \ \ *\ \[ttk::theme::classic\]\n\ \ \ *\ \[ttk::theme::default\]\n\ \ \ *\ \[ttk_vsapi\]\n\ \ \ *\ \[ttk::setTheme\]\n\ \ \ *\ \[ttk::themes\]\n\n\n\nThis\ page\ details\ the\ transition\ from\ the\ existing\ \[Tile\]\ extension\ to\ '''Ttk'''\ functionality\ inside\ the\ \[Tk\]\ source\ base.\n\nThere\ is\ no\ special\ '''Ttk'''\ package\ in\ Tk.\ \ It\ is\ simply\ part\ of\ Tk\ 8.5a6+\ and\ will\ not\ be\ made\ a\ separate\ binary\ library.\ \ It\ will\ use\ the\ '''ttk::'''\ namespace\ for\ the\ most\ part,\ sharing\ the\ '''tk::'''\ namespace\ and\ toplevel\ commands\ where\ appropriate.\ \ The\ classic\ \[Tk\]\ widgets\ will\ all\ be\ referenceable\ from\ the\ '''tk::'''\ namespace,\ in\ addition\ to\ remaining\ as\ toplevel\ commands\ (''for\ 8.x\ at\ least'').\n\nSee\ also\ \[http://tktable.sourceforge.net/tile/doc/internals.txt\]\n\n\n\[JE\]\ Also:\ it's\ worth\ considering\ removing\ some\ or\ all\ of\ tk/generic/tkStyle.c\ (TIP#48\ support)\n\n----\n**Questions**\n\n\[LV\]\ 2007\ Nov\ 01\nBottom\ line\ question\ -\ if\ someone\ wants\ (or\ needs)\ to\ use\ a\ ttk\ \[widget\],\nwhat\ do\ they\ need\ to\ do\ to\ begin.\ Would\ someone\ who\ is\ familar\ with\ ttk\nbe\ willing\ to\ write\ a\ step\ by\ step\ example\ of\ moving\ a\ relatively\ simple\napplication\ from\ being\ an\ original\ Tk\ widget\ application\ to\ an\ application\nusing\ Tk\ and\ Ttk?\n\n\n----\n\n\ 0.7.8\ tile\ source\ base\ \ \ \ \ \ \ =>\ Tk\ source\ base\ integration\ (completed\ 2006-10-30)\n\n\ tile:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk\n\ \ aclocal.m4\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ ChangeLog\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ demos/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ library/demos/...\ (''partial'')\n\ \ doc/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ doc/ttk_*\n\ \ generic/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ generic/ttk/...\n\ \ library/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ library/ttk/...\n\ \ license.terms\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ macosx/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ macosx/...\n\ \ Makefile.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ README.txt\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tclconfig/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tests/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tests/ttk/...\n\ \ tools/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ win/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ win/...\n\n\ tile/demos:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/demos/...\n\ \ autocomplete.tcl\ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ demo.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_demo.tcl\n\ \ dirbrowser.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ dlgtest.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ iconlib.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_iconlib.tcl\n\ \ repeater.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_repeater.tcl\n\ \ themes/\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ toolbutton.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/demos/themes:\ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/doc:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/doc/...\n\ \ Doc\ files\ translated\ to\ ttk_*\ with\ a\ few\ exceptions:\n\ \ converting.txt\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ Makefile\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ man.macros\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ paned.n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_panedwindow.n\n\ \ tile-intro.n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_intro.n\n\ \ TILE.XML\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tmml.options\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\ tile/generic:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/generic/ttk/...\n\ \ altTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkDefaultTheme.c\n\ \ blink.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkBlink.c\n\ \ button.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkButton.c\n\ \ cache.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkCache.c\n\ \ clamTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkClamTheme.c\n\ \ classicTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkClassicTheme.c\n\ \ configure*\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ configure.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ entry.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkEntry.c\n\ \ frame.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkFrame.c\n\ \ gunk.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ image.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkImage.c\n\ \ label.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkLabel.c\n\ \ layout.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkLayout.c\n\ \ Makefile.in\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ manager.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkManager.c\n\ \ manager.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkManager.h\n\ \ notebook.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkNotebook.c\n\ \ paned.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkPanedwindow.c\n\ \ pkgIndex.tcl.in\ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ progress.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkProgress.c\n\ \ scale.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScale.c\n\ \ scrollbar.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScrollbar.c\n\ \ scroll.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkScroll.c\n\ \ separator.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkSeparator.c\n\ \ square.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkSquare.c\n\ \ stepTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tile.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkInit.c\n\ \ tkElements.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkElements.c\n\ \ tkstate.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkState.c\n\ \ tkTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTheme.c\n\ \ tkTheme.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTheme.h\n\ \ tkThemeInt.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkThemeInt.h\n\ \ TODO\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ trace.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTrace.c\n\ \ track.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTrack.c\n\ \ treeview.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkTreeview.c\n\ \ ttk.decls\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk.decls\n\ \ ttkDecls.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkDecls.h\n\ \ ttkStubInit.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkStubInit.c\n\ \ ttkStubLib.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkStubLib.c\n\ \ widget.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWidget.c\n\ \ widget.h\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWidget.h\n\n\ tile/library:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/ttk/...\n\ \ File\ names\ remained\ the\ same\ with\ these\ exceptions:\n\ \ paned.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ panedwindow.tcl\n\ \ stepTheme.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ tile.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk.tcl\n\n\ tile/macosx:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/macosx/...\n\ \ aquaTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkMacOSXTheme.c\n\n\ tile/tclconfig:\ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\n\[JE\]\ The\ *.tcl\ files\ in\ tile/tests\ (except\ for\ all.tcl)\ are\ mostly\ small\ interactive\ tests\nthat\ I\ used\ during\ development.\ \ There's\ no\ real\ need\ to\ import\ them\ into\ the\ Tk\ CVS\ repository.\n\n\ tile/tests:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/tests/ttk/...\n\ \ The\ *.tcl\ files\ were\ removed,\ other\ files\ were\ moved\ to\ the\ above\ directory\n\n\ tile/tools:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/tools\n\ \ genStubs.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\ Not\ included\ yet,\ needed\ for\ Ttk\ stubs\ library\n\n\ tile/win:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/win\n\ \ makefile.vc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ monitor.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinMonitor.c\n\ \ nmakehlp.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ rules.vc\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ Tile.dsp\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ''n/a''\n\ \ winTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinTheme.c\n\ \ xpTheme.c\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttkWinXPTheme.c\n\n----\n\n\[KJN\]\ Is\ it\ intended\ to\ supply\ any\ demos\ with\ Tk\ 8.5?\ \ I'm\ looking\ for\ the\ demos\ in\ 8.5b1,\ and\ I\ can't\ find\ them\ in\ the\ locations\ mentioned\ above:\n\ tile/demos:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ tk/library/demos/...\n\ \ demo.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_demo.tcl\n\ \ iconlib.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_iconlib.tcl\n\ \ repeater.tcl\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =>\ ttk_repeater.tcl\n\n\[JH\]\ The\ tile\ demo\ was\ designed\ more\ as\ a\ comparison\ view\ for\ core\ developers\ to\ understand\ theming.\ \ What\ we\ need\ in\ 8.5\ is\ straight\ new\ demos\ that\ update\ the\ regular\ demos\ with\ fully\ themed\ widgets.\ \ This\ is\ something\ that\ we\ really\ need\ to\ work\ on\ for\ 8.5.0\ (and\ ongoing).\n\n----\nhttp://www.tkdocs.com/\ has\ begun\ publishing\ a\ series\ of\ articles\ that\ introduce\ the\ reader\ to\ \[tcl\]\ and\ ttk.\n----\nhttp://code.google.com/p/python-ttk/\ is\ a\ \[Python\]\ package\ for\ ttk\ themed\ widgets.\n----\n<<discussion>>\ 2011-03-04\ Wojciech\ Kocjan\ answered\ on\ clt\ about\ custom\ background\ color.\n\[HaO\]\ Here\ is\ the\ clt\ post\ \[http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/e820331e1cc00c5d/8bca63d5f4b672f1#8bca63d5f4b672f1\]\ to\ not\ loose\ it.\nSomeone\ may\ put\ it\ at\ a\ better\ place\ and\ format\ it.\n======\n>\ 1)\ background\ color\n>\ Why\ do\ some\ themes\ don't\ allow\ to\ change\ the\ background\ color.\ My\n>\ application\ uses\ three\ different\ backgrounds\ depending\ on\ state:\n>\ warning,\ error,\ active.\ Consider\ 'warning'\ when\ the\ entered\ value\ is\n>\ near\ some\ limit,\ error\ if\ its\ out\ of\ limit,\ active\ if\ its\ currently\n>\ processed.\n>\ I\ considers\ this\ flaw\ as\ a\ no-go.\n\nYes\ and\ no.\ I\ agree\ it\ is\ silly\ you\ can't\ just\ specify\ background,\nespecially\ if\ you'd\ use\ \"background\"\ element.\nI\ think\ it's\ OSX's\ theme's\ fault\ since\ you\ can\ do\ that\ on\ any\ platform\nexcept\ for\ OSX.\ I\ remember\ seeing\ some\n\nHowever,\ you\ can\ easily\ work\ around\ this\ -\ I\ needed\ a\ white\ frame/\nlabel/checkbutton\ and\ native\ frame/label/checkbutton.\ So,\ I\ created\nthis:\n\nimage\ create\ photo\ image_osxWhite\ -width\ 16\ -height\ 16\nimage_osxWhite\ put\ \\#ffffff\ -to\ 0\ 0\ 16\ 16\n\nttk::style\ element\ create\ OSXWhiteBackground\ image\ image_osxBlank16\ \\\n\ \ \ \ -border\ \{6\ 6\ 6\ 6\}\ -padding\ \{0\}\ -sticky\ news\n#\ (although\ I\ don't\ think\ -border\ is\ needed,\ not\ sure)\n\nttk::style\ layout\ OSXWhiteFrame\ \{\n\ \ \ \ OSXWhiteWidget.background\n\n\}\n\nttk::style\ layout\ OSXWhiteLabel\ \{\n\ \ \ \ OSXWhiteWidget.background\ -children\ \{\n\ \ \ \ \ \ \ \ OSXWhiteLabel.label\n\ \ \ \ \}\n\n\}\n\nAgain,\ I\ do\ agree\ here\ that\ if\ someone\ sets\ -background,\ it\ should\ be\ndoable.\n\nBut\ I\ found\ ttk\ layouts\ VERY\ useful\ -\ for\ example\ if\ you\ want\ to\ just\ngrab\ the\ highlighted\ frame\ OSX\ gives\ you,\ you\ can\ do:\n\nttk::style\ layout\ OSXHighlightedFrame\ \{\n\ \ \ \ Entry.field\n\n\}\n\nbind\ OSXHighlightedFrame\ <FocusIn>\ \{%W\ state\ focus\}\nbind\ OSXHighlightedFrame\ <FocusOut>\ \{%W\ state\ !focus\}\n\nAnd\ then\ for\ the\ widget:\n\$path\ configure\ -style\ OSXHighlightedFrame\ -padding\ \{4\ 4\}\nbindtags\ \$path\ \[linsert\ \[bindtags\ \$path\]\ 0\ OSXHighlightedFrame\]\n\nI\ create\ an\ empty\ frame\ for\ non-OSX,\ a\ highlighted\ frame\ for\ OSX\ and\nyou\ can\ just\ put\ widgets\ in\ there\ (like\ text\ that\ doesn't\ have\ native\nframes)\ -\ and\ they\ get\ OSX\ native\ frame\ for\ free\ :-)\n\nSo,\ while\ this\ particular\ thing\ is\ missing,\ ttk\ gives\ you\ enough\ tools\nto\ work\ around\ it.\n\nI\ think\ the\ worse\ thing\ is\ lack\ of\ introspection\ -\ if\ you\ want\ to\n\"mimic\"\ ttk::checkbutton's\ default\ layout,\ you\ need\ to\ look\ in\ OSX\nsource\ code\ and\ TTK_BEGIN_LAYOUT\ to\ get\ the\ thing\ done\ right.\nBut,\ again,\ I\ think\ the\ advantages\ overwhelm\ the\ problems\ you\ can\ find\nwith\ ttk\ -\ if\ you\ fight\ such\ things,\ my\ recommendation\ is\ to\ learn\ ttk\nelements,\ layouts\ etc.\n======\n<<discussion>>\n\nThis\ is\ the\ code\ I've\ been\ using\ to\ wrap\ Tk\ widgets\ inside\ a\ Ttk\nborder.\n\n<<discussion>>\ 2011-03-14\ Emiliano\ posted\ this\ code\ on\ clt\ to\ have\ a\ Ttk\ frame\ around\ a\ Tk\ widget\n\[HaO\]\ 2011-03-14\ clt\ thread:\ \[http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/a188a6d7949bfa69/6603526e4d7b0057#6603526e4d7b0057\]\n\nThis\ is\ the\ code\ I've\ been\ using\ to\ wrap\ Tk\ widgets\ inside\ a\ Ttk\nborder.\ \n======\n#\ =================================================================\npackage\ require\ Tcl\ 8.5\npackage\ require\ Tk\n\nnamespace\ eval\ ::ttk\ \{\n\ \ \ \ bind\ Wrapframe\ <FocusIn>\ \ \{%W#border\ state\ \ focus\}\n\ \ \ \ bind\ Wrapframe\ <FocusOut>\ \{%W#border\ state\ !focus\}\n\n\}\n\n#\ wraps\ a\ plain\ Tk\ widget\ inside\ a\ ttk\ frame\nproc\ ::ttk::WrapWidget\ \{class\ path\ args\}\ \{\n\ \ \ \ #\ handle\ the\ args\n\ \ \ \ set\ args\ \[dict\ replace\ \$args\ \\\n\ \ \ \ \ \ \ \ -background\ white\ \\\n\ \ \ \ \ \ \ \ -borderwidth\ 0\ \\\n\ \ \ \ \ \ \ \ -highlightthickness\ 0\]\n\ \ \ \ set\ args\ \[dict\ remove\ \$args\ -bg\ -bd\]\n\n\ \ \ \ #\ real\ widget\n\ \ \ \ set\ rw\ \$path.\$class\n\n\ \ \ \ #\ create\ the\ container\ frame\ and\ the\ widget\n\ \ \ \ frame\ \$path\ -style\ TEntry\ -class\ Wrapframe\n\ \ \ \ ::\$class\ \$rw\ \{*\}\$args\n\ \ \ \ bindtags\ \$rw\ \[list\ \$path\ \$rw\ \[string\ totitle\ \$class\]\ \[winfo\ toplevel\ \$path\]\ all\]\n\n\ \ \ \ #\ rename\ the\ container\ widget\ cmd\ and\ install\n\ \ \ \ #\ a\ proxy\ cmd\ to\ the\ real\ one\n\ \ \ \ rename\ ::\$path\ ::\$\{path\}#border\n\ \ \ \ interp\ alias\ \{\}\ \$path\ \{\}\ ::ttk::WrapProxy\ \$rw\n\n\ \ \ \ pack\ \$rw\ -expand\ 1\ -fill\ both\ -padx\ 2\ -pady\ 2\n\n\ \ \ \ #\ adjust\ the\ select\{fore|back\}ground\ with\ the\ theme\n\ \ \ \ bind\ \$rw\ <<ThemeChanged>>\ \[list\ apply\ \{rw\ \{\n\ \ \ \ \ \ \ \ set\ sb\ \[ttk::style\ configure\ .\ -selectbackground\]\n\ \ \ \ \ \ \ \ set\ sf\ \[ttk::style\ configure\ .\ -selectforeground\]\n\ \ \ \ \ \ \ \ \$rw\ configure\ -selectbackground\ \$sb\n\ \ \ \ \ \ \ \ \$rw\ configure\ -selectforeground\ \$sf\n\ \ \ \ \}\}\ \$rw\]\n\ \ \ \ after\ idle\ \[list\ after\ 0\ \[list\ \\\n\ \ \ \ \ \ \ \ event\ generate\ \$rw\ <<ThemeChanged>>\]\]\n\n\ \ \ \ return\ \$path\n\n\}\n\nproc\ ::ttk::WrapProxy\ \{w\ args\}\ \{\n\ \ \ \ #\ prevent\ the\ border\ window\ to\ take\ focus\n\ \ \ \ if\ \{\[lindex\ \$args\ 0\]\ eq\ \"cget\"\ &&\n\ \ \ \ \ \ \ \ \[lindex\ \$args\ 1\]\ eq\ \"-takefocus\"\}\ \{\n\ \ \ \ \ \ \ \ return\ 0\n\ \ \ \ \}\n\ \ \ \ \$w\ \{*\}\$args\n\n\}\n\ninterp\ alias\ \{\}\ ::ttk::text\ \ \ \ \{\}\ ::ttk::WrapWidget\ text\ninterp\ alias\ \{\}\ ::ttk::listbox\ \{\}\ ::ttk::WrapWidget\ listbox\ninterp\ alias\ \{\}\ ::ttk::canvas\ \ \{\}\ ::ttk::WrapWidget\ canvas\n\n#\ demo\npack\ \[ttk::text\ .t\ -width\ 20\ -height\ 4\]\ -padx\ 6\ -pady\ 6\npack\ \[ttk::entry\ .e\ -width\ 20\]\ -padx\ 6\ -pady\ 6\nafter\ 2000\ \{ttk::setTheme\ clam\}\n#\ =================================================================\ \n======\n<<discussion>>\n\n<<discussion>>\ 2011-03-13\ Pat\ Thoyts\ on\ the\ core\ list\ about\ Ttk\ widget\ creation.\n\[HaO\]\ For\ me,\ this\ was\ very\ valuable\ so\ I\ have\ put\ it\ here.\nFeel\ free\ to\ delete,\ format\ or\ move\ to\ another\ place.\n======\nOne\ of\ the\ original\ intents\ of\ 'tile'\ was\ to\ make\ it\ simpler\ to\ create\nTk\ widgets.\ There's\ quite\ a\ lot\ of\ tedious\ boilerplate\ in\ Tk\ widget\ncreation.\ See\ http://tktable.sourceforge.net/tile/WidgetGuide.html\ for\nsomething\ about\ this.\ However,\ when\ 'tile'\ got\ integrated\ the\ necessary\nfunctions\ were\ not\ exposed\ as\ part\ of\ the\ tk\ stubs\ and\ its\ currently\nsomewhat\ hidden.\n\nRelated\ to\ this\ --\ to\ construct\ new\ UI's\ using\ elements\ you\ need\ a\nreasonably\ general\ purpose\ element\ engine.\ I\ one\ toyed\ with\ using\ GDI+\nso\ I\ could\ specify\ an\ element\ with,\ for\ instance,\ a\ certain\ gradient\ or\nshape.\ Working\ with\ this\ leads\ to\ the\ obvious\ conclusion\ that\ it\ would\nbe\ great\ to\ be\ able\ to\ specify\ the\ look\ of\ an\ element\ using\ something\nlike\ SVG.\ (See\ http://tktable.sourceforge.net/tile/Gdiplus.html\nand\ http://www.patthoyts.tk/gitweb.cgi?p=gdiplus\;a=summary)\n\nThere\ might\ be\ more\ involved\ in\ making\ the\ widget\ functionality\ easy\ to\nhook\ together\ but\ this\ would\ cover\ the\ look\ part\ of\ look\ and\nfeel.\ Events\ mostly\ deal\ with\ 'feel'.\n<<discussion>>\n\n----\n\n!!!!!!\n%|\[Category\ GUI\]|\[Category\ Package\]|\[Category\ Widget\]|%\n!!!!!!} CALL {my revision Ttk} CALL {::oo::Obj6481390 process revision/Ttk} CALL {::oo::Obj6481388 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4