first commit
364
tb/manual/default.css
Normal file
@@ -0,0 +1,364 @@
|
||||
a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: unset;
|
||||
vertical-align: baseline;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
blockquote::after, blockquote::before, q::after, q::before {
|
||||
content: "";
|
||||
content: none;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
pre {
|
||||
padding: 20px;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
background-color: #eee;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: .75rem;
|
||||
font-family: Lucida Console, Monaco, monospace;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
h3, h4 {
|
||||
font-size: 1.125rem;
|
||||
}
|
||||
|
||||
p {
|
||||
line-height: 1.5;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
b, strong {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
em, i {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
dl {
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
dl dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dl dd {
|
||||
margin-left: 40px;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
margin-left: 40px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
ul li ul {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
ul li ul li {
|
||||
list-style-type: circle;
|
||||
}
|
||||
|
||||
ul li ul li ul li {
|
||||
list-style-type: square;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
color: #07e;
|
||||
}
|
||||
|
||||
figure {
|
||||
border-radius: 4px;
|
||||
background-color: #ddd;
|
||||
display: inline-block;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
figure figcaption {
|
||||
padding: 5px 0 10px;
|
||||
text-align: center;
|
||||
font-size: .75rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
border-radius: 4px;
|
||||
padding: 1px;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
figure img {
|
||||
margin: 0;
|
||||
background-color: unset;
|
||||
}
|
||||
|
||||
p img {
|
||||
float: left;
|
||||
margin: 0 20px 20px 0;
|
||||
}
|
||||
|
||||
table {
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
white-space: nowrap;
|
||||
margin-left: 20px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
table colgroup col {
|
||||
width: unset !important;
|
||||
}
|
||||
|
||||
table thead tr th {
|
||||
font-weight: 700;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table tbody tr td, table thead tr th {
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px 10px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.shortcut, table tbody tr.odd {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.shortcut {
|
||||
font-size: .75rem;
|
||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
font-weight: 700;
|
||||
line-height: 1.5;
|
||||
border: 1px solid #ccc;
|
||||
margin: 0 2px;
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
br {
|
||||
display: none;
|
||||
}
|
||||
|
||||
dl, figure, h1, h2, h3, h4, img, ol, p, pre, table, ul {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
figure, pre {
|
||||
max-width: -webkit-max-content;
|
||||
max-width: -moz-max-content;
|
||||
max-width: max-content;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
figure {
|
||||
display: block;
|
||||
}
|
||||
|
||||
table {
|
||||
max-width: -webkit-max-content;
|
||||
max-width: -moz-max-content;
|
||||
max-width: max-content;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
display: flex;
|
||||
height: 100vh;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
body > main, body > nav, body > section {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
padding: 10px 20px 0;
|
||||
}
|
||||
|
||||
body #toc {
|
||||
min-width: -webkit-max-content;
|
||||
min-width: -moz-max-content;
|
||||
min-width: max-content;
|
||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
font-size: 16px;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
body #toc, body #toc_toggler {
|
||||
background-color: #eee;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
body #toc_toggler {
|
||||
min-width: 48px;
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding: 20px 0;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
body #toc_toggler > img {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
body #toc_toggler > a {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
body #toc_inner_header {
|
||||
margin-top: 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
body #toc_inner_header > img {
|
||||
display: inline-block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
body #toc_inner > ul {
|
||||
margin-top: 10px;
|
||||
margin-left: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
body #toc_inner > ul > li:not(:first-child) {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
body #toc_inner > ul > li > a {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
body #content {
|
||||
overflow: auto;
|
||||
font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
body #content h1, body #content h2, body #content h3, body #content h4 {
|
||||
width: 100%;
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
body #content_version {
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
body #content_version p {
|
||||
font-size: .75rem;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
margin: unset;
|
||||
}
|
||||
|
||||
body #content_version p span::before {
|
||||
content: " - ";
|
||||
}
|
||||
|
||||
body #content_version p span:first-child::before {
|
||||
content: unset;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
body #toc {
|
||||
display: none;
|
||||
width: 100vw;
|
||||
}
|
||||
|
||||
body #toc_toggler {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
body #toc_inner_header {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
body #toc_inner_header > img {
|
||||
display: none;
|
||||
}
|
||||
|
||||
body #toc:target {
|
||||
display: block;
|
||||
}
|
||||
|
||||
body #toc:target ~ #content {
|
||||
width: 0;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
body #content_version p span {
|
||||
display: list-item;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
body #content_version p span::before {
|
||||
content: unset;
|
||||
}
|
||||
}
|
||||
BIN
tb/manual/images/AxisRestriction.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
tb/manual/images/BrushFaceSelection.png
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
tb/manual/images/CSGConvexMerge.gif
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
tb/manual/images/CSGHollow.gif
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
tb/manual/images/CSGIntersect.gif
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
tb/manual/images/CSGSubtractArch.gif
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
tb/manual/images/CSGTexturing.gif
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
tb/manual/images/ClipModes.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
tb/manual/images/Compass3D.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
tb/manual/images/CompilationDialog.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
tb/manual/images/CreateBrushByDuplicatingPolygon.gif
Normal file
|
After Width: | Height: | Size: 690 KiB |
BIN
tb/manual/images/CreateEntityContextMenu.png
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
tb/manual/images/CreateSimpleBrush.gif
Normal file
|
After Width: | Height: | Size: 520 KiB |
BIN
tb/manual/images/DrillSelection.gif
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
tb/manual/images/DuplicateAndMove.gif
Normal file
|
After Width: | Height: | Size: 365 KiB |
BIN
tb/manual/images/DuplicateInPlace.gif
Normal file
|
After Width: | Height: | Size: 746 KiB |
BIN
tb/manual/images/EdgeTool.png
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
tb/manual/images/EntityBrowser.png
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
tb/manual/images/EntityDefinitionEditor.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
tb/manual/images/EntityLinkVisualization.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
tb/manual/images/EntityLinkVisualizationModes.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
tb/manual/images/EntityPropertyEditor.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
tb/manual/images/EntityPropertyEditorMultiSelection.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
tb/manual/images/FaceAttribsEditor.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
tb/manual/images/FaceTool.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
tb/manual/images/GameEngineDialog.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
tb/manual/images/GamePreferences.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
tb/manual/images/GameSelectionDialog.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
tb/manual/images/Inspector.png
Normal file
|
After Width: | Height: | Size: 216 KiB |
BIN
tb/manual/images/IssueBrowserContextMenu.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
tb/manual/images/IssueBrowserFilter.png
Normal file
|
After Width: | Height: | Size: 197 KiB |
BIN
tb/manual/images/KeyboardPreferences.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
tb/manual/images/LaunchGameEngineDialog.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
tb/manual/images/LayerEditor.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
tb/manual/images/Linked2DViewports.gif
Normal file
|
After Width: | Height: | Size: 318 KiB |
BIN
tb/manual/images/Locking.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
BIN
tb/manual/images/MainWindow.png
Normal file
|
After Width: | Height: | Size: 409 KiB |
BIN
tb/manual/images/MatchingClipPlane.gif
Normal file
|
After Width: | Height: | Size: 133 KiB |
BIN
tb/manual/images/ModEditor.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
tb/manual/images/MousePreferences.png
Normal file
|
After Width: | Height: | Size: 61 KiB |
BIN
tb/manual/images/MoveBrushesToEntity.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
tb/manual/images/MoveObjectsToolPage.png
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
tb/manual/images/MoveTrace.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
tb/manual/images/ObjectSelection.gif
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
tb/manual/images/PastePositioning3D.gif
Normal file
|
After Width: | Height: | Size: 812 KiB |
BIN
tb/manual/images/ReplaceTexture.png
Normal file
|
After Width: | Height: | Size: 151 KiB |
BIN
tb/manual/images/ResizeTool2DFaceMoving.gif
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
tb/manual/images/ResizeTool3D.gif
Normal file
|
After Width: | Height: | Size: 466 KiB |
BIN
tb/manual/images/ResizeTool3DMultipleBrushes.gif
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
tb/manual/images/ResizeTool3DSplitMode.gif
Normal file
|
After Width: | Height: | Size: 275 KiB |
BIN
tb/manual/images/RotateHandle2D.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
tb/manual/images/RotateHandle3D.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
tb/manual/images/RotateTool.gif
Normal file
|
After Width: | Height: | Size: 313 KiB |
BIN
tb/manual/images/RotateToolControls.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
tb/manual/images/Scale3DCorner.gif
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
BIN
tb/manual/images/Scale3DEdge.gif
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
tb/manual/images/Scale3DSide.gif
Normal file
|
After Width: | Height: | Size: 867 KiB |
BIN
tb/manual/images/Scale3DSideCenter.gif
Normal file
|
After Width: | Height: | Size: 529 KiB |
BIN
tb/manual/images/ScaleToolToolbar.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
tb/manual/images/SelectTouching.gif
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
tb/manual/images/Shear3DVertical.gif
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
tb/manual/images/SmartChoiceEditor.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
tb/manual/images/SmartColorEditor.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
tb/manual/images/SmartSpawnflagsEditor.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
tb/manual/images/TextureBrowser.png
Normal file
|
After Width: | Height: | Size: 94 KiB |
BIN
tb/manual/images/TextureCollectionArchiveEditor.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
BIN
tb/manual/images/TextureCollectionDirectoryEditor.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
tb/manual/images/ToolbarTools.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
tb/manual/images/UVEditor.png
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
tb/manual/images/UVLock.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
tb/manual/images/VertexToolFaceChopping.gif
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
tb/manual/images/VertexToolGuide.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
tb/manual/images/VertexToolHandles.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
tb/manual/images/VertexToolSplitting.gif
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
tb/manual/images/VertexToolVertexClumping.gif
Normal file
|
After Width: | Height: | Size: 1.1 MiB |
BIN
tb/manual/images/ViewDropdown.png
Normal file
|
After Width: | Height: | Size: 111 KiB |
BIN
tb/manual/images/ViewPreferences.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
tb/manual/images/WelcomeWindow.png
Normal file
|
After Width: | Height: | Size: 189 KiB |
BIN
tb/manual/images/icon.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
3201
tb/manual/index.html
Normal file
352
tb/manual/shortcuts.js
Normal file
@@ -0,0 +1,352 @@
|
||||
const keys = {
|
||||
255: 'Ÿ',
|
||||
247: '÷',
|
||||
223: 'ß',
|
||||
222: 'Þ',
|
||||
221: 'Ý',
|
||||
220: 'Ü',
|
||||
16777312: 'ៀ?',
|
||||
219: 'Û',
|
||||
212: 'Ô',
|
||||
211: 'Ó',
|
||||
210: 'Ò',
|
||||
16777302: 'ៀ?',
|
||||
209: 'Ñ',
|
||||
16777301: 'Menu',
|
||||
208: 'Ð',
|
||||
16777300: 'ៀ?',
|
||||
207: 'Ï',
|
||||
16777299: 'ៀ?',
|
||||
206: 'Î',
|
||||
16777298: 'F35',
|
||||
205: 'Í',
|
||||
16777297: 'F34',
|
||||
204: 'Ì',
|
||||
16777296: 'F33',
|
||||
203: 'Ë',
|
||||
16777295: 'F32',
|
||||
202: 'Ê',
|
||||
16777294: 'F31',
|
||||
201: 'É',
|
||||
16777293: 'F30',
|
||||
200: 'È',
|
||||
16777292: 'F29',
|
||||
199: 'Ç',
|
||||
16777291: 'F28',
|
||||
198: 'Æ',
|
||||
16777290: 'F27',
|
||||
197: 'Å',
|
||||
16777289: 'F26',
|
||||
196: 'Ä',
|
||||
16777288: 'F25',
|
||||
195: 'Ã',
|
||||
16777287: 'F24',
|
||||
194: 'Â',
|
||||
16777286: 'F23',
|
||||
193: 'Á',
|
||||
16777285: 'F22',
|
||||
192: 'À',
|
||||
16777284: 'F21',
|
||||
191: '¿',
|
||||
16777283: 'F20',
|
||||
190: '¾',
|
||||
16777282: 'F19',
|
||||
189: '½',
|
||||
16777281: 'F18',
|
||||
188: '¼',
|
||||
16777280: 'F17',
|
||||
187: '»',
|
||||
16777279: 'F16',
|
||||
186: 'º',
|
||||
33: '!',
|
||||
16777237: 'Down',
|
||||
57: '9',
|
||||
181: 'Μ',
|
||||
40: '(',
|
||||
16777220: 'Return',
|
||||
50: '2',
|
||||
174: '®',
|
||||
39: '\'',
|
||||
16777219: 'Backspace',
|
||||
126: '~',
|
||||
49: '1',
|
||||
173: '',
|
||||
38: '&',
|
||||
16777218: 'Backtab',
|
||||
16777305: 'ៀ?',
|
||||
125: '}',
|
||||
48: '0',
|
||||
172: '¬',
|
||||
16777303: 'ៀ?',
|
||||
123: '{',
|
||||
16777304: 'Help',
|
||||
124: '|',
|
||||
16777227: 'Clear',
|
||||
47: '/',
|
||||
171: '«',
|
||||
41: ')',
|
||||
16777221: 'Enter',
|
||||
51: '3',
|
||||
175: '¯',
|
||||
42: '*',
|
||||
16777222: 'Ins',
|
||||
16777232: 'Home',
|
||||
52: '4',
|
||||
176: '°',
|
||||
43: '+',
|
||||
16777223: 'Del',
|
||||
16777233: 'End',
|
||||
53: '5',
|
||||
177: '±',
|
||||
44: ',',
|
||||
16777224: 'Pause',
|
||||
16777234: 'Left',
|
||||
54: '6',
|
||||
178: '²',
|
||||
45: '-',
|
||||
16777225: 'Print',
|
||||
16777235: 'Up',
|
||||
55: '7',
|
||||
179: '³',
|
||||
32: 'Space',
|
||||
46: '.',
|
||||
16777226: 'SysReq',
|
||||
16777236: 'Right',
|
||||
56: '8',
|
||||
180: '´',
|
||||
34: '"',
|
||||
35: '#',
|
||||
16777216: 'Esc',
|
||||
36: '$',
|
||||
160: ' ',
|
||||
16777217: 'Tab',
|
||||
37: '%',
|
||||
161: '¡',
|
||||
16777238: 'PgUp',
|
||||
58: ':',
|
||||
182: '¶',
|
||||
183: '·',
|
||||
16777277: 'F14',
|
||||
184: '¸',
|
||||
16777278: 'F15',
|
||||
185: '¹',
|
||||
16777239: 'PgDown',
|
||||
59: ';',
|
||||
60: '<',
|
||||
61: '=',
|
||||
62: '>',
|
||||
63: '?',
|
||||
64: '@',
|
||||
65: 'A',
|
||||
66: 'B',
|
||||
67: 'C',
|
||||
16777248: 'ៀ?',
|
||||
68: 'D',
|
||||
16777249: 'ៀ?',
|
||||
69: 'E',
|
||||
16777250: 'ៀ?',
|
||||
70: 'F',
|
||||
16777251: 'ៀ?',
|
||||
71: 'G',
|
||||
16777252: 'CapsLock',
|
||||
72: 'H',
|
||||
16777253: 'NumLock',
|
||||
73: 'I',
|
||||
16777254: 'ScrollLock',
|
||||
74: 'J',
|
||||
75: 'K',
|
||||
76: 'L',
|
||||
77: 'M',
|
||||
78: 'N',
|
||||
79: 'O',
|
||||
80: 'P',
|
||||
81: 'Q',
|
||||
82: 'R',
|
||||
83: 'S',
|
||||
16777264: 'F1',
|
||||
84: 'T',
|
||||
16777265: 'F2',
|
||||
85: 'U',
|
||||
16777266: 'F3',
|
||||
86: 'V',
|
||||
16777267: 'F4',
|
||||
87: 'W',
|
||||
16777268: 'F5',
|
||||
88: 'X',
|
||||
16777269: 'F6',
|
||||
89: 'Y',
|
||||
16777270: 'F7',
|
||||
90: 'Z',
|
||||
16777271: 'F8',
|
||||
91: '[',
|
||||
16777272: 'F9',
|
||||
92: '\\',
|
||||
16777273: 'F10',
|
||||
93: ']',
|
||||
16777274: 'F11',
|
||||
94: '^',
|
||||
16777275: 'F12',
|
||||
95: '_',
|
||||
16777276: 'F13',
|
||||
96: '`',
|
||||
162: '¢',
|
||||
163: '£',
|
||||
164: '¤',
|
||||
165: '¥',
|
||||
166: '¦',
|
||||
167: '§',
|
||||
168: '¨',
|
||||
169: '©',
|
||||
170: 'ª',
|
||||
213: 'Õ',
|
||||
214: 'Ö',
|
||||
215: '×',
|
||||
216: 'Ø',
|
||||
217: 'Ù',
|
||||
218: 'Ú',
|
||||
};
|
||||
const menu = {
|
||||
'Menu/File/New': { path: ['File', 'New Document'], shortcut: { key: 78, modifiers: [16777249, ] } },
|
||||
'Menu/File/Open...': { path: ['File', 'Open Document...'], shortcut: { key: 79, modifiers: [16777249, ] } },
|
||||
'Menu/File/Save': { path: ['File', 'Save Document'], shortcut: { key: 83, modifiers: [16777249, ] } },
|
||||
'Menu/File/Save as...': { path: ['File', 'Save Document as...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Export/Wavefront OBJ...': { path: ['File', 'Export', 'Wavefront OBJ...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Load Point File...': { path: ['File', 'Load Point File...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Reload Point File': { path: ['File', 'Reload Point File'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Unload Point File': { path: ['File', 'Unload Point File'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Load Portal File...': { path: ['File', 'Load Portal File...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Reload Portal File': { path: ['File', 'Reload Portal File'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Unload Portal File': { path: ['File', 'Unload Portal File'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/File/Reload Texture Collections': { path: ['File', 'Reload Texture Collections'], shortcut: { key: 16777268, modifiers: [] } },
|
||||
'Menu/File/Reload Entity Definitions': { path: ['File', 'Reload Entity Definitions'], shortcut: { key: 16777269, modifiers: [] } },
|
||||
'Menu/File/Close': { path: ['File', 'Close Document'], shortcut: { key: 87, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Undo': { path: ['Edit', 'Undo'], shortcut: { key: 90, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Redo': { path: ['Edit', 'Redo'], shortcut: { key: 90, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Repeat': { path: ['Edit', 'Repeat Last Commands'], shortcut: { key: 82, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Clear Repeatable Commands': { path: ['Edit', 'Clear Repeatable Commands'], shortcut: { key: 82, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Cut': { path: ['Edit', 'Cut'], shortcut: { key: 88, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Copy': { path: ['Edit', 'Copy'], shortcut: { key: 67, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Paste': { path: ['Edit', 'Paste'], shortcut: { key: 86, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Paste at Original Position': { path: ['Edit', 'Paste at Original Position'], shortcut: { key: 86, modifiers: [16777251, 16777249, ] } },
|
||||
'Menu/Edit/Duplicate': { path: ['Edit', 'Duplicate'], shortcut: { key: 68, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Delete': { path: ['Edit', 'Delete'], shortcut: { key: 16777223, modifiers: [] } },
|
||||
'Menu/Edit/Select All': { path: ['Edit', 'Select All'], shortcut: { key: 65, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Select Siblings': { path: ['Edit', 'Select Siblings'], shortcut: { key: 66, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Select Touching': { path: ['Edit', 'Select Touching'], shortcut: { key: 84, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Select Inside': { path: ['Edit', 'Select Inside'], shortcut: { key: 69, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Select Tall': { path: ['Edit', 'Select Tall'], shortcut: { key: 69, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Select by Line Number': { path: ['Edit', 'Select by Line Number...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Edit/Select None': { path: ['Edit', 'Select None'], shortcut: { key: 65, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Group': { path: ['Edit', 'Group Selected Objects'], shortcut: { key: 71, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Ungroup': { path: ['Edit', 'Ungroup Selected Objects'], shortcut: { key: 71, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Tools/Brush Tool': { path: ['Edit', 'Tools', 'Brush Tool'], shortcut: { key: 66, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Clip Tool': { path: ['Edit', 'Tools', 'Clip Tool'], shortcut: { key: 67, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Rotate Tool': { path: ['Edit', 'Tools', 'Rotate Tool'], shortcut: { key: 82, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Scale Tool': { path: ['Edit', 'Tools', 'Scale Tool'], shortcut: { key: 84, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Shear Tool': { path: ['Edit', 'Tools', 'Shear Tool'], shortcut: { key: 71, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Vertex Tool': { path: ['Edit', 'Tools', 'Vertex Tool'], shortcut: { key: 86, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Edge Tool': { path: ['Edit', 'Tools', 'Edge Tool'], shortcut: { key: 69, modifiers: [] } },
|
||||
'Menu/Edit/Tools/Face Tool': { path: ['Edit', 'Tools', 'Face Tool'], shortcut: { key: 70, modifiers: [] } },
|
||||
'Menu/Edit/CSG/Convex Merge': { path: ['Edit', 'CSG', 'Convex Merge'], shortcut: { key: 74, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/CSG/Subtract': { path: ['Edit', 'CSG', 'Subtract'], shortcut: { key: 75, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/CSG/Hollow': { path: ['Edit', 'CSG', 'Hollow'], shortcut: { key: 75, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/CSG/Intersect': { path: ['Edit', 'CSG', 'Intersect'], shortcut: { key: 76, modifiers: [16777249, ] } },
|
||||
'Menu/Edit/Snap Vertices to Integer': { path: ['Edit', 'Snap Vertices to Integer'], shortcut: { key: 86, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/Edit/Snap Vertices to Grid': { path: ['Edit', 'Snap Vertices to Grid'], shortcut: { key: 86, modifiers: [16777248, 16777251, 16777249, ] } },
|
||||
'Menu/Edit/Texture Lock': { path: ['Edit', 'Texture Lock'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Edit/UV Lock': { path: ['Edit', 'UV Lock'], shortcut: { key: 85, modifiers: [] } },
|
||||
'Menu/Edit/Replace Texture...': { path: ['Edit', 'Replace Texture...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/View/Grid/Show Grid': { path: ['View', 'Grid', 'Show Grid'], shortcut: { key: 48, modifiers: [] } },
|
||||
'Menu/View/Grid/Snap to Grid': { path: ['View', 'Grid', 'Snap to Grid'], shortcut: { key: 48, modifiers: [16777251, ] } },
|
||||
'Menu/View/Grid/Increase Grid Size': { path: ['View', 'Grid', 'Increase Grid Size'], shortcut: { key: 43, modifiers: [] } },
|
||||
'Menu/View/Grid/Decrease Grid Size': { path: ['View', 'Grid', 'Decrease Grid Size'], shortcut: { key: 45, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 0.125': { path: ['View', 'Grid', 'Set Grid Size 0.125'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 0.25': { path: ['View', 'Grid', 'Set Grid Size 0.25'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 0.5': { path: ['View', 'Grid', 'Set Grid Size 0.5'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 1': { path: ['View', 'Grid', 'Set Grid Size 1'], shortcut: { key: 49, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 2': { path: ['View', 'Grid', 'Set Grid Size 2'], shortcut: { key: 50, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 4': { path: ['View', 'Grid', 'Set Grid Size 4'], shortcut: { key: 51, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 8': { path: ['View', 'Grid', 'Set Grid Size 8'], shortcut: { key: 52, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 16': { path: ['View', 'Grid', 'Set Grid Size 16'], shortcut: { key: 53, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 32': { path: ['View', 'Grid', 'Set Grid Size 32'], shortcut: { key: 54, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 64': { path: ['View', 'Grid', 'Set Grid Size 64'], shortcut: { key: 55, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 128': { path: ['View', 'Grid', 'Set Grid Size 128'], shortcut: { key: 56, modifiers: [] } },
|
||||
'Menu/View/Grid/Set Grid Size 256': { path: ['View', 'Grid', 'Set Grid Size 256'], shortcut: { key: 57, modifiers: [] } },
|
||||
'Menu/View/Camera/Move to Next Point': { path: ['View', 'Camera', 'Move Camera to Next Point'], shortcut: { key: 46, modifiers: [] } },
|
||||
'Menu/View/Camera/Move to Previous Point': { path: ['View', 'Camera', 'Move Camera to Previous Point'], shortcut: { key: 44, modifiers: [] } },
|
||||
'Menu/View/Camera/Focus on Selection': { path: ['View', 'Camera', 'Focus Camera on Selection'], shortcut: { key: 85, modifiers: [16777249, ] } },
|
||||
'Menu/View/Camera/Move Camera to...': { path: ['View', 'Camera', 'Move Camera to...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/View/Isolate': { path: ['View', 'Isolate Selection'], shortcut: { key: 73, modifiers: [16777249, ] } },
|
||||
'Menu/View/Hide': { path: ['View', 'Hide Selection'], shortcut: { key: 73, modifiers: [16777251, 16777249, ] } },
|
||||
'Menu/View/Show All': { path: ['View', 'Show All'], shortcut: { key: 73, modifiers: [16777248, 16777249, ] } },
|
||||
'Menu/View/Switch to Map Inspector': { path: ['View', 'Show Map Inspector'], shortcut: { key: 49, modifiers: [16777249, ] } },
|
||||
'Menu/View/Switch to Entity Inspector': { path: ['View', 'Show Entity Inspector'], shortcut: { key: 50, modifiers: [16777249, ] } },
|
||||
'Menu/View/Switch to Face Inspector': { path: ['View', 'Show Face Inspector'], shortcut: { key: 51, modifiers: [16777249, ] } },
|
||||
'Menu/View/Toggle Toolbar': { path: ['View', 'Toggle Toolbar'], shortcut: { key: 84, modifiers: [16777251, 16777249, ] } },
|
||||
'Menu/View/Toggle Info Panel': { path: ['View', 'Toggle Info Panel'], shortcut: { key: 52, modifiers: [16777249, ] } },
|
||||
'Menu/View/Toggle Inspector': { path: ['View', 'Toggle Inspector'], shortcut: { key: 53, modifiers: [16777249, ] } },
|
||||
'Menu/View/Maximize Current View': { path: ['View', 'Maximize Current View'], shortcut: { key: 32, modifiers: [16777249, ] } },
|
||||
'Menu/File/Preferences...': { path: ['View', 'Preferences...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Run/Compile...': { path: ['Run', 'Compile Map...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Run/Launch...': { path: ['Run', 'Launch Engine...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Print Vertices': { path: ['Debug', 'Print Vertices to Console'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Create Brush...': { path: ['Debug', 'Create Brush...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Create Cube...': { path: ['Debug', 'Create Cube...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Clip Brush...': { path: ['Debug', 'Clip Brush...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Crash...': { path: ['Debug', 'Crash...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Throw Exception During Command': { path: ['Debug', 'Throw Exception During Command'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Show Crash Report Dialog': { path: ['Debug', 'Show Crash Report Dialog...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Debug/Set Window Size...': { path: ['Debug', 'Set Window Size...'], shortcut: { key: 0, modifiers: [] } },
|
||||
'Menu/Help/TrenchBroom Manual': { path: ['Help', 'TrenchBroom Manual'], shortcut: { key: 16777264, modifiers: [] } },
|
||||
'Menu/File/About TrenchBroom': { path: ['Help', 'About TrenchBroom'], shortcut: { key: 0, modifiers: [] } },
|
||||
};
|
||||
const actions = {
|
||||
'Controls/Map view/Cancel': { key: 16777216, modifiers: [] },
|
||||
'Controls/Map view/Create brush': { key: 16777220, modifiers: [] },
|
||||
'Controls/Map view/Cycle map view': { key: 32, modifiers: [] },
|
||||
'Controls/Map view/Duplicate and move objects backward; Duplicate and move objects up': { key: 16777238, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Duplicate and move objects down; Duplicate and move objects backward': { key: 16777237, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Duplicate and move objects forward; Duplicate and move objects down': { key: 16777239, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Duplicate and move objects left': { key: 16777234, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Duplicate and move objects right': { key: 16777236, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Duplicate and move objects up; Duplicate and move objects forward': { key: 16777235, modifiers: [16777249, ] },
|
||||
'Controls/Map view/Make structural': { key: 83, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Move objects backward; Move objects up': { key: 16777238, modifiers: [] },
|
||||
'Controls/Map view/Move objects down; Move objects backward': { key: 16777237, modifiers: [] },
|
||||
'Controls/Map view/Move objects forward; Move objects down': { key: 16777239, modifiers: [] },
|
||||
'Controls/Map view/Move objects left': { key: 16777234, modifiers: [] },
|
||||
'Controls/Map view/Move objects right': { key: 16777236, modifiers: [] },
|
||||
'Controls/Map view/Move objects up; Move objects forward': { key: 16777235, modifiers: [] },
|
||||
'Controls/Map view/Move textures down': { key: 16777237, modifiers: [] },
|
||||
'Controls/Map view/Move textures left': { key: 16777234, modifiers: [] },
|
||||
'Controls/Map view/Move textures right': { key: 16777236, modifiers: [] },
|
||||
'Controls/Map view/Move textures up': { key: 16777235, modifiers: [] },
|
||||
'Controls/Map view/Perform clip': { key: 16777220, modifiers: [] },
|
||||
'Controls/Map view/Pitch objects clockwise': { key: 16777238, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Pitch objects counter-clockwise': { key: 16777239, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Reset camera zoom': { key: 16777216, modifiers: [16777248, ] },
|
||||
'Controls/Map view/Roll objects clockwise': { key: 16777235, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Roll objects counter-clockwise': { key: 16777237, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Rotate textures clockwise': { key: 16777238, modifiers: [] },
|
||||
'Controls/Map view/Rotate textures counter-clockwise': { key: 16777239, modifiers: [] },
|
||||
'Controls/Map view/Toggle clip side': { key: 16777220, modifiers: [16777249, ] },
|
||||
'Controls/Map view/View Filter > Hide entity links': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Hide faces': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Hide textures': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Shade faces': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Show all entity links': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Show directly selected entity links': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Show edges': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Show textures': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Show transitively selected entity links': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show brush entity bounds': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show brushes': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show entity classnames': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show group bounds': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show point entities': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show point entity bounds': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Toggle show point entity models': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/View Filter > Use fog': { key: 0, modifiers: [] },
|
||||
'Controls/Map view/Yaw objects clockwise': { key: 16777234, modifiers: [16777251, ] },
|
||||
'Controls/Map view/Yaw objects counter-clockwise': { key: 16777236, modifiers: [16777251, ] },
|
||||
};
|
||||
69
tb/manual/shortcuts_helper.js
Normal file
@@ -0,0 +1,69 @@
|
||||
function key_str(key) {
|
||||
if (keys[key]) {
|
||||
return "<span class=\"shortcut\">" + keys[key] + "</span>";
|
||||
} else {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
function shortcut_str(shortcut) {
|
||||
let result = "";
|
||||
if (shortcut) {
|
||||
if (shortcut.key == 0) {
|
||||
result = undefined;
|
||||
} else {
|
||||
for (i = 0; i < shortcut.modifiers.length; ++i) {
|
||||
result += key_str(shortcut.modifiers[i]);
|
||||
}
|
||||
result += key_str(shortcut.key);
|
||||
}
|
||||
} else {
|
||||
result += "«unknown shortcut»";
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
function menu_path_str(path) {
|
||||
return path.join(" » ");
|
||||
}
|
||||
|
||||
function menu_item_str(key) {
|
||||
let result = "<b>";
|
||||
const item = menu[key];
|
||||
if (item) {
|
||||
result += menu_path_str(item.path);
|
||||
const shortcut = shortcut_str(item.shortcut);
|
||||
if (shortcut) {
|
||||
result += " (" + shortcut + ")";
|
||||
}
|
||||
} else {
|
||||
result += "unknown menu item \"" + key + "\"";
|
||||
}
|
||||
result += "</b>";
|
||||
return result;
|
||||
}
|
||||
|
||||
function action_str(key) {
|
||||
let result = "<b>";
|
||||
const item = actions[key];
|
||||
if (item) {
|
||||
result += shortcut_str(item);
|
||||
} else {
|
||||
result += "unknown action \"" + key + "\"";
|
||||
}
|
||||
result += "</b>";
|
||||
return result;
|
||||
}
|
||||
|
||||
function print_key(key) {
|
||||
document.write(key_str(key));
|
||||
}
|
||||
|
||||
function print_menu_item(key) {
|
||||
document.write(menu_item_str(key));
|
||||
}
|
||||
|
||||
function print_action(key) {
|
||||
document.write(action_str(key));
|
||||
}
|
||||