Rev 8762 | Rev 8848 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8762 | Rev 8772 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | CB := Clipboard, Languages, |
26 | CB := Clipboard, Languages, |
27 | ChangeLog, Scroll, |
27 | ChangeLog, Scroll, |
28 | RW, Ini, box_lib, Icons; |
28 | RW, Ini, box_lib, Icons; |
Line 29... | Line 29... | ||
29 | 29 | ||
30 | CONST |
30 | CONST |
Line 31... | Line 31... | ||
31 | header = "CEdit (03-jun-2021)"; |
31 | header = "CEdit (06-jun-2021)"; |
32 | 32 | ||
Line 33... | Line 33... | ||
33 | ShellFilter = ""; |
33 | ShellFilter = ""; |
Line 116... | Line 116... | ||
116 | menuSaveAs = 13; |
116 | menuSaveAs = 13; |
117 | menuFolder = 14; |
117 | menuFolder = 14; |
118 | menuExit = 15; |
118 | menuExit = 15; |
Line 119... | Line 119... | ||
119 | 119 | ||
- | 120 | menuNumbers = 20; |
|
120 | menuNumbers = 20; |
121 | menuFontSize = 21; |
121 | menuColors = 1000; |
122 | menuColors = 1000; |
Line 122... | Line 123... | ||
122 | menuMaxColors = menuColors + Ini.MAX_SECTIONS - 1; |
123 | menuMaxColors = menuColors + Ini.MAX_SECTIONS - 1; |
123 | 124 | ||
Line 145... | Line 146... | ||
145 | menuSysFunc = 71; |
146 | menuSysFunc = 71; |
Line 146... | Line 147... | ||
146 | 147 | ||
147 | 148 | ||
148 | VAR |
149 | VAR |
149 | canvas: G.tCanvas; |
150 | canvas: G.tCanvas; |
150 | font: G.tFont; |
151 | font, font1, font2: G.tFont; |
151 | text: T.tText; |
152 | text: T.tText; |
152 | winWidth, winHeight: INTEGER; |
153 | winWidth, winHeight: INTEGER; |
153 | shift: SET; |
154 | shift: SET; |
Line 459... | Line 460... | ||
459 | END drawToolbarBtn; |
460 | END drawToolbarBtn; |
Line 460... | Line 461... | ||
460 | 461 | ||
461 | 462 | ||
462 | PROCEDURE drawMainMenu (menu: Menu.tMenu; x: INTEGER; btn: INTEGER; caption: ARRAY OF WCHAR); |
463 | PROCEDURE drawMainMenu (menu: Menu.tMenu; x: INTEGER; btn: INTEGER; caption: ARRAY OF WCHAR); |
463 | VAR |
464 | VAR |
464 | menuColor, n: INTEGER; |
465 | menuColor, textColor, n: INTEGER; |
465 | BEGIN |
466 | BEGIN |
- | 467 | IF menu.tid # 0 THEN |
|
466 | IF menu.tid # 0 THEN |
468 | menuColor := K.textColor; |
467 | menuColor := K.selMenuColor |
469 | textColor := K.winColor |
- | 470 | ELSE |
|
468 | ELSE |
471 | menuColor := K.winColor; |
469 | menuColor := K.winColor |
472 | textColor := K.textColor |
470 | END; |
473 | END; |
471 | n := LENGTH(caption); |
474 | n := LENGTH(caption); |
472 | K.DrawRect(x, 0, n*fontWidth + 2, MainMenuHeight, menuColor); |
475 | K.DrawRect(x, 0, n*fontWidth + 2, MainMenuHeight, menuColor); |
473 | K.CreateButton(btn + ORD({30}), x, 0, n*fontWidth + 2, MainMenuHeight, K.btnColor, ""); |
476 | K.CreateButton(btn + ORD({30}), x, 0, n*fontWidth + 2, MainMenuHeight, K.btnColor, ""); |
Line 474... | Line 477... | ||
474 | K.DrawText(x + 1, (MainMenuHeight - fontHeight) DIV 2 + 1, K.textColor, caption) |
477 | K.DrawText(x + 1, (MainMenuHeight - fontHeight) DIV 2 + 1, textColor, caption) |
475 | END drawMainMenu; |
478 | END drawMainMenu; |
476 | 479 | ||
477 | 480 | ||
478 | BEGIN |
481 | BEGIN |
479 | K.BeginDraw; |
482 | K.BeginDraw; |
Line 480... | Line 483... | ||
480 | K.CreateWindow(50 + K.GetTickCount() MOD 128, 50 + K.GetTickCount() MOD 128, winWidth, winHeight, K.winColor, 73H, 0, 0, header); |
483 | K.CreateWindow(30 + K.GetTickCount() MOD 128, 30 + K.GetTickCount() MOD 128, winWidth, winHeight, K.winColor, 73H, 0, 0, header); |
Line 889... | Line 892... | ||
889 | EditBox_SetFocus(GotoEdit, TRUE); |
892 | EditBox_SetFocus(GotoEdit, TRUE); |
890 | EditBox_SetFocus(FindEdit, FALSE); |
893 | EditBox_SetFocus(FindEdit, FALSE); |
891 | EditBox_SetFocus(ReplaceEdit, FALSE) |
894 | EditBox_SetFocus(ReplaceEdit, FALSE) |
892 | |menuNumbers: |
895 | |menuNumbers: |
893 | T.toggleNumbers(text) |
896 | T.toggleNumbers(text) |
- | 897 | |menuFontSize: |
|
- | 898 | IF font = font1 THEN |
|
- | 899 | font := font2 |
|
- | 900 | ELSE |
|
- | 901 | font := font1 |
|
- | 902 | END; |
|
- | 903 | resize |
|
894 | |menuNone: |
904 | |menuNone: |
895 | T.setLang(text, Languages.langNone) |
905 | T.setLang(text, Languages.langNone) |
896 | |menuC: |
906 | |menuC: |
897 | T.setLang(text, Languages.langC) |
907 | T.setLang(text, Languages.langC) |
898 | |menuFasm: |
908 | |menuFasm: |
Line 1051... | Line 1061... | ||
1051 | colors: Ini.tSection; |
1061 | colors: Ini.tSection; |
1052 | idx: INTEGER; |
1062 | idx: INTEGER; |
1053 | BEGIN |
1063 | BEGIN |
1054 | menu := List.create(NIL); |
1064 | menu := List.create(NIL); |
1055 | Menu.AddMenuItem(menu, menuNumbers, "line numbers"); |
1065 | Menu.AddMenuItem(menu, menuNumbers, "line numbers"); |
- | 1066 | Menu.AddMenuItem(menu, menuFontSize, "x2"); |
|
1056 | Menu.delimiter(menu); |
1067 | Menu.delimiter(menu); |
Line 1057... | Line 1068... | ||
1057 | 1068 | ||
1058 | colors := Ini.sections.first(Ini.tSection); |
1069 | colors := Ini.sections.first(Ini.tSection); |
1059 | idx := menuColors; |
1070 | idx := menuColors; |
Line 1170... | Line 1181... | ||
1170 | Menu.setCheck(menu, menuCP866, ORD(text.enc = E.CP866)*2); |
1181 | Menu.setCheck(menu, menuCP866, ORD(text.enc = E.CP866)*2); |
1171 | Menu.setCheck(menu, menuWin1251, ORD(text.enc = E.W1251)*2); |
1182 | Menu.setCheck(menu, menuWin1251, ORD(text.enc = E.W1251)*2); |
1172 | INC(x, menuEncodingX) |
1183 | INC(x, menuEncodingX) |
1173 | ELSIF menu = menuView THEN |
1184 | ELSIF menu = menuView THEN |
1174 | Menu.setCheck(menu, menuNumbers, ORD(text.numbers)); |
1185 | Menu.setCheck(menu, menuNumbers, ORD(text.numbers)); |
- | 1186 | Menu.setCheck(menu, menuFontSize, ORD(font = font2)); |
|
1175 | FOR i := 0 TO Ini.sections.count - 1 DO |
1187 | FOR i := 0 TO Ini.sections.count - 1 DO |
1176 | Menu.setCheck(menu, menuColors + i, ORD(Ini.curSectionNum = i)*2) |
1188 | Menu.setCheck(menu, menuColors + i, ORD(Ini.curSectionNum = i)*2) |
1177 | END; |
1189 | END; |
1178 | INC(x, menuViewX) |
1190 | INC(x, menuViewX) |
1179 | ELSIF menu = menuSyntax THEN |
1191 | ELSIF menu = menuSyntax THEN |
Line 1203... | Line 1215... | ||
1203 | END ShowMenu; |
1215 | END ShowMenu; |
Line 1204... | Line 1216... | ||
1204 | 1216 | ||
1205 | 1217 | ||
1206 | PROCEDURE main; |
1218 | PROCEDURE main; |
1207 | VAR |
1219 | VAR |
1208 | width, height, x, y, scrollX, scrollY: INTEGER; |
1220 | width, height, x, y, scrollX, scrollY, i: INTEGER; |
1209 | key: INTEGER; |
1221 | key: INTEGER; |
1210 | msState: SET; |
1222 | msState: SET; |
1211 | scroll: INTEGER; |
1223 | scroll: INTEGER; |
Line 1224... | Line 1236... | ||
1224 | Ini.load(AppPath); |
1236 | Ini.load(AppPath); |
1225 | K.SetEventsMask({0, 1, 2, 5, 6, 31}); |
1237 | K.SetEventsMask({0, 1, 2, 5, 6, 31}); |
1226 | LeftButtonUp; |
1238 | LeftButtonUp; |
1227 | resized := FALSE; |
1239 | resized := FALSE; |
1228 | shift := {}; |
1240 | shift := {}; |
- | 1241 | K.ScreenSize(winWidth, winHeight); |
|
- | 1242 | winWidth := (winWidth * 80) DIV 100 - (128 + 30); |
|
- | 1243 | winHeight := winHeight - (128 + 30); |
|
1229 | winWidth := minWinWidth; |
1244 | winWidth := MAX(winWidth, minWinWidth); |
1230 | winHeight := minWinHeight; |
1245 | winHeight := MAX(winHeight, minWinHeight); |
1231 | cliWidth := winWidth; |
1246 | cliWidth := winWidth; |
1232 | cliHeight := winHeight; |
1247 | cliHeight := winHeight; |
1233 | LEFT := 10; |
1248 | LEFT := 10; |
1234 | canvas := G.CreateCanvas(winWidth - (LEFT + RIGHT + 10), winHeight - (TOP + BOTTOM + 4) - K.SkinHeight()); |
1249 | canvas := G.CreateCanvas(winWidth - (LEFT + RIGHT + 10), winHeight - (TOP + BOTTOM + 4) - K.SkinHeight()); |
1235 | font := G.CreateFont(1, "", {}); |
1250 | font1 := G.CreateFont(1, "", {}); |
- | 1251 | font2 := G.CreateFont(2, "", {}); |
|
- | 1252 | font := font1; |
|
1236 | G.SetFont(canvas, font); |
1253 | G.SetFont(canvas, font); |
1237 | T.init(NIL); |
1254 | T.init(NIL); |
1238 | T.setCanvas(canvas); |
1255 | T.setCanvas(canvas); |
1239 | U.ptr2str(K.GetCommandLine(), fileName); |
1256 | U.ptr2str(K.GetCommandLine(), fileName); |
1240 | context := CreateContextMenu(); |
1257 | context := CreateContextMenu(); |
Line 1278... | Line 1295... | ||
1278 | runScript := ""; |
1295 | runScript := ""; |
1279 | debugScript := ""; |
1296 | debugScript := ""; |
1280 | WHILE TRUE DO |
1297 | WHILE TRUE DO |
1281 | CASE K.WaitForEvent() OF |
1298 | CASE K.WaitForEvent() OF |
1282 | |1: |
1299 | |1: |
- | 1300 | FOR i := 0 TO 1 DO |
|
1283 | K.GetSystemColors; |
1301 | K.GetSystemColors; |
1284 | Icons.get(icons, grayIcons); |
1302 | Icons.get(icons, grayIcons); |
1285 | IF ~K.RolledUp() THEN |
1303 | IF ~K.RolledUp() THEN |
1286 | K.ClientSize(width, height); |
1304 | K.ClientSize(width, height); |
1287 | IF (width # cliWidth) OR (height # cliHeight) THEN |
1305 | IF (width # cliWidth) OR (height # cliHeight) THEN |
1288 | cliWidth := width; |
1306 | cliWidth := width; |
1289 | cliHeight := height; |
1307 | cliHeight := height; |
1290 | resize; |
1308 | resize; |
1291 | resized := TRUE |
1309 | resized := TRUE; |
1292 | END; |
1310 | END; |
1293 | K.SetEventsMask({0, 1, 2, 5, 6, 31}) |
1311 | K.SetEventsMask({0, 1, 2, 5, 6, 31}) |
1294 | ELSE |
1312 | ELSE |
1295 | K.SetEventsMask({0, 30, 31}) |
1313 | K.SetEventsMask({0, 30, 31}) |
1296 | END; |
1314 | END; |
1297 | draw_window |
1315 | draw_window |
- | 1316 | END |
|
- | 1317 | ||
1298 | |2: |
1318 | |2: |
1299 | key := K.GetKey(); |
1319 | key := K.GetKey(); |
1300 | getKBState; |
1320 | getKBState; |
1301 | IF key DIV 65536 = 61 THEN (* F3 *) |
1321 | IF key DIV 65536 = 61 THEN (* F3 *) |
1302 | key := -1; |
1322 | key := -1; |
1303 | IF search & (searchText # "") THEN |
1323 | IF search & (searchText # "") THEN |
- | 1324 | IF T.SHIFT IN shift THEN |
|
- | 1325 | notFound := ~T.findNext(text, ~box_lib.check_box_get_value(BKW)) |
|
- | 1326 | ELSE |
|
1304 | notFound := ~T.findNext(text, box_lib.check_box_get_value(BKW)) |
1327 | notFound := ~T.findNext(text, box_lib.check_box_get_value(BKW)) |
1305 | END |
1328 | END |
- | 1329 | END |
|
1306 | ELSIF key DIV 65536 = 67 THEN (* F9 *) |
1330 | ELSIF key DIV 65536 = 67 THEN (* F9 *) |
1307 | key := -1; |
1331 | key := -1; |
1308 | IF T.CTRL IN shift THEN |
1332 | IF T.CTRL IN shift THEN |
1309 | Script(buildScript) |
1333 | Script(buildScript) |
1310 | ELSE |
1334 | ELSE |
1311 | Script(runScript) |
1335 | Script(runScript) |
1312 | END |
1336 | END |
- | 1337 | ELSIF key DIV 65536 = 1 THEN |
|
- | 1338 | key := -1; (* Esc *) |
|
- | 1339 | IF search THEN |
|
- | 1340 | Search |
|
- | 1341 | END |
|
1313 | ELSIF (key DIV 65536 = 55) & (key DIV 256 MOD 256 = 52) THEN |
1342 | ELSIF (key DIV 65536 = 55) & (key DIV 256 MOD 256 = 52) THEN |
1314 | key := -1 (* PrtScn *) |
1343 | key := -1 (* PrtScn *) |
1315 | ELSIF (T.CTRL IN shift) & (key DIV 65536 = 33) THEN |
1344 | ELSIF (T.CTRL IN shift) & (key DIV 65536 = 33) THEN |
1316 | key := -1; |
1345 | key := -1; |
1317 | IF ~search THEN |
1346 | IF ~search THEN |