/programs/cmm/eolite/Eolite.c |
---|
3,8 → 3,8 |
// 70.5 - get volume info and label |
#define TITLE "Eolite File Manager 4.51" |
#define ABOUT_TITLE "EOLITE 4.51" |
#define TITLE "Eolite File Manager 4.6" |
#define ABOUT_TITLE "EOLITE 4.6" |
#ifndef AUTOBUILD |
#include "lang.h--" |
28,6 → 28,7 |
#include "../lib/obj/libimg.h" |
#include "../lib/patterns/history.h" |
#include "../lib/patterns/toolbar_button.h" |
#include "imgs/images.h" |
74,6 → 75,8 |
} col; |
dword waves_pal[256]; |
bool efm = false; |
int toolbar_buttons_x[7]={9,46,85,134,167,203}; |
bool active_about = false; |
163,32 → 166,52 |
//-p <path> : just show file/folder properties dialog |
//-d <path> : delete file/folder |
//-v : paste files/folder from clipboard |
if (param) && (param[0]=='-') switch (param[1]) |
dword p = #param; |
if (param[0]=='/') && (param[1]=='E') && (param[2]=='F') && (param[3]=='M') { |
efm = true; |
p += 4; |
if (param[4]==' ') p++; |
} |
if (ESBYTE[p]=='\0') return; |
if (ESBYTE[p]=='-') switch (ESBYTE[p+1]) |
{ |
case 'p': |
strcpy(#file_path, #param + 3); |
strcpy(#file_path, p + 3); |
itdir = dir_exists(#file_path); |
strcpy(#file_name, #param + strrchr(#param, '/')); |
param[strrchr(#param, '/')-1] = '\0'; |
strcpy(#path, #param + 3); |
strcpy(#file_name, p + strrchr(p, '/')); |
ESBYTE[strrchr(p, '/')+p-1] = '\0'; |
strcpy(#path, p + 3); |
properties_dialog(); |
ExitProcess(); |
return; |
case 'd': |
strcpy(#file_path, #param + 3); |
strcpy(#file_path, p + 3); |
itdir = dir_exists(#file_path); |
DisplayOperationForm(DELETE_FLAG); |
DeleteSingleElement(); |
ExitProcess(); |
return; |
case 'v': |
cut_active = param[2] - '0'; |
strcpy(#path, #param + 4); |
cut_active = ESBYTE[p+2] - '0'; |
strcpy(#path, p + 4); |
PasteThread(); |
ExitProcess(); |
return; |
} |
if (ESBYTE[strlen(p)+p-1]=='/') ESBYTE[strlen(p)+p-1]=NULL; //no "/" at the end |
if (dir_exists(p)) { |
strcpy(#path, p); |
} else { |
if (file_exists(p)) { |
ESBYTE[strrchr(p, '/')+p-1] = '\0'; |
strcpy(#path, p); |
SelectFileByName(p+strlen(p)+1); |
} else { |
notify(T_NOTIFY_APP_PARAM_WRONG); |
} |
} |
} |
void main() |
{ |
195,6 → 218,9 |
dword id; |
int old_cur_y; |
handle_param(); |
ESBYTE[0] = NULL; |
rand_n = random(80); |
load_libraries(); |
203,27 → 229,6 |
LoadIniSettings(); |
SystemDiscs.Get(); |
handle_param(); |
ESBYTE[0] = NULL; |
if (param) |
{ |
if (strlen(#param)>1) && (param[strlen(#param)-1]=='/') param[strlen(#param)-1]=NULL; //no "/" at the end |
if (dir_exists(#param)) { |
strcpy(#path, #param); |
} else { |
if (file_exists(#param)) { |
param[strrchr(#param, '/')-1] = '\0'; |
strcpy(#path, #param); |
SelectFileByName(#param+strlen(#param)+1); |
} else { |
notify(T_NOTIFY_APP_PARAM_WRONG); |
} |
} |
} |
Open_Dir(#path,ONLY_OPEN); |
strcpy(#inactive_path, #path); |
llist_copy(#files_inactive, #files); |
307,7 → 312,7 |
//Scrooll |
if (mouse.x>=files.x+files.w) && (mouse.x<=files.x+files.w+18) && (mouse.y>files.y) && (mouse.y<files.y+files.h-18) && (mouse.lkm) && (!scroll_used) {scroll_used=true; Scroll();} |
if (scroll_used) && (mouse.up) { scroll_used=false; Scroll(); } |
if (scroll_used) && (!mouse.key&MOUSE_LEFT) { scroll_used=false; Scroll(); } |
if (scroll_used) |
{ |
525,7 → 530,7 |
DrawStatusBar(); |
List_ReDraw(); |
break; |
case SCAN_CODE_F1...SCAN_CODE_F10: |
case SCAN_CODE_F2...SCAN_CODE_F10: |
FnProcess(key_scancode-58); |
break; |
default: |
560,26 → 565,42 |
void draw_window() |
{ |
dword i; |
incn x; |
if (show_status_bar.checked) status_bar_h = STATUS_BAR_H; else status_bar_h = 0; |
DefineAndDrawWindow(Form.left+rand_n,Form.top+rand_n,Form.width,Form.height,0x73,NULL,TITLE,0); |
GetProcessInfo(#Form, SelfInfo); |
if (Form.status_window>2) return; |
if (Form.height < 350) { MoveSize(OLD,OLD,OLD,350); return; } |
if (!two_panels.checked) && (Form.width < 480) { MoveSize(OLD,OLD,480,OLD); return; } |
if ( two_panels.checked) && (Form.width < 573) { MoveSize(OLD,OLD,573,OLD); return; } |
GetProcessInfo(#Form, SelfInfo); |
SetAppColors(); |
if (two_panels.checked) { |
if (Form.width < 573) { MoveSize(OLD,OLD,573,OLD); return; } |
DrawBar(0, 0, Form.cwidth, 34, sc.work); |
#define PAD 7 |
#define GAP_S 26+5 |
#define GAP_B 26+14 |
x.set(-GAP_S+8); |
DrawTopPanelButton(21, x.inc(GAP_S), PAD, 30, false); |
DrawTopPanelButton(22, x.inc(GAP_S), PAD, 31, false); |
DrawTopPanelButton(23, x.inc(GAP_B), PAD, 01, false); |
DrawTopPanelButton(24, x.inc(GAP_B), PAD, 55, false); |
DrawTopPanelButton(25, x.inc(GAP_S), PAD, 20, false); |
DrawTopPanelButton(26, x.inc(GAP_S), PAD, 56, false); |
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; |
ESDWORD[#toolbar_pal+4] = MixColors(0, sc.work, 35); |
PutPaletteImage(#toolbar, 246, 34, 0, 0, 8, #toolbar_pal); |
DrawBar(127, 8, 1, 25, sc.work_graph); |
for (i=0; i<3; i++) DefineHiddenButton(toolbar_buttons_x[i]+2,7,31-5,29-5,21+i); |
for (i=3; i<6; i++) DefineHiddenButton(toolbar_buttons_x[i], 5,31, 29, 21+i); |
DrawBar(127, 8, 1, 25, sc.work_graph); |
DrawBar(246,0, Form.cwidth - 246, 34, sc.work); |
DrawDot(Form.cwidth-17,12); |
DrawDot(Form.cwidth-17,12+6); |
DrawDot(Form.cwidth-17,12+12); |
DefineHiddenButton(Form.cwidth-24,7,20,25,51+BT_NOFRAME); //dots |
} |
//main rectangles |
DrawRectangle(1,40,Form.cwidth-3,Form.cheight - 42-status_bar_h,sc.work_graph); |
DrawRectangle(0,39,Form.cwidth-1,-show_status_bar.checked*status_bar_h + Form.cheight - 40,col.work_gradient[4]); //bg |
597,7 → 618,7 |
word sorting_arrow_x; |
dword sorting_arrow_t = "\x19"; |
if (sort_desc) sorting_arrow_t = "\x18"; |
DrawFlatButtonSmall(files.x, files.y-17, files.w - 141,16,31,T_FILE); |
DrawFlatButtonSmall(files.x - efm, files.y-17,files.w-141+efm,16,31,T_FILE); |
DrawFlatButtonSmall(files.x + files.w - 141, files.y-17,73,16,32,T_TYPE); |
DrawFlatButtonSmall(files.x + files.w - 68, files.y-17,68,16,33,T_SIZE); |
DrawFlatButtonSmall(files.x + files.w, files.y-17,16,16, 0,"\x18"); |
/programs/cmm/eolite/include/breadcrumbs.h |
---|
2,6 → 2,8 |
PathShow_data PathShow = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, #path, #temp, 0}; |
void DrawPathBar() |
{ |
PathShow.start_x = -efm*20 + 250; |
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); |
/programs/cmm/eolite/include/copy_and_delete.h |
---|
160,7 → 160,6 |
path_offset += strlen(path_offset) + 1; |
} |
cut_active=false; |
if (info_after_copy.checked) notify(INFO_AFTER_COPY); |
DialogExit(); |
} |
/programs/cmm/eolite/include/gui.h |
---|
10,15 → 10,15 |
if (files.count<=0) |
{ |
sc_slider_y = sc_y; |
sc_slider_h = sc_h - 1; |
sc_slider_y = sc_y - 1; |
sc_slider_h = sc_h + 1; |
} |
else |
{ |
sc_slider_y = files.first * sc_h / files.count + sc_y; |
sc_slider_h = sc_h * files.visible - files.visible / files.count; |
if (sc_slider_h < 20) sc_slider_h = 20; //minimal scroll width |
if (sc_slider_h > sc_h-sc_slider_y+56) || (files.first+files.visible>=files.count) sc_slider_y= sc_y + sc_h - sc_slider_h - 1; //äëÿ áîëüøîãî ñïèñêà |
sc_slider_y = files.first * sc_h / files.count + sc_y - 1; |
sc_slider_h = sc_h * files.visible - files.visible / files.count + 2; |
if (sc_slider_h < 20) sc_slider_h = 20; //minimal scroll height |
if (sc_slider_h > sc_h-sc_slider_y+56) || (files.first+files.visible>=files.count) sc_slider_y= sc_y + sc_h - sc_slider_h; //äëÿ áîëüøîãî ñïèñêà |
} |
//slider |
DrawRectangle(sc_x,sc_slider_y,16,sc_slider_h,sc.work_graph); |
72,8 → 72,8 |
int but_x; |
int popin_x = files.w - popin_w / 2 + files.x ; |
DrawPopup(popin_x, 160, popin_w, 95, 1, sc.work, sc.work_graph); |
but_x = DrawStandartCaptButton(popin_x+23, 215, POPUP_BTN1, b1_text); |
DrawStandartCaptButton(popin_x+23 + but_x, 215, POPUP_BTN2, b2_text); |
DrawCaptButton(popin_x+23+000, 215, 100, 26, POPUP_BTN1, sc.button, sc.button_text, b1_text); |
DrawCaptButton(popin_x+23+114, 215, 100, 26, POPUP_BTN2, sc.button, sc.button_text, b2_text); |
} |
void DrawDot(dword x,y) { |
/programs/cmm/eolite/include/left_panel.h |
---|
174,8 → 174,6 |
if (two_panels.checked) |
{ |
DrawBar(draw_x, draw_y, Form.cwidth - draw_x - 2, DEV_H_HOR, 0xFFFFFF); |
DefineButton(Form.cwidth - 23, draw_y+2, 17,16, 60+BT_HIDE, 0xCCCccc); |
_PutImage(Form.cwidth - 21, draw_y+4, 14,13, 2*14*13*3+#factions); |
files.y = draw_y + DEV_H_HOR + 17; |
} else { |
DrawBar(draw_x+6, draw_y, 18, 1, 0xFFFfff); |
/programs/cmm/eolite/include/menu.h |
---|
26,7 → 26,8 |
"®¢®¥ ®ª®|Ctrl+N |
âªàëâì ª®á®«ì|Ctrl+G |
¡®¢¨âì ¯ ¯ªã|F5 |
¯à®£à ¬¬¥|F1"; |
áâனª¨|F10 |
¯à®£à ¬¬¥"; |
#elif LANG_EST |
char file_actions[]= |
55,7 → 56,8 |
"New window|Ctrl+N |
Open console here|Ctrl+G |
Värskenda|F5 |
About|F1"; |
Settings|F10 |
About"; |
#else |
char file_actions[]= |
84,7 → 86,8 |
"New window|Ctrl+N |
Open console here|Ctrl+G |
Refresh folder|F5 |
About|F1"; |
Settings|F10 |
About"; |
#endif |
119,7 → 122,8 |
case 1: EventOpenNewEolite(); break; |
case 2: EventOpenConsoleHere(); break; |
case 3: EventRefreshDisksAndFolders(); break; |
case 4: FnProcess(1); break; |
case 4: FnProcess(10); break; |
case 5: FnProcess(1); break; |
} |
active_menu = NULL; |
} |
/programs/cmm/eolite/include/settings.h |
---|
3,7 → 3,6 |
?define TITLE_SETT " áâனª¨" |
?define SHOW_DEVICE_CLASS "뢮¤¨âì §¢ ¨ï ª« áá ãáâனáâ¢" |
?define SHOW_STATUS_BAR "®ª §ë¢ âì áâ âãá ¡ à" |
?define NOTIFY_COPY_END "¢¥¤®¬«ïâì ® § ¢¥à襨¨ ª®¯¨à®¢ ¨ï" |
?define SHOW_BREADCRUMBS "ᯮ«ì§®¢ âì 'å«¥¡ë¥ ªà®èª¨'" |
?define BIG_ICONS "ᯮ«ì§®¢ âì ¡®«ì訥 ¨ª®ª¨" |
?define USE_TWO_PANELS "¢¥ ¯ ¥«¨" |
18,7 → 17,6 |
?define TITLE_SETT "Settings" |
?define SHOW_DEVICE_CLASS "Show device class name" |
?define SHOW_STATUS_BAR "Show status bar" |
?define NOTIFY_COPY_END "Notify when copying finished" |
?define SHOW_BREADCRUMBS "Show breadcrumbs" |
?define BIG_ICONS "Big icons in list" |
?define USE_TWO_PANELS "Two panels" |
39,7 → 37,6 |
more_less_box line_height = { NULL, 16, 64, LIST_LINE_HEIGHT }; |
checkbox show_dev_name = { SHOW_DEVICE_CLASS }; |
checkbox show_status_bar = { SHOW_STATUS_BAR }; |
checkbox info_after_copy = { NOTIFY_COPY_END }; |
checkbox show_breadcrumb = { SHOW_BREADCRUMBS }; |
checkbox big_icons = { BIG_ICONS }; |
checkbox two_panels = { USE_TWO_PANELS }; |
50,7 → 47,7 |
{ |
proc_info Settings; |
int id; |
active_settings=1; |
active_settings = true; |
font_size.value = kfont.size.pt; |
line_height.value = files.item_h; |
SetEventMask(0x27); |
66,7 → 63,7 |
if (1==id) { ExitSettings(); break; } |
else if (id==5) |
{ |
RunProgram("/sys/tinypad", "/sys/settings/assoc.ini"); |
RunProgram("/sys/@open", "/sys/settings/assoc.ini"); |
break; |
} |
else if (id==6) |
83,7 → 80,6 |
break; |
} |
show_dev_name.click(id); |
info_after_copy.click(id); |
two_panels.click(id); |
show_breadcrumb.click(id); |
show_status_bar.click(id); |
108,7 → 104,7 |
case evReDraw: |
DefineAndDrawWindow(Form.cwidth-300/2+Form.left, Form.cheight-292/2+Form.top, 400, |
435+skin_height,0x34,sc.work,TITLE_SETT,0); |
365+skin_height,0x34,sc.work,TITLE_SETT,0); |
GetProcessInfo(#Settings, SelfInfo); |
DrawSettingsCheckBoxes(); |
} |
117,7 → 113,7 |
void ExitSettings() |
{ |
active_settings = 0; |
active_settings = false; |
settings_window = 0; |
cmd_free = 4; |
ExitProcess(); |
130,10 → 126,9 |
y.n = 0; |
show_dev_name.draw(x, y.inc(14)); |
show_status_bar.draw(x, y.inc(25)); |
info_after_copy.draw(x, y.inc(25)); |
show_breadcrumb.draw(x, y.inc(25)); |
big_icons.draw(x, y.inc(25)); |
two_panels.draw(x, y.inc(25)); |
//two_panels.draw(x, y.inc(25)); |
colored_lines.draw(x, y.inc(25)); |
font_size.draw(x, y.inc(31)); |
line_height.draw(x, y.inc(31)); |
152,21 → 147,21 |
void LoadIniSettings() |
{ |
ini.path = GetIni(#eolite_ini_path, "app.ini"); |
ini.section = "Eolite"; |
if (efm) ini.section = "EFM"; else ini.section = "Eolite"; |
two_panels.checked = efm; |
files.SetFont(6, 9, 10000000b); |
show_dev_name.checked = ini.GetInt("ShowDeviceName", true); |
show_status_bar.checked = ini.GetInt("ShowStatusBar", true); |
info_after_copy.checked = ini.GetInt("InfoAfterCopy", false); |
big_icons.checked = ini.GetInt("BigIcons", false); BigIconsSwitch(); |
two_panels.checked = ini.GetInt("TwoPanels", false); |
//two_panels.checked = ini.GetInt("TwoPanels", false); |
colored_lines.checked = ini.GetInt("ColoredLines", false); |
kfont.size.pt = ini.GetInt("FontSize", 13); |
files.item_h = ini.GetInt("LineHeight", 19); |
Form.left = ini.GetInt("WinX", 200); |
Form.top = ini.GetInt("WinY", 50); |
Form.width = ini.GetInt("WinW", 550); |
Form.height = ini.GetInt("WinH", 503); |
Form.left = ini.GetInt("WinX", 100); |
Form.top = ini.GetInt("WinY", 30); |
Form.width = ini.GetInt("WinW", efm*170+550); |
Form.height = ini.GetInt("WinH", efm*116+503); |
ini.GetString("DefaultPath", #path, 4096, "/rd/1"); |
ini.GetString("DefaultPath", #path_start, 4096, "/rd/1"); |
path_start_ed.size = path_start_ed.pos = strlen(#path_start); |
182,17 → 177,18 |
{ |
ini.SetInt("ShowDeviceName", show_dev_name.checked); |
ini.SetInt("ShowStatusBar", show_status_bar.checked); |
ini.SetInt("InfoAfterCopy", info_after_copy.checked); |
ini.SetInt("BigIcons", big_icons.checked); |
ini.SetInt("TwoPanels", two_panels.checked); |
//ini.SetInt("TwoPanels", two_panels.checked); |
ini.SetInt("ColoredLines", colored_lines.checked); |
ini.SetInt("FontSize", kfont.size.pt); |
ini.SetInt("LineHeight", files.item_h); |
if (Form.status_window<=2) { |
ini.SetInt("WinX", Form.left); |
ini.SetInt("WinY", Form.top); |
ini.SetInt("WinW", Form.width); |
ini.SetInt("WinH", Form.height); |
} |
} |
/programs/cmm/eolite/include/translations.h |
---|
9,7 → 9,7 |
?define T_NO "¥â" |
?define T_CANCEL "⬥ " |
?define T_CREATE "®§¤ âì" |
?define T_RENAME "¥à¥¨¬¥®¢ âì" |
?define T_RENAME "¥à¥ §¢ âì" |
?define FS_ITEM_ALREADY_EXISTS "'«¥¬¥â á â ª¨¬ ¨¬¥¥¬ 㦥 áãé¥áâ¢ã¥â' -E" |
?define NOT_CREATE_FOLDER "'¥ 㤠«®áì ᮧ¤ âì ¯ ¯ªã.' -E" |
?define NOT_CREATE_FILE "'¥ 㤠«®áì ᮧ¤ âì ä ©«.' -E" |
18,7 → 18,6 |
?define T_MOVE_WINDOW_TITLE "¥à¥¬¥é î..." |
?define T_DELETE_WINDOW_TITLE "¤ «ïî..." |
?define T_ABORT_WINDOW_BUTTON "à¥à¢ âì" |
?define INFO_AFTER_COPY "®¯¨à®¢ ¨¥ § ¢¥à襮" |
?define T_CANCEL_PASTE "®¯¨à®¢ ¨¥ ¯à¥ªà 饮. ¯ª ᪮¯¨à®¢ ¥ ¯®«®áâìî." |
?define T_SELECT_APP_TO_OPEN_WITH "ë¡¥à¨â¥ ¯à®£à ¬¬ã ¤«ï ®âªàëâ¨ï ä ©« " |
?define DEL_MORE_FILES_1 "¢ë¡à ë¥ í«¥¬¥âë (" |
49,7 → 48,6 |
?define T_MOVE_WINDOW_TITLE "Moving..." |
?define T_DELETE_WINDOW_TITLE "Deleting..." |
?define T_ABORT_WINDOW_BUTTON "Abort" |
?define INFO_AFTER_COPY "Copy finished" |
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely." |
?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file" |
?define DEL_MORE_FILES_1 "selected items(" |