From 7f30709b5cf6f1a705ebf2ba864577dae48a8240 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sun, 24 May 2020 00:18:40 +0000 Subject: [PATCH] quark: working "search next" git-svn-id: svn://kolibrios.org@7975 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/quark/data.h | 4 ++-- programs/cmm/quark/prepare_page.h | 3 ++- programs/cmm/quark/quark.c | 8 +++++--- programs/cmm/quark/search.h | 19 ++++++++++++------- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/programs/cmm/quark/data.h b/programs/cmm/quark/data.h index 3cc6d1af41..d836954cc9 100644 --- a/programs/cmm/quark/data.h +++ b/programs/cmm/quark/data.h @@ -13,7 +13,7 @@ char intro[] = " char copied_chars[] = "Скопировано сиволов: %i"; -char about[] = "Quark Text v0.8 +char about[] = "Quark Text v0.9 Автор: Кирилл Липатов aka Leency Сайт: http://aspero.pro @@ -52,7 +52,7 @@ Try to open some text file."; char copied_chars[] = "Copied %i chars"; -char about[] = "Quark Text v0.8 +char about[] = "Quark Text v0.9 Author: Kiril Lipatov aka Leency Website: http://aspero.pro diff --git a/programs/cmm/quark/prepare_page.h b/programs/cmm/quark/prepare_page.h index 5d73cade65..3bbc67e23f 100644 --- a/programs/cmm/quark/prepare_page.h +++ b/programs/cmm/quark/prepare_page.h @@ -68,7 +68,7 @@ void PaintVisible() selection.draw(absolute_y); - if (search.visible) for (ff=0; ff 0) && (s2 < 0) { DrawBuf.DrawBar(search.found.get(ff) - lines.get(absolute_y) * list.font_w + 3, ydraw, strlen(#found_text) * list.font_w, list.item_h, theme.found); + search_next = false; } } diff --git a/programs/cmm/quark/quark.c b/programs/cmm/quark/quark.c index 23e4e1c9e6..b405eb4683 100644 --- a/programs/cmm/quark/quark.c +++ b/programs/cmm/quark/quark.c @@ -56,6 +56,7 @@ int curcol_scheme; int font_size; bool enable_edit = false; +bool search_next = false; #include "data.h" @@ -315,11 +316,12 @@ void HandleMouseEvent() bool EventSearchNext() { - int new_y = search.find_next(list.first); + int new_y = search.find_next(list.first+1); if (new_y) { list.first = new_y; list.CheckDoesValuesOkey(); - DrawPage(); + search_next = true; + DrawPage(); } } @@ -690,7 +692,7 @@ void draw_window() GetProcessInfo(#Form, SelfInfo); sc.get(); if (Form.status_window>2) return; - if (Form.width < 430) { MoveSize(OLD,OLD,430,OLD); return; } + if (Form.width < 450) { MoveSize(OLD,OLD,450,OLD); return; } if (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); return; } button.init(40); diff --git a/programs/cmm/quark/search.h b/programs/cmm/quark/search.h index b0f98496a7..b32bc066b8 100644 --- a/programs/cmm/quark/search.h +++ b/programs/cmm/quark/search.h @@ -63,17 +63,17 @@ bool SEARCH::draw(dword _btn_find, _btn_hide, _y) DrawBar(0, _y+1, Form.cwidth, SEARCH_H-1, sc.work); search_box.top = _y + 6; - search_box.width = math.min(Form.width - 200, 250); + search_box.width = math.min(Form.width - 200, 150); DrawRectangle(search_box.left-1, search_box.top-1, search_box.width+2, 23,sc.work_graph); edit_box_draw stdcall(#search_box); - DrawCaptButton(search_box.left+search_box.width+14, search_box.top-1, 90, + DrawCaptButton(search_box.left+search_box.width+14, search_box.top-1, 100, TOOLBAR_ICON_HEIGHT+1, _btn_find, sc.work_light, sc.work_text, T_FIND_NEXT); sprintf(#matches, T_MATCHES, found.count); - WriteTextWithBg(search_box.left+search_box.width+14+110, + WriteTextWithBg(search_box.left+search_box.width+14+115, search_box.top+3, 0xD0, sc.work_text, #matches, sc.work); DefineHiddenButton(Form.cwidth-26, search_box.top-1, TOOLBAR_ICON_HEIGHT+1, @@ -97,17 +97,22 @@ int SEARCH::find_all() int SEARCH::find_next(int _cur_pos) { int i; + dword t1, t2; if (!search_text[0]) return false; if (!streq(#found_text, #search_text)) { strcpy(#found_text, #search_text); find_all(); + draw_window(); } - draw_window(); - //for (i=_cur_pos+1; i 0) { + t1 = found.get(i); + while(t1 > lines.get(_cur_pos)) _cur_pos++; + return _cur_pos-1; + } + } return false; }