Check-in [104960adc4]
Not logged in

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

Overview
Comment:merge with trunk
Timelines: family | ancestors | descendants | both | wtf-8-experiment
Files: files | file ages | folders
SHA1: 104960adc4b4f6d8fad2b86168401a64d65de472
User & Date: chw 2019-07-08 09:14:00.117
Context
2019-07-12
16:43
merge with trunk check-in: 38e2e19036 user: chw tags: wtf-8-experiment
2019-07-08
09:14
merge with trunk check-in: 104960adc4 user: chw tags: wtf-8-experiment
09:12
improve double-click handler in TSB check-in: 4fec6e8cc6 user: chw tags: trunk
2019-07-07
08:26
merge with trunk check-in: fea67f041d user: chw tags: wtf-8-experiment
Changes
Unified Diff Ignore Whitespace Patch
Changes to jni/sdl2tk/library/button.tcl.
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
    }

    set Priv(window) ""
}

if {$::tk::android} {
    bind Checkbutton <<FingerUp>> {
	if {%s == 1} {tk::CheckLeave %W}
    }
    bind Button <<FingerUp>> {
	if {%s == 1} {tk::ButtonLeave %W}
    }
    bind Radiobutton <<FingerUp>> {
	if {%s == 1} {tk::ButtonLeave %W}
    }
}

return

# Local Variables:
# mode: tcl







|


|


|







775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
    }

    set Priv(window) ""
}

if {$::tk::android} {
    bind Checkbutton <<FingerUp>> {
	if {%s == 1} {event generate %W <Leave>}
    }
    bind Button <<FingerUp>> {
	if {%s == 1} {event generate %W <Leave>}
    }
    bind Radiobutton <<FingerUp>> {
	if {%s == 1} {event generate %W <Leave>}
    }
}

return

# Local Variables:
# mode: tcl
Changes to jni/sdl2tk/library/demos/ctext.tcl.
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

set textFont {Helvetica -24}

$c create rectangle 245 195 255 205 -outline black -fill red

# First, create the text item and give it bindings so it can be edited.

$c addtag text withtag [$c create text 250 200 -text "This is just a string of text to demonstrate the text facilities of canvas widgets. Bindings have been been defined to support editing (see above)." -width 440 -anchor n -font $textFont -justify left]
$c bind text <1> "textB1Press $c %x %y"
$c bind text <B1-Motion> "textB1Move $c %x %y"
$c bind text <Shift-1> "$c select adjust current @%x,%y"
$c bind text <Shift-B1-Motion> "textB1Move $c %x %y"
$c bind text <KeyPress> "textInsert $c %A"
$c bind text <Return> "textInsert $c \\n"
$c bind text <Control-h> "textBs $c"







|







36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

set textFont {Helvetica -24}

$c create rectangle 245 195 255 205 -outline black -fill red

# First, create the text item and give it bindings so it can be edited.

$c addtag text withtag [$c create text 250 200 -text "This is just a string of text to demonstrate the text facilities of canvas widgets. Bindings have been defined to support editing (see above)." -width 440 -anchor n -font $textFont -justify left]
$c bind text <1> "textB1Press $c %x %y"
$c bind text <B1-Motion> "textB1Move $c %x %y"
$c bind text <Shift-1> "$c select adjust current @%x,%y"
$c bind text <Shift-B1-Motion> "textB1Move $c %x %y"
$c bind text <KeyPress> "textInsert $c %A"
$c bind text <Return> "textInsert $c \\n"
$c bind text <Control-h> "textBs $c"
Changes to jni/sdl2tk/library/menu.tcl.
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
    tk::MbEnter %W
}
bind Menubutton <Leave> {
    tk::MbLeave %W
}
if {$::tk::android} {
    bind Menubutton <<FingerUp>> {
	if {%s == 1} {tk::MbLeave %W}
    }
}
bind Menubutton <1> {
    if {$tk::Priv(inMenubutton) ne ""} {
	tk::MbPost $tk::Priv(inMenubutton) %X %Y
    }
}







|







