Subversion Repositories Kolibri OS

Rev

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

Rev 9674 Rev 9708
Line 22... Line 22...
22
IMPORT
22
IMPORT
23
    OpenDlg, K := KolibriOS, Args,
23
    OpenDlg, K := KolibriOS, Args,
24
    U := Utils, Lines, Menu, List,
24
    U := Utils, Lines, Menu, List,
25
    G := Graph, T := Text, E := Encodings,
25
    G := Graph, T := Text, E := Encodings,
26
    CB := Clipboard, Languages,
26
    CB := Clipboard, Languages,
27
    ChangeLog, Scroll, CheckBox, KOSAPI, SYSTEM,
27
    ChangeLog, Scroll, CheckBox,
28
    RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar;
28
    RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar;
Line 29... Line 29...
29
 
29
 
30
CONST
30
CONST
Line 31... Line 31...
31
    HEADER = "CEdit (28-jan-2022)";
31
    HEADER = "CEdit (09-feb-2022)";
32
 
32
 
Line 33... Line 33...
33
    ShellFilter = "";
33
    ShellFilter = "";
Line 122... Line 122...
122
    menuFASM = 56;
122
    menuFASM = 56;
Line 123... Line 123...
123
 
123
 
124
    menuUTF8BOM = 60;
124
    menuUTF8BOM = 60;
125
    menuUTF8 = 61;
125
    menuUTF8 = 61;
126
    menuCP866 = 62;
126
    menuCP866 = 62;
127
    menuWin1251 = 63;
127
    menuCP1251 = 63;
128
    menuEOL = 140;
128
    menuEOL = 140;
129
    menuConv1251_866 = 64;
129
    menuConv1251_866 = 64;
Line 130... Line 130...
130
    menuConv866_1251 = 65;
130
    menuConv866_1251 = 65;
Line 1043... Line 1043...
1043
        END
1043
        END
1044
    ELSIF menu = menuEncoding THEN
1044
    ELSIF menu = menuEncoding THEN
1045
        Menu.option(menu, menuUTF8BOM, T.getEnc(text) = E.UTF8BOM);
1045
        Menu.option(menu, menuUTF8BOM, T.getEnc(text) = E.UTF8BOM);
1046
        Menu.option(menu, menuUTF8,    T.getEnc(text) = E.UTF8);
1046
        Menu.option(menu, menuUTF8,    T.getEnc(text) = E.UTF8);
1047
        Menu.option(menu, menuCP866,   T.getEnc(text) = E.CP866);
1047
        Menu.option(menu, menuCP866,   T.getEnc(text) = E.CP866);
1048
        Menu.option(menu, menuWin1251, T.getEnc(text) = E.W1251)
1048
        Menu.option(menu, menuCP1251,  T.getEnc(text) = E.CP1251)
1049
    ELSIF menu = menuView THEN
1049
    ELSIF menu = menuView THEN
1050
        Menu.option(menu, menuFontSmall,  font = G.fonts[0]);
1050
        Menu.option(menu, menuFontSmall,  font = G.fonts[0]);
1051
        Menu.option(menu, menuFontMedium, font = G.fonts[1]);
1051
        Menu.option(menu, menuFontMedium, font = G.fonts[1]);
1052
        Menu.option(menu, menuFontLarge,  font = G.fonts[2]);
1052
        Menu.option(menu, menuFontLarge,  font = G.fonts[2]);
1053
        FOR i := 0 TO Ini.sections.count - 1 DO
1053
        FOR i := 0 TO Ini.sections.count - 1 DO
Line 1269... Line 1269...
1269
    	T.setEnc(text, E.UTF8BOM)
1269
    	T.setEnc(text, E.UTF8BOM)
1270
    |menuUTF8:
1270
    |menuUTF8:
1271
    	T.setEnc(text, E.UTF8)
1271
    	T.setEnc(text, E.UTF8)
1272
    |menuCP866:
1272
    |menuCP866:
1273
    	T.setEnc(text, E.CP866)
1273
    	T.setEnc(text, E.CP866)
1274
    |menuWin1251:
1274
    |menuCP1251:
1275
    	T.setEnc(text, E.W1251)
1275
    	T.setEnc(text, E.CP1251)
1276
    |menuLF:
1276
    |menuLF:
1277
    	T.setEol(text, E.EOL_LF)
1277
    	T.setEol(text, E.EOL_LF)
1278
    |menuCRLF:
1278
    |menuCRLF:
1279
    	T.setEol(text, E.EOL_CRLF)
1279
    	T.setEol(text, E.EOL_CRLF)
1280
    |menuCR:
1280
    |menuCR:
1281
    	T.setEol(text, E.EOL_CR)
1281
    	T.setEol(text, E.EOL_CR)
1282
    |menuConv1251_866:
1282
    |menuConv1251_866:
1283
    	T.convert(text, E.cp866, E.W1251)
1283
    	T.convert(text, (*E.cp866,*) E.CP1251)
1284
    |menuConv866_1251:
1284
    |menuConv866_1251:
1285
    	T.convert(text, E.cp1251, E.CP866)
1285
    	T.convert(text, (*E.cp1251,*) E.CP866)
1286
    |menuPipet:
1286
    |menuPipet:
1287
        K.Run("/sys/develop/pipet", "")
1287
        K.Run("/sys/develop/pipet", "")
1288
    |menuMagnify:
1288
    |menuMagnify:
1289
        K.Run("/sys/magnify", "")
1289
        K.Run("/sys/magnify", "")
1290
    |menuBoard:
1290
    |menuBoard:
Line 1411... Line 1411...
1411
BEGIN
1411
BEGIN
1412
    menu := List.create(NIL);
1412
    menu := List.create(NIL);
