Subversion Repositories Kolibri OS

Rev

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

Rev 8728 Rev 8762
Line 17... Line 17...
17
    along with CEdit. If not, see .
17
    along with CEdit. If not, see .
18
*)
18
*)
Line 19... Line 19...
19
 
19
 
Line 20... Line 20...
20
MODULE Scroll;
20
MODULE Scroll;
Line 21... Line 21...
21
 
21
 
Line 22... Line 22...
22
IMPORT G := Graph;
22
IMPORT G := Graph, K := KolibriOS;
23
 
23
 
24
TYPE
24
TYPE
25
 
25
 
26
    tScroll* = POINTER TO RECORD
-
 
27
        vertical, mouse: BOOLEAN;
26
    tScroll* = POINTER TO RECORD
28
        canvas: G.tCanvas;
27
        vertical, mouse: BOOLEAN;
Line 29... Line 28...
29
        xSize*, ySize*, pos, mousePos: INTEGER;
28
        canvas: G.tCanvas;
Line 48... Line 47...
48
        pos := (a - b)*scroll.value DIV scroll.maxVal
47
        pos := (a - b)*scroll.value DIV scroll.maxVal
49
    ELSE
48
    ELSE
50
        pos := 0
49
        pos := 0
51
    END;
50
    END;
52
    canvas := scroll.canvas;
51
    canvas := scroll.canvas;
53
    G.SetColor(canvas, scroll.bkColor);
52
    G.SetColor(canvas, K.scrollBkColor);
54
    G.clear(canvas);
53
    G.clear(canvas);
55
    G.SetColor(canvas, 0808080H);
54
    G.SetColor(canvas, K.borderColor);
56
    G.Rect(canvas, 0, 0, scroll.xSize - 1, scroll.ySize - 1);
55
    G.Rect(canvas, 0, 0, scroll.xSize - 1, scroll.ySize - 1);
57
    G.SetColor(canvas, scroll.color);
56
    G.SetColor(canvas, K.scrollColor);
58
    DEC(b, 2);
57
    DEC(b, 2);
59
    IF scroll.vertical THEN
58
    IF scroll.vertical THEN
60
        G.FillRect(canvas, 1, pos + 1, b, pos + b);
59
        G.FillRect(canvas, 1, pos + 1, b, pos + b);
61
        G.SetColor(canvas, 0404040H);
60
        G.SetColor(canvas, K.borderColor);
-
 
61
        G.Rect(canvas, 0, pos, b + 2, pos + b + 1);
-
 
62
        G.SetColor(canvas, K.btnTextColor);
62
        G.HLine(canvas, pos + 1 + b DIV 2, 4, b - 4);
63
        G.HLine(canvas, pos + 1 + b DIV 2, 4, b - 4);
63
        G.HLine(canvas, pos + 1 + b DIV 2 - 3, 6, b - 6);
64
        G.HLine(canvas, pos + 1 + b DIV 2 - 3, 6, b - 6);
64
        G.HLine(canvas, pos + 1 + b DIV 2 + 3, 6, b - 6);
65
        G.HLine(canvas, pos + 1 + b DIV 2 + 3, 6, b - 6);
65
    ELSE
66
    ELSE
66
        G.FillRect(canvas, pos + 1, 1, pos + b, b);
67
        G.FillRect(canvas, pos + 1, 1, pos + b, b);
67
        G.SetColor(canvas, 0404040H);
68
        G.SetColor(canvas, K.borderColor);
-
 
69
        G.Rect(canvas, pos, 0, pos + b + 1, b + 2);
-
 
70
        G.SetColor(canvas, K.btnTextColor);
68
        G.VLine(canvas, pos + b DIV 2, 4, b - 4);
71
        G.VLine(canvas, pos + b DIV 2, 4, b - 4);
69
        G.VLine(canvas, pos + b DIV 2 - 3, 6, b - 6);
72
        G.VLine(canvas, pos + b DIV 2 - 3, 6, b - 6);
70
        G.VLine(canvas, pos + b DIV 2 + 3, 6, b - 6);
73
        G.VLine(canvas, pos + b DIV 2 + 3, 6, b - 6);
71
    END;
74
    END;
72
    scroll.pos := pos;
75
    scroll.pos := pos;
73
    G.DrawCanvas(canvas, x, y);
76
    G.DrawCanvas(canvas, x, y);
74
END draw;
77
END draw;
Line 75... Line 78...
75
 
78
 
76
 
79
 
77
PROCEDURE create* (xSize, ySize: INTEGER; color, bkColor: INTEGER): tScroll;
80
PROCEDURE create* (xSize, ySize: INTEGER): tScroll;
78
VAR
81
VAR
79
    scroll: tScroll;
82
    scroll: tScroll;
80
BEGIN
83
BEGIN
81
    NEW(scroll);
84
    NEW(scroll);
82
    scroll.xSize := xSize;
85
    scroll.xSize := xSize;
83
    scroll.ySize := ySize;
86
    scroll.ySize := ySize;
84
    scroll.vertical := xSize < ySize;
87
    scroll.vertical := xSize < ySize;
85
    scroll.maxVal := 30;
88
    scroll.maxVal := 30;
86
    scroll.value := 0;
-
 
87
    scroll.mouse := FALSE;
-
 
88
    scroll.bkColor := bkColor;
89
    scroll.value := 0;
89
    scroll.color := color;
90
    scroll.mouse := FALSE;
90
    scroll.canvas := G.CreateCanvas(xSize, ySize)
91
    scroll.canvas := G.CreateCanvas(xSize, ySize)