Check-in [f222243ce8]

Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Add TIP 517 - Add -activerelief Configuration Option to the menu widget
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f222243ce8c106a21ecd58313e13239c01d9871397cfce368b18ee02a55a84c0
User & Date: fvogel 2018-09-12 20:43:51
Context
2018-09-12
20:49
Add link to alternate implementation for TIP 517 check-in: 6982ad54c8 user: fvogel tags: trunk
20:43
Add TIP 517 - Add -activerelief Configuration Option to the menu widget check-in: f222243ce8 user: fvogel tags: trunk
19:43
TIP 430 Accepted (fixing metadata fumble) check-in: b8b5c63b54 user: dkf tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to index.json.

     1      1   {"tip": {
            2  +	"517":{"url":"./tip/517.md","keywords":"tk menu","created":"13-Sept-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 517: Add -activerelief Configuration Option to the menu widget","author":["Francois Vogel <[email protected]>"],"is-jest":false},
     2      3   	"516":{"url":"./tip/516.md","keywords":"Tcl, TclOO","created":"7-Sept-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 516: More OO Slot Operations","author":["Donal K. Fellows <[email protected]>"],"is-jest":false},
     3      4   	"515":{"url":"./tip/515.md","created":"7-Sept-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 515: Level Value Reform","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
     4      5   	"514":{"url":"./tip/514.md","keywords":"Tcl","created":"20-Aug-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 514: Platform differences in handling int/wide","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
     5      6   	"513":{"url":"./tip/513.md","keywords":"Tcl,data structure","created":"02-Aug-2017","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 513: Better support for 'agendas' as arrays, dictionaries or lists","author":["Florian Murr <[email protected]>"],"is-jest":false},
     6      7   	"512":{"url":"./tip/512.md","keywords":"Tcl","created":"25-June-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 512: No stub for Tcl_SetExitProc()","author":["Jan Nijtmans <[email protected]>"],"is-jest":false},
     7      8   	"511":{"url":"./tip/511.md","keywords":"Tcl,threads","created":"14-June-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"Pending","type":"Project","title":"# TIP 511: Implement Tcl_AsyncMarkFromSignal()","author":["Christian Werner <[email protected]>"],"is-jest":false},
     8      9   	"510":{"url":"./tip/510.md","keywords":"Tk","created":"5-Jun-2018","post-history":"","state":"Draft","tcl-version":"8.7","vote":"","type":"Project","title":"# TIP 510: Add Rbc to Tk","author":["RenĂ© Zaumseil <[email protected]>"],"is-jest":false},
................................................................................
   513    514   	"5":{"url":"./tip/5.md","created":"17-Oct-2000","post-history":"","state":"Final","vote":"Done","tcl-version":"8.4","type":"Project","title":"# TIP 5: Make TkClassProcs and TkSetClassProcs Public and Extensible","author":["Eric Melski <[email protected]>"],"is-jest":false},
   514    515   	"4":{"url":"./tip/4.md","created":"26-Oct-2000","post-history":"","state":"Draft","vote":"Pending","type":"Informative","title":"# TIP 4: Tcl Release and Distribution Philosophy","discussions-to":"news comp.lang.tcl","author":["Brent Welch <[email protected]>","Donal K. Fellows <[email protected]>","Larry W. Virden <[email protected]>","Larry W. Virden <[email protected]>"],"is-jest":false},
   515    516   	"3":{"url":"./tip/3.md","created":"14-Sep-2000","post-history":"","state":"Accepted","vote":"Done","type":"Process","title":"# TIP 3: TIP Format","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>"],"is-jest":false},
   516    517   	"2":{"url":"./tip/2.md","created":"12-Sep-2000","post-history":"","state":"Draft","vote":"Pending","type":"Process","title":"# TIP 2: TIP Guidelines","author":["Andreas Kupries <[email protected]>","Donal K. Fellows <[email protected]>","Don Porter <[email protected]>","Mo DeJong <[email protected]>","Larry W. Virden <[email protected]>","Kevin Kenny <[email protected]>"],"is-jest":false},
   517    518   	"1":{"url":"./tip/1.md","created":"14-Sep-2000","post-history":"","state":"Active","vote":"No voting","type":"Informational","title":"# TIP 1: TIP Index","author":["TIP Editor <[email protected]>"],"is-jest":false},
   518    519   	"0":{"url":"./tip/0.md","created":"11-Dec-2000","post-history":"","state":"Final","vote":"Done","type":"Process","title":"# TIP 0: Tcl Core Team Basic Rules","author":["John Ousterhout <[email protected]>"],"is-jest":false},
   519    520   	"@min": 0,
   520         -	"@max": 516
   521         -}, "@timestamp": 1536781380}
          521  +	"@max": 517
          522  +}, "@timestamp": 1536784981}

