/programs/cmm/eolite/Eolite.c |
---|
1,11 → 1,17 |
//Leency, Veliant, Punk_Joker, PavelYakov & KolibriOS Team 2008-2021 |
//GNU GPL license. |
// 70.5 - get volume info and label |
/* |
TODO: |
- fix a kfm2 bug with selected files on window deactivation |
- click on a path bar opens edit |
- click to show breadcrumbs |
- 70.5 - get volume info and label |
*/ |
#define ABOUT_TITLE "EOLITE 5 Beta10" |
#define TITLE_EOLITE "Eolite File Manager 5 Beta10" |
#define TITLE_KFM "Kolibri File Manager 2 Beta10"; |
#define ABOUT_TITLE "EOLITE 5 Beta11" |
#define TITLE_EOLITE "Eolite File Manager 5 Beta11" |
#define TITLE_KFM "Kolibri File Manager 2 Beta11"; |
#define MEMSIZE 1024 * 250 |
#include "../lib/clipboard.h" |
24,10 → 30,8 |
#include "../lib/obj/libimg.h" |
#include "../lib/patterns/history.h" |
#include "../lib/patterns/toolbar_button.h" |
#include "imgs/images.h" |
#include "include/const.h" |
_history history; |
55,13 → 59,6 |
int toolbar_buttons_x[7]={9,46,85,134,167,203}; |
bool dir_at_fat16 = NULL; |
dword about_thread_id; |
dword settings_window; |
bool active_about = false; |
bool active_settings = false; |
byte del_active=0; |
byte new_element_active=0; |
75,6 → 72,7 |
int selected_count; |
int folder_count; |
dword path; |
bool dir_at_fat16 = NULL; |
//Sselected element data |
byte file_path[4096]; |
92,14 → 90,20 |
int status_bar_h; |
int icon_size = 18; |
//Threads data |
dword about_thread_id; |
dword settings_window; |
bool active_about = false; |
bool active_settings = false; |
dword about_stak=0,properties_stak=0,settings_stak=0; |
byte cmd_free=0; |
//Multipanes |
int active_panel=0; |
int disk_popin_active_on_panel=0; |
#define PANES_COUNT 2 |
dword location[PANES_COUNT]; |
dword about_stak=0,properties_stak=0,settings_stak=0; |
byte cmd_free=0; |
libimg_image icons16_default; |
libimg_image icons16_selected; |
327,13 → 331,8 |
EventOpenDiskPopin(active_panel); |
break; |
case BACK_BTN...PASTE_BTN: |
SetActivePanel(0); |
EventToolbarButtonClick(id); |
break; |
case BACK_BTN+100...PASTE_BTN+100: |
SetActivePanel(1); |
EventToolbarButtonClick(id-100); |
break; |
case 31...33: |
EventSort(id-30); |
break; |
521,8 → 520,8 |
if (rand_n) rand_n = random(80); |
if (show_status_bar.checked) { |
#define STBAR_EOLITE_H 16; |
#define STBAR_KFM_H 21+16; |
#define STBAR_EOLITE_H 16 |
#define STBAR_KFM_H 21 |
if (efm) status_bar_h = STBAR_KFM_H; |
else status_bar_h = STBAR_EOLITE_H; |
} else { |
537,7 → 536,12 |
SetAppColors(); |
if (efm) { |
if (screen.width > 693) && (Form.width < 693) { MoveSize(OLD,OLD,693,OLD); return; } |
DrawBar(0, 0, Form.cwidth, 34, sc.work); |
DrawBar(0, 4, Form.cwidth, SELECTY-5, sc.work); |
DrawBar(0, SELECTY+KFM2_DEVH+1, Form.cwidth, 3, sc.work); |
DrawBar(0, SELECTY-1, 1, KFM2_DEVH+2, sc.work); |
DrawBar(Form.cwidth-1, SELECTY-1, 1, KFM2_DEVH+2, sc.work); |
DrawBar(Form.cwidth/2-16, SELECTY-1, 16, KFM2_DEVH+2, sc.work); |
/* |
#define PAD 7 |
#define GAP_S 26+5 |
#define GAP_B 26+14 |
553,6 → 557,7 |
i+=100; |
} |
//DrawTopPanelButton(51, Form.cwidth-GAP_S-PAD, PAD, -1, false); //burger menu |
*/ |
} else { |
if (Form.width < 480) { MoveSize(OLD,OLD,480,OLD); return; } |
ESDWORD[#toolbar_pal] = sc.work; |
574,7 → 579,9 |
for (i=0; i<6; i++) DrawBar(0, 5-i, Form.cwidth, 1, MixColors(sc.work_light, sc.work, i*10)); |
llist_copy(#files_active, #files); |
DrawStatusBar(); |
if (!selected_count) Open_Dir(path,ONLY_OPEN); //if there are no selected files -> refresh folder [L001] |
if (!selected_count) { |
Open_Dir(path,ONLY_OPEN); //if there are no selected files -> refresh folder [L001] |
} |
DrawFilePanels(); |
disk_popin_active_on_panel = 0; |
} |
619,14 → 626,11 |
int go_up_folder_exists=0; |
if (efm) { |
DrawBar(0, Form.cheight - status_bar_h+15, Form.cwidth, 3, sc.work); |
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, 2, sc.work); |
DrawBar(0, Form.cheight - 2, Form.cwidth, 2, sc.work); |
DrawBar(Form.cwidth-1, Form.cheight - 19, 1, 17, sc.work); |
DrawFuncButtonsInKfm(); |
DrawPathBar(); |
return; |
} |
} else { |
if (!show_status_bar.checked) return; |
if (files.count>0) && (streq(items.get(0)*304+buf+72,"..")) go_up_folder_exists=1; |
DrawBar(0, Form.cheight - status_bar_h, Form.cwidth, status_bar_h, sc.work); |
638,6 → 642,7 |
0x80,sc.work_text,#status_bar_str); |
} |
} |
} |
void DrawFilePanels() |
{ |
650,9 → 655,13 |
files.SetSizes(192, 57, Form.cwidth - 210, Form.cheight - 59 - status_bar_h, files.item_h); |
DrawButtonsAroundList(); |
List_ReDraw(); |
DrawPathBar(); |
} |
else |
{ |
llist_copy(#files_active, #files); |
llist_copy(#files, #files_inactive); |
if (!active_panel) { |
files.SetSizes(Form.cwidth/2, files_y, w2-17, h2, files.item_h); |
} else { |
662,8 → 671,9 |
files_inactive.x = files.x; |
DrawButtonsAroundList(); |
path = location[active_panel^1]; |
Open_Dir(location[active_panel^1],WITH_REDRAW); |
llist_copy(#files_inactive, #files); |
Open_Dir(path,WITH_REDRAW); |
if (!selected_count) files_inactive.count = files.count; |
llist_copy(#files, #files_active); |
if (!active_panel) { |
files.SetSizes(2, files_y, Form.cwidth/2-2-17, h2, files.item_h); |
673,7 → 683,7 |
DrawButtonsAroundList(); |
path = location[active_panel]; |
Open_Dir(location[active_panel],WITH_REDRAW); |
Open_Dir(path,WITH_REDRAW); |
} |
} |
828,8 → 838,7 |
selected_count = 0; |
if (buf) free(buf); |
errornum = GetDir(#buf, #files.count, dir_path, DIRS_NOROOT); |
if (errornum) |
if (errornum = GetDir(#buf, #files.count, dir_path, DIRS_NOROOT)) |
{ |
history.add(path); |
EventHistoryGoBack(); |
846,11 → 855,11 |
Sorting(); |
list_full_redraw = true; |
SetCurDir(dir_path); |
DrawPathBar(); |
if (redraw!=ONLY_OPEN) { |
history.add(path); |
List_ReDraw(); |
DrawStatusBar(); |
DrawPathBar(); |
} |
} |
955,6 → 964,7 |
strcpy(#old_folder_name, path+iii); |
if (iii>1) ESBYTE[path+iii-1]=NULL; else ESBYTE[path+iii]=NULL; |
SelectFileByName(#old_folder_name); |
if(efm)DrawPathBarKfm(); |
} |
void EventOpenSelected() |
1369,10 → 1379,10 |
DefineHiddenButton(0,0,5000,3000,9999+BT_NOFRAME); |
if (panel_n==0) { |
disk_popin_active_on_panel = 1; |
SystemDiscs.DrawOptions(Form.cwidth/2-DDW); |
SystemDiscs.DrawOptions(1); |
} else { |
disk_popin_active_on_panel = 2; |
SystemDiscs.DrawOptions(Form.cwidth-DDW-2); |
SystemDiscs.DrawOptions(Form.cwidth/2-1); |
} |
} |
/programs/cmm/eolite/include/const.h |
---|
4,7 → 4,7 |
// // |
//===================================================// |
#ifdef LANG_RUS |
#define T_FILE " ©«" |
#define T_FILE "•" |
#define T_TYPE "¨¯" |
#define T_SIZE " §¬¥à" |
#define T_NEW_FOLDER "®¢ ï ¯ ¯ª " |
68,7 → 68,7 |
// // |
//===================================================// |
#else |
#define T_FILE "File" |
#define T_FILE "Name" |
#define T_TYPE "Type" |
#define T_SIZE "Size" |
#define T_NEW_FOLDER "New folder" |
180,5 → 180,6 |
}; |
#define DEV_H 17 |
#define DDW 120 |
#define DDW 110 |
#define KFM2_DEVH 20 |
#define SELECTY 10 |
/programs/cmm/eolite/include/copy_and_delete.h |
---|
107,13 → 107,13 |
char copy_rezult; |
int j, i, slash_count=0; |
int paste_elements_count = 0; |
dword buf; |
dword clipbuf; |
dword path_offset; |
buf = Clipboard__GetSlotData(Clipboard__GetSlotCount()-1); |
if (DSDWORD[buf+4] != 3) return; |
paste_elements_count = ESINT[buf+8]; |
path_offset = buf + 10; |
clipbuf = Clipboard__GetSlotData(Clipboard__GetSlotCount()-1); |
if (DSDWORD[clipbuf+4] != 3) return; |
paste_elements_count = ESINT[clipbuf+8]; |
path_offset = clipbuf + 10; |
if (cut_active) { |
DisplayOperationForm(MOVE_FLAG); |
138,13 → 138,13 |
} |
_DIFFERENT_DRIVES: |
path_offset = buf + 10; |
path_offset = clipbuf + 10; |
for (j = 0; j < paste_elements_count; j++) { |
copy_bar.max += GetFilesCount(path_offset); |
path_offset += strlen(path_offset) + 1; |
} |
path_offset = buf + 10; |
path_offset = clipbuf + 10; |
for (j = 0; j < paste_elements_count; j++) { |
strcpy(#copy_from, path_offset); |
if (!copy_from) DialogExit(); |
212,23 → 212,23 |
{ |
int j; |
int elements_count = 0; |
dword buf; |
dword clipbuf; |
dword path_offset; |
DisplayOperationForm(DELETE_FLAG); |
buf = Clipboard__GetSlotData(Clipboard__GetSlotCount()-1); |
clipbuf = Clipboard__GetSlotData(Clipboard__GetSlotCount()-1); |
Clipboard__DeleteLastSlot(); |
if (DSDWORD[buf+4] != 3) return; |
elements_count = ESINT[buf+8]; |
if (DSDWORD[clipbuf+4] != 3) return; |
elements_count = ESINT[clipbuf+8]; |
path_offset = buf + 10; |
path_offset = clipbuf + 10; |
for (j = 0; j < elements_count; j++) { |
copy_bar.max += GetFilesCount(path_offset); |
path_offset += strlen(path_offset) + 1; |
} |
path_offset = buf + 10; |
path_offset = clipbuf + 10; |
for (j = 0; j < elements_count; j++) { |
RecursiveDelete(path_offset, true); |
path_offset += strlen(path_offset) + 1; |
/programs/cmm/eolite/include/gui.h |
---|
171,9 → 171,13 |
{ |
if (efm) { |
DrawPathBarKfm(); |
return; |
} else { |
DrawPathEolite(); |
} |
} |
void DrawPathEolite() |
{ |
if (show_breadcrumb.checked) { |
DrawBreadCrumbs(); |
return; |
188,7 → 192,7 |
DefineHiddenButton(PathShow.start_x-4+1,PathShow.start_y-7+1,PathShow.area_size_x+4-2,20-2,PATH_BTN); |
DrawBar(PathShow.start_x-4, PathShow.start_y+14, PathShow.area_size_x+5+18, 1, sc.work_light); |
DrawFlatButtonSmall(PathShow.start_x+PathShow.area_size_x,PathShow.start_y-7,18,20, 61, "\26"); |
DrawFlatButtonSmall(PathShow.start_x+PathShow.area_size_x,PathShow.start_y-7,18,20, 61, "\x19"); |
PathShow.font_color = col.list_gb_text; |
PathShow_prepare stdcall(#PathShow); |
197,36 → 201,31 |
void DrawPathBarKfm() |
{ |
dword bgc; |
dword back_color, text_color; |
int draw_x, draw_w; |
int i=0; |
if (!Form.cwidth) return; |
if (skin_is_dark()) { |
bgc = col.odd_line; |
PathShow.font_color = col.list_gb_text; |
back_color = col.odd_line; |
text_color = col.list_gb_text; |
} else { |
bgc = 0xFFFFCC; |
PathShow.font_color = 0x222222; |
back_color = 0xFFFFCC; |
text_color = 0x222222; |
} |
PathShow.start_y = Form.cheight - status_bar_h+2; |
PathShow.start_x = 4; |
PathShow.area_size_x = Form.cwidth/2-8; |
draw_x = 3 + DDW; |
draw_w = Form.cwidth/2 - draw_x - 17; |
do { |
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.text_pointer = location[i]; |
PathShow_prepare stdcall(#PathShow); |
PathShow_draw stdcall(#PathShow); |
PathShow.start_x = Form.cwidth/2 + 2; |
PathShow.area_size_x = Form.cwidth - PathShow.start_x - 5; |
DrawBar(draw_x, SELECTY-1, draw_w-KFM2_DEVH+1, 1, sc.work_graph); |
DrawBar(draw_x, SELECTY, draw_w-KFM2_DEVH+1, KFM2_DEVH, back_color); |
DrawBar(draw_x, SELECTY+KFM2_DEVH, draw_w-KFM2_DEVH+1, 1, sc.work_graph); |
kfont.WriteIntoWindow(draw_x + 3, math.max(KFM2_DEVH-kfont.height/2+SELECTY,0), |
back_color, text_color, kfont.size.pt, location[i]+strrchr(location[i], '/')); |
DrawFlatButtonSmall(draw_x+draw_w-KFM2_DEVH+1, SELECTY-1, KFM2_DEVH-1, KFM2_DEVH+1, 576+i, "\x19"); |
draw_x = Form.cwidth/2 + DDW + 1; |
draw_w = Form.cwidth - draw_x - 2; |
i++; |
} while (i<2); |
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); |
} |
//===================================================// |
262,8 → 261,6 |
DrawBreadcrumbButton(btn.x, btn.y, btn.w, btn.h, i+BREADCRUMB_ID, text_line); |
btn.x += btn.w; |
} |
//DrawFavButton(btn.x); |
//btn.x+=20; |
btn.x++; |
DrawBar(btn.x,btn.y-1,Form.cwidth-btn.x-25,btn.h+3,sc.work); |
} |
/programs/cmm/eolite/include/left_panel.h |
---|
64,8 → 64,8 |
int draw_y, draw_x; |
if (efm) { |
DrawSelect(Form.cwidth/2-DDW, KFM_DEV_DROPDOWN_1, location[0]); |
DrawSelect(Form.cwidth-DDW-2, KFM_DEV_DROPDOWN_2, location[sizeof(dword)]); |
DrawSelect(2, KFM_DEV_DROPDOWN_1, location[0]); |
DrawSelect(Form.cwidth/2, KFM_DEV_DROPDOWN_2, location[sizeof(dword)]); |
files.y = 40 + 17; |
} else { |
Tip(56, T_DEVICES, 55, "="); |
97,14 → 97,13 |
draw_y += DEV_H; |
} |
DrawBar(draw_x+6, draw_y, 18, 1, 0xFFFfff); |
ActionsDraw(SystemDiscs.list.count*DEV_H+108); |
DrawLeftPanelBg(SystemDiscs.list.count*DEV_H); |
ActionsDraw(list.count*DEV_H+108); |
DrawLeftPanelBg(list.count*DEV_H); |
} |
} |
void _SystemDiscs::DrawSelect(int draw_x, btid, dword _path) |
{ |
#define SELECTY 10 |
char dev_name[15], disc_name[100], i, dev_icon; |
if (ESBYTE[_path+1]=='\0') { |
/programs/cmm/lib/patterns/toolbar_button.h |
---|
1,5 → 1,5 |
unsigned int DrawTopPanelButton(dword _button_id, _x, _y, signed int _icon_n, bool pressed) |
:unsigned int DrawTopPanelButton(dword _button_id, _x, _y, signed int _icon_n, bool pressed) |
{ |
#define TSZE 25 |
static libimg_image top_icons; |