Subversion Repositories Kolibri OS

Rev

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

Rev 9208 Rev 9210
Line 44... Line 44...
44
    inter = 2;
44
    inter = 2;
Line 45... Line 45...
45
 
45
 
Line 46... Line 46...
46
 
46
 
47
TYPE
47
TYPE
48
 
48
 
Line 49... Line 49...
49
    tPoint = RECORD
49
    tPoint* = RECORD
Line 50... Line 50...
50
        X, Y: INTEGER
50
        X*, Y*: INTEGER
Line 65... Line 65...
65
    tText* = POINTER TO RECORD (List.tList)
65
    tText* = POINTER TO RECORD (List.tList)
66
        cursor, select, select2: pPoint;
66
        cursor, select, select2: pPoint;
67
        scroll: tPoint;
67
        scroll: tPoint;
68
        CurX: INTEGER;
68
        CurX: INTEGER;
69
        modified*: BOOLEAN;
69
        modified*: BOOLEAN;
70
 
-
 
71
        edition*: tGuard;
70
        edition*: tGuard;
72
        comments, numbers*, guard,
71
        comments, numbers*, guard,
73
        search, cs, whole: BOOLEAN;
72
        search, cs, whole: BOOLEAN;
74
        curLine: tLine;
73
        curLine: tLine;
75
        fileName*: RW.tFileName;
-
 
76
        lang*: INTEGER;
74
        lang*: INTEGER;
77
        enc*: INTEGER;
-
 
78
        eol*: INTEGER;
75
        enc*, eol*: INTEGER;
79
        table: Search.IdxTable;
76
        table: Search.IdxTable;
80
        foundList: List.tList;
77
        foundList: List.tList;
81
        idxData: Search.tBuffer;
78
        idxData: Search.tBuffer;
82
        foundSel: INTEGER;
79
        foundSel: INTEGER;
83
        searchText: tString;
80
        searchText: tString;
84
        chLog*: ChangeLog.tLog;
81
        chLog*: ChangeLog.tLog;
85
        maxLength*: INTEGER
82
        maxLength*: INTEGER;
-
 
83
        fileName*: RW.tFileName
86
    END;
84
    END;
Line 87... Line 85...
87
 
85
 
Line 102... Line 100...
102
    padding: RECORD left, top: INTEGER END;
100
    padding: RECORD left, top: INTEGER END;
103
    size, textsize: tPoint;
101
    size, textsize: tPoint;
104
    charWidth, charHeight: INTEGER;
102
    charWidth, charHeight: INTEGER;
Line -... Line 103...
-
 
103
 
-
 
104
 
-
 
105
PROCEDURE setLang* (text: tText; lang: INTEGER);
-
 
106
BEGIN
-
 
107
    text.lang := lang;
-
 
108
    text.comments := TRUE;
-
 
109
    Lang.setCurLang(text.lang)
-
 
110
END setLang;
105
 
111
 
106
 
112
 
107
PROCEDURE setName* (text: tText; name: RW.tFileName);
113
PROCEDURE setName* (text: tText; name: RW.tFileName);
108
VAR
114
VAR
109
    ext: RW.tFileName;
115
    ext: RW.tFileName;
110
BEGIN
116
BEGIN
111
    text.fileName := name;
117
    text.fileName := name;
112
    U.getFileName(text.fileName, ext, ".");
-
 
113
    U.upcase(ext);
-
 
114
    IF ext = "OB07" THEN
-
 
115
        text.lang := Lang.langOberon
-
 
116
    ELSIF (ext = "C") OR (ext = "H") OR (ext = "CPP") THEN
-
 
117
        text.lang := Lang.langC
-
 
118
    ELSIF (ext = "PAS") OR (ext = "PP") THEN
-
 
119
        text.lang := Lang.langPascal
-
 
120
    ELSIF ext = "ASM" THEN
-
 
121
        text.lang := Lang.langFasm
-
 
122
    ELSIF ext = "LUA" THEN
-
 
123
        text.lang := Lang.langLua
-
 
124
    ELSIF ext = "INI" THEN
-
 
125
        text.lang := Lang.langIni
-
 
126
    ELSIF ext = "JSON" THEN
-
 
127
        text.lang := Lang.langJSON
-
 
128
    ELSE
-
 
129
        text.lang := Lang.langText
118
    U.getFileName(name, ext, ".");
130
    END;
119
    U.upcase(ext);
Line 131... Line -...
131
    Lang.setCurLang(text.lang)
-
 
132
END setName;
-
 
133
 
-
 
134
 
-
 
