Subversion Repositories Kolibri OS

Rev

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