Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 9447 → Rev 9448

/programs/develop/cedit/SRC/CEdit.ob07
25,10 → 25,10
G := Graph, T := Text, E := Encodings,
CB := Clipboard, Languages,
ChangeLog, Scroll, CheckBox,
RW, Ini, EB := EditBox, Icons, Tabs, Timer;
RW, Ini, EB := EditBox, Tabs, Toolbar;
 
CONST
HEADER = "CEdit (17-dec-2021)";
HEADER = "CEdit (20-dec-2021)";
 
ShellFilter = "";
EditFilter = "SH|INC|TXT|ASM|OB07|C|CPP|H|PAS|PP|LUA|INI|JSON";
38,6 → 38,7
scrollWidth = 22;
 
btnClose = 1;
 
btnNew = 20;
btnOpen = 21;
btnSave = 22;
62,12 → 63,10
 
btnHeight = 25;
btnWidth = 75;
btnTop = Menu.MainMenuHeight + 3;
toolBtnSize = 24;
toolbarDelim = 7;
iconPad = (toolBtnSize - Icons.SIZE) DIV 2;
 
TOP = btnTop + toolBtnSize + 10 + Tabs.tabHeight;
toolbarTop = Menu.MainMenuHeight + 3;
 
TOP = toolbarTop + Toolbar.BtnSize + 10 + Tabs.tabHeight;
RIGHT = scrollWidth - 2;
BOTTOM = scrollWidth + 18;
 
206,12 → 205,14
 
menuActive: BOOLEAN;
 
icons: INTEGER;
grayIcons: INTEGER;
toolbar: Toolbar.tToolbar;
 
IPC: ARRAY 64 OF INTEGER;
 
CursorTime, CurrentTime: INTEGER;
timerEnabled: BOOLEAN;
 
 
PROCEDURE WritePos (y: INTEGER);
VAR
s1, s2: ARRAY 32 OF WCHAR;
235,11 → 236,12
BEGIN
IF EditBox_Focus(FindEdit) OR EditBox_Focus(ReplaceEdit) OR EditBox_Focus(GotoEdit) THEN
T.hideCursor;
Timer.kill
timerEnabled := FALSE
ELSE
T.showCursor;
Timer.create(mainTID)
END
timerEnabled := TRUE
END;
CursorTime := CurrentTime
END resetTimer;
 
 
283,7 → 285,8
VAR
top, left, right, bottom, x, y, width: INTEGER;
BEGIN
Timer.kill;
timerEnabled := FALSE;
CursorTime := CurrentTime;
width := minWidth + LENGTH(s)*fontWidth;
left := (canvas.width - width) DIV 2 + LEFT;
top := (canvas.height - height) DIV 2 + TOP;
326,73 → 329,6
END Replaced;
 
 
PROCEDURE drawIcon (icons, idx, x: INTEGER);
BEGIN
Icons.draw(icons, idx, x + iconPad, btnTop + iconPad)
END drawIcon;
 
 
PROCEDURE toolbarIcons;
VAR
x, color, ico: INTEGER;
BEGIN
x := searchLeft + (toolBtnSize + 5)*2;
IF text.modified THEN
ico := icons
ELSE
ico := grayIcons
END;
drawIcon(ico, 5, x);
 
IF text.edition # NIL THEN
x := searchLeft + (toolBtnSize + 5)*4 + toolbarDelim*2;
IF ChangeLog.isFirstGuard(text.edition) THEN
ico := grayIcons
ELSE
ico := icons
END;
drawIcon(ico, 37, x);
 
x := searchLeft + (toolBtnSize + 5)*5 + toolbarDelim*2;
IF ChangeLog.isLastGuard(text.edition) THEN
ico := grayIcons
ELSE
ico := icons
END;
drawIcon(ico, 36, x)
END;
 
IF T.selected(text) THEN
color := K.caseColor
ELSE
color := K.disCaseColor
END;
 
x := searchLeft + (toolBtnSize + 5)*6 + toolbarDelim*3;
K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor);
K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, color, "AB");
INC(x, toolBtnSize + 5);
K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor);
K.DrawText69(x + (toolBtnSize - 12) DIV 2, btnTop + (toolBtnSize - 9) DIV 2 + 2, color, "ab");
 
