Thanks.
Hi !
PureTkGUI supports and comes with additional ttk:: themes : plastik
and keramic.
Thomas
Not being able to download PureTkGUI as all download links are removed
now, I tried to google the two themes and found them in Tile project,
and got a copy by CVS checkout. Apparently Tile chose to not to release
the two within their official packages. Thanks for hinting the theme
names anyway:)
In the tile cvs repository, you can also find tileqt/tilegtk, which will
allow you to use any Qt/GTK theme.
George
I cannot remember where I found the black theme (Just looked it has
Mats Bengtsson in so probably coccionella ?) it is < 40 loc so could
post it here if necessary
Martyn
I would like to see the dark clam theme. If anyone else has modified
ttk themes please share them.
@George
I'am sorry bute I don't think tilegtk/tileqt is really usable. Still
too many bugs and optical glitches. It is good work but not finished
and we would need native look & feel on Gtk / Qt.
Regards
There is a GSoC project on that, so it should become usable in a few months.
But it's not clear whether it will be fixing the current extensions, or
writing from scratch.
Oh really, did not know that. That sounds very promising. Perhaps it
will be available with Tcl/Tk 8.6, if we ever get that :D
package require Tk 8.5; # minimum version for Tile
namespace eval ttk {
namespace eval theme {
namespace eval black {
variable version 0.0.1
}
}
}
namespace eval ttk::theme::black {
#variable imgdir [file join [file dirname [info script]] black]
#variable I
#array set I [tile::LoadImages $imgdir *.png]
variable dir [file dirname [info script]]
# NB: These colors must be in sync with the ones in black.rdb
variable colors
array set colors {
-disabledfg "#999999"
-frame "#424242"
-dark "#222222"
-darker "#121212"
-darkest "black"
-lighter "#626262"
-lightest "#ffffff"
-selectbg "#4a6984"
-selectfg "#ffffff"
}
ttk::style theme create black -parent clam -settings {
#
-----------------------------------------------------------------
# Theme defaults
#
ttk::style configure "." \
-background $colors(-frame) \
-foreground white \
-bordercolor $colors(-darkest) \
-darkcolor $colors(-dark) \
-lightcolor $colors(-lighter) \
-troughcolor $colors(-darker) \
-selectbackground $colors(-selectbg) \
-selectforeground $colors(-selectfg) \
-selectborderwidth 0 \
-font TkDefaultFont \
;
ttk::style map "." \
-background [list disabled $colors(-frame) \
active $colors(-lighter)] \
-foreground [list disabled $colors(-disabledfg)] \
-selectbackground [list !focus $colors(-darkest)] \
-selectforeground [list !focus white] \
;
# ttk widgets.
ttk::style configure TButton \
-width -8 -padding {5 1} -relief raised
ttk::style configure TMenubutton \
-width -11 -padding {5 1} -relief raised
ttk::style configure TCheckbutton \
-indicatorbackground "#ffffff" -indicatormargin {1 1 4 1}
ttk::style configure TRadiobutton \
-indicatorbackground "#ffffff" -indicatormargin {1 1 4 1}
ttk::style configure TEntry \
-fieldbackground white -foreground black \
-padding {2 0}
ttk::style configure TCombobox \
-fieldbackground white -foreground black \
-padding {2 0}
ttk::style configure TNotebook.Tab \
-padding {6 2 6 2}
# tk widgets.
ttk::style map Menu \
-background [list active $colors(-lighter)] \
-foreground [list disabled $colors(-disabledfg)]
ttk::style configure TreeCtrl \
-background gray30 -itembackground {gray60 gray50} \
-itemfill white -itemaccentfill yellow
}
}
# A few tricks for Tablelist.
namespace eval tablelist {}
proc tablelist::blackTheme {} {
variable themeDefaults
array set colors [array get ttk::theme::black::colors]
array set themeDefaults [list \
-background white \
-foreground black \
-disabledforeground "#999999" \
-stripebackground "" \
-selectbackground $colors(-selectbg) \
-selectforeground $colors(-selectfg) \
-selectborderwidth 0 \
-font TkTextFont \
-labelbackground $colors(-frame) \
-labeldisabledBg "#dcdad5" \
-labelactiveBg "#eeebe7" \
-labelpressedBg "#eeebe7" \
-labelforeground white \
-labeldisabledFg "#999999" \
-labelactiveFg white \
-labelpressedFg white \
-labelfont TkDefaultFont \
-labelborderwidth 2 \
-labelpady 1 \
-arrowcolor "" \
-arrowstyle sunken10x9 \
]
}
package provide ttk::theme::black $::ttk::theme::black::version
The important line is the
ttk::style theme create black -parent clam -settings
which inherits and overrides the clam settings.
There was talk (at the European TCL User Meeting) of a central
collection (Wiki maybe) of user defined themes.
Martyn
I see that this rumor circulates c.l.t, but I am not sure it is true.
As a user, you may see some visual glitches in tileqt for example, and
it is easy to attribute them as tileQt bugs. In reality these may be due
to limitations of the Qt engine, or even bugs in the Qt style
themselves. And these cannot be fixed. Just use a theme that is correct :-)
The GTK themes are more primitive, and thus easier to support. But the
configuration system of gtk is a mess. Even if there are some visual
glitches there (of course I have not tested all themes), it is still
your best bet right now.
For me, bugs are when tileqt/tilegtk crash and terminate your
application. Visual differences with native apps are not bugs, but
adjustments that are theme specific, that can be fixed from the Tcl
level. Lot's of theme declare wrong element dimensions, which are fixed
by qt or gtk due to other reasons. In ttk themes these fixes cannot be
applied automatically.
And finally, there is always the option to try and use them, and report
bugs. But please don't report bugs on forked projects: in such a case
report the bugs into the authors of the forked projects directly :-)
George
Hi George,
ok you might be right optical glitches do not have to be a bug.
Unfortunately Jos Decoster stopped working on tileqt despite he was
already there. Ok it does not help to complain, like I said you did a
splendid job. I will retry tilegtk this evening to see what it looks
like.
Regards
This looks quite nice and a central collection of tile themes would be
great. I have one Problem with your code, the border of labelframes is
invisible and the selected item in a treeview widget has no special
color. In the clam theme this is some dark blue. But I got the general
idea and may be able to rework your code so it is working as I want.
Thank you!
Regards
Sorry George, can you explain why you used Qt classes inside tilegtk?
Regards,
Igor Novikov
sK1 Project
http://sk1project.org
I am not sure I use Qt classes in tilegtk. Can you please point me a
place in the sources that I do use Qt?
George
Your application has a very professional look. Do you use tileqt/tilegtk
in it?
If yes, I would be very interested to hear problems you may have with
them, or features you may want :-)
George
For example in tileGtk_Separator.cpp in function SeparatorElementDraw
there are references on QPixmap, QPainter, QStyle, QRect etc. And not
only in this file. The project cannot be compiled under Ubuntu without
Qt installed.
Igor
sK1 uses python driven ttk bitmap theme. Actually we need native theme
like tilegtk
but it seems it's impossible to compile native theme for conventional
tcl/tk 8.5.x
Or may be you have found a way? As I googled your answers in mail
lists was
rather negative concerning this issue.
Regards,
Igor
Yes, you are right. I will fix this, as I haven't noticed that there
were remains (as I always have Qt in my systems).
George
Dear Igor,
I am looking at the code, and despite the fact that there are remains of
Qt stuff in some files, I cannot see how these prevent you for building
tile-gtk. I have just tested building tile-gtk under Ubuntu 10.4, and
builds without a glitch. The file with the Qt references is not included
in the build, and this is why tile-gtk compiles.
How did you tried to compile tile-gtk?
The correct way is to go inside the cmake directory, run sh
build(_64).sh, then go inside the proper directory (release/debug) and
run make install.
George