Subversion Repositories Kolibri OS

Rev

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

Rev 9200 Rev 9208
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 (24-sep-2021)";
31
    header = "CEdit (28-sep-2021)";
32
 
32
 
Line 33... Line 33...
33
    ShellFilter = "";
33
    ShellFilter = "";
Line 193... Line 193...
193
    new_searchText, searchText, replaceText, gotoText: T.tString;
193
    new_searchText, searchText, replaceText, gotoText: T.tString;
194
    cs, whole: BOOLEAN;
194
    cs, whole: BOOLEAN;
Line 195... Line 195...
195
 
195
 
Line 196... Line 196...
196
    replaced: INTEGER;
196
    replaced: INTEGER;
Line 197... Line 197...
197
 
197
 
198
    mainTID, delay: INTEGER;
198
    mainTID: INTEGER;
199
 
199
 
Line 229... Line 229...
229
VAR
229
VAR
230
	res: BOOLEAN;
230
	res: BOOLEAN;
231
BEGIN
231
BEGIN
232
	res := FALSE;
232
	res := FALSE;
233
	IF edit # NIL THEN
233
	IF edit # NIL THEN
234
	    res := 1 IN BITS(edit.flags)
234
	    res := 1 IN edit.flags
235
	END
235
	END
236
	RETURN res
236
	RETURN res
237
END EditBox_Focus;
237
END EditBox_Focus;
Line 250... Line 250...
250
 
250
 
251
 
251
 
252
PROCEDURE EditBox_SetFocus (edit: EB.tEditBox; value: BOOLEAN);
252
PROCEDURE EditBox_SetFocus (edit: EB.tEditBox; value: BOOLEAN);
253
BEGIN
253
BEGIN
254
    IF value THEN
254
    IF value THEN
255
        edit.flags := ORD(BITS(edit.flags) + {1})
255
    	INCL(edit.flags, 1)
256
    ELSE
256
    ELSE
257
        edit.flags := ORD(BITS(edit.flags) - {1})
257
    	EXCL(edit.flags, 1)
258
    END;
258
    END;
259
    IF search & searchOpened THEN
259
    IF search & searchOpened THEN
260
        EB.paint(edit)
260
        EB.paint(edit)
Line 409... Line 409...
409
END WriteModified;
409
END WriteModified;
Line 410... Line 410...
410
 
410
 
411
 
411
 
412
PROCEDURE DrawState (text: T.tText; width, height: INTEGER);
412
PROCEDURE DrawState (text: T.tText; width, height: INTEGER);
-
 
413
VAR
413
VAR
414
    y: INTEGER;
414
    y, w, x: INTEGER;
415
    s: ARRAY 24 OF WCHAR;
415
BEGIN
416
BEGIN
416
    y := (btnHeight - fontHeight) DIV 2 + btnTop;
417
    y := (btnHeight - fontHeight) DIV 2 + btnTop;
417
    K.DrawRect(width - 32*fontWidth, y, 32*fontWidth, fontHeight, K.winColor);
418
    s := "";
418
    w := LENGTH(E.names[text.enc])*fontWidth;
419
    U.append(s, RW.eolNames[text.eol]);
419
    x := width - w;
420
    U.append(s, 20X);
420
    K.DrawText(x, y, K.textColor, E.names[text.enc]);
-
 
421
    w := LENGTH(RW.eolNames[text.eol])*fontWidth;
421
    U.append(s, E.names[text.enc]);
422
    DEC(x, w + 10);
422
    K.DrawRect(width - LEN(s)*fontWidth, y, LEN(s)*fontWidth, fontHeight, K.winColor);
423
    K.DrawText(x, y, K.textColor, RW.eolNames[text.eol]);
423
    K.DrawText(width - LENGTH(s)*fontWidth, y, K.textColor, s);
424
    y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2;
424
    y := height - (BOTTOM - scrollWidth) + (BOTTOM - scrollWidth - 16) DIV 2;
425
    K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth, width - LEFT - 24*fontWidth, BOTTOM - scrollWidth + 1, K.winColor);
425
    K.DrawRect(LEFT + 16*fontWidth, TOP + canvas.height + scrollWidth, width - LEFT - 24*fontWidth, BOTTOM - scrollWidth + 1, K.winColor);
