Subversion Repositories Kolibri OS

Rev

Rev 9336 | Rev 9413 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 9336 Rev 9410
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 (27-nov-2021)";
31
    HEADER = "CEdit (08-dec-2021)";
32
 
32
 
Line 33... Line 33...
33
    ShellFilter = "";
33
    ShellFilter = "";
Line 391... Line 391...
391
    END;
391
    END;
392
    drawIcon(ico, 53, x)
392
    drawIcon(ico, 53, x)
393
END toolbarIcons;
393
END toolbarIcons;
Line 394... Line 394...
394
 
394
 
-
 
395
 
-
 
396
PROCEDURE getIdx (text: T.tText): INTEGER;
395
 
397
VAR
396
PROCEDURE WriteModified (x, y: INTEGER);
398
    i: INTEGER;
397
BEGIN
-
 
398
    modified := text.modified;
399
BEGIN
399
    K.DrawRect(x, TOP + canvas.height + scrollWidth, 8*fontWidth, BOTTOM - scrollWidth + 1, K.winColor);
400
    i := 0;
400
    IF modified THEN
401
    WHILE texts[i] # text DO
-
 
402
        INC(i)
-
 
403
    END
-
 
404
    RETURN i
-
 
405
END getIdx;
-
 
406
 
-
 
407
 
-
 
408
PROCEDURE MarkModified;
-
 
409
BEGIN
401
        K.DrawText866(x, y, K.textColor, "modified")
410
    modified := text.modified;
-
 
411
    Tabs.modify(tabs, getIdx(text), modified)
-
 
412
END MarkModified;
-
 
413
 
-
 
414
 
-
 
415
PROCEDURE SetCaption (fileName: RW.tFileName);
-
 
416
VAR
-
 
417
	header: RW.tFileName;
-
 
418
BEGIN
-
 
419
    header := HEADER;
-
 
420
    IF text.fileName # "" THEN
-
 
421
    	U.append8(header, " - ");
-
 
422
    	U.append8(header, text.fileName)
-
 
423
    END;
Line 402... Line 424...
402
    END
424
    K.SetCaption(header)
403
END WriteModified;
425
END SetCaption;
404
 
426
 
405
 
427
 
406
PROCEDURE DrawState (text: T.tText; width, height: INTEGER);
-
 
407
VAR
428
PROCEDURE DrawState (text: T.tText; width, height: INTEGER);
408
    y: INTEGER;
429
VAR
409
    s: ARRAY 24 OF WCHAR;
430
    y: INTEGER;
410
    header: RW.tFileName;
431
    s: ARRAY 24 OF WCHAR;
411
BEGIN
432
BEGIN
412
	eol := T.getEol(text);
433
	eol := T.getEol(text);
413
	enc := T.getEnc(text);
434
	enc := T.getEnc(text);
414
    s := "";
-
 
415
    U.append(s, RW.eolNames[eol]);
-
 
416
    U.append(s, 20X + 20X);
-
 
417
    U.append(s, E.names[enc]);
-
 
418
    header := HEADER;
-
 
419
    IF text.fileName # "" THEN
435
    s := "";
420
    	U.append8(header, " - ");
436
    U.append(s, RW.eolNames[eol]);
421
    	U.append8(header, text.fileName)
437
    U.append(s, 20X + 20X);
422
    END;
438
    U.append(s, E.names[enc]);
423
    K.SetCaption(header);
439
    SetCaption(text.fileName);
424
    K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth, width - (LEFT + 16*fontWidth), BOTTOM - scrollWidth + 1, K.winColor);
440
    K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth, width - (LEFT + 16*fontWidth), BOTTOM - scrollWidth + 1, K.winColor);
Line 425... Line 441...
425
    y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2;
441
    y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2;
426
    K.DrawText(width - (LENGTH(s) + 10)*fontWidth, y, K.textColor, s);
442
    K.DrawText(width - LENGTH(s)*fontWidth, y, K.textColor, s);
Line 466... Line 482...
466
        WritePos(y);
482
        WritePos(y);
Line 467... Line 483...
467
 
483
 
