Hex Artifact Content
Not logged in

Artifact e5a28b4cc93ae9415cc82d4c02e23f9643acadd8:

Wiki page [sdltk command] by chw 2020-02-09 17:19:01.
0000: 44 20 32 30 32 30 2d 30 32 2d 30 39 54 31 37 3a  D 2020-02-09T17:
0010: 31 39 3a 30 31 2e 34 37 30 0a 4c 20 73 64 6c 74  19:01.470.L sdlt
0020: 6b 5c 73 63 6f 6d 6d 61 6e 64 0a 50 20 34 30 66  k\scommand.P 40f
0030: 36 37 65 61 62 38 63 62 30 31 33 39 65 63 33 39  67eab8cb0139ec39
0040: 35 33 31 30 33 65 39 39 39 30 37 36 66 64 32 39  53103e999076fd29
0050: 38 61 30 63 36 0a 55 20 63 68 77 0a 57 20 32 30  8a0c6.U chw.W 20
0060: 38 30 37 0a 3c 68 32 3e 73 64 6c 74 6b 20 63 6f  807.<h2>sdltk co
0070: 6d 6d 61 6e 64 3c 2f 68 32 3e 0d 0a 0d 0a 3c 68  mmand</h2>....<h
0080: 33 3e 4e 61 6d 65 3c 2f 68 33 3e 0d 0a 0d 0a 3c  3>Name</h3>....<
0090: 62 3e 73 64 6c 74 6b 3c 2f 62 3e 20 2d 20 65 78  b>sdltk</b> - ex
00a0: 70 6f 73 75 72 65 20 6f 66 20 74 68 65 20 53 44  posure of the SD
00b0: 4c 32 20 28 53 69 6d 70 6c 65 20 44 69 72 65 63  L2 (Simple Direc
00c0: 74 4d 65 64 69 61 20 4c 61 79 65 72 29 20 41 50  tMedia Layer) AP
00d0: 49 2e 0d 0a 0d 0a 3c 68 33 3e 53 79 6e 6f 70 73  I.....<h3>Synops
00e0: 69 73 3c 2f 68 33 3e 0d 0a 0d 0a 3c 74 74 3e 73  is</h3>....<tt>s
00f0: 64 6c 74 6b 20 3c 69 3e 6f 70 74 69 6f 6e 3c 2f  dltk <i>option</
0100: 69 3e 20 3f 3c 69 3e 61 72 67 20 2e 2e 2e 3c 2f  i> ?<i>arg ...</
0110: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 3c 68 33 3e  i>?</tt>....<h3>
0120: 44 65 73 63 72 69 70 74 69 6f 6e 3c 2f 68 33 3e  Description</h3>
0130: 0d 0a 0d 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64  ....This command
0140: 20 69 73 20 75 73 65 64 20 74 6f 20 63 6f 6e 74   is used to cont
0150: 72 6f 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20  rol portions of 
0160: 74 68 65 20 41 6e 64 72 6f 69 64 20 28 6f 72 20  the Android (or 
0170: 57 69 6e 64 6f 77 73 20 6f 72 20 4c 69 6e 75 78  Windows or Linux
0180: 29 20 73 79 73 74 65 6d 20 74 68 61 74 20 74 68  ) system that th
0190: 65 20 53 44 4c 32 20 66 72 61 6d 65 77 6f 72 6b  e SDL2 framework
01a0: 20 65 78 70 6f 73 65 73 2e 20 41 63 74 75 61 6c   exposes. Actual
01b0: 20 64 61 74 61 20 70 72 6f 63 65 73 73 69 6e 67   data processing
01c0: 20 66 6f 72 20 74 68 69 73 20 66 72 61 6d 65 77   for this framew
01d0: 6f 72 6b 20 69 73 20 61 63 68 69 65 76 65 64 20  ork is achieved 
01e0: 62 79 20 68 61 76 69 6e 67 20 68 61 6e 64 6c 65  by having handle
01f0: 72 73 20 66 6f 72 20 76 69 72 74 75 61 6c 20 65  rs for virtual e
0200: 76 65 6e 74 73 2e 0d 0a 0d 0a 3c 74 74 3e 73 64  vents.....<tt>sd
0210: 6c 74 6b 20 70 6f 77 65 72 69 6e 66 6f 3c 2f 74  ltk powerinfo</t
0220: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
0230: 73 20 61 20 6c 69 73 74 20 6f 66 20 6b 65 79 2d  s a list of key-
0240: 76 61 6c 75 65 20 70 61 69 72 73 20 64 65 73 63  value pairs desc
0250: 72 69 62 69 6e 67 20 74 68 65 20 73 74 61 74 65  ribing the state
0260: 20 6f 66 20 74 68 65 20 62 61 74 74 65 72 79 2e   of the battery.
0270: 20 54 68 65 20 6b 65 79 73 20 61 72 65 20 3c 74   The keys are <t
0280: 74 3e 73 74 61 74 65 3c 2f 74 74 3e 2c 20 3c 74  t>state</tt>, <t
0290: 74 3e 73 65 63 6f 6e 64 73 3c 2f 74 74 3e 2c 20  t>seconds</tt>, 
02a0: 61 6e 64 20 3c 74 74 3e 70 65 72 63 65 6e 74 3c  and <tt>percent<
02b0: 2f 74 74 3e 2e 20 54 68 65 20 70 6f 73 73 69 62  /tt>. The possib
02c0: 6c 65 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68  le values for th
02d0: 65 20 73 74 61 74 65 20 61 72 65 20 3c 74 74 3e  e state are <tt>
02e0: 6f 6e 62 61 74 74 65 72 79 3c 2f 74 74 3e 2c 20  onbattery</tt>, 
02f0: 3c 74 74 3e 6e 6f 62 61 74 74 65 72 79 3c 2f 74  <tt>nobattery</t
0300: 74 3e 2c 20 3c 74 74 3e 63 68 61 72 67 69 6e 67  t>, <tt>charging
0310: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 63 68 61 72 67  </tt>, <tt>charg
0320: 65 64 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74  ed</tt>, and <tt
0330: 3e 75 6e 6b 6e 6f 77 6e 3c 2f 74 74 3e 2e 20 54  >unknown</tt>. T
0340: 68 65 20 6f 74 68 65 72 20 69 74 65 6d 73 20 61  he other items a
0350: 72 65 20 72 65 70 6f 72 74 65 64 20 61 73 20 69  re reported as i
0360: 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 73 2e 0d  nteger numbers..
0370: 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 61 63 63  ...<tt>sdltk acc
0380: 65 6c 65 72 6f 6d 65 74 65 72 20 6f 6e 7c 6f 66  elerometer on|of
0390: 66 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 75  f</tt>....    Tu
03a0: 72 6e 73 20 65 76 65 6e 74 20 72 65 70 6f 72 74  rns event report
03b0: 69 6e 67 20 6f 66 20 74 68 65 20 64 65 76 69 63  ing of the devic
03c0: 65 27 73 20 61 63 63 65 6c 65 72 6f 6d 65 74 65  e's acceleromete
03d0: 72 20 6f 6e 20 6f 72 20 6f 66 66 2e 20 43 72 65  r on or off. Cre
03e0: 61 74 65 73 20 74 6f 70 2d 6c 65 76 65 6c 20 76  ates top-level v
03f0: 69 72 74 75 61 6c 20 65 76 65 6e 74 73 20 3c 74  irtual events <t
0400: 74 3e 3c 3c 41 63 63 65 6c 65 72 6f 6d 65 74 65  t><<Acceleromete
0410: 72 3e 3e 3c 2f 74 74 3e 20 77 68 65 6e 20 74 75  r>></tt> when tu
0420: 72 6e 65 64 20 6f 6e 2e 20 54 68 69 73 20 63 6f  rned on. This co
0430: 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 75 73 61  mmand is not usa
0440: 62 6c 65 20 6f 6e 20 57 69 6e 64 6f 77 73 20 61  ble on Windows a
0450: 6e 64 20 4c 69 6e 75 78 2e 0d 0a 0d 0a 3c 74 74  nd Linux.....<tt
0460: 3e 73 64 6c 74 6b 20 61 63 63 65 6c 62 75 66 66  >sdltk accelbuff
0470: 65 72 20 3c 69 3e 61 78 69 73 3c 2f 69 3e 3c 2f  er <i>axis</i></
0480: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
0490: 6e 73 20 74 68 65 20 61 63 63 65 6c 65 72 6f 6d  ns the accelerom
04a0: 65 74 65 72 20 76 61 6c 75 65 73 20 66 6f 72 20  eter values for 
04b0: 3c 74 74 3e 3c 69 3e 61 78 69 73 3c 2f 69 3e 3c  <tt><i>axis</i><
04c0: 2f 74 74 3e 20 28 31 2e 2e 33 29 20 77 68 69 63  /tt> (1..3) whic
04d0: 68 20 68 61 76 65 20 62 65 65 6e 20 72 65 61 64  h have been read
04e0: 20 64 75 72 69 6e 67 20 74 68 65 20 6c 61 73 74   during the last
04f0: 20 73 65 63 6f 6e 64 20 61 73 20 61 20 6c 69 73   second as a lis
0500: 74 20 6f 66 20 69 6e 74 65 67 65 72 20 76 61 6c  t of integer val
0510: 75 65 73 20 69 6e 20 74 68 65 20 72 61 6e 67 65  ues in the range
0520: 20 2d 33 32 37 36 38 20 2e 2e 20 33 32 37 36 37   -32768 .. 32767
0530: 2e 20 54 68 65 20 74 69 6d 65 20 72 65 73 6f 6c  . The time resol
0540: 75 74 69 6f 6e 20 69 73 20 69 64 65 6e 74 69 63  ution is identic
0550: 61 6c 20 77 69 74 68 20 74 68 65 20 66 72 61 6d  al with the fram
0560: 65 72 61 74 65 20 28 32 30 20 6d 73 29 2e 20 54  erate (20 ms). T
0570: 68 65 20 76 61 6c 75 65 73 20 63 61 6e 20 62 65  he values can be
0580: 20 72 65 61 64 20 6f 75 74 20 61 6e 79 74 69 6d   read out anytim
0590: 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 6f 66  e independent of
05a0: 20 74 68 65 20 61 63 63 65 6c 65 72 6f 6d 65 74   the acceleromet
05b0: 65 72 20 65 76 65 6e 74 20 65 6e 61 62 6c 65 20  er event enable 
05c0: 73 74 61 74 65 2e 20 54 68 65 20 62 75 66 66 65  state. The buffe
05d0: 72 20 69 73 20 66 69 6c 6c 65 64 20 62 61 73 65  r is filled base
05e0: 64 20 6f 6e 20 6f 63 63 75 72 72 65 6e 63 65 73  d on occurrences
05f0: 20 6f 66 20 74 68 65 20 3c 74 74 3e 3c 3c 41 63   of the <tt><<Ac
0600: 63 65 6c 65 72 6f 6d 65 74 65 72 3e 3e 3c 2f 74  celerometer>></t
0610: 74 3e 20 76 69 72 74 75 61 6c 20 65 76 65 6e 74  t> virtual event
0620: 2c 20 6d 69 73 73 65 64 20 76 61 6c 75 65 73 20  , missed values 
0630: 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 20  with respect to 
0640: 74 68 65 20 66 72 61 6d 65 72 61 74 65 20 61 72  the framerate ar
0650: 65 20 69 6e 74 65 72 70 6f 6c 61 74 65 64 2e 20  e interpolated. 
0660: 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20  This command is 
0670: 6e 6f 74 20 75 73 61 62 6c 65 20 6f 6e 20 57 69  not usable on Wi
0680: 6e 64 6f 77 73 20 61 6e 64 20 4c 69 6e 75 78 2e  ndows and Linux.
0690: 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 74 65  ....<tt>sdltk te
06a0: 78 74 69 6e 70 75 74 20 3f 6f 6e 7c 6f 66 66 20  xtinput ?on|off 
06b0: 3f 3c 69 3e 78 20 79 3c 2f 69 3e 20 3f 3c 69 3e  ?<i>x y</i> ?<i>
06c0: 68 69 6e 74 3c 2f 69 3e 3f 3f 3f 3c 2f 74 74 3e  hint</i>???</tt>
06d0: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20  ....    Returns 
06e0: 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65  the state of the
06f0: 20 76 69 72 74 75 61 6c 20 6b 65 79 62 6f 61 72   virtual keyboar
0700: 64 20 6f 72 20 73 77 69 74 63 68 65 73 20 74 68  d or switches th
0710: 65 20 76 69 72 74 75 61 6c 20 6b 65 79 62 6f 61  e virtual keyboa
0720: 72 64 20 6f 6e 20 6f 72 20 6f 66 66 2e 20 54 68  rd on or off. Th
0730: 65 20 6f 70 74 69 6f 6e 61 6c 20 63 6f 6f 72 64  e optional coord
0740: 69 6e 61 74 65 20 70 61 69 72 20 69 73 20 61 20  inate pair is a 
0750: 68 69 6e 74 20 66 6f 72 20 74 68 65 20 73 79 73  hint for the sys
0760: 74 65 6d 20 77 68 65 72 65 20 74 68 65 20 69 6e  tem where the in
0770: 73 65 72 74 69 6f 6e 20 63 75 72 73 6f 72 20 69  sertion cursor i
0780: 73 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 73  s displayed in s
0790: 63 72 65 65 6e 20 63 6f 6f 72 64 69 6e 61 74 65  creen coordinate
07a0: 73 2e 20 54 68 69 73 20 61 6c 6c 6f 77 73 20 74  s. This allows t
07b0: 68 65 20 73 79 73 74 65 6d 20 74 6f 20 20 61 64  he system to  ad
07c0: 6a 75 73 74 20 74 68 65 20 61 70 70 6c 69 63 61  just the applica
07d0: 74 69 6f 6e 27 73 20 73 63 72 65 65 6e 20 69 6e  tion's screen in
07e0: 20 6f 72 64 65 72 20 74 6f 20 64 69 73 70 6c 61   order to displa
07f0: 79 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 20  y the insertion 
0800: 63 75 72 73 6f 72 20 77 68 65 6e 20 74 68 65 20  cursor when the 
0810: 76 69 72 74 75 61 6c 20 6b 65 79 62 6f 61 72 64  virtual keyboard
0820: 20 69 73 20 61 63 74 69 76 65 2e 20 54 68 65 20   is active. The 
0830: 3c 74 74 3e 65 6e 74 72 79 3c 2f 74 74 3e 2c 20  <tt>entry</tt>, 
0840: 3c 74 74 3e 74 74 6b 3a 3a 65 6e 74 72 79 3c 2f  <tt>ttk::entry</
0850: 74 74 3e 2c 20 3c 74 74 3e 74 65 78 74 3c 2f 74  tt>, <tt>text</t
0860: 74 3e 2c 20 61 6e 64 20 3c 74 74 3e 73 70 69 6e  t>, and <tt>spin
0870: 62 6f 78 3c 2f 74 74 3e 20 77 69 64 67 65 74 73  box</tt> widgets
0880: 20 68 61 76 65 20 73 74 61 6e 64 61 72 64 20 62   have standard b
0890: 69 6e 64 69 6e 67 73 20 77 68 69 63 68 20 61 63  indings which ac
08a0: 74 69 76 61 74 65 20 74 65 78 74 20 69 6e 70 75  tivate text inpu
08b0: 74 20 6f 6e 20 6c 65 66 74 20 6d 6f 75 73 65 20  t on left mouse 
08c0: 62 75 74 74 6f 6e 20 70 72 65 73 73 20 28 6f 72  button press (or
08d0: 20 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 75 63   equivalent touc
08e0: 68 20 65 76 65 6e 74 29 20 69 66 20 74 68 65 20  h event) if the 
08f0: 77 69 64 67 65 74 27 73 20 73 74 61 74 65 20 69  widget's state i
0900: 73 20 6e 6f 74 20 64 69 73 61 62 6c 65 64 2e 20  s not disabled. 
0910: 41 63 74 69 76 61 74 69 6f 6e 20 6f 66 20 74 65  Activation of te
0920: 78 74 20 69 6e 70 75 74 20 66 6f 72 20 74 68 65  xt input for the
0930: 73 65 20 77 69 64 67 65 74 73 20 63 61 6e 20 62  se widgets can b
0940: 65 20 74 75 72 6e 65 64 20 6f 66 66 20 65 6e 74  e turned off ent
0950: 69 72 65 6c 79 20 62 79 20 70 72 6f 76 69 64 69  irely by providi
0960: 6e 67 20 61 20 64 75 6d 6d 79 20 62 69 6e 64 74  ng a dummy bindt
0970: 61 67 20 6e 61 6d 65 64 20 3c 74 74 3e 53 64 6c  ag named <tt>Sdl
0980: 54 6b 4e 6f 54 65 78 74 49 6e 70 75 74 3c 2f 74  TkNoTextInput</t
0990: 74 3e 2e 20 41 6e 64 72 6f 69 64 20 73 70 65 63  t>. Android spec
09a0: 69 66 69 63 3a 20 74 68 65 20 3c 74 74 3e 3c 69  ific: the <tt><i
09b0: 3e 68 69 6e 74 3c 2f 69 3e 3c 2f 74 74 3e 20 70  >hint</i></tt> p
09c0: 61 72 61 6d 65 74 65 72 20 69 73 20 61 6e 20 69  arameter is an i
09d0: 6e 74 65 67 65 72 20 77 68 69 63 68 20 63 6f 6e  nteger which con
09e0: 74 72 6f 6c 73 20 74 68 65 20 6b 69 6e 64 20 6f  trols the kind o
09f0: 66 20 76 69 72 74 75 61 6c 20 6b 65 79 62 6f 61  f virtual keyboa
0a00: 72 64 20 74 6f 20 62 65 20 64 69 73 70 6c 61 79  rd to be display
0a10: 65 64 2e 20 4b 6e 6f 77 6e 20 76 61 6c 75 65 73  ed. Known values
0a20: 20 61 72 65 20 30 20 28 6e 6f 72 6d 61 6c 20 6b   are 0 (normal k
0a30: 65 79 62 6f 61 72 64 29 2c 20 32 20 28 6e 75 6d  eyboard), 2 (num
0a40: 62 65 72 20 69 6e 70 75 74 29 2c 20 33 20 28 70  ber input), 3 (p
0a50: 68 6f 6e 65 20 6e 75 6d 62 65 72 20 69 6e 70 75  hone number inpu
0a60: 74 29 2c 20 34 20 28 64 61 74 65 2f 74 69 6d 65  t), 4 (date/time
0a70: 20 69 6e 70 75 74 29 2e 0d 0a 0d 0a 3c 74 74 3e   input).....<tt>
0a80: 73 64 6c 74 6b 20 61 6e 64 72 6f 69 64 3c 2f 74  sdltk android</t
0a90: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
0aa0: 73 20 74 72 75 65 20 77 68 65 6e 20 72 75 6e 6e  s true when runn
0ab0: 69 6e 67 20 6f 6e 20 41 6e 64 72 6f 69 64 2c 20  ing on Android, 
0ac0: 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 2c  false otherwise,
0ad0: 20 69 2e 65 2e 20 77 68 65 6e 20 62 75 69 6c 74   i.e. when built
0ae0: 20 66 6f 72 20 57 69 6e 64 6f 77 73 20 6f 72 20   for Windows or 
0af0: 4c 69 6e 75 78 20 70 6c 61 74 66 6f 72 6d 73 2e  Linux platforms.
0b00: 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 66 72  ....<tt>sdltk fr
0b10: 61 6d 65 62 75 66 66 65 72 3c 2f 74 74 3e 0d 0a  amebuffer</tt>..
0b20: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 72  ..    Returns tr
0b30: 75 65 20 77 68 65 6e 20 74 68 65 20 76 69 64 65  ue when the vide
0b40: 6f 20 64 72 69 76 65 72 20 72 65 73 65 6d 62 6c  o driver resembl
0b50: 65 73 20 61 20 66 72 61 6d 65 62 75 66 66 65 72  es a framebuffer
0b60: 2c 20 69 2e 65 2e 20 6e 6f 20 77 69 6e 64 6f 77  , i.e. no window
0b70: 69 6e 67 20 6d 61 6e 61 67 65 72 20 69 73 20 61  ing manager is a
0b80: 76 61 69 6c 61 62 6c 65 2e 20 43 75 72 72 65 6e  vailable. Curren
0b90: 74 6c 79 20 74 68 69 73 20 69 73 20 74 68 65 20  tly this is the 
0ba0: 63 61 73 65 20 66 6f 72 20 41 6e 64 72 6f 69 64  case for Android
0bb0: 2c 20 74 68 65 20 52 61 73 70 62 65 72 72 79 20  , the Raspberry 
0bc0: 50 69 20 76 69 64 65 6f 20 64 72 69 76 65 72 20  Pi video driver 
0bd0: 28 52 50 49 29 2c 20 74 68 65 20 4c 69 6e 75 78  (RPI), the Linux
0be0: 20 4b 4d 53 44 52 4d 20 76 69 64 65 6f 20 64 72   KMSDRM video dr
0bf0: 69 76 65 72 2c 20 61 6e 64 20 74 68 65 20 6a 73  iver, and the js
0c00: 6d 70 65 67 20 76 69 64 65 6f 20 64 72 69 76 65  mpeg video drive
0c10: 72 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20  r.....<tt>sdltk 
0c20: 69 73 61 6e 64 72 6f 69 64 74 76 3c 2f 74 74 3e  isandroidtv</tt>
0c30: 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20  ....    Returns 
0c40: 74 72 75 65 20 77 68 65 6e 20 72 75 6e 6e 69 6e  true when runnin
0c50: 67 20 6f 6e 20 61 6e 20 41 6e 64 72 6f 69 64 54  g on an AndroidT
0c60: 56 20 64 65 76 69 63 65 20 28 63 75 72 72 65 6e  V device (curren
0c70: 74 6c 79 20 75 6e 74 65 73 74 65 64 29 2e 0d 0a  tly untested)...
0c80: 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 69 73 63 68  ..<tt>sdltk isch
0c90: 72 6f 6d 65 62 6f 6f 6b 3c 2f 74 74 3e 0d 0a 0d  romebook</tt>...
0ca0: 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 72 75  .    Returns tru
0cb0: 65 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 6f  e when running o
0cc0: 6e 20 61 20 43 68 72 6f 6d 65 62 6f 6f 6b 20 28  n a Chromebook (
0cd0: 63 75 72 72 65 6e 74 6c 79 20 75 6e 74 65 73 74  currently untest
0ce0: 65 64 29 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74  ed).....<tt>sdlt
0cf0: 6b 20 6d 61 78 72 6f 6f 74 3c 2f 74 74 3e 0d 0a  k maxroot</tt>..
0d00: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
0d10: 65 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 6f  e maximum size o
0d20: 66 20 74 68 65 20 72 6f 6f 74 20 77 69 6e 64 6f  f the root windo
0d30: 77 20 61 73 20 74 77 6f 20 65 6c 65 6d 65 6e 74  w as two element
0d40: 20 6c 69 73 74 20 6d 61 64 65 20 75 70 20 6f 66   list made up of
0d50: 20 77 69 64 74 68 20 61 6e 64 20 68 65 69 67 68   width and heigh
0d60: 74 20 69 6e 20 70 69 78 65 6c 73 2e 20 54 68 65  t in pixels. The
0d70: 20 6d 61 78 69 6d 75 6d 20 73 69 7a 65 20 69 73   maximum size is
0d80: 20 64 65 76 69 63 65 20 64 65 70 65 6e 64 65 6e   device dependen
0d90: 74 20 61 6e 64 20 64 65 74 65 72 6d 69 6e 65 64  t and determined
0da0: 20 62 79 20 74 68 65 20 6d 61 78 69 6d 75 6d 20   by the maximum 
0db0: 74 65 78 74 75 72 65 20 73 69 7a 65 20 6f 66 20  texture size of 
0dc0: 74 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 4f  the underlying O
0dd0: 70 65 6e 47 4c 2f 4f 70 65 6e 47 4c 45 53 20 64  penGL/OpenGLES d
0de0: 72 69 76 65 72 73 2e 0d 0a 0d 0a 3c 74 74 3e 73  rivers.....<tt>s
0df0: 64 6c 74 6b 20 72 6f 6f 74 20 3f 3c 69 3e 77 69  dltk root ?<i>wi
0e00: 64 74 68 20 68 65 69 67 68 74 3c 2f 69 3e 3f 3c  dth height</i>?<
0e10: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 57 68 65 6e  /tt>....    When
0e20: 20 69 6e 76 6f 6b 65 64 20 77 69 74 68 6f 75 74   invoked without
0e30: 20 3c 74 74 3e 3c 69 3e 77 69 64 74 68 3c 2f 69   <tt><i>width</i
0e40: 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c  ></tt> and <tt><
0e50: 69 3e 68 65 69 67 68 74 3c 2f 69 3e 3c 2f 74 74  i>height</i></tt
0e60: 3e 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 65  > parameters the
0e70: 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 72 6e 73   command returns
0e80: 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 69 7a   the current siz
0e90: 65 20 6f 66 20 74 68 65 20 72 6f 6f 74 20 77 69  e of the root wi
0ea0: 6e 64 6f 77 20 61 73 20 74 77 6f 20 65 6c 65 6d  ndow as two elem
0eb0: 65 6e 74 20 6c 69 73 74 20 6f 66 20 69 6e 74 65  ent list of inte
0ec0: 67 65 72 73 2e 20 57 68 65 6e 20 3c 74 74 3e 3c  gers. When <tt><
0ed0: 69 3e 77 69 64 74 68 3c 2f 69 3e 3c 2f 74 74 3e  i>width</i></tt>
0ee0: 20 61 6e 64 20 3c 74 74 3e 3c 69 3e 68 65 69 67   and <tt><i>heig
0ef0: 68 74 3c 2f 69 3e 3c 2f 74 74 3e 20 61 72 65 20  ht</i></tt> are 
0f00: 67 69 76 65 6e 2c 20 74 68 65 20 72 6f 6f 74 20  given, the root 
0f10: 77 69 6e 64 6f 77 20 69 73 20 72 65 73 69 7a 65  window is resize
0f20: 64 20 74 6f 20 74 68 65 20 73 69 7a 65 20 67 69  d to the size gi
0f30: 76 65 6e 2e 20 57 68 65 6e 20 62 6f 74 68 20 3c  ven. When both <
0f40: 74 74 3e 3c 69 3e 77 69 64 74 68 3c 2f 69 3e 3c  tt><i>width</i><
0f50: 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e  /tt> and <tt><i>
0f60: 68 65 69 67 68 74 3c 2f 69 3e 3c 2f 74 74 3e 20  height</i></tt> 
0f70: 61 72 65 20 67 69 76 65 6e 20 61 73 20 7a 65 72  are given as zer
0f80: 6f 2c 20 74 68 65 20 72 6f 6f 74 20 77 69 6e 64  o, the root wind
0f90: 6f 77 20 69 73 20 72 65 73 69 7a 65 64 20 74 6f  ow is resized to
0fa0: 20 74 68 65 20 64 65 76 69 63 65 20 73 63 72 65   the device scre
0fb0: 65 6e 20 73 69 7a 65 2e 0d 0a 0d 0a 3c 74 74 3e  en size.....<tt>
0fc0: 73 64 6c 74 6b 20 76 73 79 6e 63 3c 2f 74 74 3e  sdltk vsync</tt>
0fd0: 0d 0a 0d 0a 20 20 20 20 57 61 69 74 73 20 75 6e  ....    Waits un
0fe0: 74 69 6c 20 74 68 65 20 6e 65 78 74 20 73 63 72  til the next scr
0ff0: 65 65 6e 20 72 65 66 72 65 73 68 20 61 6e 64 20  een refresh and 
1000: 72 65 74 75 72 6e 73 20 74 68 65 20 6e 75 6d 62  returns the numb
1010: 65 72 20 6f 66 20 73 63 72 65 65 6e 20 72 65 66  er of screen ref
1020: 72 65 73 68 65 73 20 77 68 69 63 68 20 68 61 70  reshes which hap
1030: 70 65 6e 65 64 20 64 75 72 69 6e 67 20 74 68 61  pened during tha
1040: 74 20 77 61 69 74 2e 20 54 68 65 20 6d 61 78 69  t wait. The maxi
1050: 6d 75 6d 20 77 61 69 74 20 74 69 6d 65 20 69 73  mum wait time is
1060: 20 6c 69 6d 69 74 65 64 20 74 6f 20 32 30 20 6d   limited to 20 m
1070: 69 6c 6c 69 73 65 63 6f 6e 64 73 20 28 74 68 65  illiseconds (the
1080: 20 69 6e 74 65 72 6e 61 6c 20 74 69 63 6b 20 72   internal tick r
1090: 61 74 65 20 66 6f 72 20 73 63 72 65 65 6e 20 75  ate for screen u
10a0: 70 64 61 74 65 73 29 20 62 75 74 20 63 61 6e 20  pdates) but can 
10b0: 62 65 20 6c 6f 6e 67 65 72 20 64 75 65 20 74 6f  be longer due to
10c0: 20 73 79 73 74 65 6d 20 6c 6f 61 64 2e 0d 0a 0d   system load....
10d0: 0a 3c 74 74 3e 73 64 6c 74 6b 20 76 69 65 77 70  .<tt>sdltk viewp
10e0: 6f 72 74 20 3f 3c 69 3e 78 20 79 3c 2f 69 3e 20  ort ?<i>x y</i> 
10f0: 3f 3c 69 3e 77 69 64 74 68 20 68 65 69 67 68 74  ?<i>width height
1100: 3c 2f 69 3e 3f 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20  </i>??</tt>.... 
1110: 20 20 20 43 68 61 6e 67 65 73 20 74 68 65 20 76     Changes the v
1120: 69 65 77 70 6f 72 74 20 28 72 6f 6f 74 20 77 69  iewport (root wi
1130: 6e 64 6f 77 20 74 6f 20 64 65 76 69 63 65 20 73  ndow to device s
1140: 63 72 65 65 6e 29 20 74 6f 20 61 6c 6c 6f 77 20  creen) to allow 
1150: 7a 6f 6f 6d 69 6e 67 20 61 6e 64 20 70 61 6e 6e  zooming and pann
1160: 69 6e 67 20 6f 66 20 74 68 65 20 72 6f 6f 74 20  ing of the root 
1170: 77 69 6e 64 6f 77 2e 20 57 68 65 6e 20 69 6e 76  window. When inv
1180: 6f 6b 65 64 20 77 69 74 68 6f 75 74 20 70 61 72  oked without par
1190: 61 6d 65 74 65 72 73 2c 20 74 68 65 20 63 75 72  ameters, the cur
11a0: 72 65 6e 74 20 76 69 65 77 70 6f 72 74 20 73 65  rent viewport se
11b0: 74 74 69 6e 67 73 20 61 72 65 20 72 65 74 75 72  ttings are retur
11c0: 6e 65 64 20 61 73 20 61 20 66 6f 75 72 20 65 6c  ned as a four el
11d0: 65 6d 65 6e 74 20 6c 69 73 74 20 6f 66 20 69 6e  ement list of in
11e0: 74 65 67 65 72 73 2e 20 57 68 65 6e 20 74 68 65  tegers. When the
11f0: 20 3c 74 74 3e 3c 69 3e 78 3c 2f 69 3e 3c 2f 74   <tt><i>x</i></t
1200: 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e 79 3c  t> and <tt><i>y<
1210: 2f 69 3e 3c 2f 74 74 3e 20 70 61 72 61 6d 65 74  /i></tt> paramet
1220: 65 72 73 20 61 72 65 20 67 69 76 65 6e 2c 20 74  ers are given, t
1230: 68 65 20 76 69 65 77 70 6f 72 74 20 69 73 20 73  he viewport is s
1240: 68 69 66 74 65 64 20 74 68 61 74 20 3c 74 74 3e  hifted that <tt>
1250: 3c 69 3e 78 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e  <i>x</i></tt> an
1260: 64 20 3c 74 74 3e 3c 69 3e 79 3c 2f 69 3e 3c 2f  d <tt><i>y</i></
1270: 74 74 3e 20 61 72 65 20 73 68 6f 77 6e 20 69 6e  tt> are shown in
1280: 20 74 68 65 20 74 6f 70 2d 6c 65 66 74 20 63 6f   the top-left co
1290: 72 6e 65 72 20 6f 66 20 74 68 65 20 73 63 72 65  rner of the scre
12a0: 65 6e 2e 20 57 68 65 6e 20 61 6c 6c 20 66 6f 75  en. When all fou
12b0: 72 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65  r parameters are
12c0: 20 67 69 76 65 6e 2c 20 74 68 65 20 76 69 65 77   given, the view
12d0: 70 6f 72 74 20 69 73 20 61 64 6a 75 73 74 65 64  port is adjusted
12e0: 20 61 63 63 6f 72 64 69 6e 67 6c 79 2c 20 69 2e   accordingly, i.
12f0: 65 2e 20 3c 74 74 3e 3c 69 3e 77 69 64 74 68 3c  e. <tt><i>width<
1300: 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74  /i></tt> and <tt
1310: 3e 3c 69 3e 68 65 69 67 68 74 3c 2f 69 3e 3c 2f  ><i>height</i></
1320: 74 74 3e 20 64 65 74 65 72 6d 69 6e 65 20 74 68  tt> determine th
1330: 65 20 7a 6f 6f 6d 20 66 61 63 74 6f 72 2c 20 61  e zoom factor, a
1340: 6e 64 20 3c 74 74 3e 3c 69 3e 78 3c 2f 69 3e 3c  nd <tt><i>x</i><
1350: 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e  /tt> and <tt><i>
1360: 79 3c 2f 69 3e 3c 2f 74 74 3e 20 74 68 65 20 74  y</i></tt> the t
1370: 6f 70 2d 6c 65 66 74 20 63 6f 72 6e 65 72 20 6f  op-left corner o
1380: 66 20 74 68 65 20 76 69 65 77 2e 20 4e 6f 74 65  f the view. Note
1390: 20 68 6f 77 65 76 65 72 2c 20 74 68 61 74 20 74   however, that t
13a0: 68 65 20 61 73 70 65 63 74 20 72 61 74 69 6f 20  he aspect ratio 
13b0: 69 73 20 72 65 74 61 69 6e 65 64 2c 20 69 2e 65  is retained, i.e
13c0: 2e 20 74 68 65 20 67 69 76 65 6e 20 70 61 72 61  . the given para
13d0: 6d 65 74 65 72 73 20 61 72 65 20 61 64 6a 75 73  meters are adjus
13e0: 74 65 64 20 74 6f 20 6b 65 65 70 20 74 68 65 20  ted to keep the 
13f0: 61 73 70 65 63 74 2e 0d 0a 0d 0a 3c 74 74 3e 73  aspect.....<tt>s
1400: 64 6c 74 6b 20 74 6f 75 63 68 74 72 61 6e 73 6c  dltk touchtransl
1410: 61 74 65 20 3f 3c 69 3e 6d 61 73 6b 3c 2f 69 3e  ate ?<i>mask</i>
1420: 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43 6f  ?</tt>....    Co
1430: 6e 74 72 6f 6c 73 20 74 6f 75 63 68 73 63 72 65  ntrols touchscre
1440: 65 6e 20 65 76 65 6e 74 20 74 72 61 6e 73 6c 61  en event transla
1450: 74 69 6f 6e 2c 20 6f 72 20 72 65 70 6f 72 74 73  tion, or reports
1460: 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61   the current tra
1470: 6e 73 6c 61 74 69 6f 6e 20 73 74 61 74 65 2e 20  nslation state. 
1480: 3c 74 74 3e 3c 69 3e 6d 61 73 6b 3c 2f 69 3e 3c  <tt><i>mask</i><
1490: 2f 74 74 3e 20 69 73 20 61 20 62 69 74 20 6d 61  /tt> is a bit ma
14a0: 73 6b 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 20 76  sk controlling v
14b0: 61 72 69 6f 75 73 20 74 72 61 6e 73 6c 61 74 69  arious translati
14c0: 6f 6e 73 2e 20 42 69 74 20 30 20 28 6d 61 73 6b  ons. Bit 0 (mask
14d0: 20 31 29 20 74 75 72 6e 73 20 6f 6e 20 74 72 61   1) turns on tra
14e0: 6e 73 6c 61 74 69 6f 6e 20 6f 66 20 6d 69 64 64  nslation of midd
14f0: 6c 65 2f 72 69 67 68 74 20 6d 6f 75 73 65 20 62  le/right mouse b
1500: 75 74 74 6f 6e 73 2c 20 69 2e 65 2e 20 66 61 73  uttons, i.e. fas
1510: 74 20 77 69 70 65 73 20 77 69 74 68 20 6f 6e 65  t wipes with one
1520: 20 66 69 6e 67 65 72 20 61 72 65 20 74 72 61 6e   finger are tran
1530: 73 6c 61 74 65 64 20 74 6f 20 6d 6f 75 73 65 20  slated to mouse 
1540: 62 75 74 74 6f 6e 20 32 20 70 72 65 73 73 2f 6d  button 2 press/m
1550: 6f 74 69 6f 6e 2f 72 65 6c 65 61 73 65 20 65 76  otion/release ev
1560: 65 6e 74 73 20 74 6f 20 61 6c 6c 6f 77 20 73 63  ents to allow sc
1570: 72 6f 6c 6c 69 6e 67 20 6f 66 20 6c 69 73 74 62  rolling of listb
1580: 6f 78 65 73 2c 20 65 6e 74 72 69 65 73 2c 20 61  oxes, entries, a
1590: 6e 64 20 74 65 78 74 20 77 69 64 67 65 74 73 2e  nd text widgets.
15a0: 20 53 6c 6f 77 20 77 69 70 65 73 20 73 74 69 6c   Slow wipes stil
15b0: 6c 20 64 65 6c 69 76 65 72 20 6d 6f 75 73 65 20  l deliver mouse 
15c0: 62 75 74 74 6f 6e 20 31 20 6d 6f 74 69 6f 6e 20  button 1 motion 
15d0: 65 76 65 6e 74 73 2e 20 48 6f 6c 64 69 6e 67 20  events. Holding 
15e0: 64 6f 77 6e 20 6f 6e 65 20 66 69 6e 67 65 72 20  down one finger 
15f0: 66 6f 72 20 61 62 6f 75 74 20 61 20 73 65 63 6f  for about a seco
1600: 6e 64 20 69 73 20 74 72 61 6e 73 6c 61 74 65 64  nd is translated
1610: 20 69 6e 74 6f 20 6d 6f 75 73 65 20 62 75 74 74   into mouse butt
1620: 6f 6e 20 33 20 70 72 65 73 73 20 66 6f 72 20 63  on 3 press for c
1630: 6f 6e 74 65 78 74 20 6d 65 6e 75 73 2e 20 42 69  ontext menus. Bi
1640: 74 20 31 20 28 6d 61 73 6b 20 32 29 20 74 75 72  t 1 (mask 2) tur
1650: 6e 73 20 6f 6e 20 70 69 6e 63 68 2d 74 6f 2d 7a  ns on pinch-to-z
1660: 6f 6f 6d 20 77 69 74 68 20 74 77 6f 20 66 69 6e  oom with two fin
1670: 67 65 72 73 20 77 68 69 63 68 20 69 73 20 72 65  gers which is re
1680: 70 6f 72 74 65 64 20 61 73 20 61 20 76 69 72 74  ported as a virt
1690: 75 61 6c 20 65 76 65 6e 74 20 6e 61 6d 65 64 20  ual event named 
16a0: 3c 74 74 3e 3c 3c 50 69 6e 63 68 54 6f 5a 6f 6f  <tt><<PinchToZoo
16b0: 6d 3e 3e 3c 2f 74 74 3e 2e 20 42 69 74 20 32 20  m>></tt>. Bit 2 
16c0: 28 6d 61 73 6b 20 34 29 20 74 75 72 6e 73 20 6f  (mask 4) turns o
16d0: 6e 20 70 69 6e 63 68 2d 74 6f 2d 7a 6f 6f 6d 20  n pinch-to-zoom 
16e0: 61 6e 64 20 77 69 70 65 73 20 66 6f 72 20 7a 6f  and wipes for zo
16f0: 6f 6d 69 6e 67 20 61 6e 64 20 70 61 6e 6e 69 6e  oming and pannin
1700: 67 20 74 68 65 20 72 6f 6f 74 20 77 69 6e 64 6f  g the root windo
1710: 77 2e 20 57 68 65 6e 20 62 6f 74 68 2c 20 62 69  w. When both, bi
1720: 74 73 20 31 20 61 6e 64 20 32 20 61 72 65 20 6f  ts 1 and 2 are o
1730: 6e 20 28 6d 61 73 6b 20 65 71 75 61 6c 73 20 36  n (mask equals 6
1740: 29 2c 20 7a 6f 6f 6d 69 6e 67 20 74 68 65 20 72  ), zooming the r
1750: 6f 6f 74 20 77 69 6e 64 6f 77 20 72 65 71 75 69  oot window requi
1760: 72 65 73 20 74 68 72 65 65 20 69 6e 73 74 65 61  res three instea
1770: 64 20 6f 66 20 74 77 6f 20 66 69 6e 67 65 72 73  d of two fingers
1780: 20 61 6e 64 20 70 61 6e 6e 69 6e 67 20 66 6f 75   and panning fou
1790: 72 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 72  r instead of thr
17a0: 65 65 20 66 69 6e 67 65 72 73 2e 20 42 69 74 20  ee fingers. Bit 
17b0: 33 20 28 6d 61 73 6b 20 38 29 20 74 75 72 6e 73  3 (mask 8) turns
17c0: 20 6f 6e 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20   on translation 
17d0: 6f 66 20 66 69 6e 67 65 72 20 65 76 65 6e 74 73  of finger events
17e0: 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20   to the current 
17f0: 76 69 65 77 70 6f 72 74 20 73 65 74 74 69 6e 67  viewport setting
1800: 73 2c 20 69 2e 65 2e 20 74 68 65 20 3c 74 74 3e  s, i.e. the <tt>
1810: 3c 3c 46 69 6e 67 65 72 55 70 3e 3e 3c 2f 74 74  <<FingerUp>></tt
1820: 3e 2c 20 3c 74 74 3e 3c 3c 46 69 6e 67 65 72 44  >, <tt><<FingerD
1830: 6f 77 6e 3e 3e 3c 2f 74 74 3e 2c 20 61 6e 64 20  own>></tt>, and 
1840: 3c 74 74 3e 3c 3c 46 69 6e 67 65 72 4d 6f 74 69  <tt><<FingerMoti
1850: 6f 6e 3e 3e 3c 2f 74 74 3e 20 65 76 65 6e 74 73  on>></tt> events
1860: 20 61 72 65 20 74 72 61 6e 73 6c 61 74 65 64 20   are translated 
1870: 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 76  to the current v
1880: 69 65 77 61 62 6c 65 20 70 6f 72 74 69 6f 6e 20  iewable portion 
1890: 6f 66 20 74 68 65 20 72 6f 6f 74 20 77 69 6e 64  of the root wind
18a0: 6f 77 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68  ow instead of th
18b0: 65 20 64 65 76 69 63 65 20 73 63 72 65 65 6e 2e  e device screen.
18c0: 20 42 69 74 20 34 20 28 6d 61 73 6b 20 31 36 29   Bit 4 (mask 16)
18d0: 20 74 75 72 6e 73 20 6f 6e 20 72 65 70 6f 72 74   turns on report
18e0: 69 6e 67 20 6f 66 20 66 69 6e 67 65 72 20 64 6f  ing of finger do
18f0: 77 6e 2f 75 70 20 65 76 65 6e 74 73 20 66 6f 72  wn/up events for
1900: 20 75 70 20 74 6f 20 31 30 20 66 69 6e 67 65 72   up to 10 finger
1910: 73 20 61 73 20 3c 74 74 3e 3c 42 75 74 74 6f 6e  s as <tt><Button
1920: 50 72 65 73 73 3e 3c 2f 74 74 3e 20 61 6e 64 20  Press></tt> and 
1930: 3c 74 74 3e 3c 42 75 74 74 6f 6e 52 65 6c 65 61  <tt><ButtonRelea
1940: 73 65 3e 3c 2f 74 74 3e 20 65 76 65 6e 74 73 20  se></tt> events 
1950: 77 69 74 68 20 62 75 74 74 6f 6e 20 6e 75 6d 62  with button numb
1960: 65 72 73 20 31 30 20 74 6f 20 31 39 2e 20 48 6f  ers 10 to 19. Ho
1970: 77 65 76 65 72 2c 20 6e 6f 20 70 72 6f 76 69 73  wever, no provis
1980: 69 6f 6e 73 20 61 72 65 20 74 61 6b 65 6e 20 74  ions are taken t
1990: 6f 20 65 6e 73 75 72 65 20 70 72 6f 70 65 72 20  o ensure proper 
19a0: 69 6d 70 6c 69 63 69 74 20 62 75 74 74 6f 6e 20  implicit button 
19b0: 67 72 61 62 73 20 6c 69 6b 65 20 61 20 72 65 61  grabs like a rea
19c0: 6c 20 58 20 73 65 72 76 65 72 20 77 6f 75 6c 64  l X server would
19d0: 20 64 6f 2c 20 74 68 75 73 20 75 73 65 20 74 68   do, thus use th
19e0: 69 73 20 66 65 61 74 75 72 65 20 77 69 74 68 20  is feature with 
19f0: 63 61 75 74 69 6f 6e 2e 20 54 68 65 20 64 65 66  caution. The def
1a00: 61 75 6c 74 20 74 6f 75 63 68 73 63 72 65 65 6e  ault touchscreen
1a10: 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 6d 6f 64   translation mod
1a20: 65 20 6f 6e 20 73 74 61 72 74 75 70 20 69 73 20  e on startup is 
1a30: 6d 61 73 6b 20 31 33 20 28 62 69 74 73 20 30 2c  mask 13 (bits 0,
1a40: 20 32 2c 20 61 6e 64 20 33 20 61 72 65 20 6f 6e   2, and 3 are on
1a50: 29 2c 20 69 2e 65 2e 20 65 76 65 72 79 74 68 69  ), i.e. everythi
1a60: 6e 67 20 65 78 63 65 70 74 20 3c 74 74 3e 3c 3c  ng except <tt><<
1a70: 50 69 6e 63 68 54 6f 5a 6f 6f 6d 3e 3e 3c 2f 74  PinchToZoom>></t
1a80: 74 3e 20 61 6e 64 20 66 69 6e 67 65 72 20 64 6f  t> and finger do
1a90: 77 6e 2f 75 70 20 61 73 20 3c 74 74 3e 3c 42 75  wn/up as <tt><Bu
1aa0: 74 74 6f 6e 50 72 65 73 73 3e 3c 2f 74 74 3e 2f  ttonPress></tt>/
1ab0: 3c 74 74 3e 3c 42 75 74 74 6f 6e 52 65 6c 65 61  <tt><ButtonRelea
1ac0: 73 65 3e 3c 2f 74 74 3e 20 69 73 20 65 6e 61 62  se></tt> is enab
1ad0: 6c 65 64 2e 20 4f 6e 20 57 69 6e 64 6f 77 73 20  led. On Windows 
1ae0: 61 6e 64 20 4c 69 6e 75 78 20 70 6c 61 74 66 6f  and Linux platfo
1af0: 72 6d 73 20 6f 6e 6c 79 20 62 69 74 20 33 20 28  rms only bit 3 (
1b00: 6d 61 73 6b 20 38 29 20 74 6f 20 63 6f 6e 74 72  mask 8) to contr
1b10: 6f 6c 20 74 68 65 20 76 69 65 77 70 6f 72 74 20  ol the viewport 
1b20: 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0d 0a 0d  is supported....
1b30: 0a 3c 74 74 3e 73 64 6c 74 6b 20 73 63 72 65 65  .<tt>sdltk scree
1b40: 6e 73 61 76 65 72 20 3f 6f 6e 7c 6f 66 66 3f 3c  nsaver ?on|off?<
1b50: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 54 75 72 6e  /tt>....    Turn
1b60: 73 20 74 68 65 20 73 63 72 65 65 6e 20 73 61 76  s the screen sav
1b70: 65 72 20 6f 6e 20 6f 72 20 6f 66 66 20 6f 72 20  er on or off or 
1b80: 72 65 70 6f 72 74 73 20 74 68 65 20 63 75 72 72  reports the curr
1b90: 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65  ent state of the
1ba0: 20 73 63 72 65 65 6e 73 61 76 65 72 2e 0d 0a 0d   screensaver....
1bb0: 0a 3c 74 74 3e 73 64 6c 74 6b 20 6a 6f 79 73 74  .<tt>sdltk joyst
1bc0: 69 63 6b 20 69 64 73 3c 2f 74 74 3e 0d 0a 0d 0a  ick ids</tt>....
1bd0: 20 20 20 20 52 65 74 75 72 6e 73 20 61 20 6c 69      Returns a li
1be0: 73 74 20 6d 61 64 65 20 75 70 20 6a 6f 79 73 74  st made up joyst
1bf0: 69 63 6b 20 69 64 73 20 28 69 6e 20 53 44 4c 32  ick ids (in SDL2
1c00: 20 72 65 66 65 72 72 65 64 20 74 6f 20 61 73 20   referred to as 
1c10: 6a 6f 79 73 74 69 63 6b 20 69 6e 73 74 61 6e 63  joystick instanc
1c20: 65 20 69 64 65 6e 74 69 66 69 65 72 73 29 20 77  e identifiers) w
1c30: 68 69 63 68 20 61 72 65 20 72 65 70 6f 72 74 65  hich are reporte
1c40: 64 20 69 6e 20 72 65 6c 61 74 65 64 20 76 69 72  d in related vir
1c50: 74 75 61 6c 20 65 76 65 6e 74 73 2e 20 54 68 65  tual events. The
1c60: 73 65 20 69 64 73 20 61 72 65 20 69 6e 74 65 67  se ids are integ
1c70: 65 72 20 6e 75 6d 62 65 72 73 20 77 68 69 63 68  er numbers which
1c80: 20 69 6e 63 72 65 61 73 65 20 66 6f 72 20 65 61   increase for ea
1c90: 63 68 20 6e 65 77 20 64 65 74 65 63 74 65 64 20  ch new detected 
1ca0: 6a 6f 79 73 74 69 63 6b 2e 0d 0a 0d 0a 3c 74 74  joystick.....<tt
1cb0: 3e 73 64 6c 74 6b 20 6a 6f 79 73 74 69 63 6b 20  >sdltk joystick 
1cc0: 6e 61 6d 65 20 3c 69 3e 69 64 3c 2f 69 3e 3c 2f  name <i>id</i></
1cd0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
1ce0: 6e 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74  ns the name of t
1cf0: 68 65 20 6a 6f 79 73 74 69 63 6b 20 69 64 65 6e  he joystick iden
1d00: 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69  tified by <tt><i
1d10: 3e 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d  >id</i></tt>....
1d20: 0a 3c 74 74 3e 73 64 6c 74 6b 20 6a 6f 79 73 74  .<tt>sdltk joyst
1d30: 69 63 6b 20 67 75 69 64 20 3c 69 3e 69 64 3c 2f  ick guid <i>id</
1d40: 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52  i></tt>....    R
1d50: 65 74 75 72 6e 73 20 74 68 65 20 67 6c 6f 62 61  eturns the globa
1d60: 6c 6c 79 20 75 6e 69 71 75 65 20 69 64 20 28 47  lly unique id (G
1d70: 55 49 44 2c 20 31 32 38 20 62 69 74 20 73 74 72  UID, 128 bit str
1d80: 69 6e 67 29 20 6f 66 20 74 68 65 20 6a 6f 79 73  ing) of the joys
1d90: 74 69 63 6b 20 69 64 65 6e 74 69 66 69 65 64 20  tick identified 
1da0: 62 79 20 3c 74 74 3e 3c 69 3e 69 64 3c 2f 69 3e  by <tt><i>id</i>
1db0: 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 73 64  </tt>.....<tt>sd
1dc0: 6c 74 6b 20 6a 6f 79 73 74 69 63 6b 20 6e 75 6d  ltk joystick num
1dd0: 61 78 65 73 20 3c 69 3e 69 64 3c 2f 69 3e 3c 2f  axes <i>id</i></
1de0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
1df0: 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  ns the number of
1e00: 20 61 78 65 73 20 6f 66 20 74 68 65 20 6a 6f 79   axes of the joy
1e10: 73 74 69 63 6b 20 69 64 65 6e 74 69 66 69 65 64  stick identified
1e20: 20 62 79 20 3c 74 74 3e 3c 69 3e 69 64 3c 2f 69   by <tt><i>id</i
1e30: 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 73  ></tt>.....<tt>s
1e40: 64 6c 74 6b 20 6a 6f 79 73 74 69 63 6b 20 6e 75  dltk joystick nu
1e50: 6d 62 61 6c 6c 73 20 3c 69 3e 69 64 3c 2f 69 3e  mballs <i>id</i>
1e60: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
1e70: 75 72 6e 73 20 74 68 65 20 6e 75 6d 62 65 72 20  urns the number 
1e80: 6f 66 20 62 61 6c 6c 73 20 6f 66 20 74 68 65 20  of balls of the 
1e90: 6a 6f 79 73 74 69 63 6b 20 69 64 65 6e 74 69 66  joystick identif
1ea0: 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 69 64  ied by <tt><i>id
1eb0: 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74  </i></tt>.....<t
1ec0: 74 3e 73 64 6c 74 6b 20 6a 6f 79 73 74 69 63 6b  t>sdltk joystick
1ed0: 20 6e 75 6d 62 75 74 74 6f 6e 73 20 3c 69 3e 69   numbuttons <i>i
1ee0: 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  d</i></tt>....  
1ef0: 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 6e 75    Returns the nu
1f00: 6d 62 65 72 20 6f 66 20 62 75 74 74 6f 6e 73 20  mber of buttons 
1f10: 6f 66 20 74 68 65 20 6a 6f 79 73 74 69 63 6b 20  of the joystick 
1f20: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 3c 74  identified by <t
1f30: 74 3e 3c 69 3e 69 64 3c 2f 69 3e 3c 2f 74 74 3e  t><i>id</i></tt>
1f40: 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 6a  .....<tt>sdltk j
1f50: 6f 79 73 74 69 63 6b 20 6e 75 6d 68 61 74 73 20  oystick numhats 
1f60: 3c 69 3e 69 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  <i>id</i></tt>..
1f70: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
1f80: 65 20 6e 75 6d 62 65 72 20 6f 66 20 68 61 74 73  e number of hats
1f90: 20 6f 66 20 74 68 65 20 6a 6f 79 73 74 69 63 6b   of the joystick
1fa0: 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 3c   identified by <
1fb0: 74 74 3e 3c 69 3e 69 64 3c 2f 69 3e 3c 2f 74 74  tt><i>id</i></tt
1fc0: 3e 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20  >.....<tt>sdltk 
1fd0: 61 64 64 66 6f 6e 74 20 3c 69 3e 66 69 6c 65 6e  addfont <i>filen
1fe0: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a  ame</i></tt>....
1ff0: 20 20 20 20 41 64 64 73 20 54 72 75 65 54 79 70      Adds TrueTyp
2000: 65 20 66 6f 6e 74 28 73 29 20 63 6f 6e 74 61 69  e font(s) contai
2010: 6e 65 64 20 69 6e 20 3c 74 74 3e 3c 69 3e 66 69  ned in <tt><i>fi
2020: 6c 65 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 20  lename</i></tt> 
2030: 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20  and returns the 
2040: 66 6f 6e 74 20 66 61 6d 69 6c 79 20 6e 61 6d 65  font family name
2050: 73 20 77 68 69 63 68 20 77 65 72 65 20 61 64 64  s which were add
2060: 65 64 2e 20 49 66 20 74 68 65 20 66 6f 6e 74 20  ed. If the font 
2070: 61 6c 72 65 61 64 79 20 68 61 73 20 62 65 65 6e  already has been
2080: 20 6c 6f 61 64 65 64 20 61 6e 20 65 72 72 6f 72   loaded an error
2090: 20 69 73 20 74 68 72 6f 77 6e 2e 0d 0a 0d 0a 3c   is thrown.....<
20a0: 74 74 3e 73 64 6c 74 6b 20 68 61 73 67 6c 3c 2f  tt>sdltk hasgl</
20b0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72  tt>....    Retur
20c0: 6e 73 20 74 72 75 65 20 77 68 65 6e 20 4f 70 65  ns true when Ope
20d0: 6e 47 4c 20 73 75 70 70 6f 72 74 20 69 73 20 61  nGL support is a
20e0: 76 61 69 6c 61 62 6c 65 2c 20 65 2e 67 2e 20 66  vailable, e.g. f
20f0: 6f 72 20 74 68 65 20 33 44 20 63 61 6e 76 61 73  or the 3D canvas
2100: 20 77 69 64 67 65 74 2e 0d 0a 0d 0a 3c 74 74 3e   widget.....<tt>
2110: 73 64 6c 74 6b 20 6c 6f 67 20 3c 69 3e 70 72 69  sdltk log <i>pri
2120: 6f 72 69 74 79 20 6d 65 73 73 61 67 65 3c 2f 69  ority message</i
2130: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 4f 75  ></tt>....    Ou
2140: 74 70 75 74 73 20 74 68 65 20 6c 6f 67 20 6d 65  tputs the log me
2150: 73 73 61 67 65 20 3c 74 74 3e 3c 69 3e 6d 65 73  ssage <tt><i>mes
2160: 73 61 67 65 3c 2f 69 3e 3c 2f 74 74 3e 20 75 73  sage</i></tt> us
2170: 69 6e 67 20 53 44 4c 27 73 20 6c 6f 67 67 69 6e  ing SDL's loggin
2180: 67 20 66 61 63 69 6c 69 74 79 2e 20 3c 74 74 3e  g facility. <tt>
2190: 3c 69 3e 70 72 69 6f 72 69 74 79 3c 2f 69 3e 3c  <i>priority</i><
21a0: 2f 74 74 3e 20 73 70 65 63 69 66 69 65 73 20 74  /tt> specifies t
21b0: 68 65 20 70 72 69 6f 72 69 74 79 20 6f 66 20 74  he priority of t
21c0: 68 65 20 6c 6f 67 20 6d 65 73 73 61 67 65 20 61  he log message a
21d0: 6e 64 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f  nd must be one o
21e0: 66 20 3c 74 74 3e 76 65 72 62 6f 73 65 3c 2f 74  f <tt>verbose</t
21f0: 74 3e 2c 20 3c 74 74 3e 64 65 62 75 67 3c 2f 74  t>, <tt>debug</t
2200: 74 3e 2c 20 3c 74 74 3e 69 6e 66 6f 3c 2f 74 74  t>, <tt>info</tt
2210: 3e 2c 20 3c 74 74 3e 77 61 72 6e 3c 2f 74 74 3e  >, <tt>warn</tt>
2220: 2c 20 3c 74 74 3e 65 72 72 6f 72 3c 2f 74 74 3e  , <tt>error</tt>
2230: 2c 20 6f 72 20 3c 74 74 3e 66 61 74 61 6c 3c 2f  , or <tt>fatal</
2240: 74 74 3e 20 28 66 72 6f 6d 20 6c 6f 77 65 73 74  tt> (from lowest
2250: 20 74 6f 20 68 69 67 68 65 73 74 29 2e 0d 0a 0d   to highest)....
2260: 0a 3c 74 74 3e 73 64 6c 74 6b 20 64 65 69 63 6f  .<tt>sdltk deico
2270: 6e 69 66 79 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  nify</tt>....   
2280: 20 44 65 69 63 6f 6e 69 66 69 65 73 20 74 68 65   Deiconifies the
2290: 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e 64 6f 77   SDL root window
22a0: 20 28 6e 6f 74 20 75 73 61 62 6c 65 20 6f 6e 20   (not usable on 
22b0: 41 6e 64 72 6f 69 64 20 61 6e 64 20 57 61 79 6c  Android and Wayl
22c0: 61 6e 64 29 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c  and).....<tt>sdl
22d0: 74 6b 20 66 75 6c 6c 73 63 72 65 65 6e 3c 2f 74  tk fullscreen</t
22e0: 74 3e 0d 0a 0d 0a 20 20 20 20 4d 61 6b 65 73 20  t>....    Makes 
22f0: 74 68 65 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e  the SDL root win
2300: 64 6f 77 20 69 6e 74 6f 20 61 20 66 75 6c 6c 73  dow into a fulls
2310: 63 72 65 65 6e 20 77 69 6e 64 6f 77 20 28 6e 6f  creen window (no
2320: 74 20 75 73 61 62 6c 65 20 6f 6e 20 41 6e 64 72  t usable on Andr
2330: 6f 69 64 20 61 6e 64 20 57 61 79 6c 61 6e 64 29  oid and Wayland)
2340: 2e 20 54 68 65 20 53 44 4c 20 72 6f 6f 74 20 77  . The SDL root w
2350: 69 6e 64 6f 77 20 6d 75 73 74 20 62 65 20 72 65  indow must be re
2360: 73 69 7a 61 62 6c 65 20 28 63 6f 6d 6d 61 6e 64  sizable (command
2370: 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 3c 74 74   line option <tt
2380: 3e 2d 73 64 6c 72 65 73 69 7a 61 62 6c 65 3c 2f  >-sdlresizable</
2390: 74 74 3e 29 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c  tt>).....<tt>sdl
23a0: 74 6b 20 69 63 6f 6e 69 66 79 3c 2f 74 74 3e 0d  tk iconify</tt>.
23b0: 0a 0d 0a 20 20 20 20 49 63 6f 6e 69 66 69 65 73  ...    Iconifies
23c0: 20 28 6d 69 6e 69 6d 69 7a 65 73 29 20 74 68 65   (minimizes) the
23d0: 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e 64 6f 77   SDL root window
23e0: 20 28 6e 6f 74 20 75 73 61 62 6c 65 20 6f 6e 20   (not usable on 
23f0: 41 6e 64 72 6f 69 64 20 61 6e 64 20 57 61 79 6c  Android and Wayl
2400: 61 6e 64 29 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c  and).....<tt>sdl
2410: 74 6b 20 6d 61 78 69 6d 69 7a 65 3c 2f 74 74 3e  tk maximize</tt>
2420: 0d 0a 0d 0a 20 20 20 20 4d 61 78 69 6d 69 7a 65  ....    Maximize
2430: 73 20 74 68 65 20 53 44 4c 20 72 6f 6f 74 20 77  s the SDL root w
2440: 69 6e 64 6f 77 20 28 6e 6f 74 20 75 73 61 62 6c  indow (not usabl
2450: 65 20 6f 6e 20 41 6e 64 72 6f 69 64 20 61 6e 64  e on Android and
2460: 20 57 61 79 6c 61 6e 64 29 2e 20 54 68 65 20 53   Wayland). The S
2470: 44 4c 20 72 6f 6f 74 20 77 69 6e 64 6f 77 20 6d  DL root window m
2480: 75 73 74 20 62 65 20 72 65 73 69 7a 61 62 6c 65  ust be resizable
2490: 20 28 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f   (command line o
24a0: 70 74 69 6f 6e 20 3c 74 74 3e 2d 73 64 6c 72 65  ption <tt>-sdlre
24b0: 73 69 7a 61 62 6c 65 3c 2f 74 74 3e 29 2e 0d 0a  sizable</tt>)...
24c0: 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 72 65 73 74  ..<tt>sdltk rest
24d0: 6f 72 65 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  ore</tt>....    
24e0: 52 65 73 74 6f 72 65 73 20 74 68 65 20 6c 61 73  Restores the las
24f0: 74 20 75 6e 6d 61 78 69 6d 69 7a 65 64 20 67 65  t unmaximized ge
2500: 6f 6d 65 74 72 79 20 6f 66 20 74 68 65 20 53 44  ometry of the SD
2510: 4c 20 72 6f 6f 74 20 77 69 6e 64 6f 77 20 28 6e  L root window (n
2520: 6f 74 20 75 73 61 62 6c 65 20 6f 6e 20 41 6e 64  ot usable on And
2530: 72 6f 69 64 20 61 6e 64 20 57 61 79 6c 61 6e 64  roid and Wayland
2540: 29 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20  ).....<tt>sdltk 
2550: 77 69 74 68 64 72 61 77 3c 2f 74 74 3e 0d 0a 0d  withdraw</tt>...
2560: 0a 20 20 20 20 57 69 74 68 64 72 61 77 20 28 68  .    Withdraw (h
2570: 69 64 65 73 20 65 6e 74 69 72 65 6c 79 29 20 74  ides entirely) t
2580: 68 65 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e 64  he SDL root wind
2590: 6f 77 20 28 6e 6f 74 20 75 73 61 62 6c 65 20 6f  ow (not usable o
25a0: 6e 20 41 6e 64 72 6f 69 64 20 61 6e 64 20 57 61  n Android and Wa
25b0: 79 6c 61 6e 64 29 2e 0d 0a 0d 0a 3c 74 74 3e 73  yland).....<tt>s
25c0: 64 6c 74 6b 20 6f 70 61 63 69 74 79 20 3c 69 3e  dltk opacity <i>
25d0: 76 61 6c 75 65 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  value</i></tt>..
25e0: 0d 0a 20 20 20 20 51 75 65 72 79 20 6f 72 20 73  ..    Query or s
25f0: 65 74 20 74 68 65 20 6f 70 61 63 69 74 79 20 6f  et the opacity o
2600: 66 20 74 68 65 20 53 44 4c 20 72 6f 6f 74 20 77  f the SDL root w
2610: 69 6e 64 6f 77 2e 20 3c 74 74 3e 3c 69 3e 76 61  indow. <tt><i>va
2620: 6c 75 65 3c 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73  lue</i></tt> mus
2630: 74 20 62 65 20 61 20 66 6c 6f 61 74 69 6e 67 20  t be a floating 
2640: 70 6f 69 6e 74 20 6e 75 6d 62 65 72 20 62 65 74  point number bet
2650: 77 65 65 6e 20 30 2e 30 20 61 6e 64 20 31 2e 30  ween 0.0 and 1.0
2660: 20 28 6e 6f 74 20 75 73 61 62 6c 65 20 6f 6e 20   (not usable on 
2670: 41 6e 64 72 6f 69 64 29 2e 20 4f 6e 20 50 4f 53  Android). On POS
2680: 49 58 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73  IX operating sys
2690: 74 65 6d 73 20 74 68 65 20 77 69 6e 64 6f 77 20  tems the window 
26a0: 6d 61 6e 61 67 65 72 20 6d 75 73 74 20 73 75 70  manager must sup
26b0: 70 6f 72 74 20 74 72 61 6e 73 70 61 72 65 6e 74  port transparent
26c0: 20 74 6f 70 6c 65 76 65 6c 73 20 66 6f 72 20 74   toplevels for t
26d0: 68 69 73 20 73 65 74 74 69 6e 67 20 68 61 76 69  his setting havi
26e0: 6e 67 20 61 6e 20 65 66 66 65 63 74 2e 0d 0a 0d  ng an effect....
26f0: 0a 3c 74 74 3e 73 64 6c 74 6b 20 66 6f 6e 74 73  .<tt>sdltk fonts
2700: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
2710: 75 72 6e 73 20 61 20 6c 69 73 74 20 6d 61 64 65  urns a list made
2720: 20 75 70 20 6f 66 20 66 6f 6e 74 20 69 6e 66 6f   up of font info
2730: 72 6d 61 74 69 6f 6e 20 69 6e 20 74 68 65 20 66  rmation in the f
2740: 6f 72 6d 20 6f 66 20 74 68 72 65 65 20 65 6c 65  orm of three ele
2750: 6d 65 6e 74 73 20 58 4c 46 44 2c 20 66 69 6c 65  ments XLFD, file
2760: 20 6e 61 6d 65 2c 20 66 6f 6e 74 20 69 6e 64 65   name, font inde
2770: 78 20 6f 66 20 61 6c 6c 20 72 65 67 69 73 74 65  x of all registe
2780: 72 65 64 20 66 6f 6e 74 73 2e 0d 0a 0d 0a 0d 0a  red fonts.......
2790: 3c 74 74 3e 73 64 6c 74 6b 20 76 72 6d 6f 64 65  <tt>sdltk vrmode
27a0: 20 3c 69 3e 3f 6d 6f 64 65 20 3f 64 69 73 74 6f   <i>?mode ?disto
27b0: 72 74 69 6f 6e 20 72 65 73 63 61 6c 65 3f 3f 3c  rtion rescale??<
27c0: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
27d0: 45 78 70 65 72 69 6d 65 6e 74 61 6c 20 56 52 20  Experimental VR 
27e0: 68 65 61 64 73 65 74 20 6d 6f 64 65 20 63 75 72  headset mode cur
27f0: 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 73 75 70 70  rently only supp
2800: 6f 72 74 65 64 20 6f 6e 20 74 68 65 20 41 6e 64  orted on the And
2810: 72 6f 69 64 20 70 6c 61 74 66 6f 72 6d 2e 20 49  roid platform. I
2820: 66 20 3c 74 74 3e 3c 69 3e 6d 6f 64 65 3c 2f 69  f <tt><i>mode</i
2830: 3e 3c 2f 74 74 3e 20 69 73 20 73 70 65 63 69 66  ></tt> is specif
2840: 69 65 64 2c 20 69 74 20 63 68 61 6e 67 65 73 20  ied, it changes 
2850: 74 68 65 20 56 52 20 68 65 61 64 73 65 74 20 6d  the VR headset m
2860: 6f 64 65 20 74 6f 20 6f 6e 65 20 6f 66 20 74 68  ode to one of th
2870: 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 20 4d 6f 64  e following: Mod
2880: 65 20 30 20 66 6f 72 20 6e 6f 72 6d 61 6c 20 6f  e 0 for normal o
2890: 70 65 72 61 74 69 6f 6e 2c 20 69 6e 20 6d 6f 64  peration, in mod
28a0: 65 20 31 20 74 68 65 20 72 6f 6f 74 20 77 69 6e  e 1 the root win
28b0: 64 6f 77 20 69 73 20 64 75 70 6c 69 63 61 74 65  dow is duplicate
28c0: 64 20 61 6c 6f 6e 67 20 69 74 73 20 68 6f 72 69  d along its hori
28d0: 7a 6f 6e 74 61 6c 20 61 78 69 73 20 61 6e 64 20  zontal axis and 
28e0: 73 63 61 6c 65 64 20 75 70 20 6f 72 20 64 6f 77  scaled up or dow
28f0: 6e 2c 20 69 6e 20 6d 6f 64 65 20 32 20 74 68 65  n, in mode 2 the
2900: 20 72 6f 6f 74 20 77 69 6e 64 6f 77 20 6d 75 73   root window mus
2910: 74 20 62 65 20 6d 61 6e 61 67 65 64 20 61 73 20  t be managed as 
2920: 6c 65 66 74 20 61 6e 64 20 72 69 67 68 74 20 68  left and right h
2930: 61 6c 76 65 73 20 62 79 20 74 68 65 20 61 70 70  alves by the app
2940: 6c 69 63 61 74 69 6f 6e 2c 20 61 6e 64 20 69 6e  lication, and in
2950: 20 6d 6f 64 65 20 33 20 74 68 65 20 72 6f 6f 74   mode 3 the root
2960: 20 77 69 6e 64 6f 77 20 69 73 20 64 75 70 6c 69   window is dupli
2970: 63 61 74 65 64 20 61 6c 6f 6e 67 20 69 74 73 20  cated along its 
2980: 68 6f 72 69 7a 6f 6e 74 61 6c 20 61 78 69 73 20  horizontal axis 
2990: 77 69 74 68 6f 75 74 20 73 63 61 6c 69 6e 67 2e  without scaling.
29a0: 20 46 6f 72 20 61 6c 6c 20 6d 6f 64 65 73 20 65   For all modes e
29b0: 78 63 65 70 74 20 6d 6f 64 65 20 30 20 74 6f 75  xcept mode 0 tou
29c0: 63 68 20 73 63 72 65 65 6e 20 70 61 6e 6e 69 6e  ch screen pannin
29d0: 67 20 61 6e 64 20 7a 6f 6f 6d 69 6e 67 20 6f 6e  g and zooming on
29e0: 20 41 6e 64 72 6f 69 64 20 69 73 20 74 75 72 6e   Android is turn
29f0: 65 64 20 6f 66 66 20 61 6e 64 20 74 6f 75 63 68  ed off and touch
2a00: 20 63 6f 6f 72 64 69 6e 61 74 65 73 20 69 6e 20   coordinates in 
2a10: 58 20 61 72 65 20 72 65 70 6f 72 74 65 64 20 65  X are reported e
2a20: 71 75 61 6c 20 66 6f 72 20 62 6f 74 68 20 6c 65  qual for both le
2a30: 66 74 20 61 6e 64 20 72 69 67 68 74 20 68 61 6c  ft and right hal
2a40: 76 65 73 20 6f 66 20 74 68 65 20 73 63 72 65 65  ves of the scree
2a50: 6e 2e 20 41 6c 6c 20 6d 6f 64 65 73 20 65 78 63  n. All modes exc
2a60: 65 70 74 20 6d 6f 64 65 20 30 20 74 75 72 6e 20  ept mode 0 turn 
2a70: 6f 6e 20 61 20 73 68 61 64 65 72 20 70 65 72 66  on a shader perf
2a80: 6f 72 6d 69 6e 67 20 61 20 62 61 72 72 65 6c 20  orming a barrel 
2a90: 64 69 73 74 6f 72 74 69 6f 6e 20 28 77 68 65 6e  distortion (when
2aa0: 20 4f 70 65 6e 47 4c 20 45 53 20 32 20 69 73 20   OpenGL ES 2 is 
2ab0: 61 76 61 69 6c 61 62 6c 65 29 20 77 68 69 63 68  available) which
2ac0: 20 74 68 65 6f 72 65 74 69 63 61 6c 6c 79 20 63   theoretically c
2ad0: 6f 6d 70 65 6e 73 61 74 65 73 20 74 68 65 20 65  ompensates the e
2ae0: 66 66 65 63 74 20 6f 66 20 6c 65 6e 73 65 73 20  ffect of lenses 
2af0: 6f 66 20 61 20 56 52 20 68 65 61 64 73 65 74 2e  of a VR headset.
2b00: 20 54 68 65 20 6f 70 74 69 6f 6e 61 6c 20 70 61   The optional pa
2b10: 72 61 6d 65 74 65 72 73 20 3c 74 74 3e 3c 69 3e  rameters <tt><i>
2b20: 64 69 73 74 6f 72 74 69 6f 6e 3c 2f 69 3e 3c 2f  distortion</i></
2b30: 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69 3e 72  tt> and <tt><i>r
2b40: 65 73 63 61 6c 65 3c 2f 69 3e 3c 2f 74 74 3e 2c  escale</i></tt>,
2b50: 20 69 66 20 70 72 65 73 65 6e 74 2c 20 6d 75 73   if present, mus
2b60: 74 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61  t be specified a
2b70: 73 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74  s floating point
2b80: 20 6e 75 6d 62 65 72 73 20 61 6e 64 20 63 6f 6e   numbers and con
2b90: 74 72 6f 6c 20 74 68 65 20 64 65 67 72 65 65 20  trol the degree 
2ba0: 6f 66 20 64 69 73 74 6f 72 74 69 6f 6e 2e 20 49  of distortion. I
2bb0: 6e 20 6f 72 64 65 72 20 74 6f 20 66 6c 69 70 20  n order to flip 
2bc0: 74 68 65 20 69 6d 61 67 65 28 73 29 20 68 6f 72  the image(s) hor
2bd0: 69 7a 6f 6e 74 61 6c 6c 79 20 61 6e 64 2f 6f 72  izontally and/or
2be0: 20 76 65 72 74 69 63 61 6c 6c 79 2c 20 3c 74 74   vertically, <tt
2bf0: 3e 3c 69 3e 6d 6f 64 65 3c 2f 69 3e 3c 2f 74 74  ><i>mode</i></tt
2c00: 3e 20 63 61 6e 20 62 65 20 62 69 74 77 69 73 65  > can be bitwise
2c10: 20 6f 72 27 65 64 20 77 69 74 68 20 34 20 28 68   or'ed with 4 (h
2c20: 6f 72 69 7a 6f 6e 74 61 6c 20 66 6c 69 70 29 20  orizontal flip) 
2c30: 61 6e 64 2f 6f 72 20 38 20 28 76 65 72 74 69 63  and/or 8 (vertic
2c40: 61 6c 20 66 6c 69 70 29 20 66 6f 72 20 61 6c 6c  al flip) for all
2c50: 20 6d 6f 64 65 73 20 65 78 63 65 70 74 20 30 2e   modes except 0.
2c60: 20 49 66 20 3c 74 74 3e 3c 69 3e 6d 6f 64 65 3c   If <tt><i>mode<
2c70: 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 61 64 64  /i></tt> and add
2c80: 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74  itional argument
2c90: 73 20 61 72 65 20 6f 6d 69 74 74 65 64 2c 20 74  s are omitted, t
2ca0: 68 65 20 63 75 72 72 65 6e 74 6c 79 20 61 63 74  he currently act
2cb0: 69 76 65 20 6d 6f 64 65 20 69 6e 63 6c 75 64 69  ive mode includi
2cc0: 6e 67 20 74 68 65 20 64 69 73 74 6f 72 74 69 6f  ng the distortio
2cd0: 6e 20 63 6f 6e 74 72 6f 6c 20 70 61 72 61 6d 65  n control parame
2ce0: 74 65 72 73 20 61 72 65 20 72 65 74 75 72 6e 65  ters are returne
2cf0: 64 20 61 73 20 61 20 54 63 6c 20 6c 69 73 74 20  d as a Tcl list 
2d00: 6f 66 20 74 68 72 65 65 20 65 6c 65 6d 65 6e 74  of three element
2d10: 73 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20  s.....<tt>sdltk 
2d20: 70 6f 69 6e 74 65 72 20 3c 69 3e 3f 66 6c 61 67  pointer <i>?flag
2d30: 3f 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  ?</i></tt>....  
2d40: 20 20 51 75 65 72 69 65 73 20 6f 72 20 73 65 74    Queries or set
2d50: 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74  s the state of t
2d60: 68 65 20 6d 6f 75 73 65 20 70 6f 69 6e 74 65 72  he mouse pointer
2d70: 20 73 68 61 70 65 2e 20 49 66 20 70 72 65 73 65   shape. If prese
2d80: 6e 74 2c 20 3c 74 74 3e 3c 69 3e 66 6c 61 67 3c  nt, <tt><i>flag<
2d90: 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73 74 20 62 65  /i></tt> must be
2da0: 20 61 20 62 6f 6f 6c 65 61 6e 20 76 61 6c 75 65   a boolean value
2db0: 20 61 6e 64 20 73 70 65 63 69 66 69 65 73 20 74   and specifies t
2dc0: 68 65 20 6e 65 77 20 73 74 61 74 65 2e 20 49 66  he new state. If
2dd0: 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 74 68   not present, th
2de0: 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20  e current state 
2df0: 69 73 20 72 65 74 75 72 6e 65 64 20 61 73 20 30  is returned as 0
2e00: 20 28 6f 66 66 29 20 6f 72 20 31 20 28 6f 6e 29   (off) or 1 (on)
2e10: 2e 0d 0a 0d 0a 3c 74 74 3e 73 64 6c 74 6b 20 74  .....<tt>sdltk t
2e20: 6f 75 63 68 63 61 6c 69 62 72 61 74 69 6f 6e 20  ouchcalibration 
2e30: 3c 69 3e 3f 78 6d 69 6e 20 78 6d 61 78 20 79 6d  <i>?xmin xmax ym
2e40: 69 6e 20 79 6d 61 78 20 73 77 61 70 78 79 3f 3c  in ymax swapxy?<
2e50: 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  /i></tt>....    
2e60: 51 75 65 72 69 65 73 20 6f 72 20 73 65 74 73 20  Queries or sets 
2e70: 74 68 65 20 63 61 6c 69 62 72 61 74 69 6f 6e 20  the calibration 
2e80: 64 61 74 61 20 66 6f 72 20 72 65 73 69 73 74 69  data for resisti
2e90: 76 65 20 74 6f 75 63 68 73 63 72 65 65 6e 73 20  ve touchscreens 
2ea0: 73 75 70 70 6f 72 74 65 64 20 6f 6e 20 63 65 72  supported on cer
2eb0: 74 61 69 6e 20 53 44 4c 20 76 69 64 65 6f 20 64  tain SDL video d
2ec0: 72 69 76 65 72 73 20 28 63 75 72 72 65 6e 74 6c  rivers (currentl
2ed0: 79 20 4c 69 6e 75 78 20 45 56 44 45 56 20 64 65  y Linux EVDEV de
2ee0: 76 69 63 65 73 20 77 69 74 68 20 4b 4d 53 44 52  vices with KMSDR
2ef0: 4d 20 6f 72 20 52 50 49 20 76 69 64 65 6f 20 64  M or RPI video d
2f00: 72 69 76 65 72 73 29 2e 20 54 68 65 20 63 61 6c  rivers). The cal
2f10: 69 62 72 61 74 69 6f 6e 20 64 61 74 61 20 63 6f  ibration data co
2f20: 6e 73 69 73 74 73 20 6f 66 20 66 69 76 65 20 69  nsists of five i
2f30: 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 73 20 77  nteger numbers w
2f40: 68 69 63 68 0d 0a 61 72 65 20 72 65 74 75 72 6e  hich..are return
2f50: 65 64 20 61 73 20 61 20 6c 69 73 74 2c 20 77 68  ed as a list, wh
2f60: 65 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69  en the command i
2f70: 73 20 63 61 6c 6c 65 64 20 77 69 74 68 6f 75 74  s called without
2f80: 20 70 61 72 61 6d 65 74 65 72 73 2e 0d 0a 0d 0a   parameters.....
2f90: 3c 74 74 3e 73 64 6c 74 6b 20 73 69 7a 65 20 3c  <tt>sdltk size <
2fa0: 69 3e 3f 77 69 64 74 68 20 68 65 69 67 68 74 3f  i>?width height?
2fb0: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
2fc0: 20 51 75 65 72 69 65 73 20 74 68 65 20 73 69 7a   Queries the siz
2fd0: 65 20 6f 66 20 74 68 65 20 65 6e 63 6c 6f 73 69  e of the enclosi
2fe0: 6e 67 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e 64  ng SDL root wind
2ff0: 6f 77 20 77 68 65 6e 20 3c 74 74 3e 3c 69 3e 77  ow when <tt><i>w
3000: 69 64 74 68 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e  idth</i></tt> an
3010: 64 20 3c 74 74 3e 3c 69 3e 68 65 69 67 68 74 3c  d <tt><i>height<
3020: 2f 69 3e 3c 2f 74 74 3e 20 70 61 72 61 6d 65 74  /i></tt> paramet
3030: 65 72 73 20 61 72 65 20 6f 6d 69 74 74 65 64 2e  ers are omitted.
3040: 20 41 20 74 77 6f 20 65 6c 65 6d 65 6e 74 20 6c   A two element l
3050: 69 73 74 20 69 73 20 72 65 74 75 72 6e 65 64 20  ist is returned 
3060: 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74  with the current
3070: 20 77 69 64 74 68 20 61 6e 64 20 68 65 69 67 68   width and heigh
3080: 74 20 69 6e 20 70 69 78 65 6c 73 2e 20 49 66 20  t in pixels. If 
3090: 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 67  parameters are g
30a0: 69 76 65 6e 2c 20 74 68 65 20 65 6e 63 6c 6f 73  iven, the enclos
30b0: 69 6e 67 20 53 44 4c 20 72 6f 6f 74 20 77 69 6e  ing SDL root win
30c0: 64 6f 77 20 69 73 20 72 65 73 69 7a 65 64 20 72  dow is resized r
30d0: 65 73 70 65 63 74 69 76 65 6c 79 2c 20 70 72 6f  espectively, pro
30e0: 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 63  vided that the c
30f0: 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 70 61 72 61  ommand line para
3100: 6d 65 74 65 72 20 3c 74 74 3e 2d 73 64 6c 72 65  meter <tt>-sdlre
3110: 73 69 7a 65 61 62 6c 65 3c 2f 74 74 3e 20 77 61  sizeable</tt> wa
3120: 73 20 73 70 65 63 69 66 69 65 64 20 61 6e 64 20  s specified and 
3130: 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65  the command line
3140: 20 70 61 72 61 6d 65 74 65 72 20 3c 74 74 3e 2d   parameter <tt>-
3150: 73 64 6c 66 75 6c 6c 73 63 72 65 65 6e 3c 2f 74  sdlfullscreen</t
3160: 74 3e 20 77 61 73 20 6e 6f 74 20 73 70 65 63 69  t> was not speci
3170: 66 69 65 64 20 6f 6e 20 73 74 61 72 74 75 70 2e  fied on startup.
3180: 20 48 6f 77 65 76 65 72 2c 20 63 68 61 6e 67 69   However, changi
3190: 6e 67 20 74 68 65 20 53 44 4c 20 72 6f 6f 74 20  ng the SDL root 
31a0: 77 69 6e 64 6f 77 20 73 69 7a 65 20 69 73 20 6e  window size is n
31b0: 6f 74 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 20  ot supported on 
31c0: 66 72 61 6d 65 62 75 66 66 65 72 20 6c 69 6b 65  framebuffer like
31d0: 20 64 65 76 69 63 65 73 20 28 73 65 65 20 3c 74   devices (see <t
31e0: 74 3e 73 64 6c 74 6b 20 66 72 61 6d 65 62 75 66  t>sdltk framebuf
31f0: 66 65 72 3c 2f 74 74 3e 29 2e 20 20 0d 0a 0d 0a  fer</tt>).  ....
3200: 3c 68 33 3e 54 6f 75 63 68 73 63 72 65 65 6e 20  <h3>Touchscreen 
3210: 61 6e 64 20 41 63 63 65 6c 65 72 6f 6d 65 74 65  and Acceleromete
3220: 72 20 45 76 65 6e 74 73 3c 2f 68 33 3e 0d 0a 0d  r Events</h3>...
3230: 0a 55 73 69 6e 67 20 74 68 65 20 73 64 6c 74 6b  .Using the sdltk
3240: 20 66 72 61 6d 65 77 6f 72 6b 20 75 73 75 61 6c   framework usual
3250: 6c 79 20 72 65 71 75 69 72 65 73 20 6c 69 62 65  ly requires libe
3260: 72 61 6c 20 75 73 65 20 6f 66 20 76 69 72 74 75  ral use of virtu
3270: 61 6c 20 65 76 65 6e 74 20 68 61 6e 64 6c 65 72  al event handler
3280: 73 2e 20 54 68 65 20 76 69 72 74 75 61 6c 20 65  s. The virtual e
3290: 76 65 6e 74 73 20 69 6e 63 6c 75 64 65 3a 0d 0a  vents include:..
32a0: 0d 0a 3c 74 74 3e 3c 3c 41 63 63 65 6c 65 72 6f  ..<tt><<Accelero
32b0: 6d 65 74 65 72 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a  meter>></tt>....
32c0: 20 20 20 20 45 76 65 6e 74 20 61 73 73 6f 63 69      Event associ
32d0: 61 74 65 64 20 77 69 74 68 20 74 68 65 20 61 63  ated with the ac
32e0: 63 65 6c 65 72 6f 6d 65 74 65 72 20 28 61 63 74  celerometer (act
32f0: 69 76 61 74 65 64 20 77 69 74 68 20 3c 74 74 3e  ivated with <tt>
3300: 73 64 6c 74 6b 20 61 63 63 65 6c 65 72 6f 6d 65  sdltk accelerome
3310: 74 65 72 20 6f 6e 3c 2f 74 74 3e 29 2e 20 3c 74  ter on</tt>). <t
3320: 74 3e 25 73 3c 2f 74 74 3e 20 69 73 20 73 75 62  t>%s</tt> is sub
3330: 73 74 69 74 75 74 65 64 20 77 69 74 68 20 74 68  stituted with th
3340: 65 20 61 63 63 65 6c 65 72 6f 6d 65 74 65 72 20  e accelerometer 
3350: 61 78 69 73 20 7b 31 2e 2e 33 7d 20 61 6e 64 20  axis {1..3} and 
3360: 3c 74 74 3e 25 78 3c 2f 74 74 3e 20 77 69 74 68  <tt>%x</tt> with
3370: 20 74 68 65 20 61 63 63 65 6c 65 72 6f 6d 65 74   the acceleromet
3380: 65 72 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20  er value in the 
3390: 72 61 6e 67 65 20 7b 2d 33 32 37 36 38 2e 2e 2e  range {-32768...
33a0: 2b 33 32 37 36 37 7d 2e 20 54 68 69 73 20 65 76  +32767}. This ev
33b0: 65 6e 74 20 69 73 20 72 65 70 6f 72 74 65 64 20  ent is reported 
33c0: 74 6f 20 74 6f 70 6c 65 76 65 6c 20 77 69 64 67  to toplevel widg
33d0: 65 74 73 20 6f 6e 6c 79 2e 0d 0a 0d 0a 3c 74 74  ets only.....<tt
33e0: 3e 3c 3c 46 69 6e 67 65 72 44 6f 77 6e 3e 3e 3c  ><<FingerDown>><
33f0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 20 74 6f  /tt>....    A to
3400: 75 63 68 20 65 76 65 6e 74 2e 0d 0a 0d 0a 3c 74  uch event.....<t
3410: 74 3e 3c 3c 46 69 6e 67 65 72 55 70 3e 3e 3c 2f  t><<FingerUp>></
3420: 74 74 3e 0d 0a 0d 0a 20 20 20 20 41 20 74 6f 75  tt>....    A tou
3430: 63 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 65 76  ch completion ev
3440: 65 6e 74 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 46 69  ent.....<tt><<Fi
3450: 6e 67 65 72 4d 6f 74 69 6f 6e 3e 3e 3c 2f 74 74  ngerMotion>></tt
3460: 3e 0d 0a 0d 0a 20 20 20 20 41 20 74 6f 75 63 68  >....    A touch
3470: 20 6d 6f 76 65 6d 65 6e 74 20 28 73 6c 69 64 69   movement (slidi
3480: 6e 67 29 20 65 76 65 6e 74 2e 20 54 68 65 20 66  ng) event. The f
3490: 69 65 6c 64 73 20 3c 74 74 3e 25 78 3c 2f 74 74  ields <tt>%x</tt
34a0: 3e 20 61 6e 64 20 3c 74 74 3e 25 79 3c 2f 74 74  > and <tt>%y</tt
34b0: 3e 20 61 72 65 20 73 75 62 73 74 69 74 75 74 65  > are substitute
34c0: 64 20 77 69 74 68 20 74 68 65 20 66 69 6e 67 65  d with the finge
34d0: 72 20 70 6f 73 69 74 69 6f 6e 20 73 63 61 6c 65  r position scale
34e0: 64 20 74 6f 20 7b 30 2e 2e 2e 39 39 39 39 7d 20  d to {0...9999} 
34f0: 6f 66 20 74 68 65 20 64 65 76 69 63 65 20 73 63  of the device sc
3500: 72 65 65 6e 20 6f 72 20 76 69 65 77 70 6f 72 74  reen or viewport
3510: 2c 20 3c 74 74 3e 25 58 3c 2f 74 74 3e 20 61 6e  , <tt>%X</tt> an
3520: 64 20 3c 74 74 3e 25 59 3c 2f 74 74 3e 20 77 69  d <tt>%Y</tt> wi
3530: 74 68 20 74 68 65 20 6d 6f 74 69 6f 6e 20 64 69  th the motion di
3540: 66 66 65 72 65 6e 63 65 20 73 63 61 6c 65 64 20  fference scaled 
3550: 74 6f 20 7b 2d 39 39 39 39 2e 2e 2e 2b 39 39 39  to {-9999...+999
3560: 39 7d 2c 20 3c 74 74 3e 25 74 3c 2f 74 74 3e 20  9}, <tt>%t</tt> 
3570: 77 69 74 68 20 74 68 65 20 70 72 65 73 73 75 72  with the pressur
3580: 65 20 73 63 61 6c 65 64 20 74 6f 20 7b 30 2e 2e  e scaled to {0..
3590: 2e 39 39 39 39 7d 2c 20 61 6e 64 20 3c 74 74 3e  .9999}, and <tt>
35a0: 25 73 3c 2f 74 74 3e 20 77 69 74 68 20 74 68 65  %s</tt> with the
35b0: 20 66 69 6e 67 65 72 20 69 64 65 6e 74 69 66 69   finger identifi
35c0: 65 72 20 7b 31 2e 2e 2e 31 30 7d 2e 20 54 68 65  er {1...10}. The
35d0: 73 65 20 73 75 62 73 74 69 74 75 74 69 6f 6e 73  se substitutions
35e0: 20 61 72 65 20 70 65 72 66 6f 72 6d 65 64 20 66   are performed f
35f0: 6f 72 20 61 6c 6c 20 66 69 6e 67 65 72 20 72 65  or all finger re
3600: 6c 61 74 65 64 20 74 6f 75 63 68 20 65 76 65 6e  lated touch even
3610: 74 73 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 50 69 6e  ts.....<tt><<Pin
3620: 63 68 54 6f 5a 6f 6f 6d 3e 3e 3c 2f 74 74 3e 0d  chToZoom>></tt>.
3630: 0a 0d 0a 20 20 20 20 41 20 7a 6f 6f 6d 20 67 65  ...    A zoom ge
3640: 73 74 75 72 65 20 65 76 65 6e 74 2e 20 3c 74 74  sture event. <tt
3650: 3e 25 58 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74  >%X</tt> and <tt
3660: 3e 25 59 3c 2f 74 74 3e 20 61 72 65 20 73 75 62  >%Y</tt> are sub
3670: 73 74 69 74 75 74 65 64 20 77 69 74 68 20 74 68  stituted with th
3680: 65 20 72 6f 6f 74 20 77 69 6e 64 6f 77 20 63 6f  e root window co
3690: 6f 72 64 69 6e 61 74 65 20 6f 66 20 74 68 65 20  ordinate of the 
36a0: 63 65 6e 74 65 72 20 6f 66 20 74 68 65 20 74 77  center of the tw
36b0: 6f 20 66 69 6e 67 65 72 73 2c 20 3c 74 74 3e 25  o fingers, <tt>%
36c0: 78 3c 2f 74 74 3e 20 77 69 74 68 20 74 68 65 20  x</tt> with the 
36d0: 64 69 73 74 61 6e 63 65 20 62 65 74 77 65 65 6e  distance between
36e0: 20 74 68 65 20 74 77 6f 20 66 69 6e 67 65 72 73   the two fingers
36f0: 2c 20 61 6e 64 20 3c 74 74 3e 25 79 3c 2f 74 74  , and <tt>%y</tt
3700: 3e 20 77 69 74 68 20 74 68 65 20 61 6e 67 6c 65  > with the angle
3710: 20 6d 65 61 73 75 72 65 64 20 69 6e 20 36 34 20   measured in 64 
3720: 74 69 6d 65 73 20 64 65 67 72 65 65 73 20 43 43  times degrees CC
3730: 57 20 73 74 61 72 74 69 6e 67 20 61 74 20 33 20  W starting at 3 
3740: 6f 27 63 6c 6f 63 6b 2e 20 54 68 65 20 66 69 6e  o'clock. The fin
3750: 67 65 72 20 73 74 61 74 65 20 69 73 20 72 65 70  ger state is rep
3760: 6f 72 74 65 64 20 69 6e 20 74 68 65 20 3c 74 74  orted in the <tt
3770: 3e 25 73 3c 2f 74 74 3e 20 73 75 62 73 74 69 74  >%s</tt> substit
3780: 75 74 69 6f 6e 20 61 73 20 30 20 28 7a 6f 6f 6d  ution as 0 (zoom
3790: 20 6d 6f 74 69 6f 6e 29 2c 20 31 20 28 7a 6f 6f   motion), 1 (zoo
37a0: 6d 20 73 74 61 72 74 2c 20 69 2e 65 2e 20 32 6e  m start, i.e. 2n
37b0: 64 20 66 69 6e 67 65 72 20 64 6f 77 6e 20 65 76  d finger down ev
37c0: 65 6e 74 29 2c 20 32 20 28 7a 6f 6f 6d 20 65 6e  ent), 2 (zoom en
37d0: 64 20 62 79 20 31 73 74 20 66 69 6e 67 65 72 20  d by 1st finger 
37e0: 75 70 20 65 76 65 6e 74 29 2c 20 33 20 28 7a 6f  up event), 3 (zo
37f0: 6f 6d 20 65 6e 64 20 62 79 20 32 6e 64 20 66 69  om end by 2nd fi
3800: 6e 67 65 72 20 75 70 20 65 76 65 6e 74 29 2e 0d  nger up event)..
3810: 0a 0d 0a 3c 68 33 3e 4a 6f 79 73 74 69 63 6b 20  ...<h3>Joystick 
3820: 45 76 65 6e 74 73 3c 2f 68 33 3e 0d 0a 0d 0a 46  Events</h3>....F
3830: 6f 6c 6c 6f 77 69 6e 67 20 76 69 72 74 75 61 6c  ollowing virtual
3840: 20 65 76 65 6e 74 73 20 61 72 65 20 72 65 70 6f   events are repo
3850: 72 74 65 64 20 66 6f 72 20 6a 6f 79 73 74 69 63  rted for joystic
3860: 6b 73 20 61 6e 64 20 67 61 6d 65 20 63 6f 6e 74  ks and game cont
3870: 72 6f 6c 6c 65 72 73 3a 0d 0a 0d 0a 3c 74 74 3e  rollers:....<tt>
3880: 3c 3c 4a 6f 79 73 74 69 63 6b 41 64 64 65 64 3e  <<JoystickAdded>
3890: 3e 3c 2f 74 74 3e 2c 20 3c 74 74 3e 3c 3c 4a 6f  ></tt>, <tt><<Jo
38a0: 79 73 74 69 63 6b 52 65 6d 6f 76 65 64 3e 3e 3c  ystickRemoved>><
38b0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 45 76 65 6e  /tt>....    Even
38c0: 74 20 67 65 6e 65 72 61 74 65 64 20 77 68 65 6e  t generated when
38d0: 20 61 20 6a 6f 79 73 74 69 63 6b 20 6f 72 20 67   a joystick or g
38e0: 61 6d 65 20 63 6f 6e 74 72 6f 6c 6c 65 72 20 69  ame controller i
38f0: 73 20 70 6c 75 67 67 65 64 20 6f 72 20 75 6e 70  s plugged or unp
3900: 6c 75 67 67 65 64 2e 20 54 68 65 20 66 69 65 6c  lugged. The fiel
3910: 64 20 3c 74 74 3e 25 58 3c 2f 74 74 3e 20 69 73  d <tt>%X</tt> is
3920: 20 73 75 62 73 74 69 74 75 74 65 64 20 77 69 74   substituted wit
3930: 68 20 74 68 65 20 6a 6f 79 73 74 69 63 6b 20 69  h the joystick i
3940: 64 20 28 69 6e 73 74 61 6e 63 65 20 69 64 65 6e  d (instance iden
3950: 74 69 66 69 65 72 20 69 6e 20 53 44 4c 32 20 74  tifier in SDL2 t
3960: 65 72 6d 69 6e 6f 6c 6f 67 79 29 2e 0d 0a 0d 0a  erminology).....
3970: 3c 74 74 3e 3c 3c 4a 6f 79 73 74 69 63 6b 4d 6f  <tt><<JoystickMo
3980: 74 69 6f 6e 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  tion>></tt>.... 
3990: 20 20 20 53 69 6d 69 6c 61 72 20 74 6f 20 3c 74     Similar to <t
39a0: 74 3e 3c 3c 41 63 63 65 6c 65 72 6f 6d 65 74 65  t><<Acceleromete
39b0: 72 3e 3e 3c 2f 74 74 3e 20 74 68 69 73 20 65 76  r>></tt> this ev
39c0: 65 6e 74 20 69 73 20 72 65 70 6f 72 74 65 64 20  ent is reported 
39d0: 77 68 65 6e 20 74 68 65 20 70 6f 73 69 74 69 6f  when the positio
39e0: 6e 20 6f 66 20 74 68 65 20 6a 6f 79 73 74 69 63  n of the joystic
39f0: 6b 20 68 61 73 20 63 68 61 6e 67 65 64 2e 20 41  k has changed. A
3a00: 6e 20 61 64 64 69 74 69 6f 6e 61 6c 20 73 75 62  n additional sub
3a10: 73 74 69 74 75 74 69 6f 6e 20 69 73 20 6d 61 64  stitution is mad
3a20: 65 20 66 6f 72 20 3c 74 74 3e 25 58 3c 2f 74 74  e for <tt>%X</tt
3a30: 3e 20 77 68 69 63 68 20 72 65 63 65 69 76 65 73  > which receives
3a40: 20 74 68 65 20 6a 6f 79 73 74 69 63 6b 20 69 64   the joystick id
3a50: 20 28 69 6e 73 74 61 6e 63 65 20 69 64 65 6e 74   (instance ident
3a60: 69 66 69 65 72 20 69 6e 20 53 44 4c 32 20 74 65  ifier in SDL2 te
3a70: 72 6d 69 6e 6f 6c 6f 67 79 29 2e 0d 0a 0d 0a 3c  rminology).....<
3a80: 74 74 3e 3c 3c 54 72 61 63 6b 62 61 6c 6c 4d 6f  tt><<TrackballMo
3a90: 74 69 6f 6e 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20  tion>></tt>.... 
3aa0: 20 20 20 41 20 6a 6f 79 73 74 69 63 6b 20 74 72     A joystick tr
3ab0: 61 63 6b 62 61 6c 6c 20 68 61 73 20 6d 6f 76 65  ackball has move
3ac0: 64 2e 20 54 68 65 20 66 69 65 6c 64 73 20 3c 74  d. The fields <t
3ad0: 74 3e 25 78 3c 2f 74 74 3e 20 61 6e 64 20 3c 74  t>%x</tt> and <t
3ae0: 74 3e 25 79 3c 2f 74 74 3e 20 61 72 65 20 73 75  t>%y</tt> are su
3af0: 62 73 74 69 74 75 74 65 64 20 77 69 74 68 20 74  bstituted with t
3b00: 68 65 20 64 65 6c 74 61 73 20 6f 66 20 74 68 65  he deltas of the
3b10: 20 6d 6f 76 65 2c 20 3c 74 74 3e 25 73 3c 2f 74   move, <tt>%s</t
3b20: 74 3e 20 77 69 74 68 20 74 68 65 20 74 72 61 63  t> with the trac
3b30: 6b 62 61 6c 6c 20 6e 75 6d 62 65 72 20 63 6f 75  kball number cou
3b40: 6e 74 65 64 20 66 72 6f 6d 20 31 2c 20 74 68 65  nted from 1, the
3b50: 20 66 69 65 6c 64 20 3c 74 74 3e 25 58 3c 2f 74   field <tt>%X</t
3b60: 74 3e 20 69 6e 64 69 63 61 74 65 73 20 74 68 65  t> indicates the
3b70: 20 6a 6f 79 73 74 69 63 6b 20 69 64 2e 0d 0a 0d   joystick id....
3b80: 0a 3c 74 74 3e 3c 3c 48 61 74 50 6f 73 69 74 69  .<tt><<HatPositi
3b90: 6f 6e 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  on>></tt>....   
3ba0: 20 41 20 6a 6f 79 73 74 69 63 6b 20 68 61 74 20   A joystick hat 
3bb0: 68 61 73 20 63 68 61 6e 67 65 64 2e 20 54 68 65  has changed. The
3bc0: 20 66 69 65 6c 64 20 3c 74 74 3e 25 78 3c 2f 74   field <tt>%x</t
3bd0: 74 3e 20 69 73 20 73 75 62 73 74 69 74 75 74 65  t> is substitute
3be0: 64 20 77 69 74 68 20 74 68 65 20 76 61 6c 75 65  d with the value
3bf0: 20 6f 66 20 74 68 65 20 68 61 74 2c 20 3c 74 74   of the hat, <tt
3c00: 3e 25 73 3c 2f 74 74 3e 20 77 69 74 68 20 74 68  >%s</tt> with th
3c10: 65 20 68 61 74 20 6e 75 6d 62 65 72 20 63 6f 75  e hat number cou
3c20: 6e 74 65 64 20 66 72 6f 6d 20 31 2c 20 74 68 65  nted from 1, the
3c30: 20 66 69 65 6c 64 20 3c 74 74 3e 25 58 3c 2f 74   field <tt>%X</t
3c40: 74 3e 20 69 6e 64 69 63 61 74 65 73 20 74 68 65  t> indicates the
3c50: 20 6a 6f 79 73 74 69 63 6b 20 69 64 2e 0d 0a 0d   joystick id....
3c60: 0a 3c 74 74 3e 3c 3c 4a 6f 79 73 74 69 63 6b 42  .<tt><<JoystickB
3c70: 75 74 74 6f 6e 55 70 3e 3e 3c 2f 74 74 3e 2c 20  uttonUp>></tt>, 
3c80: 3c 2f 74 74 3e 3c 3c 4a 6f 79 73 74 69 63 6b 42  </tt><<JoystickB
3c90: 75 74 74 6f 6e 44 6f 77 6e 3e 3e 3c 2f 74 74 3e  uttonDown>></tt>
3ca0: 0d 0a 0d 0a 20 20 20 20 41 20 6a 6f 79 73 74 69  ....    A joysti
3cb0: 63 6b 20 62 75 74 74 6f 6e 20 77 61 73 20 70 72  ck button was pr
3cc0: 65 73 73 65 64 20 6f 72 20 72 65 6c 65 61 73 65  essed or release
3cd0: 64 2e 20 54 68 65 20 66 69 65 6c 64 20 3c 74 74  d. The field <tt
3ce0: 3e 25 73 3c 2f 74 74 3e 20 69 73 20 73 75 62 73  >%s</tt> is subs
3cf0: 74 69 74 75 74 65 64 20 77 69 74 68 20 74 68 65  tituted with the
3d00: 20 62 75 74 74 6f 6e 20 6e 75 6d 62 65 72 20 63   button number c
3d10: 6f 75 6e 74 65 64 20 66 72 6f 6d 20 31 2c 20 74  ounted from 1, t
3d20: 68 65 20 66 69 65 6c 64 20 3c 74 74 3e 25 58 3c  he field <tt>%X<
3d30: 2f 74 74 3e 20 69 6e 64 69 63 61 74 65 73 20 74  /tt> indicates t
3d40: 68 65 20 6a 6f 79 73 74 69 63 6b 20 69 64 2e 0d  he joystick id..
3d50: 0a 0d 0a 3c 68 33 3e 45 76 65 6e 74 73 20 72 65  ...<h3>Events re
3d60: 6c 61 74 65 64 20 74 6f 20 74 68 65 20 64 65 76  lated to the dev
3d70: 69 63 65 20 73 63 72 65 65 6e 3c 2f 68 33 3e 0d  ice screen</h3>.
3d80: 0a 0d 0a 3c 74 74 3e 3c 3c 56 69 65 77 70 6f 72  ...<tt><<Viewpor
3d90: 74 55 70 64 61 74 65 3e 3e 3c 2f 74 74 3e 0d 0a  tUpdate>></tt>..
3da0: 0d 0a 20 20 20 20 54 68 69 73 20 65 76 65 6e 74  ..    This event
3db0: 20 69 73 20 73 65 6e 74 20 74 6f 20 74 6f 70 6c   is sent to topl
3dc0: 65 76 65 6c 20 77 69 64 67 65 74 73 20 77 68 65  evel widgets whe
3dd0: 6e 20 74 68 65 20 76 69 65 77 70 6f 72 74 20 68  n the viewport h
3de0: 61 73 20 63 68 61 6e 67 65 64 2e 20 3c 74 74 3e  as changed. <tt>
3df0: 25 78 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e  %x</tt> and <tt>
3e00: 25 79 3c 2f 74 74 3e 20 61 72 65 20 73 75 62 73  %y</tt> are subs
3e10: 74 69 74 75 74 65 64 20 77 69 74 68 20 74 68 65  tituted with the
3e20: 20 76 69 65 77 70 6f 72 74 20 6f 66 66 73 65 74   viewport offset
3e30: 20 28 74 6f 70 2d 6c 65 66 74 20 63 6f 72 6e 65   (top-left corne
3e40: 72 20 6f 66 20 74 68 65 20 73 63 72 65 65 6e 29  r of the screen)
3e50: 2c 20 3c 74 74 3e 25 58 3c 2f 74 74 3e 20 61 6e  , <tt>%X</tt> an
3e60: 64 20 3c 74 74 3e 25 59 3c 2f 74 74 3e 20 77 69  d <tt>%Y</tt> wi
3e70: 74 68 20 74 68 65 20 77 69 64 74 68 20 61 6e 64  th the width and
3e80: 20 68 65 69 67 68 74 2c 20 72 65 73 70 65 63 74   height, respect
3e90: 69 76 65 6c 79 2c 20 61 6e 64 20 3c 74 74 3e 25  ively, and <tt>%
3ea0: 73 3c 2f 74 74 3e 20 77 69 74 68 20 74 68 65 20  s</tt> with the 
3eb0: 73 63 61 6c 65 20 66 61 63 74 6f 72 20 28 72 65  scale factor (re
3ec0: 6c 61 74 69 6f 6e 20 6f 66 20 72 6f 6f 74 20 77  lation of root w
3ed0: 69 6e 64 6f 77 20 73 69 7a 65 20 74 6f 20 64 69  indow size to di
3ee0: 73 70 6c 61 79 65 64 20 73 69 7a 65 29 20 73 63  splayed size) sc
3ef0: 61 6c 65 64 20 74 6f 20 31 30 30 30 30 2e 0d 0a  aled to 10000...
3f00: 0d 0a 3c 68 33 3e 45 76 65 6e 74 73 20 72 65 6c  ..<h3>Events rel
3f10: 61 74 65 64 20 74 6f 20 74 68 65 20 61 70 70 20  ated to the app 
3f20: 6c 69 66 65 2d 63 79 63 6c 65 3c 2f 68 33 3e 0d  life-cycle</h3>.
3f30: 0a 0d 0a 54 68 65 73 65 20 65 76 65 6e 74 73 20  ...These events 
3f40: 61 72 65 20 64 69 72 65 63 74 20 74 72 61 6e 73  are direct trans
3f50: 6c 61 74 69 6f 6e 73 20 66 72 6f 6d 20 53 44 4c  lations from SDL
3f60: 20 65 76 65 6e 74 73 20 28 3c 62 3e 53 44 4c 5f   events (<b>SDL_
3f70: 41 50 50 5f 2a 3c 2f 62 3e 20 69 6e 20 53 44 4c  APP_*</b> in SDL
3f80: 20 68 65 61 64 65 72 20 66 69 6c 65 73 29 20 61   header files) a
3f90: 6e 64 20 64 65 70 65 6e 64 20 6f 6e 20 70 6c 61  nd depend on pla
3fa0: 74 66 6f 72 6d 20 73 75 70 70 6f 72 74 2e 20 54  tform support. T
3fb0: 68 65 79 20 61 72 65 20 72 65 70 6f 72 74 65 64  hey are reported
3fc0: 20 74 6f 20 74 6f 70 6c 65 76 65 6c 20 77 69 64   to toplevel wid
3fd0: 67 65 74 73 20 6f 6e 6c 79 2e 0d 0a 0d 0a 3c 74  gets only.....<t
3fe0: 74 3e 3c 3c 4c 6f 77 4d 65 6d 6f 72 79 3e 3e 3c  t><<LowMemory>><
3ff0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 79 73 74  /tt>....    Syst
4000: 65 6d 20 69 73 20 69 6e 20 6c 6f 77 20 6d 65 6d  em is in low mem
4010: 6f 72 79 20 73 69 74 75 61 74 69 6f 6e 2e 20 41  ory situation. A
4020: 6c 74 68 6f 75 67 68 20 69 6d 70 6c 65 6d 65 6e  lthough implemen
4030: 74 65 64 20 66 6f 72 20 41 6e 64 72 6f 69 64 20  ted for Android 
4040: 61 6e 64 20 69 4f 53 2c 20 74 68 69 73 20 65 76  and iOS, this ev
4050: 65 6e 74 20 77 61 73 20 6e 65 76 65 72 20 6f 62  ent was never ob
4060: 73 65 72 76 65 64 20 69 6e 20 72 65 61 6c 69 74  served in realit
4070: 79 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 54 65 72 6d  y.....<tt><<Term
4080: 69 6e 61 74 69 6e 67 3e 3e 3c 2f 74 74 3e 0d 0a  inating>></tt>..
4090: 0d 0a 20 20 20 20 41 70 70 20 69 73 20 74 65 72  ..    App is ter
40a0: 6d 69 6e 61 74 69 6e 67 2e 20 41 6c 74 68 6f 75  minating. Althou
40b0: 67 68 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 66  gh implemented f
40c0: 6f 72 20 41 6e 64 72 6f 69 64 20 61 6e 64 20 69  or Android and i
40d0: 4f 53 2c 20 74 68 69 73 20 65 76 65 6e 74 20 77  OS, this event w
40e0: 61 73 20 6e 65 76 65 72 20 6f 62 73 65 72 76 65  as never observe
40f0: 64 20 69 6e 20 72 65 61 6c 69 74 79 2c 20 6d 61  d in reality, ma
4100: 79 62 65 20 64 75 65 20 74 6f 20 74 69 6d 69 6e  ybe due to timin
4110: 67 20 72 65 67 61 72 64 69 6e 67 20 74 68 72 65  g regarding thre
4120: 61 64 73 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 57 69  ads.....<tt><<Wi
4130: 6c 6c 45 6e 74 65 72 42 61 63 6b 67 72 6f 75 6e  llEnterBackgroun
4140: 64 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  d>></tt>....    
4150: 41 70 70 27 73 20 73 63 72 65 65 6e 20 77 69 6c  App's screen wil
4160: 6c 20 62 65 20 70 75 74 20 69 6e 20 62 61 63 6b  l be put in back
4170: 67 72 6f 75 6e 64 2e 0d 0a 0d 0a 3c 74 74 3e 3c  ground.....<tt><
4180: 3c 44 69 64 45 6e 74 65 72 42 61 63 6b 67 72 6f  <DidEnterBackgro
4190: 75 6e 64 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  und>></tt>....  
41a0: 20 20 41 70 70 27 73 20 73 63 72 65 65 6e 20 69    App's screen i
41b0: 73 20 69 6e 20 74 68 65 20 62 61 63 6b 67 72 6f  s in the backgro
41c0: 75 6e 64 2e 0d 0a 0d 0a 3c 74 74 3e 3c 3c 57 69  und.....<tt><<Wi
41d0: 6c 6c 45 6e 74 65 72 46 6f 72 65 67 72 6f 75 6e  llEnterForegroun
41e0: 64 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  d>></tt>....    
41f0: 41 70 70 27 73 20 73 63 72 65 65 6e 20 77 69 6c  App's screen wil
4200: 6c 20 62 65 20 70 75 74 20 69 6e 20 66 6f 72 65  l be put in fore
4210: 67 72 6f 75 6e 64 2e 20 4f 6e 20 41 6e 64 72 6f  ground. On Andro
4220: 69 64 2c 20 6e 6f 74 20 72 65 70 6f 72 74 65 64  id, not reported
4230: 20 6f 6e 20 73 74 61 72 74 75 70 20 6f 66 20 74   on startup of t
4240: 68 65 20 61 70 70 2e 0d 0a 0d 0a 3c 74 74 3e 3c  he app.....<tt><
4250: 3c 44 69 64 45 6e 74 65 72 46 6f 72 65 67 72 6f  <DidEnterForegro
4260: 75 6e 64 3e 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  und>></tt>....  
4270: 20 20 41 70 70 27 73 20 73 63 72 65 65 6e 20 69    App's screen i
4280: 73 20 69 6e 20 74 68 65 20 66 6f 72 65 67 72 6f  s in the foregro
4290: 75 6e 64 2e 20 4f 6e 20 41 6e 64 72 6f 69 64 2c  und. On Android,
42a0: 20 6e 6f 74 20 72 65 70 6f 72 74 65 64 20 6f 6e   not reported on
42b0: 20 73 74 61 72 74 75 70 20 6f 66 20 74 68 65 20   startup of the 
42c0: 61 70 70 2e 0d 0a 0d 0a 4e 6f 74 65 20 74 68 61  app.....Note tha
42d0: 74 20 6f 6e 20 41 6e 64 72 6f 69 64 20 74 68 65  t on Android the
42e0: 20 73 79 73 74 65 6d 20 6d 61 79 20 6b 69 6c 6c   system may kill
42f0: 20 61 6e 20 61 70 70 20 61 74 20 61 6e 79 20 74   an app at any t
4300: 69 6d 65 20 64 75 65 20 74 6f 20 6c 6f 77 20 6d  ime due to low m
4310: 65 6d 6f 72 79 20 73 69 74 75 61 74 69 6f 6e 73  emory situations
4320: 2e 20 49 6e 20 6f 72 64 65 72 20 74 6f 20 6b 65  . In order to ke
4330: 65 70 20 73 6f 6d 65 20 61 70 70 20 73 74 61 74  ep some app stat
4340: 65 20 70 65 72 73 69 73 74 65 6e 74 2c 20 74 68  e persistent, th
4350: 65 20 62 65 73 74 20 6f 70 74 69 6f 6e 20 69 73  e best option is
4360: 20 74 6f 20 72 65 63 6f 72 64 20 65 61 63 68 20   to record each 
4370: 63 68 61 6e 67 65 20 69 6d 6d 65 64 69 61 74 65  change immediate
4380: 6c 79 2e 20 41 6e 6f 74 68 65 72 20 6f 70 74 69  ly. Another opti
4390: 6f 6e 20 69 73 20 75 73 69 6e 67 20 74 68 65 20  on is using the 
43a0: 3c 74 74 3e 3c 3c 57 69 6c 6c 45 6e 74 65 72 42  <tt><<WillEnterB
43b0: 61 63 6b 67 72 6f 75 6e 64 3e 3e 3c 2f 74 74 3e  ackground>></tt>
43c0: 20 76 69 72 74 75 61 6c 20 65 76 65 6e 74 20 73   virtual event s
43d0: 69 6e 63 65 20 69 74 20 6d 61 79 20 62 65 20 72  ince it may be r
43e0: 65 63 65 69 76 65 64 20 62 65 66 6f 72 65 20 75  eceived before u
43f0: 6e 65 78 70 65 63 74 65 64 20 61 70 70 20 74 65  nexpected app te
4400: 72 6d 69 6e 61 74 69 6f 6e 2e 0d 0a 0d 0a 3c 68  rmination.....<h
4410: 33 3e 41 63 63 65 6c 65 72 6f 6d 65 74 65 72 20  3>Accelerometer 
4420: 45 78 61 6d 70 6c 65 3c 2f 68 33 3e 0d 0a 0d 0a  Example</h3>....
4430: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 20 20 20 20  <verbatim>..    
4440: 70 72 6f 63 20 73 68 6f 77 61 63 63 65 6c 20 7b  proc showaccel {
4450: 63 61 6e 76 61 73 20 61 78 69 73 20 76 61 6c 75  canvas axis valu
4460: 65 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 73 65  e} {..        se
4470: 74 20 69 78 20 30 0d 0a 20 20 20 20 20 20 20 20  t ix 0..        
4480: 73 65 74 20 69 79 20 30 0d 0a 20 20 20 20 20 20  set iy 0..      
4490: 20 20 69 66 20 7b 24 61 78 69 73 20 3d 3d 20 31    if {$axis == 1
44a0: 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  } {..           
44b0: 20 73 65 74 20 69 78 20 5b 65 78 70 72 20 7b 24   set ix [expr {$
44c0: 76 61 6c 75 65 20 2f 20 32 35 36 7d 5d 0d 0a 20  value / 256}].. 
44d0: 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20         } elseif 
44e0: 7b 24 61 78 69 73 20 3d 3d 20 32 7d 20 7b 0d 0a  {$axis == 2} {..
44f0: 20 20 20 20 20 20 20 20 20 20 20 20 73 65 74 20              set 
4500: 69 79 20 5b 65 78 70 72 20 7b 24 76 61 6c 75 65  iy [expr {$value
4510: 20 2f 20 32 35 36 7d 5d 0d 0a 20 20 20 20 20 20   / 256}]..      
4520: 20 20 7d 20 65 6c 73 65 69 66 20 7b 24 61 78 69    } elseif {$axi
4530: 73 20 3d 3d 20 33 7d 20 7b 0d 0a 20 20 20 20 20  s == 3} {..     
4540: 20 20 20 20 20 20 20 73 65 74 20 3a 3a 70 6f 73         set ::pos
4550: 28 74 29 20 5b 65 78 70 72 20 7b 28 24 76 61 6c  (t) [expr {($val
4560: 75 65 20 2f 20 32 35 36 29 20 25 20 33 36 30 7d  ue / 256) % 360}
4570: 5d 0d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73  ]..        } els
4580: 65 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20  e {..           
4590: 20 72 65 74 75 72 6e 0d 0a 20 20 20 20 20 20 20   return..       
45a0: 20 7d 0d 0a 20 20 20 20 20 20 20 20 69 66 20 7b   }..        if {
45b0: 21 5b 69 6e 66 6f 20 65 78 69 73 74 73 20 3a 3a  ![info exists ::
45c0: 70 6f 73 28 78 29 5d 7d 20 7b 0d 0a 20 20 20 20  pos(x)]} {..    
45d0: 20 20 20 20 20 20 20 20 73 65 74 20 3a 3a 70 6f          set ::po
45e0: 73 28 78 29 20 5b 65 78 70 72 20 5b 77 69 6e 66  s(x) [expr [winf
45f0: 6f 20 77 69 64 74 68 20 24 63 61 6e 76 61 73 5d  o width $canvas]
4600: 20 2f 20 34 5d 0d 0a 20 20 20 20 20 20 20 20 20   / 4]..         
4610: 20 20 20 73 65 74 20 3a 3a 70 6f 73 28 79 29 20     set ::pos(y) 
4620: 5b 65 78 70 72 20 5b 77 69 6e 66 6f 20 68 65 69  [expr [winfo hei
4630: 67 68 74 20 24 63 61 6e 76 61 73 5d 20 2f 20 34  ght $canvas] / 4
4640: 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  ]..            s
4650: 65 74 20 3a 3a 70 6f 73 28 74 29 20 30 0d 0a 20  et ::pos(t) 0.. 
4660: 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20 20 20         }..      
4670: 20 20 73 65 74 20 3a 3a 70 6f 73 28 78 29 20 5b    set ::pos(x) [
4680: 65 78 70 72 20 7b 24 3a 3a 70 6f 73 28 78 29 20  expr {$::pos(x) 
4690: 2b 20 24 69 78 7d 5d 20 0d 0a 20 20 20 20 20 20  + $ix}] ..      
46a0: 20 20 73 65 74 20 3a 3a 70 6f 73 28 79 29 20 5b    set ::pos(y) [
46b0: 65 78 70 72 20 7b 24 3a 3a 70 6f 73 28 79 29 20  expr {$::pos(y) 
46c0: 2b 20 24 69 79 7d 5d 20 0d 0a 20 20 20 20 20 20  + $iy}] ..      
46d0: 20 20 69 66 20 7b 24 3a 3a 70 6f 73 28 78 29 20    if {$::pos(x) 
46e0: 3c 20 35 30 7d 20 7b 0d 0a 20 20 20 20 20 20 20  < 50} {..       
46f0: 20 20 20 20 20 73 65 74 20 3a 3a 70 6f 73 28 78       set ::pos(x
4700: 29 20 35 30 0d 0a 20 20 20 20 20 20 20 20 7d 20  ) 50..        } 
4710: 65 6c 73 65 69 66 20 7b 24 3a 3a 70 6f 73 28 78  elseif {$::pos(x
4720: 29 20 3e 20 5b 77 69 6e 66 6f 20 77 69 64 74 68  ) > [winfo width
4730: 20 24 63 61 6e 76 61 73 5d 20 2d 20 35 30 7d 20   $canvas] - 50} 
4740: 7b 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  {..            s
4750: 65 74 20 3a 3a 70 6f 73 28 78 29 20 5b 65 78 70  et ::pos(x) [exp
4760: 72 20 7b 5b 77 69 6e 66 6f 20 77 69 64 74 68 20  r {[winfo width 
4770: 24 63 61 6e 76 61 73 5d 20 2d 20 35 30 7d 5d 0d  $canvas] - 50}].
4780: 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20 20 20 20  .        }..    
4790: 20 20 20 20 69 66 20 7b 24 3a 3a 70 6f 73 28 79      if {$::pos(y
47a0: 29 20 3c 20 35 30 7d 20 7b 0d 0a 20 20 20 20 20  ) < 50} {..     
47b0: 20 20 20 20 20 20 20 73 65 74 20 3a 3a 70 6f 73         set ::pos
47c0: 28 79 29 20 35 30 0d 0a 20 20 20 20 20 20 20 20  (y) 50..        
47d0: 7d 20 65 6c 73 65 69 66 20 7b 24 3a 3a 70 6f 73  } elseif {$::pos
47e0: 28 79 29 20 3e 20 5b 77 69 6e 66 6f 20 68 65 69  (y) > [winfo hei
47f0: 67 68 74 20 24 63 61 6e 76 61 73 5d 20 2d 20 35  ght $canvas] - 5
4800: 30 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 20 20  0} {..          
4810: 20 20 73 65 74 20 3a 3a 70 6f 73 28 79 29 20 5b    set ::pos(y) [
4820: 65 78 70 72 20 7b 5b 77 69 6e 66 6f 20 68 65 69  expr {[winfo hei
4830: 67 68 74 20 24 63 61 6e 76 61 73 5d 20 2d 20 35  ght $canvas] - 5
4840: 30 7d 5d 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a  0}]..        }..
4850: 20 20 20 20 20 20 20 20 69 66 20 7b 24 61 78 69          if {$axi
4860: 73 20 3d 3d 20 33 7d 20 7b 0d 0a 20 20 20 20 20  s == 3} {..     
4870: 20 20 20 20 20 20 20 24 63 61 6e 76 61 73 20 64         $canvas d
4880: 65 6c 65 74 65 20 61 0d 0a 20 20 20 20 20 20 20  elete a..       
4890: 20 20 20 20 20 73 65 74 20 78 30 20 5b 65 78 70       set x0 [exp
48a0: 72 20 7b 24 3a 3a 70 6f 73 28 78 29 20 2d 20 34  r {$::pos(x) - 4
48b0: 38 7d 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20  8}]..           
48c0: 20 73 65 74 20 78 31 20 5b 65 78 70 72 20 7b 24   set x1 [expr {$
48d0: 78 30 20 2b 20 39 36 7d 5d 0d 0a 20 20 20 20 20  x0 + 96}]..     
48e0: 20 20 20 20 20 20 20 73 65 74 20 79 30 20 5b 65         set y0 [e
48f0: 78 70 72 20 7b 24 3a 3a 70 6f 73 28 79 29 20 2d  xpr {$::pos(y) -
4900: 20 34 38 7d 5d 0d 0a 20 20 20 20 20 20 20 20 20   48}]..         
4910: 20 20 20 73 65 74 20 79 31 20 5b 65 78 70 72 20     set y1 [expr 
4920: 7b 24 79 30 20 2b 20 39 36 7d 5d 0d 0a 20 20 20  {$y0 + 96}]..   
4930: 20 20 20 20 20 20 20 20 20 24 63 61 6e 76 61 73           $canvas
4940: 20 63 72 65 61 74 65 20 61 72 63 20 24 78 30 20   create arc $x0 
4950: 24 79 30 20 24 78 31 20 24 79 31 20 2d 66 69 6c  $y0 $x1 $y1 -fil
4960: 6c 20 79 65 6c 6c 6f 77 20 2d 6f 75 74 6c 69 6e  l yellow -outlin
4970: 65 20 72 65 64 20 5c 0d 0a 20 20 20 20 20 20 20  e red \..       
4980: 20 20 20 20 20 20 20 20 20 2d 77 69 64 74 68 20           -width 
4990: 36 20 2d 73 74 61 72 74 20 5b 65 78 70 72 20 7b  6 -start [expr {
49a0: 33 33 30 20 2d 20 24 3a 3a 70 6f 73 28 74 29 7d  330 - $::pos(t)}
49b0: 5d 20 2d 65 78 74 65 6e 74 20 2d 33 30 30 2e 30  ] -extent -300.0
49c0: 20 2d 74 61 67 73 20 61 0d 0a 20 20 20 20 20 20   -tags a..      
49d0: 20 20 7d 0d 0a 20 20 20 20 7d 0d 0a 0d 0a 20 20    }..    }....  
49e0: 20 20 77 6d 20 61 74 74 72 69 62 75 74 65 73 20    wm attributes 
49f0: 2e 20 2d 66 75 6c 6c 73 63 72 65 65 6e 20 31 0d  . -fullscreen 1.
4a00: 0a 20 20 20 20 63 61 6e 76 61 73 20 2e 63 20 2d  .    canvas .c -
4a10: 62 67 20 62 6c 61 63 6b 20 2d 62 64 20 30 20 2d  bg black -bd 0 -
4a20: 68 69 67 68 6c 69 67 68 74 74 68 69 63 6b 6e 65  highlightthickne
4a30: 73 73 20 30 0d 0a 20 20 20 20 70 61 63 6b 20 2e  ss 0..    pack .
4a40: 63 20 2d 73 69 64 65 20 74 6f 70 20 2d 66 69 6c  c -side top -fil
4a50: 6c 20 62 6f 74 68 20 2d 65 78 70 61 6e 64 20 31  l both -expand 1
4a60: 20 2d 70 61 64 78 20 30 20 2d 70 61 64 79 20 30   -padx 0 -pady 0
4a70: 0d 0a 20 20 20 20 73 65 74 20 66 20 5b 6f 70 65  ..    set f [ope
4a80: 6e 20 5b 69 6e 66 6f 20 73 63 72 69 70 74 5d 5d  n [info script]]
4a90: 0d 0a 20 20 20 20 2e 63 20 63 72 65 61 74 65 20  ..    .c create 
4aa0: 74 65 78 74 20 32 30 20 31 32 30 20 2d 61 6e 63  text 20 120 -anc
4ab0: 68 6f 72 20 6e 77 20 2d 74 61 67 20 73 20 2d 66  hor nw -tag s -f
4ac0: 6f 6e 74 20 7b 43 6f 75 72 69 65 72 20 35 7d 20  ont {Courier 5} 
4ad0: 2d 74 65 78 74 20 5b 72 65 61 64 20 24 66 5d 20  -text [read $f] 
4ae0: 5c 0d 0a 20 20 20 20 20 20 20 20 2d 66 69 6c 6c  \..        -fill
4af0: 20 67 72 61 79 35 30 0d 0a 20 20 20 20 63 6c 6f   gray50..    clo
4b00: 73 65 20 24 66 0d 0a 20 20 20 20 62 75 74 74 6f  se $f..    butto
4b10: 6e 20 2e 63 2e 78 20 2d 74 65 78 74 20 45 78 69  n .c.x -text Exi
4b20: 74 20 2d 63 6f 6d 6d 61 6e 64 20 7b 65 78 69 74  t -command {exit
4b30: 20 30 7d 0d 0a 20 20 20 20 2e 63 20 63 72 65 61   0}..    .c crea
4b40: 74 65 20 77 69 6e 64 6f 77 20 33 30 20 36 30 20  te window 30 60 
4b50: 2d 61 6e 63 68 6f 72 20 6e 77 20 2d 74 61 67 20  -anchor nw -tag 
4b60: 78 20 2d 77 69 6e 64 6f 77 20 2e 63 2e 78 0d 0a  x -window .c.x..
4b70: 20 20 20 20 62 69 6e 64 20 2e 20 3c 3c 41 63 63      bind . <<Acc
4b80: 65 6c 65 72 6f 6d 65 74 65 72 3e 3e 20 7b 73 68  elerometer>> {sh
4b90: 6f 77 61 63 63 65 6c 20 2e 63 20 25 73 20 25 78  owaccel .c %s %x
4ba0: 7d 0d 0a 20 20 20 20 73 64 6c 74 6b 20 61 63 63  }..    sdltk acc
4bb0: 65 6c 65 72 6f 6d 65 74 65 72 20 6f 6e 0d 0a 3c  elerometer on..<
4bc0: 2f 76 65 72 62 61 74 69 6d 3e 0d 0a 0d 0a 3c 68  /verbatim>....<h
4bd0: 33 3e 50 69 6e 63 68 2d 74 6f 2d 7a 6f 6f 6d 20  3>Pinch-to-zoom 
4be0: 45 78 61 6d 70 6c 65 3c 2f 68 33 3e 0d 0a 0d 0a  Example</h3>....
4bf0: 3c 76 65 72 62 61 74 69 6d 3e 0d 0a 20 20 20 20  <verbatim>..    
4c00: 70 72 6f 63 20 73 68 6f 77 7a 6f 6f 6d 20 7b 63  proc showzoom {c
4c10: 61 6e 76 61 73 20 72 6f 6f 74 78 20 72 6f 6f 74  anvas rootx root
4c20: 79 20 64 69 73 74 20 61 6e 67 6c 65 20 73 74 61  y dist angle sta
4c30: 74 65 7d 20 7b 0d 0a 20 20 20 20 20 20 20 20 24  te} {..        $
4c40: 63 61 6e 76 61 73 20 69 74 65 6d 63 6f 6e 66 20  canvas itemconf 
4c50: 74 20 2d 74 65 78 74 20 22 58 59 3a 20 24 72 6f  t -text "XY: $ro
4c60: 6f 74 78 2c 24 72 6f 6f 74 79 20 4c 3a 20 24 64  otx,$rooty L: $d
4c70: 69 73 74 20 50 3a 20 24 61 6e 67 6c 65 20 53 3a  ist P: $angle S:
4c80: 20 24 73 74 61 74 65 22 0d 0a 20 20 20 20 20 20   $state"..      
4c90: 20 20 24 63 61 6e 76 61 73 20 64 65 6c 65 74 65    $canvas delete
4ca0: 20 61 0d 0a 20 20 20 20 20 20 20 20 23 20 73 74   a..        # st
4cb0: 61 74 65 20 30 20 2d 3e 20 7a 6f 6f 6d 20 6d 6f  ate 0 -> zoom mo
4cc0: 74 69 6f 6e 0d 0a 20 20 20 20 20 20 20 20 23 20  tion..        # 
4cd0: 73 74 61 74 65 20 31 20 2d 3e 20 7a 6f 6f 6d 20  state 1 -> zoom 
4ce0: 73 74 61 72 74 0d 0a 20 20 20 20 20 20 20 20 23  start..        #
4cf0: 20 73 74 61 74 65 20 32 20 2d 3e 20 7a 6f 6f 6d   state 2 -> zoom
4d00: 20 65 6e 64 2c 20 31 73 74 20 66 69 6e 67 65 72   end, 1st finger
4d10: 20 75 70 0d 0a 20 20 20 20 20 20 20 20 23 20 73   up..        # s
4d20: 74 61 74 65 20 33 20 2d 3e 20 7a 6f 6f 6d 20 65  tate 3 -> zoom e
4d30: 6e 64 2c 20 32 6e 64 20 66 69 6e 67 65 72 20 75  nd, 2nd finger u
4d40: 70 0d 0a 20 20 20 20 20 20 20 20 69 66 20 7b 24  p..        if {$
4d50: 73 74 61 74 65 20 3c 20 32 7d 20 7b 0d 0a 20 20  state < 2} {..  
4d60: 20 20 20 20 20 20 20 20 20 20 73 65 74 20 70 68            set ph
4d70: 69 20 5b 65 78 70 72 20 7b 24 61 6e 67 6c 65 20  i [expr {$angle 
4d80: 2f 20 36 34 2e 30 7d 5d 0d 0a 20 20 20 20 20 20  / 64.0}]..      
4d90: 20 20 20 20 20 20 73 65 74 20 78 30 20 5b 65 78        set x0 [ex
4da0: 70 72 20 7b 24 72 6f 6f 74 78 20 2d 20 5b 77 69  pr {$rootx - [wi
4db0: 6e 66 6f 20 72 6f 6f 74 78 20 24 63 61 6e 76 61  nfo rootx $canva
4dc0: 73 5d 20 2d 20 24 64 69 73 74 20 2f 20 32 7d 5d  s] - $dist / 2}]
4dd0: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 65  ..            se
4de0: 74 20 78 31 20 5b 65 78 70 72 20 7b 24 78 30 20  t x1 [expr {$x0 
4df0: 2b 20 24 64 69 73 74 7d 5d 0d 0a 20 20 20 20 20  + $dist}]..     
4e00: 20 20 20 20 20 20 20 73 65 74 20 79 30 20 5b 65         set y0 [e
4e10: 78 70 72 20 7b 24 72 6f 6f 74 79 20 2d 20 5b 77  xpr {$rooty - [w
4e20: 69 6e 66 6f 20 72 6f 6f 74 79 20 24 63 61 6e 76  info rooty $canv
4e30: 61 73 5d 20 2d 20 24 64 69 73 74 20 2f 20 32 7d  as] - $dist / 2}
4e40: 5d 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 73  ]..            s
4e50: 65 74 20 79 31 20 5b 65 78 70 72 20 7b 24 79 30  et y1 [expr {$y0
4e60: 20 2b 20 24 64 69 73 74 7d 5d 0d 0a 20 20 20 20   + $dist}]..    
4e70: 20 20 20 20 20 20 20 20 24 63 61 6e 76 61 73 20          $canvas 
4e80: 63 72 65 61 74 65 20 61 72 63 20 24 78 30 20 24  create arc $x0 $
4e90: 79 30 20 24 78 31 20 24 79 31 20 2d 66 69 6c 6c  y0 $x1 $y1 -fill
4ea0: 20 79 65 6c 6c 6f 77 20 2d 6f 75 74 6c 69 6e 65   yellow -outline
4eb0: 20 72 65 64 20 2d 77 69 64 74 68 20 36 20 5c 0d   red -width 6 \.
4ec0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  .               
4ed0: 20 2d 73 74 61 72 74 20 5b 65 78 70 72 20 7b 33   -start [expr {3
4ee0: 33 30 20 2d 20 24 70 68 69 7d 5d 20 2d 65 78 74  30 - $phi}] -ext
4ef0: 65 6e 74 20 2d 33 30 30 2e 30 20 2d 74 61 67 73  ent -300.0 -tags
4f00: 20 61 0d 0a 20 20 20 20 20 20 20 20 7d 0d 0a 20   a..        }.. 
4f10: 20 20 20 7d 0d 0a 0d 0a 20 20 20 20 77 6d 20 61     }....    wm a
4f20: 74 74 72 69 62 75 74 65 73 20 2e 20 2d 66 75 6c  ttributes . -ful
4f30: 6c 73 63 72 65 65 6e 20 31 0d 0a 20 20 20 20 73  lscreen 1..    s
4f40: 64 6c 74 6b 20 74 6f 75 63 68 74 72 61 6e 73 6c  dltk touchtransl
4f50: 61 74 65 20 31 35 20 3b 23 20 74 75 72 6e 20 3c  ate 15 ;# turn <
4f60: 3c 50 69 6e 63 68 54 6f 5a 6f 6f 6d 3e 3e 20 6f  <PinchToZoom>> o
4f70: 6e 0d 0a 20 20 20 20 63 61 6e 76 61 73 20 2e 63  n..    canvas .c
4f80: 20 2d 62 67 20 62 6c 61 63 6b 20 2d 62 64 20 30   -bg black -bd 0
4f90: 20 2d 68 69 67 68 6c 69 67 68 74 74 68 69 63 6b   -highlightthick
4fa0: 6e 65 73 73 20 30 0d 0a 20 20 20 20 70 61 63 6b  ness 0..    pack
4fb0: 20 2e 63 20 2d 73 69 64 65 20 74 6f 70 20 2d 66   .c -side top -f
4fc0: 69 6c 6c 20 62 6f 74 68 20 2d 65 78 70 61 6e 64  ill both -expand
4fd0: 20 31 20 2d 70 61 64 78 20 30 20 2d 70 61 64 79   1 -padx 0 -pady
4fe0: 20 30 0d 0a 20 20 20 20 73 65 74 20 66 20 5b 6f   0..    set f [o
4ff0: 70 65 6e 20 5b 69 6e 66 6f 20 73 63 72 69 70 74  pen [info script
5000: 5d 5d 0d 0a 20 20 20 20 2e 63 20 63 72 65 61 74  ]]..    .c creat
5010: 65 20 74 65 78 74 20 33 30 20 31 32 30 20 2d 61  e text 30 120 -a
5020: 6e 63 68 6f 72 20 6e 77 20 2d 74 61 67 20 73 20  nchor nw -tag s 
5030: 2d 66 6f 6e 74 20 7b 43 6f 75 72 69 65 72 20 36  -font {Courier 6
5040: 7d 20 2d 74 65 78 74 20 5b 72 65 61 64 20 24 66  } -text [read $f
5050: 5d 20 5c 0d 0a 20 20 20 20 20 20 20 20 2d 66 69  ] \..        -fi
5060: 6c 6c 20 67 72 61 79 35 30 0d 0a 20 20 20 20 63  ll gray50..    c
5070: 6c 6f 73 65 20 24 66 0d 0a 20 20 20 20 2e 63 20  lose $f..    .c 
5080: 63 72 65 61 74 65 20 74 65 78 74 20 33 30 20 33  create text 30 3
5090: 30 20 2d 61 6e 63 68 6f 72 20 77 20 2d 66 69 6c  0 -anchor w -fil
50a0: 6c 20 67 72 65 65 6e 20 2d 74 61 67 20 74 20 2d  l green -tag t -
50b0: 66 6f 6e 74 20 7b 48 65 6c 76 65 74 69 63 61 20  font {Helvetica 
50c0: 31 36 7d 20 5c 0d 0a 20 20 20 20 20 20 20 20 2d  16} \..        -
50d0: 74 65 78 74 20 22 54 72 79 20 70 69 6e 63 68 2d  text "Try pinch-
50e0: 74 6f 2d 7a 6f 6f 6d 20 77 69 74 68 20 74 77 6f  to-zoom with two
50f0: 20 66 69 6e 67 65 72 73 22 0d 0a 20 20 20 20 62   fingers"..    b
5100: 75 74 74 6f 6e 20 2e 63 2e 78 20 2d 74 65 78 74  utton .c.x -text
5110: 20 45 78 69 74 20 2d 63 6f 6d 6d 61 6e 64 20 7b   Exit -command {
5120: 65 78 69 74 20 30 7d 0d 0a 20 20 20 20 2e 63 20  exit 0}..    .c 
5130: 63 72 65 61 74 65 20 77 69 6e 64 6f 77 20 33 30  create window 30
5140: 20 36 30 20 2d 61 6e 63 68 6f 72 20 6e 77 20 2d   60 -anchor nw -
5150: 74 61 67 20 78 20 2d 77 69 6e 64 6f 77 20 2e 63  tag x -window .c
5160: 2e 78 0d 0a 20 20 20 20 62 69 6e 64 20 2e 63 20  .x..    bind .c 
5170: 3c 3c 50 69 6e 63 68 54 6f 5a 6f 6f 6d 3e 3e 20  <<PinchToZoom>> 
5180: 7b 73 68 6f 77 7a 6f 6f 6d 20 25 57 20 25 58 20  {showzoom %W %X 
5190: 25 59 20 25 78 20 25 79 20 25 73 7d 0d 0a 3c 2f  %Y %x %y %s}..</
51a0: 76 65 72 62 61 74 69 6d 3e 0d 0a 0a 5a 20 37 65  verbatim>...Z 7e
51b0: 61 36 37 36 62 63 39 37 31 36 62 34 36 37 32 65  a676bc9716b4672e
51c0: 30 37 61 35 30 63 31 35 36 39 32 66 30 36 0a     07a50c15692f06.