| Deutsch English Français Italiano |
|
<vnqsmv$174h6$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Eric Brunel <eric.brunel@pragmadev.com> Newsgroups: comp.lang.tcl Subject: Re: Treeview item indicators in image-based themes vs Tk 9 Date: Mon, 3 Feb 2025 17:00:16 -0000 (UTC) Organization: A noiseless patient Spider Lines: 72 Message-ID: <vnqsmv$174h6$2@dont-email.me> References: <vnq5d7$174h6$1@dont-email.me> <vnq6en$15eqg$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Mon, 03 Feb 2025 18:00:16 +0100 (CET) Injection-Info: dont-email.me; posting-host="1066a817d2f9b5bbec517323be4cc8f9"; logging-data="1282598"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1859qRhUWiibx6PKSONfGI0nZYbFCafgQE=" User-Agent: Pan/0.146 (Hic habitat felicitas; 8107378 git@gitlab.gnome.org:GNOME/pan.git) Cancel-Lock: sha1:awrQUjfFqZXicVBInQg5/3vSCsk= Bytes: 3583 On Mon, 3 Feb 2025 11:40:23 +0100, Harald Oehlmann wrote: > Am 03.02.2025 um 11:22 schrieb Eric Brunel: >> Hello all, >> >> I've recently switched to tcl/tk 9.0 and I discovered what seems to be >> an issue with image-based themes having an image for the treeview item >> open/ close indicators. >> >> In tcl/tk 8.6, the styling for these indicators are usually done via >> something like this: >> >> ttk::style element create Treeitem.indicator \ >> image [list $image_for_closed \ >> user1 $image_for_open \ >> user2 $image_for_no_children \ >> ] ... >> >> But this doesn't seem to work in tk 9: now all items have an indicator >> showing the image_for_closed whether they have children or not, and >> whether the item is opened or not. >> >> I suspect a change in the names for the states "user1" and "user2" - >> which were admittedly not very user-friendly - but I just can't find >> any reference for these, and by what I should replace them in tk 9 if >> that's indeed the problem. >> >> Any pointers would be greatly appreciated. >> >> Thanks! >> -- Eric > > Thanks, Eric, > I lightly remeber some discussion on this by Csaba, when those images > passed to svg format with Tk 9. > It would be worthwile to post this as tk bug, as the migration notes > dont mention this: > https://core.tcl-lang.org/tk/wiki?name=Migrating+scripts+to+Tk+9&p > > Thanks, > Harald Thanks Harald. I did post this as a tk bug. I've also dived a little into the source code, and I think I found out the culprit: in generic/ttk/ttkThemeInt.h, there is a set of #define directives that go: #define TTK_STATE_OPEN (1<<16) #define TTK_STATE_LEAF (1<<17) #define TTK_STATE_FIRST (1<<18) #define TTK_STATE_LAST (1<<19) while in generic/ttk/ttkTheme.h, the constants for the states that are accessible for styling only go up to (1<<15) for TTK_STATE_USER1. So it seems the states the represent the 'open' and 'leaf' states for treeview items can no more be used in styles, which is a bit of a shame. But if I replace the first two defines in ttkThemeInt.h with: #define TTK_STATE_OPEN TTK_STATE_USER1 #define TTK_STATE_LEAF TTK_STATE_USER2 I can get the old behavior back, and the image-based styles work as they used to. So I'm going to keep it that way for now. I hope it won't cause any weird side effect. Thanks again! -- Eric