1413
    Menu.AddMenuItem(menu, menuUTF8BOM, E.names[E.UTF8BOM]);
1413
    Menu.AddMenuItem(menu, menuUTF8BOM, E.names[E.UTF8BOM]);
1414
    Menu.AddMenuItem(menu, menuUTF8,    E.names[E.UTF8]);
1414
    Menu.AddMenuItem(menu, menuUTF8,    E.names[E.UTF8]);
1415
    Menu.AddMenuItem(menu, menuCP866,   E.names[E.CP866]);
1415
    Menu.AddMenuItem(menu, menuCP866,   E.names[E.CP866]);
1416
    Menu.AddMenuItem(menu, menuWin1251, E.names[E.W1251]);
1416
    Menu.AddMenuItem(menu, menuCP1251,  E.names[E.CP1251]);
1417
    Menu.delimiter(menu);
1417
    Menu.delimiter(menu);
1418
    Menu.AddMenuItem(menu, menuEOL,     "EOL");
1418
    Menu.AddMenuItem(menu, menuEOL,     "EOL");
1419
    Menu.child(menu, subEOL);
1419
    Menu.child(menu, subEOL);
1420
    Menu.delimiter(menu);
1420
    Menu.delimiter(menu);
1421
    Menu.AddMenuItem(menu, menuConv1251_866, "convert 1251 >> 866");
1421
    Menu.AddMenuItem(menu, menuConv1251_866, "convert 1251 >> 866");
Line 2020... Line 2020...
2020
		repaint
2020
		repaint
2021
	END
2021
	END
2022
END ScrollChange;
2022
END ScrollChange;
Line 2023... Line -...
2023
 
-
 
2024
 
-
 
2025
PROCEDURE docpack (VAR param: RW.tFileName);
-
 
2026
VAR
-
 
2027
	i, size, errno: INTEGER;
-
 
2028
	ptr, ptr2: INTEGER;
-
 
2029
	s: ARRAY 32 OF WCHAR;
-
 
2030
BEGIN
-
 
2031
	U.reverse8(param);
-
 
2032
	param[LENGTH(param) - 1] := 0X;
-
 
2033
	U.reverse8(param);
-
 
2034
	i := 0;
-
 
2035
	WHILE param[i] # 0X DO
-
 
2036
		s[i] := WCHR(ORD(param[i]));
-
 
2037
		INC(i)
-
 
2038
	END;
-
 
2039
	IF U.str2int(s, size) THEN
-
 
2040
		INC(size, 20);
-
 
2041
		ptr := KOSAPI.malloc(size);
-
 
2042
		IF ptr # 0 THEN
-
 
2043
			SYSTEM.PUT32(ptr, 0);
-
 
2044
			SYSTEM.PUT32(ptr + 4, 8);
-
 
2045
			KOSAPI.sysfunc4(60, 1, ptr, size);
-
 
2046
			K.SetEventsMask({6});
-
 
2047
			IF K.EventTimeout(200) = 7 THEN
-
 
2048
				SYSTEM.PUT32(ptr, 1);
-
 
2049
				SYSTEM.GET(ptr + 12, size);
-
 
2050
				ptr2 := KOSAPI.malloc(size);
-
 
2051
				IF ptr2 # 0 THEN
-
 
2052
					SYSTEM.MOVE(ptr + 16, ptr2, size);
-
 
2053
					text := T.open("", ptr2, size, errno);
-
 
2054
					IF text # NIL THEN
-
 
2055
				        insert(0, text);
-
 
2056
				        T.SetPos(text, 0, 0)
-
 
2057
			        END
-
 
2058
		        END
-
 
2059
			END;
-
 
2060
			ptr := KOSAPI.free(ptr)
-
 
2061
		END
-
 
2062
	END
-
 
2063
END docpack;
-
 
2064
 
2023
 
2065
 
2024
 
2066
PROCEDURE main;
2025
PROCEDURE main;
2067
VAR
2026
VAR
2068
    fileName, filePath: RW.tFileName;
2027
    fileName, filePath: RW.tFileName;
2069
    width, height, cliWidth, cliHeight: INTEGER;
2028
    width, height, cliWidth, cliHeight: INTEGER;
2070
    resized: BOOLEAN;
2029
    resized: BOOLEAN;
-
 
2030
    firstClickX, firstClickY, time, blink, i: INTEGER;
2071
    firstClickX, firstClickY, time, blink, i: INTEGER;
2031
    key, scr: INTEGER;
2072
    key, scr: INTEGER;
2032
    text_ptr, text_size, errno: INTEGER;
2073
BEGIN
2033
BEGIN
2074
	header := "";
2034
	header := "";
2075
    K.GetSystemColors;
2035
    K.GetSystemColors;
Line 2168... Line 2128...
2168
		IF fileName[0] # "*" THEN
2128
		IF fileName[0] # "*" THEN
2169
			IF open(fileName) THEN
2129
			IF open(fileName) THEN
2170
				U.getPath(fileName, filePath)
2130
				U.getPath(fileName, filePath)
2171
			END
2131
			END
2172
		ELSE
2132
		ELSE
2173
			docpack(fileName)
2133
			K.docpack(fileName, text_ptr, text_size);
-
 
2134
			IF text_ptr # 0 THEN
-
 
2135
				text := T.open("", text_ptr, text_size, errno);
-
 
2136
				IF text # NIL THEN
-
 
2137
					insert(0, text);
-
 
2138
					T.SetPos(text, 0, 0)
-
 
2139
				END
-
 
2140
			END
2174
		END
2141
		END
2175
	END;
2142
	END;
2176
	IF textsCount = 0 THEN
2143
	IF textsCount = 0 THEN
2177
		K.Exit
2144
		K.Exit
2178
	END;
2145
	END;