468
        IF (enc # T.getEnc(text)) OR (eol # T.getEol(text)) THEN
484
        IF (enc # T.getEnc(text)) OR (eol # T.getEol(text)) THEN
469
        	DrawState(text, width, height)
485
        	DrawState(text, width, height)
470
        ELSIF modified # text.modified THEN
486
        ELSIF modified # text.modified THEN
471
            WriteModified(width - 8*fontWidth, y)
487
            MarkModified
Line 472... Line 488...
472
        END;
488
        END;
473
 
489
 
474
        T.getScroll(text, scrollX, scrollY);
490
        T.getScroll(text, scrollX, scrollY);
Line 673... Line 689...
673
    resetTimer
689
    resetTimer
674
END OpenFile;
690
END OpenFile;
Line 675... Line 691...
675
 
691
 
-
 
692
 
-
 
693
PROCEDURE error (s: RW.tFileName);
676
 
694
VAR
-
 
695
    temp: RW.tFileName;
-
 
696
BEGIN
-
 
697
	temp := "'CEdit: ";
677
PROCEDURE error (s: RW.tFileName);
698
	U.append8(temp, s);
678
BEGIN
699
	U.append8(temp, "' -E");
Line 679... Line 700...
679
    K.Run("/rd/1/@notify", s)
700
    K.Run("/rd/1/@notify", temp)
680
END error;
701
END error;
681
 
702
 
682
 
703
 
683
PROCEDURE saveError (name: RW.tFileName);
704
PROCEDURE saveError (name: RW.tFileName);
684
VAR
705
VAR
685
    s: RW.tFileName;
-
 
686
BEGIN
706
    s: RW.tFileName;
687
    s := "'cedit: error saving file ";
707
BEGIN
Line 688... Line 708...
688
    U.append8(s, name);
708
    s := "error saving file ";
Line 714... Line 734...
714
        END
734
        END
715
    END
735
    END
716
END saveAs;
736
END saveAs;
Line 717... Line -...
717
 
-
 
718
 
-
 
719
PROCEDURE getIdx (text: T.tText): INTEGER;
-
 
720
VAR
-
 
721
    i: INTEGER;
-
 
722
BEGIN
-
 
723
    i := 0;
-
 
724
    WHILE texts[i] # text DO
-
 
725
        INC(i)
-
 
726
    END
-
 
727
    RETURN i
-
 
728
END getIdx;
-
 
729
 
737
 
730
 
738
 
731
PROCEDURE Switch (txt: T.tText);
739
PROCEDURE Switch (txt: T.tText);
732
BEGIN
740
BEGIN
733
    Tabs.switch(tabs, curText);
741
    Tabs.switch(tabs, curText);
Line 746... Line 754...
746
            END
754
            END
747
        ELSE
755
        ELSE
748
            curText := getIdx(text);
756
            curText := getIdx(text);
749
            Switch(text);
757
            Switch(text);
750
            saveAs(text)
758
            saveAs(text)
751
        END
759
        END;
-
 
760
   		Tabs.modify(tabs, getIdx(text), text.modified)
752
    END
761
    END
753
END save;
762
END save;
Line 754... Line 763...
754
 
763
 
755
 
764
 
756
PROCEDURE saveAll;
765
PROCEDURE saveAll;
-
 
766
VAR
757
VAR
767
    i: INTEGER;
758
    i: INTEGER;
768
    txt: T.tText;
759
BEGIN
769
BEGIN
-
 
770
    i := textsCount - 1;
760
    i := textsCount - 1;
771
    WHILE i >= 0 DO
-
 
772
    	txt := texts[i];
761
    WHILE i >= 0 DO
773
        IF txt.modified THEN
762
        IF texts[i].modified THEN
774
        	T.switch(txt);
763
            save(texts[i])
775
            save(txt)
764
        END;
776
        END;
-
 
777
        DEC(i)
765
        DEC(i)
778
    END;
Line 766... Line 779...
766
    END;
779
    T.switch(text)
767
END saveAll;
780
END saveAll;
Line 843... Line 856...
843
    IF textsCount < maxTexts THEN
856
    IF textsCount < maxTexts THEN
844
        nov := T.New();
857
        nov := T.New();
845
        T.SetPos(nov, 0, 0);
858
        T.SetPos(nov, 0, 0);
846
        insert(textsCount, nov)
859
        insert(textsCount, nov)
847
    ELSE
860
    ELSE
848
        error("'cedit: too many files' -E")
861
        error("too many files")
849
    END
862
    END
850
END NewFile;
863
END NewFile;
Line 851... Line 864...
851
 
864
 
Line 899... Line 912...
899
        IF fileName # "" THEN
912
        IF fileName # "" THEN
900
            n := getFileNum(fileName);
913
            n := getFileNum(fileName);
901
            IF n = -1 THEN
914
            IF n = -1 THEN
902
                nov := T.open(fileName, err);
915
                nov := T.open(fileName, err);
903
                IF nov = NIL THEN
916
                IF nov = NIL THEN
904
                    error("'cedit: error opening file' -E")
917
                    error("error opening file")
905
                ELSE
918
                ELSE
906
                    insert(textsCount, nov);
919
                    insert(textsCount, nov);
907
                    T.SetPos(nov, 0, 0)
920
                    T.SetPos(nov, 0, 0)
908
                END
921
                END
909
            ELSE
922
            ELSE
910
                SwitchTab(n)
923
                SwitchTab(n)
911
            END
924
            END
912
        END
925
        END
913
    ELSE
926
    ELSE
914
        error("'cedit: too many files' -E")
927
        error("too many files")
915
    END
928
    END
916
END open;
929
END open;
Line 917... Line 930...
917
 
930
 
Line 1048... Line 1061...
1048
 
1061
 
1049
 
1062
 
1050
PROCEDURE ShowSearchPanel (goto: BOOLEAN);
1063
PROCEDURE ShowSearchPanel (goto: BOOLEAN);
1051
VAR
1064
VAR
1052
	i: INTEGER;
1065
	i: INTEGER;
1053
	flag: BOOLEAN;
1066
	(*flag: BOOLEAN;*)
1054
BEGIN
1067
BEGIN
1055
	flag := FALSE;
1068
	(*flag := FALSE;*)
1056
	IF T.selected(text) & ~goto THEN
1069
	IF T.selected(text) & ~goto THEN
1057
		T.getSelectedText(text, new_searchText);
1070
		T.getSelectedText(text, new_searchText);
1058
		IF new_searchText # "" THEN
1071
		IF new_searchText # "" THEN
Line 1062... Line 1075...
1062
			END;
1075
			END;
1063
			IF new_searchText[i] = 0X THEN
1076
			IF new_searchText[i] = 0X THEN
1064
				searchText := new_searchText;
1077
				searchText := new_searchText;
1065
				EB.setValue(FindEdit, searchText);
1078
				EB.setValue(FindEdit, searchText);
1066
				notFound := ~T.search(text, searchText, cs, whole);
1079
				notFound := ~T.search(text, searchText, cs, whole);
1067
				flag := TRUE
1080
				(*flag := TRUE*)
1068
			END
1081
			END
1069
		END
1082
		END
1070
	END;
1083
	END;
1071
    IF ~search THEN
1084
    IF ~search THEN
1072
        Search
1085
        Search
1073
    ELSIF ~searchOpened THEN
1086
    ELSIF ~searchOpened THEN
1074
        search := FALSE;
1087
        search := FALSE;
1075
        Search
1088
        Search
1076
    END;
1089
    END;
1077
    IF flag THEN
-
 
1078
    	SetFocus(FindEdit, FALSE)
-
 
1079
    ELSIF goto THEN
1090
    IF goto THEN
1080
   		SetFocus(GotoEdit, TRUE)
1091
    	SetFocus(GotoEdit, TRUE)
1081
    ELSE
1092
    ELSE
1082
    	SetFocus(FindEdit, TRUE)
1093
    	SetFocus(FindEdit, (*~flag*)TRUE)
1083
    END
1094
    END
1084
END ShowSearchPanel;
1095
END ShowSearchPanel;
Line 1085... Line 1096...
1085
 
1096
 
Line 1735... Line 1746...
1735
            key := -1;
1746
            key := -1;
1736
            ShowSearchPanel(FALSE)
1747
            ShowSearchPanel(FALSE)
1737
        ELSIF (keyCode = 34) & ctrl THEN (* ctrl+G *)
1748
        ELSIF (keyCode = 34) & ctrl THEN (* ctrl+G *)
1738
            key := -1;
1749
            key := -1;
1739
            ShowSearchPanel(TRUE)
1750
            ShowSearchPanel(TRUE)
-
 
1751
        ELSIF (keyCode = 18) & ctrl THEN (* ctrl+E *)
-
 
1752
            key := -1;
-
 
1753
            T.selectWord(text)
1740
        ELSE
1754
        ELSE
1741
            IF EditBox_Focus(FindEdit) THEN
1755
            IF EditBox_Focus(FindEdit) THEN
1742
            	IF keyCode = 15 THEN (* Tab *)
1756
            	IF keyCode = 15 THEN (* Tab *)
1743
            		SetFocus(ReplaceEdit, TRUE)
1757
            		SetFocus(ReplaceEdit, TRUE)
1744
            	ELSE
1758
            	ELSE
Line 2038... Line 2052...
2038
                resize;
2052
                resize;
2039
                resized := TRUE
2053
                resized := TRUE
2040
            END;
2054
            END;
2041
            K.SetEventsMask({0, 1, 2, 5, 6, 31})
2055
            K.SetEventsMask({0, 1, 2, 5, 6, 31})
2042
        ELSE
2056
        ELSE
-
 
2057
        	SetCaption(text.fileName);
2043
            K.SetEventsMask({0, 30, 31})
2058
            K.SetEventsMask({0, 30, 31})
2044
        END;
2059
        END;
2045
        draw_window
2060
        draw_window
2046
    END
2061
    END
2047
END Redraw;
2062
END Redraw;
Line 2136... Line 2151...
2136
        text := T.New();
2151
        text := T.New();
2137
        filePath := "/rd/1"
2152
        filePath := "/rd/1"
2138
    ELSE
2153
    ELSE
2139
        text := T.open(fileName, err);
2154
        text := T.open(fileName, err);
2140
        IF text = NIL THEN
2155
        IF text = NIL THEN
2141
            error("'cedit: error opening file' -E");
2156
            error("error opening file");
2142
            K.Exit
2157
            K.Exit
2143
        ELSE
2158
        ELSE
2144
            U.getPath(fileName, filePath)
2159
            U.getPath(fileName, filePath)
2145
        END
2160
        END
2146
    END;
2161
    END;