Subversion Repositories Kolibri OS

Rev

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;