Rev 9295 | Rev 9410 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9295 | Rev 9336 | ||
---|---|---|---|
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, Icons, Tabs, Timer; |
28 | RW, Ini, EB := EditBox, Icons, Tabs, Timer; |
Line 29... | Line 29... | ||
29 | 29 | ||
30 | CONST |
30 | CONST |
Line 31... | Line 31... | ||
31 | HEADER = "CEdit (21-nov-2021)"; |
31 | HEADER = "CEdit (27-nov-2021)"; |
32 | 32 | ||
Line 33... | Line 33... | ||
33 | ShellFilter = ""; |
33 | ShellFilter = ""; |
Line 179... | Line 179... | ||
179 | 179 | ||
180 | winWidth, winHeight: INTEGER; |
180 | winWidth, winHeight: INTEGER; |
181 | AppPath, runScript, buildScript, debugScript: RW.tFileName; |
181 | AppPath, runScript, buildScript, debugScript: RW.tFileName; |
182 | OD: OpenDlg.Dialog; |
182 | OD: OpenDlg.Dialog; |
- | 183 | confirm, notFound, menuFindClicked, search, searchOpened, modified: BOOLEAN; |
|
Line 183... | Line 184... | ||
183 | confirm, notFound, menuFindClicked, search, searchOpened, modified: BOOLEAN; |
184 | eol, enc: INTEGER; |
184 | 185 | ||
185 | switch, closing: BOOLEAN; |
186 | switch, closing: BOOLEAN; |
Line 406... | Line 407... | ||
406 | VAR |
407 | VAR |
407 | y: INTEGER; |
408 | y: INTEGER; |
408 | s: ARRAY 24 OF WCHAR; |
409 | s: ARRAY 24 OF WCHAR; |
409 | header: RW.tFileName; |
410 | header: RW.tFileName; |
410 | BEGIN |
411 | BEGIN |
- | 412 | eol := T.getEol(text); |
|
- | 413 | enc := T.getEnc(text); |
|
411 | s := ""; |
414 | s := ""; |
412 | U.append(s, RW.eolNames[text.eol]); |
415 | U.append(s, RW.eolNames[eol]); |
413 | U.append(s, 20X + 20X); |
416 | U.append(s, 20X + 20X); |
414 | U.append(s, E.names[text.enc]); |
417 | U.append(s, E.names[enc]); |
415 | header := HEADER; |
418 | header := HEADER; |
416 | IF text.fileName # "" THEN |
419 | IF text.fileName # "" THEN |
417 | U.append8(header, " - "); |
420 | U.append8(header, " - "); |
418 | U.append8(header, text.fileName) |
421 | U.append8(header, text.fileName) |
419 | END; |
422 | END; |
Line 460... | Line 463... | ||
460 | T.draw(text); |
463 | T.draw(text); |
461 | y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2; |
464 | y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2; |
462 | K.DrawRect(LEFT, TOP + canvas.height + scrollWidth, 16*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); |
465 | K.DrawRect(LEFT, TOP + canvas.height + scrollWidth, 16*fontWidth, BOTTOM - scrollWidth + 1, K.winColor); |
463 | WritePos(y); |
466 | WritePos(y); |
Line -... | Line 467... | ||
- | 467 | ||
- | 468 | IF (enc # T.getEnc(text)) OR (eol # T.getEol(text)) THEN |
|
464 | 469 | DrawState(text, width, height) |
|
465 | IF modified # text.modified THEN |
470 | ELSIF modified # text.modified THEN |
466 | WriteModified(width - 8*fontWidth, y) |
471 | WriteModified(width - 8*fontWidth, y) |
Line 467... | Line 472... | ||
467 | END; |
472 | END; |
468 | 473 | ||
Line 1135... | Line 1140... | ||
1135 | DEC(x, menu.width) |
1140 | DEC(x, menu.width) |
1136 | END; |
1141 | END; |
1137 | CanvasToScreen(x, y) |
1142 | CanvasToScreen(x, y) |
1138 | END |
1143 | END |
1139 | ELSIF menu = menuEncoding THEN |
1144 | ELSIF menu = menuEncoding THEN |
1140 | Menu.option(menu, menuUTF8BOM, text.enc = E.UTF8BOM); |
1145 | Menu.option(menu, menuUTF8BOM, T.getEnc(text) = E.UTF8BOM); |
1141 | Menu.option(menu, menuUTF8, text.enc = E.UTF8); |
1146 | Menu.option(menu, menuUTF8, T.getEnc(text) = E.UTF8); |
1142 | Menu.option(menu, menuCP866, text.enc = E.CP866); |
1147 | Menu.option(menu, menuCP866, T.getEnc(text) = E.CP866); |
1143 | Menu.option(menu, menuWin1251, text.enc = E.W1251); |
1148 | Menu.option(menu, menuWin1251, T.getEnc(text) = E.W1251); |
1144 | INC(x, menuEncodingX) |
1149 | INC(x, menuEncodingX) |
1145 | ELSIF menu = menuView THEN |
1150 | ELSIF menu = menuView THEN |
1146 | Menu.check(menu, menuNumbers, text.numbers); |
1151 | Menu.check(menu, menuNumbers, text.numbers); |
1147 | Menu.check(menu, menuFontSize, font = font2); |
1152 | Menu.check(menu, menuFontSize, font = font2); |
1148 | FOR i := 0 TO Ini.sections.count - 1 DO |
1153 | FOR i := 0 TO Ini.sections.count - 1 DO |
Line 1178... | Line 1183... | ||
1178 | Menu.setEnabled(subIndent, menuDecInd, selected); |
1183 | Menu.setEnabled(subIndent, menuDecInd, selected); |
Line 1179... | Line 1184... | ||
1179 | 1184 | ||
1180 | Menu.setEnabled(subCase, menuUpper, selected); |
1185 | Menu.setEnabled(subCase, menuUpper, selected); |
Line 1181... | Line 1186... | ||
1181 | Menu.setEnabled(subCase, menuLower, selected); |
1186 | Menu.setEnabled(subCase, menuLower, selected); |
1182 | 1187 | ||
1183 | Menu.option(subEOL, menuCRLF, text.eol = RW.EOL_CRLF); |
1188 | Menu.option(subEOL, menuCRLF, T.getEol(text) = RW.EOL_CRLF); |
Line 1184... | Line 1189... | ||
1184 | Menu.option(subEOL, menuLF, text.eol = RW.EOL_LF); |
1189 | Menu.option(subEOL, menuLF, T.getEol(text) = RW.EOL_LF); |
1185 | Menu.option(subEOL, menuCR, text.eol = RW.EOL_CR); |
1190 | Menu.option(subEOL, menuCR, T.getEol(text) = RW.EOL_CR); |
1186 | 1191 | ||
1187 | IF menu # NIL THEN |
1192 | IF menu # NIL THEN |
Line 1324... | Line 1329... | ||
1324 | |menuDebug: |
1329 | |menuDebug: |
1325 | Script(debugScript) |
1330 | Script(debugScript) |
1326 | |menuDebugScript: |
1331 | |menuDebugScript: |
1327 | setScript(debugScript) |
1332 | setScript(debugScript) |
1328 | |menuUTF8BOM: |
1333 | |menuUTF8BOM: |
1329 | text.enc := E.UTF8BOM |
1334 | T.setEnc(text, E.UTF8BOM) |
1330 | |menuUTF8: |
1335 | |menuUTF8: |
1331 | text.enc := E.UTF8 |
1336 | T.setEnc(text, E.UTF8) |
1332 | |menuCP866: |
1337 | |menuCP866: |
1333 | text.enc := E.CP866 |
1338 | T.setEnc(text, E.CP866) |
1334 | |menuWin1251: |
1339 | |menuWin1251: |
1335 | text.enc := E.W1251 |
1340 | T.setEnc(text, E.W1251) |
1336 | |menuLF: |
1341 | |menuLF: |
1337 | text.eol := RW.EOL_LF |
1342 | T.setEol(text, RW.EOL_LF) |
1338 | |menuCRLF: |
1343 | |menuCRLF: |
1339 | text.eol := RW.EOL_CRLF |
1344 | T.setEol(text, RW.EOL_CRLF) |
1340 | |menuCR: |
1345 | |menuCR: |
1341 | text.eol := RW.EOL_CR |
1346 | T.setEol(text, RW.EOL_CR) |
1342 | |menuPipet: |
1347 | |menuPipet: |
1343 | K.Run("/rd/1/develop/pipet", "") |
1348 | K.Run("/rd/1/develop/pipet", "") |
1344 | |menuBoard: |
1349 | |menuBoard: |
1345 | K.Run("/rd/1/develop/board", "") |
1350 | K.Run("/rd/1/develop/board", "") |
1346 | |menuSysFunc: |
1351 | |menuSysFunc: |
Line 1381... | Line 1386... | ||
1381 | CASE key DIV 65536 OF |
1386 | CASE key DIV 65536 OF |
1382 | |17: menuItem := menuClose |
1387 | |17: menuItem := menuClose |
1383 | |21: menuItem := menuRedo |
1388 | |21: menuItem := menuRedo |
1384 | |30: menuItem := menuSelectAll |
1389 | |30: menuItem := menuSelectAll |
1385 | |32: menuItem := menuDuplicate |
1390 | |32: menuItem := menuDuplicate |
- | 1391 | |33, |
|
1386 | |33: menuItem := menuFind |
1392 | 35: menuItem := menuFind |
1387 | |34: menuItem := menuGoto |
1393 | |34: menuItem := menuGoto |
1388 | |44: menuItem := menuUndo |
1394 | |44: menuItem := menuUndo |
1389 | |45: menuItem := menuCut |
1395 | |45: menuItem := menuCut |
1390 | |46: menuItem := menuCopy |
1396 | |46: menuItem := menuCopy |
1391 | |47: menuItem := menuPaste |
1397 | |47: menuItem := menuPaste |
Line 1723... | Line 1729... | ||
1723 | key := -1; |
1729 | key := -1; |
1724 | T.input(text, -8) |
1730 | T.input(text, -8) |
1725 | ELSIF (keyCode = 15) & ctrl THEN (* ctrl+Tab *) |
1731 | ELSIF (keyCode = 15) & ctrl THEN (* ctrl+Tab *) |
1726 | key := -1; |
1732 | key := -1; |
1727 | SwitchTab((curText + 1) MOD textsCount) |
1733 | SwitchTab((curText + 1) MOD textsCount) |
1728 | ELSIF (keyCode = 33) & ctrl THEN |
1734 | ELSIF ((keyCode = 33) OR (keyCode = 35)) & ctrl THEN (* ctrl+F, ctrl+H*) |
1729 | key := -1; |
1735 | key := -1; |
1730 | ShowSearchPanel(FALSE) |
1736 | ShowSearchPanel(FALSE) |
1731 | ELSIF (keyCode = 34) & ctrl THEN |
1737 | ELSIF (keyCode = 34) & ctrl THEN (* ctrl+G *) |
1732 | key := -1; |
1738 | key := -1; |
1733 | ShowSearchPanel(TRUE) |
1739 | ShowSearchPanel(TRUE) |
1734 | ELSE |
1740 | ELSE |
1735 | IF EditBox_Focus(FindEdit) THEN |
1741 | IF EditBox_Focus(FindEdit) THEN |
- | 1742 | IF keyCode = 15 THEN (* Tab *) |
|
- | 1743 | SetFocus(ReplaceEdit, TRUE) |
|
- | 1744 | ELSE |
|
1736 | EB.key(FindEdit, key); |
1745 | EB.key(FindEdit, key); |
1737 | EditBox_GetValue(FindEdit, new_searchText); |
1746 | EditBox_GetValue(FindEdit, new_searchText); |
1738 | IF new_searchText # searchText THEN |
1747 | IF new_searchText # searchText THEN |
1739 | searchText := new_searchText; |
1748 | searchText := new_searchText; |
1740 | notFound := ~T.search(text, searchText, cs, whole) |
1749 | notFound := ~T.search(text, searchText, cs, whole) |
1741 | END |
1750 | END |
- | 1751 | END |
|
1742 | ELSIF EditBox_Focus(ReplaceEdit) THEN |
1752 | ELSIF EditBox_Focus(ReplaceEdit) THEN |
- | 1753 | IF keyCode = 15 THEN (* Tab *) |
|
- | 1754 | SetFocus(GotoEdit, TRUE) |
|
- | 1755 | ELSE |
|
1743 | EB.key(ReplaceEdit, key); |
1756 | EB.key(ReplaceEdit, key); |
1744 | EditBox_GetValue(ReplaceEdit, replaceText) |
1757 | EditBox_GetValue(ReplaceEdit, replaceText) |
- | 1758 | END |
|
1745 | ELSIF EditBox_Focus(GotoEdit) THEN |
1759 | ELSIF EditBox_Focus(GotoEdit) THEN |
- | 1760 | IF keyCode = 15 THEN (* Tab *) |
|
- | 1761 | SetFocus(FindEdit, TRUE) |
|
- | 1762 | ELSE |
|
1746 | IF (key DIV 256) MOD 256 = 13 THEN |
1763 | IF (key DIV 256) MOD 256 = 13 THEN |
1747 | goto |
1764 | goto |
1748 | ELSE |
1765 | ELSE |
1749 | EB.key(GotoEdit, key) |
1766 | EB.key(GotoEdit, key) |
1750 | END |
1767 | END |
- | 1768 | END |
|
1751 | ELSE |
1769 | ELSE |
1752 | CASE keyCode OF |
1770 | CASE keyCode OF |
1753 | |73: key := 33 |
1771 | |73: key := 33 |
1754 | |81: key := 34 |
1772 | |81: key := 34 |
1755 | |71: key := 36 |
1773 | |71: key := 36 |
Line 2127... | Line 2145... | ||
2127 | END |
2145 | END |
2128 | END; |
2146 | END; |
2129 | OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); |
2147 | OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, ""); |
2130 | insert(0, text); |
2148 | insert(0, text); |
2131 | Scroll.init(ScrollChange); |
2149 | Scroll.init(ScrollChange); |
2132 | Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth, hScroll); |
2150 | Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth*3 DIV 2, hScroll); |
2133 | Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth, vScroll); |
2151 | Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth*3 DIV 2, vScroll); |
2134 | T.resize(canvas.width, canvas.height); |
2152 | T.resize(canvas.width, canvas.height); |
2135 | T.SetPos(text, 0, 0); |
2153 | T.SetPos(text, 0, 0); |
2136 | confirm := FALSE; |
2154 | confirm := FALSE; |
2137 | notFound := FALSE; |
2155 | notFound := FALSE; |
2138 | menuFindClicked := FALSE; |
2156 | menuFindClicked := FALSE; |