135
PROCEDURE setLang* (text: tText; lang: INTEGER);
-
 
136
BEGIN
-
 
137
    text.lang := lang;
-
 
138
    text.comments := TRUE;
-
 
139
    Lang.setCurLang(text.lang)
120
    setLang(text, Lang.getLang(ext))
140
END setLang;
121
END setName;
141
 
122
 
142
 
123
 
143
PROCEDURE getPos* (text: tText; VAR x, y: INTEGER);
124
PROCEDURE getPos* (text: tText; VAR x, y: INTEGER);
Line 516... Line 497...
516
                cond := 0;
497
	                cond := 0;
517
                depth := 0
498
	                depth := 0
518
            ELSE
499
	            ELSE
519
                cond := 0
500
	                cond := 0
520
            END
501
	            END
521
        END;
502
	        END
Line 522... Line 503...
522
 
503
 
Line 523... Line 504...
523
        ELSIF lang = Lang.langOberon THEN
504
        ELSIF lang = Lang.langOberon THEN
524
 
505
 
Line 2087... Line 2068...
2087
    y := padding.top + inter DIV 2;
2068
    y := padding.top + inter DIV 2;
2088
    n := text.scroll.Y;
2069
    n := text.scroll.Y;
2089
    line := getLine(text, n);
2070
    line := getLine(text, n);
2090
    firstLine := line;
2071
    firstLine := line;
2091
    cnt := 0;
2072
    cnt := 0;
2092
    WHILE (line # NIL) & (cnt <= textsize.Y) DO
2073
    WHILE (line # NIL) & (cnt < textsize.Y) DO
2093
        backColor := colors.back;
2074
        backColor := colors.back;
2094
        IF (line = text.curLine) & ~selected(text) THEN
2075
        IF (line = text.curLine) & ~selected(text) THEN
2095
            G.SetColor(canvas, colors.curline);
2076
            G.SetColor(canvas, colors.curline);
2096
            G.FillRect(canvas, padding.left - 2, y - inter DIV 2, size.X - 1, y - inter DIV 2 + charHeight);
2077
            G.FillRect(canvas, padding.left - 2, y - inter DIV 2, size.X - 1, y - inter DIV 2 + charHeight);
2097
            backColor := colors.curline
2078
            backColor := colors.curline
Line 2120... Line 2101...
2120
    G.SetColor(canvas, colors.numback);
2101
    G.SetColor(canvas, colors.numback);
2121
    G.FillRect(canvas, 0, 0, padding.left - pad_left (*+ 1*), size.Y - 1);
2102
    G.FillRect(canvas, 0, 0, padding.left - pad_left (*+ 1*), size.Y - 1);
2122
    line := firstLine;
2103
    line := firstLine;
2123
    SetColor(colors.numtext, colors.numback);
2104
    SetColor(colors.numtext, colors.numback);
2124
    y := padding.top + inter DIV 2;
2105
    y := padding.top + inter DIV 2;
2125
    n := MIN(text.scroll.Y + textsize.Y + 1, text.count);
2106
    n := MIN(text.scroll.Y + textsize.Y, text.count);
2126
    FOR i := text.scroll.Y + 1 TO n DO
2107
    FOR i := text.scroll.Y + 1 TO n DO
2127
        IF text.numbers THEN
2108
        IF text.numbers THEN
2128
            IF (i MOD 10 = 0) OR (i - 1 = text.cursor.Y) OR line.label THEN
2109
            IF (i MOD 10 = 0) OR (i - 1 = text.cursor.Y) OR line.label THEN
2129
                U.int2str(i, s);
2110
                U.int2str(i, s);
2130
                G.TextOut2(canvas, (numWidth - U.lg10(i) - 1)*wNum - wNum DIV 2, y, s, LENGTH(s))
2111
                G.TextOut2(canvas, (numWidth - U.lg10(i) - 1)*wNum - wNum DIV 2, y, s, LENGTH(s))
Line 2145... Line 2126...
2145
 
2126
 
2146
    IF text.searchText # "" THEN
2127
    IF text.searchText # "" THEN
2147
        cnt := 0;
2128
        cnt := 0;
2148
        line := firstLine;
2129
        line := firstLine;
2149
        lastLine := line;
2130
        lastLine := line;
2150
        WHILE (line # NIL) & (cnt <= textsize.Y) DO
2131
        WHILE (line # NIL) & (cnt < textsize.Y) DO
2151
            lastLine := line;
2132
            lastLine := line;
2152
            NextLine(line);
2133
            NextLine(line);
2153
            INC(cnt)
2134
            INC(cnt)
2154
        END;
2135
        END;