From 13168e73dcbcb925b2e65a84d2f949ed6c291841 Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Mon, 21 Jun 2021 09:16:45 +0000 Subject: [PATCH] KFM2 beta 7: add path line, colored functional buttons git-svn-id: svn://kolibrios.org@8901 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/eolite/Eolite.c | 13 ++-- programs/cmm/eolite/include/breadcrumbs.h | 77 +++++++++++++++++++---- 2 files changed, 72 insertions(+), 18 deletions(-) diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index 01553fa71b..924df30cfc 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -3,9 +3,9 @@ // 70.5 - get volume info and label -#define ABOUT_TITLE "EOLITE 5 Beta6" -#define TITLE_EOLITE "Eolite File Manager 5 Beta6" -#define TITLE_KFM "Kolibri File Manager 2 Beta6"; +#define ABOUT_TITLE "EOLITE 5 Beta7" +#define TITLE_EOLITE "Eolite File Manager 5 Beta7" +#define TITLE_KFM "Kolibri File Manager 2 Beta7"; #define MEMSIZE 1024 * 250 #include "../lib/clipboard.h" @@ -575,7 +575,7 @@ void draw_window() dword title; if (show_status_bar.checked) { #define STBAR_EOLITE_H 16; - #define STBAR_KFM_H 21; + #define STBAR_KFM_H 21+16; if (efm) status_bar_h = STBAR_KFM_H; else status_bar_h = STBAR_EOLITE_H; } else { @@ -659,7 +659,7 @@ void DrawFuncButtonsInKfm() for (i=0; i<10; i++) { len = strlen(kfm_func[i])*6 + padding; if (i==9) len = Form.cwidth - x - 3; - DrawFlatButtonSmall(x+1, Form.cheight - 19, len, 16, i+KFM_FUNC_ID+1, kfm_func[i]); + DrawFuncButton(x+1, Form.cheight - 19, len, i+KFM_FUNC_ID+1, kfm_func[i]); x += len + 2; } } @@ -670,8 +670,9 @@ void DrawStatusBar() int go_up_folder_exists=0; if (efm) { - DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work); + DrawBar(0, Form.cheight - status_bar_h+15, Form.cwidth, status_bar_h-15, sc.work); DrawFuncButtonsInKfm(); + DrawPathBar(); return; } diff --git a/programs/cmm/eolite/include/breadcrumbs.h b/programs/cmm/eolite/include/breadcrumbs.h index a7ab0f39fa..4900063af4 100644 --- a/programs/cmm/eolite/include/breadcrumbs.h +++ b/programs/cmm/eolite/include/breadcrumbs.h @@ -1,20 +1,26 @@ -PathShow_data PathShow = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, #path, #temp, 0}; +//===================================================// +// // +// PATH // +// // +//===================================================// + +char work_area_pointer[1024]; +PathShow_data PathShow = {0, 17,250, 6, 250, 0, 0, 0x000000, 0xFFFFCC, #path, #work_area_pointer, 0}; void DrawPathBar() { if (efm) { + DrawPathBarKfm(); return; - PathShow.start_x = 10; - PathShow.start_y = Form.cheight - status_bar_h; - } else { - PathShow.start_x = 250; - PathShow.start_y = 17; - if (show_breadcrumb.checked) { - DrawBreadCrumbs(); - return; - } } + if (show_breadcrumb.checked) { + DrawBreadCrumbs(); + return; + } + + PathShow.start_x = 250; + PathShow.start_y = 17; PathShow.area_size_x = Form.cwidth-300; DrawBar(PathShow.start_x-3, PathShow.start_y-6, PathShow.area_size_x+3, 19, col.odd_line); DrawRectangle(PathShow.start_x-4,PathShow.start_y-7,PathShow.area_size_x+4,20,sc.work_graph); @@ -23,12 +29,59 @@ void DrawPathBar() DrawFlatButtonSmall(PathShow.start_x+PathShow.area_size_x,PathShow.start_y-7,18,20, 61, "\26"); - PathShow.background_color = col.odd_line; PathShow.font_color = col.list_gb_text; PathShow_prepare stdcall(#PathShow); PathShow_draw stdcall(#PathShow); } +void DrawPathBarKfm() +{ + dword bgc; + int i=0; + if (!Form.cwidth) return; + + if (skin_is_dark()) { + bgc = col.odd_line; + PathShow.font_color = col.list_gb_text; + } else { + bgc = 0xFFFFCC; + PathShow.font_color = 0x222222; + } + if (active_panel==1) PathShow.text_pointer = #path; else PathShow.text_pointer = #inactive_path; + PathShow.start_x = 4; + PathShow.area_size_x = Form.cwidth/2-8; + PathShow.start_y = Form.cheight - status_bar_h+2; + + _DRAW_BAR: + DrawBar(PathShow.start_x-2,PathShow.start_y-3,PathShow.area_size_x+5,14,bgc); + DrawRectangle(PathShow.start_x-3,PathShow.start_y-4,PathShow.area_size_x+6,15,sc.work_graph); + PathShow_prepare stdcall(#PathShow); + PathShow_draw stdcall(#PathShow); + i++; + if (i<2) { + if (active_panel==1) PathShow.text_pointer = #inactive_path; else PathShow.text_pointer = #path; + PathShow.start_x = Form.cwidth/2 + 2; + PathShow.area_size_x = Form.cwidth - PathShow.start_x - 5; + goto _DRAW_BAR; + } + + DrawBar(0,PathShow.start_y-2,1,15,sc.work); + DrawBar(Form.cwidth-1,PathShow.start_y-2,1,15,sc.work); + DrawBar(1,PathShow.start_y+12,Form.cwidth-2,1,sc.work_light); +} + +void DrawPathBarKfm_Line() +{ + +} + + +//===================================================// +// // +// BREADCRUMBS // +// // +//===================================================// + void DrawBreadCrumbs() collection_int breadCrumb=0; char PathShow_path[4096]; @@ -39,7 +92,7 @@ void DrawBreadCrumbs() strcat(#PathShow_path, #path); for (i=0; i<50; i++) DeleteButton(i+BREADCRUMB_ID); breadCrumb.drop(); - for (i=0; PathShow_path[i]; i++) + for (i=0; (PathShow_path[i]) && (i