summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 09:02:56 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2020-11-19 09:02:56 (GMT)
commit438c452e138ae039893d7b8274a637fca2168f78 (patch)
treef817d7fc68ef9905697cc7d3afcec0013c8f0514
parent112fdb000f8632e92519ab4842b0ff340aec52ab (diff)
parent37279b8ec55cb993d441216c9b90e5668146e4c7 (diff)
downloadtk-438c452e138ae039893d7b8274a637fca2168f78.zip
tk-438c452e138ae039893d7b8274a637fca2168f78.tar.gz
tk-438c452e138ae039893d7b8274a637fca2168f78.tar.bz2
Merge 8.7
-rw-r--r--doc/keysyms.n963
-rw-r--r--doc/listbox.n2
-rw-r--r--doc/spinbox.n2
-rw-r--r--doc/ttk_button.n6
-rw-r--r--doc/ttk_checkbutton.n7
-rw-r--r--doc/ttk_combobox.n35
-rw-r--r--doc/ttk_entry.n34
-rw-r--r--doc/ttk_frame.n7
-rw-r--r--doc/ttk_label.n7
-rw-r--r--doc/ttk_labelframe.n7
-rw-r--r--doc/ttk_menubutton.n7
-rw-r--r--doc/ttk_notebook.n18
-rw-r--r--doc/ttk_panedwindow.n17
-rw-r--r--doc/ttk_progressbar.n21
-rw-r--r--doc/ttk_radiobutton.n7
-rw-r--r--doc/ttk_scale.n29
-rw-r--r--doc/ttk_scrollbar.n21
-rw-r--r--doc/ttk_separator.n7
-rw-r--r--doc/ttk_sizegrip.n7
-rw-r--r--doc/ttk_style.n20
-rw-r--r--doc/ttk_treeview.n24
-rw-r--r--doc/ttk_widget.n11
-rw-r--r--generic/ks_names.h737
-rw-r--r--generic/nanosvg.h4
-rw-r--r--generic/tkBind.c79
-rw-r--r--generic/tkGet.c5
-rw-r--r--generic/ttk/ttkButton.c27
-rw-r--r--generic/ttk/ttkEntry.c7
-rw-r--r--generic/ttk/ttkFrame.c5
-rw-r--r--generic/ttk/ttkNotebook.c3
-rw-r--r--generic/ttk/ttkPanedwindow.c3
-rw-r--r--generic/ttk/ttkProgress.c3
-rw-r--r--generic/ttk/ttkScale.c11
-rw-r--r--generic/ttk/ttkScrollbar.c3
-rw-r--r--generic/ttk/ttkSeparator.c6
-rw-r--r--generic/ttk/ttkSquare.c3
-rw-r--r--generic/ttk/ttkTheme.c36
-rw-r--r--generic/ttk/ttkTreeview.c3
-rw-r--r--generic/ttk/ttkWidget.c22
-rw-r--r--generic/ttk/ttkWidget.h6
-rw-r--r--library/demos/entry3.tcl8
-rw-r--r--library/demos/spin.tcl2
-rw-r--r--library/tk.tcl4
-rw-r--r--library/ttk/aquaTheme.tcl63
-rw-r--r--library/ttk/combobox.tcl15
-rw-r--r--library/ttk/entry.tcl6
-rw-r--r--library/ttk/spinbox.tcl16
-rw-r--r--library/ttk/utils.tcl12
-rw-r--r--macosx/GNUmakefile2
-rw-r--r--macosx/tkMacOSXColor.c148
-rw-r--r--macosx/tkMacOSXColor.h1
-rw-r--r--macosx/tkMacOSXDefault.h12
-rw-r--r--macosx/tkMacOSXFont.c3
-rw-r--r--macosx/tkMacOSXInt.h15
-rw-r--r--macosx/tkMacOSXPrivate.h1
-rw-r--r--tests/bind.test139
-rw-r--r--tests/entry.test2
-rw-r--r--tests/event.test56
-rw-r--r--tests/main.test2
-rw-r--r--tests/pkgconfig.test2
-rw-r--r--tests/spinbox.test6
-rw-r--r--tests/ttk/checkbutton.test14
-rw-r--r--tests/ttk/combobox.test14
-rw-r--r--tests/ttk/entry.test14
-rw-r--r--tests/ttk/labelframe.test14
-rw-r--r--tests/ttk/notebook.test14
-rw-r--r--tests/ttk/panedwindow.test18
-rw-r--r--tests/ttk/progressbar.test16
-rw-r--r--tests/ttk/radiobutton.test14
-rw-r--r--tests/ttk/scale.test53
-rw-r--r--tests/ttk/scrollbar.test46
-rw-r--r--tests/ttk/spinbox.test14
-rw-r--r--tests/ttk/treeview.test14
-rw-r--r--tests/ttk/ttk.test11
-rw-r--r--unix/Makefile.in2
-rw-r--r--unix/tkAppInit.c6
-rw-r--r--win/winMain.c14
-rw-r--r--xlib/X11/keysymdef.h768
-rw-r--r--xlib/xgc.c43
79 files changed, 832 insertions, 2994 deletions
diff --git a/doc/keysyms.n b/doc/keysyms.n
index c4c02fd..29ded2a 100644
--- a/doc/keysyms.n
+++ b/doc/keysyms.n
@@ -12,7 +12,7 @@ keysyms \- keysyms recognized by Tk
.SH DESCRIPTION
.PP
Tk recognizes many keysyms when specifying key bindings (e.g.,
-.QW "\fBbind\fR \fB. <Key-\fR\fIkeysym\fR\fB>\fR" ).
+.QW "\fBbind\fR \fB. <\fR\fIkeysym\fR\fB>\fR" ).
The following list enumerates the
keysyms that will be recognized by Tk. Note that not all keysyms will
be valid on all platforms, and some keysyms are also available on
@@ -24,21 +24,21 @@ decimal and hexadecimal values.
.PP
.CS
space 32 0x20
-exclam 33 0x21
+! (exclam) 33 0x21
quotedbl 34 0x22
numbersign 35 0x23
dollar 36 0x24
-percent 37 0x25
-ampersand 38 0x26
-apostrophe 39 0x27
-parenleft 40 0x28
-parenright 41 0x29
-asterisk 42 0x2A
-plus 43 0x2B
-comma 44 0x2C
+% (percent) 37 0x25
+& (ampersand) 38 0x26
+' (apostrophe) 39 0x27
+( (parenleft) 40 0x28
+) (parenright) 41 0x29
+* (asterisk) 42 0x2A
++ (plus) 43 0x2B
+, (comma) 44 0x2C
minus 45 0x2D
-period 46 0x2E
-slash 47 0x2F
+. (period) 46 0x2E
+/ (slash) 47 0x2F
0 48 0x30
1 49 0x31
2 50 0x32
@@ -49,13 +49,13 @@ slash 47 0x2F
7 55 0x37
8 56 0x38
9 57 0x39
-colon 58 0x3A
+: (colon) 58 0x3A
semicolon 59 0x3B
less 60 0x3C
-equal 61 0x3D
+= (equal) 61 0x3D
greater 62 0x3E
-question 63 0x3F
-at 64 0x40
+? (question) 63 0x3F
+@ (at) 64 0x40
A 65 0x41
B 66 0x42
C 67 0x43
@@ -85,9 +85,9 @@ Z 90 0x5A
bracketleft 91 0x5B
backslash 92 0x5C
bracketright 93 0x5D
-asciicircum 94 0x5E
-underscore 95 0x5F
-grave 96 0x60
+^ (asciicircum) 94 0x5E
+_ (underscore) 95 0x5F
+` (grave) 96 0x60
a 97 0x61
b 98 0x62
c 99 0x63
@@ -115,105 +115,107 @@ x 120 0x78
y 121 0x79
z 122 0x7A
braceleft 123 0x7B
-bar 124 0x7C
+| (bar) 124 0x7C
braceright 125 0x7D
-asciitilde 126 0x7E
+~ (asciitilde) 126 0x7E
nobreakspace 160 0xA0
-exclamdown 161 0xA1
-cent 162 0xA2
-sterling 163 0xA3
-currency 164 0xA4
-yen 165 0xA5
-brokenbar 166 0xA6
-section 167 0xA7
-diaeresis 168 0xA8
-copyright 169 0xA9
-ordfeminine 170 0xAA
-guillemotleft 171 0xAB
-notsign 172 0xAC
+\(r! (exclamdown) 161 0xA1
+\(ct (cent) 162 0xA2
+\(Po (sterling) 163 0xA3
+\(Cs (currency) 164 0xA4
+\(Ye (yen) 165 0xA5
+\(bb (brokenbar) 166 0xA6
+\(sc (section) 167 0xA7
+\(ad (diaeresis) 168 0xA8
+\(co (copyright) 169 0xA9
+\(Of (ordfeminine) 170 0xAA
+\(Fo (guillemotleft) 171 0xAB
+\(no (notsign) 172 0xAC
hyphen 173 0xAD
-registered 174 0xAE
-macron 175 0xAF
-degree 176 0xB0
-plusminus 177 0xB1
-twosuperior 178 0xB2
-threesuperior 179 0xB3
-acute 180 0xB4
-mu 181 0xB5
-paragraph 182 0xB6
-periodcentered 183 0xB7
-cedilla 184 0xB8
-onesuperior 185 0xB9
-masculine 186 0xBA
-guillemotright 187 0xBB
-onequarter 188 0xBC
-onehalf 189 0xBD
-threequarters 190 0xBE
-questiondown 191 0xBF
-Agrave 192 0xC0
-Aacute 193 0xC1
-Acircumflex 194 0xC2
-Atilde 195 0xC3
-Adiaeresis 196 0xC4
-Aring 197 0xC5
-AE 198 0xC6
-Ccedilla 199 0xC7
-Egrave 200 0xC8
-Eacute 201 0xC9
-Ecircumflex 202 0xCA
-Ediaeresis 203 0xCB
-Igrave 204 0xCC
-Iacute 205 0xCD
-Icircumflex 206 0xCE
-Idiaeresis 207 0xCF
-ETH 208 0xD0
-Ntilde 209 0xD1
-Ograve 210 0xD2
-Oacute 211 0xD3
-Ocircumflex 212 0xD4
-Otilde 213 0xD5
-Odiaeresis 214 0xD6
-multiply 215 0xD7
-Oslash 216 0xD8
-Ugrave 217 0xD9
-Uacute 218 0xDA
-Ucircumflex 219 0xDB
-Udiaeresis 220 0xDC
-Yacute 221 0xDD
-THORN 222 0xDE
-ssharp 223 0xDF
-agrave 224 0xE0
-aacute 225 0xE1
-acircumflex 226 0xE2
-atilde 227 0xE3
-adiaeresis 228 0xE4
-aring 229 0xE5
-ae 230 0xE6
-ccedilla 231 0xE7
-egrave 232 0xE8
-eacute 233 0xE9
-ecircumflex 234 0xEA
-ediaeresis 235 0xEB
-igrave 236 0xEC
-iacute 237 0xED
-icircumflex 238 0xEE
-idiaeresis 239 0xEF
-eth 240 0xF0
-ntilde 241 0xF1
-ograve 242 0xF2
-oacute 243 0xF3
-ocircumflex 244 0xF4
-otilde 245 0xF5
-odiaeresis 246 0xF6
-division 247 0xF7
-oslash 248 0xF8
-ugrave 249 0xF9
-uacute 250 0xFA
-ucircumflex 251 0xFB
-udiaeresis 252 0xFC
-yacute 253 0xFD
-thorn 254 0xFE
-ydiaeresis 255 0xFF
+\(rg (registered) 174 0xAE
+\(a- (macron) 175 0xAF
+\(de (degree) 176 0xB0
+\(+- (plusminus) 177 0xB1
+\(S2 (twosuperior) 178 0xB2
+\(S3 (threesuperior) 179 0xB3
+\(aa (acute) 180 0xB4
+\(mc (mu) 181 0xB5
+\(ps (paragraph) 182 0xB6
+\(pc (periodcentered) 183 0xB7
+\(ac (cedilla) 184 0xB8
+\(S1 (onesuperior) 185 0xB9
+\(Om (masculine) 186 0xBA
+\(Fc (guillemotright) 187 0xBB
+\(14 (onequarter) 188 0xBC
+\(12 (onehalf) 189 0xBD
+\(34 (threequarters) 190 0xBE
+\(r? (questiondown) 191 0xBF
+\(`A (Agrave) 192 0xC0
+\('A (Aacute) 193 0xC1
+\(^A (Acircumflex) 194 0xC2
+\(~A (Atilde) 195 0xC3
+\(:A (Adiaeresis) 196 0xC4
+\(oA (Aring) 197 0xC5
+\(AE (AE) 198 0xC6
+\(,C (Ccedilla) 199 0xC7
+\(`E (Egrave) 200 0xC8
+\('E (Eacute) 201 0xC9
+\(^E (Ecircumflex) 202 0xCA
+\(:E (Ediaeresis) 203 0xCB
+\(`I (Igrave) 204 0xCC
+\('I (Iacute) 205 0xCD
+\(^I (Icircumflex) 206 0xCE
+\(:I (Idiaeresis) 207 0xCF
+\(-D (ETH) 208 0xD0
+\(~N (Ntilde) 209 0xD1
+\(`O (Ograve) 210 0xD2
+\('O (Oacute) 211 0xD3
+\(^O (Ocircumflex) 212 0xD4
+\(~O (Otilde) 213 0xD5
+\(:O (Odiaeresis) 214 0xD6
+\(mu (multiply) 215 0xD7
+\(/O (Oslash) 216 0xD8
+\(`U (Ugrave) 217 0xD9
+\('U (Uacute) 218 0xDA
+\(^U (Ucircumflex) 219 0xDB
+\(:U (Udiaeresis) 220 0xDC
+\('Y (Yacute) 221 0xDD
+\(TP (THORN) 222 0xDE
+\(ss (ssharp) 223 0xDF
+\(`a (agrave) 224 0xE0
+\('a (aacute) 225 0xE1
+\(^a (acircumflex) 226 0xE2
+\(~a (atilde) 227 0xE3
+\(:a (adiaeresis) 228 0xE4
+\(oa (aring) 229 0xE5
+\(ae (ae) 230 0xE6
+\(,c (ccedilla) 231 0xE7
+\(`e (egrave) 232 0xE8
+\('e (eacute) 233 0xE9
+\(^e (ecircumflex) 234 0xEA
+\(:e (ediaeresis) 235 0xEB
+\(`i (igrave) 236 0xEC
+\('i (iacute) 237 0xED
+\(^i (icircumflex) 238 0xEE
+\(:i (idiaeresis) 239 0xEF
+\(Sd (eth) 240 0xF0
+\(~n (ntilde) 241 0xF1
+\(`o (ograve) 242 0xF2
+\('o (oacute) 243 0xF3
+\(^o (ocircumflex) 244 0xF4
+\(~o (otilde) 245 0xF5
+\(:o (odiaeresis) 246 0xF6
+\(di (division) 247 0xF7
+\(/o (oslash) 248 0xF8
+\(`u (ugrave) 249 0xF9
+\('u (uacute) 250 0xFA
+\(^u (ucircumflex) 251 0xFB
+\(:u (udiaeresis) 252 0xFC
+\('y (yacute) 253 0xFD
+\(Tp (thorn) 254 0xFE
+\(:y (ydiaeresis) 255 0xFF
+.CE
+.CS
Aogonek 417 0x1A1
breve 418 0x1A2
Lstroke 419 0x1A3
@@ -223,8 +225,6 @@ Scaron 425 0x1A9
Scedilla 426 0x1AA
Tcaron 427 0x1AB
Zacute 428 0x1AC
-.CE
-.CS
Zcaron 430 0x1AE
Zabovedot 431 0x1AF
aogonek 433 0x1B1
@@ -394,6 +394,8 @@ kana_WA 1244 0x4DC
kana_N 1245 0x4DD
voicedsound 1246 0x4DE
semivoicedsound 1247 0x4DF
+.CE
+.CS
Arabic_comma 1452 0x5AC
Arabic_semicolon 1467 0x5BB
Arabic_question_mark 1471 0x5BF
@@ -429,8 +431,6 @@ Arabic_qaf 1506 0x5E2
Arabic_kaf 1507 0x5E3
Arabic_lam 1508 0x5E4
Arabic_meem 1509 0x5E5
-.CE
-.CS
Arabic_noon 1510 0x5E6
Arabic_ha 1511 0x5E7
Arabic_waw 1512 0x5E8
@@ -610,6 +610,8 @@ Greek_phi 2038 0x7F6
Greek_chi 2039 0x7F7
Greek_psi 2040 0x7F8
Greek_omega 2041 0x7F9
+.CE
+.CS
leftradical 2209 0x8A1
topleftradical 2210 0x8A2
horizconnector 2211 0x8A3
@@ -633,8 +635,6 @@ botvertsummationconnector 2228 0x8B4
toprightsummation 2229 0x8B5
botrightsummation 2230 0x8B6
rightmiddlesummation 2231 0x8B7
-.CE
-.CS
lessthanequal 2236 0x8BC
notequal 2237 0x8BD
greaterthanequal 2238 0x8BE
@@ -816,6 +816,8 @@ hebrew_qoph 3319 0xCF7
hebrew_resh 3320 0xCF8
hebrew_shin 3321 0xCF9
hebrew_taw 3322 0xCFA
+.CE
+.CS
Thai_kokai 3489 0xDA1
Thai_khokhai 3490 0xDA2
Thai_khokhuat 3491 0xDA3
@@ -994,7 +996,9 @@ Korean_Won 3839 0xEFF
OE 5052 0x13BC
oe 5053 0x13BD
Ydiaeresis 5054 0x13BE
-EuroSign 8364 0x20AC
+\(eu (EuroSign) 8364 0x20AC
+.CE
+.CS
3270_Duplicate 64769 0xFD01
3270_FieldMark 64770 0xFD02
3270_Right2 64771 0xFD03
@@ -1165,6 +1169,8 @@ Pointer_Accelerate 65274 0xFEFA
Pointer_DfltBtnNext 65275 0xFEFB
Pointer_DfltBtnPrev 65276 0xFEFC
Pointer_Drag5 65277 0xFEFD
+.CE
+.CS
BackSpace 65288 0xFF08
Tab 65289 0xFF09
Linefeed 65290 0xFF0A
@@ -1217,8 +1223,6 @@ End 65367 0xFF57
Begin 65368 0xFF58
Win_L 65371 0xFF5B
Win_R 65372 0xFF5C
-.CE
-.CS
App 65373 0xFF5D
Select 65376 0xFF60
Print 65377 0xFF61
@@ -1328,715 +1332,8 @@ braille_dot_8 65528 0xFFF8
braille_dot_9 65529 0xFFF9
braille_dot_10 65530 0xFFFA
Delete 65535 0xFFFF
-Ibreve 16777516 0x100012C
-ibreve 16777517 0x100012D
-Wcircumflex 16777588 0x1000174
-wcircumflex 16777589 0x1000175
-Ycircumflex 16777590 0x1000176
-ycircumflex 16777591 0x1000177
-SCHWA 16777615 0x100018F
-Obarred 16777631 0x100019F
-Ohorn 16777632 0x10001A0
-ohorn 16777633 0x10001A1
-Uhorn 16777647 0x10001AF
-uhorn 16777648 0x10001B0
-Zstroke 16777653 0x10001B5
-zstroke 16777654 0x10001B6
-EZH 16777655 0x10001B7
-Ocaron 16777681 0x10001D1
-ocaron 16777682 0x10001D2
-Gcaron 16777702 0x10001E6
-gcaron 16777703 0x10001E7
-schwa 16777817 0x1000259
-obarred 16777845 0x1000275
-ezh 16777874 0x1000292
-Cyrillic_GHE_bar 16778386 0x1000492
-Cyrillic_ghe_bar 16778387 0x1000493
-Cyrillic_ZHE_descender 16778390 0x1000496
-Cyrillic_zhe_descender 16778391 0x1000497
-Cyrillic_KA_descender 16778394 0x100049A
-Cyrillic_ka_descender 16778395 0x100049B
-Cyrillic_KA_vertstroke 16778396 0x100049C
-Cyrillic_ka_vertstroke 16778397 0x100049D
-Cyrillic_EN_descender 16778402 0x10004A2
-Cyrillic_en_descender 16778403 0x10004A3
-Cyrillic_U_straight 16778414 0x10004AE
-Cyrillic_u_straight 16778415 0x10004AF
-Cyrillic_U_straight_bar 16778416 0x10004B0
-Cyrillic_u_straight_bar 16778417 0x10004B1
-Cyrillic_HA_descender 16778418 0x10004B2
-Cyrillic_ha_descender 16778419 0x10004B3
-Cyrillic_CHE_descender 16778422 0x10004B6
-Cyrillic_che_descender 16778423 0x10004B7
-Cyrillic_CHE_vertstroke 16778424 0x10004B8
-Cyrillic_che_vertstroke 16778425 0x10004B9
-Cyrillic_SHHA 16778426 0x10004BA
-Cyrillic_shha 16778427 0x10004BB
-Cyrillic_SCHWA 16778456 0x10004D8
-Cyrillic_schwa 16778457 0x10004D9
-Cyrillic_I_macron 16778466 0x10004E2
-Cyrillic_i_macron 16778467 0x10004E3
-Cyrillic_O_bar 16778472 0x10004E8
-Cyrillic_o_bar 16778473 0x10004E9
-Cyrillic_U_macron 16778478 0x10004EE
-Cyrillic_u_macron 16778479 0x10004EF
-Armenian_AYB 16778545 0x1000531
-Armenian_BEN 16778546 0x1000532
-Armenian_GIM 16778547 0x1000533
-Armenian_DA 16778548 0x1000534
-Armenian_YECH 16778549 0x1000535
-Armenian_ZA 16778550 0x1000536
-Armenian_E 16778551 0x1000537
-Armenian_AT 16778552 0x1000538
-Armenian_TO 16778553 0x1000539
-Armenian_ZHE 16778554 0x100053A
-Armenian_INI 16778555 0x100053B
-Armenian_LYUN 16778556 0x100053C
-Armenian_KHE 16778557 0x100053D
-Armenian_TSA 16778558 0x100053E
-Armenian_KEN 16778559 0x100053F
-Armenian_HO 16778560 0x1000540
-Armenian_DZA 16778561 0x1000541
-Armenian_GHAT 16778562 0x1000542
-Armenian_TCHE 16778563 0x1000543
-Armenian_MEN 16778564 0x1000544
-Armenian_HI 16778565 0x1000545
-Armenian_NU 16778566 0x1000546
-Armenian_SHA 16778567 0x1000547
-Armenian_VO 16778568 0x1000548
-Armenian_CHA 16778569 0x1000549
-Armenian_PE 16778570 0x100054A
-Armenian_JE 16778571 0x100054B
-Armenian_RA 16778572 0x100054C
-Armenian_SE 16778573 0x100054D
-Armenian_VEV 16778574 0x100054E
-Armenian_TYUN 16778575 0x100054F
-Armenian_RE 16778576 0x1000550
-Armenian_TSO 16778577 0x1000551
-Armenian_VYUN 16778578 0x1000552
-Armenian_PYUR 16778579 0x1000553
-Armenian_KE 16778580 0x1000554
-Armenian_O 16778581 0x1000555
-Armenian_FE 16778582 0x1000556
-Armenian_apostrophe 16778586 0x100055A
-Armenian_accent 16778587 0x100055B
-Armenian_exclam 16778588 0x100055C
-Armenian_separation_mark 16778589 0x100055D
-Armenian_question 16778590 0x100055E
-Armenian_ayb 16778593 0x1000561
-Armenian_ben 16778594 0x1000562
-Armenian_gim 16778595 0x1000563
-Armenian_da 16778596 0x1000564
-Armenian_yech 16778597 0x1000565
-Armenian_za 16778598 0x1000566
-Armenian_e 16778599 0x1000567
-Armenian_at 16778600 0x1000568
-Armenian_to 16778601 0x1000569
-Armenian_zhe 16778602 0x100056A
-Armenian_ini 16778603 0x100056B
-Armenian_lyun 16778604 0x100056C
-Armenian_khe 16778605 0x100056D
-Armenian_tsa 16778606 0x100056E
-Armenian_ken 16778607 0x100056F
-Armenian_ho 16778608 0x1000570
-Armenian_dza 16778609 0x1000571
-Armenian_ghat 16778610 0x1000572
-Armenian_tche 16778611 0x1000573
-Armenian_men 16778612 0x1000574
-Armenian_hi 16778613 0x1000575
-Armenian_nu 16778614 0x1000576
-Armenian_sha 16778615 0x1000577
-Armenian_vo 16778616 0x1000578
-Armenian_cha 16778617 0x1000579
-Armenian_pe 16778618 0x100057A
-Armenian_je 16778619 0x100057B
-Armenian_ra 16778620 0x100057C
-Armenian_se 16778621 0x100057D
-Armenian_vev 16778622 0x100057E
-Armenian_tyun 16778623 0x100057F
-Armenian_re 16778624 0x1000580
-Armenian_tso 16778625 0x1000581
-Armenian_vyun 16778626 0x1000582
-Armenian_pyur 16778627 0x1000583
-Armenian_ke 16778628 0x1000584
-Armenian_o 16778629 0x1000585
-Armenian_fe 16778630 0x1000586
-Armenian_ligature_ew 16778631 0x1000587
-Armenian_full_stop 16778633 0x1000589
-Armenian_hyphen 16778634 0x100058A
-Arabic_madda_above 16778835 0x1000653
-Arabic_hamza_above 16778836 0x1000654
-Arabic_hamza_below 16778837 0x1000655
-Arabic_0 16778848 0x1000660
-Arabic_1 16778849 0x1000661
-Arabic_2 16778850 0x1000662
-Arabic_3 16778851 0x1000663
-Arabic_4 16778852 0x1000664
-Arabic_5 16778853 0x1000665
-Arabic_6 16778854 0x1000666
-Arabic_7 16778855 0x1000667
-Arabic_8 16778856 0x1000668
-Arabic_9 16778857 0x1000669
-Arabic_percent 16778858 0x100066A
-Arabic_superscript_alef 16778864 0x1000670
-Arabic_tteh 16778873 0x1000679
-Arabic_peh 16778878 0x100067E
-Arabic_tcheh 16778886 0x1000686
-Arabic_ddal 16778888 0x1000688
-Arabic_rreh 16778897 0x1000691
-Arabic_jeh 16778904 0x1000698
-Arabic_veh 16778916 0x10006A4
-Arabic_keheh 16778921 0x10006A9
-Arabic_gaf 16778927 0x10006AF
-Arabic_noon_ghunna 16778938 0x10006BA
-Arabic_heh_doachashmee 16778942 0x10006BE
-Arabic_heh_goal 16778945 0x10006C1
-Farsi_yeh 16778956 0x10006CC
-Arabic_yeh_baree 16778962 0x10006D2
-Arabic_fullstop 16778964 0x10006D4
-Farsi_0 16778992 0x10006F0
-Farsi_1 16778993 0x10006F1
-Farsi_2 16778994 0x10006F2
-Farsi_3 16778995 0x10006F3
-Farsi_4 16778996 0x10006F4
-Farsi_5 16778997 0x10006F5
-Farsi_6 16778998 0x10006F6
-Farsi_7 16778999 0x10006F7
-Farsi_8 16779000 0x10006F8
-Farsi_9 16779001 0x10006F9
-Sinh_ng 16780674 0x1000D82
-Sinh_h2 16780675 0x1000D83
-Sinh_a 16780677 0x1000D85
-Sinh_aa 16780678 0x1000D86
-Sinh_ae 16780679 0x1000D87
-Sinh_aee 16780680 0x1000D88
-Sinh_i 16780681 0x1000D89
-Sinh_ii 16780682 0x1000D8A
-Sinh_u 16780683 0x1000D8B
-Sinh_uu 16780684 0x1000D8C
-Sinh_ri 16780685 0x1000D8D
-Sinh_rii 16780686 0x1000D8E
-Sinh_lu 16780687 0x1000D8F
-Sinh_luu 16780688 0x1000D90
-Sinh_e 16780689 0x1000D91
-Sinh_ee 16780690 0x1000D92
-Sinh_ai 16780691 0x1000D93
-Sinh_o 16780692 0x1000D94
-Sinh_oo 16780693 0x1000D95
-Sinh_au 16780694 0x1000D96
-Sinh_ka 16780698 0x1000D9A
-Sinh_kha 16780699 0x1000D9B
-Sinh_ga 16780700 0x1000D9C
-Sinh_gha 16780701 0x1000D9D
-Sinh_ng2 16780702 0x1000D9E
-Sinh_nga 16780703 0x1000D9F
-Sinh_ca 16780704 0x1000DA0
-Sinh_cha 16780705 0x1000DA1
-Sinh_ja 16780706 0x1000DA2
-Sinh_jha 16780707 0x1000DA3
-Sinh_nya 16780708 0x1000DA4
-Sinh_jnya 16780709 0x1000DA5
-Sinh_nja 16780710 0x1000DA6
-Sinh_tta 16780711 0x1000DA7
-Sinh_ttha 16780712 0x1000DA8
-Sinh_dda 16780713 0x1000DA9
-Sinh_ddha 16780714 0x1000DAA
-Sinh_nna 16780715 0x1000DAB
-Sinh_ndda 16780716 0x1000DAC
-Sinh_tha 16780717 0x1000DAD
-Sinh_thha 16780718 0x1000DAE
-Sinh_dha 16780719 0x1000DAF
-Sinh_dhha 16780720 0x1000DB0
-Sinh_na 16780721 0x1000DB1
-Sinh_ndha 16780723 0x1000DB3
-Sinh_pa 16780724 0x1000DB4
-Sinh_pha 16780725 0x1000DB5
-Sinh_ba 16780726 0x1000DB6
-Sinh_bha 16780727 0x1000DB7
-Sinh_ma 16780728 0x1000DB8
-Sinh_mba 16780729 0x1000DB9
-Sinh_ya 16780730 0x1000DBA
-Sinh_ra 16780731 0x1000DBB
-Sinh_la 16780733 0x1000DBD
-Sinh_va 16780736 0x1000DC0
-Sinh_sha 16780737 0x1000DC1
-Sinh_ssha 16780738 0x1000DC2
-Sinh_sa 16780739 0x1000DC3
-Sinh_ha 16780740 0x1000DC4
-Sinh_lla 16780741 0x1000DC5
-Sinh_fa 16780742 0x1000DC6
-Sinh_al 16780746 0x1000DCA
-Sinh_aa2 16780751 0x1000DCF
-Sinh_ae2 16780752 0x1000DD0
-Sinh_aee2 16780753 0x1000DD1
-Sinh_i2 16780754 0x1000DD2
-Sinh_ii2 16780755 0x1000DD3
-Sinh_u2 16780756 0x1000DD4
-Sinh_uu2 16780758 0x1000DD6
-Sinh_ru2 16780760 0x1000DD8
-Sinh_e2 16780761 0x1000DD9
-Sinh_ee2 16780762 0x1000DDA
-Sinh_ai2 16780763 0x1000DDB
-Sinh_o2 16780764 0x1000DDC
-Sinh_oo2 16780765 0x1000DDD
-Sinh_au2 16780766 0x1000DDE
-Sinh_lu2 16780767 0x1000DDF
-Sinh_ruu2 16780786 0x1000DF2
-Sinh_luu2 16780787 0x1000DF3
-Sinh_kunddaliya 16780788 0x1000DF4
-Georgian_an 16781520 0x10010D0
-Georgian_ban 16781521 0x10010D1
-Georgian_gan 16781522 0x10010D2
-Georgian_don 16781523 0x10010D3
-Georgian_en 16781524 0x10010D4
-Georgian_vin 16781525 0x10010D5
-Georgian_zen 16781526 0x10010D6
-Georgian_tan 16781527 0x10010D7
-Georgian_in 16781528 0x10010D8
-Georgian_kan 16781529 0x10010D9
-Georgian_las 16781530 0x10010DA
-Georgian_man 16781531 0x10010DB
-Georgian_nar 16781532 0x10010DC
-Georgian_on 16781533 0x10010DD
-Georgian_par 16781534 0x10010DE
-Georgian_zhar 16781535 0x10010DF
-Georgian_rae 16781536 0x10010E0
-Georgian_san 16781537 0x10010E1
-Georgian_tar 16781538 0x10010E2
-Georgian_un 16781539 0x10010E3
-Georgian_phar 16781540 0x10010E4
-Georgian_khar 16781541 0x10010E5
-Georgian_ghan 16781542 0x10010E6
-Georgian_qar 16781543 0x10010E7
-Georgian_shin 16781544 0x10010E8
-Georgian_chin 16781545 0x10010E9
-Georgian_can 16781546 0x10010EA
-Georgian_jil 16781547 0x10010EB
-Georgian_cil 16781548 0x10010EC
-Georgian_char 16781549 0x10010ED
-Georgian_xan 16781550 0x10010EE
-Georgian_jhan 16781551 0x10010EF
-Georgian_hae 16781552 0x10010F0
-Georgian_he 16781553 0x10010F1
-Georgian_hie 16781554 0x10010F2
-Georgian_we 16781555 0x10010F3
-Georgian_har 16781556 0x10010F4
-Georgian_hoe 16781557 0x10010F5
-Georgian_fi 16781558 0x10010F6
-Babovedot 16784898 0x1001E02
-babovedot 16784899 0x1001E03
-Dabovedot 16784906 0x1001E0A
-dabovedot 16784907 0x1001E0B
-Fabovedot 16784926 0x1001E1E
-fabovedot 16784927 0x1001E1F
-Lbelowdot 16784950 0x1001E36
-lbelowdot 16784951 0x1001E37
-Mabovedot 16784960 0x1001E40
-mabovedot 16784961 0x1001E41
-Pabovedot 16784982 0x1001E56
-pabovedot 16784983 0x1001E57
-Sabovedot 16784992 0x1001E60
-sabovedot 16784993 0x1001E61
-Tabovedot 16785002 0x1001E6A
-tabovedot 16785003 0x1001E6B
-Wgrave 16785024 0x1001E80
-wgrave 16785025 0x1001E81
-Wacute 16785026 0x1001E82
-wacute 16785027 0x1001E83
-Wdiaeresis 16785028 0x1001E84
-wdiaeresis 16785029 0x1001E85
-Xabovedot 16785034 0x1001E8A
-xabovedot 16785035 0x1001E8B
-Abelowdot 16785056 0x1001EA0
-abelowdot 16785057 0x1001EA1
-Ahook 16785058 0x1001EA2
-ahook 16785059 0x1001EA3
-Acircumflexacute 16785060 0x1001EA4
-acircumflexacute 16785061 0x1001EA5
-Acircumflexgrave 16785062 0x1001EA6
-acircumflexgrave 16785063 0x1001EA7
-Acircumflexhook 16785064 0x1001EA8
-acircumflexhook 16785065 0x1001EA9
-Acircumflextilde 16785066 0x1001EAA
-acircumflextilde 16785067 0x1001EAB
-Acircumflexbelowdot 16785068 0x1001EAC
-acircumflexbelowdot 16785069 0x1001EAD
-Abreveacute 16785070 0x1001EAE
-abreveacute 16785071 0x1001EAF
-Abrevegrave 16785072 0x1001EB0
-abrevegrave 16785073 0x1001EB1
-Abrevehook 16785074 0x1001EB2
-abrevehook 16785075 0x1001EB3
-Abrevetilde 16785076 0x1001EB4
-abrevetilde 16785077 0x1001EB5
-Abrevebelowdot 16785078 0x1001EB6
-abrevebelowdot 16785079 0x1001EB7
-Ebelowdot 16785080 0x1001EB8
-ebelowdot 16785081 0x1001EB9
-Ehook 16785082 0x1001EBA
-ehook 16785083 0x1001EBB
-Etilde 16785084 0x1001EBC
-etilde 16785085 0x1001EBD
-Ecircumflexacute 16785086 0x1001EBE
-ecircumflexacute 16785087 0x1001EBF
-Ecircumflexgrave 16785088 0x1001EC0
-ecircumflexgrave 16785089 0x1001EC1
-Ecircumflexhook 16785090 0x1001EC2
-ecircumflexhook 16785091 0x1001EC3
-Ecircumflextilde 16785092 0x1001EC4
-ecircumflextilde 16785093 0x1001EC5
-Ecircumflexbelowdot 16785094 0x1001EC6
-ecircumflexbelowdot 16785095 0x1001EC7
-Ihook 16785096 0x1001EC8
-ihook 16785097 0x1001EC9
-Ibelowdot 16785098 0x1001ECA
-ibelowdot 16785099 0x1001ECB
-Obelowdot 16785100 0x1001ECC
-obelowdot 16785101 0x1001ECD
-Ohook 16785102 0x1001ECE
-ohook 16785103 0x1001ECF
-Ocircumflexacute 16785104 0x1001ED0
-ocircumflexacute 16785105 0x1001ED1
-Ocircumflexgrave 16785106 0x1001ED2
-ocircumflexgrave 16785107 0x1001ED3
-Ocircumflexhook 16785108 0x1001ED4
-ocircumflexhook 16785109 0x1001ED5
-Ocircumflextilde 16785110 0x1001ED6
-ocircumflextilde 16785111 0x1001ED7
-Ocircumflexbelowdot 16785112 0x1001ED8
-ocircumflexbelowdot 16785113 0x1001ED9
-Ohornacute 16785114 0x1001EDA
-ohornacute 16785115 0x1001EDB
-Ohorngrave 16785116 0x1001EDC
-ohorngrave 16785117 0x1001EDD
-Ohornhook 16785118 0x1001EDE
-ohornhook 16785119 0x1001EDF
-Ohorntilde 16785120 0x1001EE0
-ohorntilde 16785121 0x1001EE1
-Ohornbelowdot 16785122 0x1001EE2
-ohornbelowdot 16785123 0x1001EE3
-Ubelowdot 16785124 0x1001EE4
-ubelowdot 16785125 0x1001EE5
-Uhook 16785126 0x1001EE6
-uhook 16785127 0x1001EE7
-Uhornacute 16785128 0x1001EE8
-uhornacute 16785129 0x1001EE9
-Uhorngrave 16785130 0x1001EEA
-uhorngrave 16785131 0x1001EEB
-Uhornhook 16785132 0x1001EEC
-uhornhook 16785133 0x1001EED
-Uhorntilde 16785134 0x1001EEE
-uhorntilde 16785135 0x1001EEF
-Uhornbelowdot 16785136 0x1001EF0
-uhornbelowdot 16785137 0x1001EF1
-Ygrave 16785138 0x1001EF2
-ygrave 16785139 0x1001EF3
-Ybelowdot 16785140 0x1001EF4
-ybelowdot 16785141 0x1001EF5
-Yhook 16785142 0x1001EF6
-yhook 16785143 0x1001EF7
-Ytilde 16785144 0x1001EF8
-ytilde 16785145 0x1001EF9
-zerosuperior 16785520 0x1002070
-foursuperior 16785524 0x1002074
-fivesuperior 16785525 0x1002075
-sixsuperior 16785526 0x1002076
-sevensuperior 16785527 0x1002077
-eightsuperior 16785528 0x1002078
-ninesuperior 16785529 0x1002079
-zerosubscript 16785536 0x1002080
-onesubscript 16785537 0x1002081
-twosubscript 16785538 0x1002082
-threesubscript 16785539 0x1002083
-foursubscript 16785540 0x1002084
-fivesubscript 16785541 0x1002085
-sixsubscript 16785542 0x1002086
-sevensubscript 16785543 0x1002087
-eightsubscript 16785544 0x1002088
-ninesubscript 16785545 0x1002089
-EcuSign 16785568 0x10020A0
-ColonSign 16785569 0x10020A1
-CruzeiroSign 16785570 0x10020A2
-FFrancSign 16785571 0x10020A3
-LiraSign 16785572 0x10020A4
-MillSign 16785573 0x10020A5
-NairaSign 16785574 0x10020A6
-PesetaSign 16785575 0x10020A7
-RupeeSign 16785576 0x10020A8
-WonSign 16785577 0x10020A9
-NewSheqelSign 16785578 0x10020AA
-DongSign 16785579 0x10020AB
-partdifferential 16785922 0x1002202
-emptyset 16785925 0x1002205
-elementof 16785928 0x1002208
-notelementof 16785929 0x1002209
-containsas 16785931 0x100220B
-squareroot 16785946 0x100221A
-cuberoot 16785947 0x100221B
-fourthroot 16785948 0x100221C
-dintegral 16785964 0x100222C
-tintegral 16785965 0x100222D
-because 16785973 0x1002235
-notapproxeq 16785991 0x1002247
-approxeq 16785992 0x1002248
-notidentical 16786018 0x1002262
-stricteq 16786019 0x1002263
-braille_blank 16787456 0x1002800
-braille_dots_1 16787457 0x1002801
-braille_dots_2 16787458 0x1002802
-braille_dots_12 16787459 0x1002803
-braille_dots_3 16787460 0x1002804
-braille_dots_13 16787461 0x1002805
-braille_dots_23 16787462 0x1002806
-braille_dots_123 16787463 0x1002807
-braille_dots_4 16787464 0x1002808
-braille_dots_14 16787465 0x1002809
-braille_dots_24 16787466 0x100280A
-braille_dots_124 16787467 0x100280B
-braille_dots_34 16787468 0x100280C
-braille_dots_134 16787469 0x100280D
-braille_dots_234 16787470 0x100280E
-braille_dots_1234 16787471 0x100280F
-braille_dots_5 16787472 0x1002810
-braille_dots_15 16787473 0x1002811
-braille_dots_25 16787474 0x1002812
-braille_dots_125 16787475 0x1002813
-braille_dots_35 16787476 0x1002814
-braille_dots_135 16787477 0x1002815
-braille_dots_235 16787478 0x1002816
-braille_dots_1235 16787479 0x1002817
-braille_dots_45 16787480 0x1002818
-braille_dots_145 16787481 0x1002819
-braille_dots_245 16787482 0x100281A
-braille_dots_1245 16787483 0x100281B
-braille_dots_345 16787484 0x100281C
-braille_dots_1345 16787485 0x100281D
-braille_dots_2345 16787486 0x100281E
-braille_dots_12345 16787487 0x100281F
-braille_dots_6 16787488 0x1002820
-braille_dots_16 16787489 0x1002821
-braille_dots_26 16787490 0x1002822
-braille_dots_126 16787491 0x1002823
-braille_dots_36 16787492 0x1002824
-braille_dots_136 16787493 0x1002825
-braille_dots_236 16787494 0x1002826
-braille_dots_1236 16787495 0x1002827
-braille_dots_46 16787496 0x1002828
-braille_dots_146 16787497 0x1002829
-braille_dots_246 16787498 0x100282A
-braille_dots_1246 16787499 0x100282B
-braille_dots_346 16787500 0x100282C
-braille_dots_1346 16787501 0x100282D
-braille_dots_2346 16787502 0x100282E
-braille_dots_12346 16787503 0x100282F
-braille_dots_56 16787504 0x1002830
-braille_dots_156 16787505 0x1002831
-braille_dots_256 16787506 0x1002832
-braille_dots_1256 16787507 0x1002833
-braille_dots_356 16787508 0x1002834
-braille_dots_1356 16787509 0x1002835
-braille_dots_2356 16787510 0x1002836
-braille_dots_12356 16787511 0x1002837
-braille_dots_456 16787512 0x1002838
-braille_dots_1456 16787513 0x1002839
-braille_dots_2456 16787514 0x100283A
-braille_dots_12456 16787515 0x100283B
-braille_dots_3456 16787516 0x100283C
-braille_dots_13456 16787517 0x100283D
-braille_dots_23456 16787518 0x100283E
-braille_dots_123456 16787519 0x100283F
-braille_dots_7 16787520 0x1002840
-braille_dots_17 16787521 0x1002841
-braille_dots_27 16787522 0x1002842
-braille_dots_127 16787523 0x1002843
-braille_dots_37 16787524 0x1002844
-braille_dots_137 16787525 0x1002845
-braille_dots_237 16787526 0x1002846
-braille_dots_1237 16787527 0x1002847
-braille_dots_47 16787528 0x1002848
-braille_dots_147 16787529 0x1002849
-braille_dots_247 16787530 0x100284A
-braille_dots_1247 16787531 0x100284B
-braille_dots_347 16787532 0x100284C
-braille_dots_1347 16787533 0x100284D
-braille_dots_2347 16787534 0x100284E
-braille_dots_12347 16787535 0x100284F
-braille_dots_57 16787536 0x1002850
-braille_dots_157 16787537 0x1002851
-braille_dots_257 16787538 0x1002852
-braille_dots_1257 16787539 0x1002853
-braille_dots_357 16787540 0x1002854
-braille_dots_1357 16787541 0x1002855
-braille_dots_2357 16787542 0x1002856
-braille_dots_12357 16787543 0x1002857
-braille_dots_457 16787544 0x1002858
-braille_dots_1457 16787545 0x1002859
-braille_dots_2457 16787546 0x100285A
-braille_dots_12457 16787547 0x100285B
-braille_dots_3457 16787548 0x100285C
-braille_dots_13457 16787549 0x100285D
-braille_dots_23457 16787550 0x100285E
-braille_dots_123457 16787551 0x100285F
-braille_dots_67 16787552 0x1002860
-braille_dots_167 16787553 0x1002861
-braille_dots_267 16787554 0x1002862
-braille_dots_1267 16787555 0x1002863
-braille_dots_367 16787556 0x1002864
-braille_dots_1367 16787557 0x1002865
-braille_dots_2367 16787558 0x1002866
-braille_dots_12367 16787559 0x1002867
-braille_dots_467 16787560 0x1002868
-braille_dots_1467 16787561 0x1002869
-braille_dots_2467 16787562 0x100286A
-braille_dots_12467 16787563 0x100286B
-braille_dots_3467 16787564 0x100286C
-braille_dots_13467 16787565 0x100286D
-braille_dots_23467 16787566 0x100286E
-braille_dots_123467 16787567 0x100286F
-braille_dots_567 16787568 0x1002870
-braille_dots_1567 16787569 0x1002871
-braille_dots_2567 16787570 0x1002872
-braille_dots_12567 16787571 0x1002873
-braille_dots_3567 16787572 0x1002874
-braille_dots_13567 16787573 0x1002875
-braille_dots_23567 16787574 0x1002876
-braille_dots_123567 16787575 0x1002877
-braille_dots_4567 16787576 0x1002878
-braille_dots_14567 16787577 0x1002879
-braille_dots_24567 16787578 0x100287A
-braille_dots_124567 16787579 0x100287B
-braille_dots_34567 16787580 0x100287C
-braille_dots_134567 16787581 0x100287D
-braille_dots_234567 16787582 0x100287E
-braille_dots_1234567 16787583 0x100287F
-braille_dots_8 16787584 0x1002880
-braille_dots_18 16787585 0x1002881
-braille_dots_28 16787586 0x1002882
-braille_dots_128 16787587 0x1002883
-braille_dots_38 16787588 0x1002884
-braille_dots_138 16787589 0x1002885
-braille_dots_238 16787590 0x1002886
-braille_dots_1238 16787591 0x1002887
-braille_dots_48 16787592 0x1002888
-braille_dots_148 16787593 0x1002889
-braille_dots_248 16787594 0x100288A
-braille_dots_1248 16787595 0x100288B
-braille_dots_348 16787596 0x100288C
-braille_dots_1348 16787597 0x100288D
-braille_dots_2348 16787598 0x100288E
-braille_dots_12348 16787599 0x100288F
-braille_dots_58 16787600 0x1002890
-braille_dots_158 16787601 0x1002891
-braille_dots_258 16787602 0x1002892
-braille_dots_1258 16787603 0x1002893
-braille_dots_358 16787604 0x1002894
-braille_dots_1358 16787605 0x1002895
-braille_dots_2358 16787606 0x1002896
-braille_dots_12358 16787607 0x1002897
-braille_dots_458 16787608 0x1002898
-braille_dots_1458 16787609 0x1002899
-braille_dots_2458 16787610 0x100289A
-braille_dots_12458 16787611 0x100289B
-braille_dots_3458 16787612 0x100289C
-braille_dots_13458 16787613 0x100289D
-braille_dots_23458 16787614 0x100289E
-braille_dots_123458 16787615 0x100289F
-braille_dots_68 16787616 0x10028A0
-braille_dots_168 16787617 0x10028A1
-braille_dots_268 16787618 0x10028A2
-braille_dots_1268 16787619 0x10028A3
-braille_dots_368 16787620 0x10028A4
-braille_dots_1368 16787621 0x10028A5
-braille_dots_2368 16787622 0x10028A6
-braille_dots_12368 16787623 0x10028A7
-braille_dots_468 16787624 0x10028A8
-braille_dots_1468 16787625 0x10028A9
-braille_dots_2468 16787626 0x10028AA
-braille_dots_12468 16787627 0x10028AB
-braille_dots_3468 16787628 0x10028AC
-braille_dots_13468 16787629 0x10028AD
-braille_dots_23468 16787630 0x10028AE
-braille_dots_123468 16787631 0x10028AF
-braille_dots_568 16787632 0x10028B0
-braille_dots_1568 16787633 0x10028B1
-braille_dots_2568 16787634 0x10028B2
-braille_dots_12568 16787635 0x10028B3
-braille_dots_3568 16787636 0x10028B4
-braille_dots_13568 16787637 0x10028B5
-braille_dots_23568 16787638 0x10028B6
-braille_dots_123568 16787639 0x10028B7
-braille_dots_4568 16787640 0x10028B8
-braille_dots_14568 16787641 0x10028B9
-braille_dots_24568 16787642 0x10028BA
-braille_dots_124568 16787643 0x10028BB
-braille_dots_34568 16787644 0x10028BC
-braille_dots_134568 16787645 0x10028BD
-braille_dots_234568 16787646 0x10028BE
-braille_dots_1234568 16787647 0x10028BF
-braille_dots_78 16787648 0x10028C0
-braille_dots_178 16787649 0x10028C1
-braille_dots_278 16787650 0x10028C2
-braille_dots_1278 16787651 0x10028C3
-braille_dots_378 16787652 0x10028C4
-braille_dots_1378 16787653 0x10028C5
-braille_dots_2378 16787654 0x10028C6
-braille_dots_12378 16787655 0x10028C7
-braille_dots_478 16787656 0x10028C8
-braille_dots_1478 16787657 0x10028C9
-braille_dots_2478 16787658 0x10028CA
-braille_dots_12478 16787659 0x10028CB
-braille_dots_3478 16787660 0x10028CC
-braille_dots_13478 16787661 0x10028CD
-braille_dots_23478 16787662 0x10028CE
-braille_dots_123478 16787663 0x10028CF
-braille_dots_578 16787664 0x10028D0
-braille_dots_1578 16787665 0x10028D1
-braille_dots_2578 16787666 0x10028D2
-braille_dots_12578 16787667 0x10028D3
-braille_dots_3578 16787668 0x10028D4
-braille_dots_13578 16787669 0x10028D5
-braille_dots_23578 16787670 0x10028D6
-braille_dots_123578 16787671 0x10028D7
-braille_dots_4578 16787672 0x10028D8
-braille_dots_14578 16787673 0x10028D9
-braille_dots_24578 16787674 0x10028DA
-braille_dots_124578 16787675 0x10028DB
-braille_dots_34578 16787676 0x10028DC
-braille_dots_134578 16787677 0x10028DD
-braille_dots_234578 16787678 0x10028DE
-braille_dots_1234578 16787679 0x10028DF
-braille_dots_678 16787680 0x10028E0
-braille_dots_1678 16787681 0x10028E1
-braille_dots_2678 16787682 0x10028E2
-braille_dots_12678 16787683 0x10028E3
-braille_dots_3678 16787684 0x10028E4
-braille_dots_13678 16787685 0x10028E5
-braille_dots_23678 16787686 0x10028E6
-braille_dots_123678 16787687 0x10028E7
-braille_dots_4678 16787688 0x10028E8
-braille_dots_14678 16787689 0x10028E9
-braille_dots_24678 16787690 0x10028EA
-braille_dots_124678 16787691 0x10028EB
-braille_dots_34678 16787692 0x10028EC
-braille_dots_134678 16787693 0x10028ED
-braille_dots_234678 16787694 0x10028EE
-braille_dots_1234678 16787695 0x10028EF
-braille_dots_5678 16787696 0x10028F0
-braille_dots_15678 16787697 0x10028F1
-braille_dots_25678 16787698 0x10028F2
-braille_dots_125678 16787699 0x10028F3
-braille_dots_35678 16787700 0x10028F4
-braille_dots_135678 16787701 0x10028F5
-braille_dots_235678 16787702 0x10028F6
-braille_dots_1235678 16787703 0x10028F7
-braille_dots_45678 16787704 0x10028F8
-braille_dots_145678 16787705 0x10028F9
-braille_dots_245678 16787706 0x10028FA
-braille_dots_1245678 16787707 0x10028FB
-braille_dots_345678 16787708 0x10028FC
-braille_dots_1345678 16787709 0x10028FD
-braille_dots_2345678 16787710 0x10028FE
-braille_dots_12345678 16787711 0x10028FF
+.CE
+.CS
SunFA_Grave 268828416 0x1005FF00
SunFA_Circum 268828417 0x1005FF01
SunFA_Tilde 268828418 0x1005FF02
diff --git a/doc/listbox.n b/doc/listbox.n
index 02bd169..aa87904 100644
--- a/doc/listbox.n
+++ b/doc/listbox.n
@@ -563,7 +563,7 @@ In \fBextended\fR mode, the Escape key cancels the most recent
selection and restores all the elements in the selected range
to their previous selection state.
.IP [17]
-Control-slash selects everything in the widget, except in
+Control-/ selects everything in the widget, except in
\fBsingle\fR and \fBbrowse\fR modes, in which case it selects
the active element and deselects everything else.
.IP [18]
diff --git a/doc/spinbox.n b/doc/spinbox.n
index 6c8801d..d33c2d2 100644
--- a/doc/spinbox.n
+++ b/doc/spinbox.n
@@ -224,7 +224,7 @@ Also, the \fB-validate\fR option will set itself to \fBnone\fR when the
spinbox value gets changed because of adjustment of \fB-from\fR or \fB-to\fR
and the \fB-validatecommand\fR returns false. For instance
.CS
- \fIspinbox pathName \-from 1 \-to 10 \-validate all \-vcmd {return 0}\fR
+ \fIspinbox pathName \-from 1 \-to 10 \-validate all \-validatecommand {return 0}\fR
.CE
will in fact set the \fB-validate\fR option to \fBnone\fR because the default
value for the spinbox gets changed (due to the \fB-from\fR and \fB-to\fR
diff --git a/doc/ttk_button.n b/doc/ttk_button.n
index eb40d9d..7afd052 100644
--- a/doc/ttk_button.n
+++ b/doc/ttk_button.n
@@ -48,8 +48,10 @@ with an extra highlight ring, or with a different border color.
.SH "WIDGET COMMAND"
.PP
In addition to the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-commands, buttons support the following additional widget commands:
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+button widgets support the following additional commands:
.TP
\fIpathName \fBinvoke\fR
Invokes the command associated with the button.
diff --git a/doc/ttk_checkbutton.n b/doc/ttk_checkbutton.n
index c78dc0e..d78b7fc 100644
--- a/doc/ttk_checkbutton.n
+++ b/doc/ttk_checkbutton.n
@@ -37,9 +37,10 @@ Defaults to the widget pathname if not specified.
.SH "WIDGET COMMAND"
.PP
In addition to the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-commands, checkbuttons support the following additional
-widget commands:
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+checkbutton widgets support the following additional commands:
.TP
\fIpathname\fB invoke\fR
Toggles between the selected and deselected states
diff --git a/doc/ttk_combobox.n b/doc/ttk_combobox.n
index ec61428..b6eddd8 100644
--- a/doc/ttk_combobox.n
+++ b/doc/ttk_combobox.n
@@ -55,15 +55,11 @@ Specifies an integer value indicating the desired width of the entry window,
in average-size characters of the widget's font.
.SH "WIDGET COMMAND"
.PP
-The following subcommands are possible for combobox widgets:
-'\".TP
-'\"\fIpathName \fBcget\fR \fIoption\fR
-'\"Returns the current value of the specified \fIoption\fR.
-'\"See \fIttk::widget(n)\fR.
-'\".TP
-'\"\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-'\"Modify or query widget options.
-'\"See \fIttk::widget(n)\fR.
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+combobox widgets support the following additional commands:
.TP
\fIpathName \fBcurrent\fR ?\fInewIndex\fR?
If \fInewIndex\fR is supplied, sets the combobox value
@@ -75,37 +71,18 @@ Otherwise, returns the index of the current value in the list of
.TP
\fIpathName \fBget\fR
Returns the current value of the combobox.
-'\".TP
-'\"\fIpathName \fBidentify \fIx y\fR
-'\"Returns the name of the element at position \fIx\fR, \fIy\fR.
-'\"See \fIttk::widget(n)\fR.
-'\".TP
-'\"\fIpathName \fBinstate \fIstateSpec\fR ?\fIscript\fR?
-'\"Test the widget state.
-'\"See \fIttk::widget(n)\fR.
.TP
\fIpathName \fBset\fR \fIvalue\fR
Sets the value of the combobox to \fIvalue\fR.
-'\".TP
-'\"\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-'\"Modify or query the widget state.
-'\"See \fIttk::widget(n)\fR.
.PP
The combobox widget also supports the following \fBttk::entry\fR
-widget subcommands (see \fIttk::entry(n)\fR for details):
+widget commands:
.DS
.ta 5.5c 11c
\fBbbox\fR \fBdelete\fR \fBicursor\fR
\fBindex\fR \fBinsert\fR \fBselection\fR
\fBxview\fR
.DE
-The combobox widget also supports the following generic \fBttk::widget\fR
-widget subcommands (see \fIttk::widget(n)\fR for details):
-.DS
-.ta 5.5c 11c
-\fBcget\fR \fBconfigure\fR \fBidentify\fR
-\fBinstate\fR \fBstate\fR
-.DE
.SH "VIRTUAL EVENTS"
.PP
The combobox widget generates a \fB<<ComboboxSelected>>\fR virtual event
diff --git a/doc/ttk_entry.n b/doc/ttk_entry.n
index 9a2d429..816c08b 100644
--- a/doc/ttk_entry.n
+++ b/doc/ttk_entry.n
@@ -139,7 +139,11 @@ In general, out-of-range indices are automatically rounded to the
nearest legal value.
.SH "WIDGET COMMAND"
.PP
-The following subcommands are possible for entry widgets:
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR, \fBstyle\fR and \fBxview\fR
+commands (see \fBttk::widget\fR),
+entry widgets support the following additional commands:
.TP
\fIpathName \fBbbox \fIindex\fR
Returns a list of four numbers describing the bounding box of the
@@ -150,14 +154,6 @@ the upper-left corner of the screen area covered by the character
the width and height of the character, in pixels.
The bounding box may refer to a region outside the visible area
of the window.
-'\".TP
-'\"\fIpathName \fBcget\fR \fIoption\fR
-'\"Returns the current value of the specified \fIoption\fR.
-'\"See \fIttk::widget(n)\fR.
-'\".TP
-'\"\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-'\"Modify or query widget options.
-'\"See \fIttk::widget(n)\fR.
.TP
\fIpathName \fBdelete \fIfirst \fR?\fIlast\fR?
Delete one or more elements of the entry.
@@ -174,10 +170,6 @@ Returns the entry's string.
\fIpathName \fBicursor \fIindex\fR
Arrange for the insert cursor to be displayed just before the character
given by \fIindex\fR. Returns the empty string.
-'\".TP
-'\"\fIpathName \fBidentify \fIx y\fR
-'\"Returns the name of the element at position \fIx\fR, \fIy\fR,
-'\"or the empty string if the coordinates are outside the window.
.TP
\fIpathName \fBindex\fI index\fR
Returns the numerical index corresponding to \fIindex\fR.
@@ -185,10 +177,6 @@ Returns the numerical index corresponding to \fIindex\fR.
\fIpathName \fBinsert \fIindex string\fR
Insert \fIstring\fR just before the character
indicated by \fIindex\fR. Returns the empty string.
-'\".TP
-'\"\fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
-'\"Test the widget state.
-'\"See \fIttk::widget(n)\fR.
.TP
\fIpathName \fBselection \fIoption arg\fR
This command is used to adjust the selection within an entry. It
@@ -211,10 +199,6 @@ before \fIend\fR.
If \fIend\fR refers to the same character as \fIstart\fR or an
earlier one, then the entry's selection is cleared.
.RE
-'\".TP
-'\"\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-'\"Modify or query the widget state.
-'\"See \fIttk::widget(n)\fR.
.TP
\fIpathName \fBvalidate\fR
Force revalidation, independent of the conditions specified
@@ -222,14 +206,6 @@ by the \fB\-validate\fR option.
Returns 0 if validation fails, 1 if it succeeds.
Sets or clears the \fBinvalid\fR state accordingly.
See \fBVALIDATION\fR below for more details.
-.PP
-The entry widget also supports the following generic \fBttk::widget\fR
-widget subcommands (see \fIttk::widget(n)\fR for details):
-.DS
-.ta 5.5c 11c
-\fBcget\fR \fBconfigure\fR \fBidentify\fR
-\fBinstate\fR \fBstate\fR \fBxview\fR
-.DE
.SH VALIDATION
.PP
The \fB\-validate\fR, \fB\-validatecommand\fR, and \fB\-invalidcommand\fR
diff --git a/doc/ttk_frame.n b/doc/ttk_frame.n
index b02035e..413bb09 100644
--- a/doc/ttk_frame.n
+++ b/doc/ttk_frame.n
@@ -35,9 +35,10 @@ If specified, the widget's requested width in pixels.
If specified, the widget's requested height in pixels.
.SH "WIDGET COMMAND"
.PP
-Supports the standard widget commands
-\fBconfigure\fR, \fBcget\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR;
-see \fIttk::widget(n)\fR.
+Frame widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.SH "NOTES"
.PP
Note that if the \fBpack\fR, \fBgrid\fR, or other geometry managers
diff --git a/doc/ttk_label.n b/doc/ttk_label.n
index 1b25f9f..54c0f47 100644
--- a/doc/ttk_label.n
+++ b/doc/ttk_label.n
@@ -42,9 +42,10 @@ the text is split into lines such that no line is longer
than the specified value.
.SH "WIDGET COMMAND"
.PP
-Supports the standard widget commands
-\fBconfigure\fR, \fBcget\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR;
-see \fIttk::widget(n)\fR.
+Label widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.SH "STYLING OPTIONS"
.PP
The class name for a \fBttk::label\fP is \fBTLabel\fP.
diff --git a/doc/ttk_labelframe.n b/doc/ttk_labelframe.n
index 9e42781..593d96c 100644
--- a/doc/ttk_labelframe.n
+++ b/doc/ttk_labelframe.n
@@ -62,9 +62,10 @@ sets the keyboard focus to the first child of the \fBttk::labelframe\fR widget.
If specified, the widget's requested width in pixels.
.SH "WIDGET COMMAND"
.PP
-Supports the standard widget commands
-\fBconfigure\fR, \fBcget\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR;
-see \fIttk::widget(n)\fR.
+Labelframe widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.SH "STYLING OPTIONS"
.PP
The class name for a \fBttk::labelframe\fP is \fBTLabelframe\fP.
diff --git a/doc/ttk_menubutton.n b/doc/ttk_menubutton.n
index 0d80c1e..b9b716f 100644
--- a/doc/ttk_menubutton.n
+++ b/doc/ttk_menubutton.n
@@ -38,9 +38,10 @@ menubutton.
.\" .OP \-padding padding Pad
.SH "WIDGET COMMAND"
.PP
-Menubutton widgets support the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-methods. No other widget methods are used.
+Menubutton widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.SH "STANDARD STYLES"
.PP
\fBTtk::menubutton\fR widgets support the \fBToolbutton\fR style in all
diff --git a/doc/ttk_notebook.n b/doc/ttk_notebook.n
index efbfe6c..bc6c95a 100644
--- a/doc/ttk_notebook.n
+++ b/doc/ttk_notebook.n
@@ -102,6 +102,12 @@ which returns the number of tabs
(only valid for
.QW "\fIpathname \fBindex\fR" ).
.SH "WIDGET COMMAND"
+.PP
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+notebook widgets support the following additional commands:
.TP
\fIpathname \fBadd \fIwindow\fR ?\fIoptions...\fR?
Adds a new tab to the notebook.
@@ -109,12 +115,6 @@ See \fBTAB OPTIONS\fR for the list of available \fIoptions\fR.
If \fIwindow\fR is currently managed by the notebook but hidden,
it is restored to its previous position.
.TP
-\fIpathname \fBconfigure\fR ?\fIoptions\fR?
-See \fIttk::widget(n)\fR.
-.TP
-\fIpathname \fBcget \fIoption\fR
-See \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBforget \fItabid\fR
Removes the tab specified by \fItabid\fR,
unmaps and unmanages the associated window.
@@ -151,9 +151,6 @@ If \fIsubwindow\fR is already managed by the notebook,
moves it to the specified position.
See \fBTAB OPTIONS\fR for the list of available options.
.TP
-\fIpathname \fBinstate \fIstatespec \fR?\fIscript...\fR?
-See \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBselect\fR ?\fItabid\fR?
Selects the specified tab.
The associated content window will be displayed,
@@ -161,9 +158,6 @@ and the previously-selected window (if different) is unmapped.
If \fItabid\fR is omitted, returns the widget name of the
currently selected pane.
.TP
-\fIpathname \fBstate\fR ?\fIstatespec\fR?
-See \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBtab \fItabid\fR ?\fI\-option \fR?\fIvalue ...\fR
Query or modify the options of the specific tab.
If no \fI\-option\fR is specified,
diff --git a/doc/ttk_panedwindow.n b/doc/ttk_panedwindow.n
index d6b3ea3..beab063 100644
--- a/doc/ttk_panedwindow.n
+++ b/doc/ttk_panedwindow.n
@@ -48,9 +48,12 @@ An integer specifying the relative stretchability of the pane.
When the paned window is resized, the extra space is added
or subtracted to each pane proportionally to its \fB\-weight\fR.
.SH "WIDGET COMMAND"
-Supports the standard \fBconfigure\fR, \fBcget\fR, \fBstate\fR,
-and \fBinstate\fR commands; see \fIttk::widget(n)\fR for details.
-Additional commands:
+.PP
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+panedwindow widgets support the following additional commands:
.TP
\fIpathname \fBadd \fIsubwindow options...\fR
Adds a new pane to the window.
@@ -106,14 +109,6 @@ and the total size of the widget.
.\" depending on which changed most recently.
Returns the new position of sash number \fIindex\fR.
.\" Full story: new position may be different than the requested position.
-.PP
-The panedwindow widget also supports the following generic \fBttk::widget\fR
-widget subcommands (see \fIttk::widget(n)\fR for details):
-.DS
-.ta 5.5c 11c
-\fBcget\fR \fBconfigure\fR
-\fBinstate\fR \fBstate\fR
-.DE
.SH "VIRTUAL EVENTS"
.PP
The panedwindow widget generates an \fB<<EnteredChild>>\fR virtual event on
diff --git a/doc/ttk_progressbar.n b/doc/ttk_progressbar.n
index df469b6..0673ca6 100644
--- a/doc/ttk_progressbar.n
+++ b/doc/ttk_progressbar.n
@@ -66,19 +66,11 @@ automatically set to the value of the variable whenever
the latter is modified.
.SH "WIDGET COMMAND"
.PP
-.TP
-\fIpathName \fBcget \fIoption\fR
-Returns the current value of the specified \fIoption\fR; see \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-Modify or query widget options; see \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBidentify \fIx y\fR
-Returns the name of the element at position \fIx\fR, \fIy\fR.
-See \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
-Test the widget state; see \fIttk::widget(n)\fR.
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+progressbar widgets support the following additional commands:
.TP
\fIpathName \fBstart\fR ?\fIinterval\fR?
Begin autoincrement mode:
@@ -86,9 +78,6 @@ schedules a recurring timer event that calls \fBstep\fR
every \fIinterval\fR milliseconds.
If omitted, \fIinterval\fR defaults to 50 milliseconds (20 steps/second).
.TP
-\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-Modify or query the widget state; see \fIttk::widget(n)\fR.
-.TP
\fIpathName \fBstep\fR ?\fIamount\fR?
Increments the \fB\-value\fR by \fIamount\fR.
\fIamount\fR defaults to 1.0 if omitted.
diff --git a/doc/ttk_radiobutton.n b/doc/ttk_radiobutton.n
index 2dc84be..45be7df 100644
--- a/doc/ttk_radiobutton.n
+++ b/doc/ttk_radiobutton.n
@@ -37,9 +37,10 @@ Default value is \fB::selectedButton\fR.
.SH "WIDGET COMMAND"
.PP
In addition to the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-commands, radiobuttons support the following additional
-widget commands:
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+radiobutton widgets support the following additional commands:
.TP
\fIpathname\fB invoke\fR
Sets the \fB\-variable\fR to the \fB\-value\fR, selects the widget,
diff --git a/doc/ttk_scale.n b/doc/ttk_scale.n
index aa851b9..24773cf 100644
--- a/doc/ttk_scale.n
+++ b/doc/ttk_scale.n
@@ -51,45 +51,26 @@ Whenever the scale is manipulated interactively, the variable will be modified
to reflect the scale's new value.
.SH "WIDGET COMMAND"
.PP
-.TP
-\fIpathName \fBcget \fIoption\fR
-.
-Returns the current value of the specified \fIoption\fR; see
-\fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBconfigure \fR?\fIoption\fR? ?\fIvalue option value ...\fR?
-.
-Modify or query widget options; see \fIttk::widget(n)\fR.
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+scale widgets support the following additional commands:
.TP
\fIpathName \fBget \fR?\fIx y\fR?
-.
Get the current value of the \fB\-value\fR option, or the value corresponding
to the coordinates \fIx,y\fR if they are specified. \fIX\fR and \fIy\fR are
pixel coordinates relative to the scale widget origin.
.TP
-\fIpathName \fBidentify \fIx y\fR
-Returns the name of the element at position \fIx\fR, \fIy\fR.
-See \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
-.
-Test the widget state; see \fIttk::widget(n)\fR.
-.TP
\fIpathName \fBset \fIvalue\fR
-.
Set the value of the widget (i.e. the \fB\-value\fR option) to \fIvalue\fR.
The value will be clipped to the range given by the \fB\-from\fR and
\fB\-to\fR options. Note that setting the linked variable (i.e. the variable
named in the \fB\-variable\fR option) does not cause such clipping.
-.TP
-\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-.
-Modify or query the widget state; see \fIttk::widget(n)\fR.
.SH "INTERNAL COMMANDS"
.PP
.TP
\fIpathName \fBcoords \fR?\fIvalue\fR?
-.
Get the coordinates corresponding to \fIvalue\fR, or the coordinates
corresponding to the current value of the \fB\-value\fR option if \fIvalue\fR
is omitted.
diff --git a/doc/ttk_scrollbar.n b/doc/ttk_scrollbar.n
index 08c7f52..948c6eb 100644
--- a/doc/ttk_scrollbar.n
+++ b/doc/ttk_scrollbar.n
@@ -47,32 +47,21 @@ One of \fBhorizontal\fR or \fBvertical\fR.
Specifies the orientation of the scrollbar.
.SH "WIDGET COMMAND"
.PP
-.TP
-\fIpathName \fBcget \fIoption\fR
-Returns the current value of the specified \fIoption\fR; see \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-Modify or query widget options; see \fIttk::widget(n)\fR.
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+commands (see \fBttk::widget\fR),
+scrollbar widgets support the following additional commands:
.TP
\fIpathName \fBget\fR
Returns the scrollbar settings in the form of a list whose
elements are the arguments to the most recent \fBset\fR widget command.
.TP
-\fIpathName \fBidentify \fIx y\fR
-Returns the name of the element at position \fIx\fR, \fIy\fR.
-See \fIttk::widget(n)\fR.
-.TP
-\fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
-Test the widget state; see \fIttk::widget(n)\fR.
-.TP
\fIpathName \fBset \fIfirst last\fR
This command is normally invoked by the scrollbar's associated widget
from an \fB\-xscrollcommand\fR or \fB\-yscrollcommand\fR callback.
Specifies the visible range to be displayed.
\fIfirst\fR and \fIlast\fR are real fractions between 0 and 1.
-.TP
-\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-Modify or query the widget state; see \fIttk::widget(n)\fR.
.SH "INTERNAL COMMANDS"
.PP
The following widget commands are used internally
diff --git a/doc/ttk_separator.n b/doc/ttk_separator.n
index 4befb0a..5331f3e 100644
--- a/doc/ttk_separator.n
+++ b/doc/ttk_separator.n
@@ -26,9 +26,10 @@ One of \fBhorizontal\fR or \fBvertical\fR.
Specifies the orientation of the separator.
.SH "WIDGET COMMAND"
.PP
-Separator widgets support the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-methods. No other widget methods are used.
+Separator widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.PP
.SH "STYLING OPTIONS"
.PP
diff --git a/doc/ttk_sizegrip.n b/doc/ttk_sizegrip.n
index 707a17e..fda8d07 100644
--- a/doc/ttk_sizegrip.n
+++ b/doc/ttk_sizegrip.n
@@ -23,9 +23,10 @@ by pressing and dragging the grip.
.SE
.SH "WIDGET COMMAND"
.PP
-Sizegrip widgets support the standard
-\fBcget\fR, \fBconfigure\fR, \fBidentify\fR, \fBinstate\fR, and \fBstate\fR
-methods. No other widget methods are used.
+Sizegrip widgets support the standard commands
+\fBcget\fR, \fBconfigure\fR, \fBidentify element\fR, \fBinstate\fR,
+\fBstate\fR and \fBstyle\fR
+(see \fBttk::widget\fR).
.SH "PLATFORM-SPECIFIC NOTES"
.PP
On Mac OSX, toplevel windows automatically include a built-in
diff --git a/doc/ttk_style.n b/doc/ttk_style.n
index 5d7b5d1..a8ecf06 100644
--- a/doc/ttk_style.n
+++ b/doc/ttk_style.n
@@ -27,12 +27,20 @@ this may be overridden by the \fB\-style\fR option.
.PP
A \fItheme\fR is a collection of elements and styles
which controls the overall look and feel of an application.
+The
+.QW .
+style is the theme root style on which derived styles are based.
.SH DESCRIPTION
.PP
The \fBttk::style\fR command takes the following arguments:
.TP
\fBttk::style configure \fIstyle\fR ?\fI\-option\fR ?\fIvalue option value...\fR? ?
Sets the default value of the specified option(s) in \fIstyle\fR.
+If \fIstyle\fR does not exist, it is created.
+If only \fIstyle\fR and \fI-option\fR are specified, get the default value
+for option \fI-option\fR of style \fIstyle\fR.
+If only \fIstyle\fR is specified, get the default value for all options
+of style \fIstyle\fR.
.TP
\fBttk::style element\fR \fIargs\fR
.RS
@@ -68,12 +76,18 @@ state).
If the \fIdefault\fR argument is present, it is used as a fallback
value in case no specification for \fI\-option\fR is found.
.\" Otherwise -- signal error? return empty string? Leave unspecified for now.
+If \fIstyle\fR does not exist, it is created.
.TP
\fBttk::style map \fIstyle\fR ?\fI\-option\fB { \fIstatespec value...\fB }\fR?
-Sets dynamic values of the specified option(s) in \fIstyle\fR.
+Sets dynamic (state dependent) values of the specified option(s) in \fIstyle\fR.
Each \fIstatespec / value\fR pair is examined in order;
the value corresponding to the first matching \fIstatespec\fR
is used.
+If \fIstyle\fR does not exist, it is created.
+If only \fIstyle\fR and \fI-option\fR are specified, get the dynamic values
+for option \fI-option\fR of style \fIstyle\fR.
+If only \fIstyle\fR is specified, get the dynamic values for all options
+of style \fIstyle\fR.
.TP
\fBttk::style theme\fR \fIargs\fR
.RS
@@ -94,6 +108,10 @@ evaluate \fIscript\fR, then restore the previous theme.
Typically \fIscript\fR simply defines styles and elements,
though arbitrary Tcl code may appear.
.TP
+\fBttk::style theme styles\fR ?\fIthemeName\fR?
+Returns a list of all styles in \fIthemeName\fR. If \fIthemeName\fR
+is omitted, the current theme is used.
+.TP
\fBttk::style theme use\fR ?\fIthemeName\fR?
Without an argument the result is the name of the current theme.
Otherwise this command sets the current theme to \fIthemeName\fR,
diff --git a/doc/ttk_treeview.n b/doc/ttk_treeview.n
index a126dd2..02fd39c 100644
--- a/doc/ttk_treeview.n
+++ b/doc/ttk_treeview.n
@@ -92,6 +92,11 @@ even if \fB\-show tree\fR is not specified.
.RE
.SH "WIDGET COMMAND"
.PP
+In addition to the standard
+\fBcget\fR, \fBconfigure\fR, \fBinstate\fR,
+\fBstate\fR, \fBstyle\fR, \fBxview\fR and \fByview\fR
+commands (see \fBttk::widget\fR),
+treeview widgets support the following additional commands:
.TP
\fIpathname \fBbbox \fIitem\fR ?\fIcolumn\fR?
Returns the bounding box (relative to the treeview widget's window)
@@ -102,9 +107,6 @@ If the \fIitem\fR is not visible
(i.e., if it is a descendant of a closed item or is scrolled offscreen),
returns the empty list.
.TP
-\fIpathname \fBcget \fIoption\fR
-Returns the current value of the specified \fIoption\fR; see \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBchildren \fIitem\fR ?\fInewchildren\fR?
If \fInewchildren\fR is not specified,
returns the list of children belonging to \fIitem\fR.
@@ -160,9 +162,6 @@ column separator.
Use \fIpathname column #0\fR to configure the tree column.
.RE
.TP
-\fIpathname \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-Modify or query widget options; see \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBdelete \fIitemList\fR
Deletes each of the items in \fIitemList\fR and all of their descendants.
The root item may not be deleted.
@@ -272,9 +271,6 @@ newly created item.
See \fBITEM OPTIONS\fR for the list of available options.
.RE
.TP
-\fIpathname \fBinstate \fIstatespec\fR ?\fIscript\fR?
-Test the widget state; see \fIttk::widget(n)\fR.
-.TP
\fIpathname \fBitem \fIitem\fR ?\fI\-option \fR?\fIvalue \-option value...\fR?
Query or modify the options for the specified \fIitem\fR.
If no \fI\-option\fR is specified,
@@ -338,9 +334,6 @@ With three arguments, sets the value of column \fIcolumn\fR
in item \fIitem\fR to the specified \fIvalue\fR.
See also \fBCOLUMN IDENTIFIERS\fR.
.TP
-\fIpathname \fBstate\fR ?\fIstateSpec\fR?
-Modify or query the widget state; see \fIttk::widget(n)\fR.
-.TP
\fIpathName \fBtag \fIargs...\fR
.RS
.TP
@@ -398,13 +391,6 @@ If \fIitems\fR is omitted, removes \fItag\fR from each item in the tree.
If \fItag\fR is not present for a particular item,
then the \fB\-tags\fR for that item are unchanged.
.RE
-.PP
-The treeview widget also supports the following generic \fBttk::widget\fR
-widget subcommands (see \fIttk::widget(n)\fR for details):
-.DS
-.ta 5.5c 11c
-\fBxview\fR \fByview\fR
-.DE
.SH "ITEM OPTIONS"
.PP
The following item options may be specified for items
diff --git a/doc/ttk_widget.n b/doc/ttk_widget.n
index 7bab661..06cb83c 100644
--- a/doc/ttk_widget.n
+++ b/doc/ttk_widget.n
@@ -174,12 +174,10 @@ does not affect the \fB\-state\fR option.
.SH COMMANDS
.TP
\fIpathName \fBcget \fIoption\fR
-.
Returns the current value of the configuration option given
by \fIoption\fR.
.TP
\fIpathName \fBconfigure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR?
-.
Query or modify the configuration options of the widget.
If one or more \fIoption\-value\fR pairs are specified,
then the command modifies the given widget option(s)
@@ -195,15 +193,14 @@ If no \fIoption\fR is specified, returns a list describing all of
the available options for \fIpathName\fR.
.TP
\fIpathName \fBidentify element \fIx y\fR
-.
Returns the name of the element under the point given
by \fIx\fR and \fIy\fR, or an empty string if the point does
not lie within any element.
\fIx\fR and \fIy\fR are pixel coordinates relative to the widget.
-Some widgets accept other \fBidentify\fR subcommands.
+Some widgets accept other \fBidentify\fR subcommands described
+in these widgets documentation.
.TP
\fIpathName \fBinstate \fIstatespec\fR ?\fIscript\fR?
-.
Test the widget's state.
If \fIscript\fR is not specified, returns 1 if
the widget state matches \fIstatespec\fR and 0 otherwise.
@@ -213,7 +210,6 @@ if {[\fIpathName\fR instate \fIstateSpec\fR]} \fIscript\fR
.CE
.TP
\fIpathName \fBstate\fR ?\fIstateSpec\fR?
-.
Modify or inquire widget state.
If \fIstateSpec\fR is present, sets the widget state:
for each flag in \fIstateSpec\fR, sets the corresponding flag
@@ -229,6 +225,9 @@ If \fIstateSpec\fR is not specified,
returns a list of the currently-enabled state flags.
.RE
.TP
+\fIpathName \fBstyle\fR
+Return the style used by the widget.
+.TP
\fIpathName \fBxview \fIargs\fR
This command is used to query and change the horizontal position of the
content in the widget's window. It can take any of the following
diff --git a/generic/ks_names.h b/generic/ks_names.h
index 7d11cae..b437ba2 100644
--- a/generic/ks_names.h
+++ b/generic/ks_names.h
@@ -360,10 +360,13 @@
{ "3270_PrintScreen", 0xFD1D },
{ "3270_Enter", 0xFD1E },
{ "space", 0x20 },
+#ifndef TK_NO_DEPRECATED
{ "exclam", 0x21 },
+#endif
{ "quotedbl", 0x22 },
{ "numbersign", 0x23 },
{ "dollar", 0x24 },
+#ifndef TK_NO_DEPRECATED
{ "percent", 0x25 },
{ "ampersand", 0x26 },
{ "apostrophe", 0x27 },
@@ -373,7 +376,9 @@
{ "asterisk", 0x2A },
{ "plus", 0x2B },
{ "comma", 0x2C },
+#endif
{ "minus", 0x2D },
+#ifndef TK_NO_DEPRECATED
{ "period", 0x2E },
{ "slash", 0x2F },
{ "0", 0x30 },
@@ -387,10 +392,14 @@
{ "8", 0x38 },
{ "9", 0x39 },
{ "colon", 0x3A },
+#endif
{ "semicolon", 0x3B },
{ "less", 0x3C },
+#ifndef TK_NO_DEPRECATED
{ "equal", 0x3D },
+#endif
{ "greater", 0x3E },
+#ifndef TK_NO_DEPRECATED
{ "question", 0x3F },
{ "at", 0x40 },
{ "A", 0x41 },
@@ -419,9 +428,11 @@
{ "X", 0x58 },
{ "Y", 0x59 },
{ "Z", 0x5A },
+#endif
{ "bracketleft", 0x5B },
{ "backslash", 0x5C },
{ "bracketright", 0x5D },
+#ifndef TK_NO_DEPRECATED
{ "asciicircum", 0x5E },
{ "underscore", 0x5F },
{ "grave", 0x60 },
@@ -452,11 +463,17 @@
{ "x", 0x78 },
{ "y", 0x79 },
{ "z", 0x7A },
+#endif
{ "braceleft", 0x7B },
+#ifndef TK_NO_DEPRECATED
{ "bar", 0x7C },
+#endif
{ "braceright", 0x7D },
+#ifndef TK_NO_DEPRECATED
{ "asciitilde", 0x7E },
+#endif
{ "nobreakspace", 0xA0 },
+#ifndef TK_NO_DEPRECATED
{ "exclamdown", 0xA1 },
{ "cent", 0xA2 },
{ "sterling", 0xA3 },
@@ -560,6 +577,7 @@
{ "yacute", 0xFD },
{ "thorn", 0xFE },
{ "ydiaeresis", 0xFF },
+#endif /* TK_NO_DEPRECATED */
{ "Aogonek", 0x1A1 },
{ "breve", 0x1A2 },
{ "Lstroke", 0x1A3 },
@@ -680,32 +698,6 @@
{ "uogonek", 0x3F9 },
{ "utilde", 0x3FD },
{ "umacron", 0x3FE },
-{ "Wcircumflex", 0x1000174 },
-{ "wcircumflex", 0x1000175 },
-{ "Ycircumflex", 0x1000176 },
-{ "ycircumflex", 0x1000177 },
-{ "Babovedot", 0x1001E02 },
-{ "babovedot", 0x1001E03 },
-{ "Dabovedot", 0x1001E0A },
-{ "dabovedot", 0x1001E0B },
-{ "Fabovedot", 0x1001E1E },
-{ "fabovedot", 0x1001E1F },
-{ "Mabovedot", 0x1001E40 },
-{ "mabovedot", 0x1001E41 },
-{ "Pabovedot", 0x1001E56 },
-{ "pabovedot", 0x1001E57 },
-{ "Sabovedot", 0x1001E60 },
-{ "sabovedot", 0x1001E61 },
-{ "Tabovedot", 0x1001E6A },
-{ "tabovedot", 0x1001E6B },
-{ "Wgrave", 0x1001E80 },
-{ "wgrave", 0x1001E81 },
-{ "Wacute", 0x1001E82 },
-{ "wacute", 0x1001E83 },
-{ "Wdiaeresis", 0x1001E84 },
-{ "wdiaeresis", 0x1001E85 },
-{ "Ygrave", 0x1001EF2 },
-{ "ygrave", 0x1001EF3 },
{ "OE", 0x13BC },
{ "oe", 0x13BD },
{ "Ydiaeresis", 0x13BE },
@@ -789,35 +781,6 @@
{ "voicedsound", 0x4DE },
{ "semivoicedsound", 0x4DF },
{ "kana_switch", 0xFF7E },
-{ "Farsi_0", 0x10006F0 },
-{ "Farsi_1", 0x10006F1 },
-{ "Farsi_2", 0x10006F2 },
-{ "Farsi_3", 0x10006F3 },
-{ "Farsi_4", 0x10006F4 },
-{ "Farsi_5", 0x10006F5 },
-{ "Farsi_6", 0x10006F6 },
-{ "Farsi_7", 0x10006F7 },
-{ "Farsi_8", 0x10006F8 },
-{ "Farsi_9", 0x10006F9 },
-{ "Arabic_percent", 0x100066A },
-{ "Arabic_superscript_alef", 0x1000670 },
-{ "Arabic_tteh", 0x1000679 },
-{ "Arabic_peh", 0x100067E },
-{ "Arabic_tcheh", 0x1000686 },
-{ "Arabic_ddal", 0x1000688 },
-{ "Arabic_rreh", 0x1000691 },
-{ "Arabic_comma", 0x5AC },
-{ "Arabic_fullstop", 0x10006D4 },
-{ "Arabic_0", 0x1000660 },
-{ "Arabic_1", 0x1000661 },
-{ "Arabic_2", 0x1000662 },
-{ "Arabic_3", 0x1000663 },
-{ "Arabic_4", 0x1000664 },
-{ "Arabic_5", 0x1000665 },
-{ "Arabic_6", 0x1000666 },
-{ "Arabic_7", 0x1000667 },
-{ "Arabic_8", 0x1000668 },
-{ "Arabic_9", 0x1000669 },
{ "Arabic_semicolon", 0x5BB },
{ "Arabic_question_mark", 0x5BF },
{ "Arabic_hamza", 0x5C1 },
@@ -868,50 +831,6 @@
{ "Arabic_kasra", 0x5F0 },
{ "Arabic_shadda", 0x5F1 },
{ "Arabic_sukun", 0x5F2 },
-{ "Arabic_madda_above", 0x1000653 },
-{ "Arabic_hamza_above", 0x1000654 },
-{ "Arabic_hamza_below", 0x1000655 },
-{ "Arabic_jeh", 0x1000698 },
-{ "Arabic_veh", 0x10006A4 },
-{ "Arabic_keheh", 0x10006A9 },
-{ "Arabic_gaf", 0x10006AF },
-{ "Arabic_noon_ghunna", 0x10006BA },
-{ "Arabic_heh_doachashmee", 0x10006BE },
-{ "Farsi_yeh", 0x10006CC },
-{ "Arabic_farsi_yeh", 0x10006CC },
-{ "Arabic_yeh_baree", 0x10006D2 },
-{ "Arabic_heh_goal", 0x10006C1 },
-{ "Arabic_switch", 0xFF7E },
-{ "Cyrillic_GHE_bar", 0x1000492 },
-{ "Cyrillic_ghe_bar", 0x1000493 },
-{ "Cyrillic_ZHE_descender", 0x1000496 },
-{ "Cyrillic_zhe_descender", 0x1000497 },
-{ "Cyrillic_KA_descender", 0x100049A },
-{ "Cyrillic_ka_descender", 0x100049B },
-{ "Cyrillic_KA_vertstroke", 0x100049C },
-{ "Cyrillic_ka_vertstroke", 0x100049D },
-{ "Cyrillic_EN_descender", 0x10004A2 },
-{ "Cyrillic_en_descender", 0x10004A3 },
-{ "Cyrillic_U_straight", 0x10004AE },
-{ "Cyrillic_u_straight", 0x10004AF },
-{ "Cyrillic_U_straight_bar", 0x10004B0 },
-{ "Cyrillic_u_straight_bar", 0x10004B1 },
-{ "Cyrillic_HA_descender", 0x10004B2 },
-{ "Cyrillic_ha_descender", 0x10004B3 },
-{ "Cyrillic_CHE_descender", 0x10004B6 },
-{ "Cyrillic_che_descender", 0x10004B7 },
-{ "Cyrillic_CHE_vertstroke", 0x10004B8 },
-{ "Cyrillic_che_vertstroke", 0x10004B9 },
-{ "Cyrillic_SHHA", 0x10004BA },
-{ "Cyrillic_shha", 0x10004BB },
-{ "Cyrillic_SCHWA", 0x10004D8 },
-{ "Cyrillic_schwa", 0x10004D9 },
-{ "Cyrillic_I_macron", 0x10004E2 },
-{ "Cyrillic_i_macron", 0x10004E3 },
-{ "Cyrillic_O_bar", 0x10004E8 },
-{ "Cyrillic_o_bar", 0x10004E9 },
-{ "Cyrillic_U_macron", 0x10004EE },
-{ "Cyrillic_u_macron", 0x10004EF },
{ "Serbian_dje", 0x6A1 },
{ "Macedonia_gje", 0x6A2 },
{ "Cyrillic_io", 0x6A3 },
@@ -1555,290 +1474,6 @@
{ "Hangul_J_KkogjiDalrinIeung", 0xEF9 },
{ "Hangul_J_YeorinHieuh", 0xEFA },
{ "Korean_Won", 0xEFF },
-{ "Armenian_ligature_ew", 0x1000587 },
-{ "Armenian_full_stop", 0x1000589 },
-{ "Armenian_verjaket", 0x1000589 },
-{ "Armenian_separation_mark", 0x100055D },
-{ "Armenian_but", 0x100055D },
-{ "Armenian_hyphen", 0x100058A },
-{ "Armenian_yentamna", 0x100058A },
-{ "Armenian_exclam", 0x100055C },
-{ "Armenian_amanak", 0x100055C },
-{ "Armenian_accent", 0x100055B },
-{ "Armenian_shesht", 0x100055B },
-{ "Armenian_question", 0x100055E },
-{ "Armenian_paruyk", 0x100055E },
-{ "Armenian_AYB", 0x1000531 },
-{ "Armenian_ayb", 0x1000561 },
-{ "Armenian_BEN", 0x1000532 },
-{ "Armenian_ben", 0x1000562 },
-{ "Armenian_GIM", 0x1000533 },
-{ "Armenian_gim", 0x1000563 },
-{ "Armenian_DA", 0x1000534 },
-{ "Armenian_da", 0x1000564 },
-{ "Armenian_YECH", 0x1000535 },
-{ "Armenian_yech", 0x1000565 },
-{ "Armenian_ZA", 0x1000536 },
-{ "Armenian_za", 0x1000566 },
-{ "Armenian_E", 0x1000537 },
-{ "Armenian_e", 0x1000567 },
-{ "Armenian_AT", 0x1000538 },
-{ "Armenian_at", 0x1000568 },
-{ "Armenian_TO", 0x1000539 },
-{ "Armenian_to", 0x1000569 },
-{ "Armenian_ZHE", 0x100053A },
-{ "Armenian_zhe", 0x100056A },
-{ "Armenian_INI", 0x100053B },
-{ "Armenian_ini", 0x100056B },
-{ "Armenian_LYUN", 0x100053C },
-{ "Armenian_lyun", 0x100056C },
-{ "Armenian_KHE", 0x100053D },
-{ "Armenian_khe", 0x100056D },
-{ "Armenian_TSA", 0x100053E },
-{ "Armenian_tsa", 0x100056E },
-{ "Armenian_KEN", 0x100053F },
-{ "Armenian_ken", 0x100056F },
-{ "Armenian_HO", 0x1000540 },
-{ "Armenian_ho", 0x1000570 },
-{ "Armenian_DZA", 0x1000541 },
-{ "Armenian_dza", 0x1000571 },
-{ "Armenian_GHAT", 0x1000542 },
-{ "Armenian_ghat", 0x1000572 },
-{ "Armenian_TCHE", 0x1000543 },
-{ "Armenian_tche", 0x1000573 },
-{ "Armenian_MEN", 0x1000544 },
-{ "Armenian_men", 0x1000574 },
-{ "Armenian_HI", 0x1000545 },
-{ "Armenian_hi", 0x1000575 },
-{ "Armenian_NU", 0x1000546 },
-{ "Armenian_nu", 0x1000576 },
-{ "Armenian_SHA", 0x1000547 },
-{ "Armenian_sha", 0x1000577 },
-{ "Armenian_VO", 0x1000548 },
-{ "Armenian_vo", 0x1000578 },
-{ "Armenian_CHA", 0x1000549 },
-{ "Armenian_cha", 0x1000579 },
-{ "Armenian_PE", 0x100054A },
-{ "Armenian_pe", 0x100057A },
-{ "Armenian_JE", 0x100054B },
-{ "Armenian_je", 0x100057B },
-{ "Armenian_RA", 0x100054C },
-{ "Armenian_ra", 0x100057C },
-{ "Armenian_SE", 0x100054D },
-{ "Armenian_se", 0x100057D },
-{ "Armenian_VEV", 0x100054E },
-{ "Armenian_vev", 0x100057E },
-{ "Armenian_TYUN", 0x100054F },
-{ "Armenian_tyun", 0x100057F },
-{ "Armenian_RE", 0x1000550 },
-{ "Armenian_re", 0x1000580 },
-{ "Armenian_TSO", 0x1000551 },
-{ "Armenian_tso", 0x1000581 },
-{ "Armenian_VYUN", 0x1000552 },
-{ "Armenian_vyun", 0x1000582 },
-{ "Armenian_PYUR", 0x1000553 },
-{ "Armenian_pyur", 0x1000583 },
-{ "Armenian_KE", 0x1000554 },
-{ "Armenian_ke", 0x1000584 },
-{ "Armenian_O", 0x1000555 },
-{ "Armenian_o", 0x1000585 },
-{ "Armenian_FE", 0x1000556 },
-{ "Armenian_fe", 0x1000586 },
-{ "Armenian_apostrophe", 0x100055A },
-{ "Georgian_an", 0x10010D0 },
-{ "Georgian_ban", 0x10010D1 },
-{ "Georgian_gan", 0x10010D2 },
-{ "Georgian_don", 0x10010D3 },
-{ "Georgian_en", 0x10010D4 },
-{ "Georgian_vin", 0x10010D5 },
-{ "Georgian_zen", 0x10010D6 },
-{ "Georgian_tan", 0x10010D7 },
-{ "Georgian_in", 0x10010D8 },
-{ "Georgian_kan", 0x10010D9 },
-{ "Georgian_las", 0x10010DA },
-{ "Georgian_man", 0x10010DB },
-{ "Georgian_nar", 0x10010DC },
-{ "Georgian_on", 0x10010DD },
-{ "Georgian_par", 0x10010DE },
-{ "Georgian_zhar", 0x10010DF },
-{ "Georgian_rae", 0x10010E0 },
-{ "Georgian_san", 0x10010E1 },
-{ "Georgian_tar", 0x10010E2 },
-{ "Georgian_un", 0x10010E3 },
-{ "Georgian_phar", 0x10010E4 },
-{ "Georgian_khar", 0x10010E5 },
-{ "Georgian_ghan", 0x10010E6 },
-{ "Georgian_qar", 0x10010E7 },
-{ "Georgian_shin", 0x10010E8 },
-{ "Georgian_chin", 0x10010E9 },
-{ "Georgian_can", 0x10010EA },
-{ "Georgian_jil", 0x10010EB },
-{ "Georgian_cil", 0x10010EC },
-{ "Georgian_char", 0x10010ED },
-{ "Georgian_xan", 0x10010EE },
-{ "Georgian_jhan", 0x10010EF },
-{ "Georgian_hae", 0x10010F0 },
-{ "Georgian_he", 0x10010F1 },
-{ "Georgian_hie", 0x10010F2 },
-{ "Georgian_we", 0x10010F3 },
-{ "Georgian_har", 0x10010F4 },
-{ "Georgian_hoe", 0x10010F5 },
-{ "Georgian_fi", 0x10010F6 },
-{ "Xabovedot", 0x1001E8A },
-{ "Ibreve", 0x100012C },
-{ "Zstroke", 0x10001B5 },
-{ "Gcaron", 0x10001E6 },
-{ "Ocaron", 0x10001D1 },
-{ "Obarred", 0x100019F },
-{ "xabovedot", 0x1001E8B },
-{ "ibreve", 0x100012D },
-{ "zstroke", 0x10001B6 },
-{ "gcaron", 0x10001E7 },
-{ "ocaron", 0x10001D2 },
-{ "obarred", 0x1000275 },
-{ "SCHWA", 0x100018F },
-{ "schwa", 0x1000259 },
-{ "EZH", 0x10001B7 },
-{ "ezh", 0x1000292 },
-{ "Lbelowdot", 0x1001E36 },
-{ "lbelowdot", 0x1001E37 },
-{ "Abelowdot", 0x1001EA0 },
-{ "abelowdot", 0x1001EA1 },
-{ "Ahook", 0x1001EA2 },
-{ "ahook", 0x1001EA3 },
-{ "Acircumflexacute", 0x1001EA4 },
-{ "acircumflexacute", 0x1001EA5 },
-{ "Acircumflexgrave", 0x1001EA6 },
-{ "acircumflexgrave", 0x1001EA7 },
-{ "Acircumflexhook", 0x1001EA8 },
-{ "acircumflexhook", 0x1001EA9 },
-{ "Acircumflextilde", 0x1001EAA },
-{ "acircumflextilde", 0x1001EAB },
-{ "Acircumflexbelowdot", 0x1001EAC },
-{ "acircumflexbelowdot", 0x1001EAD },
-{ "Abreveacute", 0x1001EAE },
-{ "abreveacute", 0x1001EAF },
-{ "Abrevegrave", 0x1001EB0 },
-{ "abrevegrave", 0x1001EB1 },
-{ "Abrevehook", 0x1001EB2 },
-{ "abrevehook", 0x1001EB3 },
-{ "Abrevetilde", 0x1001EB4 },
-{ "abrevetilde", 0x1001EB5 },
-{ "Abrevebelowdot", 0x1001EB6 },
-{ "abrevebelowdot", 0x1001EB7 },
-{ "Ebelowdot", 0x1001EB8 },
-{ "ebelowdot", 0x1001EB9 },
-{ "Ehook", 0x1001EBA },
-{ "ehook", 0x1001EBB },
-{ "Etilde", 0x1001EBC },
-{ "etilde", 0x1001EBD },
-{ "Ecircumflexacute", 0x1001EBE },
-{ "ecircumflexacute", 0x1001EBF },
-{ "Ecircumflexgrave", 0x1001EC0 },
-{ "ecircumflexgrave", 0x1001EC1 },
-{ "Ecircumflexhook", 0x1001EC2 },
-{ "ecircumflexhook", 0x1001EC3 },
-{ "Ecircumflextilde", 0x1001EC4 },
-{ "ecircumflextilde", 0x1001EC5 },
-{ "Ecircumflexbelowdot", 0x1001EC6 },
-{ "ecircumflexbelowdot", 0x1001EC7 },
-{ "Ihook", 0x1001EC8 },
-{ "ihook", 0x1001EC9 },
-{ "Ibelowdot", 0x1001ECA },
-{ "ibelowdot", 0x1001ECB },
-{ "Obelowdot", 0x1001ECC },
-{ "obelowdot", 0x1001ECD },
-{ "Ohook", 0x1001ECE },
-{ "ohook", 0x1001ECF },
-{ "Ocircumflexacute", 0x1001ED0 },
-{ "ocircumflexacute", 0x1001ED1 },
-{ "Ocircumflexgrave", 0x1001ED2 },
-{ "ocircumflexgrave", 0x1001ED3 },
-{ "Ocircumflexhook", 0x1001ED4 },
-{ "ocircumflexhook", 0x1001ED5 },
-{ "Ocircumflextilde", 0x1001ED6 },
-{ "ocircumflextilde", 0x1001ED7 },
-{ "Ocircumflexbelowdot", 0x1001ED8 },
-{ "ocircumflexbelowdot", 0x1001ED9 },
-{ "Ohornacute", 0x1001EDA },
-{ "ohornacute", 0x1001EDB },
-{ "Ohorngrave", 0x1001EDC },
-{ "ohorngrave", 0x1001EDD },
-{ "Ohornhook", 0x1001EDE },
-{ "ohornhook", 0x1001EDF },
-{ "Ohorntilde", 0x1001EE0 },
-{ "ohorntilde", 0x1001EE1 },
-{ "Ohornbelowdot", 0x1001EE2 },
-{ "ohornbelowdot", 0x1001EE3 },
-{ "Ubelowdot", 0x1001EE4 },
-{ "ubelowdot", 0x1001EE5 },
-{ "Uhook", 0x1001EE6 },
-{ "uhook", 0x1001EE7 },
-{ "Uhornacute", 0x1001EE8 },
-{ "uhornacute", 0x1001EE9 },
-{ "Uhorngrave", 0x1001EEA },
-{ "uhorngrave", 0x1001EEB },
-{ "Uhornhook", 0x1001EEC },
-{ "uhornhook", 0x1001EED },
-{ "Uhorntilde", 0x1001EEE },
-{ "uhorntilde", 0x1001EEF },
-{ "Uhornbelowdot", 0x1001EF0 },
-{ "uhornbelowdot", 0x1001EF1 },
-{ "Ybelowdot", 0x1001EF4 },
-{ "ybelowdot", 0x1001EF5 },
-{ "Yhook", 0x1001EF6 },
-{ "yhook", 0x1001EF7 },
-{ "Ytilde", 0x1001EF8 },
-{ "ytilde", 0x1001EF9 },
-{ "Ohorn", 0x10001A0 },
-{ "ohorn", 0x10001A1 },
-{ "Uhorn", 0x10001AF },
-{ "uhorn", 0x10001B0 },
-{ "EcuSign", 0x10020A0 },
-{ "ColonSign", 0x10020A1 },
-{ "CruzeiroSign", 0x10020A2 },
-{ "FFrancSign", 0x10020A3 },
-{ "LiraSign", 0x10020A4 },
-{ "MillSign", 0x10020A5 },
-{ "NairaSign", 0x10020A6 },
-{ "PesetaSign", 0x10020A7 },
-{ "RupeeSign", 0x10020A8 },
-{ "WonSign", 0x10020A9 },
-{ "NewSheqelSign", 0x10020AA },
-{ "DongSign", 0x10020AB },
-{ "EuroSign", 0x20AC },
-{ "zerosuperior", 0x1002070 },
-{ "foursuperior", 0x1002074 },
-{ "fivesuperior", 0x1002075 },
-{ "sixsuperior", 0x1002076 },
-{ "sevensuperior", 0x1002077 },
-{ "eightsuperior", 0x1002078 },
-{ "ninesuperior", 0x1002079 },
-{ "zerosubscript", 0x1002080 },
-{ "onesubscript", 0x1002081 },
-{ "twosubscript", 0x1002082 },
-{ "threesubscript", 0x1002083 },
-{ "foursubscript", 0x1002084 },
-{ "fivesubscript", 0x1002085 },
-{ "sixsubscript", 0x1002086 },
-{ "sevensubscript", 0x1002087 },
-{ "eightsubscript", 0x1002088 },
-{ "ninesubscript", 0x1002089 },
-{ "partdifferential", 0x1002202 },
-{ "emptyset", 0x1002205 },
-{ "elementof", 0x1002208 },
-{ "notelementof", 0x1002209 },
-{ "containsas", 0x100220B },
-{ "squareroot", 0x100221A },
-{ "cuberoot", 0x100221B },
-{ "fourthroot", 0x100221C },
-{ "dintegral", 0x100222C },
-{ "tintegral", 0x100222D },
-{ "because", 0x1002235 },
-{ "approxeq", 0x1002248 },
-{ "notapproxeq", 0x1002247 },
-{ "notidentical", 0x1002262 },
-{ "stricteq", 0x1002263 },
{ "braille_dot_1", 0xFFF1 },
{ "braille_dot_2", 0xFFF2 },
{ "braille_dot_3", 0xFFF3 },
@@ -1849,342 +1484,6 @@
{ "braille_dot_8", 0xFFF8 },
{ "braille_dot_9", 0xFFF9 },
{ "braille_dot_10", 0xFFFA },
-{ "braille_blank", 0x1002800 },
-{ "braille_dots_1", 0x1002801 },
-{ "braille_dots_2", 0x1002802 },
-{ "braille_dots_12", 0x1002803 },
-{ "braille_dots_3", 0x1002804 },
-{ "braille_dots_13", 0x1002805 },
-{ "braille_dots_23", 0x1002806 },
-{ "braille_dots_123", 0x1002807 },
-{ "braille_dots_4", 0x1002808 },
-{ "braille_dots_14", 0x1002809 },
-{ "braille_dots_24", 0x100280A },
-{ "braille_dots_124", 0x100280B },
-{ "braille_dots_34", 0x100280C },
-{ "braille_dots_134", 0x100280D },
-{ "braille_dots_234", 0x100280E },
-{ "braille_dots_1234", 0x100280F },
-{ "braille_dots_5", 0x1002810 },
-{ "braille_dots_15", 0x1002811 },
-{ "braille_dots_25", 0x1002812 },
-{ "braille_dots_125", 0x1002813 },
-{ "braille_dots_35", 0x1002814 },
-{ "braille_dots_135", 0x1002815 },
-{ "braille_dots_235", 0x1002816 },
-{ "braille_dots_1235", 0x1002817 },
-{ "braille_dots_45", 0x1002818 },
-{ "braille_dots_145", 0x1002819 },
-{ "braille_dots_245", 0x100281A },
-{ "braille_dots_1245", 0x100281B },
-{ "braille_dots_345", 0x100281C },
-{ "braille_dots_1345", 0x100281D },
-{ "braille_dots_2345", 0x100281E },
-{ "braille_dots_12345", 0x100281F },
-{ "braille_dots_6", 0x1002820 },
-{ "braille_dots_16", 0x1002821 },
-{ "braille_dots_26", 0x1002822 },
-{ "braille_dots_126", 0x1002823 },
-{ "braille_dots_36", 0x1002824 },
-{ "braille_dots_136", 0x1002825 },
-{ "braille_dots_236", 0x1002826 },
-{ "braille_dots_1236", 0x1002827 },
-{ "braille_dots_46", 0x1002828 },
-{ "braille_dots_146", 0x1002829 },
-{ "braille_dots_246", 0x100282A },
-{ "braille_dots_1246", 0x100282B },
-{ "braille_dots_346", 0x100282C },
-{ "braille_dots_1346", 0x100282D },
-{ "braille_dots_2346", 0x100282E },
-{ "braille_dots_12346", 0x100282F },
-{ "braille_dots_56", 0x1002830 },
-{ "braille_dots_156", 0x1002831 },
-{ "braille_dots_256", 0x1002832 },
-{ "braille_dots_1256", 0x1002833 },
-{ "braille_dots_356", 0x1002834 },
-{ "braille_dots_1356", 0x1002835 },
-{ "braille_dots_2356", 0x1002836 },
-{ "braille_dots_12356", 0x1002837 },
-{ "braille_dots_456", 0x1002838 },
-{ "braille_dots_1456", 0x1002839 },
-{ "braille_dots_2456", 0x100283A },
-{ "braille_dots_12456", 0x100283B },
-{ "braille_dots_3456", 0x100283C },
-{ "braille_dots_13456", 0x100283D },
-{ "braille_dots_23456", 0x100283E },
-{ "braille_dots_123456", 0x100283F },
-{ "braille_dots_7", 0x1002840 },
-{ "braille_dots_17", 0x1002841 },
-{ "braille_dots_27", 0x1002842 },
-{ "braille_dots_127", 0x1002843 },
-{ "braille_dots_37", 0x1002844 },
-{ "braille_dots_137", 0x1002845 },
-{ "braille_dots_237", 0x1002846 },
-{ "braille_dots_1237", 0x1002847 },
-{ "braille_dots_47", 0x1002848 },
-{ "braille_dots_147", 0x1002849 },
-{ "braille_dots_247", 0x100284A },
-{ "braille_dots_1247", 0x100284B },
-{ "braille_dots_347", 0x100284C },
-{ "braille_dots_1347", 0x100284D },
-{ "braille_dots_2347", 0x100284E },
-{ "braille_dots_12347", 0x100284F },
-{ "braille_dots_57", 0x1002850 },
-{ "braille_dots_157", 0x1002851 },
-{ "braille_dots_257", 0x1002852 },
-{ "braille_dots_1257", 0x1002853 },
-{ "braille_dots_357", 0x1002854 },
-{ "braille_dots_1357", 0x1002855 },
-{ "braille_dots_2357", 0x1002856 },
-{ "braille_dots_12357", 0x1002857 },
-{ "braille_dots_457", 0x1002858 },
-{ "braille_dots_1457", 0x1002859 },
-{ "braille_dots_2457", 0x100285A },
-{ "braille_dots_12457", 0x100285B },
-{ "braille_dots_3457", 0x100285C },
-{ "braille_dots_13457", 0x100285D },
-{ "braille_dots_23457", 0x100285E },
-{ "braille_dots_123457", 0x100285F },
-{ "braille_dots_67", 0x1002860 },
-{ "braille_dots_167", 0x1002861 },
-{ "braille_dots_267", 0x1002862 },
-{ "braille_dots_1267", 0x1002863 },
-{ "braille_dots_367", 0x1002864 },
-{ "braille_dots_1367", 0x1002865 },
-{ "braille_dots_2367", 0x1002866 },
-{ "braille_dots_12367", 0x1002867 },
-{ "braille_dots_467", 0x1002868 },
-{ "braille_dots_1467", 0x1002869 },
-{ "braille_dots_2467", 0x100286A },
-{ "braille_dots_12467", 0x100286B },
-{ "braille_dots_3467", 0x100286C },
-{ "braille_dots_13467", 0x100286D },
-{ "braille_dots_23467", 0x100286E },
-{ "braille_dots_123467", 0x100286F },
-{ "braille_dots_567", 0x1002870 },
-{ "braille_dots_1567", 0x1002871 },
-{ "braille_dots_2567", 0x1002872 },
-{ "braille_dots_12567", 0x1002873 },
-{ "braille_dots_3567", 0x1002874 },
-{ "braille_dots_13567", 0x1002875 },
-{ "braille_dots_23567", 0x1002876 },
-{ "braille_dots_123567", 0x1002877 },
-{ "braille_dots_4567", 0x1002878 },
-{ "braille_dots_14567", 0x1002879 },
-{ "braille_dots_24567", 0x100287A },
-{ "braille_dots_124567", 0x100287B },
-{ "braille_dots_34567", 0x100287C },
-{ "braille_dots_134567", 0x100287D },
-{ "braille_dots_234567", 0x100287E },
-{ "braille_dots_1234567", 0x100287F },
-{ "braille_dots_8", 0x1002880 },
-{ "braille_dots_18", 0x1002881 },
-{ "braille_dots_28", 0x1002882 },
-{ "braille_dots_128", 0x1002883 },
-{ "braille_dots_38", 0x1002884 },
-{ "braille_dots_138", 0x1002885 },
-{ "braille_dots_238", 0x1002886 },
-{ "braille_dots_1238", 0x1002887 },
-{ "braille_dots_48", 0x1002888 },
-{ "braille_dots_148", 0x1002889 },
-{ "braille_dots_248", 0x100288A },
-{ "braille_dots_1248", 0x100288B },
-{ "braille_dots_348", 0x100288C },
-{ "braille_dots_1348", 0x100288D },
-{ "braille_dots_2348", 0x100288E },
-{ "braille_dots_12348", 0x100288F },
-{ "braille_dots_58", 0x1002890 },
-{ "braille_dots_158", 0x1002891 },
-{ "braille_dots_258", 0x1002892 },
-{ "braille_dots_1258", 0x1002893 },
-{ "braille_dots_358", 0x1002894 },
-{ "braille_dots_1358", 0x1002895 },
-{ "braille_dots_2358", 0x1002896 },
-{ "braille_dots_12358", 0x1002897 },
-{ "braille_dots_458", 0x1002898 },
-{ "braille_dots_1458", 0x1002899 },
-{ "braille_dots_2458", 0x100289A },
-{ "braille_dots_12458", 0x100289B },
-{ "braille_dots_3458", 0x100289C },
-{ "braille_dots_13458", 0x100289D },
-{ "braille_dots_23458", 0x100289E },
-{ "braille_dots_123458", 0x100289F },
-{ "braille_dots_68", 0x10028A0 },
-{ "braille_dots_168", 0x10028A1 },
-{ "braille_dots_268", 0x10028A2 },
-{ "braille_dots_1268", 0x10028A3 },
-{ "braille_dots_368", 0x10028A4 },
-{ "braille_dots_1368", 0x10028A5 },
-{ "braille_dots_2368", 0x10028A6 },
-{ "braille_dots_12368", 0x10028A7 },
-{ "braille_dots_468", 0x10028A8 },
-{ "braille_dots_1468", 0x10028A9 },
-{ "braille_dots_2468", 0x10028AA },
-{ "braille_dots_12468", 0x10028AB },
-{ "braille_dots_3468", 0x10028AC },
-{ "braille_dots_13468", 0x10028AD },
-{ "braille_dots_23468", 0x10028AE },
-{ "braille_dots_123468", 0x10028AF },
-{ "braille_dots_568", 0x10028B0 },
-{ "braille_dots_1568", 0x10028B1 },
-{ "braille_dots_2568", 0x10028B2 },
-{ "braille_dots_12568", 0x10028B3 },
-{ "braille_dots_3568", 0x10028B4 },
-{ "braille_dots_13568", 0x10028B5 },
-{ "braille_dots_23568", 0x10028B6 },
-{ "braille_dots_123568", 0x10028B7 },
-{ "braille_dots_4568", 0x10028B8 },
-{ "braille_dots_14568", 0x10028B9 },
-{ "braille_dots_24568", 0x10028BA },
-{ "braille_dots_124568", 0x10028BB },
-{ "braille_dots_34568", 0x10028BC },
-{ "braille_dots_134568", 0x10028BD },
-{ "braille_dots_234568", 0x10028BE },
-{ "braille_dots_1234568", 0x10028BF },
-{ "braille_dots_78", 0x10028C0 },
-{ "braille_dots_178", 0x10028C1 },
-{ "braille_dots_278", 0x10028C2 },
-{ "braille_dots_1278", 0x10028C3 },
-{ "braille_dots_378", 0x10028C4 },
-{ "braille_dots_1378", 0x10028C5 },
-{ "braille_dots_2378", 0x10028C6 },
-{ "braille_dots_12378", 0x10028C7 },
-{ "braille_dots_478", 0x10028C8 },
-{ "braille_dots_1478", 0x10028C9 },
-{ "braille_dots_2478", 0x10028CA },
-{ "braille_dots_12478", 0x10028CB },
-{ "braille_dots_3478", 0x10028CC },
-{ "braille_dots_13478", 0x10028CD },
-{ "braille_dots_23478", 0x10028CE },
-{ "braille_dots_123478", 0x10028CF },
-{ "braille_dots_578", 0x10028D0 },
-{ "braille_dots_1578", 0x10028D1 },
-{ "braille_dots_2578", 0x10028D2 },
-{ "braille_dots_12578", 0x10028D3 },
-{ "braille_dots_3578", 0x10028D4 },
-{ "braille_dots_13578", 0x10028D5 },
-{ "braille_dots_23578", 0x10028D6 },
-{ "braille_dots_123578", 0x10028D7 },
-{ "braille_dots_4578", 0x10028D8 },
-{ "braille_dots_14578", 0x10028D9 },
-{ "braille_dots_24578", 0x10028DA },
-{ "braille_dots_124578", 0x10028DB },
-{ "braille_dots_34578", 0x10028DC },
-{ "braille_dots_134578", 0x10028DD },
-{ "braille_dots_234578", 0x10028DE },
-{ "braille_dots_1234578", 0x10028DF },
-{ "braille_dots_678", 0x10028E0 },
-{ "braille_dots_1678", 0x10028E1 },
-{ "braille_dots_2678", 0x10028E2 },
-{ "braille_dots_12678", 0x10028E3 },
-{ "braille_dots_3678", 0x10028E4 },
-{ "braille_dots_13678", 0x10028E5 },
-{ "braille_dots_23678", 0x10028E6 },
-{ "braille_dots_123678", 0x10028E7 },
-{ "braille_dots_4678", 0x10028E8 },
-{ "braille_dots_14678", 0x10028E9 },
-{ "braille_dots_24678", 0x10028EA },
-{ "braille_dots_124678", 0x10028EB },
-{ "braille_dots_34678", 0x10028EC },
-{ "braille_dots_134678", 0x10028ED },
-{ "braille_dots_234678", 0x10028EE },
-{ "braille_dots_1234678", 0x10028EF },
-{ "braille_dots_5678", 0x10028F0 },
-{ "braille_dots_15678", 0x10028F1 },
-{ "braille_dots_25678", 0x10028F2 },
-{ "braille_dots_125678", 0x10028F3 },
-{ "braille_dots_35678", 0x10028F4 },
-{ "braille_dots_135678", 0x10028F5 },
-{ "braille_dots_235678", 0x10028F6 },
-{ "braille_dots_1235678", 0x10028F7 },
-{ "braille_dots_45678", 0x10028F8 },
-{ "braille_dots_145678", 0x10028F9 },
-{ "braille_dots_245678", 0x10028FA },
-{ "braille_dots_1245678", 0x10028FB },
-{ "braille_dots_345678", 0x10028FC },
-{ "braille_dots_1345678", 0x10028FD },
-{ "braille_dots_2345678", 0x10028FE },
-{ "braille_dots_12345678", 0x10028FF },
-{ "Sinh_ng", 0x1000D82 },
-{ "Sinh_h2", 0x1000D83 },
-{ "Sinh_a", 0x1000D85 },
-{ "Sinh_aa", 0x1000D86 },
-{ "Sinh_ae", 0x1000D87 },
-{ "Sinh_aee", 0x1000D88 },
-{ "Sinh_i", 0x1000D89 },
-{ "Sinh_ii", 0x1000D8A },
-{ "Sinh_u", 0x1000D8B },
-{ "Sinh_uu", 0x1000D8C },
-{ "Sinh_ri", 0x1000D8D },
-{ "Sinh_rii", 0x1000D8E },
-{ "Sinh_lu", 0x1000D8F },
-{ "Sinh_luu", 0x1000D90 },
-{ "Sinh_e", 0x1000D91 },
-{ "Sinh_ee", 0x1000D92 },
-{ "Sinh_ai", 0x1000D93 },
-{ "Sinh_o", 0x1000D94 },
-{ "Sinh_oo", 0x1000D95 },
-{ "Sinh_au", 0x1000D96 },
-{ "Sinh_ka", 0x1000D9A },
-{ "Sinh_kha", 0x1000D9B },
-{ "Sinh_ga", 0x1000D9C },
-{ "Sinh_gha", 0x1000D9D },
-{ "Sinh_ng2", 0x1000D9E },
-{ "Sinh_nga", 0x1000D9F },
-{ "Sinh_ca", 0x1000DA0 },
-{ "Sinh_cha", 0x1000DA1 },
-{ "Sinh_ja", 0x1000DA2 },
-{ "Sinh_jha", 0x1000DA3 },
-{ "Sinh_nya", 0x1000DA4 },
-{ "Sinh_jnya", 0x1000DA5 },
-{ "Sinh_nja", 0x1000DA6 },
-{ "Sinh_tta", 0x1000DA7 },
-{ "Sinh_ttha", 0x1000DA8 },
-{ "Sinh_dda", 0x1000DA9 },
-{ "Sinh_ddha", 0x1000DAA },
-{ "Sinh_nna", 0x1000DAB },
-{ "Sinh_ndda", 0x1000DAC },
-{ "Sinh_tha", 0x1000DAD },
-{ "Sinh_thha", 0x1000DAE },
-{ "Sinh_dha", 0x1000DAF },
-{ "Sinh_dhha", 0x1000DB0 },
-{ "Sinh_na", 0x1000DB1 },
-{ "Sinh_ndha", 0x1000DB3 },
-{ "Sinh_pa", 0x1000DB4 },
-{ "Sinh_pha", 0x1000DB5 },
-{ "Sinh_ba", 0x1000DB6 },
-{ "Sinh_bha", 0x1000DB7 },
-{ "Sinh_ma", 0x1000DB8 },
-{ "Sinh_mba", 0x1000DB9 },
-{ "Sinh_ya", 0x1000DBA },
-{ "Sinh_ra", 0x1000DBB },
-{ "Sinh_la", 0x1000DBD },
-{ "Sinh_va", 0x1000DC0 },
-{ "Sinh_sha", 0x1000DC1 },
-{ "Sinh_ssha", 0x1000DC2 },
-{ "Sinh_sa", 0x1000DC3 },
-{ "Sinh_ha", 0x1000DC4 },
-{ "Sinh_lla", 0x1000DC5 },
-{ "Sinh_fa", 0x1000DC6 },
-{ "Sinh_al", 0x1000DCA },
-{ "Sinh_aa2", 0x1000DCF },
-{ "Sinh_ae2", 0x1000DD0 },
-{ "Sinh_aee2", 0x1000DD1 },
-{ "Sinh_i2", 0x1000DD2 },
-{ "Sinh_ii2", 0x1000DD3 },
-{ "Sinh_u2", 0x1000DD4 },
-{ "Sinh_uu2", 0x1000DD6 },
-{ "Sinh_ru2", 0x1000DD8 },
-{ "Sinh_e2", 0x1000DD9 },
-{ "Sinh_ee2", 0x1000DDA },
-{ "Sinh_ai2", 0x1000DDB },
-{ "Sinh_o2", 0x1000DDC },
-{ "Sinh_oo2", 0x1000DDD },
-{ "Sinh_au2", 0x1000DDE },
-{ "Sinh_lu2", 0x1000DDF },
-{ "Sinh_ruu2", 0x1000DF2 },
-{ "Sinh_luu2", 0x1000DF3 },
-{ "Sinh_kunddaliya", 0x1000DF4 },
{ "XF86ModeLock", 0x1008FF01 },
{ "XF86MonBrightnessUp", 0x1008FF02 },
{ "XF86MonBrightnessDown", 0x1008FF03 },
diff --git a/generic/nanosvg.h b/generic/nanosvg.h
index 3f3e38e..5142bf3 100644
--- a/generic/nanosvg.h
+++ b/generic/nanosvg.h
@@ -1547,8 +1547,8 @@ static int nsvg__isCoordinate(const char* s)
/* optional sign */
if (*s == '-' || *s == '+')
s++;
- /* must have at least one digit */
- return nsvg__isdigit(*s);
+ /* must have at least one digit, or start by a dot */
+ return (nsvg__isdigit(*s) || *s == '.');
}
static NSVGcoordinate nsvg__parseCoordinateRaw(const char* str)
diff --git a/generic/tkBind.c b/generic/tkBind.c
index 3416f52..f3cc0b2 100644
--- a/generic/tkBind.c
+++ b/generic/tkBind.c
@@ -432,7 +432,9 @@ static const ModInfo modArray[] = {
{"Shift", ShiftMask, 0},
{"Lock", LockMask, 0},
{"Meta", META_MASK, 0},
+#ifndef TK_NO_DEPRECATED
{"M", META_MASK, 0},
+#endif
{"Alt", ALT_MASK, 0},
{"Extended", EXTENDED_MASK, 0},
{"B1", Button1Mask, 0},
@@ -504,10 +506,14 @@ typedef struct {
static const EventInfo eventArray[] = {
{"Key", KeyPress, KeyPressMask},
+#ifndef TK_NO_DEPRECATED
{"KeyPress", KeyPress, KeyPressMask},
+#endif
{"KeyRelease", KeyRelease, KeyPressMask|KeyReleaseMask},
{"Button", ButtonPress, ButtonPressMask},
+#ifndef TK_NO_DEPRECATED
{"ButtonPress", ButtonPress, ButtonPressMask},
+#endif
{"ButtonRelease", ButtonRelease, ButtonPressMask|ButtonReleaseMask},
{"Motion", MotionNotify, ButtonPressMask|PointerMotionMask},
{"Enter", EnterNotify, EnterWindowMask},
@@ -5250,14 +5256,48 @@ TkStringToKeysym(
const char *name) /* Name of a keysym. */
{
#ifdef REDO_KEYSYM_LOOKUP
- Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&keySymTable, name);
-
+ Tcl_HashEntry *hPtr;
+#endif /* REDO_KEYSYM_LOOKUP */
+ int keysym;
+
+ size_t len = TkUtfToUniChar(name, &keysym);
+ if (name[len] == '\0') {
+ if (!Tcl_UniCharIsPrint(keysym)) {
+ /* This form not supported */
+ } else if ((unsigned)(keysym - 0x21) <= 0x5D) {
+ return keysym;
+ } else if ((unsigned)(keysym - 0xA1) <= 0x5E) {
+ return keysym;
+ } else if (keysym == 0x20AC) {
+ return 0x20AC;
+ } else {
+ return keysym + 0x1000000;
+ }
+ }
+#ifdef REDO_KEYSYM_LOOKUP
+ if ((name[0] == 'U') && ((unsigned)(name[1] - '0') <= 9)) {
+ char *p = (char *)name + 1;
+ keysym = strtol(p, &p, 16);
+ if ((p >= name + 5) && (p <= name + 9) && !*p && (keysym >= 0x20)
+ && ((unsigned)(keysym - 0x7F) > 0x20)) {
+ if ((unsigned)(keysym - 0x21) <= 0x5D) {
+ return keysym;
+ } else if ((unsigned)(keysym - 0xA1) <= 0x5E) {
+ return keysym;
+ } else if (keysym == 0x20AC) {
+ return keysym;
+ }
+ return keysym + 0x1000000;
+ }
+ }
+#endif
+#ifdef REDO_KEYSYM_LOOKUP
+ hPtr = Tcl_FindHashEntry(&keySymTable, name);
if (hPtr) {
return (KeySym) Tcl_GetHashValue(hPtr);
}
- assert(name);
- if (strlen(name) == 1u) {
- KeySym keysym = (KeySym) (unsigned char) name[0];
+ if (((unsigned)(name[0]-1) < 0x7F) && !name[1]) {
+ keysym = (unsigned char) name[0];
if (TkKeysymToString(keysym)) {
return keysym;
@@ -5290,16 +5330,37 @@ TkKeysymToString(
KeySym keysym)
{
#ifdef REDO_KEYSYM_LOOKUP
- Tcl_HashEntry *hPtr = Tcl_FindHashEntry(&nameTable, (char *)keysym);
+ Tcl_HashEntry *hPtr;
+#endif
+
+ if ((unsigned)(keysym - 0x21) <= 0x5D) {
+ keysym += 0x1000000;
+ } else if ((unsigned)(keysym - 0xA1) <= 0x5E) {
+ keysym += 0x1000000;
+ } else if (keysym == 0x20AC) {
+ keysym += 0x1000000;
+ }
+ if ((keysym >= 0x1000020) && (keysym <= 0x110FFFF)
+ && ((unsigned)(keysym - 0x100007F) > 0x20)) {
+ char buf[10];
+ if (Tcl_UniCharIsPrint(keysym-0x1000000)) {
+ buf[TkUniCharToUtf(keysym - 0x1000000, buf)] = '\0';
+ } else if (keysym >= 0x1010000) {
+ sprintf(buf, "U%08X", (int)(keysym - 0x1000000));
+ } else {
+ sprintf(buf, "U%04X", (int)(keysym - 0x1000000));
+ }
+ return Tk_GetUid(buf);
+ }
+
+#ifdef REDO_KEYSYM_LOOKUP
+ hPtr = Tcl_FindHashEntry(&nameTable, INT2PTR(keysym));
if (hPtr) {
return (const char *)Tcl_GetHashValue(hPtr);
}
#endif /* REDO_KEYSYM_LOOKUP */
- if (keysym > (KeySym)0x1008FFFF) {
- return NULL;
- }
return XKeysymToString(keysym);
}
diff --git a/generic/tkGet.c b/generic/tkGet.c
index f2aed2c..989584e 100644
--- a/generic/tkGet.c
+++ b/generic/tkGet.c
@@ -694,6 +694,11 @@ TkGetDoublePixels(
char *end;
double d;
+ if (!tkwin) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf("bad screen"));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "FRACTIONAL_PIXELS", NULL);
+ return TCL_ERROR;
+ }
d = strtod((char *) string, &end);
if (end == string) {
goto error;
diff --git a/generic/ttk/ttkButton.c b/generic/ttk/ttkButton.c
index e179a7f..0b3d0b1 100644
--- a/generic/ttk/ttkButton.c
+++ b/generic/ttk/ttkButton.c
@@ -273,11 +273,12 @@ static const Tk_OptionSpec LabelOptionSpecs[] =
};
static const Ttk_Ensemble LabelCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
- { "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
@@ -378,12 +379,13 @@ ButtonInvokeCommand(
}
static const Ttk_Ensemble ButtonCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
- { "invoke", ButtonInvokeCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
+ { "invoke", ButtonInvokeCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
- { "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
@@ -585,12 +587,13 @@ CheckbuttonInvokeCommand(
}
static const Ttk_Ensemble CheckbuttonCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
- { "invoke", CheckbuttonInvokeCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
+ { "invoke", CheckbuttonInvokeCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
- { "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
/* MISSING: select, deselect, toggle */
{ 0,0,0 }
};
@@ -761,12 +764,13 @@ RadiobuttonInvokeCommand(
}
static const Ttk_Ensemble RadiobuttonCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
- { "invoke", RadiobuttonInvokeCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
+ { "invoke", RadiobuttonInvokeCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
- { "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
/* MISSING: select, deselect */
{ 0,0,0 }
};
@@ -835,6 +839,7 @@ static const Ttk_Ensemble MenubuttonCommands[] = {
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkEntry.c b/generic/ttk/ttkEntry.c
index 946b7fc..65b0935 100644
--- a/generic/ttk/ttkEntry.c
+++ b/generic/ttk/ttkEntry.c
@@ -1745,6 +1745,7 @@ static const Ttk_Ensemble EntryCommands[] = {
{ "instate", TtkWidgetInstateCommand,0 },
{ "selection", 0,EntrySelectionCommands },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ "validate", EntryValidateCommand,0 },
{ "xview", EntryXViewCommand,0 },
{ 0,0,0 }
@@ -1913,8 +1914,9 @@ static const Ttk_Ensemble ComboboxCommands[] = {
{ "insert", EntryInsertCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "selection", 0,EntrySelectionCommands },
- { "state", TtkWidgetStateCommand,0 },
{ "set", EntrySetCommand,0 },
+ { "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ "validate", EntryValidateCommand,0 },
{ "xview", EntryXViewCommand,0 },
{ 0,0,0 }
@@ -2025,8 +2027,9 @@ static const Ttk_Ensemble SpinboxCommands[] = {
{ "insert", EntryInsertCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "selection", 0,EntrySelectionCommands },
- { "state", TtkWidgetStateCommand,0 },
{ "set", EntrySetCommand,0 },
+ { "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ "validate", EntryValidateCommand,0 },
{ "xview", EntryXViewCommand,0 },
{ 0,0,0 }
diff --git a/generic/ttk/ttkFrame.c b/generic/ttk/ttkFrame.c
index d7563a0..8ae249b 100644
--- a/generic/ttk/ttkFrame.c
+++ b/generic/ttk/ttkFrame.c
@@ -48,11 +48,12 @@ static const Tk_OptionSpec FrameOptionSpecs[] = {
};
static const Ttk_Ensemble FrameCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
- { "identify", TtkWidgetIdentifyCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkNotebook.c b/generic/ttk/ttkNotebook.c
index 26eab6b..5de4e22 100644
--- a/generic/ttk/ttkNotebook.c
+++ b/generic/ttk/ttkNotebook.c
@@ -1242,8 +1242,8 @@ static int NotebookTabCommand(
*/
static const Ttk_Ensemble NotebookCommands[] = {
{ "add", NotebookAddCommand,0 },
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "forget", NotebookForgetCommand,0 },
{ "hide", NotebookHideCommand,0 },
{ "identify", NotebookIdentifyCommand,0 },
@@ -1252,6 +1252,7 @@ static const Ttk_Ensemble NotebookCommands[] = {
{ "instate", TtkWidgetInstateCommand,0 },
{ "select", NotebookSelectCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ "tab", NotebookTabCommand,0 },
{ "tabs", NotebookTabsCommand,0 },
{ 0,0,0 }
diff --git a/generic/ttk/ttkPanedwindow.c b/generic/ttk/ttkPanedwindow.c
index ae7bf11..97a1b6c 100644
--- a/generic/ttk/ttkPanedwindow.c
+++ b/generic/ttk/ttkPanedwindow.c
@@ -882,8 +882,8 @@ static int PanedSashposCommand(
static const Ttk_Ensemble PanedCommands[] = {
{ "add", PanedAddCommand,0 },
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "forget", PanedForgetCommand,0 },
{ "identify", PanedIdentifyCommand,0 },
{ "insert", PanedInsertCommand,0 },
@@ -892,6 +892,7 @@ static const Ttk_Ensemble PanedCommands[] = {
{ "panes", PanedPanesCommand,0 },
{ "sashpos", PanedSashposCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkProgress.c b/generic/ttk/ttkProgress.c
index 97109dc..9095c89 100644
--- a/generic/ttk/ttkProgress.c
+++ b/generic/ttk/ttkProgress.c
@@ -518,14 +518,15 @@ static int ProgressbarStopCommand(
}
static const Ttk_Ensemble ProgressbarCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "start", ProgressbarStartCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
{ "step", ProgressbarStepCommand,0 },
{ "stop", ProgressbarStopCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkScale.c b/generic/ttk/ttkScale.c
index 8c2999f..2913ace 100644
--- a/generic/ttk/ttkScale.c
+++ b/generic/ttk/ttkScale.c
@@ -483,14 +483,15 @@ ValueToPoint(Scale *scalePtr, double value)
}
static const Ttk_Ensemble ScaleCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
- { "state", TtkWidgetStateCommand,0 },
- { "instate", TtkWidgetInstateCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
+ { "coords", ScaleCoordsCommand,0 },
+ { "get", ScaleGetCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
+ { "instate", TtkWidgetInstateCommand,0 },
{ "set", ScaleSetCommand,0 },
- { "get", ScaleGetCommand,0 },
- { "coords", ScaleCoordsCommand,0 },
+ { "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkScrollbar.c b/generic/ttk/ttkScrollbar.c
index 4670832..a16186d 100644
--- a/generic/ttk/ttkScrollbar.c
+++ b/generic/ttk/ttkScrollbar.c
@@ -282,8 +282,8 @@ ScrollbarFractionCommand(
}
static const Ttk_Ensemble ScrollbarCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "delta", ScrollbarDeltaCommand,0 },
{ "fraction", ScrollbarFractionCommand,0 },
{ "get", ScrollbarGetCommand,0 },
@@ -291,6 +291,7 @@ static const Ttk_Ensemble ScrollbarCommands[] = {
{ "instate", TtkWidgetInstateCommand,0 },
{ "set", ScrollbarSetCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkSeparator.c b/generic/ttk/ttkSeparator.c
index e86ee5c..85fdd02 100644
--- a/generic/ttk/ttkSeparator.c
+++ b/generic/ttk/ttkSeparator.c
@@ -48,11 +48,12 @@ static Ttk_Layout SeparatorGetLayout(
* Widget commands:
*/
static const Ttk_Ensemble SeparatorCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
@@ -89,11 +90,12 @@ static const Tk_OptionSpec SizegripOptionSpecs[] = {
};
static const Ttk_Ensemble SizegripCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkSquare.c b/generic/ttk/ttkSquare.c
index ba5df57..be5512e 100644
--- a/generic/ttk/ttkSquare.c
+++ b/generic/ttk/ttkSquare.c
@@ -129,11 +129,12 @@ SquareDoLayout(void *clientData)
*/
static const Ttk_Ensemble SquareCommands[] = {
- { "configure", TtkWidgetConfigureCommand,0 },
{ "cget", TtkWidgetCgetCommand,0 },
+ { "configure", TtkWidgetConfigureCommand,0 },
{ "identify", TtkWidgetIdentifyCommand,0 },
{ "instate", TtkWidgetInstateCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ 0,0,0 }
};
diff --git a/generic/ttk/ttkTheme.c b/generic/ttk/ttkTheme.c
index eaea800..cdabe32 100644
--- a/generic/ttk/ttkTheme.c
+++ b/generic/ttk/ttkTheme.c
@@ -95,7 +95,7 @@ Tcl_Obj *Ttk_StyleMap(Ttk_Style style, const char *optionName, Ttk_State state)
/*
* Ttk_StyleDefault --
- * Look up default resource setting the in the specified style.
+ * Look up default resource setting in the specified style.
*/
Tcl_Obj *Ttk_StyleDefault(Ttk_Style style, const char *optionName)
{
@@ -1262,10 +1262,10 @@ usage:
styleName = Tcl_GetString(objv[2]);
stylePtr = Ttk_GetStyle(theme, styleName);
- if (objc == 3) { /* style default $styleName */
+ if (objc == 3) { /* style configure $styleName */
Tcl_SetObjResult(interp, HashTableToDict(&stylePtr->defaultsTable));
return TCL_OK;
- } else if (objc == 4) { /* style default $styleName -option */
+ } else if (objc == 4) { /* style configure $styleName -option */
const char *optionName = Tcl_GetString(objv[3]);
Tcl_HashEntry *entryPtr =
Tcl_FindHashEntry(&stylePtr->defaultsTable, optionName);
@@ -1315,9 +1315,7 @@ static int StyleLookupCmd(
}
style = Ttk_GetStyle(theme, Tcl_GetString(objv[2]));
- if (!style) {
- return TCL_ERROR;
- }
+
optionName = Tcl_GetString(objv[3]);
if (objc >= 5) {
@@ -1612,6 +1610,31 @@ static int StyleLayoutCmd(
return TCL_OK;
}
+/* + style theme styles ?$theme? --
+ * Return list of styles available in $theme.
+ * Use the current theme if $theme is omitted.
+ */
+static int StyleThemeStylesCmd(
+ TCL_UNUSED(ClientData), Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
+{
+ Ttk_Theme themePtr;
+
+ if (objc < 3 || objc > 4) {
+ Tcl_WrongNumArgs(interp, 3, objv, "?theme?");
+ return TCL_ERROR;
+ }
+
+ if (objc == 3) {
+ themePtr = Ttk_GetCurrentTheme(interp);
+ } else {
+ themePtr = Ttk_GetTheme(interp, Tcl_GetString(objv[3]));
+ }
+ if (!themePtr)
+ return TCL_ERROR;
+
+ return TtkEnumerateHashTable(interp, &themePtr->styleTable);
+}
+
/* + style theme use $theme --
* Sets the current theme to $theme
*/
@@ -1651,6 +1674,7 @@ static const Ttk_Ensemble StyleThemeEnsemble[] = {
{ "create", StyleThemeCreateCmd, 0 },
{ "names", StyleThemeNamesCmd, 0 },
{ "settings", StyleThemeSettingsCmd, 0 },
+ { "styles", StyleThemeStylesCmd, 0 },
{ "use", StyleThemeUseCmd, 0 },
{ NULL, 0, 0 }
};
diff --git a/generic/ttk/ttkTreeview.c b/generic/ttk/ttkTreeview.c
index 4ea4c17..06bd2b8 100644
--- a/generic/ttk/ttkTreeview.c
+++ b/generic/ttk/ttkTreeview.c
@@ -3295,8 +3295,8 @@ static const Ttk_Ensemble TreeviewCommands[] = {
{ "heading", TreeviewHeadingCommand,0 },
{ "identify", TreeviewIdentifyCommand,0 },
{ "index", TreeviewIndexCommand,0 },
- { "instate", TtkWidgetInstateCommand,0 },
{ "insert", TreeviewInsertCommand,0 },
+ { "instate", TtkWidgetInstateCommand,0 },
{ "item", TreeviewItemCommand,0 },
{ "move", TreeviewMoveCommand,0 },
{ "next", TreeviewNextCommand,0 },
@@ -3306,6 +3306,7 @@ static const Ttk_Ensemble TreeviewCommands[] = {
{ "selection" , TreeviewSelectionCommand,0 },
{ "set", TreeviewSetCommand,0 },
{ "state", TtkWidgetStateCommand,0 },
+ { "style", TtkWidgetStyleCommand,0 },
{ "tag", 0,TreeviewTagCommands },
{ "xview", TreeviewXViewCommand,0 },
{ "yview", TreeviewYViewCommand,0 },
diff --git a/generic/ttk/ttkWidget.c b/generic/ttk/ttkWidget.c
index 6726e17..1a5b158 100644
--- a/generic/ttk/ttkWidget.c
+++ b/generic/ttk/ttkWidget.c
@@ -5,7 +5,7 @@
*/
#include "tkInt.h"
-#include "ttkTheme.h"
+#include "ttkThemeInt.h"
#include "ttkWidget.h"
#ifdef MAC_OSX_TK
@@ -797,4 +797,24 @@ int TtkWidgetIdentifyCommand(
return TCL_OK;
}
+/* $w style
+ * Return the style currently applied to the widget.
+ */
+
+int TtkWidgetStyleCommand(
+ void *recordPtr, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
+{
+ WidgetCore *corePtr = (WidgetCore *)recordPtr;
+
+ if (objc != 2) {
+ Tcl_WrongNumArgs(interp, 2, objv, "");
+ return TCL_ERROR;
+ }
+
+ Tcl_SetObjResult(interp, Tcl_NewStringObj(
+ Ttk_StyleName(Ttk_LayoutStyle(corePtr->layout)), -1));
+
+ return TCL_OK;
+}
+
/*EOF*/
diff --git a/generic/ttk/ttkWidget.h b/generic/ttk/ttkWidget.h
index 2eeab4e..9321cb0 100644
--- a/generic/ttk/ttkWidget.h
+++ b/generic/ttk/ttkWidget.h
@@ -89,15 +89,17 @@ MODULE_SCOPE int TtkCoreConfigure(Tcl_Interp*, void *, int mask);
/* Common widget commands:
*/
+MODULE_SCOPE int TtkWidgetCgetCommand(
+ void *,Tcl_Interp *, int, Tcl_Obj*const[]);
MODULE_SCOPE int TtkWidgetConfigureCommand(
void *,Tcl_Interp *, int, Tcl_Obj*const[]);
-MODULE_SCOPE int TtkWidgetCgetCommand(
+MODULE_SCOPE int TtkWidgetIdentifyCommand(
void *,Tcl_Interp *, int, Tcl_Obj*const[]);
MODULE_SCOPE int TtkWidgetInstateCommand(
void *,Tcl_Interp *, int, Tcl_Obj*const[]);
MODULE_SCOPE int TtkWidgetStateCommand(
void *,Tcl_Interp *, int, Tcl_Obj*const[]);
-MODULE_SCOPE int TtkWidgetIdentifyCommand(
+MODULE_SCOPE int TtkWidgetStyleCommand(
void *,Tcl_Interp *, int, Tcl_Obj*const[]);
/* Widget constructor:
diff --git a/library/demos/entry3.tcl b/library/demos/entry3.tcl
index acde1b3..f229de6 100644
--- a/library/demos/entry3.tcl
+++ b/library/demos/entry3.tcl
@@ -64,13 +64,13 @@ proc focusAndFlash {W fg bg {count 9}} {
labelframe $w.l1 -text "Integer Entry"
# Alternatively try using {string is digit} for arbitrary length numbers,
# and not just 32-bit ones.
-entry $w.l1.e -validate focus -vcmd {string is integer %P}
+entry $w.l1.e -validate focus -validatecommand {string is integer %P}
$w.l1.e configure -invalidcommand \
"focusAndFlash %W [$w.l1.e cget -fg] [$w.l1.e cget -bg]"
pack $w.l1.e -fill x -expand 1 -padx 1m -pady 1m
labelframe $w.l2 -text "Length-Constrained Entry"
-entry $w.l2.e -validate key -invcmd bell -vcmd {expr {[string length %P]<10}}
+entry $w.l2.e -validate key -invcmd bell -validatecommand {expr {[string length %P]<10}}
pack $w.l2.e -fill x -expand 1 -padx 1m -pady 1m
### PHONE NUMBER ENTRY ###
@@ -161,7 +161,7 @@ proc phoneSkipRight {W {add 0}} {
labelframe $w.l3 -text "US Phone-Number Entry"
entry $w.l3.e -validate key -invcmd bell -textvariable entry3content \
- -vcmd {validatePhoneChange %W %v %i %S}
+ -validatecommand {validatePhoneChange %W %v %i %S}
# Click to focus goes to the first editable character...
bind $w.l3.e <FocusIn> {
if {"%d" ne "NotifyAncestor"} {
@@ -174,7 +174,7 @@ bind $w.l3.e <<NextChar>> {phoneSkipRight %W}
pack $w.l3.e -fill x -expand 1 -padx 1m -pady 1m
labelframe $w.l4 -text "Password Entry"
-entry $w.l4.e -validate key -show "*" -vcmd {expr {[string length %P]<=8}}
+entry $w.l4.e -validate key -show "*" -validatecommand {expr {[string length %P]<=8}}
pack $w.l4.e -fill x -expand 1 -padx 1m -pady 1m
lower [frame $w.mid]
diff --git a/library/demos/spin.tcl b/library/demos/spin.tcl
index d897e6d..72f3aa4 100644
--- a/library/demos/spin.tcl
+++ b/library/demos/spin.tcl
@@ -38,7 +38,7 @@ set australianCities {
}
spinbox $w.s1 -from 1 -to 10 -width 10 -validate key \
- -vcmd {string is integer %P}
+ -validatecommand {string is integer %P}
spinbox $w.s2 -from 0 -to 3 -increment .5 -format %05.2f -width 10
spinbox $w.s3 -values $australianCities -width 10
diff --git a/library/tk.tcl b/library/tk.tcl
index 86956de..44fe095 100644
--- a/library/tk.tcl
+++ b/library/tk.tcl
@@ -379,7 +379,7 @@ switch -exact -- [tk windowingsystem] {
# On Darwin/Aqua, buttons from left to right are 1,3,2. On Darwin/X11 with recent
# XQuartz as the X server, they are 1,2,3; other X servers may differ.
- event add <<SelectAll>> <Control-slash>
+ event add <<SelectAll>> <Control-/>
event add <<SelectNone>> <Control-backslash>
event add <<NextChar>> <Right>
event add <<SelectNextChar>> <Shift-Right>
@@ -426,7 +426,7 @@ switch -exact -- [tk windowingsystem] {
event add <<Undo>> <Control-z> <Control-Lock-Z>
event add <<Redo>> <Control-y> <Control-Lock-Y>
- event add <<SelectAll>> <Control-slash> <Control-a> <Control-Lock-A>
+ event add <<SelectAll>> <Control-/> <Control-a> <Control-Lock-A>
event add <<SelectNone>> <Control-backslash>
event add <<NextChar>> <Right>
event add <<SelectNextChar>> <Shift-Right>
diff --git a/library/ttk/aquaTheme.tcl b/library/ttk/aquaTheme.tcl
index 8bba226..51c3e49 100644
--- a/library/ttk/aquaTheme.tcl
+++ b/library/ttk/aquaTheme.tcl
@@ -35,21 +35,38 @@ namespace eval ttk::theme::aqua {
ttk::style configure TMenubutton -anchor center -padding {2 0 0 2}
ttk::style configure Toolbutton -anchor center
+ # For Entry, Combobox and Spinbox widgets the selected text background
+ # is the "Highlight color" selected in preferences when the widget
+ # has focus. It is a gray color when the widget does not have focus or
+ # the window does not have focus. (The background state implies !focus
+ # so we only need to specify !focus.)
+
# Entry
- ttk::style configure TEntry \
- -foreground systemTextColor \
- -background systemTextBackgroundColor
ttk::style map TEntry \
-foreground {
disabled systemDisabledControlTextColor
} \
- -selectforeground {
- background systemTextColor
+ -selectbackground {
+ !focus systemUnemphasizedSelectedTextBackgroundColor
+ }
+
+ # Combobox:
+ ttk::style map TCombobox \
+ -foreground {
+ disabled systemDisabledControlTextColor
} \
-selectbackground {
- background systemTextBackgroundColor
+ !focus systemUnemphasizedSelectedTextBackgroundColor
}
+ # Spinbox
+ ttk::style map TSpinbox \
+ -foreground {
+ disabled systemDisabledControlTextColor
+ } \
+ -selectbackground {
+ !focus systemUnemphasizedSelectedTextBackgroundColor
+ }
# Workaround for #1100117:
# Actually, on Aqua we probably shouldn't stipple images in
@@ -67,40 +84,6 @@ namespace eval ttk::theme::aqua {
disabled systemDisabledControlTextColor
selected systemSelectedTabTextColor}
- # Combobox:
- ttk::style configure TCombobox \
- -foreground systemTextColor \
- -background systemTransparent
- ttk::style map TCombobox \
- -foreground {
- disabled systemDisabledControlTextColor
- } \
- -selectforeground {
- background systemTextColor
- } \
- -selectbackground {
- background systemTransparent
- }
-
- # Spinbox
- ttk::style configure TSpinbox \
- -foreground systemTextColor \
- -background systemTextBackgroundColor \
- -selectforeground systemSelectedTextColor \
- -selectbackground systemSelectedTextBackgroundColor
- ttk::style map TSpinbox \
- -foreground {
- disabled systemDisabledControlTextColor
- } \
- -selectforeground {
- !active systemTextColor
- } \
- -selectbackground {
- !active systemTextBackgroundColor
- !focus systemTextBackgroundColor
- focus systemSelectedTextBackgroundColor
- }
-
# Treeview:
ttk::style configure Heading \
-font TkHeadingFont \
diff --git a/library/ttk/combobox.tcl b/library/ttk/combobox.tcl
index 58df760..917efd5 100644
--- a/library/ttk/combobox.tcl
+++ b/library/ttk/combobox.tcl
@@ -186,13 +186,16 @@ proc ttk::combobox::Scroll {cb dir {factor 1.0}} {
$cb instate disabled { return }
set max [llength [$cb cget -values]]
set current [$cb current]
- set d [expr {round($dir/factor)}]
- if {$d == 0 && $dir != 0} {
- if {$dir > 0} {set d 1} else {set d -1}
+ if {$current < 0} {
+ set index 0
+ } else {
+ set d [expr {$dir/$factor}]
+ set index [expr {$current + int($d > 0 ? ceil($d) : floor($d))}]
+ if {$index >= $max} {set index [expr {$max - 1}]}
+ if {$index < 0} {set index 0}
}
- incr current $d
- if {$max != 0 && $current == $current % $max} {
- SelectEntry $cb $current
+ if {$max != 0 && $index != $current} {
+ SelectEntry $cb $index
}
}
diff --git a/library/ttk/entry.tcl b/library/ttk/entry.tcl
index 8c89435..fb49055 100644
--- a/library/ttk/entry.tcl
+++ b/library/ttk/entry.tcl
@@ -130,12 +130,8 @@ bind TEntry <Escape> {# nothing}
bind TEntry <Return> {# nothing}
bind TEntry <KP_Enter> {# nothing}
bind TEntry <Tab> {# nothing}
+bind TEntry <Command-Key> {# nothing}
-# Argh. Apparently on Windows, the NumLock modifier is interpreted
-# as a Command modifier.
-if {[tk windowingsystem] eq "aqua"} {
- bind TEntry <Command-Key> {# nothing}
-}
# Tk-on-Cocoa generates characters for these two keys. [Bug 2971663]
bind TEntry <<PrevLine>> {# nothing}
bind TEntry <<NextLine>> {# nothing}
diff --git a/library/ttk/spinbox.tcl b/library/ttk/spinbox.tcl
index f580a21..9f002cd 100644
--- a/library/ttk/spinbox.tcl
+++ b/library/ttk/spinbox.tcl
@@ -23,7 +23,7 @@ bind TSpinbox <Down> { event generate %W <<Decrement>> }
bind TSpinbox <<Increment>> { ttk::spinbox::Spin %W +1 }
bind TSpinbox <<Decrement>> { ttk::spinbox::Spin %W -1 }
-ttk::bindMouseWheel TSpinbox [list ttk::spinbox::MouseWheel %W]
+ttk::bindMouseWheel TSpinbox [list ttk::spinbox::Spin %W]
## Motion --
# Sets cursor.
@@ -80,13 +80,13 @@ proc ttk::spinbox::Release {w} {
## MouseWheel --
# Mousewheel callback. Turn these into <<Increment>> (-1, up)
-# or <<Decrement> (+1, down) events.
+# or <<Decrement> (+1, down) events. Not used any more.
#
-proc ttk::spinbox::MouseWheel {w dir {factor 1}} {
+proc ttk::spinbox::MouseWheel {w dir {factor 1.0}} {
if {[$w instate disabled]} { return }
if {($dir < 0) ^ ($factor < 0)} {
event generate $w <<Increment>>
- } elseif {$dir > 0} {
+ } elseif {$dir != 0} {
event generate $w <<Decrement>>
}
}
@@ -134,7 +134,7 @@ proc ttk::spinbox::Adjust {w v min max} {
# Otherwise cycle through numeric range based on
# -from, -to, and -increment.
#
-proc ttk::spinbox::Spin {w dir} {
+proc ttk::spinbox::Spin {w dir {factor -1.0}} {
variable State
if {[$w instate disabled]} { return }
@@ -146,6 +146,8 @@ proc ttk::spinbox::Spin {w dir} {
set State($w,values) [$w cget -values]
set State($w,values.length) [llength $State($w,values)]
+ set d [expr {-($dir/$factor)}]
+ set d [expr {int($d > 0 ? ceil($d) : floor($d))}]
if {$State($w,values.length) > 0} {
set value [$w get]
set current $State($w,values.index)
@@ -153,13 +155,13 @@ proc ttk::spinbox::Spin {w dir} {
set current [lsearch -exact $State($w,values) $value]
if {$current < 0} {set current -1}
}
- set State($w,values.index) [Adjust $w [expr {$current + $dir}] 0 \
+ set State($w,values.index) [Adjust $w [expr {$current + $d}] 0 \
[expr {$State($w,values.length) - 1}]]
set State($w,values.last) [lindex $State($w,values) $State($w,values.index)]
$w set $State($w,values.last)
} else {
if {[catch {
- set v [expr {[scan [$w get] %f] + $dir * [$w cget -increment]}]
+ set v [expr {[scan [$w get] %f] + $d * [$w cget -increment]}]
}]} {
set v [$w cget -from]
}
diff --git a/library/ttk/utils.tcl b/library/ttk/utils.tcl
index 4b925f4..30ff6f0 100644
--- a/library/ttk/utils.tcl
+++ b/library/ttk/utils.tcl
@@ -280,8 +280,8 @@ proc ttk::copyBindings {from to} {
## ttk::bindMouseWheel $bindtag $command...
# Adds basic mousewheel support to $bindtag.
-# $command will be passed one additional argument
-# specifying the mousewheel direction (-1: up, +1: down).
+# $command will be passed two additional arguments
+# specifying the mousewheel change and a factor.
#
proc ttk::bindMouseWheel {bindtag callback} {
@@ -298,12 +298,12 @@ proc ttk::bindMouseWheel {bindtag callback} {
#
bind TtkScrollable <MouseWheel> \
- { tk::MouseWheel %W y %D }
+ { tk::MouseWheel %W y %D -30.0 }
bind TtkScrollable <Option-MouseWheel> \
- { tk::MouseWheel %W y %D -12.0 }
+ { tk::MouseWheel %W y %D -3.0 }
bind TtkScrollable <Shift-MouseWheel> \
- { tk::MouseWheel %W x %D }
+ { tk::MouseWheel %W x %D -30.0 }
bind TtkScrollable <Shift-Option-MouseWheel> \
- { tk::MouseWheel %W x %D -12.0 }
+ { tk::MouseWheel %W x %D -3.0 }
#*EOF*
diff --git a/macosx/GNUmakefile b/macosx/GNUmakefile
index 2451e5c..cf76ac0 100644
--- a/macosx/GNUmakefile
+++ b/macosx/GNUmakefile
@@ -100,7 +100,7 @@ space := ${empty} ${empty}
objdir = $(subst ${space},\ ,${OBJ_DIR})
develop_make_args := BUILD_STYLE=Development CONFIGURE_ARGS=--enable-symbols
-deploy_make_args := BUILD_STYLE=Deployment INSTALL_TARGET=install-strip
+deploy_make_args := BUILD_STYLE=Deployment INSTALL_TARGET=install
embedded_make_args := EMBEDDED_BUILD=1
install_make_args := INSTALL_BUILD=1
diff --git a/macosx/tkMacOSXColor.c b/macosx/tkMacOSXColor.c
index acbfa0e..0ab4f97 100644
--- a/macosx/tkMacOSXColor.c
+++ b/macosx/tkMacOSXColor.c
@@ -282,6 +282,7 @@ GetRGBA(
if (!sRGB) {
sRGB = [NSColorSpace sRGBColorSpace];
}
+
switch (entry->type) {
case rgbColor:
rgba[0] = ((pixel >> 16) & 0xff) / 255.0;
@@ -323,6 +324,8 @@ GetRGBA(
int OSVersion = [NSApp macOSVersion];
if (OSVersion > 100600 && OSVersion < 110000) {
color = [[NSColor whiteColor] colorUsingColorSpace:sRGB];
+ } else {
+ color = [[NSColor textColor] colorUsingColorSpace:sRGB];
}
} else {
color = [[NSColor valueForKey:entry->selector] colorUsingColorSpace:sRGB];
@@ -428,22 +431,21 @@ TkMacOSXInDarkMode(Tk_Window tkwin)
* Sets the components of a CGColorRef from an XColor pixel value. The
* pixel value is used to look up the color in the system color table, and
* then SetCGColorComponents is called with the table entry and the pixel
- * value.
+ * value. The parameter macColor should be a pointer to a CGColorRef.
*
* Results:
* Returns false if the color is not found, true otherwise.
*
* Side effects:
- * The variable macColor is set to a new CGColorRef, the caller is
- * responsible for releasing it!
+ * The CGColorRef referenced by the variable macColor may be modified.
*
*----------------------------------------------------------------------
*/
int
TkSetMacColor(
- unsigned long pixel, /* Pixel value to convert. */
- void *macColor) /* CGColorRef to modify. */
+ unsigned long pixel, /* Pixel value to convert. */
+ void *macColor) /* CGColorRef to modify. */
{
CGColorRef *color = (CGColorRef*)macColor;
SystemColorDatum *entry = GetEntryFromPixel(pixel);
@@ -458,118 +460,6 @@ TkSetMacColor(
/*
*----------------------------------------------------------------------
*
- * TkpInitGCCache, TkpFreeGCCache, CopyCachedColor, SetCachedColor --
- *
- * Maintain a per-GC cache of previously converted CGColorRefs
- *
- * Results:
- * None resp. retained CGColorRef for CopyCachedColor()
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-void
-TkpInitGCCache(
- GC gc)
-{
- bzero(TkpGetGCCache(gc), sizeof(TkpGCCache));
-}
-
-void
-TkpFreeGCCache(
- GC gc)
-{
- TkpGCCache *gcCache = TkpGetGCCache(gc);
-
- if (gcCache->cachedForegroundColor) {
- CFRelease(gcCache->cachedForegroundColor);
- }
- if (gcCache->cachedBackgroundColor) {
- CFRelease(gcCache->cachedBackgroundColor);
- }
-}
-
-static CGColorRef
-CopyCachedColor(
- GC gc,
- unsigned long pixel)
-{
- TkpGCCache *gcCache = TkpGetGCCache(gc);
- CGColorRef cgColor = NULL;
-
- if (gcCache) {
- if (gcCache->cachedForeground == pixel) {
- cgColor = gcCache->cachedForegroundColor;
- } else if (gcCache->cachedBackground == pixel) {
- cgColor = gcCache->cachedBackgroundColor;
- }
- if (cgColor) {
- CFRetain(cgColor);
- }
- }
- return cgColor;
-}
-
-static void
-SetCachedColor(
- GC gc,
- unsigned long pixel,
- CGColorRef cgColor)
-{
- TkpGCCache *gcCache = TkpGetGCCache(gc);
-
- if (gcCache && cgColor) {
- if (gc->foreground == pixel) {
- if (gcCache->cachedForegroundColor) {
- CFRelease(gcCache->cachedForegroundColor);
- }
- gcCache->cachedForegroundColor = (CGColorRef) CFRetain(cgColor);
- gcCache->cachedForeground = pixel;
- } else if (gc->background == pixel) {
- if (gcCache->cachedBackgroundColor) {
- CFRelease(gcCache->cachedBackgroundColor);
- }
- gcCache->cachedBackgroundColor = (CGColorRef) CFRetain(cgColor);
- gcCache->cachedBackground = pixel;
- }
- }
-}
-
-/*
- *----------------------------------------------------------------------
- *
- * TkMacOSXCreateCGColor --
- *
- * Creates a CGColorRef from a X style pixel value.
- *
- * Results:
- * Returns NULL if not a real pixel, CGColorRef otherwise.
- *
- * Side effects:
- * None
- *
- *----------------------------------------------------------------------
- */
-
-CGColorRef
-TkMacOSXCreateCGColor(
- GC gc,
- unsigned long pixel) /* Pixel value to convert. */
-{
- CGColorRef cgColor = CopyCachedColor(gc, pixel);
-
- if (!cgColor && TkSetMacColor(pixel, &cgColor)) {
- SetCachedColor(gc, pixel, cgColor);
- }
- return cgColor;
-}
-
-/*
- *----------------------------------------------------------------------
- *
* TkMacOSXGetNSColor --
*
* Creates an autoreleased NSColor from a X style pixel value.
@@ -586,22 +476,16 @@ TkMacOSXCreateCGColor(
NSColor*
TkMacOSXGetNSColor(
- GC gc,
+ TCL_UNUSED(GC),
unsigned long pixel) /* Pixel value to convert. */
{
- CGColorRef cgColor = TkMacOSXCreateCGColor(gc, pixel);
+ CGColorRef cgColor;
NSColor *nsColor = nil;
- if (cgColor) {
- NSColorSpace *colorSpace = [[NSColorSpace alloc]
- initWithCGColorSpace:CGColorGetColorSpace(cgColor)];
-
- nsColor = [NSColor colorWithColorSpace:colorSpace
- components:CGColorGetComponents(cgColor)
- count:CGColorGetNumberOfComponents(cgColor)];
- [colorSpace release];
- CFRelease(cgColor);
- }
+ TkSetMacColor(pixel, &cgColor);
+ nsColor = [NSColor colorWithColorSpace:sRGB
+ components:CGColorGetComponents(cgColor)
+ count:CGColorGetNumberOfComponents(cgColor)];
return nsColor;
}
@@ -625,7 +509,7 @@ TkMacOSXGetNSColor(
void
TkMacOSXSetColorInContext(
- GC gc,
+ TCL_UNUSED(GC),
unsigned long pixel,
CGContextRef context)
{
@@ -644,9 +528,7 @@ TkMacOSXSetColorInContext(
}
break;
default:
- if (SetCGColorComponents(entry, pixel, &cgColor)){
- SetCachedColor(gc, pixel, cgColor);
- }
+ SetCGColorComponents(entry, pixel, &cgColor);
break;
}
}
diff --git a/macosx/tkMacOSXColor.h b/macosx/tkMacOSXColor.h
index 7449095..a030589 100644
--- a/macosx/tkMacOSXColor.h
+++ b/macosx/tkMacOSXColor.h
@@ -184,6 +184,7 @@ static SystemColorDatum systemColorData[] = {
{"LinkColor", semantic, 0, "blueColor", 0, NULL },
{"PlaceholderTextColor", semantic, 0, "grayColor", 0, NULL },
{"SeparatorColor", semantic, 0, "grayColor", 0, NULL },
+{"UnemphasizedSelectedTextBackgroundColor", semantic, 0, "grayColor", 0, NULL },
{NULL, 0, 0, NULL, 0, NULL }
};
diff --git a/macosx/tkMacOSXDefault.h b/macosx/tkMacOSXDefault.h
index 8a6546f..0dc9db9 100644
--- a/macosx/tkMacOSXDefault.h
+++ b/macosx/tkMacOSXDefault.h
@@ -42,7 +42,7 @@
#define ACTIVE_FG "systemTextColor"
#define SELECT_BG "systemSelectedTextBackgroundColor"
#define SELECT_FG "systemSelectedTextColor"
-#define INACTIVE_SELECT_BG "systemSelectedTextBackgroundColor"
+#define INACTIVE_SELECT_BG "systemUnemphasizedSelectedTextBackgroundColor"
#define TROUGH "#c3c3c3"
#define INDICATOR "#b03060"
#define DISABLED "systemDisabledControlTextColor"
@@ -88,19 +88,9 @@
#define DEF_BUTTON_ON_VALUE "1"
#define DEF_BUTTON_TRISTATE_VALUE ""
#define DEF_BUTTON_OVER_RELIEF ""
-//#if TK_MAC_BUTTON_USE_COMPATIBILITY_METRICS
-//#define DEF_BUTTON_PADX "12"
-//#define DEF_BUTTON_PADX_NOCM "1"
-//#else
#define DEF_BUTTON_PADX "1"
-//#endif
#define DEF_LABCHKRAD_PADX "1"
-//#if TK_MAC_BUTTON_USE_COMPATIBILITY_METRICS
-//#define DEF_BUTTON_PADY "3"
-//#define DEF_BUTTON_PADY_NOCM "1"
-//#else
#define DEF_BUTTON_PADY "1"
-//#endif
#define DEF_LABCHKRAD_PADY "1"
#define DEF_BUTTON_RELIEF "flat"
#define DEF_LABCHKRAD_RELIEF "flat"
diff --git a/macosx/tkMacOSXFont.c b/macosx/tkMacOSXFont.c
index 6c66ed8..c062b16 100644
--- a/macosx/tkMacOSXFont.c
+++ b/macosx/tkMacOSXFont.c
@@ -1209,10 +1209,9 @@ TkpDrawAngledCharsInContext(
}
context = drawingContext.context;
- fg = TkMacOSXCreateCGColor(gc, gc->foreground);
+ TkSetMacColor(gc->foreground, &fg);
attributes = [fontPtr->nsAttributes mutableCopy];
[attributes setObject:(id)fg forKey:(id)kCTForegroundColorAttributeName];
- CFRelease(fg);
nsFont = [attributes objectForKey:NSFontAttributeName];
[nsFont setInContext:GET_NSCONTEXT(context, NO)];
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
diff --git a/macosx/tkMacOSXInt.h b/macosx/tkMacOSXInt.h
index 0380596..4271c9c 100644
--- a/macosx/tkMacOSXInt.h
+++ b/macosx/tkMacOSXInt.h
@@ -99,21 +99,6 @@ typedef struct TkWindowPrivate MacDrawable;
*/
/*
- * GC CGColorRef cache for tkMacOSXColor.c
- */
-
-typedef struct {
- unsigned long cachedForeground;
- CGColorRef cachedForegroundColor;
- unsigned long cachedBackground;
- CGColorRef cachedBackgroundColor;
-} TkpGCCache;
-
-MODULE_SCOPE TkpGCCache *TkpGetGCCache(GC gc);
-MODULE_SCOPE void TkpInitGCCache(GC gc);
-MODULE_SCOPE void TkpFreeGCCache(GC gc);
-
-/*
* Undef compatibility platform types defined above.
*/
diff --git a/macosx/tkMacOSXPrivate.h b/macosx/tkMacOSXPrivate.h
index 8149860..d61119b 100644
--- a/macosx/tkMacOSXPrivate.h
+++ b/macosx/tkMacOSXPrivate.h
@@ -270,7 +270,6 @@ MODULE_SCOPE NSImage* TkMacOSXGetNSImageFromTkImage(Display *display,
Tk_Image image, int width, int height);
MODULE_SCOPE NSImage* TkMacOSXGetNSImageFromBitmap(Display *display,
Pixmap bitmap, GC gc, int width, int height);
-MODULE_SCOPE CGColorRef TkMacOSXCreateCGColor(GC gc, unsigned long pixel);
MODULE_SCOPE NSColor* TkMacOSXGetNSColor(GC gc, unsigned long pixel);
MODULE_SCOPE NSFont* TkMacOSXNSFontForFont(Tk_Font tkfont);
MODULE_SCOPE NSDictionary* TkMacOSXNSFontAttributesForFont(Tk_Font tkfont);
diff --git a/tests/bind.test b/tests/bind.test
index b84f777..db25870 100644
--- a/tests/bind.test
+++ b/tests/bind.test
@@ -14,6 +14,7 @@ tcltest::loadTestedCommands
tk useinputmethods 0
testConstraint nodeprecated [expr {"nodeprecated" ni [tk::pkgconfig list]}]
+testConstraint needsTcl87 [package vsatisfies [package provide Tcl] 8.7]
toplevel .t -width 100 -height 50
@@ -387,13 +388,13 @@ test bind-10.2 {Tk_GetBinding procedure} -body {
test bind-11.1 {Tk_GetAllBindings procedure} -body {
frame .t.f
- foreach i "! a \\\{ ~ <Delete> <space> <<Paste>> <Tab> <Linefeed> <less> <Meta-a> <Acircumflex>" {
+ foreach i "! a \\\{ ~ <Delete> <space> <<Paste>> <Tab> <Linefeed> <Key-<> <Meta-a> <Â>" {
bind .t.f $i Test
}
lsort [bind .t.f]
} -cleanup {
destroy .t.f
-} -result {! <<Paste>> <Key-Acircumflex> <Key-Delete> <Key-Linefeed> <Key-Tab> <Key-less> <Key-space> <Meta-Key-a> a \{ ~}
+} -result "! <<Paste>> <Key-<> <Key-Delete> <Key-Linefeed> <Key-Tab> <Key-space> <Key-Â> <Meta-Key-a> a \\\{ ~"
test bind-11.2 {Tk_GetAllBindings procedure} -body {
frame .t.f
foreach i "<Double-Button-1> <Triple-Button-1> <Meta-Control-a> <Double-Alt-Enter> <Button-1>" {
@@ -439,9 +440,9 @@ test bind-13.1 {Tk_BindEvent procedure} -setup {
bind all _ {lappend x "%W %K all _"}
bind .t.f : {lappend x "%W %K .t.f :"}
- event generate .t.f <colon>
- event generate .t.f <plus>
- event generate .t.f <underscore>
+ event generate .t.f <:>
+ event generate .t.f <+>
+ event generate .t.f <_>
return $x
} -cleanup {
destroy .t.f
@@ -449,7 +450,7 @@ test bind-13.1 {Tk_BindEvent procedure} -setup {
bind Test <Key> {}
bind all _ {}
bind Test : {}
-} -result {{.t.f colon .t.f :} {.t.f colon Test :} {.t.f colon all Key} {.t.f plus Test Key} {.t.f plus all Key} {.t.f underscore Test Key} {.t.f underscore all _}}
+} -result {{.t.f : .t.f :} {.t.f : Test :} {.t.f : all Key} {.t.f + Test Key} {.t.f + all Key} {.t.f _ Test Key} {.t.f _ all _}}
test bind-13.2 {Tk_BindEvent procedure} -setup {
frame .t.f -class Test -width 150 -height 100
@@ -462,13 +463,13 @@ test bind-13.2 {Tk_BindEvent procedure} -setup {
bind all <Key> {continue; lappend x "%W %K all press any"}
bind .t.f : {lappend x "%W %K .t.f pressed colon"}
- event generate .t.f <colon>
+ event generate .t.f <:>
return $x
} -cleanup {
destroy .t.f
bind all <Key> {}
bind Test <Key> {}
-} -result {{.t.f colon .t.f pressed colon} {.t.f colon Test press any}}
+} -result {{.t.f : .t.f pressed colon} {.t.f : Test press any}}
test bind-13.3 {Tk_BindEvent procedure} -setup {
proc bgerror args {}
@@ -480,21 +481,21 @@ test bind-13.3 {Tk_BindEvent procedure} -setup {
} -body {
bind Test <Key> {lappend x "%W %K Test press any"; error Test}
bind .t.f : {lappend x "%W %K .t.f pressed colon"}
- event generate .t.f <colon>
+ event generate .t.f <:>
update
list $x $errorInfo
} -cleanup {
destroy .t.f
bind Test <Key> {}
rename bgerror {}
-} -result {{{.t.f colon .t.f pressed colon} {.t.f colon Test press any}} {Test
+} -result {{{.t.f : .t.f pressed colon} {.t.f : Test press any}} {Test
while executing
"error Test"
(command bound to event)}}
test bind-13.4 {Tk_BindEvent procedure} -setup {
proc foo {} {
set x 44
- event generate .t.f <colon>
+ event generate .t.f <:>
}
frame .t.f -class Test -width 150 -height 100
pack .t.f
@@ -509,7 +510,7 @@ test bind-13.4 {Tk_BindEvent procedure} -setup {
} -cleanup {
destroy .t.f
bind Test : {}
-} -result {{.t.f colon .t.f} {.t.f colon Test}}
+} -result {{.t.f : .t.f} {.t.f : Test}}
test bind-13.5 {Tk_BindEvent procedure} -body {
bind all <Destroy> {lappend x "%W destroyed"}
@@ -537,7 +538,7 @@ test bind-13.7 {Tk_BindEvent procedure} -setup {
bind .t.f : {lappend x "%W (.t.f binding)"}
bind Test : {lappend x "%W (Test binding)"}
bind all : {bind .t.f : {}; lappend x "%W (all binding)"}
- event generate .t.f <colon>
+ event generate .t.f <:>
return $x
} -cleanup {
bind Test : {}
@@ -554,7 +555,7 @@ test bind-13.8 {Tk_BindEvent procedure} -setup {
bind .t.f : {lappend x "%W (.t.f binding)"}
bind Test : {lappend x "%W (Test binding)"}
bind all : {destroy .t.f; lappend x "%W (all binding)"}
- event generate .t.f <colon>
+ event generate .t.f <:>
return $x
} -cleanup {
bind Test : {}
@@ -636,12 +637,12 @@ test bind-13.13 {Tk_BindEvent procedure: valid key detail} -setup {
} -body {
bind .t.f <Key> "lappend x Key%K"
bind .t.f <KeyRelease> "lappend x Release%K"
- event generate .t.f <Key> -keysym colon
- event generate .t.f <KeyRelease> -keysym colon
+ event generate .t.f <Key> -keysym :
+ event generate .t.f <KeyRelease> -keysym :
return $x
} -cleanup {
destroy .t.f
-} -result {Keycolon Releasecolon}
+} -result {Key: Release:}
test bind-13.14 {Tk_BindEvent procedure: invalid key detail} -setup {
frame .t.f -class Test -width 150 -height 100
pack .t.f
@@ -2051,7 +2052,7 @@ test bind-16.35 {ExpandPercents procedure} -constraints {
set x
} -cleanup {
destroy .t.f
-} -result {a A { } {\r} {{}} {{}} { } {\$} \\\{ {{}} {{}} \xE9}
+} -result {a A { } {\r} {{}} {{}} { } {\$} \\\{ {{}} {{}} é}
test bind-16.36 {ExpandPercents procedure} -setup {
frame .t.f -class Test -width 150 -height 100
pack .t.f
@@ -2223,6 +2224,19 @@ test bind-16.46 {ExpandPercents procedure} -setup {
bind all <Key> $savedBind(All)
unset savedBind
} -result {0 1 2}
+test bind-16.47 {ExpandPercents procedure} -constraints aquaOrWin32 -setup {
+ frame .t.f -class Test -width 150 -height 100
+ pack .t.f
+ focus -force .t.f
+ update
+} -body {
+ bind .t.f <Key> {set x "%K"}
+ set x none
+ event generate .t.f <Key> -keysym €
+ set x
+} -cleanup {
+ destroy .t.f
+} -result €
test bind-17.1 {event command} -body {
event
@@ -2239,7 +2253,7 @@ test bind-17.4 {event command: add 1} -body {
event info <<Paste>>
} -cleanup {
event delete <<Paste>> <Control-v>
-} -result {<Control-Key-v>}
+} -result <Control-Key-v>
test bind-17.5 {event command: add 2} -body {
event delete <<Paste>>
event add <<Paste>> <Control-v> <Button-2>
@@ -2352,7 +2366,7 @@ test bind-18.3 {CreateVirtualEvent procedure: new physical} -body {
event info <<xyz>>
} -cleanup {
event delete <<xyz>>
-} -result {<Control-Key-v>}
+} -result <Control-Key-v>
test bind-18.4 {CreateVirtualEvent procedure: duplicate physical} -body {
event delete <<xyz>>
event add <<xyz>> <Control-v>
@@ -2360,7 +2374,7 @@ test bind-18.4 {CreateVirtualEvent procedure: duplicate physical} -body {
event info <<xyz>>
} -cleanup {
event delete <<xyz>>
-} -result {<Control-Key-v>}
+} -result <Control-Key-v>
test bind-18.5 {CreateVirtualEvent procedure: existing physical} -body {
foreach p [event info] {event delete $p}
event add <<xyz>> <Control-v>
@@ -2409,7 +2423,7 @@ test bind-19.4 {DeleteVirtualEvent procedure: delete 1, not owned} -setup {
event add <<xyz>> <Control-v>
event delete <<xyz>> <Button-1>
event info <<xyz>>
-} -result {<Control-Key-v>}
+} -result <Control-Key-v>
test bind-19.5 {DeleteVirtualEvent procedure: delete 1, badly formed} -body {
event add <<xyz>> <Control-v>
event delete <<xyz>> <xyz>
@@ -2691,7 +2705,7 @@ test bind-20.3 {GetVirtualEvent procedure: owns 1} -setup {
event info <<xyz>>
} -cleanup {
event delete <<xyz>>
-} -result {<Control-Key-v>}
+} -result <Control-Key-v>
test bind-20.4 {GetVirtualEvent procedure: owns many} -setup {
event delete <<xyz>>
} -body {
@@ -2712,7 +2726,7 @@ test bind-21.2 {GetAllVirtualEvents procedure: 1 event} -body {
event info
} -cleanup {
event delete <<xyz>>
-} -result {<<xyz>>}
+} -result <<xyz>>
test bind-21.3 {GetAllVirtualEvents procedure: many events} -body {
foreach p [event info] {event delete $p}
event add <<xyz>> <Control-v>
@@ -5089,7 +5103,7 @@ test bind-25.2 {ParseEventDescription procedure: misinterpreted modifier} -setup
button .b
} -body {
bind .b <Control-M> a
- bind .b <M-M> b
+ bind .b <Meta-M> b
lsort [bind .b]
} -cleanup {
destroy .b
@@ -5109,7 +5123,7 @@ test bind-25.4 {ParseEventDescription} -setup {
bind .t.f
} -cleanup {
destroy .t.f
-} -result {<<Shift-Paste>>}
+} -result <<Shift-Paste>>
# Assorted error cases in event sequence parsing
test bind-25.5 {ParseEventDescription procedure error cases} -body {
@@ -5193,7 +5207,7 @@ test bind-25.21 {modifier names} -setup {
test bind-25.22 {modifier names} -setup {
frame .t.f -class Test -width 150 -height 100
} -body {
- bind .t.f <M-a> foo
+ bind .t.f <Meta-a> foo
bind .t.f
} -cleanup {
destroy .t.f
@@ -5538,20 +5552,6 @@ test bind-26.5 {event names: Button} -setup {
destroy .t.f
} -result {{event Button} <Button>}
-test bind-26.6 {event names: ButtonPress} -setup {
- frame .t.f -class Test -width 150 -height 100
- pack .t.f
- focus -force .t.f
- update
-} -body {
- bind .t.f <Button> "set x {event Button}"
- set x xyzzy
- event generate .t.f <Button>
- list $x [bind .t.f]
-} -cleanup {
- destroy .t.f
-} -result {{event Button} <Button>}
-
test bind-26.7 {event names: ButtonRelease} -setup {
frame .t.f -class Test -width 150 -height 100
pack .t.f
@@ -5636,20 +5636,6 @@ test bind-26.12 {event names: Key} -setup {
destroy .t.f
} -result {{event Key} <Key>}
-test bind-26.13 {event names: KeyPress} -setup {
- frame .t.f -class Test -width 150 -height 100
- pack .t.f
- focus -force .t.f
- update
-} -body {
- bind .t.f <Key> "set x {event KeyPress}"
- set x xyzzy
- event generate .t.f <Key>
- list $x [bind .t.f]
-} -cleanup {
- destroy .t.f
-} -result {{event KeyPress} <Key>}
-
test bind-26.14 {event names: KeyRelease} -setup {
frame .t.f -class Test -width 150 -height 100
pack .t.f
@@ -5963,10 +5949,10 @@ test bind-28.5 {keysym names} -setup {
focus -force .t.f
update
} -body {
- bind .t.f <colon> "lappend x \"keysym received\""
- bind .t.f <underscore> "lappend x {bad binding match}"
+ bind .t.f <:> "lappend x \"keysym received\""
+ bind .t.f <_> "lappend x {bad binding match}"
set x [lsort [bind .t.f]]
- event generate .t.f <colon> ;# -state 0
+ event generate .t.f <:> ;# -state 0
set x
} -cleanup {
destroy .t.f
@@ -6013,34 +5999,55 @@ test bind-28.8 {keysym names} -setup {
} -cleanup {
destroy .t.f
} -result {X x {keysym X}}
-test bind-28.9 {keysym names, Eth -> ETH} -body {
+test bind-28.9 {keysym names, Ð} -body {
frame .t.f -class Test -width 150 -height 100
- bind .t.f <Eth> foo
+ bind .t.f <Ð> foo
bind .t.f
} -cleanup {
destroy .t.f
-} -result {<Key-ETH>}
-test bind-28.10 {keysym names, Ooblique -> Oslash} -constraints nodeprecated -body {
+} -result <Key-Ð>
+test bind-28.10 {keysym names, Ø} -constraints nodeprecated -body {
frame .t.f -class Test -width 150 -height 100
- bind .t.f <Ooblique> foo
+ bind .t.f <Ø> foo
bind .t.f
} -cleanup {
destroy .t.f
-} -result {<Key-Oslash>}
+} -result <Key-Ø>
test bind-28.11 {keysym names, gcedilla} -body {
frame .t.f -class Test -width 150 -height 100
bind .t.f <gcedilla> foo
bind .t.f
} -cleanup {
destroy .t.f
-} -result {<Key-gcedilla>}
+} -result <Key-gcedilla>
test bind-28.12 {keysym names, Greek_IOTAdiaeresis -> Greek_IOTAdieresis} -body {
frame .t.f -class Test -width 150 -height 100
bind .t.f <Greek_IOTAdiaeresis> foo
bind .t.f
} -cleanup {
destroy .t.f
-} -result {<Key-Greek_IOTAdieresis>}
+} -result <Key-Greek_IOTAdieresis>
+test bind-28.13 {keysym names, Unicode} -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <€> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result "<Key-€>"
+test bind-28.14 {keysym names, Emoji} -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <\U1F44D> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result "<Key-\U1F44D>"
+test bind-28.15 {keysym names, Emoji} -constraints needsTcl87 -body {
+ frame .t.f -class Test -width 150 -height 100
+ bind .t.f <👍> foo
+ bind .t.f
+} -cleanup {
+ destroy .t.f
+} -result "<Key-👍>"
test bind-29.1 {Tcl_BackgroundError procedure} -setup {
diff --git a/tests/entry.test b/tests/entry.test
index cb6dda4..fecae74 100644
--- a/tests/entry.test
+++ b/tests/entry.test
@@ -3506,7 +3506,7 @@ test entry-20.7 {widget deletion with textvariable active} -body {
# SF bugs 607390 and 617446
set FOO init
entry .e -textvariable FOO -validate all \
- -vcmd {%W configure -bg white; format 1}
+ -validatecommand {%W configure -bg white; format 1}
bind .e <Destroy> { set FOO hello }
destroy .e
winfo exists .e
diff --git a/tests/event.test b/tests/event.test
index 68cbe9d..179dd32 100644
--- a/tests/event.test
+++ b/tests/event.test
@@ -20,57 +20,10 @@ namespace import -force tcltest::test
proc _init_keypress_lookup {} {
global keypress_lookup
- scan A %c start
- scan Z %c finish
-
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
- }
-
- scan a %c start
- scan z %c finish
-
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
- }
-
- scan 0 %c start
- scan 9 %c finish
-
- for {set i $start} {$i <= $finish} {incr i} {
- set l [format %c $i]
- set keypress_lookup($l) $l
- }
-
- # Most punctuation
- array set keypress_lookup {
- ! exclam
- % percent
- & ampersand
- ( parenleft
- ) parenright
- * asterisk
- + plus
- , comma
- - minus
- . period
- / slash
- : colon
- < less
- = equal
- > greater
- ? question
- @ at
- ^ asciicircum
- _ underscore
- | bar
- ~ asciitilde
- ' apostrophe
- }
# Characters with meaning to Tcl...
array set keypress_lookup [list \
+ - minus \
+ > greater \
\" quotedbl \
\# numbersign \
\$ dollar \
@@ -81,6 +34,7 @@ proc _init_keypress_lookup {} {
\{ braceleft \
\} braceright \
" " space \
+ \xA0 nobreakspace \
"\n" Return \
"\t" Tab]
}
@@ -88,8 +42,8 @@ proc _init_keypress_lookup {} {
# Lookup an event in the keypress table.
# For example:
# Q -> Q
-# . -> period
-# / -> slash
+# ; -> semicolon
+# > -> greater
# Delete -> Delete
# Escape -> Escape
diff --git a/tests/main.test b/tests/main.test
index 19bbf5a..ef97338 100644
--- a/tests/main.test
+++ b/tests/main.test
@@ -5,7 +5,7 @@
# generates output for errors. No output means no errors were found.
#
# Copyright © 1997 by Sun Microsystems, Inc.
-# Copyright (c) 1998-1999 by Scriptics Corporation.
+# Copyright © 1998-1999 by Scriptics Corporation.
# All rights reserved.
package require tcltest 2.2
diff --git a/tests/pkgconfig.test b/tests/pkgconfig.test
index 47a9c0e..ee26807 100644
--- a/tests/pkgconfig.test
+++ b/tests/pkgconfig.test
@@ -20,7 +20,7 @@ tcltest::loadTestedCommands
testConstraint nodeprecated [expr {"nodeprecated" ni [tk::pkgconfig list]}]
-test pkgconfig-1.1 {query keys} nodeprecated {
+test pkgconfig-1.1 {query keys} {nonwin nodeprecated} {
lsort [::tk::pkgconfig list]
} [list \
64bit bindir,install bindir,runtime debug demodir,install demodir,runtime \
diff --git a/tests/spinbox.test b/tests/spinbox.test
index 9267360..89d8ade 100644
--- a/tests/spinbox.test
+++ b/tests/spinbox.test
@@ -919,14 +919,14 @@ test spinbox-1.79 {configuration option: "values" for spinbox} -setup {
destroy .e
} -returnCodes {error} -result {list element in braces followed by "list" instead of space}
-test spinbox-1.80 {configuration option: "vcmd"} -setup {
+test spinbox-1.80 {configuration option: "validatecommand"} -setup {
spinbox .e -borderwidth 2 -highlightthickness 2 -font {Helvetica -12} \
-relief sunken
pack .e
update
} -body {
- .e configure -vcmd "a command"
- .e cget -vcmd
+ .e configure -validatecommand "a command"
+ .e cget -validatecommand
} -cleanup {
destroy .e
} -result {a command}
diff --git a/tests/ttk/checkbutton.test b/tests/ttk/checkbutton.test
index 9c58a7b..248db96 100644
--- a/tests/ttk/checkbutton.test
+++ b/tests/ttk/checkbutton.test
@@ -71,4 +71,18 @@ test checkbutton-1.8 "Empty -variable" -body {
destroy .cbev
} -result {}
+test checkbutton-2.1 "style command" -body {
+ ttk::checkbutton .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TCheckbutton TCheckbutton}
+test checkbutton-2.2 "style command" -body {
+ ttk::style configure customStyle.TCheckbutton
+ ttk::checkbutton .w -style customStyle.TCheckbutton
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TCheckbutton customStyle.TCheckbutton TCheckbutton}
+
tcltest::cleanupTests
diff --git a/tests/ttk/combobox.test b/tests/ttk/combobox.test
index dd1a7f9..a5627d2 100644
--- a/tests/ttk/combobox.test
+++ b/tests/ttk/combobox.test
@@ -86,4 +86,18 @@ test combobox-1890211 "ComboboxSelected event after listbox unposted" -body {
destroy .cb
}
+test combobox-4.1 "style command" -body {
+ ttk::combobox .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TCombobox TCombobox}
+test combobox-4.2 "style command" -body {
+ ttk::style configure customStyle.TCombobox
+ ttk::combobox .w -style customStyle.TCombobox
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TCombobox customStyle.TCombobox TCombobox}
+
tcltest::cleanupTests
diff --git a/tests/ttk/entry.test b/tests/ttk/entry.test
index 7e3fe88..824cb6a 100644
--- a/tests/ttk/entry.test
+++ b/tests/ttk/entry.test
@@ -369,4 +369,18 @@ test entry-11.1 {Bug [2830360fff] - Don't loose invalid at focus events} -setup
destroy .e
}
+test entry-12.1 "style command" -body {
+ ttk::entry .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TEntry TEntry}
+test entry-12.2 "style command" -body {
+ ttk::style configure customStyle.TEntry
+ ttk::entry .w -style customStyle.TEntry
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TEntry customStyle.TEntry TEntry}
+
tcltest::cleanupTests
diff --git a/tests/ttk/labelframe.test b/tests/ttk/labelframe.test
index 3bbf584..d81d33d 100644
--- a/tests/ttk/labelframe.test
+++ b/tests/ttk/labelframe.test
@@ -128,4 +128,18 @@ test labelframe-6.1 "Stacking order" -body {
destroy .t
} -result [list .t.x1 .t.lf .t.lb .t.x2]
+test labelframe-7.1 "style command" -body {
+ ttk::labelframe .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TLabelframe TLabelframe}
+test labelframe-7.2 "style command" -body {
+ ttk::style configure customStyle.TLabelframe
+ ttk::labelframe .w -style customStyle.TLabelframe
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TLabelframe customStyle.TLabelframe TLabelframe}
+
tcltest::cleanupTests
diff --git a/tests/ttk/notebook.test b/tests/ttk/notebook.test
index 50047cf..8c2e186 100644
--- a/tests/ttk/notebook.test
+++ b/tests/ttk/notebook.test
@@ -512,4 +512,18 @@ test notebook-1343984-2 "don't autoselect on destroy" -body {
set ::history
} -result [list DESTROY .nb.frame1 DESTROY .nb.frame2 DESTROY .nb.frame3]
+test notebook-8.1 "style command" -body {
+ ttk::notebook .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TNotebook TNotebook}
+test notebook-8.2 "style command" -body {
+ ttk::style configure customStyle.TNotebook
+ ttk::notebook .w -style customStyle.TNotebook
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TNotebook customStyle.TNotebook TNotebook}
+
tcltest::cleanupTests
diff --git a/tests/ttk/panedwindow.test b/tests/ttk/panedwindow.test
index e45a3a9..d9909c0 100644
--- a/tests/ttk/panedwindow.test
+++ b/tests/ttk/panedwindow.test
@@ -289,4 +289,22 @@ test paned-propagation-5 "Pane change after map, on-axis" -body {
test paned-propagation-cleanup "Clean up." -body { destroy .pw }
+test panedwindow-6.1 "style command" -body {
+ # Contrary to ttk::scrollbar, ttk::progressbar and ttk::scale,
+ # ttk::panedwindow has same style TPanedwindow whatever -orient is
+ ttk::panedwindow .wv ; # default is -orient vertical
+ ttk::panedwindow .wh -orient horizontal
+ list [.wv cget -style] [.wv style] [winfo class .wv]\
+ [.wh cget -style] [.wh style] [winfo class .wh]
+} -cleanup {
+ destroy .wv .wh
+} -result {{} TPanedwindow TPanedwindow {} TPanedwindow TPanedwindow}
+test panedwindow-6.2 "style command" -body {
+ ttk::style configure customStyle.TPanedwindow
+ ttk::panedwindow .w -style customStyle.TPanedwindow
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TPanedwindow customStyle.TPanedwindow TPanedwindow}
+
tcltest::cleanupTests
diff --git a/tests/ttk/progressbar.test b/tests/ttk/progressbar.test
index ac8bbf1..80e51ea 100644
--- a/tests/ttk/progressbar.test
+++ b/tests/ttk/progressbar.test
@@ -122,4 +122,20 @@ test progressbar-3.2 "TIP #442 options are taken into account" -setup {
destroy .p
} -result {{-anchor e} {-foreground green} {-justify center} {-text {Cannot be seen}} {-wraplength 250}}
+test progressbar-4.1 "style command" -body {
+ ttk::progressbar .wh ; # default is -orient horizontal
+ ttk::progressbar .wv -orient vertical
+ list [.wh cget -style] [.wh style] [winfo class .wh]\
+ [.wv cget -style] [.wv style] [winfo class .wv]
+} -cleanup {
+ destroy .wh .wv
+} -result {{} Horizontal.TProgressbar TProgressbar {} Vertical.TProgressbar TProgressbar}
+test progressbar-4.2 "style command" -body {
+ ttk::style configure customStyle.Vertical.TProgressbar
+ ttk::progressbar .w -orient vertical -style customStyle.Vertical.TProgressbar
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.Vertical.TProgressbar Vertical.customStyle.Vertical.TProgressbar TProgressbar}
+
tcltest::cleanupTests
diff --git a/tests/ttk/radiobutton.test b/tests/ttk/radiobutton.test
index 9140805..6de5b5e 100644
--- a/tests/ttk/radiobutton.test
+++ b/tests/ttk/radiobutton.test
@@ -46,4 +46,18 @@ test radiobutton-1.8 "Reset radiobutton variable" -body {
list [info exists ::choice] [.rb1 instate alternate] [.rb2 instate alternate]
} -result {1 0 0}
+test radiobutton-2.1 "style command" -body {
+ ttk::radiobutton .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TRadiobutton TRadiobutton}
+test radiobutton-2.2 "style command" -body {
+ ttk::style configure customStyle.TRadiobutton
+ ttk::radiobutton .w -style customStyle.TRadiobutton
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TRadiobutton customStyle.TRadiobutton TRadiobutton}
+
tcltest::cleanupTests
diff --git a/tests/ttk/scale.test b/tests/ttk/scale.test
new file mode 100644
index 0000000..ddbb7b3
--- /dev/null
+++ b/tests/ttk/scale.test
@@ -0,0 +1,53 @@
+package require Tk
+package require tcltest 2.2
+namespace import -force tcltest::*
+loadTestedCommands
+
+test scale-1.0 "Self-destruction" -body {
+ trace variable v w { destroy .s ;# }
+ ttk::scale .s -variable v
+ pack .s ; update
+ .s set 1 ; update
+} -returnCodes error -match glob -result "*"
+
+test scale-2.1 "-state option" -setup {
+ ttk::scale .s
+ set res ""
+} -body {
+ # defaults
+ lappend res [.s instate disabled] [.s cget -state]
+ # set -state: instate returns accordingly
+ .s configure -state disabled
+ lappend res [.s instate disabled] [.s cget -state]
+ # back to normal
+ .s configure -state normal
+ lappend res [.s instate disabled] [.s cget -state]
+ # use state command: -state does NOT reflect it
+ .s state disabled
+ lappend res [.s instate disabled] [.s cget -state]
+ # further use state command
+ .s state readonly
+ lappend res [.s state] [.s cget -state]
+} -cleanup {
+ destroy .s
+ unset -nocomplain res
+} -result {0 normal 1 disabled 0 normal 1 normal {disabled readonly} normal}
+
+test scale-3.1 "style command" -body {
+ ttk::scale .wh ; # default is -orient horizontal
+ ttk::scale .wv -orient vertical
+ list [.wh cget -style] [.wh style] [winfo class .wh] \
+ [.wv cget -style] [.wv style] [winfo class .wv]
+} -cleanup {
+ destroy .wh .wv
+} -result {{} Horizontal.TScale TScale {} Vertical.TScale TScale}
+test scale-3.2 "style command" -body {
+ ttk::style configure customStyle.Vertical.TScale
+ ttk::scale .w -orient vertical -style customStyle.Vertical.TScale
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.Vertical.TScale Vertical.customStyle.Vertical.TScale TScale}
+
+tcltest::cleanupTests
+
diff --git a/tests/ttk/scrollbar.test b/tests/ttk/scrollbar.test
index 1ee63a3..e4b2959 100644
--- a/tests/ttk/scrollbar.test
+++ b/tests/ttk/scrollbar.test
@@ -115,39 +115,21 @@ test scrollbar-10.2.2 {<MouseWheel> event on horizontal scrollbar} -setup {
destroy .t .s
} -result {1.4}
-#
-# Scale tests:
-#
-
-test scale-1.0 "Self-destruction" -body {
- trace variable v w { destroy .s ;# }
- ttk::scale .s -variable v
- pack .s ; update
- .s set 1 ; update
-} -returnCodes error -match glob -result "*"
-
-test scale-2.1 "-state option" -setup {
- ttk::scale .s
- set res ""
-} -body {
- # defaults
- lappend res [.s instate disabled] [.s cget -state]
- # set -state: instate returns accordingly
- .s configure -state disabled
- lappend res [.s instate disabled] [.s cget -state]
- # back to normal
- .s configure -state normal
- lappend res [.s instate disabled] [.s cget -state]
- # use state command: -state does NOT reflect it
- .s state disabled
- lappend res [.s instate disabled] [.s cget -state]
- # further use state command
- .s state readonly
- lappend res [.s state] [.s cget -state]
+test scrollbar-11.1 "style command" -body {
+ ttk::scrollbar .wv ; # default is -orient vertical
+ ttk::scrollbar .wh -orient horizontal
+ list [.wv cget -style] [.wv style] [winfo class .wv] \
+ [.wh cget -style] [.wh style] [winfo class .wh]
+} -cleanup {
+ destroy .wv .wh
+} -result {{} Vertical.TScrollbar TScrollbar {} Horizontal.TScrollbar TScrollbar}
+test scrollbar-11.2 "style command" -body {
+ ttk::style configure customStyle.Horizontal.TScrollbar
+ ttk::scrollbar .w -orient horizontal -style customStyle.Horizontal.TScrollbar
+ list [.w cget -style] [.w style] [winfo class .w]
} -cleanup {
- destroy .s
- unset -nocomplain res
-} -result {0 normal 1 disabled 0 normal 1 normal {disabled readonly} normal}
+ destroy .w
+} -result {customStyle.Horizontal.TScrollbar Horizontal.customStyle.Horizontal.TScrollbar TScrollbar}
tcltest::cleanupTests
diff --git a/tests/ttk/spinbox.test b/tests/ttk/spinbox.test
index a2b8558..abd2a0f 100644
--- a/tests/ttk/spinbox.test
+++ b/tests/ttk/spinbox.test
@@ -358,6 +358,20 @@ test spinbox-dieoctaldie-2 "Cope with general bad input" -body {
destroy .sb
}
+test spinbox-5.1 "style command" -body {
+ ttk::spinbox .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} TSpinbox TSpinbox}
+test spinbox-5.2 "style command" -body {
+ ttk::style configure customStyle.TSpinbox
+ ttk::spinbox .w -style customStyle.TSpinbox
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.TSpinbox customStyle.TSpinbox TSpinbox}
+
tcltest::cleanupTests
# Local variables:
diff --git a/tests/ttk/treeview.test b/tests/ttk/treeview.test
index 3000d95..3d186e1 100644
--- a/tests/ttk/treeview.test
+++ b/tests/ttk/treeview.test
@@ -835,4 +835,18 @@ test treeview-ce470f20fd-4 "changing -stretch resizes columns" -setup {
destroy .tv
} -result {60 50 60 50 60 50 1}
+test treeview-11.1 "style command" -body {
+ ttk::treeview .w
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {{} Treeview Treeview}
+test treeview-11.2 "style command" -body {
+ ttk::style configure customStyle.Treeview
+ ttk::treeview .w -style customStyle.Treeview
+ list [.w cget -style] [.w style] [winfo class .w]
+} -cleanup {
+ destroy .w
+} -result {customStyle.Treeview customStyle.Treeview Treeview}
+
tcltest::cleanupTests
diff --git a/tests/ttk/ttk.test b/tests/ttk/ttk.test
index dee3179..e8093a9 100644
--- a/tests/ttk/ttk.test
+++ b/tests/ttk/ttk.test
@@ -655,6 +655,17 @@ test ttk-ensemble-5 "style element create: valid" -body {
ttk::style element create plain.background from default
} -returnCodes 0 -result ""
+test ttk-16.1 {ttk::style theme styles - no such theme} -body {
+ ttk::style theme styles noSuchTheme
+} -returnCodes 1 -result {theme "noSuchTheme" doesn't exist}
+test ttk-16.2 {ttk::style theme styles - theme exists} -body {
+ # simply check this produces a list with some style names,
+ # without checking exact content (not needed, and may vary
+ # depending on platform, versions, improvements...)
+ expr {[llength [ttk::style theme styles alt]] > 0}
+} -result 1
+
+
eval destroy [winfo children .]
tcltest::cleanupTests
diff --git a/unix/Makefile.in b/unix/Makefile.in
index e35209f..cfbc468 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -750,7 +750,7 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) ${WISH_EXE}
@if test -f "tk${MAJOR_VERSION}${MINOR_VERSION}.dll"; then \
$(INSTALL_LIBRARY) "tk${MAJOR_VERSION}${MINOR_VERSION}.dll" "$(DLL_INSTALL_DIR)";\
chmod 555 "$(DLL_INSTALL_DIR)/tk${MAJOR_VERSION}${MINOR_VERSION}.dll";\
- $(INSTALL_LIBRARY) "../win/libtk${MAJOR_VERSION}${MINOR_VERSION}.a" "$(LIB_INSTALL_DIR)";\
+ $(INSTALL_LIBRARY) "../win/libtk${MAJOR_VERSION}${MINOR_VERSION}.dll.a" "$(LIB_INSTALL_DIR)";\
chmod 555 "$(LIB_INSTALL_DIR)/libtk${MAJOR_VERSION}${MINOR_VERSION}.a";\
fi
@echo "Installing ${WISH_EXE} as $(BIN_INSTALL_DIR)/wish$(VERSION)${EXE_SUFFIX}"
diff --git a/unix/tkAppInit.c b/unix/tkAppInit.c
index db44bb7..1406f3d 100644
--- a/unix/tkAppInit.c
+++ b/unix/tkAppInit.c
@@ -37,7 +37,11 @@ extern Tcl_PackageInitProc Tktest_Init;
#define TK_LOCAL_APPINIT Tcl_AppInit
#endif
#ifndef MODULE_SCOPE
-# define MODULE_SCOPE extern
+# ifdef __cplusplus
+# define MODULE_SCOPE extern "C"
+# else
+# define MODULE_SCOPE extern
+# endif
#endif
MODULE_SCOPE int TK_LOCAL_APPINIT(Tcl_Interp *);
MODULE_SCOPE int main(int, char **);
diff --git a/win/winMain.c b/win/winMain.c
index e7b1e65..f8c3e78 100644
--- a/win/winMain.c
+++ b/win/winMain.c
@@ -34,7 +34,7 @@ extern Tcl_PackageInitProc Tktest_Init;
#endif
#endif /* TK_TEST */
-#if defined(STATIC_BUILD) && TCL_USE_STATIC_PACKAGES
+#if defined(STATIC_BUILD) && defined(TCL_USE_STATIC_PACKAGES) && TCL_USE_STATIC_PACKAGES
extern Tcl_PackageInitProc Registry_Init;
extern Tcl_PackageInitProc Dde_Init;
extern Tcl_PackageInitProc Dde_SafeInit;
@@ -60,7 +60,11 @@ static BOOL consoleRequired = TRUE;
#define TK_LOCAL_APPINIT Tcl_AppInit
#endif
#ifndef MODULE_SCOPE
-# define MODULE_SCOPE extern
+# ifdef __cplusplus
+# define MODULE_SCOPE extern "C"
+# else
+# define MODULE_SCOPE extern
+# endif
#endif
MODULE_SCOPE int TK_LOCAL_APPINIT(Tcl_Interp *interp);
@@ -205,16 +209,16 @@ Tcl_AppInit(
return TCL_ERROR;
}
}
-#if defined(STATIC_BUILD) && TCL_USE_STATIC_PACKAGES
+#if defined(STATIC_BUILD) && defined(TCL_USE_STATIC_PACKAGES) && TCL_USE_STATIC_PACKAGES
if (Registry_Init(interp) == TCL_ERROR) {
return TCL_ERROR;
}
- Tcl_StaticPackage(interp, "registry", Registry_Init, 0);
+ Tcl_StaticPackage(interp, "Registry", Registry_Init, 0);
if (Dde_Init(interp) == TCL_ERROR) {
return TCL_ERROR;
}
- Tcl_StaticPackage(interp, "dde", Dde_Init, Dde_SafeInit);
+ Tcl_StaticPackage(interp, "Dde", Dde_Init, Dde_SafeInit);
#endif
#ifdef TK_TEST
diff --git a/xlib/X11/keysymdef.h b/xlib/X11/keysymdef.h
index 19abff2..728320c 100644
--- a/xlib/X11/keysymdef.h
+++ b/xlib/X11/keysymdef.h
@@ -887,38 +887,6 @@ SOFTWARE.
#endif /* XK_LATIN4 */
/*
- * Latin 8
- */
-#ifdef XK_LATIN8
-#define XK_Wcircumflex 0x1000174 /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */
-#define XK_wcircumflex 0x1000175 /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */
-#define XK_Ycircumflex 0x1000176 /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */
-#define XK_ycircumflex 0x1000177 /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */
-#define XK_Babovedot 0x1001e02 /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */
-#define XK_babovedot 0x1001e03 /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */
-#define XK_Dabovedot 0x1001e0a /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */
-#define XK_dabovedot 0x1001e0b /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */
-#define XK_Fabovedot 0x1001e1e /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */
-#define XK_fabovedot 0x1001e1f /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */
-#define XK_Mabovedot 0x1001e40 /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */
-#define XK_mabovedot 0x1001e41 /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */
-#define XK_Pabovedot 0x1001e56 /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */
-#define XK_pabovedot 0x1001e57 /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */
-#define XK_Sabovedot 0x1001e60 /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */
-#define XK_sabovedot 0x1001e61 /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */
-#define XK_Tabovedot 0x1001e6a /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */
-#define XK_tabovedot 0x1001e6b /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */
-#define XK_Wgrave 0x1001e80 /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */
-#define XK_wgrave 0x1001e81 /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */
-#define XK_Wacute 0x1001e82 /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */
-#define XK_wacute 0x1001e83 /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */
-#define XK_Wdiaeresis 0x1001e84 /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */
-#define XK_wdiaeresis 0x1001e85 /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */
-#define XK_Ygrave 0x1001ef2 /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */
-#define XK_ygrave 0x1001ef3 /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */
-#endif /* XK_LATIN8 */
-
-/*
* Latin 9
* Byte 3 = 0x13
*/
@@ -1013,35 +981,7 @@ SOFTWARE.
*/
#ifdef XK_ARABIC
-#define XK_Farsi_0 0x10006f0 /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */
-#define XK_Farsi_1 0x10006f1 /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */
-#define XK_Farsi_2 0x10006f2 /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */
-#define XK_Farsi_3 0x10006f3 /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */
-#define XK_Farsi_4 0x10006f4 /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */
-#define XK_Farsi_5 0x10006f5 /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */
-#define XK_Farsi_6 0x10006f6 /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */
-#define XK_Farsi_7 0x10006f7 /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */
-#define XK_Farsi_8 0x10006f8 /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */
-#define XK_Farsi_9 0x10006f9 /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */
-#define XK_Arabic_percent 0x100066a /* U+066A ARABIC PERCENT SIGN */
-#define XK_Arabic_superscript_alef 0x1000670 /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */
-#define XK_Arabic_tteh 0x1000679 /* U+0679 ARABIC LETTER TTEH */
-#define XK_Arabic_peh 0x100067e /* U+067E ARABIC LETTER PEH */
-#define XK_Arabic_tcheh 0x1000686 /* U+0686 ARABIC LETTER TCHEH */
-#define XK_Arabic_ddal 0x1000688 /* U+0688 ARABIC LETTER DDAL */
-#define XK_Arabic_rreh 0x1000691 /* U+0691 ARABIC LETTER RREH */
#define XK_Arabic_comma 0x05ac /* U+060C ARABIC COMMA */
-#define XK_Arabic_fullstop 0x10006d4 /* U+06D4 ARABIC FULL STOP */
-#define XK_Arabic_0 0x1000660 /* U+0660 ARABIC-INDIC DIGIT ZERO */
-#define XK_Arabic_1 0x1000661 /* U+0661 ARABIC-INDIC DIGIT ONE */
-#define XK_Arabic_2 0x1000662 /* U+0662 ARABIC-INDIC DIGIT TWO */
-#define XK_Arabic_3 0x1000663 /* U+0663 ARABIC-INDIC DIGIT THREE */
-#define XK_Arabic_4 0x1000664 /* U+0664 ARABIC-INDIC DIGIT FOUR */
-#define XK_Arabic_5 0x1000665 /* U+0665 ARABIC-INDIC DIGIT FIVE */
-#define XK_Arabic_6 0x1000666 /* U+0666 ARABIC-INDIC DIGIT SIX */
-#define XK_Arabic_7 0x1000667 /* U+0667 ARABIC-INDIC DIGIT SEVEN */
-#define XK_Arabic_8 0x1000668 /* U+0668 ARABIC-INDIC DIGIT EIGHT */
-#define XK_Arabic_9 0x1000669 /* U+0669 ARABIC-INDIC DIGIT NINE */
#define XK_Arabic_semicolon 0x05bb /* U+061B ARABIC SEMICOLON */
#define XK_Arabic_question_mark 0x05bf /* U+061F ARABIC QUESTION MARK */
#define XK_Arabic_hamza 0x05c1 /* U+0621 ARABIC LETTER HAMZA */
@@ -1090,19 +1030,6 @@ SOFTWARE.
#define XK_Arabic_kasra 0x05f0 /* U+0650 ARABIC KASRA */
#define XK_Arabic_shadda 0x05f1 /* U+0651 ARABIC SHADDA */
#define XK_Arabic_sukun 0x05f2 /* U+0652 ARABIC SUKUN */
-#define XK_Arabic_madda_above 0x1000653 /* U+0653 ARABIC MADDAH ABOVE */
-#define XK_Arabic_hamza_above 0x1000654 /* U+0654 ARABIC HAMZA ABOVE */
-#define XK_Arabic_hamza_below 0x1000655 /* U+0655 ARABIC HAMZA BELOW */
-#define XK_Arabic_jeh 0x1000698 /* U+0698 ARABIC LETTER JEH */
-#define XK_Arabic_veh 0x10006a4 /* U+06A4 ARABIC LETTER VEH */
-#define XK_Arabic_keheh 0x10006a9 /* U+06A9 ARABIC LETTER KEHEH */
-#define XK_Arabic_gaf 0x10006af /* U+06AF ARABIC LETTER GAF */
-#define XK_Arabic_noon_ghunna 0x10006ba /* U+06BA ARABIC LETTER NOON GHUNNA */
-#define XK_Arabic_heh_doachashmee 0x10006be /* U+06BE ARABIC LETTER HEH DOACHASHMEE */
-#define XK_Farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */
-#define XK_Arabic_farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */
-#define XK_Arabic_yeh_baree 0x10006d2 /* U+06D2 ARABIC LETTER YEH BARREE */
-#define XK_Arabic_heh_goal 0x10006c1 /* U+06C1 ARABIC LETTER HEH GOAL */
#define XK_Arabic_switch 0xff7e /* Alias for mode_switch */
#endif /* XK_ARABIC */
@@ -1111,38 +1038,6 @@ SOFTWARE.
* Byte 3 = 6
*/
#ifdef XK_CYRILLIC
-#define XK_Cyrillic_GHE_bar 0x1000492 /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */
-#define XK_Cyrillic_ghe_bar 0x1000493 /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */
-#define XK_Cyrillic_ZHE_descender 0x1000496 /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */
-#define XK_Cyrillic_zhe_descender 0x1000497 /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */
-#define XK_Cyrillic_KA_descender 0x100049a /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */
-#define XK_Cyrillic_ka_descender 0x100049b /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */
-#define XK_Cyrillic_KA_vertstroke 0x100049c /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */
-#define XK_Cyrillic_ka_vertstroke 0x100049d /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */
-#define XK_Cyrillic_EN_descender 0x10004a2 /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */
-#define XK_Cyrillic_en_descender 0x10004a3 /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */
-#define XK_Cyrillic_U_straight 0x10004ae /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */
-#define XK_Cyrillic_u_straight 0x10004af /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */
-#define XK_Cyrillic_U_straight_bar 0x10004b0 /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */
-#define XK_Cyrillic_u_straight_bar 0x10004b1 /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */
-#define XK_Cyrillic_HA_descender 0x10004b2 /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */
-#define XK_Cyrillic_ha_descender 0x10004b3 /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */
-#define XK_Cyrillic_CHE_descender 0x10004b6 /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */
-#define XK_Cyrillic_che_descender 0x10004b7 /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */
-#define XK_Cyrillic_CHE_vertstroke 0x10004b8 /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */
-#define XK_Cyrillic_che_vertstroke 0x10004b9 /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */
-#define XK_Cyrillic_SHHA 0x10004ba /* U+04BA CYRILLIC CAPITAL LETTER SHHA */
-#define XK_Cyrillic_shha 0x10004bb /* U+04BB CYRILLIC SMALL LETTER SHHA */
-
-#define XK_Cyrillic_SCHWA 0x10004d8 /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */
-#define XK_Cyrillic_schwa 0x10004d9 /* U+04D9 CYRILLIC SMALL LETTER SCHWA */
-#define XK_Cyrillic_I_macron 0x10004e2 /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */
-#define XK_Cyrillic_i_macron 0x10004e3 /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */
-#define XK_Cyrillic_O_bar 0x10004e8 /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */
-#define XK_Cyrillic_o_bar 0x10004e9 /* U+04E9 CYRILLIC SMALL LETTER BARRED O */
-#define XK_Cyrillic_U_macron 0x10004ee /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */
-#define XK_Cyrillic_u_macron 0x10004ef /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */
-
#define XK_Serbian_dje 0x06a1 /* U+0452 CYRILLIC SMALL LETTER DJE */
#define XK_Macedonia_gje 0x06a2 /* U+0453 CYRILLIC SMALL LETTER GJE */
#define XK_Cyrillic_io 0x06a3 /* U+0451 CYRILLIC SMALL LETTER IO */
@@ -1821,329 +1716,10 @@ SOFTWARE.
#endif /* XK_KOREAN */
-/*
- * Armenian
- */
-
-#ifdef XK_ARMENIAN
-#define XK_Armenian_ligature_ew 0x1000587 /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */
-#define XK_Armenian_full_stop 0x1000589 /* U+0589 ARMENIAN FULL STOP */
-#define XK_Armenian_verjaket 0x1000589 /* U+0589 ARMENIAN FULL STOP */
-#define XK_Armenian_separation_mark 0x100055d /* U+055D ARMENIAN COMMA */
-#define XK_Armenian_but 0x100055d /* U+055D ARMENIAN COMMA */
-#define XK_Armenian_hyphen 0x100058a /* U+058A ARMENIAN HYPHEN */
-#define XK_Armenian_yentamna 0x100058a /* U+058A ARMENIAN HYPHEN */
-#define XK_Armenian_exclam 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */
-#define XK_Armenian_amanak 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */
-#define XK_Armenian_accent 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */
-#define XK_Armenian_shesht 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */
-#define XK_Armenian_question 0x100055e /* U+055E ARMENIAN QUESTION MARK */
-#define XK_Armenian_paruyk 0x100055e /* U+055E ARMENIAN QUESTION MARK */
-#define XK_Armenian_AYB 0x1000531 /* U+0531 ARMENIAN CAPITAL LETTER AYB */
-#define XK_Armenian_ayb 0x1000561 /* U+0561 ARMENIAN SMALL LETTER AYB */
-#define XK_Armenian_BEN 0x1000532 /* U+0532 ARMENIAN CAPITAL LETTER BEN */
-#define XK_Armenian_ben 0x1000562 /* U+0562 ARMENIAN SMALL LETTER BEN */
-#define XK_Armenian_GIM 0x1000533 /* U+0533 ARMENIAN CAPITAL LETTER GIM */
-#define XK_Armenian_gim 0x1000563 /* U+0563 ARMENIAN SMALL LETTER GIM */
-#define XK_Armenian_DA 0x1000534 /* U+0534 ARMENIAN CAPITAL LETTER DA */
-#define XK_Armenian_da 0x1000564 /* U+0564 ARMENIAN SMALL LETTER DA */
-#define XK_Armenian_YECH 0x1000535 /* U+0535 ARMENIAN CAPITAL LETTER ECH */
-#define XK_Armenian_yech 0x1000565 /* U+0565 ARMENIAN SMALL LETTER ECH */
-#define XK_Armenian_ZA 0x1000536 /* U+0536 ARMENIAN CAPITAL LETTER ZA */
-#define XK_Armenian_za 0x1000566 /* U+0566 ARMENIAN SMALL LETTER ZA */
-#define XK_Armenian_E 0x1000537 /* U+0537 ARMENIAN CAPITAL LETTER EH */
-#define XK_Armenian_e 0x1000567 /* U+0567 ARMENIAN SMALL LETTER EH */
-#define XK_Armenian_AT 0x1000538 /* U+0538 ARMENIAN CAPITAL LETTER ET */
-#define XK_Armenian_at 0x1000568 /* U+0568 ARMENIAN SMALL LETTER ET */
-#define XK_Armenian_TO 0x1000539 /* U+0539 ARMENIAN CAPITAL LETTER TO */
-#define XK_Armenian_to 0x1000569 /* U+0569 ARMENIAN SMALL LETTER TO */
-#define XK_Armenian_ZHE 0x100053a /* U+053A ARMENIAN CAPITAL LETTER ZHE */
-#define XK_Armenian_zhe 0x100056a /* U+056A ARMENIAN SMALL LETTER ZHE */
-#define XK_Armenian_INI 0x100053b /* U+053B ARMENIAN CAPITAL LETTER INI */
-#define XK_Armenian_ini 0x100056b /* U+056B ARMENIAN SMALL LETTER INI */
-#define XK_Armenian_LYUN 0x100053c /* U+053C ARMENIAN CAPITAL LETTER LIWN */
-#define XK_Armenian_lyun 0x100056c /* U+056C ARMENIAN SMALL LETTER LIWN */
-#define XK_Armenian_KHE 0x100053d /* U+053D ARMENIAN CAPITAL LETTER XEH */
-#define XK_Armenian_khe 0x100056d /* U+056D ARMENIAN SMALL LETTER XEH */
-#define XK_Armenian_TSA 0x100053e /* U+053E ARMENIAN CAPITAL LETTER CA */
-#define XK_Armenian_tsa 0x100056e /* U+056E ARMENIAN SMALL LETTER CA */
-#define XK_Armenian_KEN 0x100053f /* U+053F ARMENIAN CAPITAL LETTER KEN */
-#define XK_Armenian_ken 0x100056f /* U+056F ARMENIAN SMALL LETTER KEN */
-#define XK_Armenian_HO 0x1000540 /* U+0540 ARMENIAN CAPITAL LETTER HO */
-#define XK_Armenian_ho 0x1000570 /* U+0570 ARMENIAN SMALL LETTER HO */
-#define XK_Armenian_DZA 0x1000541 /* U+0541 ARMENIAN CAPITAL LETTER JA */
-#define XK_Armenian_dza 0x1000571 /* U+0571 ARMENIAN SMALL LETTER JA */
-#define XK_Armenian_GHAT 0x1000542 /* U+0542 ARMENIAN CAPITAL LETTER GHAD */
-#define XK_Armenian_ghat 0x1000572 /* U+0572 ARMENIAN SMALL LETTER GHAD */
-#define XK_Armenian_TCHE 0x1000543 /* U+0543 ARMENIAN CAPITAL LETTER CHEH */
-#define XK_Armenian_tche 0x1000573 /* U+0573 ARMENIAN SMALL LETTER CHEH */
-#define XK_Armenian_MEN 0x1000544 /* U+0544 ARMENIAN CAPITAL LETTER MEN */
-#define XK_Armenian_men 0x1000574 /* U+0574 ARMENIAN SMALL LETTER MEN */
-#define XK_Armenian_HI 0x1000545 /* U+0545 ARMENIAN CAPITAL LETTER YI */
-#define XK_Armenian_hi 0x1000575 /* U+0575 ARMENIAN SMALL LETTER YI */
-#define XK_Armenian_NU 0x1000546 /* U+0546 ARMENIAN CAPITAL LETTER NOW */
-#define XK_Armenian_nu 0x1000576 /* U+0576 ARMENIAN SMALL LETTER NOW */
-#define XK_Armenian_SHA 0x1000547 /* U+0547 ARMENIAN CAPITAL LETTER SHA */
-#define XK_Armenian_sha 0x1000577 /* U+0577 ARMENIAN SMALL LETTER SHA */
-#define XK_Armenian_VO 0x1000548 /* U+0548 ARMENIAN CAPITAL LETTER VO */
-#define XK_Armenian_vo 0x1000578 /* U+0578 ARMENIAN SMALL LETTER VO */
-#define XK_Armenian_CHA 0x1000549 /* U+0549 ARMENIAN CAPITAL LETTER CHA */
-#define XK_Armenian_cha 0x1000579 /* U+0579 ARMENIAN SMALL LETTER CHA */
-#define XK_Armenian_PE 0x100054a /* U+054A ARMENIAN CAPITAL LETTER PEH */
-#define XK_Armenian_pe 0x100057a /* U+057A ARMENIAN SMALL LETTER PEH */
-#define XK_Armenian_JE 0x100054b /* U+054B ARMENIAN CAPITAL LETTER JHEH */
-#define XK_Armenian_je 0x100057b /* U+057B ARMENIAN SMALL LETTER JHEH */
-#define XK_Armenian_RA 0x100054c /* U+054C ARMENIAN CAPITAL LETTER RA */
-#define XK_Armenian_ra 0x100057c /* U+057C ARMENIAN SMALL LETTER RA */
-#define XK_Armenian_SE 0x100054d /* U+054D ARMENIAN CAPITAL LETTER SEH */
-#define XK_Armenian_se 0x100057d /* U+057D ARMENIAN SMALL LETTER SEH */
-#define XK_Armenian_VEV 0x100054e /* U+054E ARMENIAN CAPITAL LETTER VEW */
-#define XK_Armenian_vev 0x100057e /* U+057E ARMENIAN SMALL LETTER VEW */
-#define XK_Armenian_TYUN 0x100054f /* U+054F ARMENIAN CAPITAL LETTER TIWN */
-#define XK_Armenian_tyun 0x100057f /* U+057F ARMENIAN SMALL LETTER TIWN */
-#define XK_Armenian_RE 0x1000550 /* U+0550 ARMENIAN CAPITAL LETTER REH */
-#define XK_Armenian_re 0x1000580 /* U+0580 ARMENIAN SMALL LETTER REH */
-#define XK_Armenian_TSO 0x1000551 /* U+0551 ARMENIAN CAPITAL LETTER CO */
-#define XK_Armenian_tso 0x1000581 /* U+0581 ARMENIAN SMALL LETTER CO */
-#define XK_Armenian_VYUN 0x1000552 /* U+0552 ARMENIAN CAPITAL LETTER YIWN */
-#define XK_Armenian_vyun 0x1000582 /* U+0582 ARMENIAN SMALL LETTER YIWN */
-#define XK_Armenian_PYUR 0x1000553 /* U+0553 ARMENIAN CAPITAL LETTER PIWR */
-#define XK_Armenian_pyur 0x1000583 /* U+0583 ARMENIAN SMALL LETTER PIWR */
-#define XK_Armenian_KE 0x1000554 /* U+0554 ARMENIAN CAPITAL LETTER KEH */
-#define XK_Armenian_ke 0x1000584 /* U+0584 ARMENIAN SMALL LETTER KEH */
-#define XK_Armenian_O 0x1000555 /* U+0555 ARMENIAN CAPITAL LETTER OH */
-#define XK_Armenian_o 0x1000585 /* U+0585 ARMENIAN SMALL LETTER OH */
-#define XK_Armenian_FE 0x1000556 /* U+0556 ARMENIAN CAPITAL LETTER FEH */
-#define XK_Armenian_fe 0x1000586 /* U+0586 ARMENIAN SMALL LETTER FEH */
-#define XK_Armenian_apostrophe 0x100055a /* U+055A ARMENIAN APOSTROPHE */
-#endif /* XK_ARMENIAN */
-
-/*
- * Georgian
- */
-
-#ifdef XK_GEORGIAN
-#define XK_Georgian_an 0x10010d0 /* U+10D0 GEORGIAN LETTER AN */
-#define XK_Georgian_ban 0x10010d1 /* U+10D1 GEORGIAN LETTER BAN */
-#define XK_Georgian_gan 0x10010d2 /* U+10D2 GEORGIAN LETTER GAN */
-#define XK_Georgian_don 0x10010d3 /* U+10D3 GEORGIAN LETTER DON */
-#define XK_Georgian_en 0x10010d4 /* U+10D4 GEORGIAN LETTER EN */
-#define XK_Georgian_vin 0x10010d5 /* U+10D5 GEORGIAN LETTER VIN */
-#define XK_Georgian_zen 0x10010d6 /* U+10D6 GEORGIAN LETTER ZEN */
-#define XK_Georgian_tan 0x10010d7 /* U+10D7 GEORGIAN LETTER TAN */
-#define XK_Georgian_in 0x10010d8 /* U+10D8 GEORGIAN LETTER IN */
-#define XK_Georgian_kan 0x10010d9 /* U+10D9 GEORGIAN LETTER KAN */
-#define XK_Georgian_las 0x10010da /* U+10DA GEORGIAN LETTER LAS */
-#define XK_Georgian_man 0x10010db /* U+10DB GEORGIAN LETTER MAN */
-#define XK_Georgian_nar 0x10010dc /* U+10DC GEORGIAN LETTER NAR */
-#define XK_Georgian_on 0x10010dd /* U+10DD GEORGIAN LETTER ON */
-#define XK_Georgian_par 0x10010de /* U+10DE GEORGIAN LETTER PAR */
-#define XK_Georgian_zhar 0x10010df /* U+10DF GEORGIAN LETTER ZHAR */
-#define XK_Georgian_rae 0x10010e0 /* U+10E0 GEORGIAN LETTER RAE */
-#define XK_Georgian_san 0x10010e1 /* U+10E1 GEORGIAN LETTER SAN */
-#define XK_Georgian_tar 0x10010e2 /* U+10E2 GEORGIAN LETTER TAR */
-#define XK_Georgian_un 0x10010e3 /* U+10E3 GEORGIAN LETTER UN */
-#define XK_Georgian_phar 0x10010e4 /* U+10E4 GEORGIAN LETTER PHAR */
-#define XK_Georgian_khar 0x10010e5 /* U+10E5 GEORGIAN LETTER KHAR */
-#define XK_Georgian_ghan 0x10010e6 /* U+10E6 GEORGIAN LETTER GHAN */
-#define XK_Georgian_qar 0x10010e7 /* U+10E7 GEORGIAN LETTER QAR */
-#define XK_Georgian_shin 0x10010e8 /* U+10E8 GEORGIAN LETTER SHIN */
-#define XK_Georgian_chin 0x10010e9 /* U+10E9 GEORGIAN LETTER CHIN */
-#define XK_Georgian_can 0x10010ea /* U+10EA GEORGIAN LETTER CAN */
-#define XK_Georgian_jil 0x10010eb /* U+10EB GEORGIAN LETTER JIL */
-#define XK_Georgian_cil 0x10010ec /* U+10EC GEORGIAN LETTER CIL */
-#define XK_Georgian_char 0x10010ed /* U+10ED GEORGIAN LETTER CHAR */
-#define XK_Georgian_xan 0x10010ee /* U+10EE GEORGIAN LETTER XAN */
-#define XK_Georgian_jhan 0x10010ef /* U+10EF GEORGIAN LETTER JHAN */
-#define XK_Georgian_hae 0x10010f0 /* U+10F0 GEORGIAN LETTER HAE */
-#define XK_Georgian_he 0x10010f1 /* U+10F1 GEORGIAN LETTER HE */
-#define XK_Georgian_hie 0x10010f2 /* U+10F2 GEORGIAN LETTER HIE */
-#define XK_Georgian_we 0x10010f3 /* U+10F3 GEORGIAN LETTER WE */
-#define XK_Georgian_har 0x10010f4 /* U+10F4 GEORGIAN LETTER HAR */
-#define XK_Georgian_hoe 0x10010f5 /* U+10F5 GEORGIAN LETTER HOE */
-#define XK_Georgian_fi 0x10010f6 /* U+10F6 GEORGIAN LETTER FI */
-#endif /* XK_GEORGIAN */
-
-/*
- * Azeri (and other Turkic or Caucasian languages)
- */
-
-#ifdef XK_CAUCASUS
-/* latin */
-#define XK_Xabovedot 0x1001e8a /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */
-#define XK_Ibreve 0x100012c /* U+012C LATIN CAPITAL LETTER I WITH BREVE */
-#define XK_Zstroke 0x10001b5 /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */
-#define XK_Gcaron 0x10001e6 /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */
-#define XK_Ocaron 0x10001d1 /* U+01D1 LATIN CAPITAL LETTER O WITH CARON */
-#define XK_Obarred 0x100019f /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */
-#define XK_xabovedot 0x1001e8b /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */
-#define XK_ibreve 0x100012d /* U+012D LATIN SMALL LETTER I WITH BREVE */
-#define XK_zstroke 0x10001b6 /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */
-#define XK_gcaron 0x10001e7 /* U+01E7 LATIN SMALL LETTER G WITH CARON */
-#define XK_ocaron 0x10001d2 /* U+01D2 LATIN SMALL LETTER O WITH CARON */
-#define XK_obarred 0x1000275 /* U+0275 LATIN SMALL LETTER BARRED O */
-#define XK_SCHWA 0x100018f /* U+018F LATIN CAPITAL LETTER SCHWA */
-#define XK_schwa 0x1000259 /* U+0259 LATIN SMALL LETTER SCHWA */
-#define XK_EZH 0x10001b7 /* U+01B7 LATIN CAPITAL LETTER EZH */
-#define XK_ezh 0x1000292 /* U+0292 LATIN SMALL LETTER EZH */
-/* those are not really Caucasus */
-/* For Inupiak */
-#define XK_Lbelowdot 0x1001e36 /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */
-#define XK_lbelowdot 0x1001e37 /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */
-#endif /* XK_CAUCASUS */
-
-/*
- * Vietnamese
- */
-
-#ifdef XK_VIETNAMESE
-#define XK_Abelowdot 0x1001ea0 /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */
-#define XK_abelowdot 0x1001ea1 /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */
-#define XK_Ahook 0x1001ea2 /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */
-#define XK_ahook 0x1001ea3 /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */
-#define XK_Acircumflexacute 0x1001ea4 /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */
-#define XK_acircumflexacute 0x1001ea5 /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */
-#define XK_Acircumflexgrave 0x1001ea6 /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */
-#define XK_acircumflexgrave 0x1001ea7 /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */
-#define XK_Acircumflexhook 0x1001ea8 /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_acircumflexhook 0x1001ea9 /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_Acircumflextilde 0x1001eaa /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */
-#define XK_acircumflextilde 0x1001eab /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */
-#define XK_Acircumflexbelowdot 0x1001eac /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_acircumflexbelowdot 0x1001ead /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_Abreveacute 0x1001eae /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */
-#define XK_abreveacute 0x1001eaf /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */
-#define XK_Abrevegrave 0x1001eb0 /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */
-#define XK_abrevegrave 0x1001eb1 /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */
-#define XK_Abrevehook 0x1001eb2 /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */
-#define XK_abrevehook 0x1001eb3 /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */
-#define XK_Abrevetilde 0x1001eb4 /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */
-#define XK_abrevetilde 0x1001eb5 /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */
-#define XK_Abrevebelowdot 0x1001eb6 /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */
-#define XK_abrevebelowdot 0x1001eb7 /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */
-#define XK_Ebelowdot 0x1001eb8 /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */
-#define XK_ebelowdot 0x1001eb9 /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */
-#define XK_Ehook 0x1001eba /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */
-#define XK_ehook 0x1001ebb /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */
-#define XK_Etilde 0x1001ebc /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */
-#define XK_etilde 0x1001ebd /* U+1EBD LATIN SMALL LETTER E WITH TILDE */
-#define XK_Ecircumflexacute 0x1001ebe /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */
-#define XK_ecircumflexacute 0x1001ebf /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */
-#define XK_Ecircumflexgrave 0x1001ec0 /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */
-#define XK_ecircumflexgrave 0x1001ec1 /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */
-#define XK_Ecircumflexhook 0x1001ec2 /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_ecircumflexhook 0x1001ec3 /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_Ecircumflextilde 0x1001ec4 /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */
-#define XK_ecircumflextilde 0x1001ec5 /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */
-#define XK_Ecircumflexbelowdot 0x1001ec6 /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_ecircumflexbelowdot 0x1001ec7 /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_Ihook 0x1001ec8 /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */
-#define XK_ihook 0x1001ec9 /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */
-#define XK_Ibelowdot 0x1001eca /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */
-#define XK_ibelowdot 0x1001ecb /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */
-#define XK_Obelowdot 0x1001ecc /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */
-#define XK_obelowdot 0x1001ecd /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */
-#define XK_Ohook 0x1001ece /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */
-#define XK_ohook 0x1001ecf /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */
-#define XK_Ocircumflexacute 0x1001ed0 /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */
-#define XK_ocircumflexacute 0x1001ed1 /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */
-#define XK_Ocircumflexgrave 0x1001ed2 /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */
-#define XK_ocircumflexgrave 0x1001ed3 /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */
-#define XK_Ocircumflexhook 0x1001ed4 /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_ocircumflexhook 0x1001ed5 /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */
-#define XK_Ocircumflextilde 0x1001ed6 /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */
-#define XK_ocircumflextilde 0x1001ed7 /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */
-#define XK_Ocircumflexbelowdot 0x1001ed8 /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_ocircumflexbelowdot 0x1001ed9 /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */
-#define XK_Ohornacute 0x1001eda /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */
-#define XK_ohornacute 0x1001edb /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */
-#define XK_Ohorngrave 0x1001edc /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */
-#define XK_ohorngrave 0x1001edd /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */
-#define XK_Ohornhook 0x1001ede /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */
-#define XK_ohornhook 0x1001edf /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */
-#define XK_Ohorntilde 0x1001ee0 /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */
-#define XK_ohorntilde 0x1001ee1 /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */
-#define XK_Ohornbelowdot 0x1001ee2 /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */
-#define XK_ohornbelowdot 0x1001ee3 /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */
-#define XK_Ubelowdot 0x1001ee4 /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */
-#define XK_ubelowdot 0x1001ee5 /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */
-#define XK_Uhook 0x1001ee6 /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */
-#define XK_uhook 0x1001ee7 /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */
-#define XK_Uhornacute 0x1001ee8 /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */
-#define XK_uhornacute 0x1001ee9 /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */
-#define XK_Uhorngrave 0x1001eea /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */
-#define XK_uhorngrave 0x1001eeb /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */
-#define XK_Uhornhook 0x1001eec /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */
-#define XK_uhornhook 0x1001eed /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */
-#define XK_Uhorntilde 0x1001eee /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */
-#define XK_uhorntilde 0x1001eef /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */
-#define XK_Uhornbelowdot 0x1001ef0 /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */
-#define XK_uhornbelowdot 0x1001ef1 /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */
-#define XK_Ybelowdot 0x1001ef4 /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */
-#define XK_ybelowdot 0x1001ef5 /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */
-#define XK_Yhook 0x1001ef6 /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */
-#define XK_yhook 0x1001ef7 /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */
-#define XK_Ytilde 0x1001ef8 /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */
-#define XK_ytilde 0x1001ef9 /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */
-#define XK_Ohorn 0x10001a0 /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */
-#define XK_ohorn 0x10001a1 /* U+01A1 LATIN SMALL LETTER O WITH HORN */
-#define XK_Uhorn 0x10001af /* U+01AF LATIN CAPITAL LETTER U WITH HORN */
-#define XK_uhorn 0x10001b0 /* U+01B0 LATIN SMALL LETTER U WITH HORN */
-
-#endif /* XK_VIETNAMESE */
-
#ifdef XK_CURRENCY
-#define XK_EcuSign 0x10020a0 /* U+20A0 EURO-CURRENCY SIGN */
-#define XK_ColonSign 0x10020a1 /* U+20A1 COLON SIGN */
-#define XK_CruzeiroSign 0x10020a2 /* U+20A2 CRUZEIRO SIGN */
-#define XK_FFrancSign 0x10020a3 /* U+20A3 FRENCH FRANC SIGN */
-#define XK_LiraSign 0x10020a4 /* U+20A4 LIRA SIGN */
-#define XK_MillSign 0x10020a5 /* U+20A5 MILL SIGN */
-#define XK_NairaSign 0x10020a6 /* U+20A6 NAIRA SIGN */
-#define XK_PesetaSign 0x10020a7 /* U+20A7 PESETA SIGN */
-#define XK_RupeeSign 0x10020a8 /* U+20A8 RUPEE SIGN */
-#define XK_WonSign 0x10020a9 /* U+20A9 WON SIGN */
-#define XK_NewSheqelSign 0x10020aa /* U+20AA NEW SHEQEL SIGN */
-#define XK_DongSign 0x10020ab /* U+20AB DONG SIGN */
#define XK_EuroSign 0x20ac /* U+20AC EURO SIGN */
#endif /* XK_CURRENCY */
-#ifdef XK_MATHEMATICAL
-/* one, two and three are defined above. */
-#define XK_zerosuperior 0x1002070 /* U+2070 SUPERSCRIPT ZERO */
-#define XK_foursuperior 0x1002074 /* U+2074 SUPERSCRIPT FOUR */
-#define XK_fivesuperior 0x1002075 /* U+2075 SUPERSCRIPT FIVE */
-#define XK_sixsuperior 0x1002076 /* U+2076 SUPERSCRIPT SIX */
-#define XK_sevensuperior 0x1002077 /* U+2077 SUPERSCRIPT SEVEN */
-#define XK_eightsuperior 0x1002078 /* U+2078 SUPERSCRIPT EIGHT */
-#define XK_ninesuperior 0x1002079 /* U+2079 SUPERSCRIPT NINE */
-#define XK_zerosubscript 0x1002080 /* U+2080 SUBSCRIPT ZERO */
-#define XK_onesubscript 0x1002081 /* U+2081 SUBSCRIPT ONE */
-#define XK_twosubscript 0x1002082 /* U+2082 SUBSCRIPT TWO */
-#define XK_threesubscript 0x1002083 /* U+2083 SUBSCRIPT THREE */
-#define XK_foursubscript 0x1002084 /* U+2084 SUBSCRIPT FOUR */
-#define XK_fivesubscript 0x1002085 /* U+2085 SUBSCRIPT FIVE */
-#define XK_sixsubscript 0x1002086 /* U+2086 SUBSCRIPT SIX */
-#define XK_sevensubscript 0x1002087 /* U+2087 SUBSCRIPT SEVEN */
-#define XK_eightsubscript 0x1002088 /* U+2088 SUBSCRIPT EIGHT */
-#define XK_ninesubscript 0x1002089 /* U+2089 SUBSCRIPT NINE */
-#define XK_partdifferential 0x1002202 /* U+2202 PARTIAL DIFFERENTIAL */
-#define XK_emptyset 0x1002205 /* U+2205 NULL SET */
-#define XK_elementof 0x1002208 /* U+2208 ELEMENT OF */
-#define XK_notelementof 0x1002209 /* U+2209 NOT AN ELEMENT OF */
-#define XK_containsas 0x100220B /* U+220B CONTAINS AS MEMBER */
-#define XK_squareroot 0x100221A /* U+221A SQUARE ROOT */
-#define XK_cuberoot 0x100221B /* U+221B CUBE ROOT */
-#define XK_fourthroot 0x100221C /* U+221C FOURTH ROOT */
-#define XK_dintegral 0x100222C /* U+222C DOUBLE INTEGRAL */
-#define XK_tintegral 0x100222D /* U+222D TRIPLE INTEGRAL */
-#define XK_because 0x1002235 /* U+2235 BECAUSE */
-#define XK_approxeq 0x1002248 /* U+2245 ALMOST EQUAL TO */
-#define XK_notapproxeq 0x1002247 /* U+2247 NOT ALMOST EQUAL TO */
-#define XK_notidentical 0x1002262 /* U+2262 NOT IDENTICAL TO */
-#define XK_stricteq 0x1002263 /* U+2263 STRICTLY EQUIVALENT TO */
-#endif /* XK_MATHEMATICAL */
-
#ifdef XK_BRAILLE
#define XK_braille_dot_1 0xfff1
#define XK_braille_dot_2 0xfff2
@@ -2155,352 +1731,8 @@ SOFTWARE.
#define XK_braille_dot_8 0xfff8
#define XK_braille_dot_9 0xfff9
#define XK_braille_dot_10 0xfffa
-#define XK_braille_blank 0x1002800 /* U+2800 BRAILLE PATTERN BLANK */
-#define XK_braille_dots_1 0x1002801 /* U+2801 BRAILLE PATTERN DOTS-1 */
-#define XK_braille_dots_2 0x1002802 /* U+2802 BRAILLE PATTERN DOTS-2 */
-#define XK_braille_dots_12 0x1002803 /* U+2803 BRAILLE PATTERN DOTS-12 */
-#define XK_braille_dots_3 0x1002804 /* U+2804 BRAILLE PATTERN DOTS-3 */
-#define XK_braille_dots_13 0x1002805 /* U+2805 BRAILLE PATTERN DOTS-13 */
-#define XK_braille_dots_23 0x1002806 /* U+2806 BRAILLE PATTERN DOTS-23 */
-#define XK_braille_dots_123 0x1002807 /* U+2807 BRAILLE PATTERN DOTS-123 */
-#define XK_braille_dots_4 0x1002808 /* U+2808 BRAILLE PATTERN DOTS-4 */
-#define XK_braille_dots_14 0x1002809 /* U+2809 BRAILLE PATTERN DOTS-14 */
-#define XK_braille_dots_24 0x100280a /* U+280a BRAILLE PATTERN DOTS-24 */
-#define XK_braille_dots_124 0x100280b /* U+280b BRAILLE PATTERN DOTS-124 */
-#define XK_braille_dots_34 0x100280c /* U+280c BRAILLE PATTERN DOTS-34 */
-#define XK_braille_dots_134 0x100280d /* U+280d BRAILLE PATTERN DOTS-134 */
-#define XK_braille_dots_234 0x100280e /* U+280e BRAILLE PATTERN DOTS-234 */
-#define XK_braille_dots_1234 0x100280f /* U+280f BRAILLE PATTERN DOTS-1234 */
-#define XK_braille_dots_5 0x1002810 /* U+2810 BRAILLE PATTERN DOTS-5 */
-#define XK_braille_dots_15 0x1002811 /* U+2811 BRAILLE PATTERN DOTS-15 */
-#define XK_braille_dots_25 0x1002812 /* U+2812 BRAILLE PATTERN DOTS-25 */
-#define XK_braille_dots_125 0x1002813 /* U+2813 BRAILLE PATTERN DOTS-125 */
-#define XK_braille_dots_35 0x1002814 /* U+2814 BRAILLE PATTERN DOTS-35 */
-#define XK_braille_dots_135 0x1002815 /* U+2815 BRAILLE PATTERN DOTS-135 */
-#define XK_braille_dots_235 0x1002816 /* U+2816 BRAILLE PATTERN DOTS-235 */
-#define XK_braille_dots_1235 0x1002817 /* U+2817 BRAILLE PATTERN DOTS-1235 */
-#define XK_braille_dots_45 0x1002818 /* U+2818 BRAILLE PATTERN DOTS-45 */
-#define XK_braille_dots_145 0x1002819 /* U+2819 BRAILLE PATTERN DOTS-145 */
-#define XK_braille_dots_245 0x100281a /* U+281a BRAILLE PATTERN DOTS-245 */
-#define XK_braille_dots_1245 0x100281b /* U+281b BRAILLE PATTERN DOTS-1245 */
-#define XK_braille_dots_345 0x100281c /* U+281c BRAILLE PATTERN DOTS-345 */
-#define XK_braille_dots_1345 0x100281d /* U+281d BRAILLE PATTERN DOTS-1345 */
-#define XK_braille_dots_2345 0x100281e /* U+281e BRAILLE PATTERN DOTS-2345 */
-#define XK_braille_dots_12345 0x100281f /* U+281f BRAILLE PATTERN DOTS-12345 */
-#define XK_braille_dots_6 0x1002820 /* U+2820 BRAILLE PATTERN DOTS-6 */
-#define XK_braille_dots_16 0x1002821 /* U+2821 BRAILLE PATTERN DOTS-16 */
-#define XK_braille_dots_26 0x1002822 /* U+2822 BRAILLE PATTERN DOTS-26 */
-#define XK_braille_dots_126 0x1002823 /* U+2823 BRAILLE PATTERN DOTS-126 */
-#define XK_braille_dots_36 0x1002824 /* U+2824 BRAILLE PATTERN DOTS-36 */
-#define XK_braille_dots_136 0x1002825 /* U+2825 BRAILLE PATTERN DOTS-136 */
-#define XK_braille_dots_236 0x1002826 /* U+2826 BRAILLE PATTERN DOTS-236 */
-#define XK_braille_dots_1236 0x1002827 /* U+2827 BRAILLE PATTERN DOTS-1236 */
-#define XK_braille_dots_46 0x1002828 /* U+2828 BRAILLE PATTERN DOTS-46 */
-#define XK_braille_dots_146 0x1002829 /* U+2829 BRAILLE PATTERN DOTS-146 */
-#define XK_braille_dots_246 0x100282a /* U+282a BRAILLE PATTERN DOTS-246 */
-#define XK_braille_dots_1246 0x100282b /* U+282b BRAILLE PATTERN DOTS-1246 */
-#define XK_braille_dots_346 0x100282c /* U+282c BRAILLE PATTERN DOTS-346 */
-#define XK_braille_dots_1346 0x100282d /* U+282d BRAILLE PATTERN DOTS-1346 */
-#define XK_braille_dots_2346 0x100282e /* U+282e BRAILLE PATTERN DOTS-2346 */
-#define XK_braille_dots_12346 0x100282f /* U+282f BRAILLE PATTERN DOTS-12346 */
-#define XK_braille_dots_56 0x1002830 /* U+2830 BRAILLE PATTERN DOTS-56 */
-#define XK_braille_dots_156 0x1002831 /* U+2831 BRAILLE PATTERN DOTS-156 */
-#define XK_braille_dots_256 0x1002832 /* U+2832 BRAILLE PATTERN DOTS-256 */
-#define XK_braille_dots_1256 0x1002833 /* U+2833 BRAILLE PATTERN DOTS-1256 */
-#define XK_braille_dots_356 0x1002834 /* U+2834 BRAILLE PATTERN DOTS-356 */
-#define XK_braille_dots_1356 0x1002835 /* U+2835 BRAILLE PATTERN DOTS-1356 */
-#define XK_braille_dots_2356 0x1002836 /* U+2836 BRAILLE PATTERN DOTS-2356 */
-#define XK_braille_dots_12356 0x1002837 /* U+2837 BRAILLE PATTERN DOTS-12356 */
-#define XK_braille_dots_456 0x1002838 /* U+2838 BRAILLE PATTERN DOTS-456 */
-#define XK_braille_dots_1456 0x1002839 /* U+2839 BRAILLE PATTERN DOTS-1456 */
-#define XK_braille_dots_2456 0x100283a /* U+283a BRAILLE PATTERN DOTS-2456 */
-#define XK_braille_dots_12456 0x100283b /* U+283b BRAILLE PATTERN DOTS-12456 */
-#define XK_braille_dots_3456 0x100283c /* U+283c BRAILLE PATTERN DOTS-3456 */
-#define XK_braille_dots_13456 0x100283d /* U+283d BRAILLE PATTERN DOTS-13456 */
-#define XK_braille_dots_23456 0x100283e /* U+283e BRAILLE PATTERN DOTS-23456 */
-#define XK_braille_dots_123456 0x100283f /* U+283f BRAILLE PATTERN DOTS-123456 */
-#define XK_braille_dots_7 0x1002840 /* U+2840 BRAILLE PATTERN DOTS-7 */
-#define XK_braille_dots_17 0x1002841 /* U+2841 BRAILLE PATTERN DOTS-17 */
-#define XK_braille_dots_27 0x1002842 /* U+2842 BRAILLE PATTERN DOTS-27 */
-#define XK_braille_dots_127 0x1002843 /* U+2843 BRAILLE PATTERN DOTS-127 */
-#define XK_braille_dots_37 0x1002844 /* U+2844 BRAILLE PATTERN DOTS-37 */
-#define XK_braille_dots_137 0x1002845 /* U+2845 BRAILLE PATTERN DOTS-137 */
-#define XK_braille_dots_237 0x1002846 /* U+2846 BRAILLE PATTERN DOTS-237 */
-#define XK_braille_dots_1237 0x1002847 /* U+2847 BRAILLE PATTERN DOTS-1237 */
-#define XK_braille_dots_47 0x1002848 /* U+2848 BRAILLE PATTERN DOTS-47 */
-#define XK_braille_dots_147 0x1002849 /* U+2849 BRAILLE PATTERN DOTS-147 */
-#define XK_braille_dots_247 0x100284a /* U+284a BRAILLE PATTERN DOTS-247 */
-#define XK_braille_dots_1247 0x100284b /* U+284b BRAILLE PATTERN DOTS-1247 */
-#define XK_braille_dots_347 0x100284c /* U+284c BRAILLE PATTERN DOTS-347 */
-#define XK_braille_dots_1347 0x100284d /* U+284d BRAILLE PATTERN DOTS-1347 */
-#define XK_braille_dots_2347 0x100284e /* U+284e BRAILLE PATTERN DOTS-2347 */
-#define XK_braille_dots_12347 0x100284f /* U+284f BRAILLE PATTERN DOTS-12347 */
-#define XK_braille_dots_57 0x1002850 /* U+2850 BRAILLE PATTERN DOTS-57 */
-#define XK_braille_dots_157 0x1002851 /* U+2851 BRAILLE PATTERN DOTS-157 */
-#define XK_braille_dots_257 0x1002852 /* U+2852 BRAILLE PATTERN DOTS-257 */
-#define XK_braille_dots_1257 0x1002853 /* U+2853 BRAILLE PATTERN DOTS-1257 */
-#define XK_braille_dots_357 0x1002854 /* U+2854 BRAILLE PATTERN DOTS-357 */
-#define XK_braille_dots_1357 0x1002855 /* U+2855 BRAILLE PATTERN DOTS-1357 */
-#define XK_braille_dots_2357 0x1002856 /* U+2856 BRAILLE PATTERN DOTS-2357 */
-#define XK_braille_dots_12357 0x1002857 /* U+2857 BRAILLE PATTERN DOTS-12357 */
-#define XK_braille_dots_457 0x1002858 /* U+2858 BRAILLE PATTERN DOTS-457 */
-#define XK_braille_dots_1457 0x1002859 /* U+2859 BRAILLE PATTERN DOTS-1457 */
-#define XK_braille_dots_2457 0x100285a /* U+285a BRAILLE PATTERN DOTS-2457 */
-#define XK_braille_dots_12457 0x100285b /* U+285b BRAILLE PATTERN DOTS-12457 */
-#define XK_braille_dots_3457 0x100285c /* U+285c BRAILLE PATTERN DOTS-3457 */
-#define XK_braille_dots_13457 0x100285d /* U+285d BRAILLE PATTERN DOTS-13457 */
-#define XK_braille_dots_23457 0x100285e /* U+285e BRAILLE PATTERN DOTS-23457 */
-#define XK_braille_dots_123457 0x100285f /* U+285f BRAILLE PATTERN DOTS-123457 */
-#define XK_braille_dots_67 0x1002860 /* U+2860 BRAILLE PATTERN DOTS-67 */
-#define XK_braille_dots_167 0x1002861 /* U+2861 BRAILLE PATTERN DOTS-167 */
-#define XK_braille_dots_267 0x1002862 /* U+2862 BRAILLE PATTERN DOTS-267 */
-#define XK_braille_dots_1267 0x1002863 /* U+2863 BRAILLE PATTERN DOTS-1267 */
-#define XK_braille_dots_367 0x1002864 /* U+2864 BRAILLE PATTERN DOTS-367 */
-#define XK_braille_dots_1367 0x1002865 /* U+2865 BRAILLE PATTERN DOTS-1367 */
-#define XK_braille_dots_2367 0x1002866 /* U+2866 BRAILLE PATTERN DOTS-2367 */
-#define XK_braille_dots_12367 0x1002867 /* U+2867 BRAILLE PATTERN DOTS-12367 */
-#define XK_braille_dots_467 0x1002868 /* U+2868 BRAILLE PATTERN DOTS-467 */
-#define XK_braille_dots_1467 0x1002869 /* U+2869 BRAILLE PATTERN DOTS-1467 */
-#define XK_braille_dots_2467 0x100286a /* U+286a BRAILLE PATTERN DOTS-2467 */
-#define XK_braille_dots_12467 0x100286b /* U+286b BRAILLE PATTERN DOTS-12467 */
-#define XK_braille_dots_3467 0x100286c /* U+286c BRAILLE PATTERN DOTS-3467 */
-#define XK_braille_dots_13467 0x100286d /* U+286d BRAILLE PATTERN DOTS-13467 */
-#define XK_braille_dots_23467 0x100286e /* U+286e BRAILLE PATTERN DOTS-23467 */
-#define XK_braille_dots_123467 0x100286f /* U+286f BRAILLE PATTERN DOTS-123467 */
-#define XK_braille_dots_567 0x1002870 /* U+2870 BRAILLE PATTERN DOTS-567 */
-#define XK_braille_dots_1567 0x1002871 /* U+2871 BRAILLE PATTERN DOTS-1567 */
-#define XK_braille_dots_2567 0x1002872 /* U+2872 BRAILLE PATTERN DOTS-2567 */
-#define XK_braille_dots_12567 0x1002873 /* U+2873 BRAILLE PATTERN DOTS-12567 */
-#define XK_braille_dots_3567 0x1002874 /* U+2874 BRAILLE PATTERN DOTS-3567 */
-#define XK_braille_dots_13567 0x1002875 /* U+2875 BRAILLE PATTERN DOTS-13567 */
-#define XK_braille_dots_23567 0x1002876 /* U+2876 BRAILLE PATTERN DOTS-23567 */
-#define XK_braille_dots_123567 0x1002877 /* U+2877 BRAILLE PATTERN DOTS-123567 */
-#define XK_braille_dots_4567 0x1002878 /* U+2878 BRAILLE PATTERN DOTS-4567 */
-#define XK_braille_dots_14567 0x1002879 /* U+2879 BRAILLE PATTERN DOTS-14567 */
-#define XK_braille_dots_24567 0x100287a /* U+287a BRAILLE PATTERN DOTS-24567 */
-#define XK_braille_dots_124567 0x100287b /* U+287b BRAILLE PATTERN DOTS-124567 */
-#define XK_braille_dots_34567 0x100287c /* U+287c BRAILLE PATTERN DOTS-34567 */
-#define XK_braille_dots_134567 0x100287d /* U+287d BRAILLE PATTERN DOTS-134567 */
-#define XK_braille_dots_234567 0x100287e /* U+287e BRAILLE PATTERN DOTS-234567 */
-#define XK_braille_dots_1234567 0x100287f /* U+287f BRAILLE PATTERN DOTS-1234567 */
-#define XK_braille_dots_8 0x1002880 /* U+2880 BRAILLE PATTERN DOTS-8 */
-#define XK_braille_dots_18 0x1002881 /* U+2881 BRAILLE PATTERN DOTS-18 */
-#define XK_braille_dots_28 0x1002882 /* U+2882 BRAILLE PATTERN DOTS-28 */
-#define XK_braille_dots_128 0x1002883 /* U+2883 BRAILLE PATTERN DOTS-128 */
-#define XK_braille_dots_38 0x1002884 /* U+2884 BRAILLE PATTERN DOTS-38 */
-#define XK_braille_dots_138 0x1002885 /* U+2885 BRAILLE PATTERN DOTS-138 */
-#define XK_braille_dots_238 0x1002886 /* U+2886 BRAILLE PATTERN DOTS-238 */
-#define XK_braille_dots_1238 0x1002887 /* U+2887 BRAILLE PATTERN DOTS-1238 */
-#define XK_braille_dots_48 0x1002888 /* U+2888 BRAILLE PATTERN DOTS-48 */
-#define XK_braille_dots_148 0x1002889 /* U+2889 BRAILLE PATTERN DOTS-148 */
-#define XK_braille_dots_248 0x100288a /* U+288a BRAILLE PATTERN DOTS-248 */
-#define XK_braille_dots_1248 0x100288b /* U+288b BRAILLE PATTERN DOTS-1248 */
-#define XK_braille_dots_348 0x100288c /* U+288c BRAILLE PATTERN DOTS-348 */
-#define XK_braille_dots_1348 0x100288d /* U+288d BRAILLE PATTERN DOTS-1348 */
-#define XK_braille_dots_2348 0x100288e /* U+288e BRAILLE PATTERN DOTS-2348 */
-#define XK_braille_dots_12348 0x100288f /* U+288f BRAILLE PATTERN DOTS-12348 */
-#define XK_braille_dots_58 0x1002890 /* U+2890 BRAILLE PATTERN DOTS-58 */
-#define XK_braille_dots_158 0x1002891 /* U+2891 BRAILLE PATTERN DOTS-158 */
-#define XK_braille_dots_258 0x1002892 /* U+2892 BRAILLE PATTERN DOTS-258 */
-#define XK_braille_dots_1258 0x1002893 /* U+2893 BRAILLE PATTERN DOTS-1258 */
-#define XK_braille_dots_358 0x1002894 /* U+2894 BRAILLE PATTERN DOTS-358 */
-#define XK_braille_dots_1358 0x1002895 /* U+2895 BRAILLE PATTERN DOTS-1358 */
-#define XK_braille_dots_2358 0x1002896 /* U+2896 BRAILLE PATTERN DOTS-2358 */
-#define XK_braille_dots_12358 0x1002897 /* U+2897 BRAILLE PATTERN DOTS-12358 */
-#define XK_braille_dots_458 0x1002898 /* U+2898 BRAILLE PATTERN DOTS-458 */
-#define XK_braille_dots_1458 0x1002899 /* U+2899 BRAILLE PATTERN DOTS-1458 */
-#define XK_braille_dots_2458 0x100289a /* U+289a BRAILLE PATTERN DOTS-2458 */
-#define XK_braille_dots_12458 0x100289b /* U+289b BRAILLE PATTERN DOTS-12458 */
-#define XK_braille_dots_3458 0x100289c /* U+289c BRAILLE PATTERN DOTS-3458 */
-#define XK_braille_dots_13458 0x100289d /* U+289d BRAILLE PATTERN DOTS-13458 */
-#define XK_braille_dots_23458 0x100289e /* U+289e BRAILLE PATTERN DOTS-23458 */
-#define XK_braille_dots_123458 0x100289f /* U+289f BRAILLE PATTERN DOTS-123458 */
-#define XK_braille_dots_68 0x10028a0 /* U+28a0 BRAILLE PATTERN DOTS-68 */
-#define XK_braille_dots_168 0x10028a1 /* U+28a1 BRAILLE PATTERN DOTS-168 */
-#define XK_braille_dots_268 0x10028a2 /* U+28a2 BRAILLE PATTERN DOTS-268 */
-#define XK_braille_dots_1268 0x10028a3 /* U+28a3 BRAILLE PATTERN DOTS-1268 */
-#define XK_braille_dots_368 0x10028a4 /* U+28a4 BRAILLE PATTERN DOTS-368 */
-#define XK_braille_dots_1368 0x10028a5 /* U+28a5 BRAILLE PATTERN DOTS-1368 */
-#define XK_braille_dots_2368 0x10028a6 /* U+28a6 BRAILLE PATTERN DOTS-2368 */
-#define XK_braille_dots_12368 0x10028a7 /* U+28a7 BRAILLE PATTERN DOTS-12368 */
-#define XK_braille_dots_468 0x10028a8 /* U+28a8 BRAILLE PATTERN DOTS-468 */
-#define XK_braille_dots_1468 0x10028a9 /* U+28a9 BRAILLE PATTERN DOTS-1468 */
-#define XK_braille_dots_2468 0x10028aa /* U+28aa BRAILLE PATTERN DOTS-2468 */
-#define XK_braille_dots_12468 0x10028ab /* U+28ab BRAILLE PATTERN DOTS-12468 */
-#define XK_braille_dots_3468 0x10028ac /* U+28ac BRAILLE PATTERN DOTS-3468 */
-#define XK_braille_dots_13468 0x10028ad /* U+28ad BRAILLE PATTERN DOTS-13468 */
-#define XK_braille_dots_23468 0x10028ae /* U+28ae BRAILLE PATTERN DOTS-23468 */
-#define XK_braille_dots_123468 0x10028af /* U+28af BRAILLE PATTERN DOTS-123468 */
-#define XK_braille_dots_568 0x10028b0 /* U+28b0 BRAILLE PATTERN DOTS-568 */
-#define XK_braille_dots_1568 0x10028b1 /* U+28b1 BRAILLE PATTERN DOTS-1568 */
-#define XK_braille_dots_2568 0x10028b2 /* U+28b2 BRAILLE PATTERN DOTS-2568 */
-#define XK_braille_dots_12568 0x10028b3 /* U+28b3 BRAILLE PATTERN DOTS-12568 */
-#define XK_braille_dots_3568 0x10028b4 /* U+28b4 BRAILLE PATTERN DOTS-3568 */
-#define XK_braille_dots_13568 0x10028b5 /* U+28b5 BRAILLE PATTERN DOTS-13568 */
-#define XK_braille_dots_23568 0x10028b6 /* U+28b6 BRAILLE PATTERN DOTS-23568 */
-#define XK_braille_dots_123568 0x10028b7 /* U+28b7 BRAILLE PATTERN DOTS-123568 */
-#define XK_braille_dots_4568 0x10028b8 /* U+28b8 BRAILLE PATTERN DOTS-4568 */
-#define XK_braille_dots_14568 0x10028b9 /* U+28b9 BRAILLE PATTERN DOTS-14568 */
-#define XK_braille_dots_24568 0x10028ba /* U+28ba BRAILLE PATTERN DOTS-24568 */
-#define XK_braille_dots_124568 0x10028bb /* U+28bb BRAILLE PATTERN DOTS-124568 */
-#define XK_braille_dots_34568 0x10028bc /* U+28bc BRAILLE PATTERN DOTS-34568 */
-#define XK_braille_dots_134568 0x10028bd /* U+28bd BRAILLE PATTERN DOTS-134568 */
-#define XK_braille_dots_234568 0x10028be /* U+28be BRAILLE PATTERN DOTS-234568 */
-#define XK_braille_dots_1234568 0x10028bf /* U+28bf BRAILLE PATTERN DOTS-1234568 */
-#define XK_braille_dots_78 0x10028c0 /* U+28c0 BRAILLE PATTERN DOTS-78 */
-#define XK_braille_dots_178 0x10028c1 /* U+28c1 BRAILLE PATTERN DOTS-178 */
-#define XK_braille_dots_278 0x10028c2 /* U+28c2 BRAILLE PATTERN DOTS-278 */
-#define XK_braille_dots_1278 0x10028c3 /* U+28c3 BRAILLE PATTERN DOTS-1278 */
-#define XK_braille_dots_378 0x10028c4 /* U+28c4 BRAILLE PATTERN DOTS-378 */
-#define XK_braille_dots_1378 0x10028c5 /* U+28c5 BRAILLE PATTERN DOTS-1378 */
-#define XK_braille_dots_2378 0x10028c6 /* U+28c6 BRAILLE PATTERN DOTS-2378 */
-#define XK_braille_dots_12378 0x10028c7 /* U+28c7 BRAILLE PATTERN DOTS-12378 */
-#define XK_braille_dots_478 0x10028c8 /* U+28c8 BRAILLE PATTERN DOTS-478 */
-#define XK_braille_dots_1478 0x10028c9 /* U+28c9 BRAILLE PATTERN DOTS-1478 */
-#define XK_braille_dots_2478 0x10028ca /* U+28ca BRAILLE PATTERN DOTS-2478 */
-#define XK_braille_dots_12478 0x10028cb /* U+28cb BRAILLE PATTERN DOTS-12478 */
-#define XK_braille_dots_3478 0x10028cc /* U+28cc BRAILLE PATTERN DOTS-3478 */
-#define XK_braille_dots_13478 0x10028cd /* U+28cd BRAILLE PATTERN DOTS-13478 */
-#define XK_braille_dots_23478 0x10028ce /* U+28ce BRAILLE PATTERN DOTS-23478 */
-#define XK_braille_dots_123478 0x10028cf /* U+28cf BRAILLE PATTERN DOTS-123478 */
-#define XK_braille_dots_578 0x10028d0 /* U+28d0 BRAILLE PATTERN DOTS-578 */
-#define XK_braille_dots_1578 0x10028d1 /* U+28d1 BRAILLE PATTERN DOTS-1578 */
-#define XK_braille_dots_2578 0x10028d2 /* U+28d2 BRAILLE PATTERN DOTS-2578 */
-#define XK_braille_dots_12578 0x10028d3 /* U+28d3 BRAILLE PATTERN DOTS-12578 */
-#define XK_braille_dots_3578 0x10028d4 /* U+28d4 BRAILLE PATTERN DOTS-3578 */
-#define XK_braille_dots_13578 0x10028d5 /* U+28d5 BRAILLE PATTERN DOTS-13578 */
-#define XK_braille_dots_23578 0x10028d6 /* U+28d6 BRAILLE PATTERN DOTS-23578 */
-#define XK_braille_dots_123578 0x10028d7 /* U+28d7 BRAILLE PATTERN DOTS-123578 */
-#define XK_braille_dots_4578 0x10028d8 /* U+28d8 BRAILLE PATTERN DOTS-4578 */
-#define XK_braille_dots_14578 0x10028d9 /* U+28d9 BRAILLE PATTERN DOTS-14578 */
-#define XK_braille_dots_24578 0x10028da /* U+28da BRAILLE PATTERN DOTS-24578 */
-#define XK_braille_dots_124578 0x10028db /* U+28db BRAILLE PATTERN DOTS-124578 */
-#define XK_braille_dots_34578 0x10028dc /* U+28dc BRAILLE PATTERN DOTS-34578 */
-#define XK_braille_dots_134578 0x10028dd /* U+28dd BRAILLE PATTERN DOTS-134578 */
-#define XK_braille_dots_234578 0x10028de /* U+28de BRAILLE PATTERN DOTS-234578 */
-#define XK_braille_dots_1234578 0x10028df /* U+28df BRAILLE PATTERN DOTS-1234578 */
-#define XK_braille_dots_678 0x10028e0 /* U+28e0 BRAILLE PATTERN DOTS-678 */
-#define XK_braille_dots_1678 0x10028e1 /* U+28e1 BRAILLE PATTERN DOTS-1678 */
-#define XK_braille_dots_2678 0x10028e2 /* U+28e2 BRAILLE PATTERN DOTS-2678 */
-#define XK_braille_dots_12678 0x10028e3 /* U+28e3 BRAILLE PATTERN DOTS-12678 */
-#define XK_braille_dots_3678 0x10028e4 /* U+28e4 BRAILLE PATTERN DOTS-3678 */
-#define XK_braille_dots_13678 0x10028e5 /* U+28e5 BRAILLE PATTERN DOTS-13678 */
-#define XK_braille_dots_23678 0x10028e6 /* U+28e6 BRAILLE PATTERN DOTS-23678 */
-#define XK_braille_dots_123678 0x10028e7 /* U+28e7 BRAILLE PATTERN DOTS-123678 */
-#define XK_braille_dots_4678 0x10028e8 /* U+28e8 BRAILLE PATTERN DOTS-4678 */
-#define XK_braille_dots_14678 0x10028e9 /* U+28e9 BRAILLE PATTERN DOTS-14678 */
-#define XK_braille_dots_24678 0x10028ea /* U+28ea BRAILLE PATTERN DOTS-24678 */
-#define XK_braille_dots_124678 0x10028eb /* U+28eb BRAILLE PATTERN DOTS-124678 */
-#define XK_braille_dots_34678 0x10028ec /* U+28ec BRAILLE PATTERN DOTS-34678 */
-#define XK_braille_dots_134678 0x10028ed /* U+28ed BRAILLE PATTERN DOTS-134678 */
-#define XK_braille_dots_234678 0x10028ee /* U+28ee BRAILLE PATTERN DOTS-234678 */
-#define XK_braille_dots_1234678 0x10028ef /* U+28ef BRAILLE PATTERN DOTS-1234678 */
-#define XK_braille_dots_5678 0x10028f0 /* U+28f0 BRAILLE PATTERN DOTS-5678 */
-#define XK_braille_dots_15678 0x10028f1 /* U+28f1 BRAILLE PATTERN DOTS-15678 */
-#define XK_braille_dots_25678 0x10028f2 /* U+28f2 BRAILLE PATTERN DOTS-25678 */
-#define XK_braille_dots_125678 0x10028f3 /* U+28f3 BRAILLE PATTERN DOTS-125678 */
-#define XK_braille_dots_35678 0x10028f4 /* U+28f4 BRAILLE PATTERN DOTS-35678 */
-#define XK_braille_dots_135678 0x10028f5 /* U+28f5 BRAILLE PATTERN DOTS-135678 */
-#define XK_braille_dots_235678 0x10028f6 /* U+28f6 BRAILLE PATTERN DOTS-235678 */
-#define XK_braille_dots_1235678 0x10028f7 /* U+28f7 BRAILLE PATTERN DOTS-1235678 */
-#define XK_braille_dots_45678 0x10028f8 /* U+28f8 BRAILLE PATTERN DOTS-45678 */
-#define XK_braille_dots_145678 0x10028f9 /* U+28f9 BRAILLE PATTERN DOTS-145678 */
-#define XK_braille_dots_245678 0x10028fa /* U+28fa BRAILLE PATTERN DOTS-245678 */
-#define XK_braille_dots_1245678 0x10028fb /* U+28fb BRAILLE PATTERN DOTS-1245678 */
-#define XK_braille_dots_345678 0x10028fc /* U+28fc BRAILLE PATTERN DOTS-345678 */
-#define XK_braille_dots_1345678 0x10028fd /* U+28fd BRAILLE PATTERN DOTS-1345678 */
-#define XK_braille_dots_2345678 0x10028fe /* U+28fe BRAILLE PATTERN DOTS-2345678 */
-#define XK_braille_dots_12345678 0x10028ff /* U+28ff BRAILLE PATTERN DOTS-12345678 */
#endif /* XK_BRAILLE */
-/*
- * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf)
- * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html
- */
-
-#ifdef XK_SINHALA
-#define XK_Sinh_ng 0x1000d82 /* U+0D82 SINHALA ANUSVARAYA */
-#define XK_Sinh_h2 0x1000d83 /* U+0D83 SINHALA VISARGAYA */
-#define XK_Sinh_a 0x1000d85 /* U+0D85 SINHALA AYANNA */
-#define XK_Sinh_aa 0x1000d86 /* U+0D86 SINHALA AAYANNA */
-#define XK_Sinh_ae 0x1000d87 /* U+0D87 SINHALA AEYANNA */
-#define XK_Sinh_aee 0x1000d88 /* U+0D88 SINHALA AEEYANNA */
-#define XK_Sinh_i 0x1000d89 /* U+0D89 SINHALA IYANNA */
-#define XK_Sinh_ii 0x1000d8a /* U+0D8A SINHALA IIYANNA */
-#define XK_Sinh_u 0x1000d8b /* U+0D8B SINHALA UYANNA */
-#define XK_Sinh_uu 0x1000d8c /* U+0D8C SINHALA UUYANNA */
-#define XK_Sinh_ri 0x1000d8d /* U+0D8D SINHALA IRUYANNA */
-#define XK_Sinh_rii 0x1000d8e /* U+0D8E SINHALA IRUUYANNA */
-#define XK_Sinh_lu 0x1000d8f /* U+0D8F SINHALA ILUYANNA */
-#define XK_Sinh_luu 0x1000d90 /* U+0D90 SINHALA ILUUYANNA */
-#define XK_Sinh_e 0x1000d91 /* U+0D91 SINHALA EYANNA */
-#define XK_Sinh_ee 0x1000d92 /* U+0D92 SINHALA EEYANNA */
-#define XK_Sinh_ai 0x1000d93 /* U+0D93 SINHALA AIYANNA */
-#define XK_Sinh_o 0x1000d94 /* U+0D94 SINHALA OYANNA */
-#define XK_Sinh_oo 0x1000d95 /* U+0D95 SINHALA OOYANNA */
-#define XK_Sinh_au 0x1000d96 /* U+0D96 SINHALA AUYANNA */
-#define XK_Sinh_ka 0x1000d9a /* U+0D9A SINHALA KAYANNA */
-#define XK_Sinh_kha 0x1000d9b /* U+0D9B SINHALA MAHA. KAYANNA */
-#define XK_Sinh_ga 0x1000d9c /* U+0D9C SINHALA GAYANNA */
-#define XK_Sinh_gha 0x1000d9d /* U+0D9D SINHALA MAHA. GAYANNA */
-#define XK_Sinh_ng2 0x1000d9e /* U+0D9E SINHALA KANTAJA NAASIKYAYA */
-#define XK_Sinh_nga 0x1000d9f /* U+0D9F SINHALA SANYAKA GAYANNA */
-#define XK_Sinh_ca 0x1000da0 /* U+0DA0 SINHALA CAYANNA */
-#define XK_Sinh_cha 0x1000da1 /* U+0DA1 SINHALA MAHA. CAYANNA */
-#define XK_Sinh_ja 0x1000da2 /* U+0DA2 SINHALA JAYANNA */
-#define XK_Sinh_jha 0x1000da3 /* U+0DA3 SINHALA MAHA. JAYANNA */
-#define XK_Sinh_nya 0x1000da4 /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */
-#define XK_Sinh_jnya 0x1000da5 /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */
-#define XK_Sinh_nja 0x1000da6 /* U+0DA6 SINHALA SANYAKA JAYANNA */
-#define XK_Sinh_tta 0x1000da7 /* U+0DA7 SINHALA TTAYANNA */
-#define XK_Sinh_ttha 0x1000da8 /* U+0DA8 SINHALA MAHA. TTAYANNA */
-#define XK_Sinh_dda 0x1000da9 /* U+0DA9 SINHALA DDAYANNA */
-#define XK_Sinh_ddha 0x1000daa /* U+0DAA SINHALA MAHA. DDAYANNA */
-#define XK_Sinh_nna 0x1000dab /* U+0DAB SINHALA MUURDHAJA NAYANNA */
-#define XK_Sinh_ndda 0x1000dac /* U+0DAC SINHALA SANYAKA DDAYANNA */
-#define XK_Sinh_tha 0x1000dad /* U+0DAD SINHALA TAYANNA */
-#define XK_Sinh_thha 0x1000dae /* U+0DAE SINHALA MAHA. TAYANNA */
-#define XK_Sinh_dha 0x1000daf /* U+0DAF SINHALA DAYANNA */
-#define XK_Sinh_dhha 0x1000db0 /* U+0DB0 SINHALA MAHA. DAYANNA */
-#define XK_Sinh_na 0x1000db1 /* U+0DB1 SINHALA DANTAJA NAYANNA */
-#define XK_Sinh_ndha 0x1000db3 /* U+0DB3 SINHALA SANYAKA DAYANNA */
-#define XK_Sinh_pa 0x1000db4 /* U+0DB4 SINHALA PAYANNA */
-#define XK_Sinh_pha 0x1000db5 /* U+0DB5 SINHALA MAHA. PAYANNA */
-#define XK_Sinh_ba 0x1000db6 /* U+0DB6 SINHALA BAYANNA */
-#define XK_Sinh_bha 0x1000db7 /* U+0DB7 SINHALA MAHA. BAYANNA */
-#define XK_Sinh_ma 0x1000db8 /* U+0DB8 SINHALA MAYANNA */
-#define XK_Sinh_mba 0x1000db9 /* U+0DB9 SINHALA AMBA BAYANNA */
-#define XK_Sinh_ya 0x1000dba /* U+0DBA SINHALA YAYANNA */
-#define XK_Sinh_ra 0x1000dbb /* U+0DBB SINHALA RAYANNA */
-#define XK_Sinh_la 0x1000dbd /* U+0DBD SINHALA DANTAJA LAYANNA */
-#define XK_Sinh_va 0x1000dc0 /* U+0DC0 SINHALA VAYANNA */
-#define XK_Sinh_sha 0x1000dc1 /* U+0DC1 SINHALA TAALUJA SAYANNA */
-#define XK_Sinh_ssha 0x1000dc2 /* U+0DC2 SINHALA MUURDHAJA SAYANNA */
-#define XK_Sinh_sa 0x1000dc3 /* U+0DC3 SINHALA DANTAJA SAYANNA */
-#define XK_Sinh_ha 0x1000dc4 /* U+0DC4 SINHALA HAYANNA */
-#define XK_Sinh_lla 0x1000dc5 /* U+0DC5 SINHALA MUURDHAJA LAYANNA */
-#define XK_Sinh_fa 0x1000dc6 /* U+0DC6 SINHALA FAYANNA */
-#define XK_Sinh_al 0x1000dca /* U+0DCA SINHALA AL-LAKUNA */
-#define XK_Sinh_aa2 0x1000dcf /* U+0DCF SINHALA AELA-PILLA */
-#define XK_Sinh_ae2 0x1000dd0 /* U+0DD0 SINHALA AEDA-PILLA */
-#define XK_Sinh_aee2 0x1000dd1 /* U+0DD1 SINHALA DIGA AEDA-PILLA */
-#define XK_Sinh_i2 0x1000dd2 /* U+0DD2 SINHALA IS-PILLA */
-#define XK_Sinh_ii2 0x1000dd3 /* U+0DD3 SINHALA DIGA IS-PILLA */
-#define XK_Sinh_u2 0x1000dd4 /* U+0DD4 SINHALA PAA-PILLA */
-#define XK_Sinh_uu2 0x1000dd6 /* U+0DD6 SINHALA DIGA PAA-PILLA */
-#define XK_Sinh_ru2 0x1000dd8 /* U+0DD8 SINHALA GAETTA-PILLA */
-#define XK_Sinh_e2 0x1000dd9 /* U+0DD9 SINHALA KOMBUVA */
-#define XK_Sinh_ee2 0x1000dda /* U+0DDA SINHALA DIGA KOMBUVA */
-#define XK_Sinh_ai2 0x1000ddb /* U+0DDB SINHALA KOMBU DEKA */
-#define XK_Sinh_o2 0x1000ddc /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/
-#define XK_Sinh_oo2 0x1000ddd /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/
-#define XK_Sinh_au2 0x1000dde /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */
-#define XK_Sinh_lu2 0x1000ddf /* U+0DDF SINHALA GAYANUKITTA */
-#define XK_Sinh_ruu2 0x1000df2 /* U+0DF2 SINHALA DIGA GAETTA-PILLA */
-#define XK_Sinh_luu2 0x1000df3 /* U+0DF3 SINHALA DIGA GAYANUKITTA */
-#define XK_Sinh_kunddaliya 0x1000df4 /* U+0DF4 SINHALA KUNDDALIYA */
-#endif /* XK_SINHALA */
-
/* Multimedia keys, defined same as on Linux
* /usr/include/pkg/libxkbcommon/xkbcommon/xkbcommon-keysyms.h
*/
diff --git a/xlib/xgc.c b/xlib/xgc.c
index b211286..873dcce 100644
--- a/xlib/xgc.c
+++ b/xlib/xgc.c
@@ -13,16 +13,8 @@
*/
#include "tkInt.h"
-
-#if !defined(MAC_OSX_TK)
-# include <X11/Xlib.h>
-# define TkpInitGCCache(gc)
-# define TkpFreeGCCache(gc)
-# define TkpGetGCCache(gc)
-#else
-# include <tkMacOSXInt.h>
-# include <X11/Xlib.h>
-# include <X11/X.h>
+#include <X11/Xlib.h>
+#if defined(MAC_OSX_TK)
#endif
@@ -30,10 +22,7 @@
typedef struct {
XGCValues gc;
char dash[MAX_DASH_LIST_SIZE];
-#ifdef MAC_OSX_TK
- TkpGCCache cache;
-#endif
-} XGCValuesWithCache;
+} XGCValuesWithDash;
/*
*----------------------------------------------------------------------
@@ -117,7 +106,7 @@ XCreateGC(
* initialization.
*/
- gp = (GC)ckalloc(sizeof(XGCValuesWithCache));
+ gp = (GC)ckalloc(sizeof(XGCValuesWithDash));
if (!gp) {
return NULL;
}
@@ -158,32 +147,9 @@ XCreateGC(
clip_mask->type = TKP_CLIP_PIXMAP;
clip_mask->value.pixmap = values->clip_mask;
}
- TkpInitGCCache(gp);
-
return gp;
}
-#ifdef MAC_OSX_TK
-/*
- *----------------------------------------------------------------------
- *
- * TkpGetGCCache --
- *
- * Results:
- * Pointer to the TkpGCCache at the end of the GC.
- *
- * Side effects:
- * None.
- *
- *----------------------------------------------------------------------
- */
-
-TkpGCCache*
-TkpGetGCCache(GC gc) {
- return (gc ? &((XGCValuesWithCache *)gc)->cache : NULL);
-}
-#endif
-
/*
*----------------------------------------------------------------------
*
@@ -265,7 +231,6 @@ int XFreeGC(
if (gc != NULL) {
FreeClipMask(gc);
- TkpFreeGCCache(gc);
ckfree(gc);
}
return Success;