Rev 9645 | Rev 9659 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9645 | Rev 9648 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | CB := Clipboard, Languages, |
26 | CB := Clipboard, Languages, |
27 | ChangeLog, Scroll, CheckBox, |
27 | ChangeLog, Scroll, CheckBox, |
28 | RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; |
28 | RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; |
Line 29... | Line 29... | ||
29 | 29 | ||
30 | CONST |
30 | CONST |
Line 31... | Line 31... | ||
31 | HEADER = "CEdit (16-jan-2022)"; |
31 | HEADER = "CEdit (18-jan-2022)"; |
32 | 32 | ||
Line 33... | Line 33... | ||
33 | ShellFilter = ""; |
33 | ShellFilter = ""; |
Line 167... | Line 167... | ||
167 | menuCRLF = 142; |
167 | menuCRLF = 142; |
168 | menuCR = 143; |
168 | menuCR = 143; |
Line 169... | Line 169... | ||
169 | 169 | ||
Line -... | Line 170... | ||
- | 170 | maxTexts = 32; |
|
- | 171 | ||
- | 172 | SHIFT = Menu.SHIFT; |
|
Line 170... | Line 173... | ||
170 | maxTexts = 32; |
173 | CTRL = Menu.CTRL; |
171 | 174 | ||
172 | 175 | ||
173 | VAR |
176 | VAR |
Line 197... | Line 200... | ||
197 | new_searchText, searchText, replaceText, gotoText: T.tString; |
200 | new_searchText, searchText, replaceText, gotoText: T.tString; |
198 | cs, whole: BOOLEAN; |
201 | cs, whole: BOOLEAN; |
Line 199... | Line 202... | ||
199 | 202 | ||
Line 200... | Line -... | ||
200 | replaced: INTEGER; |
- | |
201 | - | ||
202 | mainTID: INTEGER; |
203 | replaced: INTEGER; |
203 | 204 | ||
204 | context, menuFile, menuEdit, menuSearch, menuEncoding, |
205 | context, menuFile, menuEdit, menuSearch, menuEncoding, |
Line 205... | Line 206... | ||
205 | menuView, menuLanguage, menuProgram, menuTools, |
206 | menuView, menuLanguage, menuProgram, menuTools, |
Line 206... | Line 207... | ||
206 | subCurLine, subIndent, subCase, subBookmark, subEOL: Menu.tMenu; |
207 | subCurLine, subIndent, subCase, subBookmark, subEOL: Menu.tMenu; |
Line 207... | Line 208... | ||
207 | 208 | ||
Line 208... | Line -... | ||
208 | mainMenu: Menu.tMain; |
- | |
209 | - | ||
210 | menuActive: BOOLEAN; |
209 | mainMenu: Menu.tMain; |
211 | 210 | ||
Line 212... | Line 211... | ||
212 | toolbar: Toolbar.tToolbar; |
211 | menuActive: BOOLEAN; |
Line 922... | Line 921... | ||
922 | Menu.close(menuTools); |
921 | Menu.close(menuTools); |
923 | Menu.close(context) |
922 | Menu.close(context) |
924 | END CloseMenu; |
923 | END CloseMenu; |
Line 925... | Line -... | ||
925 | - | ||
926 | - | ||
927 | PROCEDURE MenuItemClick (menu: Menu.tMenu; id: INTEGER); |
- | |
928 | VAR |
- | |
929 | msg: ARRAY 2 OF INTEGER; |
- | |
930 | BEGIN |
- | |
931 | msg[0] := id; |
- | |
932 | msg[1] := 8; |
- | |
933 | K.SendIPC(mainTID, msg) |
- | |
934 | END MenuItemClick; |
- | |
935 | 924 | ||
936 | 925 | ||
937 | PROCEDURE goto; |
926 | PROCEDURE goto; |
938 | VAR |
927 | VAR |
939 | gotoVal: INTEGER; |
928 | gotoVal: INTEGER; |
Line 1112... | Line 1101... | ||
1112 | script := temp |
1101 | script := temp |
1113 | END |
1102 | END |
1114 | END setScript; |
1103 | END setScript; |
Line 1115... | Line 1104... | ||
1115 | 1104 | ||
1116 | 1105 | ||
1117 | PROCEDURE receiveIPC; |
- | |
1118 | VAR |
1106 | PROCEDURE ClickMenu; |
1119 | scrollIPC: BOOLEAN; |
1107 | VAR |
1120 | item: List.tItem; |
- | |
1121 | BEGIN |
- | |
1122 | scrollIPC := FALSE; |
- | |
1123 | IF IPC[0] = mainTID THEN |
- | |
1124 | IF IPC[2] = Scroll.ScrollIPC THEN |
- | |
1125 | Scroll.receiveIPC(IPC, scrollIPC) |
- | |
1126 | END; |
- | |
1127 | IF ~scrollIPC THEN |
- | |
1128 | IPC[2] := 0 |
- | |
1129 | END |
1108 | item: List.tItem; |
1130 | ELSE |
- | |
1131 | IF ~Menu.isSender(IPC[0]) THEN |
- | |
1132 | IPC[2] := 0 |
- | |
1133 | ELSE |
1109 | BEGIN |
1134 | IF IPC[2] < 0 THEN |
1110 | IF Menu.MenuItem < 0 THEN |
1135 | item := List.getItem(mainMenu, (-IPC[2] - mainMenuBtn) MOD mainMenu.count); |
1111 | item := List.getItem(mainMenu, (-Menu.MenuItem - mainMenuBtn) MOD mainMenu.count); |
1136 | IF item # NIL THEN |
1112 | IF item # NIL THEN |
1137 | ShowMenu(item(Menu.tMainItem).menu) |
1113 | ShowMenu(item(Menu.tMainItem).menu) |
1138 | END; |
- | |
1139 | IPC[2] := 0 |
- | |
1140 | END |
1114 | END; |
1141 | END |
- | |
1142 | END; |
1115 | Menu.SetItem(0) |
1143 | IF ~scrollIPC THEN |
1116 | END; |
1144 | CASE IPC[2] OF |
1117 | CASE Menu.MenuItem OF |
1145 | |0: |
1118 | |0: |
1146 | |menuCut: T.key(text, ORD("X"), FALSE, TRUE) |
1119 | |menuCut: T.key(text, ORD("X"), FALSE, TRUE) |
1147 | |menuCopy: T.key(text, ORD("C"), FALSE, TRUE) |
1120 | |menuCopy: T.key(text, ORD("C"), FALSE, TRUE) |
Line 1248... | Line 1221... | ||
1248 | |menuBoard: |
1221 | |menuBoard: |
1249 | K.Run("/sys/develop/board", "") |
1222 | K.Run("/sys/develop/board", "") |
1250 | |menuSysFunc: |
1223 | |menuSysFunc: |
1251 | K.Run("/sys/docpack", "f") |
1224 | K.Run("/sys/docpack", "f") |
1252 | |menuColors..menuMaxColors: |
1225 | |menuColors..menuMaxColors: |
1253 | Ini.selectSection(IPC[2] - menuColors) |
1226 | Ini.selectSection(Menu.MenuItem - menuColors) |
1254 | |menuMoveUp: |
1227 | |menuMoveUp: |
1255 | T.MoveLines(text, FALSE) |
1228 | T.MoveLines(text, FALSE) |
1256 | |menuMoveDown: |
1229 | |menuMoveDown: |
1257 | T.MoveLines(text, TRUE) |
1230 | T.MoveLines(text, TRUE) |
1258 | |menuDuplicate: |
1231 | |menuDuplicate: |
Line 1266... | Line 1239... | ||
1266 | |menuUpper: |
1239 | |menuUpper: |
1267 | T.chCase(text, TRUE) |
1240 | T.chCase(text, TRUE) |
1268 | |menuLower: |
1241 | |menuLower: |
1269 | T.chCase(text, FALSE) |
1242 | T.chCase(text, FALSE) |
1270 | END; |
1243 | END; |
1271 | IPC[0] := 0; |
- | |
1272 | IPC[1] := 0 |
- | |
1273 | END |
- | |
1274 | END receiveIPC; |
- | |
1275 | - | ||
1276 | - | ||
1277 | PROCEDURE MenuKeyDown (menu: Menu.tMenu; key: INTEGER): BOOLEAN; |
- | |
1278 | VAR |
- | |
1279 | menuItem: INTEGER; |
- | |
1280 | shift, ctrl: BOOLEAN; |
- | |
1281 | BEGIN |
- | |
1282 | menuItem := -1; |
1244 | Menu.SetItem(0) |
1283 | K.getKBState(shift, ctrl); |
- | |
1284 | IF ctrl THEN |
- | |
1285 | CASE key DIV 65536 OF |
- | |
1286 | |17: menuItem := menuClose |
- | |
1287 | |21: menuItem := menuRedo |
- | |
1288 | |30: menuItem := menuSelectAll |
- | |
1289 | |32: menuItem := menuDuplicate |
- | |
1290 | |33, |
- | |
1291 | 35: menuItem := menuFind |
- | |
1292 | |34: menuItem := menuGoto |
- | |
1293 | |44: menuItem := menuUndo |
- | |
1294 | |45: menuItem := menuCut |
- | |
1295 | |46: menuItem := menuCopy |
- | |
1296 | |47: menuItem := menuPaste |
- | |
1297 | |24: menuItem := menuOpen |
- | |
1298 | |31: menuItem := menuSave |
- | |
1299 | |49: menuItem := menuNew |
- | |
1300 | |67: menuItem := menuBuild |
- | |
1301 | |83: menuItem := menuRemove |
- | |
1302 | |22: menuItem := menuUpper |
- | |
1303 | |38: menuItem := menuLower |
- | |
1304 | |60: menuItem := menuToggleBookmark |
- | |
1305 | |72: menuItem := menuMoveUp |
- | |
1306 | |80: menuItem := menuMoveDown |
- | |
1307 | ELSE |
- | |
1308 | END |
- | |
1309 | ELSE |
- | |
1310 | IF key DIV 65536 = 83 THEN |
- | |
1311 | menuItem := menuDelete |
- | |
1312 | ELSIF key DIV 65536 = 67 THEN |
- | |
1313 | menuItem := menuRun |
- | |
1314 | ELSIF key DIV 65536 = 15 THEN |
- | |
1315 | menuItem := menuIncInd |
- | |
1316 | ELSIF (key DIV 65536 = 14) & shift THEN |
- | |
1317 | menuItem := menuDecInd |
- | |
1318 | ELSIF key DIV 65536 = 60 THEN |
- | |
1319 | IF shift THEN |
- | |
1320 | menuItem := menuPrevBookmark |
- | |
1321 | ELSE |
- | |
1322 | menuItem := menuNextBookmark |
- | |
1323 | END |
- | |
1324 | END |
- | |
1325 | END; |
- | |
1326 | IF menuItem # -1 THEN |
- | |
1327 | IF Menu.isEnabled(menu, menuItem) THEN |
- | |
1328 | MenuItemClick(menu, menuItem) |
- | |
1329 | ELSE |
- | |
1330 | menuItem := -1 |
- | |
1331 | END |
- | |
1332 | END |
- | |
1333 | RETURN menuItem # -1 |
- | |
1334 | END MenuKeyDown; |
1245 | END ClickMenu; |
Line 1335... | Line 1246... | ||
1335 | 1246 | ||
1336 | 1247 | ||
1337 | PROCEDURE CreateContextMenu (): Menu.tMenu; |
1248 | PROCEDURE CreateContextMenu (): Menu.tMenu; |
Line 1346... | Line 1257... | ||
1346 | Menu.AddMenuItem(menu, menuCopy, "copy ctrl-C"); |
1257 | Menu.AddMenuItem(menu, menuCopy, "copy ctrl-C"); |
1347 | Menu.AddMenuItem(menu, menuPaste, "paste ctrl-V"); |
1258 | Menu.AddMenuItem(menu, menuPaste, "paste ctrl-V"); |
1348 | Menu.AddMenuItem(menu, menuDelete, "delete"); |
1259 | Menu.AddMenuItem(menu, menuDelete, "delete"); |
1349 | Menu.delimiter(menu); |
1260 | Menu.delimiter(menu); |
1350 | Menu.AddMenuItem(menu, menuSelectAll, "select all ctrl-A"); |
1261 | Menu.AddMenuItem(menu, menuSelectAll, "select all ctrl-A"); |
1351 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1262 | RETURN Menu.create(menu) |
1352 | END CreateContextMenu; |
1263 | END CreateContextMenu; |
Line 1353... | Line 1264... | ||
1353 | 1264 | ||
1354 | 1265 | ||
Line 1365... | Line 1276... | ||
1365 | Menu.AddMenuItem(menu, menuFolder, "folder"); |
1276 | Menu.AddMenuItem(menu, menuFolder, "folder"); |
1366 | Menu.delimiter(menu); |
1277 | Menu.delimiter(menu); |
1367 | Menu.AddMenuItem(menu, menuClose, "close ctrl-W"); |
1278 | Menu.AddMenuItem(menu, menuClose, "close ctrl-W"); |
1368 | Menu.delimiter(menu); |
1279 | Menu.delimiter(menu); |
1369 | Menu.AddMenuItem(menu, menuExit, "exit"); |
1280 | Menu.AddMenuItem(menu, menuExit, "exit"); |
1370 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1281 | RETURN Menu.create(menu) |
1371 | END CreateMenuFile; |
1282 | END CreateMenuFile; |
Line 1372... | Line 1283... | ||
1372 | 1283 | ||
1373 | 1284 | ||
Line 1390... | Line 1301... | ||
1390 | Menu.child(menu, subCurLine); |
1301 | Menu.child(menu, subCurLine); |
1391 | Menu.AddMenuItem(menu, menuIndent, "indent"); |
1302 | Menu.AddMenuItem(menu, menuIndent, "indent"); |
1392 | Menu.child(menu, subIndent); |
1303 | Menu.child(menu, subIndent); |
1393 | Menu.AddMenuItem(menu, menuCase, "case"); |
1304 | Menu.AddMenuItem(menu, menuCase, "case"); |
1394 | Menu.child(menu, subCase); |
1305 | Menu.child(menu, subCase); |
1395 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1306 | RETURN Menu.create(menu) |
1396 | END CreateMenuEdit; |
1307 | END CreateMenuEdit; |
Line 1397... | Line 1308... | ||
1397 | 1308 | ||
1398 | 1309 | ||
Line 1406... | Line 1317... | ||
1406 | Menu.AddMenuItem(menu, menuFindPrev, "find previous shift-F3"); |
1317 | Menu.AddMenuItem(menu, menuFindPrev, "find previous shift-F3"); |
1407 | Menu.AddMenuItem(menu, menuGoto, "go to line ctrl-G"); |
1318 | Menu.AddMenuItem(menu, menuGoto, "go to line ctrl-G"); |
1408 | Menu.delimiter(menu); |
1319 | Menu.delimiter(menu); |
1409 | Menu.AddMenuItem(menu, menuBookmark, "bookmark"); |
1320 | Menu.AddMenuItem(menu, menuBookmark, "bookmark"); |
1410 | Menu.child(menu, subBookmark); |
1321 | Menu.child(menu, subBookmark); |
1411 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1322 | RETURN Menu.create(menu) |
1412 | END CreateMenuSearch; |
1323 | END CreateMenuSearch; |
Line 1413... | Line 1324... | ||
1413 | 1324 | ||
1414 | 1325 | ||
Line 1422... | Line 1333... | ||
1422 | Menu.AddMenuItem(menu, menuCP866, E.names[E.CP866]); |
1333 | Menu.AddMenuItem(menu, menuCP866, E.names[E.CP866]); |
1423 | Menu.AddMenuItem(menu, menuWin1251, E.names[E.W1251]); |
1334 | Menu.AddMenuItem(menu, menuWin1251, E.names[E.W1251]); |
1424 | Menu.delimiter(menu); |
1335 | Menu.delimiter(menu); |
1425 | Menu.AddMenuItem(menu, menuEOL, "EOL"); |
1336 | Menu.AddMenuItem(menu, menuEOL, "EOL"); |
1426 | Menu.child(menu, subEOL); |
1337 | Menu.child(menu, subEOL); |
1427 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1338 | RETURN Menu.create(menu) |
1428 | END CreateMenuEncoding; |
1339 | END CreateMenuEncoding; |
Line 1429... | Line 1340... | ||
1429 | 1340 | ||
1430 | 1341 | ||
Line 1434... | Line 1345... | ||
1434 | BEGIN |
1345 | BEGIN |
1435 | menu := List.create(NIL); |
1346 | menu := List.create(NIL); |
1436 | Menu.AddMenuItem(menu, menuCRLF, RW.eolNames[RW.EOL_CRLF]); |
1347 | Menu.AddMenuItem(menu, menuCRLF, RW.eolNames[RW.EOL_CRLF]); |
1437 | Menu.AddMenuItem(menu, menuLF, RW.eolNames[RW.EOL_LF]); |
1348 | Menu.AddMenuItem(menu, menuLF, RW.eolNames[RW.EOL_LF]); |
1438 | Menu.AddMenuItem(menu, menuCR, RW.eolNames[RW.EOL_CR]); |
1349 | Menu.AddMenuItem(menu, menuCR, RW.eolNames[RW.EOL_CR]); |
1439 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1350 | RETURN Menu.create(menu) |
1440 | END CreateMenuEOL; |
1351 | END CreateMenuEOL; |
Line 1441... | Line 1352... | ||
1441 | 1352 | ||
1442 | 1353 | ||
Line 1457... | Line 1368... | ||
1457 | Menu.AddMenuItem(menu, idx, colors.name); |
1368 | Menu.AddMenuItem(menu, idx, colors.name); |
1458 | INC(idx); |
1369 | INC(idx); |
1459 | colors := colors.next(Ini.tSection) |
1370 | colors := colors.next(Ini.tSection) |
1460 | END; |
1371 | END; |
Line 1461... | Line 1372... | ||
1461 | 1372 | ||
1462 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1373 | RETURN Menu.create(menu) |
Line 1463... | Line 1374... | ||
1463 | END CreateMenuView; |
1374 | END CreateMenuView; |
1464 | 1375 | ||
Line 1475... | Line 1386... | ||
1475 | Menu.AddMenuItem(menu, menuLua, "Lua"); |
1386 | Menu.AddMenuItem(menu, menuLua, "Lua"); |
1476 | Menu.AddMenuItem(menu, menuOberon, "Oberon"); |
1387 | Menu.AddMenuItem(menu, menuOberon, "Oberon"); |
1477 | Menu.AddMenuItem(menu, menuPascal, "Pascal"); |
1388 | Menu.AddMenuItem(menu, menuPascal, "Pascal"); |
1478 | Menu.delimiter(menu); |
1389 | Menu.delimiter(menu); |
1479 | Menu.AddMenuItem(menu, menuText, "Text"); |
1390 | Menu.AddMenuItem(menu, menuText, "Text"); |
1480 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1391 | RETURN Menu.create(menu) |
1481 | END CreateMenuLanguage; |
1392 | END CreateMenuLanguage; |
Line 1482... | Line 1393... | ||
1482 | 1393 | ||
1483 | 1394 | ||
Line 1492... | Line 1403... | ||
1492 | Menu.AddMenuItem(menu, menuRun, "run F9"); |
1403 | Menu.AddMenuItem(menu, menuRun, "run F9"); |
1493 | Menu.AddMenuItem(menu, menuRunScript, "script"); |
1404 | Menu.AddMenuItem(menu, menuRunScript, "script"); |
1494 | Menu.delimiter(menu); |
1405 | Menu.delimiter(menu); |
1495 | Menu.AddMenuItem(menu, menuDebug, "debug"); |
1406 | Menu.AddMenuItem(menu, menuDebug, "debug"); |
1496 | Menu.AddMenuItem(menu, menuDebugScript, "script"); |
1407 | Menu.AddMenuItem(menu, menuDebugScript, "script"); |
1497 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1408 | RETURN Menu.create(menu) |
1498 | END CreateMenuProgram; |
1409 | END CreateMenuProgram; |
Line 1499... | Line 1410... | ||
1499 | 1410 | ||
1500 | 1411 | ||
Line 1505... | Line 1416... | ||
1505 | menu := List.create(NIL); |
1416 | menu := List.create(NIL); |
1506 | Menu.AddMenuItem(menu, menuPipet, "pipet"); |
1417 | Menu.AddMenuItem(menu, menuPipet, "pipet"); |
1507 | Menu.AddMenuItem(menu, menuMagnify, "magnify"); |
1418 | Menu.AddMenuItem(menu, menuMagnify, "magnify"); |
1508 | Menu.AddMenuItem(menu, menuBoard, "board"); |
1419 | Menu.AddMenuItem(menu, menuBoard, "board"); |
1509 | Menu.AddMenuItem(menu, menuSysFunc, "system functions"); |
1420 | Menu.AddMenuItem(menu, menuSysFunc, "system functions"); |
1510 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1421 | RETURN Menu.create(menu) |
1511 | END CreateMenuTools; |
1422 | END CreateMenuTools; |
Line 1512... | Line 1423... | ||
1512 | 1423 | ||
1513 | 1424 | ||
Line 1518... | Line 1429... | ||
1518 | menu := List.create(NIL); |
1429 | menu := List.create(NIL); |
1519 | Menu.AddMenuItem(menu, menuMoveUp, "move up ctrl-Up"); |
1430 | Menu.AddMenuItem(menu, menuMoveUp, "move up ctrl-Up"); |
1520 | Menu.AddMenuItem(menu, menuMoveDown, "move down ctrl-Down"); |
1431 | Menu.AddMenuItem(menu, menuMoveDown, "move down ctrl-Down"); |
1521 | Menu.AddMenuItem(menu, menuDuplicate, "duplicate ctrl-D"); |
1432 | Menu.AddMenuItem(menu, menuDuplicate, "duplicate ctrl-D"); |
1522 | Menu.AddMenuItem(menu, menuRemove, "remove ctrl-Del"); |
1433 | Menu.AddMenuItem(menu, menuRemove, "remove ctrl-Del"); |
1523 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1434 | RETURN Menu.create(menu) |
1524 | END CreateMenuCurLine; |
1435 | END CreateMenuCurLine; |
Line 1525... | Line 1436... | ||
1525 | 1436 | ||
1526 | 1437 | ||
1527 | PROCEDURE CreateMenuIndent(): Menu.tMenu; |
1438 | PROCEDURE CreateMenuIndent(): Menu.tMenu; |
1528 | VAR |
1439 | VAR |
1529 | menu: List.tList; |
1440 | menu: List.tList; |
1530 | BEGIN |
1441 | BEGIN |
1531 | menu := List.create(NIL); |
1442 | menu := List.create(NIL); |
1532 | Menu.AddMenuItem(menu, menuIncInd, "increase Tab"); |
1443 | Menu.AddMenuItem(menu, menuIncInd, "increase Tab"); |
1533 | Menu.AddMenuItem(menu, menuDecInd, "decrease shift-Bksp"); |
1444 | Menu.AddMenuItem(menu, menuDecInd, "decrease shift-Bksp"); |
Line 1534... | Line 1445... | ||
1534 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1445 | RETURN Menu.create(menu) |
1535 | END CreateMenuIndent; |
1446 | END CreateMenuIndent; |
1536 | 1447 | ||
1537 | 1448 | ||
1538 | PROCEDURE CreateMenuCase(): Menu.tMenu; |
1449 | PROCEDURE CreateMenuCase(): Menu.tMenu; |
1539 | VAR |
1450 | VAR |
1540 | menu: List.tList; |
1451 | menu: List.tList; |
1541 | BEGIN |
1452 | BEGIN |
1542 | menu := List.create(NIL); |
1453 | menu := List.create(NIL); |
Line 1543... | Line 1454... | ||
1543 | Menu.AddMenuItem(menu, menuUpper, "UPPER ctrl-U"); |
1454 | Menu.AddMenuItem(menu, menuUpper, "UPPER ctrl-U"); |
1544 | Menu.AddMenuItem(menu, menuLower, "lower ctrl-L"); |
1455 | Menu.AddMenuItem(menu, menuLower, "lower ctrl-L"); |
Line 1552... | Line 1463... | ||
1552 | BEGIN |
1463 | BEGIN |
1553 | menu := List.create(NIL); |
1464 | menu := List.create(NIL); |
1554 | Menu.AddMenuItem(menu, menuToggleBookmark, "toggle ctrl-F2"); |
1465 | Menu.AddMenuItem(menu, menuToggleBookmark, "toggle ctrl-F2"); |
1555 | Menu.AddMenuItem(menu, menuNextBookmark, "next F2"); |
1466 | Menu.AddMenuItem(menu, menuNextBookmark, "next F2"); |
1556 | Menu.AddMenuItem(menu, menuPrevBookmark, "previous shift-F2"); |
1467 | Menu.AddMenuItem(menu, menuPrevBookmark, "previous shift-F2"); |
1557 | RETURN Menu.create(menu, MenuItemClick, MenuKeyDown) |
1468 | RETURN Menu.create(menu) |
1558 | END CreateMenuBookmark; |
1469 | END CreateMenuBookmark; |
Line -... | Line 1470... | ||
- | 1470 | ||
- | 1471 | ||
- | 1472 | PROCEDURE Shortcuts; |
|
- | 1473 | BEGIN |
|
- | 1474 | Menu.AddShortcut(17 + CTRL, menuClose); |
|
- | 1475 | Menu.AddShortcut(21 + CTRL, menuRedo); |
|
- | 1476 | Menu.AddShortcut(30 + CTRL, menuSelectAll); |
|
- | 1477 | Menu.AddShortcut(32 + CTRL, menuDuplicate); |
|
- | 1478 | Menu.AddShortcut(33 + CTRL, menuFind); |
|
- | 1479 | Menu.AddShortcut(35 + CTRL, menuFind); |
|
- | 1480 | Menu.AddShortcut(34 + CTRL, menuGoto); |
|
- | 1481 | Menu.AddShortcut(44 + CTRL, menuUndo); |
|
- | 1482 | Menu.AddShortcut(45 + CTRL, menuCut); |
|
- | 1483 | Menu.AddShortcut(46 + CTRL, menuCopy); |
|
- | 1484 | Menu.AddShortcut(47 + CTRL, menuPaste); |
|
- | 1485 | Menu.AddShortcut(24 + CTRL, menuOpen); |
|
- | 1486 | Menu.AddShortcut(31 + CTRL, menuSave); |
|
- | 1487 | Menu.AddShortcut(49 + CTRL, menuNew); |
|
- | 1488 | Menu.AddShortcut(67 + CTRL, menuBuild); |
|
- | 1489 | Menu.AddShortcut(83 + CTRL, menuRemove); |
|
- | 1490 | Menu.AddShortcut(22 + CTRL, menuUpper); |
|
- | 1491 | Menu.AddShortcut(38 + CTRL, menuLower); |
|
- | 1492 | Menu.AddShortcut(60 + CTRL, menuToggleBookmark); |
|
- | 1493 | Menu.AddShortcut(72 + CTRL, menuMoveUp); |
|
- | 1494 | Menu.AddShortcut(80 + CTRL, menuMoveDown); |
|
- | 1495 | Menu.AddShortcut(83, menuDelete); |
|
- | 1496 | Menu.AddShortcut(67, menuRun); |
|
- | 1497 | Menu.AddShortcut(15, menuIncInd); |
|
- | 1498 | Menu.AddShortcut(14 + SHIFT, menuDecInd); |
|
- | 1499 | Menu.AddShortcut(60 + SHIFT, menuPrevBookmark); |
|
- | 1500 | Menu.AddShortcut(60, menuNextBookmark); |
|
- | 1501 | Menu.AddShortcut(61 + SHIFT, menuFindPrev); |
|
- | 1502 | Menu.AddShortcut(61, menuFindNext); |
|
- | 1503 | END Shortcuts; |
|
1559 | 1504 | ||
1560 | 1505 | ||
1561 | PROCEDURE HideSearch; |
1506 | PROCEDURE HideSearch; |
1562 | BEGIN |
1507 | BEGIN |
1563 | SetFocus(FindEdit, FALSE); |
1508 | SetFocus(FindEdit, FALSE); |
Line 1730... | Line 1675... | ||
1730 | VAR |
1675 | VAR |
1731 | btn: INTEGER; |
1676 | btn: INTEGER; |
1732 | middle, exit: BOOLEAN; |
1677 | middle, exit: BOOLEAN; |
1733 | menu: Menu.tMenu; |
1678 | menu: Menu.tMenu; |
1734 | BEGIN |
1679 | BEGIN |
- | 1680 | exit := FALSE; |
|
1735 | btn := K.ButtonCode(middle); |
1681 | btn := K.ButtonCode(middle); |
1736 | IF U.between(Tabs.btnID, btn, Tabs.btnID + maxTexts - 1) THEN |
1682 | IF U.between(Tabs.btnID, btn, Tabs.btnID + maxTexts - 1) THEN |
1737 | DEC(btn, Tabs.btnID); |
1683 | DEC(btn, Tabs.btnID); |
1738 | IF middle THEN |
1684 | IF middle THEN |
1739 | IF texts[btn].modified THEN |
1685 | IF texts[btn].modified THEN |
Line 1754... | Line 1700... | ||
1754 | IF menu # NIL THEN |
1700 | IF menu # NIL THEN |
1755 | ShowMenu(menu); |
1701 | ShowMenu(menu); |
1756 | btn := 0 |
1702 | btn := 0 |
1757 | END |
1703 | END |
1758 | END; |
1704 | END; |
1759 | CASE btn OF |
- | |
1760 | |Tabs.btnLeft: Tabs.scroll(tabs, -1); switch := TRUE; repaint |
- | |
1761 | |Tabs.btnRight: Tabs.scroll(tabs, +1); switch := TRUE; repaint |
- | |
Line -... | Line 1705... | ||
- | 1705 | ||
1762 | 1706 | CASE btn OF |
|
1763 | |0: |
- | |
- | 1707 | |0: |
|
- | 1708 | |Tabs.btnLeft, Tabs.btnRight: |
|
- | 1709 | Tabs.scroll(tabs, btn); |
|
1764 | 1710 | switch := TRUE |
|
1765 | |btnNo: |
1711 | |btnNo: |
1766 | exit := closing; |
1712 | exit := closing; |
1767 | closeFile(FALSE, curText); |
1713 | closeFile(FALSE, curText); |
1768 | repaint; |
- | |
1769 | IF exit THEN |
- | |
1770 | Close |
- | |
1771 | END |
1714 | repaint |
1772 | |btnYes: |
1715 | |btnYes: |
1773 | exit := closing; |
1716 | exit := closing; |
1774 | save(text); |
1717 | save(text); |
1775 | IF ~text.modified THEN |
1718 | IF ~text.modified THEN |
1776 | closeFile(FALSE, curText) |
1719 | closeFile(FALSE, curText) |
1777 | END; |
1720 | END; |
1778 | repaint; |
- | |
1779 | IF exit THEN |
- | |
1780 | Close |
- | |
1781 | END |
1721 | repaint |
1782 | |btnClose: |
1722 | |btnClose: |
1783 | Close |
1723 | exit := TRUE |
1784 | |btnNew: |
1724 | |btnNew: |
1785 | NewFile; |
- | |
1786 | repaint |
1725 | NewFile |
1787 | |btnOpen: |
1726 | |btnOpen: |
1788 | OpenDial |
1727 | OpenDial |
1789 | |btnSave: |
1728 | |btnSave: |
1790 | save(text); |
- | |
1791 | repaint |
1729 | save(text) |
1792 | |btnSearch: |
1730 | |btnSearch: |
1793 | ShowSearchPanel(FALSE); |
- | |
1794 | repaint |
1731 | ShowSearchPanel(FALSE) |
1795 | |btnCloseSearch: |
1732 | |btnCloseSearch: |
1796 | Search |
1733 | Search |
1797 | |btnHideSearch: |
1734 | |btnHideSearch: |
1798 | HideSearch |
1735 | HideSearch |
1799 | |btnUndo: |
1736 | |btnUndo: |
1800 | T.undo(text); |
- | |
1801 | repaint |
1737 | T.undo(text) |
1802 | |btnRedo: |
1738 | |btnRedo: |
1803 | T.redo(text); |
- | |
1804 | repaint |
1739 | T.redo(text) |
1805 | |btnUpper: |
1740 | |btnUpper: |
1806 | T.chCase(text, TRUE); |
- | |
1807 | repaint |
1741 | T.chCase(text, TRUE) |
1808 | |btnLower: |
1742 | |btnLower: |
1809 | T.chCase(text, FALSE); |
- | |
1810 | repaint |
1743 | T.chCase(text, FALSE) |
1811 | |btnBuild: |
1744 | |btnBuild: |
1812 | Script(buildScript) |
1745 | Script(buildScript) |
1813 | |btnRun: |
1746 | |btnRun: |
1814 | Script(runScript) |
1747 | Script(runScript) |
1815 | |btnFindNext: |
1748 | |btnFindNext: |
1816 | IF searchText # "" THEN |
1749 | IF searchText # "" THEN |
1817 | notFound := ~T.findNext(text, BKW.value); |
1750 | notFound := ~T.findNext(text, BKW.value); |
1818 | SetFocus(FindEdit, FALSE); |
- | |
1819 | repaint |
1751 | SetFocus(FindEdit, FALSE) |
1820 | END |
1752 | END |
1821 | |btnReplace: |
1753 | |btnReplace: |
1822 | T.replace(text, replaceText, LENGTH(searchText)); |
1754 | T.replace(text, replaceText, LENGTH(searchText)); |
1823 | SetFocus(FindEdit, FALSE); |
- | |
1824 | repaint |
1755 | SetFocus(FindEdit, FALSE) |
1825 | |btnReplaceAll: |
1756 | |btnReplaceAll: |
1826 | notFound := ~T.search(text, searchText, cs, whole); |
1757 | notFound := ~T.search(text, searchText, cs, whole); |
1827 | IF ~notFound THEN |
1758 | IF ~notFound THEN |
1828 | replaced := T.replaceAll(text, replaceText, LENGTH(searchText)); |
1759 | replaced := T.replaceAll(text, replaceText, LENGTH(searchText)); |
1829 | END; |
1760 | END; |
1830 | SetFocus(FindEdit, FALSE); |
- | |
1831 | repaint |
1761 | SetFocus(FindEdit, FALSE) |
1832 | |btnGoto: |
1762 | |btnGoto: |
- | 1763 | goto |
|
- | 1764 | END; |
|
- | 1765 | ||
- | 1766 | IF exit THEN |
|
- | 1767 | Close |
|
1833 | goto; |
1768 | ELSE |
1834 | repaint |
1769 | repaint |
1835 | END |
1770 | END |
Line 1882... | Line 1817... | ||
1882 | END |
1817 | END |
1883 | END; |
1818 | END; |
Line 1884... | Line 1819... | ||
1884 | 1819 | ||
1885 | Scroll.mouse(hScroll); |
1820 | Scroll.mouse(hScroll); |
- | 1821 | Scroll.mouse(vScroll); |
|
1886 | Scroll.mouse(vScroll); |
1822 | msState := K.MouseState(); |
1887 | T.getScroll(text, scrollX, scrollY); |
1823 | T.getScroll(text, scrollX, scrollY); |
1888 | IF (hScroll.value # scrollX) OR (vScroll.value # scrollY) THEN |
1824 | IF (hScroll.value # scrollX) OR (vScroll.value # scrollY) THEN |
1889 | T.scroll(text, hScroll.value - scrollX, vScroll.value - scrollY); |
1825 | T.scroll(text, hScroll.value - scrollX, vScroll.value - scrollY); |
1890 | repaint |
1826 | repaint |
Line 1933... | Line 1869... | ||
1933 | resized := FALSE |
1869 | resized := FALSE |
1934 | END MouseEvent; |
1870 | END MouseEvent; |
Line 1935... | Line 1871... | ||
1935 | 1871 | ||
- | 1872 | ||
- | 1873 | PROCEDURE Redraw (VAR resized: BOOLEAN; VAR width, height, cliWidth, cliHeight: INTEGER); |
|
1936 | 1874 | VAR |
|
- | 1875 | onClose: BOOLEAN; |
|
- | 1876 | BEGIN |
|
- | 1877 | onClose := (Menu.MenuItem = menuClose) OR (Menu.MenuItem = menuExit); |
|
- | 1878 | IF ~onClose THEN |
|
1937 | PROCEDURE Redraw (VAR resized: BOOLEAN; VAR width, height, cliWidth, cliHeight: INTEGER); |
1879 | ClickMenu |
1938 | BEGIN |
1880 | END; |
1939 | K.GetSystemColors; |
1881 | K.GetSystemColors; |
1940 | IF ~K.RolledUp() THEN |
1882 | IF ~K.RolledUp() THEN |
1941 | K.ClientSize(width, height); |
1883 | K.ClientSize(width, height); |
1942 | IF (width # cliWidth) OR (height # cliHeight) THEN |
1884 | IF (width # cliWidth) OR (height # cliHeight) THEN |
1943 | cliWidth := width; |
1885 | cliWidth := width; |
1944 | cliHeight := height; |
1886 | cliHeight := height; |
1945 | resize; |
1887 | resize; |
1946 | resized := TRUE |
1888 | resized := TRUE |
1947 | END; |
1889 | END; |
1948 | K.SetEventsMask({0, 1, 2, 5, 6, 31}) |
1890 | K.SetEventsMask({0, 1, 2, 5, 31}) |
1949 | ELSE |
1891 | ELSE |
1950 | SetCaption(text.fileName); |
1892 | SetCaption(text.fileName); |
1951 | K.SetEventsMask({0, 30, 31}) |
1893 | K.SetEventsMask({0, 30, 31}) |
1952 | END; |
1894 | END; |
1953 | draw_window; |
1895 | draw_window; |
1954 | IF SkinHeight # K.SkinHeight() THEN |
1896 | IF SkinHeight # K.SkinHeight() THEN |
- | 1897 | SkinHeight := K.SkinHeight(); |
|
- | 1898 | Redraw(resized, width, height, cliWidth, cliHeight) |
|
- | 1899 | END; |
|
1955 | SkinHeight := K.SkinHeight(); |
1900 | IF onClose THEN |
1956 | Redraw(resized, width, height, cliWidth, cliHeight) |
1901 | ClickMenu |
Line 1957... | Line 1902... | ||
1957 | END |
1902 | END |
1958 | END Redraw; |
1903 | END Redraw; |
1959 | - | ||
1960 | 1904 | ||
1961 | PROCEDURE ScrollChange; |
- | |
1962 | BEGIN |
1905 | |
1963 | Scroll.change(hScroll); |
1906 | PROCEDURE ScrollChange; |
1964 | Scroll.change(vScroll); |
1907 | BEGIN |
1965 | T.scroll(text, ORD(hScroll.Inc) - ORD(hScroll.Dec), ORD(vScroll.Inc) - ORD(vScroll.Dec)); |
1908 | T.scroll(text, hScroll.btn, vScroll.btn); |
1966 | IF menuActive THEN |
1909 | IF menuActive THEN |
Line 1983... | Line 1926... | ||
1983 | K.GetSystemColors; |
1926 | K.GetSystemColors; |
1984 | switch := FALSE; |
1927 | switch := FALSE; |
1985 | closing := FALSE; |
1928 | closing := FALSE; |
1986 | textsCount := 0; |
1929 | textsCount := 0; |
1987 | curText := 0; |
1930 | curText := 0; |
1988 | mainTID := K.ThreadID(); |
- | |
1989 | K.SetIPC(IPC); |
- | |
1990 | Args.GetArg(0, AppPath); |
1931 | Args.GetArg(0, AppPath); |
1991 | Ini.load(AppPath); |
1932 | Ini.load(AppPath); |
1992 | leftButton := FALSE; |
1933 | leftButton := FALSE; |
1993 | resized := FALSE; |
1934 | resized := FALSE; |
1994 | K.ScreenSize(winWidth, winHeight); |
1935 | K.ScreenSize(winWidth, winHeight); |
Line 2008... | Line 1949... | ||
2008 | font := font1; |
1949 | font := font1; |
2009 | G.SetFont(canvas, font); |
1950 | G.SetFont(canvas, font); |
2010 | T.init(resetTimer); |
1951 | T.init(resetTimer); |
2011 | T.setCanvas(canvas); |
1952 | T.setCanvas(canvas); |
Line -... | Line 1953... | ||
- | 1953 | ||
2012 | 1954 | Menu.init(resetTimer); |
|
2013 | context := CreateContextMenu(); |
1955 | context := CreateContextMenu(); |
2014 | menuFile := CreateMenuFile(); |
1956 | menuFile := CreateMenuFile(); |
2015 | subCurLine := CreateMenuCurLine(); |
1957 | subCurLine := CreateMenuCurLine(); |
2016 | subIndent := CreateMenuIndent(); |
1958 | subIndent := CreateMenuIndent(); |
Line 2037... | Line 1979... | ||
2037 | Menu.AddMainItem(mainMenu, "encoding", menuEncoding); |
1979 | Menu.AddMainItem(mainMenu, "encoding", menuEncoding); |
2038 | Menu.AddMainItem(mainMenu, "view", menuView); |
1980 | Menu.AddMainItem(mainMenu, "view", menuView); |
2039 | Menu.AddMainItem(mainMenu, "language", menuLanguage); |
1981 | Menu.AddMainItem(mainMenu, "language", menuLanguage); |
2040 | Menu.AddMainItem(mainMenu, "program", menuProgram); |
1982 | Menu.AddMainItem(mainMenu, "program", menuProgram); |
2041 | Menu.AddMainItem(mainMenu, "tools", menuTools); |
1983 | Menu.AddMainItem(mainMenu, "tools", menuTools); |
- | 1984 | Shortcuts; |
|
Line 2042... | Line 1985... | ||
2042 | 1985 | ||
2043 | Toolbar.create(toolbar, LEFT_PADDING + 5, toolbarTop); |
1986 | Toolbar.create(toolbar, LEFT_PADDING + 5, toolbarTop); |
2044 | Toolbar.add(toolbar, btnNew, 2, ""); |
1987 | Toolbar.add(toolbar, btnNew, 2, ""); |
2045 | Toolbar.add(toolbar, btnOpen, 0, ""); |
1988 | Toolbar.add(toolbar, btnOpen, 0, ""); |
Line 2073... | Line 2016... | ||
2073 | IF textsCount = 0 THEN |
2016 | IF textsCount = 0 THEN |
2074 | K.Exit |
2017 | K.Exit |
2075 | END; |
2018 | END; |
2076 | SwitchTab(textsCount - 1); |
2019 | SwitchTab(textsCount - 1); |
Line 2077... | Line -... | ||
2077 | - | ||
2078 | Scroll.init(ScrollChange); |
2020 | |
2079 | Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth*3 DIV 2, hScroll); |
2021 | Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth*3 DIV 2, ScrollChange, hScroll); |
2080 | Scroll.create(TRUE, scrollWidth, canvas.height + 2, scrollWidth, scrollWidth*3 DIV 2, vScroll); |
2022 | Scroll.create(TRUE, scrollWidth, canvas.height + 2, scrollWidth, scrollWidth*3 DIV 2, ScrollChange, vScroll); |
2081 | T.resize(canvas.width, canvas.height); |
2023 | T.resize(canvas.width, canvas.height); |
2082 | confirm := FALSE; |
2024 | confirm := FALSE; |
2083 | notFound := FALSE; |
2025 | notFound := FALSE; |
2084 | menuFindClicked := FALSE; |
2026 | menuFindClicked := FALSE; |
Line 2092... | Line 2034... | ||
2092 | whole := FALSE; |
2034 | whole := FALSE; |
2093 | replaced := 0; |
2035 | replaced := 0; |
Line 2094... | Line 2036... | ||
2094 | 2036 | ||
Line 2095... | Line 2037... | ||
2095 | OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); |
2037 | OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); |
2096 | - | ||
2097 | K.SetEventsMask({0, 1, 2, 5, 6, 31}); |
2038 | |
2098 | Menu.init(resetTimer); |
2039 | K.SetEventsMask({0, 1, 2, 5, 31}); |
2099 | draw_window; |
2040 | draw_window; |
2100 | blink := Ini.blink; |
2041 | blink := Ini.blink; |
2101 | IF blink <= 0 THEN |
2042 | IF blink <= 0 THEN |
Line 2110... | Line 2051... | ||
2110 | IF (CurrentTime - CursorTime > blink) & (blink > 0) & timerEnabled THEN |
2051 | IF (CurrentTime - CursorTime > blink) & (blink > 0) & timerEnabled THEN |
2111 | CursorTime := CurrentTime; |
2052 | CursorTime := CurrentTime; |
2112 | T.toggleCursor; |
2053 | T.toggleCursor; |
2113 | repaint |
2054 | repaint |
2114 | END; |
2055 | END; |
- | 2056 | ||
2115 | CASE K.EventTimeout(10) OF |
2057 | CASE K.EventTimeout(10) OF |
2116 | |0: |
2058 | |0: |
2117 | |1: Redraw(resized, width, height, cliWidth, cliHeight) |
2059 | |1: Redraw(resized, width, height, cliWidth, cliHeight) |
2118 | |2: KeyDown(K.GetKey()) |
2060 | |2: KeyDown(K.GetKey()) |
2119 | |3: BtnClick |
2061 | |3: BtnClick |
2120 | |6: MouseEvent(resized, firstClickX, firstClickY, time) |
2062 | |6: MouseEvent(resized, firstClickX, firstClickY, time) |
2121 | |7: receiveIPC |
- | |
2122 | END |
2063 | END |
2123 | END |
2064 | END |
2124 | END main; |
2065 | END main; |