<div id="__MailbirdStyleContent" style="font-size: 12pt;font-family: calibri;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Hannes,<div><br></div><div>I wasn't aware of these wiki pages. :) Looks good. Yet, I would rather add more application code examples:</div><div><br></div><div>   label color: (self userInterfaceTheme unfocusedLabelColor ifNil: [Color darkGray]).</div><div><div><br></div><div>   (self userInterfaceTheme unfocusedWindowColorModifier ifNil: [ [:color | color darker] ]) <span style="font-size: 12pt;line-height: 1.5">value: self paneColorToUse.</span></div></div><div><br></div><div>   text addAttribute: (TextFontReference toFont: (self userInterfaceTheme font ifNil: [TextStyle defaultFont])).</div><div><br></div><div>   (self userInterfaceTheme selectionModifier ifNil: [ [:c | c muchLighter] ]) value: (aButton valueOfProperty: #normalColor).</div><div><br></div><div>The code itself is a good documentation, too:</div><div>- Look at the tests in UserInterfaceThemeTest.</div><div>- Browse senders of #userInterfaceTheme.</div><div>- Browse implementors of #setDefaultParameters in conjunction with implementors of #applyUserInterfaceTheme.</div><div>- Browse implementors/senders of #themeProperties --- which is part of the update logic during theme switches BUT ALSO a  tool interface for UI-Theme-Design-Tools yet to be implemented. :-D</div><div><br></div><div><img src="cid:3019b1d0-fd2f-46e3-b1d1-8ca1bb904385" width="auto"></img></div><div><br></div><div><img src="cid:697faf0b-6636-4575-a94e-d5e51d4a9449" width="auto"></img></div><div><img src="cid:ebd66b7e-a4a9-44e9-a4a5-05b0d1262be4" width="auto"></img></div><div><br></div><div>Programming tools are paramount for understanding code, objects, behavior, .... Especially in a live environment such as Squeak. ;-)</div><div><br></div><div>Best,</div><div>Marcel </div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 16.09.2017 13:49:56 schrieb H. Hirzel <hannes.hirzel@gmail.com>:</p>Hello Marcel<br><br>Thank you for the clarifications about the user interface themes<br>(UserInterfaceTheme [1]). May we consider this as a start of a<br>documentation ?<br><br>Or is there more from your side?<br><br>:-)<br><br>Regards<br><br>--Hannes<br><br>[1] UserInterfaceTheme<br>http://wiki.squeak.org/squeak/6508<br><br>On 9/16/17, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:<br>> Hi Tim,<br>><br>> I am sorry that the core mechanism of the User Interface Themes confuses<br>> you. :) The idea of application-specific UI properties, such as window<br>> colors, kind of overlaps/interferes with the idea of general widget<br>> theming.<br>><br>> If you want to work around the UI theming to provide a window color for your<br>> tool, just implement #windowColorToUse. If not, just implement<br>> #defaultWindowColor like all other tools in the system do. Try the<br>> implementors tool to verify. :-)<br>><br>> It is not that difficult. You already found Model >> #windowColorToUse. Now<br>> you can use the Squeak's implementors tool to browse implementors of all the<br>> symbols you can find in that method: #( useColorfulWindows customWindowColor<br>> defaultWindowColor uniformWindowColor). I suppose that that journey ends<br>> after a few minutes when you discover:<br>><br>><br>> Best,<br>> Marcel<br>> Am 16.09.2017 02:00:18 schrieb tim Rowledge <tim@rowledge.org>:<br>> A couple of months back Eliot asked about this and I have a few minutes to<br>> spend to maybe fix it.<br>><br>> I notice that Model>windowColorToUse sends #customWindowColor, which is not<br>> implemented. Which would seemingly lead us to expect a debugger but I see<br>> some very… interesting code in UserInterfaceTheme where a dNU: is caught and<br>> Very Odd Things are done. Ten out of ten for creative and intriguing code,<br>> minus several million for completely obscured intent.<br>><br>> At the least it would be nice to have an implementation *somewhere* that<br>> explains what is being done, why, and maybe even how we can move to a<br>> simpler scheme.<br>><br>> Related things I noticed -<br>> EToys-Squeakland adds Object, StringHolder & TranscriptStream class ><br>> windowColorSpecification which seem to be in need of removal.<br>> PreferencesPanel class>windowColorSpecification is seemingly in need of the<br>> chop<br>> WindowColorRegistry, the only sender of windowColorSpecification, is in the<br>> deprecated categories, though yes, i nthe 5.1 deprecation pile so maybe is<br>> has to stay for now.<br>><br>> tim<br>> --<br>> tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim<br>> Strange OpCodes: WK: Write to Keyboard<br>><br>><br>><br>><br><br></tim@rowledge.org></marcel.taeumel@hpi.de>
                        </blockquote></div>