Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8951 → Rev 8952

/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;