86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
    tk::MbEnter %W
}
bind Menubutton <Leave> {
    tk::MbLeave %W
}
if {$::tk::android} {
    bind Menubutton <<FingerUp>> {
	if {%s == 1} {event generate %W <Leave>}
    }
}
bind Menubutton <1> {
    if {$tk::Priv(inMenubutton) ne ""} {
	tk::MbPost $tk::Priv(inMenubutton) %X %Y
    }
}
Changes to jni/sdl2tk/library/ttk/button.tcl.
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
bind TButton <Enter> 		{ %W instate !disabled {%W state active} }
bind TButton <Leave>		{ %W state !active }
bind TButton <Key-space>	{ ttk::button::activate %W }
bind TButton <<Invoke>> 	{ ttk::button::activate %W }

if {$::tk::android} {
    bind TButton <<FingerUp>> {
	if {%s == 1} { %W instate active { %W state !active } }
    }
    bind TButton <ButtonPress-1> {
	%W instate !disabled {
	    %W instate !active { %W state active }
	    ttk::clickToFocus %W
	    %W state pressed
	}







|







21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
bind TButton <Enter> 		{ %W instate !disabled {%W state active} }
bind TButton <Leave>		{ %W state !active }
bind TButton <Key-space>	{ ttk::button::activate %W }
bind TButton <<Invoke>> 	{ ttk::button::activate %W }

if {$::tk::android} {
    bind TButton <<FingerUp>> {
	if {%s == 1} { event generate %W <Leave> }
    }
    bind TButton <ButtonPress-1> {
	%W instate !disabled {
	    %W instate !active { %W state active }
	    ttk::clickToFocus %W
	    %W state pressed
	}
Changes to jni/sdl2tk/library/ttk/menubutton.tcl.
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
bind TMenubutton <Leave>	{ %W state !active }
bind TMenubutton <Key-space> 	{ ttk::menubutton::Popdown %W }
bind TMenubutton <<Invoke>> 	{ ttk::menubutton::Popdown %W }

if {[tk windowingsystem] eq "x11"} {
    if {$::tk::android} {
	bind TMenubutton <<FingerUp>> {
	    if {%s == 1} { %W instate active { %W state !active } }
	}
    }
    bind TMenubutton <ButtonPress-1>  	{ ttk::menubutton::Pulldown %W }
    bind TMenubutton <ButtonRelease-1>	{ ttk::menubutton::TransferGrab %W }
    bind TMenubutton <B1-Leave> 	{ ttk::menubutton::TransferGrab %W }
} else {
    bind TMenubutton <ButtonPress-1>  \







|







48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
bind TMenubutton <Leave>	{ %W state !active }
bind TMenubutton <Key-space> 	{ ttk::menubutton::Popdown %W }
bind TMenubutton <<Invoke>> 	{ ttk::menubutton::Popdown %W }

if {[tk windowingsystem] eq "x11"} {
    if {$::tk::android} {
	bind TMenubutton <<FingerUp>> {
	    if {%s == 1 && [winfo exists %W]} { event generate %W <Leave> }
	}
    }
    bind TMenubutton <ButtonPress-1>  	{ ttk::menubutton::Pulldown %W }
    bind TMenubutton <ButtonRelease-1>	{ ttk::menubutton::TransferGrab %W }
    bind TMenubutton <B1-Leave> 	{ ttk::menubutton::TransferGrab %W }
} else {
    bind TMenubutton <ButtonPress-1>  \
Changes to undroid/tsb/examples/cheatsheet.tsb.
1
2
3
4
5
6
7
8
9

10
11
12
13
14
15
16
1 {#HTML
<center><h2>Taygete Scrap Book Cheat Sheet<br><br></h2></center>} 2 {h3 "Important (internal) global variables"} 3 {table {{global variable}} [info global {[A-Z]*}]} 4 {#HTML
<dl>
 <dt><b>ID</b></dt>
 <dd>The current input field during evaluation, an integer number.</dd>
 <dt><b>W</b></dt>
 <dd>The Webview for displaying the page.</dd>
 <dt><b>H</b></dt>
 <dd>The history array of input fields, keys are integer numbers starting from 1.</dd>

</dl>} 5 {# current state of history array
table {key value} [array get H]} 6 {h3 "Useful procs in the global namespace"} 7 {lsort [info proc {[a-z]*}]} 8 {#HTML
<dl>
 <dt><code><b>gets</b></code>, <code><b>read</b></code></dt>
 <dd>Overriden, reading from <code>stdin</code> channel yields empty
     string.</dd><br>
 <dt><code><b>h1</b> string</code>, <code><b>h2..h5</b></code></dt>








|
>







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1 {#HTML
<center><h2>Taygete Scrap Book Cheat Sheet<br><br></h2></center>} 2 {h3 "Important (internal) global variables"} 3 {table {{global variable}} [info global {[A-Z]*}]} 4 {#HTML
<dl>
 <dt><b>ID</b></dt>
 <dd>The current input field during evaluation, an integer number.</dd>
 <dt><b>W</b></dt>
 <dd>The Webview for displaying the page.</dd>
 <dt><b>H</b></dt>
 <dd>The history array of input fields, keys are integer numbers
     starting from 1.</dd>
</dl>} 5 {# current state of history array
table {key value} [array get H]} 6 {h3 "Useful procs in the global namespace"} 7 {lsort [info proc {[a-z]*}]} 8 {#HTML
<dl>
 <dt><code><b>gets</b></code>, <code><b>read</b></code></dt>
 <dd>Overriden, reading from <code>stdin</code> channel yields empty
     string.</dd><br>
 <dt><code><b>h1</b> string</code>, <code><b>h2..h5</b></code></dt>
Changes to undroid/tsb/tsb.tcl.
1034
1035
1036
1037
1038
1039
1040










1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052

1053
1054
1055
1056
1057
1058

1059

1060
1061

1062
1063
1064
1065
1066
1067
1068
		if (output.innerHTML.length > 0) {
		    output.style.color = 'inherit';
		    output.innerHTML = '';
		}
	    }
	    needsClear[id] = null;
	};











	var Inhide = function(id, hide) {
	    var input = document.getElementById('in' + id);
	    var outpre = document.getElementById('out' + id + '-pre');
	    var outraw = document.getElementById('out' + id + '-raw');
	    if ((outpre.clientWidth == 0 || outpre.clientHeight == 0) &&
	        (outraw.clientWidth == 0 || outraw.clientHeight == 0)) {
		hide = false;
	    }
	    /* Type coercion! */
	    if (hide == true) {
		input.style.display = 'none';

		outpre.addEventListener('dblclick', function(event) {
		    Inhide(id, 0);
		});
		outraw.addEventListener('dblclick', function(event) {
		    Inhide(id, 0);
		});

	    } else {

		outraw.removeEventListener('dblclick', null);
		outpre.removeEventListener('dblclick', null);

		input.style.display = 'inline';
	    }
	};

	var Winput = function(id, str) {
	    var input = document.getElementById('code' + id);
	    input.value = str;







>
>
>
>
>
>
>
>
>
>












>
|
<
<
|

|
>
|
>
|
|
>







1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064


1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
		if (output.innerHTML.length > 0) {
		    output.style.color = 'inherit';
		    output.innerHTML = '';
		}
	    }
	    needsClear[id] = null;
	};

	var ClrSel = function() {
	    var selection = window.getSelection ?
		window.getSelection() : document.selection ?
		document.selection : null;
	    if (!!selection) {
		selection.empty ?
		    selection.empty() : selection.removeAllRanges();
	    }
	};

	var Inhide = function(id, hide) {
	    var input = document.getElementById('in' + id);
	    var outpre = document.getElementById('out' + id + '-pre');
	    var outraw = document.getElementById('out' + id + '-raw');
	    if ((outpre.clientWidth == 0 || outpre.clientHeight == 0) &&
	        (outraw.clientWidth == 0 || outraw.clientHeight == 0)) {
		hide = false;
	    }
	    /* Type coercion! */
	    if (hide == true) {
		input.style.display = 'none';
		var F = function(event) {
		    outraw.removeEventListener('dblclick', F);


		    outpre.removeEventListener('dblclick', F);
		    Inhide(id, 0);
		    ClrSel();
		    event.returnValue = false;
		    return false;
		};
		outpre.addEventListener('dblclick', F);
		outraw.addEventListener('dblclick', F);
	    } else if (input.style.display === 'none') {
		input.style.display = 'inline';
	    }
	};

	var Winput = function(id, str) {
	    var input = document.getElementById('code' + id);
	    input.value = str;