x := searchLeft + (toolBtnSize + 5)*8 + toolbarDelim*4;
IF buildScript # "" THEN
ico := icons
ELSE
ico := grayIcons
END;
drawIcon(ico, 54, x);
 
INC(x, toolBtnSize + 5);
IF runScript # "" THEN
ico := icons
ELSE
ico := grayIcons
END;
drawIcon(ico, 53, x)
END toolbarIcons;
 
 
PROCEDURE getIdx (text: T.tText): INTEGER;
VAR
i: INTEGER;
499,7 → 435,14
G.DrawCanvas(canvas, LEFT, TOP);
NotFound;
Replaced;
toolbarIcons
Toolbar.enable(toolbar, btnSave, text.modified);
Toolbar.enable(toolbar, btnUndo, ~ChangeLog.isFirstGuard(text.edition));
Toolbar.enable(toolbar, btnRedo, ~ChangeLog.isLastGuard(text.edition));
Toolbar.enable(toolbar, btnUpper, T.selected(text));
Toolbar.enable(toolbar, btnLower, T.selected(text));
Toolbar.enable(toolbar, btnBuild, buildScript # "");
Toolbar.enable(toolbar, btnRun, runScript # "");
Toolbar.drawIcons(toolbar)
END
END repaint;
 
580,19 → 523,9
 
PROCEDURE draw_window;
VAR
width, height, x: INTEGER;
width, height: INTEGER;
 
 
PROCEDURE drawToolbarBtn (id, x: INTEGER);
BEGIN
K.DrawRect(x, btnTop, toolBtnSize, toolBtnSize, K.toolbarColor);
K.DrawLine(x, btnTop + toolBtnSize, x + toolBtnSize, btnTop + toolBtnSize, K.shadowColor);
K.DrawLine(x + toolBtnSize, btnTop, x + toolBtnSize, btnTop + toolBtnSize, K.shadowColor);
K.CreateButton(id + ORD({30}), x, btnTop, toolBtnSize, toolBtnSize, K.btnColor, "");
END drawToolbarBtn;
 
 
BEGIN
K.BeginDraw;
K.CreateWindow(30 + K.GetTickCount() MOD 128, 30 + K.GetTickCount() MOD 128, winWidth, winHeight, K.winColor, 73H, 0, 0, "");
IF (text # NIL) & ~K.RolledUp() THEN
607,43 → 540,8
K.DrawRect(LEFT + canvas.width + 1, TOP + canvas.height, scrollWidth - 1, scrollWidth, K.winColor);
Menu.DrawMain(mainMenu);
 
x := searchLeft;
Toolbar.draw(toolbar);
 
drawToolbarBtn(btnNew, x);
drawIcon(icons, 2, x);
INC(x, toolBtnSize + 5);
 
drawToolbarBtn(btnOpen, x);
drawIcon(icons, 0, x);
INC(x, toolBtnSize + 5);
 
drawToolbarBtn(btnSave, x);
INC(x, toolBtnSize + 5 + toolbarDelim);
 
drawToolbarBtn(btnSearch, x);
drawIcon(icons, 49, x);
INC(x, toolBtnSize + 5 + toolbarDelim);
 
drawToolbarBtn(btnUndo, x);
INC(x, toolBtnSize + 5);
 
drawToolbarBtn(btnRedo, x);
INC(x, toolBtnSize + 5 + toolbarDelim);
 
drawToolbarBtn(btnUpper, x);
INC(x, toolBtnSize + 5);
 
drawToolbarBtn(btnLower, x);
INC(x, toolBtnSize + 5 + toolbarDelim);
 
drawToolbarBtn(btnBuild, x);
INC(x, toolBtnSize + 5);
 
drawToolbarBtn(btnRun, x);
INC(x, toolBtnSize + 5);
 
toolbarIcons;
 
DrawState(text, width, height);
IF search & searchOpened THEN
SearchPanel(searchLeft, TOP)
668,7 → 566,8
PROCEDURE stopTimer;
BEGIN
T.hideCursor;
Timer.kill;
timerEnabled := FALSE;
CursorTime := CurrentTime;
repaint
END stopTimer;
 
832,6 → 731,7
Confirm
ELSE
Tabs.delete(tabs, n);
T.destroy(texts[n]);
FOR i := n + 1 TO textsCount - 1 DO
texts[i - 1] := texts[i]
END;
1065,9 → 965,7
PROCEDURE ShowSearchPanel (goto: BOOLEAN);
VAR
i: INTEGER;
(*flag: BOOLEAN;*)
BEGIN
(*flag := FALSE;*)
IF T.selected(text) & ~goto THEN
T.getSelectedText(text, new_searchText);
IF new_searchText # "" THEN
1079,7 → 977,6
searchText := new_searchText;
EB.setValue(FindEdit, searchText);
notFound := ~T.search(text, searchText, cs, whole);
(*flag := TRUE*)
END
END
END;
1092,7 → 989,7
IF goto THEN
SetFocus(GotoEdit, TRUE)
ELSE
SetFocus(FindEdit, (*~flag*)TRUE)
SetFocus(FindEdit, TRUE)
END
END ShowSearchPanel;
 
1203,7 → 1100,7
Menu.option(subEOL, menuCR, T.getEol(text) = RW.EOL_CR);
 
IF menu # NIL THEN
Timer.kill;
timerEnabled := FALSE;
IF Menu.opened(menu) THEN
Menu.close(menu)
END;
1230,13 → 1127,7
item: List.tItem;
BEGIN
scrollIPC := FALSE;
IF IPC[0] = Timer.ID THEN
IF IPC[4] = Timer.n THEN
T.toggleCursor;
repaint
END;
IPC[2] := 0
ELSIF IPC[0] = mainTID THEN
IF IPC[0] = mainTID THEN
IF IPC[2] = Scroll.ScrollIPC THEN
Scroll.receiveIPC(IPC, scrollIPC)
END;
1870,8 → 1761,8
END
END;
CASE btn OF
|Tabs.btnID - 1: Tabs.scroll(tabs, -1); switch := TRUE; repaint
|Tabs.btnID - 2: Tabs.scroll(tabs, +1); switch := TRUE; repaint
|Tabs.btnLeft: Tabs.scroll(tabs, -1); switch := TRUE; repaint
|Tabs.btnRight: Tabs.scroll(tabs, +1); switch := TRUE; repaint
 
|0:
 
2049,7 → 1940,6
i: INTEGER;
BEGIN
K.GetSystemColors;
Icons.get(icons, grayIcons);
FOR i := 0 TO 1 DO
IF ~K.RolledUp() THEN
K.ClientSize(width, height);
2092,7 → 1982,6
firstClickX, firstClickY, time: INTEGER;
BEGIN
K.GetSystemColors;
Icons.get(icons, grayIcons);
modified := FALSE;
switch := FALSE;
closing := FALSE;
2153,6 → 2042,22
Menu.AddMainItem(mainMenu, "program", menuProgram);
Menu.AddMainItem(mainMenu, "tools", menuTools);
 
Toolbar.create(toolbar, searchLeft, toolbarTop);
Toolbar.add(toolbar, btnNew, 2, "");
Toolbar.add(toolbar, btnOpen, 0, "");
Toolbar.add(toolbar, btnSave, 5, "");
Toolbar.delimiter(toolbar);
Toolbar.add(toolbar, btnSearch, 49, "");
Toolbar.delimiter(toolbar);
Toolbar.add(toolbar, btnUndo, 37, "");
Toolbar.add(toolbar, btnRedo, 36, "");
Toolbar.delimiter(toolbar);
Toolbar.add(toolbar, btnUpper, -1, "AB");
Toolbar.add(toolbar, btnLower, -1, "ab");
Toolbar.delimiter(toolbar);
Toolbar.add(toolbar, btnBuild, 54, "");
Toolbar.add(toolbar, btnRun, 53, "");
 
Ini.getSettings(buildScript, runScript, debugScript);
IF fileName = "" THEN
text := T.New();
2188,9 → 2093,17
K.SetEventsMask({0, 1, 2, 5, 6, 31});
Menu.init(resetTimer);
draw_window;
Timer.create(mainTID);
timerEnabled := TRUE;
CursorTime := K.GetTickCount();
WHILE TRUE DO
CASE K.WaitForEvent() OF
CurrentTime := K.GetTickCount();
IF (CurrentTime - CursorTime > Ini.blink) & timerEnabled THEN
CursorTime := CurrentTime;
T.toggleCursor;
repaint
END;
CASE K.EventTimeout(10) OF
|0:
|1: Redraw(resized, width, height, cliWidth, cliHeight)
|2: KeyDown(K.GetKey())
|3: BtnClick