Subversion Repositories Kolibri OS

Rev

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

Rev 9050 Rev 9060
Line 39... Line 39...
39
 
39
 
Line 40... Line 40...
40
    SHIFT* = 0; CTRL* = 1;
40
    SHIFT* = 0; CTRL* = 1;
41
 
41
 
42
    mark_width = 2;
42
    mark_width = 2;
43
    pad_left = mark_width + 3;
43
    pad_left = mark_width + 3;
Line 44... Line 44...
44
    pad_top = 1;
44
    pad_top = 0;
Line 1420... Line 1420...
1420
    END
1420
    END
1421
    RETURN res
1421
    RETURN res
1422
END goto;
1422
END goto;
Line -... Line 1423...
-
 
1423
 
-
 
1424
 
-
 
1425
PROCEDURE toggleLabel* (text: tText);
-
 
1426
BEGIN
-
 
1427
    text.curLine.label := ~text.curLine.label
-
 
1428
END toggleLabel;
-
 
1429
 
-
 
1430
 
-
 
1431
PROCEDURE gotoLabel* (text: tText; frw: BOOLEAN);
-
 
1432
VAR
-
 
1433
    line: tLine;
-
 
1434
    n: INTEGER;
-
 
1435
BEGIN
-
 
1436
    n := text.cursor.Y;
-
 
1437
    line := text.curLine;
-
 
1438
    IF frw THEN
-
 
1439
        REPEAT
-
 
1440
            line := line.next(tLine);
-
 
1441
            INC(n)
-
 
1442
        UNTIL (line = NIL) OR line.label
-
 
1443
    ELSE
-
 
1444
        REPEAT
-
 
1445
            line := line.prev(tLine);
-
 
1446
            DEC(n)
-
 
1447
        UNTIL (line = NIL) OR line.label
-
 
1448
    END;
-
 
1449
    IF line # NIL THEN
-
 
1450
        IF goto(text, n + 1) THEN END
-
 
1451
    END
-
 
1452
END gotoLabel;
1423
 
1453
 
1424
 
1454
 
1425
PROCEDURE changeCase (text: tText; upper: BOOLEAN);
1455
PROCEDURE changeCase (text: tText; upper: BOOLEAN);
1426
VAR
1456
VAR
1427
    i: INTEGER;
1457
    i: INTEGER;
Line 1824... Line 1854...
1824
    guard.CurX := text.CurX;
1854
    guard.CurX := text.CurX;
1825
    guard.selected := text.select = text.select2;
1855
    guard.selected := text.select = text.select2;
Line 1826... Line 1856...
1826
 
1856
 
1827
    G.SetColor(canvas, colors.back);
1857
    G.SetColor(canvas, colors.back);
-
 
1858
    G.clear(canvas);
1828
    G.clear(canvas);
1859
    wNum := charWidth;
1829
    IF text.numbers THEN
1860
    IF text.numbers THEN
1830
        numWidth := U.lg10(text.count) + 2;
-
 
1831
        wNum := charWidth;
1861
        numWidth := U.lg10(text.count) + 2;
1832
        xNum := numWidth*wNum - wNum DIV 2;
1862
        xNum := numWidth*wNum - wNum DIV 2;
1833
        setPadding(numWidth*wNum + pad_left, padding.top);
1863
        setPadding(numWidth*wNum + pad_left, padding.top);
1834
    ELSE
1864
    ELSE
1835
        setPadding(pad_left, padding.top)
1865
        setPadding(pad_left + wNum*2, padding.top)
1836
    END;
1866
    END;
1837
    getSelect(text, selBeg, selEnd);
1867
    getSelect(text, selBeg, selEnd);
1838
    y := padding.top + inter DIV 2;
1868
    y := padding.top + inter DIV 2;
1839
    n := text.scroll.Y;
1869
    n := text.scroll.Y;
Line 1866... Line 1896...
1866
        NextLine(line);
1896
        NextLine(line);
1867
        INC(y, charHeight);
1897
        INC(y, charHeight);
1868
        INC(n);
1898
        INC(n);
1869
        INC(cnt)
1899
        INC(cnt)
1870
    END;
1900
    END;
