| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535 |
- // Copyright 2024 The tk9.0-go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // Package tk9.0 is a CGo-free, cross platform GUI toolkit for Go. It is
- // similar to [Tkinter] for Python.
- //
- // # Hello world
- //
- // Also available in _examples/hello.go
- //
- // package main
- //
- // import . "modernc.org/tk9.0"
- //
- // func main() {
- // Pack(Button(Txt("Hello"), Command(func() { Destroy(App) })))
- // App.Wait()
- // }
- //
- // To execute the above program on any supported target issue something like
- //
- // $ CGO_ENABLED=0 go run hello.go
- //
- // The CGO_ENABLED=0 is optional and here it only demonstrates the program can
- // be built - or cross-compiled - without CGo.
- //
- // # In action
- //
- // - [equ] A Plain TeX math editor.
- // - [secure-files-go-gui] A GUI for [secure-files-go].
- // - [visualmd] A WYSIWYG markdown editor.
- //
- // # Frequently Asked Questions
- //
- // - Do I need to install the Tcl/Tk libraries on my system to use this
- // package or programs that import it?
- //
- // No. You still have to have a desktop environment installed on systems
- // where that is not necessarily the case by default. That means some of
- // the unix-like systems. Usually installing any desktop environment, like
- // Gnome, Xfce etc. provides all the required library (.so) files. The
- // minimum is the [X Window System] and this package was tested to work
- // there, although with all the limitations one can expect in this case.
- //
- // - Windows: How to build an executable that doesn't open a console window when run?
- //
- // From the [documentation for cmd/link]: On Windows, -H windowsgui writes
- // a "GUI binary" instead of a "console binary.". To pass the flag to the
- // Go build system use 'go build -ldflags -H=windowsgui somefile.go', for
- // example.
- //
- // - How to set/get the text of a Entry/TEntry widget?
- //
- // Using [Textvariable]. See the _examples/entry.go example.
- //
- // - What does CGo-free really mean?
- //
- // [cgo] is a tool used by the Go build system when Go code uses the
- // pseudo-import "C". For technical details please see the link. For us it
- // is important that using CGo ends up invoking a C compiler during
- // building of a Go program/package. The C compiler is used to determine
- // exact, possibly locally dependent, values of C preprocessor constants
- // and other defines, as well as the exact layout of C structs. This
- // enables the Go compiler to correctly handle things like, schematically
- // `C.someStruct.someField` appearing in Go code.
- //
- // At runtime a Go program using CGo must switch stacks when calling into
- // C. Additionally the runtime scheduler is made aware of such calls into
- // C. The former is necessary, the later is not, but it is good to have as
- // it improves performance and provides better resource management.
- //
- // There is an evironment variable defined, `CGO_ENABLED`. When the Go
- // build system compiles Go code, it checks for the value of this env var.
- // If it is not set or its value is "1", then CGo is enabled and used when
- // 'import "C"' is encountered. If the env var contains "0", CGo is
- // disabled and programs using 'import "C"' will not compile.
- //
- // After this longish intro we can finally get to the short answer:
- // CGo-free means this package can be compiled with CGO_ENABLED=0. In other
- // words, there's no 'import "C"' clause anywhere.
- //
- // The consequences of being CGo-free follows from the above. The Go build system
- // does not need to invoke a C compiler when compiling this package. Hence users
- // don't have to have a C compiler installed in their machines.
- //
- // There are advantages when a C compiler is not invoked during
- // compilation/build of Go code. Programs can be installed on all targets
- // supported by this package the easy way: '$ go install
- // example.com/foo@latest' and programs for all supported targets can be
- // cross-compiled on all Go-supported targets just by setting the
- // respective env vars, like performing '$ GOOS=darwin GOARCH=arm64 go
- // build' on a Windows/AMD64 machine, for example.
- //
- // - How does this package achieve being CGo-free?
- //
- // The answer depends on the particular target in question. Targets
- // supported by [purego] call into the Tcl/Tk C libraries without using
- // CGo. See the source code at the link for how it is done.
- //
- // On other targets CGo is avoided by transpiling all the C libraries and
- // their transitive dependencies to Go.
- //
- // In both cases the advantages are the same: CGo-free programs are
- // go-installable and CGo-free programs can be cross-compiled without
- // having a C compiler or a cross-C compiler tool chain installed.
- //
- // - Does being CGo-free remove the overhead of crossing the Go-C boundary?
- //
- // For the [purego] targets, no. Only the C compiler is not involved anymore.
- //
- // For other supported targets the boundary for calling Tcl/Tk C API from
- // Go is gone. No free lunches though, the transpilled code has to care about
- // additional things the C code does not need to - with the respective
- // performance penalties, now just in different places.
- //
- // # Change log
- //
- // Only selected releases appear here:
- //
- // - 2025-03-16: v0.65.0 introduces support for many new image formats. See
- // the list at [NewPhoto] but see also [issue 66].
- //
- // # Widget catalogue
- //
- // - [ButtonWidget]
- // - [CanvasWidget]
- // - [EntryWidget]
- // - [FrameWidget]
- // - [CheckbuttonWidget]
- // - [LabelframeWidget]
- // - [LabelWidget]
- // - [ListboxWidget]
- // - [MenubuttonWidget]
- // - [MenuWidget]
- // - [MessageWidget]
- // - [OptionMenuWidget]
- // - [PanedwindowWidget]
- // - [RadiobuttonWidget]
- // - [ScaleWidget]
- // - [ScrollbarWidget]
- // - [SpinboxWidget]
- // - [TButtonWidget]
- // - [TComboboxWidget]
- // - [TEntryWidget]
- // - [TextWidget]
- // - [TFrameWidget]
- // - [TCheckbuttonWidget]
- // - [TLabelframeWidget]
- // - [TLabelWidget]
- // - [TMenubuttonWidget]
- // - [TNotebookWidget]
- // - [ToplevelWidget]
- // - [TPanedwindowWidget]
- // - [TProgressbarWidget]
- // - [TRadiobuttonWidget]
- // - [TScaleWidget]
- // - [TScrollbarWidget]
- // - [TSeparatorWidget]
- // - [TSizegripWidget]
- // - [TSpinboxWidget]
- // - [TTreeviewWidget]
- //
- // # Debugging
- //
- // Consider this program in _examples/debugging.go:
- //
- // // Build this program using -tags=tk.dmesg
- // package main
- //
- // import . "modernc.org/tk9.0"
- //
- // func main() {
- // Pack(
- // TButton(Txt("Hello"), Command(func() { Destroy(App) })),
- // Ipadx(10), Ipady(5), Padx(20), Pady(10),
- // )
- // App.Wait()
- // }
- //
- // Execute the program using the tags as indicated, then close the window or
- // click the Hello button. With the tk.dmesg tag the package initialization
- // prints the debug messages path. So we can view it, for example, like this:
- //
- // $ go run -tags=tk.dmesg _examples/debugging.go | tee log
- // ...
- // /tmp/debugging-18876-20240928-163046
- // $ cat /tmp/debugging-18876-20240928-163046
- // [18876 debugging] enter [dmesgon.go:32:0 proc.go:7278:doInit1 proc.go:7245:doInit]
- // ...
- // [18876 debugging] code=wm iconphoto . img2 -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=wm title . debugging -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=. configure -padx 4m -pady 3m -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=tk::PlaceWindow . center -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=ttk::button ..tbutton4 -text Hello -command {eventDispatcher 3} -> r=.tbutton4 err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:342:newChild]
- // [18876 debugging] code=pack .tbutton4 -ipadx 10 -ipady 5 -padx 20 -pady 10 -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=destroy . -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // [18876 debugging] code=tkwait window . -> r= err=<nil> [tk_purego.go:225:eval tk_purego.go:225:eval tk.go:354:evalErr]
- // $
- //
- // 18876 was the process PID in this particular run. Using the tags allows to
- // inspect the Tcl/Tk code executed during the lifetime of the process.
- //
- // # Supported targets
- //
- // These combinations of GOOS and GOARCH are currently supported
- //
- // OS Arch
- // -------------
- // darwin amd64
- // darwin arm64
- // freebsd amd64
- // freebsd arm64
- // linux 386
- // linux amd64
- // linux arm
- // linux arm64
- // linux loong64
- // linux ppc64le
- // linux riscv64
- // linux s390x
- // windows 386
- // windows amd64
- // windows arm64
- //
- // Specific to [FreeBSD]:
- //
- // When building with cross-compiling or CGO_ENABLED=0, add the following
- // argument to `go` so that these symbols are defined by making fakecgo the
- // Cgo.
- //
- // -gcflags="github.com/ebitengine/purego/internal/fakecgo=-std"
- //
- // Specific to windows/386:
- //
- // There's an open [Go issue 54187] that affects [issue 54]. This target is no
- // more a first-class supported one. Moreover, Windows 11 do not support the
- // 386 architecture at all, meaning Go will eventually stop supporting
- // windows/386 as well.
- //
- // # Builders
- //
- // Builder results available at [modern-c.appspot.com].
- //
- // # Runtime dependencies
- //
- // - [Img.Graph] and [CanvasWidget.Graph] require the gnuplot executable
- // available in $PATH.
- //
- // # Completeness
- //
- // At the moment the package is a [MVP] allowing to build at least some simple,
- // yet useful programs. The full Tk API is not yet usable. Please report
- // needed, but non-exposed Tk features at the [issue tracker], thanks.
- //
- // Providing feedback about the missing building blocks, bugs and your user
- // experience is invaluable in helping this package to eventually reach version
- // 1. See also [RERO].
- //
- // # Error handling
- //
- // The [ErrorMode] variable selects the behaviour on errors for certain
- // functions that do not return error.
- //
- // When ErrorMode is PanicOnError, the default, errors will panic, providing a stack trace.
- //
- // When ErrorMode is CollectErrors, errors will be recorded using [errors.Join] in
- // the [Error] variable. Even if a function does not return error, it is still
- // possible to handle errors in the usual way when needed, except that Error is
- // now a static variable. That's a problem in the general case, but less so in
- // this package that must be used from a single goroutine only, as
- // documented elsewhere.
- //
- // // Explicit error handling.
- // ErrorMode = CollectErrors
- // if SomeFunnction(someArgument); Error != nil {
- // ... error handling goes here
- // }
- //
- // This is obviously a compromise enabling to have a way to check for errors
- // and, at the same time, the ability to write concise code like:
- //
- // // Deferred error handling.
- // if b = Button(Txt("Foo"), Padx(5), Pady(10)); Error != nil {
- // ...
- // }
- //
- // There are altogether four different places where the call to the Button
- // function can produce errors as additionally to the call itself, every of its
- // three arguments can independently fail as well. Checking each and one of
- // them separately is not always necessary in GUI code. But the explicit option
- // in the first example is still available when needed.
- //
- // # Themes
- //
- // There is a centralized theme register in [Themes]. Theme providers can opt
- // in to call [RegisterTheme] at package initialization to make themes
- // discoverable at run-time. Clients can use [ActivateTheme] to apply a theme
- // by name. Example in _examples/azure.go.
- //
- // # VNC server
- //
- // There is a VNC over wbesockets functionality available for X11 backed hosts.
- // See the [tk9.0/vnc package] for details.
- //
- // # Package initialization
- //
- // Package initialization is done lazily. This saves noticeable additional
- // startup time and avoids screen flicker in hybrid programs that use the GUI
- // only on demand. (For a hybrid example see _examples/ring.go.)
- //
- // Early package initialization can be enforced by [Initialize].
- //
- // Initialization will fail if a Unix process starts on a machine with no
- // X server or the process is started in a way that it has no access to the X
- // server. On the other hand, this package may work on Unix machines with no X
- // server if the process is started remotely using '$ ssh -X foo@bar' and the X
- // forwarding is enabled/supported.
- //
- // Darwin port uses the macOS GUI API and does not use X11.
- //
- // # The options pattern
- //
- // Zero or more options can be specified when creating a widget. For example
- //
- // b := Button(Txt("Hello"), OverRelief("flat"))
- //
- // or
- //
- // lbl := myFrame.Label(State("disabled"), Width(200))
- //
- // # Widget path names, image and font names
- //
- // Tcl/Tk uses widget pathnames, image and font names explicitly set by user
- // code. This package generates those names automatically and they are not
- // directly needed in code that uses this package.
- //
- // # Renamed options
- //
- // There is, for a example, a Tcl/tk 'text' widget and a '-text' option. This
- // package exports the widget as type 'TextWidget', its constructor as function
- // 'Text' and the option as function 'Txt'. The complete list is:
- //
- // - [Button] option is renamed to [Btn]
- // - [Label] option is renamed to [Lbl]
- // - [Menu] option is renamed to [Mnu]
- // - [Message] option is renamed to [Msg]
- // - [Text] option is renamed to [Txt]
- //
- // # OS thread
- //
- // This package should be used only from the same goroutine that initialized
- // the Tcl/Tk system and performed os.LockOSThread before doing so. The
- // initialization happens lazily on the first call to an Tcl/Tk API function or
- // it can be forced by calling [Initialize].
- //
- // Note that when running Go tests, the goroutine that executes TestMain is not
- // the same goroutine that executes the Test* functions.
- //
- // # Event handlers
- //
- // The Command() and similar options expect an argument that must be one of:
- //
- // - An EventHandler or a function literal of the same signature.
- //
- // - A func(). This can be used when the handler does not need the associated
- // Event instance.
- //
- // # Specially handled types
- //
- // - [time.Duration]
- //
- // When passing an argument of type [time.Durarion] to a function accepting
- // 'any', the duration is converted to an integer number of milliseconds.
- //
- // - [image.Image]
- //
- // When passing an argument of type image.Image to a function accepting 'any',
- // the image is converted to a [encoding/base64] encoded string of the PNG
- // representation of the image.
- //
- // - []byte
- //
- // When passing an argument of type []byte to a function accepting 'any', the
- // byte slice is converted to a [encoding/base64] encoded string.
- //
- // - []FileType
- //
- // When passing an argument of type []FileType to a function accepting 'any',
- // the slice is converted to the representation the Tcl/Tk -filetypes option
- // expects.
- //
- // # Tcl/Tk code
- //
- // At least some minimal knowledge of reading Tcl/Tk code is probably required
- // for using this package and/or using the related documentation. However you
- // will not need to write any Tcl code and you do not need to care about the
- // grammar of Tcl words/string literals and how it differs from Go.
- //
- // There are several Tcl/Tk tutorials available, for example at
- // [tutorialspoint].
- //
- // # Hacking
- //
- // Merge requests for known issues are always welcome.
- //
- // Please send merge requests for new features/APIs after filling and
- // discussing the additions/changes at the [issue tracker] first.
- //
- // # Notes
- //
- // Most of the documentation is generated directly from the Tcl/Tk
- // documentation and may not be entirely correct for the Go package. Those
- // parts hopefully still serve as a quick/offline Tcl/Tk reference.
- //
- // # Additional copyrights
- //
- // Parts of the documentation are copied and/or modified from the [tcl.tk
- // site], see the LICENSE-TCLTK file for details.
- //
- // Parts of the documentation are copied and/or modified from the [tkinter.ttk site]
- // which is
- //
- // ----------------------------------------------------------------------------
- // © Copyright 2001-2024, Python Software Foundation, licensed under the Python
- // Software Foundation License Version 2.
- // ----------------------------------------------------------------------------
- //
- // # Sponsorship
- //
- // You can support the maintenance and further development of this package at
- // [jnml's LiberaPay] (using PayPal).
- //
- // # "alt" theme style guide
- //
- // "Checkbutton.indicator" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Foreground]
- // - [Indicatorcolor]
- // - [Indicatormargin]
- // - [Lightcolor]
- // - [Shadecolor]
- //
- // "Combobox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "Menubutton.indicator" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Direction]
- //
- // "Radiobutton.indicator" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Foreground]
- // - [Indicatorcolor]
- // - [Indicatormargin]
- // - [Lightcolor]
- // - [Shadecolor]
- //
- // "Spinbox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "Spinbox.uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "Treeitem.indicator" style element options:
- //
- // - [Foreground]
- // - [Indicatormargins]
- // - [Size]
- //
- // "arrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "border" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Borderwidth]
- // - [Default]
- // - [Relief]
- //
- // "downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "field" style element options:
- //
- // - [Bordercolor]
- // - [Fieldbackground]
- // - [Focuscolor]
- // - [Focuswidth]
- //
- // "leftarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "rightarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "slider" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Borderwidth]
- // - [Orient]
- // - [Sliderrelief]
- // - [Sliderthickness]
- //
- // "thumb" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Orient]
- // - [Relief]
- // - [Width]
- //
- // "uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Relief]
- //
- // "alt" theme style list
- //
- // .
- //
- // Style map: -foreground {disabled #a3a3a3} -background {disabled #d9d9d9 active #ececec} -embossed {disabled 1}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.border -sticky nswe
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.border -sticky nswe -border 1 -children {Button.focus -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // Style map: -highlightcolor {alternate black} -relief { {pressed !disabled} sunken {active !disabled} raised }
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // Style map: -indicatorcolor {pressed #d9d9d9 alternate #aaaaaa disabled #d9d9d9}
- //
- // TCombobox
- //
- // Layout: Combobox.field -sticky nswe -children {Combobox.downarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9} -arrowcolor {disabled #a3a3a3}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9}
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TMenubutton
- //
- // Layout: Menubutton.border -sticky nswe -children {Menubutton.focus -sticky nswe -children {Menubutton.indicator -side right -sticky {} Menubutton.padding -sticky we -children {Menubutton.label -side left -sticky {}}}}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -expand {selected {1.5p 1.5p 0.75p 0}} -background {selected #d9d9d9}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // Style map: -indicatorcolor {pressed #d9d9d9 alternate #aaaaaa disabled #d9d9d9}
- //
- // TScale
- //
- // -
- //
- // TScrollbar
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -side top -sticky we -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9} -arrowcolor {disabled #a3a3a3}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Style map: -relief {disabled flat selected sunken pressed sunken active raised} -background {pressed #c3c3c3 active #ececec}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled #a3a3a3 selected #ffffff} -background {disabled #d9d9d9 selected #4a6984}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // # "aqua" theme style guide
- //
- // "Button.button" style element options:
- //
- // "Checkbutton.button" style element options:
- //
- // "Combobox.button" style element options:
- //
- // "DisclosureButton.button" style element options:
- //
- // "Entry.field" style element options:
- //
- // - [Background]
- // - [Fieldbackground]
- //
- // "GradientButton.button" style element options:
- //
- // "HelpButton.button" style element options:
- //
- // "Horizontal.Scrollbar.leftarrow" style element options:
- //
- // - [Orient]
- //
- // "Horizontal.Scrollbar.rightarrow" style element options:
- //
- // - [Orient]
- //
- // "Horizontal.Scrollbar.thumb" style element options:
- //
- // - [Orient]
- //
- // "Horizontal.Scrollbar.trough" style element options:
- //
- // - [Orient]
- //
- // "InlineButton.button" style element options:
- //
- // "Labelframe.border" style element options:
- //
- // "Menubutton.button" style element options:
- //
- // "Notebook.client" style element options:
- //
- // "Notebook.tab" style element options:
- //
- // "Progressbar.track" style element options:
- //
- // - [Maximum]
- // - [Mode]
- // - [Orient]
- // - [Phase]
- // - [Value]
- //
- // "Radiobutton.button" style element options:
- //
- // "RecessedButton.button" style element options:
- //
- // "RoundedRectButton.button" style element options:
- //
- // "Scale.slider" style element options:
- //
- // "Scale.trough" style element options:
- //
- // - [From]
- // - [Orient]
- // - [To]
- // - [Value]
- //
- // "Searchbox.field" style element options:
- //
- // - [Background]
- // - [Fieldbackground]
- //
- // "SidebarButton.button" style element options:
- //
- // "Spinbox.downarrow" style element options:
- //
- // "Spinbox.field" style element options:
- //
- // - [Background]
- // - [Fieldbackground]
- //
- // "Spinbox.uparrow" style element options:
- //
- // "Toolbar.background" style element options:
- //
- // "Toolbutton.border" style element options:
- //
- // "Treeheading.cell" style element options:
- //
- // "Treeitem.indicator" style element options:
- //
- // "Treeview.treearea" style element options:
- //
- // "Vertical.Scrollbar.downarrow" style element options:
- //
- // - [Orient]
- //
- // "Vertical.Scrollbar.thumb" style element options:
- //
- // - [Orient]
- //
- // "Vertical.Scrollbar.trough" style element options:
- //
- // - [Orient]
- //
- // "Vertical.Scrollbar.uparrow" style element options:
- //
- // - [Orient]
- //
- // "background" style element options:
- //
- // "field" style element options:
- //
- // - [Fieldbackground]
- //
- // "fill" style element options:
- //
- // "hseparator" style element options:
- //
- // "separator" style element options:
- //
- // "sizegrip" style element options:
- //
- // "vseparator" style element options:
- //
- // "aqua" theme style list
- //
- // .
- //
- // Style map: -selectforeground { background systemSelectedTextColor !focus systemSelectedTextColor} -foreground { disabled systemDisabledControlTextColor background systemLabelColor} -selectbackground { background systemSelectedTextBackgroundColor !focus systemSelectedTextBackgroundColor}
- //
- // DisclosureButton
- //
- // Layout: DisclosureButton.button -sticky nswe
- //
- // GradientButton
- //
- // Layout: GradientButton.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.image -side right -sticky {} Treeheading.text -side top -sticky {}
- //
- // HelpButton
- //
- // Layout: HelpButton.button -sticky nswe
- //
- // Horizontal.TScrollbar
- //
- // Layout: Horizontal.Scrollbar.trough -sticky we -children {Horizontal.Scrollbar.thumb -sticky nswe Horizontal.Scrollbar.rightarrow -side right -sticky {} Horizontal.Scrollbar.leftarrow -side right -sticky {}}
- //
- // ImageButton
- //
- // Layout: Button.padding -sticky nswe -children {Button.label -sticky nswe}
- //
- // Style map: -foreground { pressed systemLabelColor !pressed systemSecondaryLabelColor }
- //
- // InlineButton
- //
- // Layout: InlineButton.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Style map: -foreground { disabled systemWindowBackgroundColor }
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -side left -sticky {}}
- //
- // Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // RecessedButton
- //
- // Layout: RecessedButton.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Style map: -font { selected RecessedFont active RecessedFont pressed RecessedFont } -foreground { {disabled selected} systemWindowBackgroundColor3 {disabled !selected} systemDisabledControlTextColor selected systemTextBackgroundColor active white pressed white }
- //
- // RoundedRectButton
- //
- // Layout: RoundedRectButton.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Searchbox
- //
- // Layout: Searchbox.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // SidebarButton
- //
- // Layout: SidebarButton.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Style map: -foreground { {disabled selected} systemWindowBackgroundColor3 {disabled !selected} systemDisabledControlTextColor selected systemTextColor active systemTextColor pressed systemTextColor }
- //
- // TButton
- //
- // Layout: Button.button -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Style map: -foreground { pressed white {alternate !pressed !background} white disabled systemDisabledControlTextColor}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.button -sticky nswe -children {Checkbutton.padding -sticky nswe -children {Checkbutton.label -side left -sticky {}}}
- //
- // TCombobox
- //
- // Layout: Combobox.button -sticky nswe -children {Combobox.padding -sticky nswe -children {Combobox.textarea -sticky nswe}}
- //
- // Style map: -foreground { disabled systemDisabledControlTextColor } -selectbackground { !focus systemUnemphasizedSelectedTextBackgroundColor }
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -foreground { disabled systemDisabledControlTextColor } -selectbackground { !focus systemUnemphasizedSelectedTextBackgroundColor }
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TLabelframe.Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // TMenubutton
- //
- // Layout: Menubutton.button -sticky nswe -children {Menubutton.padding -sticky nswe -children {Menubutton.label -side left -sticky {}}}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -sticky nswe -children {Notebook.label -sticky nswe}}
- //
- // Style map: -foreground { {background !selected} systemControlTextColor {background selected} black {!background selected} systemSelectedTabTextColor disabled systemDisabledControlTextColor}
- //
- // TProgressbar
- //
- // Layout: Progressbar.track -sticky nswe
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.button -sticky nswe -children {Radiobutton.padding -sticky nswe -children {Radiobutton.label -side left -sticky {}}}
- //
- // TScrollbar
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.buttons -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.field -sticky we -children {Spinbox.textarea -sticky we}
- //
- // Style map: -foreground { disabled systemDisabledControlTextColor } -selectbackground { !focus systemUnemphasizedSelectedTextBackgroundColor }
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -sticky nswe -children {Notebook.label -sticky nswe}}
- //
- // Toolbar
- //
- // Layout: Toolbar.background -sticky nswe
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -background { selected systemSelectedTextBackgroundColor }
- //
- // Vertical.TScrollbar
- //
- // Layout: Vertical.Scrollbar.trough -sticky ns -children {Vertical.Scrollbar.thumb -sticky nswe Vertical.Scrollbar.downarrow -side bottom -sticky {} Vertical.Scrollbar.uparrow -side bottom -sticky {}}
- //
- // # "clam" theme style guide
- //
- // "Checkbutton.indicator" style element options:
- //
- // - [Indicatorbackground]
- // - [Indicatorforeground]
- // - [Indicatormargin]
- // - [Lowerbordercolor]
- // - [Upperbordercolor]
- //
- // "Combobox.field" style element options:
- //
- // - [Bordercolor]
- // - [Fieldbackground]
- // - [Lightcolor]
- //
- // "Radiobutton.indicator" style element options:
- //
- // - [Indicatorbackground]
- // - [Indicatorforeground]
- // - [Indicatormargin]
- // - [Lowerbordercolor]
- // - [Upperbordercolor]
- //
- // "Spinbox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "Spinbox.uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "arrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "bar" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "border" style element options:
- //
- // - [Bordercolor]
- // - [Borderwidth]
- // - [Darkcolor]
- // - [Lightcolor]
- // - [Relief]
- //
- // "client" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Lightcolor]
- //
- // "downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "field" style element options:
- //
- // - [Bordercolor]
- // - [Fieldbackground]
- // - [Lightcolor]
- //
- // "hgrip" style element options:
- //
- // - [Bordercolor]
- // - [Gripsize]
- // - [Lightcolor]
- //
- // "leftarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "pbar" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "rightarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "slider" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "tab" style element options:
- //
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Lightcolor]
- //
- // "thumb" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "trough" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Bordercolor]
- // - [Darkcolor]
- // - [Gripsize]
- // - [Lightcolor]
- // - [Orient]
- // - [Sliderlength]
- // - [Troughcolor]
- //
- // "vgrip" style element options:
- //
- // - [Bordercolor]
- // - [Gripsize]
- // - [Lightcolor]
- //
- // "clam" theme style list
- //
- // .
- //
- // Style map: -selectforeground {!focus white} -foreground {disabled #999999} -selectbackground {!focus #9e9a91} -background {disabled #dcdad5 active #eeebe7}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.border -sticky nswe
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Horizontal.Sash
- //
- // Layout: Sash.hsash -sticky nswe -children {Sash.hgrip -sticky nswe}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Sash
- //
- // -
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.border -sticky nswe -border 1 -children {Button.focus -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // Style map: -lightcolor {pressed #bab5ab} -background {disabled #dcdad5 pressed #bab5ab active #eeebe7} -bordercolor {alternate #000000} -darkcolor {pressed #bab5ab}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // Style map: -indicatorbackground {pressed #dcdad5 {!disabled alternate} #5895bc {disabled alternate} #a0a0a0 disabled #dcdad5}
- //
- // TCombobox
- //
- // Layout: Combobox.downarrow -side right -sticky ns Combobox.field -sticky nswe -children {Combobox.padding -sticky nswe -children {Combobox.textarea -sticky nswe}}
- //
- // Style map: -foreground {{readonly focus} #ffffff} -fieldbackground {{readonly focus} #4a6984 readonly #dcdad5} -background {active #eeebe7 pressed #eeebe7} -bordercolor {focus #4a6984} -arrowcolor {disabled #999999}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -lightcolor {focus #6f9dc6} -background {readonly #dcdad5} -bordercolor {focus #4a6984}
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TMenubutton
- //
- // Layout: Menubutton.border -sticky nswe -children {Menubutton.focus -sticky nswe -children {Menubutton.indicator -side right -sticky {} Menubutton.padding -sticky we -children {Menubutton.label -side left -sticky {}}}}
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -lightcolor {selected #eeebe7 {} #cfcdc8} -padding {selected {4.5p 3p 4.5p 1.5p}} -background {selected #dcdad5 {} #bab5ab}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // Style map: -indicatorbackground {pressed #dcdad5 {!disabled alternate} #5895bc {disabled alternate} #a0a0a0 disabled #dcdad5}
- //
- // TScale
- //
- // -
- //
- // TScrollbar
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -side top -sticky we -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}
- //
- // Style map: -background {readonly #dcdad5} -bordercolor {focus #4a6984} -arrowcolor {disabled #999999}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Style map: -lightcolor {pressed #bab5ab} -relief {disabled flat selected sunken pressed sunken active raised} -background {disabled #dcdad5 pressed #bab5ab active #eeebe7} -darkcolor {pressed #bab5ab}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled #999999 selected #ffffff} -background {disabled #dcdad5 selected #4a6984} -bordercolor {focus #4a6984}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // Vertical.Sash
- //
- // Layout: Sash.vsash -sticky nswe -children {Sash.vgrip -sticky nswe}
- //
- // # "classic" theme style guide
- //
- // "Button.border" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Default]
- // - [Relief]
- //
- // "Checkbutton.indicator" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Indicatorcolor]
- // - [Indicatormargin]
- // - [Indicatorrelief]
- // - [Indicatorsize]
- //
- // "Combobox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Menubutton.indicator" style element options:
- //
- // - [Background]
- // - [Indicatorborderwidth]
- // - [Indicatorheight]
- // - [Indicatormargin]
- // - [Indicatorrelief]
- // - [Indicatorwidth]
- //
- // "Radiobutton.indicator" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Indicatorcolor]
- // - [Indicatormargin]
- // - [Indicatorrelief]
- // - [Indicatorsize]
- //
- // "Spinbox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Spinbox.uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "arrow" style element options:
- //
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "downarrow" style element options:
- //
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "highlight" style element options:
- //
- // - [Default]
- // - [Highlightcolor]
- // - [Highlightthickness]
- //
- // "hsash" style element options:
- //
- // - [Background]
- // - [Handlepad]
- // - [Handlesize]
- // - [Sashpad]
- // - [Sashrelief]
- // - [Sashthickness]
- //
- // "leftarrow" style element options:
- //
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "rightarrow" style element options:
- //
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "slider" style element options:
- //
- // - [Background]
- // - [Orient]
- // - [Sliderborderwidth]
- // - [Sliderlength]
- // - [Sliderrelief]
- // - [Sliderthickness]
- //
- // "uparrow" style element options:
- //
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "vsash" style element options:
- //
- // - [Background]
- // - [Handlepad]
- // - [Handlesize]
- // - [Sashpad]
- // - [Sashrelief]
- // - [Sashthickness]
- //
- // "classic" theme style list
- //
- // .
- //
- // Style map: -highlightcolor {focus black} -foreground {disabled #a3a3a3} -background {disabled #d9d9d9 active #ececec}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.border -sticky nswe
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Horizontal.TScale
- //
- // Layout: Horizontal.Scale.highlight -sticky nswe -children {Horizontal.Scale.trough -sticky nswe -children {Horizontal.Scale.slider -side left -sticky {}}}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Sash
- //
- // -
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.highlight -sticky nswe -children {Button.border -sticky nswe -border 1 -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // Style map: -relief {{!disabled pressed} sunken}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.highlight -sticky nswe -children {Checkbutton.border -sticky nswe -children {Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.label -side left -sticky nswe}}}
- //
- // Style map: -indicatorrelief {alternate raised selected sunken pressed sunken} -indicatorcolor {pressed #d9d9d9 alternate #b05e5e selected #b03060}
- //
- // TCombobox
- //
- // Layout: Combobox.highlight -sticky nswe -children {Combobox.field -sticky nswe -children {Combobox.downarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.textarea -sticky nswe}}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9}
- //
- // TEntry
- //
- // Layout: Entry.highlight -sticky nswe -children {Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9}
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TMenubutton
- //
- // Layout: Menubutton.highlight -sticky nswe -children {Menubutton.border -sticky nswe -children {Menubutton.indicator -side right -sticky {} Menubutton.padding -sticky we -children {Menubutton.label -sticky {}}}}
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -background {selected #d9d9d9}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.highlight -sticky nswe -children {Radiobutton.border -sticky nswe -children {Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.label -side left -sticky nswe}}}
- //
- // Style map: -indicatorrelief {alternate raised selected sunken pressed sunken} -indicatorcolor {pressed #d9d9d9 alternate #b05e5e selected #b03060}
- //
- // TScale
- //
- // Style map: -sliderrelief {{pressed !disabled} sunken}
- //
- // TScrollbar
- //
- // Style map: -relief {{pressed !disabled} sunken}
- //
- // TSpinbox
- //
- // Layout: Spinbox.highlight -sticky nswe -children {Spinbox.field -sticky nswe -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}}
- //
- // Style map: -fieldbackground {readonly #d9d9d9 disabled #d9d9d9}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.focus -sticky nswe -children {Toolbutton.border -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Style map: -relief {disabled flat selected sunken pressed sunken active raised} -background {pressed #b3b3b3 active #ececec}
- //
- // Treeview
- //
- // Layout: Treeview.highlight -sticky nswe -children {Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}}
- //
- // Style map: -foreground {disabled #a3a3a3 selected #000000} -background {disabled #d9d9d9 selected #c3c3c3}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // Vertical.TScale
- //
- // Layout: Vertical.Scale.highlight -sticky nswe -children {Vertical.Scale.trough -sticky nswe -children {Vertical.Scale.slider -side top -sticky {}}}
- //
- // # "default" theme style guide
- //
- // "" style element options:
- //
- // "Checkbutton.indicator" style element options:
- //
- // - [Bordercolor]
- // - [Indicatorbackground]
- // - [Indicatorforeground]
- // - [Indicatormargin]
- //
- // "Combobox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Menubutton.indicator" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowpadding]
- // - [Arrowsize]
- //
- // "Radiobutton.indicator" style element options:
- //
- // - [Bordercolor]
- // - [Indicatorbackground]
- // - [Indicatorforeground]
- // - [Indicatormargin]
- //
- // "Spinbox.downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Spinbox.uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Treeheading.cell" style element options:
- //
- // - [Background]
- // - [Rownumber]
- //
- // "Treeitem.indicator" style element options:
- //
- // - [Foreground]
- // - [Indicatormargins]
- // - [Indicatorsize]
- //
- // "Treeitem.row" style element options:
- //
- // - [Background]
- // - [Rownumber]
- //
- // "Treeitem.separator" style element options:
- //
- // - [Background]
- // - [Rownumber]
- //
- // "arrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "background" style element options:
- //
- // - [Background]
- //
- // "border" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "client" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Highlight]
- // - [Highlightcolor]
- //
- // "ctext" style element options:
- //
- // - [Anchor]
- // - [Embossed]
- // - [Font]
- // - [Foreground]
- // - [Justify]
- // - [Text]
- // - [Underline]
- // - [Width]
- // - [Wraplength]
- //
- // "downarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "field" style element options:
- //
- // - [Borderwidth]
- // - [Fieldbackground]
- // - [Focuscolor]
- // - [Focuswidth]
- //
- // "fill" style element options:
- //
- // - [Background]
- //
- // "focus" style element options:
- //
- // - [Focuscolor]
- // - [Focussolid]
- // - [Focusthickness]
- //
- // "hsash" style element options:
- //
- // - [Sashthickness]
- //
- // "hseparator" style element options:
- //
- // - [Background]
- // - [Orient]
- //
- // "image" style element options:
- //
- // - [Background]
- // - [Image]
- // - [Stipple]
- //
- // "indicator" style element options:
- //
- // "label" style element options:
- //
- // - [Anchor]
- // - [Background]
- // - [Compound]
- // - [Embossed]
- // - [Font]
- // - [Foreground]
- // - [Image]
- // - [Justify]
- // - [Space]
- // - [Stipple]
- // - [Text]
- // - [Underline]
- // - [Width]
- // - [Wraplength]
- //
- // "leftarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "padding" style element options:
- //
- // - [Padding]
- // - [Relief]
- // - [Shiftrelief]
- //
- // "pbar" style element options:
- //
- // - [Background]
- // - [Barsize]
- // - [Borderwidth]
- // - [Orient]
- // - [Pbarrelief]
- // - [Thickness]
- //
- // "rightarrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "separator" style element options:
- //
- // - [Background]
- // - [Orient]
- //
- // "sizegrip" style element options:
- //
- // - [Background]
- // - [Gripsize]
- //
- // "slider" style element options:
- //
- // - [Bordercolor]
- // - [Innercolor]
- // - [Orient]
- // - [Outercolor]
- //
- // "tab" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Highlight]
- // - [Highlightcolor]
- //
- // "text" style element options:
- //
- // - [Anchor]
- // - [Embossed]
- // - [Font]
- // - [Foreground]
- // - [Justify]
- // - [Text]
- // - [Underline]
- // - [Width]
- // - [Wraplength]
- //
- // "textarea" style element options:
- //
- // - [Font]
- // - [Width]
- //
- // "thumb" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Orient]
- // - [Relief]
- // - [Width]
- //
- // "treearea" style element options:
- //
- // "trough" style element options:
- //
- // - [Groovewidth]
- // - [Orient]
- // - [Troughborderwidth]
- // - [Troughcolor]
- // - [Troughrelief]
- //
- // "uparrow" style element options:
- //
- // - [Arrowcolor]
- // - [Arrowsize]
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "vsash" style element options:
- //
- // - [Sashthickness]
- //
- // "vseparator" style element options:
- //
- // - [Background]
- // - [Orient]
- //
- // "default" theme style list
- //
- // .
- //
- // Style map: -foreground {disabled #a3a3a3} -background {disabled #edeceb active #ececec}
- //
- // Cell
- //
- // Layout: Treedata.padding -sticky nswe -children {Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.border -sticky nswe
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Horizontal.Sash
- //
- // Layout: Sash.hsash -sticky we
- //
- // Horizontal.TProgressbar
- //
- // Layout: Horizontal.Progressbar.trough -sticky nswe -children {Horizontal.Progressbar.pbar -side left -sticky ns Horizontal.Progressbar.ctext -side left -sticky {}}
- //
- // Horizontal.TScale
- //
- // Layout: Horizontal.Scale.focus -sticky nswe -children {Horizontal.Scale.padding -sticky nswe -children {Horizontal.Scale.trough -sticky nswe -children {Horizontal.Scale.slider -side left -sticky {}}}}
- //
- // Horizontal.TScrollbar
- //
- // Layout: Horizontal.Scrollbar.trough -sticky we -children {Horizontal.Scrollbar.leftarrow -side left -sticky {} Horizontal.Scrollbar.rightarrow -side right -sticky {} Horizontal.Scrollbar.thumb -sticky nswe}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // Row
- //
- // Layout: Treeitem.row -sticky nswe
- //
- // Sash
- //
- // -
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.border -sticky nswe -border 1 -children {Button.focus -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // Style map: -relief {{!disabled pressed} sunken}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // Style map: -indicatorbackground {{alternate disabled} #a3a3a3 {alternate pressed} #5895bc alternate #4a6984 {selected disabled} #a3a3a3 {selected pressed} #5895bc selected #4a6984 disabled #edeceb pressed #c3c3c3}
- //
- // TCombobox
- //
- // Layout: Combobox.field -sticky nswe -children {Combobox.downarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #edeceb disabled #edeceb} -arrowcolor {disabled #a3a3a3}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #edeceb disabled #edeceb}
- //
- // TFrame
- //
- // Layout: Frame.border -sticky nswe
- //
- // TLabel
- //
- // Layout: Label.border -sticky nswe -border 1 -children {Label.padding -sticky nswe -border 1 -children {Label.label -sticky nswe}}
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TMenubutton
- //
- // Layout: Menubutton.border -sticky nswe -children {Menubutton.focus -sticky nswe -children {Menubutton.indicator -side right -sticky {} Menubutton.padding -sticky we -children {Menubutton.label -side left -sticky {}}}}
- //
- // Style map: -arrowcolor {disabled #a3a3a3}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -highlightcolor {selected #4a6984} -highlight {selected 1} -background {selected #edeceb}
- //
- // TPanedwindow
- //
- // Layout: Panedwindow.background -sticky {}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // Style map: -indicatorbackground {{alternate disabled} #a3a3a3 {alternate pressed} #5895bc alternate #4a6984 {selected disabled} #a3a3a3 {selected pressed} #5895bc selected #4a6984 disabled #edeceb pressed #c3c3c3}
- //
- // TScale
- //
- // Style map: -outercolor {active #ececec}
- //
- // TScrollbar
- //
- // Style map: -arrowcolor {disabled #a3a3a3}
- //
- // TSeparator
- //
- // Layout: Separator.separator -sticky nswe
- //
- // TSizegrip
- //
- // Layout: Sizegrip.sizegrip -side bottom -sticky se
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -side top -sticky we -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}
- //
- // Style map: -fieldbackground {readonly #edeceb disabled #edeceb} -arrowcolor {disabled #a3a3a3}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Style map: -relief {disabled flat selected sunken pressed sunken active raised} -background {pressed #c3c3c3 active #ececec}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled #a3a3a3 selected #ffffff} -background {disabled #edeceb selected #4a6984}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // Vertical.Sash
- //
- // Layout: Sash.vsash -sticky ns
- //
- // Vertical.TProgressbar
- //
- // Layout: Vertical.Progressbar.trough -sticky nswe -children {Vertical.Progressbar.pbar -side bottom -sticky we}
- //
- // Vertical.TScale
- //
- // Layout: Vertical.Scale.focus -sticky nswe -children {Vertical.Scale.padding -sticky nswe -children {Vertical.Scale.trough -sticky nswe -children {Vertical.Scale.slider -side top -sticky {}}}}
- //
- // Vertical.TScrollbar
- //
- // Layout: Vertical.Scrollbar.trough -sticky ns -children {Vertical.Scrollbar.uparrow -side top -sticky {} Vertical.Scrollbar.downarrow -side bottom -sticky {} Vertical.Scrollbar.thumb -sticky nswe}PASS
- //
- // # "vista" theme style guide
- //
- // "Combobox.background" style element options:
- //
- // "Combobox.border" style element options:
- //
- // "Combobox.rightdownarrow" style element options:
- //
- // "ComboboxPopdownFrame.background" style element options:
- //
- // "Entry.background" style element options:
- //
- // "Entry.field" style element options:
- //
- // "Horizontal.Progressbar.pbar" style element options:
- //
- // "Horizontal.Scale.slider" style element options:
- //
- // "Horizontal.Scrollbar.grip" style element options:
- //
- // "Horizontal.Scrollbar.leftarrow" style element options:
- //
- // "Horizontal.Scrollbar.rightarrow" style element options:
- //
- // "Horizontal.Scrollbar.thumb" style element options:
- //
- // "Horizontal.Scrollbar.trough" style element options:
- //
- // "Menubutton.dropdown" style element options:
- //
- // "Spinbox.background" style element options:
- //
- // "Spinbox.downarrow" style element options:
- //
- // "Spinbox.field" style element options:
- //
- // "Spinbox.innerbg" style element options:
- //
- // "Spinbox.uparrow" style element options:
- //
- // "Vertical.Progressbar.pbar" style element options:
- //
- // "Vertical.Scale.slider" style element options:
- //
- // "Vertical.Scrollbar.downarrow" style element options:
- //
- // "Vertical.Scrollbar.grip" style element options:
- //
- // "Vertical.Scrollbar.thumb" style element options:
- //
- // "Vertical.Scrollbar.trough" style element options:
- //
- // "Vertical.Scrollbar.uparrow" style element options:
- //
- // "vista" theme style list
- //
- // .
- //
- // Style map: -foreground {disabled SystemGrayText}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.background -sticky nswe -border 1 -children {ComboboxPopdownFrame.padding -sticky nswe}
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Horizontal.TProgressbar
- //
- // Layout: Horizontal.Progressbar.trough -sticky nswe -children {Horizontal.Progressbar.pbar -side left -sticky ns Horizontal.Progressbar.ctext -sticky nswe}
- //
- // Horizontal.TScale
- //
- // Layout: Scale.focus -sticky nswe -children {Horizontal.Scale.trough -sticky nswe -children {Horizontal.Scale.track -sticky we Horizontal.Scale.slider -side left -sticky {}}}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.button -sticky nswe -children {Button.focus -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // TCombobox
- //
- // Layout: Combobox.border -sticky nswe -children {Combobox.rightdownarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.background -sticky nswe -children {Combobox.focus -sticky nswe -children {Combobox.textarea -sticky nswe}}}}
- //
- // Style map: -focusfill {{readonly focus} SystemHighlight} -foreground {disabled SystemGrayText {readonly focus} SystemHighlightText} -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -children {Entry.background -sticky nswe -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}}
- //
- // Style map: -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // TLabelframe.Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // TMenubutton
- //
- // Layout: Menubutton.dropdown -side right -sticky ns Menubutton.button -sticky nswe -children {Menubutton.padding -sticky we -children {Menubutton.label -sticky {}}}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -expand {selected {2 2 2 2}}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // TScale
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -sticky nswe -children {Spinbox.background -sticky nswe -children {Spinbox.padding -sticky nswe -children {Spinbox.innerbg -sticky nswe -children {Spinbox.textarea -sticky nswe}} Spinbox.uparrow -side top -sticky nse Spinbox.downarrow -side bottom -sticky nse}}
- //
- // Style map: -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled SystemGrayText selected SystemHighlightText} -background {disabled SystemButtonFace selected SystemHighlight}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // Vertical.TProgressbar
- //
- // Layout: Vertical.Progressbar.trough -sticky nswe -children {Vertical.Progressbar.pbar -side bottom -sticky we}
- //
- // Vertical.TScale
- //
- // Layout: Scale.focus -sticky nswe -children {Vertical.Scale.trough -sticky nswe -children {Vertical.Scale.track -sticky ns Vertical.Scale.slider -side top -sticky {}}}
- //
- // # "winnative" theme style guide
- //
- // "Button.border" style element options:
- //
- // - [Default]
- // - [Highlightcolor]
- // - [Relief]
- //
- // "Checkbutton.indicator" style element options:
- //
- // "Combobox.focus" style element options:
- //
- // - [Focusfill]
- //
- // "ComboboxPopdownFrame.border" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- // - [Relief]
- //
- // "Radiobutton.indicator" style element options:
- //
- // "Scrollbar.trough" style element options:
- //
- // "Spinbox.downarrow" style element options:
- //
- // "Spinbox.uparrow" style element options:
- //
- // "border" style element options:
- //
- // - [Relief]
- //
- // "client" style element options:
- //
- // "downarrow" style element options:
- //
- // "field" style element options:
- //
- // - [Fieldbackground]
- //
- // "focus" style element options:
- //
- // "leftarrow" style element options:
- //
- // "rightarrow" style element options:
- //
- // "sizegrip" style element options:
- //
- // "slider" style element options:
- //
- // - [Orient]
- //
- // "tab" style element options:
- //
- // - [Background]
- // - [Borderwidth]
- //
- // "thumb" style element options:
- //
- // - [Orient]
- //
- // "uparrow" style element options:
- //
- // "winnative" theme style list
- //
- // .
- //
- // Style map: -foreground {disabled SystemGrayText} -embossed {disabled 1}
- //
- // ComboboxPopdownFrame
- //
- // Layout: ComboboxPopdownFrame.border -sticky nswe
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.border -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}
- //
- // Style map: -relief {{!disabled pressed} sunken}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // TCombobox
- //
- // Layout: Combobox.field -sticky nswe -children {Combobox.downarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.focus -sticky nswe -children {Combobox.textarea -sticky nswe}}}
- //
- // Style map: -focusfill {{readonly focus} SystemHighlight} -foreground {disabled SystemGrayText {readonly focus} SystemHighlightText} -selectforeground {!focus SystemWindowText} -fieldbackground {readonly SystemButtonFace disabled SystemButtonFace} -selectbackground {!focus SystemWindow}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow} -fieldbackground {readonly SystemButtonFace disabled SystemButtonFace}
- //
- // TLabelframe
- //
- // Layout: Labelframe.border -sticky nswe
- //
- // TLabelframe.Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // TMenubutton
- //
- // Layout: Menubutton.border -sticky nswe -children {Menubutton.focus -sticky nswe -children {Menubutton.indicator -side right -sticky {} Menubutton.padding -sticky we -children {Menubutton.label -side left -sticky {}}}}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -expand {selected {2 2 2 0}}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // TScale
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -side top -sticky we -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Style map: -relief {disabled flat selected sunken pressed sunken active raised}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled SystemGrayText selected SystemHighlightText} -background {disabled SystemButtonFace selected SystemHighlight}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // # "xpnative" theme style guide
- //
- // "Button.button" style element options:
- //
- // "Checkbutton.indicator" style element options:
- //
- // "Combobox.downarrow" style element options:
- //
- // "Combobox.field" style element options:
- //
- // "Entry.field" style element options:
- //
- // "Horizontal.Progressbar.pbar" style element options:
- //
- // "Horizontal.Progressbar.trough" style element options:
- //
- // "Horizontal.Scale.slider" style element options:
- //
- // "Horizontal.Scale.track" style element options:
- //
- // "Horizontal.Scrollbar.grip" style element options:
- //
- // "Horizontal.Scrollbar.thumb" style element options:
- //
- // "Horizontal.Scrollbar.trough" style element options:
- //
- // "Labelframe.border" style element options:
- //
- // "Menubutton.button" style element options:
- //
- // "Menubutton.dropdown" style element options:
- //
- // "NotebookPane.background" style element options:
- //
- // "Radiobutton.indicator" style element options:
- //
- // "Scale.trough" style element options:
- //
- // "Scrollbar.downarrow" style element options:
- //
- // "Scrollbar.leftarrow" style element options:
- //
- // "Scrollbar.rightarrow" style element options:
- //
- // "Scrollbar.uparrow" style element options:
- //
- // "Spinbox.downarrow" style element options:
- //
- // "Spinbox.field" style element options:
- //
- // "Spinbox.uparrow" style element options:
- //
- // "Toolbutton.border" style element options:
- //
- // "Treeheading.border" style element options:
- //
- // "Treeitem.indicator" style element options:
- //
- // "Treeview.field" style element options:
- //
- // "Vertical.Progressbar.pbar" style element options:
- //
- // "Vertical.Progressbar.trough" style element options:
- //
- // "Vertical.Scale.slider" style element options:
- //
- // "Vertical.Scale.track" style element options:
- //
- // "Vertical.Scrollbar.grip" style element options:
- //
- // "Vertical.Scrollbar.thumb" style element options:
- //
- // "Vertical.Scrollbar.trough" style element options:
- //
- // "client" style element options:
- //
- // "sizegrip" style element options:
- //
- // "tab" style element options:
- //
- // "xpnative" theme style list
- //
- // .
- //
- // Style map: -foreground {disabled SystemGrayText}
- //
- // Heading
- //
- // Layout: Treeheading.cell -sticky nswe Treeheading.border -sticky nswe -children {Treeheading.padding -sticky nswe -children {Treeheading.image -side right -sticky {} Treeheading.text -sticky we}}
- //
- // Horizontal.TScale
- //
- // Layout: Scale.focus -sticky nswe -children {Horizontal.Scale.trough -sticky nswe -children {Horizontal.Scale.track -sticky we Horizontal.Scale.slider -side left -sticky {}}}
- //
- // Horizontal.TScrollbar
- //
- // Layout: Horizontal.Scrollbar.trough -sticky we -children {Horizontal.Scrollbar.leftarrow -side left -sticky {} Horizontal.Scrollbar.rightarrow -side right -sticky {} Horizontal.Scrollbar.thumb -sticky nswe -unit 1 -children {Horizontal.Scrollbar.grip -sticky {}}}
- //
- // Item
- //
- // Layout: Treeitem.padding -sticky nswe -children {Treeitem.indicator -side left -sticky {} Treeitem.image -side left -sticky {} Treeitem.text -sticky nswe}
- //
- // Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // TButton
- //
- // Layout: Button.button -sticky nswe -children {Button.focus -sticky nswe -children {Button.padding -sticky nswe -children {Button.label -sticky nswe}}}
- //
- // TCheckbutton
- //
- // Layout: Checkbutton.padding -sticky nswe -children {Checkbutton.indicator -side left -sticky {} Checkbutton.focus -side left -sticky w -children {Checkbutton.label -sticky nswe}}
- //
- // TCombobox
- //
- // Layout: Combobox.field -sticky nswe -children {Combobox.downarrow -side right -sticky ns Combobox.padding -sticky nswe -children {Combobox.focus -sticky nswe -children {Combobox.textarea -sticky nswe}}}
- //
- // Style map: -focusfill {{readonly focus} SystemHighlight} -foreground {disabled SystemGrayText {readonly focus} SystemHighlightText} -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // TEntry
- //
- // Layout: Entry.field -sticky nswe -border 1 -children {Entry.padding -sticky nswe -children {Entry.textarea -sticky nswe}}
- //
- // Style map: -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // TLabelframe.Label
- //
- // Layout: Label.fill -sticky nswe -children {Label.text -sticky nswe}
- //
- // TMenubutton
- //
- // Layout: Menubutton.dropdown -side right -sticky ns Menubutton.button -sticky nswe -children {Menubutton.padding -sticky we -children {Menubutton.label -sticky {}}}
- //
- // TNotebook
- //
- // Layout: Notebook.client -sticky nswe
- //
- // TNotebook.Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Style map: -expand {selected {2 2 2 2}}
- //
- // TProgressbar
- //
- // -
- //
- // TRadiobutton
- //
- // Layout: Radiobutton.padding -sticky nswe -children {Radiobutton.indicator -side left -sticky {} Radiobutton.focus -side left -sticky {} -children {Radiobutton.label -sticky nswe}}
- //
- // TScale
- //
- // -
- //
- // TScrollbar
- //
- // -
- //
- // TSpinbox
- //
- // Layout: Spinbox.field -side top -sticky we -children {null -side right -sticky {} -children {Spinbox.uparrow -side top -sticky e Spinbox.downarrow -side bottom -sticky e} Spinbox.padding -sticky nswe -children {Spinbox.textarea -sticky nswe}}
- //
- // Style map: -selectforeground {!focus SystemWindowText} -selectbackground {!focus SystemWindow}
- //
- // Tab
- //
- // Layout: Notebook.tab -sticky nswe -children {Notebook.padding -side top -sticky nswe -children {Notebook.focus -side top -sticky nswe -children {Notebook.label -side top -sticky {}}}}
- //
- // Toolbutton
- //
- // Layout: Toolbutton.border -sticky nswe -children {Toolbutton.focus -sticky nswe -children {Toolbutton.padding -sticky nswe -children {Toolbutton.label -sticky nswe}}}
- //
- // Treeview
- //
- // Layout: Treeview.field -sticky nswe -border 1 -children {Treeview.padding -sticky nswe -children {Treeview.treearea -sticky nswe}}
- //
- // Style map: -foreground {disabled SystemGrayText selected SystemHighlightText} -background {disabled SystemButtonFace selected SystemHighlight}
- //
- // Treeview.Separator
- //
- // Layout: Treeitem.separator -sticky nswe
- //
- // Vertical.TScale
- //
- // Layout: Scale.focus -sticky nswe -children {Vertical.Scale.trough -sticky nswe -children {Vertical.Scale.track -sticky ns Vertical.Scale.slider -side top -sticky {}}}
- //
- // Vertical.TScrollbar
- //
- // Layout: Vertical.Scrollbar.trough -sticky ns -children {Vertical.Scrollbar.uparrow -side top -sticky {} Vertical.Scrollbar.downarrow -side bottom -sticky {} Vertical.Scrollbar.thumb -sticky nswe -unit 1 -children {Vertical.Scrollbar.grip -sticky {}}}PASS
- //
- // [FreeBSD]: https://github.com/ebitengine/purego/blob/7402fed73989eaf478f4f7905862d0f04537ac8c/internal/fakecgo/freebsd.go#L15
- // [Go issue 54187]: https://github.com/golang/go/issues/54187
- // [MVP]: https://en.wikipedia.org/wiki/Minimum_viable_product
- // [RERO]: https://en.wikipedia.org/wiki/Release_early,_release_often
- // [Tkinter]: https://en.wikipedia.org/wiki/Tkinter
- // [X Window System]: https://en.wikipedia.org/wiki/X_Window_System
- // [cgo]: https://pkg.go.dev/cmd/cgo
- // [documentation for cmd/link]: https://pkg.go.dev/cmd/link
- // [equ]: https://pkg.go.dev/modernc.org/equ
- // [issue 54]: https://gitlab.com/cznic/tk9.0/-/issues/54
- // [issue 66]: https://gitlab.com/cznic/tk9.0/-/issues/66
- // [issue tracker]: https://gitlab.com/cznic/tk9.0/-/issues
- // [jnml's LiberaPay]: https://liberapay.com/jnml/donate
- // [modern-c.appspot.com]: https://modern-c.appspot.com/-/builder/?importpath=modernc.org%2ftk9.0
- // [purego]: https://github.com/ebitengine/purego
- // [secure-files-go-gui]: https://github.com/darshanags/secure-files-go-gui
- // [secure-files-go]: https://github.com/darshanags/secure-files-go
- // [tcl.tk site]: https://www.tcl-lang.org/man/tcl9.0/TkCmd/index.html
- // [tk9.0/vnc package]: https://pkg.go.dev/modernc.org/tk9.0/vnc
- // [tkinter.ttk site]: https://docs.python.org/3/library/tkinter.ttk.html
- // [tutorialspoint]: https://www.tutorialspoint.com/tcl-tk/tk_overview.htm
- // [visualmd]: https://pkg.go.dev/modernc.org/visualmd
- package tk9_0 // import "modernc.org/tk9.0"
|