aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis CI <zmoelnig@travis-ci.umlaeute.mur.at>2019-01-10 17:05:45 +0000
committerTravis CI <zmoelnig@travis-ci.umlaeute.mur.at>2019-01-10 17:05:45 +0000
commit0fb1f87eff027bd206182f8012ece9c13b84ec81 (patch)
tree1e3a057f5e2610980fda528d1040acb68e30dee0
parentd606a2ba0051a3302d3643fe2ef232983e4095a8 (diff)
Gem 908cfe86c1f9b4033000f4188d6c6e734c53ac94 linux/amd64
built 'master:908cfe86c1f9b4033000f4188d6c6e734c53ac94' for linux/amd64
-rwxr-xr-xGem/Gem.pd_linuxbin33362074 -> 33362186 bytes
-rw-r--r--Gem/gemcocoawindow-help.pd280
-rw-r--r--Gem/gemglfw2window-help.pd284
-rw-r--r--Gem/gemglfw3window-help.pd253
-rw-r--r--Gem/gemglutwindow-help.pd253
-rw-r--r--Gem/gemglxwindow-help.pd249
-rw-r--r--Gem/gemmacoswindow-help.pd274
-rw-r--r--Gem/gemmacwindow-help.pd254
-rw-r--r--Gem/gemsdlwindow-help.pd239
-rw-r--r--Gem/gemw32window-help.pd289
10 files changed, 1609 insertions, 766 deletions
diff --git a/Gem/Gem.pd_linux b/Gem/Gem.pd_linux
index d755243..3a46e4b 100755
--- a/Gem/Gem.pd_linux
+++ b/Gem/Gem.pd_linux
Binary files differ
diff --git a/Gem/gemcocoawindow-help.pd b/Gem/gemcocoawindow-help.pd
index f7fb1df..6a68823 100644
--- a/Gem/gemcocoawindow-help.pd
+++ b/Gem/gemcocoawindow-help.pd
@@ -1,118 +1,212 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemcocoawindow;
-#X obj 448 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 465 17 standard messages;
+#X text 47 51 [gemcocoawindow];
+#X text 18 79 part of Gem;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 421 48 create;
+#X msg 421 78 bang;
+#X msg 421 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 421 138 buffer 2;
+#X msg 421 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 421 198 title foo;
+#X text 515 199 title of the window;
+#X msg 421 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 421 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
-#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X obj 88 231 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 421 348 cursor \$1;
+#X obj 490 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 88 254 menubar \$1;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemcocoawindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 421 318 border \$1;
+#X obj 490 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 501 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 421 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 13 145 [gemcocoawindow] uses Cocoa to create windows.;
-#X text 16 171 afaict \, it is non-functional. you probably should
-use [gemmacoswindow] instead.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemcocoawindow];
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 207 ä;
+#X text 244 153 0!;
+#X text 244 189 0!;
+#X text 244 171 56;
+#X text 244 207 39;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 26 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X obj 88 231 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 254 menubar \$1;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X restore 421 429 pd specific messages;
+#X obj 367 472 gemcocoawindow;
+#X text 13 144 [gemcocoawindow] uses Cocoa to create windows (only
+on OSX).;
+#X connect 4 0 5 0;
+#X connect 4 1 7 0;
+#X connect 9 0 10 0;
+#X connect 10 0 6 0;
+#X connect 11 0 10 1;
+#X connect 22 0 61 0;
+#X connect 24 0 22 0;
+#X connect 25 0 22 0;
+#X connect 26 0 22 0;
+#X connect 31 0 22 0;
+#X connect 32 0 22 0;
+#X connect 34 0 22 0;
+#X connect 36 0 22 0;
+#X connect 38 0 22 0;
+#X connect 43 0 61 0;
+#X connect 48 0 22 0;
+#X connect 49 0 48 0;
+#X connect 50 0 22 0;
#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 52 0 54 0;
+#X connect 54 0 22 0;
+#X connect 55 0 22 0;
+#X connect 56 0 55 0;
+#X connect 60 0 61 0;
+#X connect 61 0 4 0;
+#X connect 61 1 3 0;
diff --git a/Gem/gemglfw2window-help.pd b/Gem/gemglfw2window-help.pd
index ff8d292..890eac8 100644
--- a/Gem/gemglfw2window-help.pd
+++ b/Gem/gemglfw2window-help.pd
@@ -1,68 +1,182 @@
-#N canvas 70 90 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglfw2window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 465 17 standard messages;
+#X text 47 51 [gemglfw2window];
+#X text 18 79 part of Gem;
+#X text 13 145 [gemglfw2window] uses GLFW (version2) to create windows.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
-#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
0;
-#N canvas 413 484 890 395 specific 0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 65 6 FIXXME;
+#X text 10 102 values returned by [gemglfw2window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -77,50 +191,32 @@ created windows;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 6 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglfw2window];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemglfw2window] uses GLFW (version2) to create windows.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X restore 421 429 pd specific messages;
+#X obj 367 472 gemglfw2window;
+#X text 765 319 (NOT IMPLEMENTED);
+#X connect 5 0 6 0;
+#X connect 5 1 8 0;
+#X connect 10 0 11 0;
+#X connect 11 0 7 0;
+#X connect 12 0 11 1;
+#X connect 23 0 62 0;
+#X connect 25 0 23 0;
+#X connect 26 0 23 0;
+#X connect 27 0 23 0;
+#X connect 32 0 23 0;
+#X connect 33 0 23 0;
+#X connect 35 0 23 0;
+#X connect 37 0 23 0;
+#X connect 39 0 23 0;
+#X connect 44 0 62 0;
+#X connect 49 0 23 0;
+#X connect 50 0 49 0;
+#X connect 51 0 23 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 23 0;
+#X connect 56 0 23 0;
+#X connect 57 0 56 0;
+#X connect 61 0 62 0;
+#X connect 62 0 5 0;
+#X connect 62 1 4 0;
diff --git a/Gem/gemglfw3window-help.pd b/Gem/gemglfw3window-help.pd
index 4f348ff..dad593a 100644
--- a/Gem/gemglfw3window-help.pd
+++ b/Gem/gemglfw3window-help.pd
@@ -1,68 +1,183 @@
-#N canvas 70 90 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglfw3window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglfw3window] uses GLFW (version3) to create windows.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemglfw3window];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
0;
-#N canvas 413 484 890 395 specific 0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemglfw3window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemglfw3window;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -83,35 +198,13 @@ created windows;
#X connect 6 0 7 0;
#X connect 7 0 0 0;
#X connect 9 0 0 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglfw3window];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemglfw3window] uses GLFW (version3) to create windows.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -120,13 +213,15 @@ created windows;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemglutwindow-help.pd b/Gem/gemglutwindow-help.pd
index 395198d..b3b12f0 100644
--- a/Gem/gemglutwindow-help.pd
+++ b/Gem/gemglutwindow-help.pd
@@ -1,68 +1,184 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglutwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglutwindow] uses GLUT (the openGL Utility Toolkit)
+to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemglutwindow];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 244 189 65;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 207 ä;
+#X msg 154 171 <unknown>;
+#X text 244 153 97;
+#X text 244 171 112;
+#X text 244 207 228;
+#X text 10 102 values returned by [gemglutwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 27 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#X obj 367 472 gemglutwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#X text 765 169 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -95,36 +211,13 @@ Quit 1;
#X connect 11 0 0 0;
#X connect 12 0 9 0;
#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemglutwindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemglutwindow] uses GLUT (the openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 765 211 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -133,13 +226,15 @@ to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
#X connect 51 0 20 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
+#X connect 56 0 20 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 64 0 61 0;
diff --git a/Gem/gemglxwindow-help.pd b/Gem/gemglxwindow-help.pd
index e2678cd..9c678ea 100644
--- a/Gem/gemglxwindow-help.pd
+++ b/Gem/gemglxwindow-help.pd
@@ -1,103 +1,196 @@
-#N canvas 30 105 957 735 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemglxwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemglxwindow] uses the X-window system directly (via
+GLX) to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 693 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 647 r \$0-info;
-#X obj 674 670 spigot;
-#X obj 721 672 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X text 182 261 allow the window to become transparent;
-#X obj 88 238 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 88 260 transparent \$1;
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemglxwindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 13 145 [gemglxwindow] uses the X-window system directly (via
-GLX) to create windows.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 189 A;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 207 ä;
+#X text 244 153 38;
+#X text 244 171 50;
+#X text 244 189 38;
+#X text 244 207 48;
+#X text 10 102 values returned by [gemglxwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 26 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemglxwindow;
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X text 182 261 allow the window to become transparent;
+#X obj 88 238 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 260 transparent \$1;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -106,13 +199,15 @@ GLX) to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 62 0 61 0;
diff --git a/Gem/gemmacoswindow-help.pd b/Gem/gemmacoswindow-help.pd
index ae90536..0499910 100644
--- a/Gem/gemmacoswindow-help.pd
+++ b/Gem/gemmacoswindow-help.pd
@@ -1,120 +1,216 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemmacoswindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemmacoswindow] uses Cocoa to create windows.;
+#X text 20 172 it's supposed to be the default window on modern macOS.
+;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X obj 88 153 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 88 176 menubar \$1;
-#X text 173 178 show/hide the macOS menubar;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemmacoswindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 211 (NOT IMPLEMENTED);
-#X text 13 145 [gemmacoswindow] uses Cocoa to create windows.;
-#X text 20 172 it's supposed to be the default window on modern macOS.
-;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 50 7 FIXXME;
+#X text 10 102 values returned by [gemmacoswindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemmacoswindow;
+#X text 765 169 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X obj 88 153 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 88 176 menubar \$1;
+#X text 173 178 show/hide the macOS menubar;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X restore 421 429 pd specific messages;
+#X connect 3 0 4 0;
+#X connect 3 1 6 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 9 1;
+#X connect 21 0 62 0;
+#X connect 23 0 21 0;
+#X connect 24 0 21 0;
+#X connect 25 0 21 0;
+#X connect 30 0 21 0;
+#X connect 31 0 21 0;
+#X connect 33 0 21 0;
+#X connect 35 0 21 0;
+#X connect 37 0 21 0;
+#X connect 43 0 62 0;
+#X connect 50 0 21 0;
#X connect 51 0 50 0;
-#X connect 52 0 20 0;
+#X connect 52 0 21 0;
#X connect 53 0 52 0;
#X connect 54 0 56 0;
-#X connect 56 0 20 0;
-#X connect 57 0 20 0;
+#X connect 56 0 21 0;
+#X connect 57 0 21 0;
#X connect 58 0 57 0;
+#X connect 62 0 3 0;
+#X connect 62 1 2 0;
+#X connect 64 0 62 0;
diff --git a/Gem/gemmacwindow-help.pd b/Gem/gemmacwindow-help.pd
index d82085c..ec46ae5 100644
--- a/Gem/gemmacwindow-help.pd
+++ b/Gem/gemmacwindow-help.pd
@@ -1,68 +1,183 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemmacwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemmacwindow] uses Carbon to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 47 51 [gemmacwindow];
+#X text 18 79 part of Gem;
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
+#X obj 235 348 metro 100;
+#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 50 7 FIXXME;
+#X text 10 102 values returned by [gemmacwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#X obj 367 472 gemmacwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
@@ -95,34 +210,15 @@ Quit 1;
#X connect 11 0 0 0;
#X connect 12 0 9 0;
#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
-#X text 47 51 [gemmacwindow];
-#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
-#X obj 235 348 metro 100;
-#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X text 13 145 [gemmacwindow] uses Carbon to create windows.;
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X restore 421 429 pd specific messages;
+#X text 16 171 afaict \, it is non-functional. you probably should
+use [gemmacoswindow] instead.;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -131,13 +227,15 @@ Quit 1;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 50 0 20 0;
-#X connect 51 0 50 0;
-#X connect 52 0 20 0;
-#X connect 53 0 52 0;
-#X connect 54 0 56 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
+#X connect 51 0 20 0;
+#X connect 52 0 51 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
#X connect 56 0 20 0;
-#X connect 57 0 20 0;
-#X connect 58 0 57 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemsdlwindow-help.pd b/Gem/gemsdlwindow-help.pd
index 1a694da..1e5f8f6 100644
--- a/Gem/gemsdlwindow-help.pd
+++ b/Gem/gemsdlwindow-help.pd
@@ -1,99 +1,192 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemsdlwindow;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X text 13 145 [gemsdlwindow] uses the GLUT (openGL Utility Toolkit)
+to create windows.;
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -260097 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 411 48 create;
+#X msg 411 78 bang;
+#X msg 411 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 411 138 buffer 2;
+#X msg 411 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 411 198 title foo;
+#X text 515 199 title of the window;
+#X msg 411 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 411 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
-#X obj 88 303 outlet;
-#X text 90 88 no special messages;
-#X restore 411 571 pd specific messages;
#X text 47 51 [gemsdlwindow];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemsdlwindow] uses the GLUT (openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 411 348 cursor \$1;
+#X obj 500 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 411 318 border \$1;
+#X obj 500 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 500 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 411 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X msg 154 153 a;
+#X msg 154 171 Shift_L;
+#X msg 154 189 a;
+#X msg 154 207 ä;
+#X text 244 153 38;
+#X text 244 171 50;
+#X text 244 189 38;
+#X text 244 207 48;
+#X text 10 102 values returned by [gemsdlwindow];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 25 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemsdlwindow;
+#X text 765 319 (NOT IMPLEMENTED);
+#N canvas 60 208 572 395 specific 0;
+#X obj 88 303 outlet;
+#X text 90 88 no special messages;
+#X restore 421 429 pd specific messages;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 7 0 8 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
-#X connect 20 0 0 0;
+#X connect 20 0 61 0;
#X connect 22 0 20 0;
#X connect 23 0 20 0;
#X connect 24 0 20 0;
@@ -102,13 +195,15 @@ to create windows.;
#X connect 32 0 20 0;
#X connect 34 0 20 0;
#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
+#X connect 42 0 61 0;
+#X connect 49 0 20 0;
+#X connect 50 0 49 0;
#X connect 51 0 20 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 20 0;
+#X connect 56 0 20 0;
+#X connect 57 0 56 0;
+#X connect 61 0 2 0;
+#X connect 61 1 1 0;
+#X connect 63 0 61 0;
diff --git a/Gem/gemw32window-help.pd b/Gem/gemw32window-help.pd
index 8ac7134..9255127 100644
--- a/Gem/gemw32window-help.pd
+++ b/Gem/gemw32window-help.pd
@@ -1,144 +1,223 @@
-#N canvas 30 105 957 728 10;
+#N canvas 55 51 885 613 10;
#X declare -lib Gem;
-#X obj 367 612 gemw32window;
-#X obj 442 642 print unknown.message;
-#X obj 367 645 route bang;
-#X obj 367 668 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
+#X obj 441 515 print unknown.message;
+#X obj 367 515 route bang;
+#X obj 367 558 bng 15 250 50 0 empty empty render! 17 7 0 10 -262144
-4034 -1;
-#X obj 674 703 print info;
-#X obj 424 697 s \$0-info;
-#X text 485 697 feedback about the window;
-#X obj 674 657 r \$0-info;
-#X obj 674 680 spigot;
-#X obj 721 682 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 648 560 print info;
+#X obj 424 537 s \$0-info;
+#X text 485 537 feedback about the window;
+#X obj 648 514 r \$0-info;
+#X obj 648 537 spigot;
+#X obj 695 539 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 407 45 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 45 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 85 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 75 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 125 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 105 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 165 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 135 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 205 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 165 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 245 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 195 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 285 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 225 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 325 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 255 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 365 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 407 285 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 407 405 cnv 15 470 30 empty empty empty 20 12 0 14 -260097 -66577
+#X obj 407 315 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X obj 367 506 t a;
-#X obj 407 445 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X obj 367 386 t a;
+#X obj 407 345 cnv 15 470 25 empty empty empty 20 12 0 14 -4034 -66577
0;
-#X msg 421 51 create;
-#X msg 421 90 bang;
-#X msg 421 130 destroy;
-#X text 515 91 clear window \, activate openGL-context \, and send
+#X msg 421 48 create;
+#X msg 421 78 bang;
+#X msg 421 108 destroy;
+#X text 515 79 clear window \, activate openGL-context \, and send
render-bang;
-#X text 515 132 destroy the window;
-#X text 515 51 create the window;
-#X text 515 171 single-buffered(1) or double-buffered(2) rendering
+#X text 515 110 destroy the window;
+#X text 515 49 create the window;
+#X text 515 139 single-buffered(1) or double-buffered(2) rendering
;
-#X msg 421 170 buffer 2;
-#X msg 421 210 FSAA \$1;
-#X text 515 211 Full Screen Antia Aliasing mode;
-#X msg 421 250 title foo;
-#X text 515 251 title of the window;
-#X msg 421 290 dimen 640 460;
-#X text 515 291 change dimension of the window;
-#X msg 421 330 offset 100 100;
-#X text 515 331 change position of the window;
-#X text 515 411 turn on/off window borders;
-#X text 515 451 (don't) show cursorwhen it's on the window;
-#X obj 407 525 cnv 15 470 30 empty empty empty 20 12 0 14 -258113 -66577
+#X msg 421 138 buffer 2;
+#X msg 421 168 FSAA \$1;
+#X text 515 169 Full Screen Antia Aliasing mode;
+#X msg 421 198 title foo;
+#X text 515 199 title of the window;
+#X msg 421 228 dimen 640 460;
+#X text 515 229 change dimension of the window;
+#X msg 421 258 offset 100 100;
+#X text 515 259 change position of the window;
+#X text 515 319 turn on/off window borders;
+#X text 515 349 (don't) show cursorwhen it's on the window;
+#X obj 407 395 cnv 15 470 25 empty empty empty 20 12 0 14 -258113 -66577
0;
#X text 465 17 standard messages;
-#X msg 421 530 blurb;
-#X text 515 531 some random unknown message;
-#X obj 407 565 cnv 15 470 30 empty empty empty 20 12 0 14 -4034 -66577
+#X msg 421 399 blurb;
+#X text 515 400 some random unknown message;
+#X obj 407 425 cnv 15 470 25 empty empty empty 20 12 0 14 -257985 -66577
0;
-#N canvas 76 289 890 395 specific 0;
+#N canvas 60 208 572 395 specific 0;
#X obj 88 303 outlet;
#X msg 88 40 offset \$1 \$1;
#X floatatom 88 21 5 0 0 0 - - -;
#X floatatom 128 61 5 0 0 0 - - -;
#X msg 128 80 dimen \$1 \$1;
#X text 201 46 change window dimension/position on the fly;
-#X msg 288 97 menu;
-#X obj 289 127 r \$0-info;
-#X obj 289 150 route menu;
-#X floatatom 289 243 5 0 0 0 - - -;
-#X obj 289 264 i;
-#X msg 289 290 addMenu \$1 File 0 \, addMenu \$1 Gem 2 \, addMenu \$1
-Quit 1;
-#X obj 289 176 route new float;
-#X floatatom 416 212 5 0 0 1 menu - -;
-#X text 326 242 ID of the newly created menu;
-#X text 320 271 add entries to the new menu, f 62;
-#X text 625 290 addMenu <menuid> <title> <value>;
-#X text 510 212 <- selected menu;
-#X text 336 96 <- create a new right-click menu;
+#X msg 152 173 topmost \$1;
+#X obj 152 151 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X text 231 156 make sure the Gem-window is in front of all others
+;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 6 0 0 0;
-#X connect 7 0 8 0;
-#X connect 8 0 12 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 11 0 0 0;
-#X connect 12 0 9 0;
-#X connect 12 1 13 0;
-#X restore 411 571 pd specific messages;
+#X connect 7 0 6 0;
+#X restore 421 429 pd specific messages;
#X text 47 51 [gemw32window];
#X text 18 79 part of Gem;
-#X obj 38 693 declare -lib Gem;
-#X text 24 669 last updated for Gem-0.94;
-#X text 13 145 [gemw32window] uses GLUT (the openGL Utility Toolkit)
-to create windows.;
-#X msg 421 450 cursor \$1;
-#X obj 490 452 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 38 553 declare -lib Gem;
+#X text 24 529 last updated for Gem-0.94;
+#X msg 421 348 cursor \$1;
+#X obj 490 350 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X msg 421 410 border \$1;
-#X obj 490 412 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X msg 421 318 border \$1;
+#X obj 490 320 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X obj 501 372 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+#X obj 501 290 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 515 371 switch fullscreen mode on/off;
-#X msg 421 370 fullscreen \$1;
+#X text 515 289 switch fullscreen mode on/off;
+#X msg 421 288 fullscreen \$1;
#X obj 235 348 metro 100;
#X obj 235 326 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
-#X text 765 411 (NOT IMPLEMENTED);
-#X connect 0 0 2 0;
-#X connect 0 1 1 0;
-#X connect 2 0 3 0;
-#X connect 2 1 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 1;
-#X connect 20 0 0 0;
-#X connect 22 0 20 0;
-#X connect 23 0 20 0;
-#X connect 24 0 20 0;
-#X connect 29 0 20 0;
-#X connect 30 0 20 0;
-#X connect 32 0 20 0;
-#X connect 34 0 20 0;
-#X connect 36 0 20 0;
-#X connect 42 0 0 0;
-#X connect 45 0 0 0;
-#X connect 51 0 20 0;
+#X text 13 145 [gemw32window] uses the native Microsoft Windows toolkit
+to create windows (only on MS-Windows systems).;
+#X obj 43 209 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#N canvas 348 141 312 657 keyboard 0;
+#X obj 54 265 r \$0-info;
+#X obj 54 286 route keyboard;
+#X obj 54 307 list split 1;
+#X obj 54 328 list trim;
+#X obj 54 349 route keyname key;
+#X obj 54 400 unpack s f;
+#X symbolatom 54 421 10 0 0 0 - - -;
+#X floatatom 116 421 5 0 0 0 - - -;
+#X floatatom 187 421 5 0 0 0 - - -;
+#X obj 154 400 unpack;
+#X floatatom 154 421 5 0 0 0 - - -;
+#X msg 54 582;
+#X obj 18 127 cnv 15 100 100 empty empty empty 20 12 0 14 -154295 -66577
+0;
+#X obj 128 127 cnv 15 100 100 empty empty empty 20 12 0 14 -155048
+-66577 0;
+#X obj 238 127 cnv 15 40 100 empty empty empty 20 12 0 14 -223782 -66577
+0;
+#X text 38 129 keystroke;
+#X text 146 129 keyname;
+#X text 247 128 key;
+#X text 34 153 <a>;
+#X text 34 171 <LeftShift>;
+#X text 34 189 <A>;
+#X text 34 207 <ä>;
+#X msg 154 153 A;
+#X msg 154 171 ;
+#X msg 154 207 Þ;
+#X msg 154 189 A;
+#X text 244 153 65;
+#X text 244 189 65;
+#X text 244 171 16;
+#X text 244 207 222;
+#X text 17 139 ===========================================;
+#X text 17 23 While Gem tries to provide a consistent platform-independent
+interface \, the values returned by [gemkeyboard] and [gemkeyname]
+might depend on the actual window toolkit., f 43;
+#X text 125 264 <- from [gem*window];
+#N canvas 5 51 450 300 record 0;
+#X obj 244 15 r \$0-info;
+#X obj 244 66 route keyboard;
+#X obj 244 87 list split 1;
+#X obj 244 108 list trim;
+#X msg 244 221 add2 \$1;
+#X msg 300 221 set;
+#X obj 300 200 loadbang;
+#X text 315 14 <- from [gem*window];
+#X obj 244 129 route keyname;
+#X obj 244 152 unpack s f;
+#X obj 244 200 spigot;
+#X obj 301 179 == 0;
+#X obj 244 244 t a;
+#X obj 244 267 outlet;
+#X obj 100 100 f;
+#X obj 185 117 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 100 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 244 40 spigot;
+#X connect 0 0 17 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 12 0;
+#X connect 5 0 12 0;
+#X connect 6 0 5 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 1 11 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 1;
+#X connect 12 0 13 0;
+#X connect 15 0 5 0;
+#X connect 16 0 17 1;
+#X connect 17 0 1 0;
+#X coords 0 -1 1 1 100 33 1 100 100;
+#X restore 54 543 pd record keyup;
+#X text 10 102 values returned by [gemw32window];
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 2 1 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 9 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 9 0 10 0;
+#X connect 9 1 8 0;
+#X connect 33 0 11 0;
+#X restore 58 224 pd keyboard;
+#X obj 363 459 cnv 15 100 50 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X obj 367 472 gemw32window;
+#X connect 1 0 2 0;
+#X connect 1 1 4 0;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 8 0 7 1;
+#X connect 19 0 62 0;
+#X connect 21 0 19 0;
+#X connect 22 0 19 0;
+#X connect 23 0 19 0;
+#X connect 28 0 19 0;
+#X connect 29 0 19 0;
+#X connect 31 0 19 0;
+#X connect 33 0 19 0;
+#X connect 35 0 19 0;
+#X connect 41 0 62 0;
+#X connect 44 0 62 0;
+#X connect 49 0 19 0;
+#X connect 50 0 49 0;
+#X connect 51 0 19 0;
#X connect 52 0 51 0;
-#X connect 53 0 20 0;
-#X connect 54 0 53 0;
-#X connect 55 0 57 0;
-#X connect 57 0 20 0;
-#X connect 58 0 20 0;
-#X connect 59 0 58 0;
+#X connect 53 0 55 0;
+#X connect 55 0 19 0;
+#X connect 56 0 19 0;
+#X connect 57 0 56 0;
+#X connect 62 0 1 0;
+#X connect 62 1 0 0;