426
    K.DrawText866(LEFT + 16*fontWidth, y, K.textColor, text.fileName);
426
    K.DrawText866(LEFT + 16*fontWidth, y, K.textColor, text.fileName);
Line 637... Line 637...
637
END draw_window;
637
END draw_window;
Line 638... Line 638...
638
 
638
 
639
 
639
 
640
PROCEDURE mouse (VAR x, y: INTEGER);
640
PROCEDURE mouse (VAR x, y: INTEGER);
641
VAR
-
 
642
    mouseX, mouseY,
-
 
643
    cliX, cliY,
641
VAR
644
    winX, winY: INTEGER;
642
    msState: SET;
645
BEGIN
643
BEGIN
646
    K.MousePos(mouseX, mouseY);
644
	K.mouse(msState, x, y);
647
    K.WinPos(winX, winY);
-
 
648
    K.ClientPos(cliX, cliY);
-
 
649
    x := mouseX - winX - cliX - LEFT;
645
	DEC(x, LEFT);
Line 650... Line 646...
650
    y := mouseY - winY - cliY - TOP;
646
	DEC(y, TOP)
651
END mouse;
647
END mouse;
Line 933... Line 929...
933
BEGIN
929
BEGIN
934
    NEW(EditBox0);
930
    NEW(EditBox0);
935
    EditBox0.text := K.malloc(EDITBOX_MAXCHARS + 2);
931
    EditBox0.text := K.malloc(EDITBOX_MAXCHARS + 2);
