Tk Source Code

Changes On Branch tip-675
Login

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

Changes In Branch bug-3531366fff Excluding Merge-Ins

This is equivalent to a diff from e0b1879c to 5d2d3ee6

2023-07-08
13:17
Merge tip-675 branch: On and off default blink times for Ttk widgets can be overriden with values obtained from the option database (if such values are specified). check-in: d0a86f93 user: fvogel tags: trunk, main
2023-07-01
20:29
Add time-outs to the Tk tests steps in GitHub workflows. check-in: 81948c2c user: fvogel tags: trunk, main
18:11
merge trunk Closed-Leaf check-in: 5d2d3ee6 user: fvogel tags: bug-3531366fff, tip-675
18:10
Document the possibility of overriding the on and off default blink times. check-in: bd491642 user: fvogel tags: bug-3531366fff, tip-675
17:00
Improve documentation of the priority levels in the man page for Tk_AddOption(). check-in: e0b1879c user: fvogel tags: trunk, main
16:58
Improve documentation of the priority levels in the man page for Tk_AddOption(). check-in: 7904bba4 user: fvogel tags: core-8-6-branch
16:44
Fix another error in man page introduced in [20e9d21a]. check-in: 31537b52 user: fvogel tags: trunk, main

Changes to doc/ttk_style.n.

180
181
182
183
184
185
186
187

188
189
190
191
192
193
194
195

196
197
198
199
200
201
202
.PP
\fB\-insertofftime\fP \fIamount\fP
.RS
Specifies a non-negative integer value indicating the number of milliseconds
the insertion cursor should remain
.QW off
in each blink cycle. If this option is zero then the cursor does not blink:
it is on all the time.

.RE
.PP
\fB\-insertontime\fP \fIamount\fP
.RS
Specifies a non-negative integer value indicating the number of milliseconds
the insertion cursor should remain
.QW on
in each blink cycle.

.RE
.SH "SEE ALSO"
ttk::intro(n), ttk::widget(n), photo(n), ttk_image(n)
.SH KEYWORDS
style, theme, appearance
'\" Local Variables:
'\" mode: nroff







|
>







|
>







180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
.PP
\fB\-insertofftime\fP \fIamount\fP
.RS
Specifies a non-negative integer value indicating the number of milliseconds
the insertion cursor should remain
.QW off
in each blink cycle. If this option is zero then the cursor does not blink:
it is on all the time. Defaults to 300 ms, unless overriden with a
\fBRESOURCE_MANAGER\fR property or \fB.Xdefaults\fR file.
.RE
.PP
\fB\-insertontime\fP \fIamount\fP
.RS
Specifies a non-negative integer value indicating the number of milliseconds
the insertion cursor should remain
.QW on
in each blink cycle. Defaults to 600 ms, unless overriden with a
\fBRESOURCE_MANAGER\fR property or \fB.Xdefaults\fR file.
.RE
.SH "SEE ALSO"
ttk::intro(n), ttk::widget(n), photo(n), ttk_image(n)
.SH KEYWORDS
style, theme, appearance
'\" Local Variables:
'\" mode: nroff

Changes to generic/ttk/ttkBlink.c.

46
47
48
49
50
51
52



53
54
55
56
57
58
59





















60
61
62
63
64
65
66
/* GetCursorManager --
 * 	Look up and create if necessary the interp's cursor manager.
 */
static CursorManager *GetCursorManager(Tcl_Interp *interp)
{
    static const char *cm_key = "ttk::CursorManager";
    CursorManager *cm = (CursorManager *)Tcl_GetAssocData(interp, cm_key,0);




    if (!cm) {
	cm = (CursorManager *)ckalloc(sizeof(*cm));
	cm->timer = 0;
	cm->owner = 0;
	cm->onTime = DEF_CURSOR_ON_TIME;
	cm->offTime = DEF_CURSOR_OFF_TIME;





















	Tcl_SetAssocData(interp, cm_key, CursorManagerDeleteProc, cm);
    }
    return cm;
}

/* CursorBlinkProc --
 *	Timer handler to blink the insert cursor on and off.







>
>
>







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







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
/* GetCursorManager --
 * 	Look up and create if necessary the interp's cursor manager.
 */
static CursorManager *GetCursorManager(Tcl_Interp *interp)
{
    static const char *cm_key = "ttk::CursorManager";
    CursorManager *cm = (CursorManager *)Tcl_GetAssocData(interp, cm_key,0);
    Tk_Window window;
    Tk_Uid value;
    int intValue;

    if (!cm) {
	cm = (CursorManager *)ckalloc(sizeof(*cm));
	cm->timer = 0;
	cm->owner = 0;
	cm->onTime = DEF_CURSOR_ON_TIME;
	cm->offTime = DEF_CURSOR_OFF_TIME;

	/* Override on and off default times with values obtained from
	 * the option database (if such values are specified).
	 */

	window = Tk_MainWindow(interp);
	if (window) {
	    value = Tk_GetOption(window, "insertOnTime", "OnTime");
	    if (value) {
		if (Tcl_GetInt(interp, value, &intValue) == TCL_OK) {
		    cm->onTime = intValue;
		}
	    }
	    value = Tk_GetOption(window, "insertOffTime", "OffTime");
	    if (value) {
		if (Tcl_GetInt(interp, value, &intValue) == TCL_OK) {
		    cm->offTime = intValue;
		}
	    }
	}

	Tcl_SetAssocData(interp, cm_key, CursorManagerDeleteProc, cm);
    }
    return cm;
}

/* CursorBlinkProc --
 *	Timer handler to blink the insert cursor on and off.