Check-in [9b0ecd4b2e]

Login
Bounty program for improvements to Tcl and certain Tcl packages.

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

Overview
Comment:New TIP for Adrian Robert
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256:9b0ecd4b2e8d7758d9dbcfa480c4f8cc26d8e7494f5950ac6613e9dea359a39a
User & Date: dgp 2008-08-12 19:23:09
Context
2008-08-14
18:42
Revision through web from built credits <charlesetta@gmail.com> Very Nice Site! Thanx! http://excellent-credit-card.blogspot.com check-in: 8abe20c43d user: tclhttpd tags: trunk
2008-08-12
19:23
New TIP for Adrian Robert check-in: 9b0ecd4b2e user: dgp tags: trunk
19:20
try again check-in: 6e0e308a42 user: dgp tags: trunk
Changes

Added tip/324.tip.



















































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
TIP:		324
Title:		A Standard Dialog For Font Selection
Version:	$Revision: 1.1 $
Author:		Adrian Robert <adrian.b.robert@gmail.com>
State:		Draft
Type:		Project
Vote:		Pending
Created:	08-Aug-2008
Post-History: 
Keywords:	Tk
Obsoletes:	213
Tcl-Version:	8.6

~ Abstract

This TIP proposes a new command that pops up a dialog box that allows
the selection of a font. Where possible, this dialog will be
implemented using the host platform's standard dialogs.

~ Rationale

A number of platforms (Windows and MacOSX) have standard dialogs for
common user-oriented tasks, and Tk provides an interface to these
dialogs through commands such as '''tk_getOpenFile''' and '''tk_chooseColor'''.
However, another dialog that they provide and which some programs would
find useful is a font selector. This TIP proposes adding a command to
do just that; where a platform does not provide such a standard dialog,
one implemented using a Tcl script will be used instead.

~ Proposal

Tk shall have a new command, '''tk_chooseFont''', with the syntax described
below.

The dialog will not return a result as on some platforms (MacOSX) this is
required to be modeless while on others (Windows) it must be modal.
Therefore all actions will be done via a configured command prefix registered 
with '''tk_chooseFont configure -command'''. In the modal case clicking
either the ''Apply'' button (if present) or the ''OK'' button will cause the
command prefix to be called with the font specification appended as an
additional argument. If ''Cancel'' is chosen, or the dialog is closed
manually on platforms that permit this, this will be called with an empty
string.  (It will not be so called otherwise.)

 * '''tk_chooseFont configure''' ''?-option value ...?''

 >      Read or set (for all but 'visible' option) one or more of the following
        options.

 >      '''-parent''' -- This specifies the parent window of the dialog
        (similarly to the '''-parent''' option to other dialogs).

 >      '''-title''' -- This specifies the title of the dialog. If the platform
        specific dialog cannot support this then the option is ignored.

 >      '''-font''' -- This specifies the font shown in the dialog in any
        form given on the font(n) manual page (section "FONT DESCRIPTION").
        Provided it is  supported by the platform implementation this font
        will be selected when the dialog is displayed.

 >      '''-command''' -- This specifies a command prefix to be called when a
        font selection has been made by the user. The command will have the
        font specification appended as the final parameter and is then
        evaluated in the global namespace. The font specification will be
        a list of the form described on the font(n) manual page under
        "FONT DESCRIPTION" section 3. That is a list of {family size
        style ?style ...?}

 >      This command will be called with an empty string if the user closes
        the dialog (either by a ''Cancel'' button, close button, or other
        means.  (It will never be called with an empty string otherwise.)

 >      '''-visible''' -- This read-only option returns a boolean indicating
        whether the font dialog is currently being displayed.  Setting it has
        no effect.

 * '''tk_chooseFont hide'''

 >      Hides the font dialog if it is currently being shown and exits
        modal loop if dialog is modal on platform.  Returns the empty string.

 * '''tk_chooseFont show'''

 >      Shows the font dialog if it is currently hidden, and begins a modal
        loop if dialog is modal on platform.  On these platforms, this call
        returns when modal loop as exited.  Returns the empty string.

Whenever a platform provides a suitable font dialog in its own API, Tk
should not use a script-based alternative, even if this means missing
out on features like the title or dynamic updating of the font during
the selection process.

Application code should expect that the command prefix registered with
'''tk_chooseFont configure -command''' will be called any time the user
selects a font, even on platforms where the dialog is modal.

~ Reference Implementation

See Tk Patch 1477426.
[http://sourceforge.net/tracker/index.php?func=detail&aid=1477426&group_id=12997&atid=312997]

~ Copyright

This document has been placed in the public domain.