936
    ASSERT(EditBox0.text # 0);
932
    ASSERT(EditBox0.text # 0);
937
    edit := EB.create(left, top, EditBox_Width, EDITBOX_MAXCHARS, EditBox0);
933
    edit := EB.create(left, top, EditBox_Width, EDITBOX_MAXCHARS, EditBox0);
938
    edit.flags := 4002H;
934
    edit.flags := {1, 14};
939
    edit.text_color := 30000000H;
935
    edit.text_color := 30000000H;
940
    EditBox_SetFocus(edit, FALSE)
936
    EditBox_SetFocus(edit, FALSE)
941
    RETURN edit
937
    RETURN edit
942
END createEdit;
938
END createEdit;
Line 945... Line 941...
945
PROCEDURE createSearchForm;
941
PROCEDURE createSearchForm;
946
BEGIN
942
BEGIN
947
    FindEdit := createEdit(searchLeft, TOP + 20);
943
    FindEdit := createEdit(searchLeft, TOP + 20);
948
    ReplaceEdit := createEdit(searchLeft, TOP + 20 + 55);
944
    ReplaceEdit := createEdit(searchLeft, TOP + 20 + 55);
949
    GotoEdit := createEdit(searchLeft, TOP + 20 + 330);
945
    GotoEdit := createEdit(searchLeft, TOP + 20 + 330);
950
    GotoEdit.flags := ORD(BITS(GotoEdit.flags) + BITS(8000H));
946
    INCL(GotoEdit.flags, 15);
951
    CheckBox.create("backward", BKW);
947
    CheckBox.create("backward", BKW);
952
    CheckBox.create("match case", CS);
948
    CheckBox.create("match case", CS);
953
    CheckBox.create("whole word", WH);
949
    CheckBox.create("whole word", WH);
954
END createSearchForm;
950
END createSearchForm;
Line 990... Line 986...
990
VAR
986
VAR
991
    scrollX, scrollY: INTEGER;
987
    scrollX, scrollY: INTEGER;
992
    shift, ctrl: BOOLEAN;
988
    shift, ctrl: BOOLEAN;
993
BEGIN
989
BEGIN
994
    K.getKBState(shift, ctrl);
990
    K.getKBState(shift, ctrl);
995
	Scroll.MouseDown(hScroll, x + LEFT, y + TOP);
-
 
996
	Scroll.MouseDown(vScroll, x + LEFT, y + TOP);
-
 
997
    T.getScroll(text, scrollX, scrollY);
991
    T.getScroll(text, scrollX, scrollY);
998
    T.scroll(text, hScroll.value - scrollX, vScroll.value - scrollY);
992
    T.scroll(text, hScroll.value - scrollX, vScroll.value - scrollY);
999
    IF search & searchOpened THEN
-
 
1000
	   	CheckBox.MouseDown(BKW, x + LEFT, y + TOP);
-
 
1001
	   	CheckBox.MouseDown(CS,  x + LEFT, y + TOP);
-
 
1002
	   	CheckBox.MouseDown(WH,  x + LEFT, y + TOP);
-
 
1003
   	END;
-
 
1004
    IF (0 <= x) & (x < canvas.width) & (0 <= y) & (y < canvas.height) THEN
993
    IF U.between(0, x, canvas.width - 1) & U.between(0, y, canvas.height - 1) THEN
1005
        leftButton := TRUE;
994
        leftButton := TRUE;
1006
        SetFocus(FindEdit, FALSE);
995
        SetFocus(FindEdit, FALSE);
1007
        IF ~shift THEN
996
        IF ~shift THEN
1008
            T.resetSelect(text)
997
            T.resetSelect(text)
1009
        END;
998
        END;
Line 1012... Line 1001...
1012
    repaint
1001
    repaint
1013
    RETURN K.GetTickCount()
1002
    RETURN K.GetTickCount()
1014
END click;
1003
END click;
Line 1015... Line -...
1015
 
-
 
1016
 
-
 
1017
PROCEDURE LeftButtonUp;
-
 
1018
BEGIN
-
 
1019
    leftButton := FALSE;
-
 
1020
    Scroll.MouseUp(hScroll);
-
 
1021
    Scroll.MouseUp(vScroll);
-
 
1022
    CheckBox.MouseUp(BKW);
-
 
1023
    CheckBox.MouseUp(CS);
-
 
1024
    CheckBox.MouseUp(WH);
-
 
1025
END LeftButtonUp;
-
 
1026
 
1004
 
1027
 
1005
 
1028
PROCEDURE Close;
1006
PROCEDURE Close;
1029
VAR
1007
VAR
1030
    cont: BOOLEAN;
1008
    cont: BOOLEAN;
Line 1141... Line 1119...
1141
    winX, winY, cliX, cliY, x, y, i: INTEGER;
1119
    winX, winY, cliX, cliY, x, y, i: INTEGER;
1142
    selected, enabled: BOOLEAN;
1120
    selected, enabled: BOOLEAN;
1143
BEGIN
1121
BEGIN
1144
    IF menu = context THEN
1122
    IF menu = context THEN
1145
        mouse(x, y);
1123
        mouse(x, y);
1146
        IF ~((0 <= x) & (x < canvas.width) & (0 <= y) & (y < canvas.height)) THEN
1124
        IF ~(U.between(0, x, canvas.width - 1) & U.between(0, y, canvas.height - 1)) THEN
1147
            menu := NIL
1125
            menu := NIL
1148
        END
1126
        END
1149
    ELSE
1127
    ELSE
1150
        K.WinPos(winX, winY);
1128
        K.WinPos(winX, winY);
1151
        K.ClientPos(cliX, cliY);
1129
        K.ClientPos(cliX, cliY);
Line 1238... Line 1216...
1238
        menuActive := TRUE
1216
        menuActive := TRUE
1239
    END
1217
    END
1240
END ShowMenu;
1218
END ShowMenu;
Line -... Line 1219...
-
 
1219
 
-
 
1220
 
-
 
1221
PROCEDURE setScript (VAR script: RW.tFileName);
-
 
1222
VAR
-
 
1223
	temp: RW.tFileName;
-
 
1224
BEGIN
-
 
1225
	OpenFile(temp, ShellFilter);
-
 
1226
	IF temp # "" THEN
-
 
1227
		script := temp
-
 
1228
	END
-
 
1229
END setScript;
1241
 
1230
 
1242
 
1231
 
1243
PROCEDURE receiveIPC;
1232
PROCEDURE receiveIPC;
1244
VAR
1233
VAR
1245
	scrollIPC: BOOLEAN;
1234
	scrollIPC: BOOLEAN;
Line 1252... Line 1241...
1252
			repaint
1241
			repaint
1253
		END;
1242
		END;
1254
    	IPC[2] := 0
1243
    	IPC[2] := 0
1255
    ELSIF IPC[0] = mainTID THEN
1244
    ELSIF IPC[0] = mainTID THEN
1256
    	IF IPC[2] = Scroll.ScrollIPC THEN
1245
    	IF IPC[2] = Scroll.ScrollIPC THEN
1257
	    	Scroll.change(hScroll);
-
 
1258
	    	Scroll.change(vScroll);
1246
    		Scroll.receiveIPC(IPC, scrollIPC)
1259
	    	T.scroll(text, ORD(hScroll.Inc) - ORD(hScroll.Dec), ORD(vScroll.Inc) - ORD(vScroll.Dec));
-
 
1260
 
-
 
1261
    		IF menuActive THEN
-
 
1262
    			draw_window;
-
 
1263
    			menuActive := FALSE
-
 
1264
    		ELSE
-
 
1265
    			repaint
-
 
1266
    		END;
-
 
1267
 
-
 
1268
    		IF 0 IN K.MouseState() THEN
-
 
1269
    			WHILE (0 IN K.MouseState()) & (delay > 0) DO
-
 
1270
        			K.Pause(1);
-
 
1271
    	    		DEC(delay)
-
 
1272
        		END;
-
 
1273
        		IF delay = 0 THEN
-
 
1274
    				IPC[0] := 0;
-
 
1275
					IPC[1] := 0;
-
 
1276
					scrollIPC := TRUE;
-
 
1277
	        		Scroll.SendIPC;
-
 
1278
    	    		delay := 2
-
 
1279
        		ELSE
-
 
1280
        			delay := Scroll.Delay
-
 
1281
        		END
-
 
1282
        	ELSE
-
 
1283
        		delay := Scroll.Delay
-
 
1284
			END
-
 
1285
    	END;
1247
    	END;
-
 
1248
    	IF ~scrollIPC THEN
1286
    	IPC[2] := 0
1249
    		IPC[2] := 0
-
 
1250
    	END
1287
    ELSE
1251
    ELSE
1288
    	IF ~Menu.isSender(IPC[0]) THEN
1252
    	IF ~Menu.isSender(IPC[0]) THEN
1289
   			IPC[2] := 0
1253
   			IPC[2] := 0
1290
    	ELSE
1254
    	ELSE
1291
    		IF IPC[2] < 0 THEN
1255
    		IF IPC[2] < 0 THEN
Line 1295... Line 1259...
1295
    			END;
1259
    			END;
1296
    			IPC[2] := 0
1260
    			IPC[2] := 0
1297
    		END
1261
    		END
1298
    	END
1262
    	END
1299
    END;
1263
    END;
-
 
1264
    IF ~scrollIPC THEN
1300
    CASE IPC[2] OF
1265
	    CASE IPC[2] OF
1301
    |0:
1266
	    |0:
1302
    |menuCut:       T.key(text, ORD("X"), FALSE, TRUE)
1267
	    |menuCut:       T.key(text, ORD("X"), FALSE, TRUE)
1303
    |menuCopy:      T.key(text, ORD("C"), FALSE, TRUE)
1268
	    |menuCopy:      T.key(text, ORD("C"), FALSE, TRUE)
1304
    |menuPaste:     T.key(text, ORD("V"), FALSE, TRUE)
1269
	    |menuPaste:     T.key(text, ORD("V"), FALSE, TRUE)
Line 1372... Line 1337...
1372
    |menuPascal:
1337
	    |menuPascal:
1373
        T.setLang(text, Languages.langPascal)
1338
	        T.setLang(text, Languages.langPascal)
1374
    |menuBuild:
1339
	    |menuBuild:
1375
        Script(buildScript)
1340
	        Script(buildScript)
1376
    |menuBuildScript:
1341
	    |menuBuildScript:
1377
        OpenFile(buildScript, ShellFilter)
1342
	    	setScript(buildScript)
1378
    |menuRun:
1343
	    |menuRun:
1379
        Script(runScript)
1344
	        Script(runScript)
1380
    |menuRunScript:
1345
	    |menuRunScript:
1381
        OpenFile(runScript, ShellFilter)
1346
	    	setScript(runScript)
1382
    |menuDebug:
1347
	    |menuDebug:
1383
        Script(debugScript)
1348
	        Script(debugScript)
1384
    |menuDebugScript:
1349
	    |menuDebugScript:
1385
        OpenFile(debugScript, ShellFilter)
1350
	    	setScript(debugScript)
1386
    |menuUTF8BOM:
1351
	    |menuUTF8BOM:
1387
        text.enc := E.UTF8BOM
1352
	        text.enc := E.UTF8BOM
1388
    |menuUTF8:
1353
	    |menuUTF8:
1389
        text.enc := E.UTF8
1354
	        text.enc := E.UTF8
1390
    |menuCP866:
1355
	    |menuCP866:
Line 1420... Line 1385...
1420
	|menuUpper:
1385
		|menuUpper:
1421
		T.chCase(text, TRUE)
1386
			T.chCase(text, TRUE)
1422
	|menuLower:
1387
		|menuLower:
1423
		T.chCase(text, FALSE)
1388
			T.chCase(text, FALSE)
1424
    END;
1389
	    END;
1425
    IF ~scrollIPC THEN
-
 
1426
    	IPC[0] := 0;
1390
    	IPC[0] := 0;
1427
    	IPC[1] := 0
1391
    	IPC[1] := 0
1428
    END
1392
    END
1429
END receiveIPC;
1393
END receiveIPC;
Line 1818... Line 1782...
1818
                |75: key := 37
1782
                |75: key := 37
1819
                |77: key := 39
1783
                |77: key := 39
1820
                |82, 91, 219, 92, 220: key := -1 (* insert, windows *)
1784
                |82, 91, 219, 92, 220: key := -1 (* insert, windows *)
1821
                |93: ShowMenu(context); key := -1
1785
                |93: ShowMenu(context); key := -1
1822
                |83: key := 46
1786
                |83: key := 46
1823
                |59, 62..66, 68, 87, 88: key := -1 (* F1, F4..F8, F10, F11, F12 *)
1787
                |59, 62..66, 87, 88: key := -1 (* F1, F4..F8, F11, F12 *)
1824
                ELSE
1788
                ELSE
1825
                    IF ctrl THEN
1789
                    IF ctrl THEN
1826
                        CASE keyCode OF
1790
                        CASE keyCode OF
1827
                        |17: closeFile(TRUE, curText);
1791
                        |17: closeFile(TRUE, curText);
1828
                             key := -2
1792
                             key := -2
Line 1994... Line 1958...
1994
BEGIN
1958
BEGIN
1995
	CloseMenu;
1959
	CloseMenu;
1996
    IF ~resized THEN
1960
    IF ~resized THEN
1997
        msState := K.MouseState();
1961
        msState := K.MouseState();
1998
        IF ~(0 IN msState) OR (16 IN msState) THEN
1962
        IF ~(0 IN msState) OR (16 IN msState) THEN
1999
            LeftButtonUp
1963
        	leftButton := FALSE
2000
        END;
1964
        END;
2001
        scroll := K.Scroll();
1965
        scroll := K.Scroll();
2002
        IF scroll # 0 THEN
1966
        IF scroll # 0 THEN
2003
            T.scroll(text, 0, scroll*3);
1967
            T.scroll(text, 0, scroll*3);
2004
            repaint
1968
            repaint
Line 2008... Line 1972...
2008
                mouse(x, y);
1972
                mouse(x, y);
2009
                T.mouse(text, x, y);
1973
                T.mouse(text, x, y);
2010
                repaint
1974
                repaint
2011
            END
1975
            END
2012
        END;
1976
        END;
2013
		IF Scroll.isActive(hScroll) THEN
-
 
2014
			mouse(x, y);
-
 
2015
			Scroll.MouseMove(hScroll, x + LEFT, y + TOP);
-
 
2016
            T.getScroll(text, scrollX, scrollY);
-
 
2017
            T.scroll(text, hScroll.value - scrollX, 0);
-
 
2018
			repaint
-
 
2019
		END;
1977
 
2020
		IF Scroll.isActive(vScroll) THEN
1978
		Scroll.mouse(hScroll);
2021
			mouse(x, y);
1979
		Scroll.mouse(vScroll);
2022
			Scroll.MouseMove(vScroll, x + LEFT, y + TOP);
-
 
2023
            T.getScroll(text, scrollX, scrollY);
1980
        T.getScroll(text, scrollX, scrollY);
2024
            T.scroll(text, 0, vScroll.value - scrollY);
1981
        IF (hScroll.value # scrollX) OR (vScroll.value # scrollY) THEN
-
 
1982
			T.scroll(text, hScroll.value - scrollX, vScroll.value - scrollY);
2025
			repaint
1983
        	repaint
2026
		END;
1984
        END;
-
 
1985
 
2027
        IF (8 IN msState) & ~(24 IN msState) THEN
1986
        IF (8 IN msState) & ~(24 IN msState) THEN
2028
            mouse(firstClickX, firstClickY);
1987
            mouse(firstClickX, firstClickY);
2029
            time := click(firstClickX, firstClickY)
1988
            time := click(firstClickX, firstClickY)
2030
        END;
1989
        END;
2031
        IF 9 IN msState THEN
1990
        IF 9 IN msState THEN
2032
            ShowMenu(context)
1991
            ShowMenu(context)
2033
        END;
1992
        END;
2034
        IF 24 IN msState THEN
1993
        IF 24 IN msState THEN
2035
            mouse(x, y);
1994
            mouse(x, y);
2036
    		Scroll.MouseDown(hScroll, x + LEFT, y + TOP);
-
 
2037
    		Scroll.MouseDown(vScroll, x + LEFT, y + TOP);
-
 
2038
    		IF search & searchOpened THEN
-
 
2039
	    		CheckBox.MouseDown(BKW, x + LEFT, y + TOP);
-
 
2040
	    		CheckBox.MouseDown(CS,  x + LEFT, y + TOP);
-
 
2041
	    		CheckBox.MouseDown(WH,  x + LEFT, y + TOP);
-
 
2042
    		END;
-
 
2043
            IF (ABS(x - firstClickX) < 5) & (ABS(y - firstClickY) < 5) THEN
1995
            IF U.between(-4, x - firstClickX, 4) & U.between(-4, y - firstClickY, 4) THEN
2044
                IF (0 <= x) & (x < canvas.width) & (0 <= y) & (y < canvas.height) THEN
1996
                IF U.between(0, x, canvas.width - 1) & U.between(0, y, canvas.height - 1) THEN
2045
                    leftButton := FALSE;
1997
                    leftButton := FALSE;
2046
                    T.selectWord(text);
1998
                    T.selectWord(text);
2047
                    repaint
1999
                    repaint
2048
                END
2000
                END
2049
            ELSE
2001
            ELSE
Line 2052... Line 2004...
2052
                time := click(firstClickX, firstClickY)
2004
                time := click(firstClickX, firstClickY)
2053
            END
2005
            END
2054
        END
2006
        END
2055
    END;
2007
    END;
2056
    IF search & searchOpened THEN
2008
    IF search & searchOpened THEN
-
 
2009
	    CheckBox.mouse(BKW);
-
 
2010
    	CheckBox.mouse(CS);
-
 
2011
    	CheckBox.mouse(WH);
2057
        EditBox(FindEdit);
2012
        EditBox(FindEdit);
2058
        EditBox(ReplaceEdit);
2013
        EditBox(ReplaceEdit);
2059
        EditBox(GotoEdit);
2014
        EditBox(GotoEdit);
2060
        IF CS.value # cs THEN
2015
        IF (CS.value # cs) OR (WH.value # whole) THEN
2061
            cs := ~cs;
2016
            cs := CS.value;
2062
            notFound := ~T.search(text, searchText, cs, whole);
-
 
2063
            repaint
-
 
2064
        END;
-
 
2065
        IF WH.value # whole THEN
-
 
2066
            whole := ~whole;
2017
            whole := WH.value;
2067
            notFound := ~T.search(text, searchText, cs, whole);
2018
            notFound := ~T.search(text, searchText, cs, whole);
2068
            repaint
2019
            repaint
2069
        END
2020
        END
2070
    END;
2021
    END;
2071
    resized := FALSE
2022
    resized := FALSE
Line 2093... Line 2044...
2093
        draw_window
2044
        draw_window
2094
    END
2045
    END
2095
END Redraw;
2046
END Redraw;
Line -... Line 2047...
-
 
2047
 
-
 
2048
 
-
 
2049
PROCEDURE ScrollChange;
-
 
2050
BEGIN
-
 
2051
	Scroll.change(hScroll);
-
 
2052
	Scroll.change(vScroll);
-
 
2053
	T.scroll(text, ORD(hScroll.Inc) - ORD(hScroll.Dec), ORD(vScroll.Inc) - ORD(vScroll.Dec));
-
 
2054
	IF menuActive THEN
-
 
2055
		draw_window;
-
 
2056
		menuActive := FALSE
-
 
2057
	ELSE
-
 
2058
		repaint
-
 
2059
	END
-
 
2060
END ScrollChange;
2096
 
2061
 
2097
 
2062
 
2098
PROCEDURE main;
2063
PROCEDURE main;
2099
VAR
2064
VAR
2100
    err: INTEGER;
2065
    err: INTEGER;
2101
    fileName, filePath: RW.tFileName;
2066
    fileName, filePath: RW.tFileName;
2102
    width, height, cliWidth, cliHeight: INTEGER;
2067
    width, height, cliWidth, cliHeight: INTEGER;
2103
    resized: BOOLEAN;
2068
    resized: BOOLEAN;
2104
    firstClickX, firstClickY, time: INTEGER;
-
 
2105
BEGIN
2069
    firstClickX, firstClickY, time: INTEGER;
2106
	delay := Scroll.Delay;
2070
BEGIN
2107
    K.GetSystemColors;
2071
    K.GetSystemColors;
2108
    Icons.get(icons, grayIcons);
2072
    Icons.get(icons, grayIcons);
2109
    modified := FALSE;
2073
    modified := FALSE;
Line 2113... Line 2077...
2113
    curText := 0;
2077
    curText := 0;
2114
    mainTID := K.ThreadID();
2078
    mainTID := K.ThreadID();
2115
    K.SetIPC(IPC);
2079
    K.SetIPC(IPC);
2116
    U.ptr2str(K.GetName(), AppPath);
2080
    U.ptr2str(K.GetName(), AppPath);
2117
    Ini.load(AppPath);
2081
    Ini.load(AppPath);
2118
    LeftButtonUp;
2082
    leftButton := FALSE;
2119
    resized := FALSE;
2083
    resized := FALSE;
2120
    K.ScreenSize(winWidth, winHeight);
2084
    K.ScreenSize(winWidth, winHeight);
2121
    winWidth := (winWidth*80) DIV 100 - (128 + 30);
2085
    winWidth := (winWidth*80) DIV 100 - (128 + 30);
2122
    winHeight := winHeight - (128 + 30);
2086
    winHeight := winHeight - (128 + 30);
2123
    winWidth := MAX(winWidth, minWinWidth);
2087
    winWidth := MAX(winWidth, minWinWidth);
Line 2179... Line 2143...
2179
            U.getPath(fileName, filePath)
2143
            U.getPath(fileName, filePath)
2180
        END
2144
        END
2181
    END;
2145
    END;
2182
    OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, "");
2146
    OD := OpenDlg.Create(draw_window, OpenDlg.topen, filePath, "");
2183
    insert(0, text);
2147
    insert(0, text);
-
 
2148
    Scroll.init(ScrollChange);
2184
    Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth, hScroll);
2149
    Scroll.create(FALSE, canvas.width + 1, scrollWidth, scrollWidth, scrollWidth, hScroll);
2185
    Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth, vScroll);
2150
    Scroll.create(TRUE, scrollWidth, canvas.height + 1, scrollWidth, scrollWidth, vScroll);
2186
    T.resize(canvas.width, canvas.height);
2151
    T.resize(canvas.width, canvas.height);
2187
    T.SetPos(text, 0, 0);
2152
    T.SetPos(text, 0, 0);
2188
    confirm := FALSE;
2153
    confirm := FALSE;