Changes to index.md.

   115    115   <th>#</th>
   116    116   <th>Type</th>
   117    117   <th>Tcl Version</th>
   118    118   <th>Status</th>
   119    119   <th>Title</th>
   120    120   </tr></thead><tbody>
   121    121   
          122  +<tr class='project projectdraft projectdraft87 project87'>
          123  +<td valign='top'><a href='./tip/517.md'>517</a></td>
          124  +<td valign='top'>Project</td>
          125  +<td valign='top'>8.7</td>
          126  +<td valign='top'>Draft</td>
          127  +<td valign='top'># TIP 517: Add -activerelief Configuration Option to the menu widget</td>
          128  +</tr>
   122    129   <tr class='project projectdraft projectdraft87 project87'>
   123    130   <td valign='top'><a href='./tip/516.md'>516</a></td>
   124    131   <td valign='top'>Project</td>
   125    132   <td valign='top'>8.7</td>
   126    133   <td valign='top'>Draft</td>
   127    134   <td valign='top'># TIP 516: More OO Slot Operations</td>
   128    135   </tr>

Added tip/517.md.

            1  +# TIP 517: Add -activerelief Configuration Option to the menu widget
            2  +	Author:         Francois Vogel <[email protected]>
            3  +	State:          Draft
            4  +	Type:           Project
            5  +	Vote:           Pending
            6  +	Created:        13-Sept-2018
            7  +	Post-History:
            8  +	Keywords:       tk menu
            9  +	Tcl-Version:    8.7
           10  +-----
           11  +
           12  +# Abstract
           13  +
           14  +This TIP proposes to get rid of the motif-style rendering that is still how the active menu entry is rendered on Linux.
           15  +
           16  +# Rationale
           17  +
           18  +On Linux, the active entry of menues is rendered with a **TK\_RELIEF\_RAISED** relief. This is hardcoded in ***unix/tkUnixMenu.c*** which prevents users from having, say, a flat rendering which is usually praised as more modern.
           19  +
           20  +This issue originally surfaced in [bug 43b596451e] (https://core.tcl-lang.org/tk/tktview/43b596451ec6b59359145ff32e689a2eec70bb85).
           21  +
           22  +# Proposal
           23  +
           24  +It is proposed to add an **-activerelief** configuration option to the menu widget, to make the relief of the active entry configurable. Acceptable values are **raised**, **sunken**, **flat**, **ridge**, **solid**, and **groove**. 
           25  +
           26  +For backwards compatibility reasons, this new option will have its defaults such that the rendering is unchanged compared to the current state of affairs, i.e. it will be **raised** on Linux, and **flat** on other platforms.
           27  +
           28  +This new option will be accepted on all platforms, however on macOS it will be silently ignored since the native menues are used on this platform (***TkpDrawMenuEntry*** is an empty procedure on macOS).
           29  +
           30  +# Alternatives
           31  +
           32  +Alternatively, instead of adding a new **-activerelief** menu option, the issue raised in [bug 43b596451e] (https://core.tcl-lang.org/tk/tktview/43b596451ec6b59359145ff32e689a2eec70bb85) could be resolved by changing the rendering of the active entry in Linux menues to become **TK\_RELIEF\_FLAT**, and keep the current **TK\_RELIEF\_RAISED** only if **tk\_strictMotif** is set. The drawback is that this would constitute a backwards incompatible change - However in turn this could be deemed acceptable in the current alpha state of 8.7.
           33  +
           34  +Having balanced the pros and cons between the two approaches, I'd prefer to add **-activerelief**, which in addition to be a backwards compatible change, has the merit of introducing additional configuration flexibility.
           35  +
           36  +# Implementation
           37  +
           38  +An implementation of this TIP can be found in the [tip-517 branch]
           39  +(https://core.tcl.tk/tk/timeline?r=tip-517).
           40  +
           41  +# Copyright
           42  +
           43  +This document has been placed in the public domain.
           44  +