From 1e5f80877ea8cac8b4eaf8bd2403a7dfdbee5977 Mon Sep 17 00:00:00 2001 From: cxl Date: Mon, 30 Jun 2014 14:11:13 +0000 Subject: [PATCH] ide: Refactoring find/replace GUI git-svn-id: svn://ultimatepp.org/upp/trunk@7473 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CodeEditor/CodeEditor.cpp | 18 +---- uppsrc/CodeEditor/CodeEditor.h | 4 +- uppsrc/CodeEditor/CodeEditor.iml | 63 +++++++++++---- uppsrc/CodeEditor/CodeEditor.lay | 39 ++++++---- uppsrc/CodeEditor/FindReplace.cpp | 122 ++++++++++++++++-------------- uppsrc/CodeEditor/init | 2 +- uppsrc/CtrlLib/AKeys.cpp | 5 ++ uppsrc/CtrlLib/AKeys.h | 2 + uppsrc/CtrlLib/Ctrl.iml | 81 ++++++++++---------- uppsrc/ide/Debuggers/init | 2 +- uppsrc/ide/icon.ico | Bin 2862 -> 2862 bytes 11 files changed, 194 insertions(+), 144 deletions(-) diff --git a/uppsrc/CodeEditor/CodeEditor.cpp b/uppsrc/CodeEditor/CodeEditor.cpp index a0fb8f10e..9edafa423 100644 --- a/uppsrc/CodeEditor/CodeEditor.cpp +++ b/uppsrc/CodeEditor/CodeEditor.cpp @@ -925,26 +925,11 @@ CodeEditor::CodeEditor() { bracket_start = 0; stat_edit_time = 0; last_key_time = Null; - CtrlLayout(findreplace); AddFrame(bar); bar.SetEditor(this); UndoSteps(10000); SetFont(Courier(16)); - - findreplace.find.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Wildcard") - <<= THISBACK(FindWildcard); - findreplace.replace.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Wildcard") - <<= THISBACK(ReplaceWildcard); - PutI(findreplace.find); - PutI(findreplace.replace); - findreplace.amend <<= THISBACK(Replace); - findreplace.cancel.Cancel(); - findreplace.ok.Ok(); - findreplace.findback <<= THISBACK(DoFindBack); - findreplace.ToolWindow(); - findreplace.replacing = false; - found = notfoundfw = notfoundbk = foundsel = false; - + InitFindReplace(); bar.WhenBreakpoint = THISBACK(ForwardWhenBreakpoint); bar.WhenAnnotationMove = Proxy(WhenAnnotationMove); bar.WhenAnnotationClick = Proxy(WhenAnnotationClick); @@ -964,7 +949,6 @@ CodeEditor::CodeEditor() { mark_lines = true; check_edited = false; tippos = -1; - persistent_find_replace = false; } CodeEditor::~CodeEditor() {} diff --git a/uppsrc/CodeEditor/CodeEditor.h b/uppsrc/CodeEditor/CodeEditor.h index fd8800f6d..e4775ab26 100644 --- a/uppsrc/CodeEditor/CodeEditor.h +++ b/uppsrc/CodeEditor/CodeEditor.h @@ -153,11 +153,10 @@ inline bool islbrkt(int c) { return c == '{' || c == '[' || c == '('; inline bool isrbrkt(int c) { return c == '}' || c == ']' || c == ')'; } inline bool isbrkt(int c) { return islbrkt(c) || isrbrkt(c); } -struct FindReplaceDlg : WithIDEFindReplaceLayout { +struct FindReplaceDlg : FrameBottom< WithIDEFindReplaceLayout > { WString itext; bool replacing; - Size GetAdjustedSize(); virtual bool Key(dword key, int count); void Setup(bool doreplace); void Sync(); @@ -275,6 +274,7 @@ protected: struct HlSt; + void InitFindReplace(); void CancelBracketHighlight(int& pos); void CheckBrackets(); void OpenNormalFindReplace(bool replace); diff --git a/uppsrc/CodeEditor/CodeEditor.iml b/uppsrc/CodeEditor/CodeEditor.iml index 06e6e3131..d560c9d15 100644 --- a/uppsrc/CodeEditor/CodeEditor.iml +++ b/uppsrc/CodeEditor/CodeEditor.iml @@ -1,4 +1,6 @@ PREMULTIPLIED +IMAGE_ID(Cancel) +IMAGE_ID(Replace) IMAGE_ID(Breakpoint) IMAGE_ID(InvalidBreakpoint) IMAGE_ID(CondBreakpoint) @@ -15,18 +17,49 @@ IMAGE_ID(N9) IMAGE_ID(I) IMAGE_BEGIN_DATA -IMAGE_DATA(120,156,237,85,203,113,131,48,16,221,139,39,147,196,5,248,102,151,64,7,180,66,9,57,114,19,37,208,129,75,112,11) -IMAGE_DATA(116,64,9,78,7,228,198,113,35,105,88,16,203,234,19,143,200,103,38,111,102,7,36,30,111,119,181,15,27,142,112,4) -IMAGE_DATA(84,32,161,212,129,44,74,31,175,40,10,108,219,22,123,29,154,136,55,125,245,188,135,117,93,91,222,120,58,89,174,27) -IMAGE_DATA(170,170,232,29,171,109,116,13,247,67,95,57,151,194,201,97,107,144,116,87,57,156,158,168,222,88,16,63,133,123,117,248) -IMAGE_DATA(183,136,254,160,163,98,61,248,184,239,147,246,101,125,166,246,204,36,93,195,125,91,180,55,115,85,78,189,213,162,27,156) -IMAGE_DATA(115,208,15,185,205,212,117,157,141,54,102,166,190,199,113,28,145,67,41,181,53,147,135,75,112,7,97,205,52,113,155,166) -IMAGE_DATA(193,97,24,108,152,251,57,199,249,60,215,102,106,37,16,143,222,19,114,36,241,175,101,57,243,77,61,4,169,158,225,126) -IMAGE_DATA(223,154,201,3,195,53,218,23,110,38,125,102,62,110,200,76,213,212,79,147,213,76,75,42,78,142,6,153,39,20,8,108) -IMAGE_DATA(24,230,188,2,209,48,253,127,126,62,62,173,99,241,136,23,224,0,175,190,95,38,159,35,75,231,202,159,187,216,107,143) -IMAGE_DATA(231,149,234,219,34,161,81,87,148,39,229,197,192,47,219,91,176,243,68,37,29,190,150,38,36,173,65,88,211,30,143,45) -IMAGE_DATA(50,54,202,17,107,212,103,181,144,222,238,214,149,10,144,38,137,140,231,222,35,227,240,61,73,35,52,41,223,116,101,28) -IMAGE_DATA(224,37,214,168,148,240,43,223,77,232,180,83,221,224,106,197,39,186,227,247,24,43,142,235,73,249,30,107,74,66,66,163) -IMAGE_DATA(177,201,73,19,224,9,115,113,64,224,248,246,214,248,134,255,204,148,9,228,214,251,209,70,1,228,194,242,127,143,18,158) -IMAGE_DATA(224,153,55,26,179,170,175,144,191,242,76,236,239,19,22,194,36,188,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(448, 14) +IMAGE_DATA(120,156,237,85,93,76,83,103,24,254,42,180,165,80,10,213,85,42,83,168,8,150,161,206,50,65,81,112,157,130,63,23) +IMAGE_DATA(146,22,132,42,155,96,193,31,156,226,52,139,2,115,110,5,65,109,204,150,224,182,27,151,44,94,204,44,217,110,76,102) +IMAGE_DATA(118,179,44,211,44,241,102,187,16,141,203,92,156,66,22,183,74,84,218,158,214,213,181,165,207,206,57,227,148,211,211,115) +IMAGE_DATA(90,102,202,126,146,61,228,229,124,231,253,158,247,255,61,64,52,68,67,56,232,228,138,60,52,219,48,97,105,196,219,154) +IMAGE_DATA(57,78,34,129,227,217,115,78,77,88,26,128,38,27,230,42,20,122,212,215,195,127,238,173,176,247,108,79,16,29,29,232) +IMAGE_DATA(206,210,158,16,218,28,85,207,238,103,238,188,67,61,193,199,231,142,135,177,165,30,143,87,87,193,189,103,67,208,183,123) +IMAGE_DATA(61,198,6,247,83,104,121,25,71,84,57,3,156,205,235,106,109,63,118,117,96,236,100,23,229,223,93,139,241,93,27,130) +IMAGE_DATA(254,149,21,232,201,212,56,177,186,18,174,142,13,148,191,125,61,238,191,185,139,66,107,43,186,179,231,56,143,102,105,157) +IMAGE_DATA(76,156,49,199,94,250,110,29,92,59,107,41,84,85,160,87,165,97,235,57,148,161,57,129,85,43,224,218,241,18,229,107) +IMAGE_DATA(51,195,221,107,15,70,246,239,69,100,223,30,184,223,104,15,250,91,205,248,181,229,69,10,229,203,113,88,169,25,228,215) +IMAGE_DATA(208,149,161,25,152,168,48,225,225,182,181,65,175,109,13,168,125,214,8,245,170,53,226,105,174,198,131,230,154,96,200,180) +IMAGE_DATA(28,7,5,54,81,91,101,182,115,188,124,41,60,141,213,17,143,181,10,30,75,21,188,77,107,34,158,149,207,211,54,217) +IMAGE_DATA(103,164,122,189,63,71,231,244,108,174,99,248,17,247,150,74,176,98,89,21,241,110,94,143,174,28,157,168,93,187,58,183) +IMAGE_DATA(63,96,179,97,220,110,9,122,235,76,240,110,124,33,194,136,135,62,51,58,127,67,35,236,202,236,152,25,181,102,106,250) +IMAGE_DATA(31,219,182,97,108,103,35,229,91,83,134,135,53,203,130,247,150,24,193,8,115,246,213,44,133,171,213,74,121,182,88,64) +IMAGE_DATA(115,217,25,181,169,115,78,141,55,52,97,172,165,129,162,76,70,184,42,202,168,123,197,197,104,87,170,207,216,105,97,206) +IMAGE_DATA(174,21,101,148,175,220,136,251,45,86,234,17,205,165,109,78,15,175,170,134,207,214,24,164,22,23,225,254,146,82,106,180) +IMAGE_DATA(192,128,237,138,204,104,223,182,41,50,79,48,58,230,206,103,44,102,185,195,85,213,248,110,81,41,2,165,101,225,71,69) +IMAGE_DATA(37,193,31,243,11,208,164,200,136,235,245,86,69,198,0,115,199,112,24,46,99,147,43,147,233,191,201,205,195,87,185,115) +IMAGE_DATA(209,36,87,74,238,245,86,185,242,52,195,97,184,90,217,172,121,132,255,113,204,56,102,17,37,201,32,186,56,189,140,190) +IMAGE_DATA(97,126,75,32,203,162,238,159,127,118,225,45,89,177,172,46,198,106,234,148,22,103,180,140,180,181,223,236,196,246,223,218) +IMAGE_DATA(144,117,33,199,67,42,211,118,76,198,33,164,150,12,146,121,164,156,231,231,79,95,5,100,157,245,234,214,96,103,224,16) +IMAGE_DATA(22,220,46,126,178,224,78,9,100,199,84,195,204,85,218,78,249,167,93,35,107,241,220,64,225,215,244,171,154,229,167,201) +IMAGE_DATA(210,200,92,178,116,221,151,181,161,195,191,31,129,246,70,126,184,224,135,146,144,234,35,173,151,232,100,37,233,251,84,159) +IMAGE_DATA(119,143,26,241,241,68,193,132,147,170,131,254,88,222,101,186,3,90,58,219,12,227,103,101,24,124,226,8,235,110,230,71) +IMAGE_DATA(12,183,75,67,89,23,117,32,122,98,98,221,218,148,239,29,248,41,15,239,251,243,39,186,93,121,161,94,79,45,116,175) +IMAGE_DATA(229,94,202,121,71,239,250,32,112,50,156,119,243,153,72,209,72,25,52,151,244,32,6,98,142,169,187,62,253,221,182,91) +IMAGE_DATA(122,244,121,22,162,211,149,31,106,29,169,193,233,135,71,195,149,119,12,48,222,45,197,236,203,11,64,86,202,58,99,122) +IMAGE_DATA(40,155,124,90,211,135,26,110,228,227,192,131,66,236,248,121,113,168,238,142,33,82,126,183,56,242,236,183,6,144,77,178) +IMAGE_DATA(147,49,92,225,8,27,211,207,110,186,62,31,182,95,22,97,227,104,73,176,228,250,66,144,230,244,15,19,216,76,233,94) +IMAGE_DATA(145,95,88,59,92,136,202,239,139,32,179,43,62,225,205,83,106,39,162,122,249,65,213,23,233,61,170,171,180,70,145,196) +IMAGE_DATA(38,22,179,104,126,90,212,70,28,106,250,7,14,209,43,166,233,16,136,89,138,103,50,153,48,52,52,132,107,180,208,68) +IMAGE_DATA(92,164,159,18,118,232,237,237,101,121,1,189,158,229,242,197,97,183,115,54,172,111,198,47,195,245,208,79,33,151,19,94) +IMAGE_DATA(12,54,7,49,191,49,49,120,53,113,249,38,19,142,63,29,238,121,30,255,98,18,255,110,90,236,130,26,164,184,163,147) +IMAGE_DATA(190,13,177,61,101,123,38,230,151,225,30,158,242,29,55,87,7,47,95,251,148,223,132,115,78,184,15,169,94,166,43,87) +IMAGE_DATA(174,176,50,148,108,153,174,93,67,32,16,128,16,14,135,35,126,153,36,184,28,248,131,96,151,105,146,219,215,215,7,183) +IMAGE_DATA(219,205,10,115,142,198,40,44,140,230,198,228,202,129,227,113,118,34,49,166,197,63,111,54,71,249,76,62,28,196,242,113) +IMAGE_DATA(143,140,196,47,147,4,24,46,227,219,32,92,38,186,103,82,220,68,203,100,159,172,167,47,165,203,52,21,74,72,78,42) +IMAGE_DATA(220,242,36,18,16,193,48,152,126,37,144,62,129,255,255,249,169,227,115,239,201,228,105,118,129,200,73,150,212,95,38,169) +IMAGE_DATA(141,52,243,158,194,123,62,102,74,39,140,43,150,95,60,166,81,40,223,169,48,168,48,25,242,47,211,77,97,134,39,42) +IMAGE_DATA(230,71,248,46,54,33,177,119,34,242,206,233,132,18,143,20,22,42,68,178,66,165,86,45,145,191,25,95,93,177,4,196) +IMAGE_DATA(38,9,1,143,127,134,128,35,212,137,249,72,52,41,169,233,138,67,78,50,147,21,42,22,240,175,124,55,137,186,61,221) +IMAGE_DATA(109,224,251,74,62,209,25,252,30,147,37,39,244,39,22,239,233,138,18,195,52,10,77,54,57,177,9,8,3,166,138,67) +IMAGE_DATA(68,56,82,186,88,252,13,255,51,167,51,129,84,251,251,71,11,37,68,60,177,212,127,143,98,80,18,149,176,208,100,171) +IMAGE_DATA(42,149,200,127,229,78,180,190,63,0,204,174,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(1440, 16) diff --git a/uppsrc/CodeEditor/CodeEditor.lay b/uppsrc/CodeEditor/CodeEditor.lay index 3ddae128f..bd1d792ce 100644 --- a/uppsrc/CodeEditor/CodeEditor.lay +++ b/uppsrc/CodeEditor/CodeEditor.lay @@ -1,15 +1,28 @@ -LAYOUT(IDEFindReplaceLayout, 404, 118) - ITEM(Label, dv___0, SetLabel(t_("Find")).LeftPosZ(8, 46).TopPosZ(4, 19)) - ITEM(WithDropChoice, find, HSizePosZ(54, 8).TopPosZ(4, 19)) - ITEM(Label, replace_lbl, SetLabel(t_("Replace")).LeftPosZ(8, 46).TopPosZ(28, 19)) - ITEM(WithDropChoice, replace, HSizePosZ(54, 8).TopPosZ(28, 19)) - ITEM(Option, wholeword, SetLabel(t_("&Whole word")).LeftPosZ(8, 100).BottomPosZ(38, 20)) - ITEM(Option, wildcards, SetLabel(t_("Wild&cards")).LeftPosZ(108, 88).BottomPosZ(38, 20)) - ITEM(Option, ignorecase, SetLabel(t_("&Ignore case")).LeftPosZ(208, 92).BottomPosZ(38, 20)) - ITEM(Option, samecase, SetLabel(t_("Mimic case")).LeftPosZ(308, 108).BottomPosZ(38, 20)) - ITEM(Button, amend, SetLabel(t_("R&eplace")).LeftPosZ(8, 68).BottomPosZ(6, 24)) - ITEM(Button, findback, SetLabel(t_("Find Previous")).LeftPosZ(164, 80).BottomPosZ(6, 24)) - ITEM(Button, ok, SetLabel(t_("Find Next")).RightPosZ(80, 76).BottomPosZ(6, 24)) - ITEM(Button, cancel, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(6, 24)) +LAYOUT(IDEFindReplaceLayout, 528, 52) + ITEM(Label, dv___0, SetLabel(t_("&Find")).LeftPosZ(8, 46).TopPosZ(4, 19)) + ITEM(WithDropChoice, find, LeftPosZ(56, 144).TopPosZ(4, 19)) + ITEM(Label, dv___2, SetLabel(t_("&Replace")).LeftPosZ(8, 60).TopPosZ(28, 21)) + ITEM(WithDropChoice, replace, LeftPosZ(56, 144).TopPosZ(28, 19)) + ITEM(Button, prev, LeftPosZ(204, 20).TopPosZ(4, 19)) + ITEM(Button, next, LeftPosZ(224, 20).TopPosZ(4, 19)) + ITEM(Option, wildcards, SetLabel(t_("Wild&cards")).LeftPosZ(252, 72).TopPosZ(4, 19)) + ITEM(Option, wholeword, SetLabel(t_("&Whole word")).LeftPosZ(328, 88).TopPosZ(4, 19)) + ITEM(Option, ignorecase, SetLabel(t_("&Ignore case")).LeftPosZ(420, 80).TopPosZ(4, 19)) + ITEM(Button, close, RightPosZ(4, 20).TopPosZ(4, 19)) + ITEM(Button, amend, LeftPosZ(204, 20).TopPosZ(28, 19)) + ITEM(Option, samecase, SetLabel(t_("Mimic case")).LeftPosZ(252, 108).TopPosZ(28, 19)) +END_LAYOUT + +LAYOUT(BlockReplaceLayout, 400, 116) + ITEM(Label, dv___0, SetLabel(t_("Find")).LeftPosZ(8, 46).TopPosZ(4, 19)) + ITEM(WithDropChoice, find, HSizePosZ(54, 8).TopPosZ(4, 19)) + ITEM(Label, dv___2, SetLabel(t_("Replace")).LeftPosZ(8, 46).TopPosZ(28, 19)) + ITEM(WithDropChoice, replace, HSizePosZ(54, 8).TopPosZ(28, 19)) + ITEM(Option, wholeword, SetLabel(t_("&Whole word")).LeftPosZ(8, 100).BottomPosZ(40, 20)) + ITEM(Option, wildcards, SetLabel(t_("Wild&cards")).LeftPosZ(108, 88).BottomPosZ(40, 20)) + ITEM(Option, ignorecase, SetLabel(t_("&Ignore case")).LeftPosZ(208, 92).BottomPosZ(40, 20)) + ITEM(Option, samecase, SetLabel(t_("Mimic case")).LeftPosZ(308, 108).BottomPosZ(40, 20)) + ITEM(Button, next, SetLabel(t_("Replace")).RightPosZ(80, 76).BottomPosZ(8, 24)) + ITEM(Button, close, SetLabel(t_("Cancel")).RightPosZ(8, 64).BottomPosZ(8, 24)) END_LAYOUT diff --git a/uppsrc/CodeEditor/FindReplace.cpp b/uppsrc/CodeEditor/FindReplace.cpp index f5c7c8e91..e911b0988 100644 --- a/uppsrc/CodeEditor/FindReplace.cpp +++ b/uppsrc/CodeEditor/FindReplace.cpp @@ -2,11 +2,31 @@ NAMESPACE_UPP +void CodeEditor::InitFindReplace() +{ + findreplace.find.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Wildcard") + <<= THISBACK(FindWildcard); + findreplace.replace.AddButton().SetMonoImage(CtrlImg::smallright()).Tip("Wildcard") + <<= THISBACK(ReplaceWildcard); + PutI(findreplace.find); + PutI(findreplace.replace); + findreplace.amend <<= THISBACK(Replace); + findreplace.prev <<= THISBACK(DoFindBack); + findreplace.replacing = false; + found = notfoundfw = notfoundbk = foundsel = false; + persistent_find_replace = false; +} + FindReplaceDlg::FindReplaceDlg() { ignorecase <<= THISBACK(Sync); samecase <<= true; Sync(); + close.Cancel(); + prev.SetImage(CtrlImg::SmallUp()); + prev.Tip("Find prev"); + amend.SetImage(CodeEditorImg::Replace()); + amend.Tip("Replace"); } void FindReplaceDlg::Sync() @@ -25,30 +45,40 @@ bool FindReplaceDlg::Key(dword key, int cnt) { return true; } } + if(key == K_ENTER) { + next.WhenAction(); + return true; + } + if(findarg(key, K_TAB, K_SHIFT_TAB, K_UP, K_DOWN) >= 0 && replace.IsShown()) { + if(find.HasFocus()) + replace.SetFocus(); + else + find.SetFocus(); + return true; + } + if(key == K_ESCAPE) { + close.WhenAction(); + return true; + } return TopWindow::Key(key, cnt); } -Size FindReplaceDlg::GetAdjustedSize() -{ - Size sz = GetLayoutSize(); - if(!replacing) - sz.cy -= replace.GetRect().bottom - find.GetRect().bottom; - return sz; -} - void FindReplaceDlg::Setup(bool doreplace) { + CtrlLayout(*this); + close.SetImage(CodeEditorImg::Cancel()); + close.Tip("Close (Esc)"); + close.Normal(); + close.SetLabel(""); + next.SetImage(CtrlImg::SmallDown()); + next.Tip("Find next"); + next.Normal(); + next.SetLabel(""); replacing = doreplace; - replace_lbl.Show(replacing); replace.Show(replacing); amend.Show(replacing); -// amendall.Show(false); // not yet implemented - Rect r = GetRect(); - Size sz = GetAdjustedSize(); - SetMinSize(sz); - r.SetSize(sz); - SetRect(r); - ActiveFocus(find); + Height(doreplace ? GetLayoutSize().cy : replace.GetRect().top); + SetFrame(TopSeparatorFrame()); Sync(); } @@ -221,7 +251,6 @@ bool CodeEditor::FindFrom(int pos, bool back, const wchar *text, bool wholeword, l = s = ln; } } - ClearSelection(); if(back) notfoundbk = true; else @@ -240,27 +269,20 @@ void CodeEditor::FindReplaceAddHistory() bool CodeEditor::Find(bool back, bool blockreplace, bool replace) { FindReplaceAddHistory(); + findreplace.find.Error(false); if(Find(back, (WString)~findreplace.find, findreplace.wholeword, findreplace.ignorecase, findreplace.wildcards, blockreplace)) { if(!blockreplace) { - if(!findreplace.IsOpen()) { - findreplace.NoCenter(); + if(!findreplace.IsOpen()) OpenNormalFindReplace(replace); - } - Rect lr = GetLineScreenRect(GetLine(GetCursor())); - Size fsz = findreplace.GetAdjustedSize(); - Rect r = GetTopCtrl()->GetRect(); - int y = r.bottom - fsz.cy - 2 * GetStdFontCy(); // Subtracting 2 * Get..Cy() to fix broken LXDE WM - if(lr.bottom > y) y = r.top; - Rect wa = Ctrl::GetWorkArea(); - findreplace.SetRect(RectC(wa.left + (wa.Width() - fsz.cx) / 2, y, fsz.cx, fsz.cy)); findreplace.amend.Enable(); SetFocus(); } return true; } else { - CloseFindReplace(); + findreplace.find.Error(); + SetFocus(); return false; } } @@ -422,33 +444,19 @@ void CodeEditor::BlockReplace() { BlockReplace(~findreplace.find, ~findreplace.replace, findreplace.wholeword, findreplace.ignorecase, findreplace.wildcards, findreplace.samecase); -/* - NextUndo(); - int l, h; - if(!GetSelection(l, h)) return; - PlaceCaret(l); - for(;;) { - if(!Find(false, true) || cursor >= h) break; - Refresh(); - int hh, ll; - GetSelection(ll, hh); - CachePos(ll); - h = h - (hh - ll) + Paste(GetReplaceText()); - } - SetSelection(l, h); -*/ } void CodeEditor::OpenNormalFindReplace(bool replace) { findreplace.Setup(replace); + findreplace.find.Error(false); + findreplace.find.SetFocus(); findreplace.itext = GetI(); - findreplace.Title(replace ? "Find and Replace" : "Find"); - findreplace.findback.Show(); - findreplace.ok.SetLabel("Find Next"); - findreplace.ok <<= THISBACK(DoFind); - findreplace.cancel <<= findreplace.WhenClose = callback(&findreplace, &TopWindow::Close); - findreplace.Open(); + findreplace.prev.Show(); + findreplace.next <<= THISBACK(DoFind); + findreplace.close <<= THISBACK(CloseFindReplace); + if(!findreplace.IsOpen()) + AddFrame(findreplace); } void CodeEditor::FindReplace(bool pick_selection, bool pick_text, bool replace) @@ -457,7 +465,6 @@ void CodeEditor::FindReplace(bool pick_selection, bool pick_text, bool replace) findreplace.Close(); replacei = 0; - findreplace.CenterOwner(); WString find_text; int find_pos = -1; @@ -486,12 +493,17 @@ void CodeEditor::FindReplace(bool pick_selection, bool pick_text, bool replace) } if(IsSelection() && replace) { findreplace.itext = GetI(); + SetLayout_BlockReplaceLayout(findreplace); + findreplace.SetRect(WithBlockReplaceLayout::GetLayoutSize()); findreplace.Title("Replace in selection"); findreplace.amend.Hide(); - findreplace.findback.Hide(); - findreplace.ok.SetLabel("Replace"); - findreplace.ok <<= findreplace.Breaker(IDOK); - findreplace.cancel <<= findreplace.Breaker(IDCANCEL); + findreplace.prev.Hide(); + findreplace.next.Ok() <<= findreplace.Breaker(IDOK); + findreplace.close.Cancel() <<= findreplace.Breaker(IDCANCEL); + findreplace.close.SetImage(Null); + findreplace.close.Tip(""); + findreplace.next.SetImage(Null); + findreplace.next.Tip(""); if(findreplace.Execute() == IDOK) BlockReplace(); } @@ -611,7 +623,7 @@ void CodeEditor::ReplaceWildcard() void CodeEditor::CloseFindReplace() { if(!persistent_find_replace && findreplace.IsOpen()) - findreplace.Close(); + RemoveFrame(findreplace); } void CodeEditor::DoFind() diff --git a/uppsrc/CodeEditor/init b/uppsrc/CodeEditor/init index 10cfbc151..ed5b8df8a 100644 --- a/uppsrc/CodeEditor/init +++ b/uppsrc/CodeEditor/init @@ -1,7 +1,7 @@ #ifndef _CodeEditor_icpp_init_stub #define _CodeEditor_icpp_init_stub #include "CtrlLib/init" -#define BLITZ_INDEX__ Fd579c6629af5990c016d4bd1dc2b4c20 +#define BLITZ_INDEX__ Fa19bf999ba2b201492446aa335bd578e #include "CRegister.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/CtrlLib/AKeys.cpp b/uppsrc/CtrlLib/AKeys.cpp index cf758c197..7db6fd2ef 100644 --- a/uppsrc/CtrlLib/AKeys.cpp +++ b/uppsrc/CtrlLib/AKeys.cpp @@ -363,4 +363,9 @@ void RestoreKeys(const String& data) catch(CParser::Error) {} } +String GetDesc(const KeyInfo& f, bool parenthesis) +{ + return f.key[0] ? parenthesis ? "(" + GetKeyDesc(f.key[0]) + ")" : GetKeyDesc(f.key[0]) : String(); +} + END_UPP_NAMESPACE diff --git a/uppsrc/CtrlLib/AKeys.h b/uppsrc/CtrlLib/AKeys.h index c43578ca3..2bde46852 100644 --- a/uppsrc/CtrlLib/AKeys.h +++ b/uppsrc/CtrlLib/AKeys.h @@ -15,3 +15,5 @@ String StoreKeys(); void RestoreKeys(const String& data); dword ParseKeyDesc(CParser& p); + +String GetDesc(const KeyInfo& f, bool parenthesis = true); diff --git a/uppsrc/CtrlLib/Ctrl.iml b/uppsrc/CtrlLib/Ctrl.iml index f4a1798b2..948fb20de 100644 --- a/uppsrc/CtrlLib/Ctrl.iml +++ b/uppsrc/CtrlLib/Ctrl.iml @@ -334,46 +334,47 @@ IMAGE_DATA(177,22,187,207,182,132,216,44,255,3,76,178,218,214,0,0,0,0,0,0,0,0,0, IMAGE_END_DATA(1696, 17) IMAGE_BEGIN_DATA -IMAGE_DATA(120,156,237,90,59,111,212,64,16,222,64,113,68,145,34,40,210,95,125,127,226,220,32,209,16,42,255,0,122,254,67,220) -IMAGE_DATA(208,0,45,18,21,74,109,65,73,157,52,40,109,78,130,6,133,42,21,40,80,32,250,197,107,223,218,179,187,51,251,180) -IMAGE_DATA(99,56,118,172,193,231,221,249,230,241,237,203,119,129,29,178,67,118,151,145,194,183,26,34,156,113,222,105,24,246,182,113) -IMAGE_DATA(108,107,207,121,36,54,5,151,99,78,18,147,177,184,57,139,203,131,230,186,215,92,214,104,136,248,250,151,246,231,231,231) -IMAGE_DATA(134,250,248,130,88,54,20,222,43,244,101,195,51,147,52,253,51,180,163,240,134,123,71,188,81,124,56,240,164,64,220,4) -IMAGE_DATA(62,48,78,21,168,212,137,243,136,242,129,61,35,249,91,241,99,249,128,237,200,154,80,98,121,212,110,172,47,40,218,90) -IMAGE_DATA(178,137,178,190,160,50,251,184,147,190,52,197,229,126,115,253,227,18,67,144,130,231,137,248,159,137,248,47,137,248,119,137) -IMAGE_DATA(248,55,137,248,87,137,248,103,137,248,227,68,252,42,17,207,230,197,143,39,11,109,51,168,170,138,235,42,219,175,174,174) -IMAGE_DATA(148,157,78,60,75,27,33,103,103,191,122,133,120,217,199,42,150,251,144,62,140,51,200,45,54,22,88,123,51,148,11,231) -IMAGE_DATA(96,250,40,53,224,62,98,155,20,62,74,145,231,163,46,130,67,227,83,131,16,194,97,44,118,187,50,135,247,20,91,144) -IMAGE_DATA(186,254,106,168,180,241,233,19,95,127,115,95,24,103,122,159,199,202,180,15,102,200,172,194,146,240,81,91,17,49,120,230) -IMAGE_DATA(121,77,21,63,6,159,188,50,15,216,126,243,239,29,57,150,107,134,191,125,175,145,227,150,95,95,95,43,219,165,120,94) -IMAGE_DATA(175,215,24,70,177,131,207,0,179,118,217,10,17,223,40,128,125,111,163,171,148,139,139,11,163,205,215,175,111,190,1,60) -IMAGE_DATA(248,243,123,208,92,132,132,188,109,233,4,89,237,244,162,125,109,9,123,212,142,176,247,181,181,218,97,246,129,121,244,24) -IMAGE_DATA(139,78,35,150,1,135,137,249,8,85,24,106,103,33,2,181,179,17,231,73,114,200,0,58,237,19,242,232,237,49,140,131) -IMAGE_DATA(191,244,137,225,49,224,50,144,143,141,43,105,116,11,116,217,204,52,40,193,3,24,96,139,218,91,108,13,94,28,182,10) -IMAGE_DATA(70,177,221,111,7,220,121,214,194,51,193,56,91,164,136,118,61,49,11,9,222,54,88,46,176,221,35,159,181,56,251,48) -IMAGE_DATA(241,57,55,53,114,91,95,242,215,73,237,140,102,186,157,56,235,137,126,157,115,181,127,7,126,69,244,145,212,51,172,251) -IMAGE_DATA(110,122,187,120,117,50,86,232,66,113,199,164,212,7,159,22,223,204,101,78,254,167,126,135,217,5,217,241,205,192,246,122) -IMAGE_DATA(224,196,86,248,4,162,218,125,124,132,96,13,31,17,88,42,143,40,108,132,143,148,250,71,225,63,176,253,255,150,125,182) -IMAGE_DATA(96,123,205,21,34,143,159,62,71,201,148,237,226,46,85,239,135,237,174,103,12,135,245,83,254,131,242,239,136,8,43,216) -IMAGE_DATA(55,176,171,128,49,136,177,229,233,202,95,145,69,67,197,29,173,45,150,241,169,250,199,106,183,214,39,136,8,157,17,183) -IMAGE_DATA(153,240,212,253,253,195,204,47,12,37,139,59,200,122,92,93,215,33,248,22,87,20,69,251,27,50,248,207,84,46,188,130) -IMAGE_DATA(171,62,87,124,249,123,217,254,158,238,192,147,56,121,17,120,39,206,130,239,14,247,109,125,197,247,194,250,247,0,91,124) -IMAGE_DATA(161,101,89,242,178,46,249,209,183,163,16,188,226,103,181,90,145,126,66,248,199,252,120,226,81,63,242,47,147,1,120,197) -IMAGE_DATA(15,219,242,28,129,55,252,68,226,199,21,177,25,240,147,81,93,202,226,202,88,60,88,224,49,126,250,223,94,196,64,137) -IMAGE_DATA(5,21,232,167,155,32,205,37,22,160,88,136,129,126,122,188,188,2,253,24,248,64,63,36,94,94,98,131,144,252,48,115) -IMAGE_DATA(50,146,120,177,0,197,66,20,11,137,209,227,99,224,33,78,44,68,223,250,3,113,10,94,212,22,136,235,241,26,47,193) -IMAGE_DATA(243,47,18,55,191,164,109,6,171,166,96,65,220,42,162,112,137,149,74,249,128,118,208,70,60,159,112,245,142,73,197,79) -IMAGE_DATA(79,63,180,138,219,80,184,46,118,81,188,110,177,237,41,219,124,54,243,180,225,197,194,173,91,156,192,171,57,184,242,239) -IMAGE_DATA(98,11,188,172,65,205,193,197,223,16,91,250,50,115,160,198,79,141,13,121,164,121,160,98,15,53,226,57,216,57,167,148) -IMAGE_DATA(206,161,139,189,92,190,224,42,63,85,159,7,157,195,192,19,238,127,232,199,109,186,216,221,70,91,35,254,135,126,220,230) -IMAGE_DATA(196,200,85,197,235,253,152,77,130,56,54,3,248,26,163,171,109,3,104,113,79,202,135,252,227,167,247,252,7,191,84,84) -IMAGE_DATA(180,137,62,194,79,9,113,55,124,99,224,101,27,240,3,125,40,49,223,214,47,97,172,246,179,104,131,185,176,225,100,108) -IMAGE_DATA(99,119,125,155,86,245,26,100,204,193,230,18,230,0,108,55,232,29,195,131,28,148,216,170,118,181,60,58,46,64,254,67) -IMAGE_DATA(159,15,94,173,101,19,128,199,242,14,195,211,177,85,188,45,63,91,110,114,46,97,57,222,104,119,44,55,48,135,208,28) -IMAGE_DATA(186,248,214,216,232,252,29,84,159,15,228,252,77,93,63,134,31,66,77,220,82,253,233,132,207,122,223,107,210,249,107,146) -IMAGE_DATA(89,106,201,52,95,61,248,92,247,57,99,111,9,201,245,231,250,115,253,185,254,92,127,174,63,215,159,235,207,245,231,250) -IMAGE_DATA(115,253,185,254,92,127,174,127,231,235,255,3,250,180,56,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) -IMAGE_END_DATA(1248, 25) +IMAGE_DATA(120,156,237,90,59,111,20,49,16,118,160,56,162,72,17,20,41,232,174,62,241,31,110,27,36,10,8,213,246,208,243,31) +IMAGE_DATA(114,5,52,64,139,68,133,82,175,160,160,160,78,26,148,54,39,65,131,66,149,10,20,40,16,189,89,239,158,119,199,246) +IMAGE_DATA(140,61,94,223,101,33,120,172,201,222,218,243,205,211,175,59,16,187,98,87,92,23,36,201,21,199,144,20,82,182,28,135) +IMAGE_DATA(189,108,156,88,201,75,57,16,155,130,203,54,55,98,83,136,97,115,22,167,91,117,187,81,55,175,53,132,184,250,181,252) +IMAGE_DATA(241,241,177,195,28,93,16,43,250,192,59,134,186,124,120,225,38,205,254,12,229,40,188,163,62,96,111,45,58,2,120,146) +IMAGE_DATA(32,110,3,58,176,156,26,80,205,27,246,99,144,14,236,29,241,223,139,95,151,14,216,143,172,9,195,22,35,118,103,125) +IMAGE_DATA(65,178,214,146,143,140,245,5,89,248,235,78,234,178,24,167,155,117,251,199,105,72,130,12,188,76,196,255,76,196,127,73) +IMAGE_DATA(196,191,77,196,191,78,196,191,76,196,63,73,196,239,39,226,103,137,120,49,46,126,125,52,177,54,131,197,98,33,109,214) +IMAGE_DATA(253,103,103,103,198,78,167,222,181,140,162,163,163,95,29,67,188,30,19,11,145,199,144,49,44,103,48,183,88,45,176,254) +IMAGE_DATA(186,148,147,96,49,57,76,21,156,67,190,73,193,97,42,121,28,14,37,56,214,62,85,132,152,28,14,197,174,86,102,127) +IMAGE_DATA(79,241,25,169,170,175,14,107,25,206,152,250,250,155,199,226,114,102,143,49,86,166,191,152,49,179,10,115,130,195,190,32) +IMAGE_DATA(134,224,5,179,109,202,254,16,124,242,202,220,17,219,245,223,107,186,150,115,129,223,190,231,200,113,43,207,207,207,141,237) +IMAGE_DATA(82,189,207,231,115,12,99,200,193,119,128,153,135,100,21,169,111,20,64,190,147,177,89,211,201,201,137,211,199,213,203,245) +IMAGE_DATA(55,34,15,252,252,238,212,141,160,152,219,150,157,32,175,156,29,52,87,150,144,71,229,8,121,174,172,87,14,147,143,244) +IMAGE_DATA(163,195,120,120,51,228,41,56,116,140,67,84,96,168,156,39,17,168,156,47,113,204,36,199,20,48,40,159,224,71,39,143) +IMAGE_DATA(97,2,249,75,159,24,140,130,107,67,28,153,144,211,232,22,24,146,25,169,40,209,5,140,144,69,229,61,178,78,94,2) +IMAGE_DATA(178,6,198,144,221,110,10,30,60,107,225,153,224,156,45,154,84,191,237,152,39,9,108,25,204,23,216,207,240,103,174,206) +IMAGE_DATA(62,140,56,231,166,149,220,70,151,254,117,210,58,163,133,45,167,206,122,98,220,206,185,57,126,5,126,69,228,80,234,25) +IMAGE_DATA(214,222,127,47,23,111,78,70,137,46,148,176,77,170,113,240,105,246,93,95,198,204,255,166,239,48,87,129,174,240,102,80) +IMAGE_DATA(138,182,248,37,179,223,38,249,190,230,210,148,45,203,85,191,8,79,172,78,86,235,176,223,57,49,64,76,36,150,244,99) +IMAGE_DATA(40,54,197,247,1,126,36,231,95,164,213,255,255,163,109,49,17,91,117,227,210,237,233,157,242,193,227,103,82,61,169,126) +IMAGE_DATA(245,188,255,232,169,132,114,88,127,232,29,195,217,227,182,125,106,60,228,255,42,17,17,0,166,225,80,0,235,74,12,167) +IMAGE_DATA(48,152,255,14,77,234,84,92,3,239,62,5,41,21,137,29,15,225,124,250,56,118,156,248,84,34,98,102,196,101,59,188) +IMAGE_DATA(238,196,146,241,141,124,97,208,155,119,236,173,174,195,85,85,21,131,111,112,69,81,52,191,33,131,255,76,197,58,124,52) +IMAGE_DATA(110,241,121,33,167,191,167,205,141,54,128,39,113,186,17,248,32,206,131,111,222,117,124,197,247,194,251,45,194,103,95,113) +IMAGE_DATA(89,150,178,172,74,185,247,109,47,6,111,232,153,205,102,164,158,152,252,99,122,152,120,84,143,254,151,201,8,188,161,71) +IMAGE_DATA(172,242,60,0,239,232,25,136,95,47,169,205,64,30,172,85,165,14,110,232,237,12,46,240,33,122,186,223,94,84,161,212) +IMAGE_DATA(130,138,212,211,78,144,186,169,5,168,22,98,164,158,14,175,91,164,30,7,31,169,135,196,235,166,54,8,157,31,225,78) +IMAGE_DATA(70,18,175,22,160,90,136,106,33,9,186,62,14,30,226,212,66,228,198,31,137,51,240,42,182,72,92,135,183,242,18,61) +IMAGE_DATA(255,6,226,198,167,180,205,96,86,7,172,18,55,27,16,184,198,106,166,116,64,57,40,163,222,15,164,249,196,104,33,15) +IMAGE_DATA(15,63,52,140,203,80,184,214,118,81,188,106,176,205,41,91,127,118,253,244,225,213,194,173,26,156,194,155,62,132,252,111) +IMAGE_DATA(109,43,188,142,193,244,33,148,191,222,182,214,229,250,64,213,207,180,13,243,72,231,129,178,221,199,136,251,224,207,57,197) +IMAGE_DATA(180,15,173,237,233,244,185,52,243,179,232,252,160,125,232,243,132,235,239,199,113,153,214,118,187,209,86,136,254,126,28,151) +IMAGE_DATA(57,112,124,53,241,246,56,38,147,64,129,205,0,94,99,108,246,109,0,13,238,97,121,87,126,252,244,78,254,144,167,6) +IMAGE_DATA(171,62,53,70,232,41,33,238,66,46,29,188,238,3,122,160,14,195,230,155,234,5,180,213,124,86,125,208,23,209,159,140) +IMAGE_DATA(141,237,118,108,217,176,29,131,182,217,203,156,66,31,128,236,18,125,98,120,224,131,97,219,228,54,150,123,251,5,240,191) +IMAGE_DATA(31,227,224,205,88,150,17,120,204,239,56,60,109,219,196,251,252,243,249,166,231,18,230,227,133,245,196,124,3,115,8,245) +IMAGE_DATA(161,181,239,181,141,206,223,158,237,249,64,206,223,212,245,227,232,33,216,197,77,205,159,78,228,168,207,173,218,157,191,198) +IMAGE_DATA(153,169,229,76,253,213,67,142,245,28,211,246,42,33,57,254,28,127,142,63,199,159,227,207,241,231,248,115,252,57,254,28) +IMAGE_DATA(127,142,63,199,159,227,207,241,95,249,248,255,0,126,10,122,215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) +IMAGE_END_DATA(1280, 25) IMAGE_BEGIN_DATA IMAGE_DATA(120,156,205,81,185,14,130,64,20,124,134,198,194,206,63,35,241,151,45,212,194,68,142,176,11,235,194,46,226,65,67,99) diff --git a/uppsrc/ide/Debuggers/init b/uppsrc/ide/Debuggers/init index f64473c93..d686fb29e 100644 --- a/uppsrc/ide/Debuggers/init +++ b/uppsrc/ide/Debuggers/init @@ -3,7 +3,7 @@ #include "ide\Common/init" #include "plugin\ndisasm/init" #include "HexView/init" -#define BLITZ_INDEX__ F2300ec0d3d2de4bde7af30102b728c5d +#define BLITZ_INDEX__ Fa2117e771964dad617cdd6a1792596ea #include "UppSimplifiers.icpp" #undef BLITZ_INDEX__ #endif diff --git a/uppsrc/ide/icon.ico b/uppsrc/ide/icon.ico index a06255281242d69e72231f24779d4eb7e0328d75..ed674dab4681e8f6a8a54a9f03063eb6fa681734 100644 GIT binary patch literal 2862 zcmcguy^hmB5FVe6&r5ZbRGhBi%1A*-bS~fpkW!{XLOcPqktm=;5ONncJc|n&dL9SK z%r~>MyIv(Ax_gv?&&u`C@p-JWu9xe$V{Dvm1|32wvRx2)vN^dYuEXibpQYChc7JzGs~k&O>eF zh;ivrj znzMnq@~@I5GgoKHByJ@fk-2k@3l=3x}0T#}c*!0~^0%p>-E z==`)U?roltBjzN=Zjj0R{pirX?}J}6|7`;*Zcc*Nr%%t*IbyFqa>;Dt$+{cOibLU> z7#^`i6}5MD$4On5p|C6pSJ$OuBhs|3Th_H}y^r8>S!>d{lEuxIOKcERe>V2p+062S zYulOO9r!C&;}^e5{HAebRk1F-*I2iU?+etkeI@qu`sMZoGV5npGr8-W F{sOt@+Oq%v literal 2862 zcmcguyJ{Rs6g~4E1Ojikk&P3Npo6YQzcM$>AQZ@fkzxf4i@(551rF?N+11L{B>t8O zoNT_IV`!gK{g|1SWCqr3!JS)mpXZ(`ngIqF;mH$(^=1sD+;!&(@P)Saycht}BVeHz z$}`F!`~oi-_dl+Rz54Q__Wjt3hHA6f1UaBqh`YYNt|W?Aep^H5UEc#hDlKNzqFn8o z8lgWeZS7uu=oexb-|DW~j;-}InkuYr&b@iJXhO}_C(SHLyB^JFRG5Q-doen<$$ei} zzs_WZ5c|XYre2Gy)-{7&{sS>P5QMX1tf|vG)Bgzns`GHZu26L~?*aLtNE2W4pxioN zzK)w+C3KPd*vv1|2s1e zkX|yszvja+{&@cZ^Jyu)>T5D%vaBM0w<67?;Dw)UkufJkrP@k8=7_q$Yx+ z_(ogDJ^hh!h+GQe9b8`9vXDo+r5MJjR(67;vvZuTu25c-u-2o)v`pn zP;JB7#FrGX^jpSz;@8XxMYBmXi=jA5&Yt4JINCfV=q$vvIl`^jRI$V&&Qf7NImX#} ziPhB-7v%yjrp*(t;?fLB%01`ufeT?zIfH!cC!ScxN;ma|tDvZFs+=NbU(2&NQ!e>T z$&JrATZZGKGnA(*EXxZlIB)R9tex<#8$Kh)eUWf3+KY^K-UWLW#AYe6Fq5NUfK_aIl;;%p|)o=>GW*`usa_ulVqG5;)e^oZ>HH4e^&os_%)BIM`RdFq`3<)O%sB z7bm=TC(Su@|2}Xa4*5R#ruSwiA10%CA97O0D@VDSOLvv%9dqxADawj)uHSUbck{Tk zeO9lQHP4P1o+bPJjrihRM)(^3TAq?T%xaluQoT#g%Quh{kKSue5pR~*WjEp`6X!ZN z!kmKdD)6B^a&zFCj`(e9)@U%mbUFf6So6sQv*{F*ozKf`HtoVk%pJ~VkmjP|dANU` z42P{h)Yqj>-Ftx{oY;veW`frRnQ-A QmUo3bH(tNJ^