Subversion Repositories Kolibri OS

Rev

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

Rev 8728 Rev 9174
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 Graph;
20
MODULE Graph;
Line 21... Line 21...
21
 
21
 
Line 22... Line 22...
22
IMPORT SYSTEM, K := KOSAPI;
22
IMPORT SYSTEM, K := KOSAPI, Lines;
23
 
23
 
24
CONST
24
CONST
Line -... Line 25...
-
 
25
 
-
 
26
    modeCOPY = 0;
-
 
27
    modeNOT  = 1;
-
 
28
    modeXOR  = 2;
-
 
29
 
25
 
30
    triUp* = FALSE;
Line 26... Line 31...
26
    modeCOPY = 0;
31
    triDown* = TRUE;
27
    modeNOT  = 1;
32
    triLeft* = FALSE;
28
    modeXOR  = 2;
33
    triRight* = TRUE;
Line 175... Line 180...
175
        INC(x1)
180
        INC(x1)
176
    END
181
    END
177
END DLine;
182
END DLine;
Line -... Line 183...
-
 
183
 
-
 
184
 
-
 
185
PROCEDURE Triangle* (canvas: tCanvas; x1, y1, x2, y2: INTEGER; orientation: BOOLEAN);
-
 
186
VAR
-
 
187
	i, a, b, d: INTEGER;
-
 
188
BEGIN
-
 
189
	d := ORD(orientation)*2 - 1;
-
 
190
	IF y1 = y2 THEN
-
 
191
		i := y1;
-
 
192
		a := MIN(x1, x2);
-
 
193
		b := MAX(x1, x2);
-
 
194
		WHILE a <= b DO
-
 
195
			HLine(canvas, i, a, b);
-
 
196
			INC(i, d);
-
 
197
			INC(a);
-
 
198
			DEC(b)
-
 
199
		END
-
 
200
	ELSIF x1 = x2 THEN
-
 
201
		i := x1;
-
 
202
		a := MIN(y1, y2);
-
 
203
		b := MAX(y1, y2);
-
 
204
		WHILE a <= b DO
-
 
205
			VLine(canvas, i, a, b);
-
 
206
			INC(i, d);
-
 
207
			INC(a);
-
 
208
			DEC(b)
-
 
209
		END
-
 
210
	END
-
 
211
END Triangle;
178
 
212
 
179
 
213
 
180
PROCEDURE FillRect* (canvas: tCanvas; left, top, right, bottom: INTEGER);
214
PROCEDURE FillRect* (canvas: tCanvas; left, top, right, bottom: INTEGER);
181
VAR
215
VAR
182
    y: INTEGER;
216
    y: INTEGER;
Line 216... Line 250...
216
PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER);
250
PROCEDURE TextOut* (canvas: tCanvas; x, y: INTEGER; text: INTEGER; n: INTEGER);
217
CONST
251
CONST
218
    WCHAR_SIZE = 2;
252
    WCHAR_SIZE = 2;
219
VAR
253
VAR
220
    color, i: INTEGER;
254
    color, i: INTEGER;
-
 
255
    c: WCHAR;
221
BEGIN
256
BEGIN
222
    IF (0 <= y) & (y <= canvas.height - canvas.font.height - 1) THEN
257
    IF (0 <= y) & (y <= canvas.height - canvas.font.height - 1) THEN
223
        IF x < 0 THEN
258
        IF x < 0 THEN
224
            i := -(x DIV canvas.font.width);
259
            i := -(x DIV canvas.font.width);
225
            INC(x, i*canvas.font.width);
260
            INC(x, i*canvas.font.width);
Line 231... Line 266...
231
            n := MAX(MIN(n, (canvas.width - x) DIV canvas.font.width), 0);
266
            n := MAX(MIN(n, (canvas.width - x) DIV canvas.font.width), 0);
232
            color := canvas.color;
267
            color := canvas.color;
233
            canvas.color := canvas.backColor;
268
            canvas.color := canvas.backColor;
234
            FillRect(canvas, x, y, x + n*canvas.font.width, y + canvas.font.height);
269
            FillRect(canvas, x, y, x + n*canvas.font.width, y + canvas.font.height);
235
            canvas.color := color;
270
            canvas.color := color;
236
(*            WHILE n > 0 DO
271
            WHILE n > 0 DO
-
 
272
                SYSTEM.GET(text + i*WCHAR_SIZE, c);
-
 
273
                IF ~Lines.isSpace(c) THEN
237
                K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, text + i*WCHAR_SIZE, 1, canvas.bitmap - 8);
274
                    K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, SYSTEM.ADR(c), 1, canvas.bitmap - 8)
-
 
275
                END;
238
                INC(x, canvas.font.width);
276
                INC(x, canvas.font.width);
239
                INC(i);
277
                INC(i);
240
                DEC(n)
278
                DEC(n)
241
            END*)
279
            END
242
            K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, text + i*WCHAR_SIZE, n, canvas.bitmap - 8)
280
            (*K.sysfunc6(4, x*65536 + y, LSL(28H + canvas.font.size, 24) + canvas.textColor, text + i*WCHAR_SIZE, n, canvas.bitmap - 8)*)
243
        END
281
        END
244
    END
282
    END
245
END TextOut;
283
END TextOut;