1871
    IF text.numbers THEN
-
 
1872
        G.SetColor(canvas, colors.numback);
1901
    G.SetColor(canvas, colors.numback);
1873
        G.FillRect(canvas, 0, 0, padding.left - pad_left (*+ 1*), size.Y - 1);
1902
    G.FillRect(canvas, 0, 0, padding.left - pad_left (*+ 1*), size.Y - 1);
-
 
1903
    line := firstLine;
1874
        SetColor(colors.numtext, colors.numback);
1904
    SetColor(colors.numtext, colors.numback);
1875
        y := padding.top + inter DIV 2;
1905
    y := padding.top + inter DIV 2;
1876
        n := MIN(text.scroll.Y + textsize.Y + 1, text.count);
1906
    n := MIN(text.scroll.Y + textsize.Y + 1, text.count);
1877
        FOR i := text.scroll.Y + 1 TO n DO
1907
    FOR i := text.scroll.Y + 1 TO n DO
-
 
1908
        IF text.numbers THEN
1878
            IF (i MOD 10 = 0) OR (i - 1 = text.cursor.Y) THEN
1909
            IF (i MOD 10 = 0) OR (i - 1 = text.cursor.Y) OR line.label THEN
1879
                U.int2str(i, s);
1910
                U.int2str(i, s);
1880
                G.TextOut2(canvas, (numWidth - U.lg10(i) - 1)*wNum - wNum DIV 2, y, s, LENGTH(s));
1911
                G.TextOut2(canvas, (numWidth - U.lg10(i) - 1)*wNum - wNum DIV 2, y, s, LENGTH(s))
1881
            ELSIF i MOD 5 = 0 THEN
1912
            ELSIF i MOD 5 = 0 THEN
1882
                G.SetColor(canvas, colors.numtext);
1913
                G.SetColor(canvas, colors.numtext);
1883
                G.HLine(canvas, y - inter DIV 2 + charHeight DIV 2, xNum - wNum, xNum)
1914
                G.HLine(canvas, y - inter DIV 2 + charHeight DIV 2, xNum - wNum, xNum)
1884
            ELSE
1915
            ELSE
1885
                G.SetColor(canvas, colors.numtext);
1916
                G.SetColor(canvas, colors.numtext);
1886
                G.HLine(canvas, y - inter DIV 2 + charHeight DIV 2, xNum - wNum DIV 2, xNum)
1917
                G.HLine(canvas, y - inter DIV 2 + charHeight DIV 2, xNum - wNum DIV 2, xNum)
-
 
1918
            END
1887
            END;
1919
        END;
1888
            INC(y, charHeight)
1920
        IF line.label THEN
-
 
1921
            FOR x := wNum DIV 2 TO (padding.left - pad_left) - wNum DIV 2 DO
-
 
1922
                G.notVLine(canvas, x, y, y + charHeight - inter);
-
 
1923
                G.xorVLine(canvas, x, y, y + charHeight - inter)
1889
        END
1924
            END
1890
    END;
1925
        END;
-
 
1926
        NextLine(line);
-
 
1927
        INC(y, charHeight)
-
 
1928
    END;
Line 1891... Line 1929...
1891
 
1929
 
1892
    IF text.searchText # "" THEN
1930
    IF text.searchText # "" THEN
1893
        cnt := 0;
1931
        cnt := 0;
1894
        line := firstLine;
1932
        line := firstLine;
Line 1940... Line 1978...
1940
 
1978
 
1941
    IF drawCursor THEN
1979
    IF drawCursor THEN
1942
        cursor(text)
1980
        cursor(text)
1943
    END;
1981
    END;
-
 
1982
    G.SetColor(canvas, K.borderColor);
-
 
1983
    G.HLine(canvas, size.Y - 1, 0, size.X - 1);
1944
    G.SetColor(canvas, K.borderColor);
1984
    G.VLine(canvas, 0, 0, size.Y - 1);
1945
    G.Rect(canvas, 0, 0, size.X - 1, size.Y - 1);
1985
    G.VLine(canvas, size.X - 1, 0, size.Y - 1)
Line 1946... Line 1986...
1946
END draw;
1986
END draw;
1947
 
1987