Eolite 2.65: better copying window (sparate GUI and functionality, show copy file icon, "Abort" button)

git-svn-id: svn://kolibrios.org@5514 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2015-03-09 18:49:34 +00:00
parent f74f8c194a
commit 45d0c69fdd
3 changed files with 58 additions and 34 deletions

View File

@ -39,11 +39,13 @@
?define NOT_CREATE_FOLDER "<EFBFBD>¥ 㤠«®áì ᮧ¤ âì ¯ ¯ªã." ?define NOT_CREATE_FOLDER "<EFBFBD>¥ 㤠«®áì ᮧ¤ âì ¯ ¯ªã."
?define NOT_CREATE_FILE "<EFBFBD>¥ 㤠«®áì ᮧ¤ âì ä ©«." ?define NOT_CREATE_FILE "<EFBFBD>¥ 㤠«®áì ᮧ¤ âì ä ©«."
?define ERROR_1 "Žè¨¡ª  ¯à¨ § £à㧪¥ ¡¨¡«¨®â¥ª¨ /rd/1/lib/box_lib.obj" ?define ERROR_1 "Žè¨¡ª  ¯à¨ § £à㧪¥ ¡¨¡«¨®â¥ª¨ /rd/1/lib/box_lib.obj"
?define T_PASTE_WINDOW "Š®¯¨àãî..." ?define T_PASTE_WINDOW_TITLE "Š®¯¨àãî..."
?define T_PASTE_WINDOW_TEXT "Š®¯¨àã¥âáï ä ©«:" ?define T_PASTE_WINDOW_TEXT "Š®¯¨àã¥âáï ä ©«:"
?define T_PASTE_WINDOW_BUTTON "<EFBFBD>à¥à¢ âì"
?define INFO_AFTER_COPY "Š®¯¨à®¢ ­¨¥ § ¢¥à襭®"
?define T_CANCEL_PASTE "Š®¯¨à®¢ ­¨¥ ¯à¥ªà é¥­®. <20> ¯ª  ᪮¯¨à®¢ ­  ­¥ ¯®«­®áâìî." ?define T_CANCEL_PASTE "Š®¯¨à®¢ ­¨¥ ¯à¥ªà é¥­®. <20> ¯ª  ᪮¯¨à®¢ ­  ­¥ ¯®«­®áâìî."
?define T_SELECT_APP_TO_OPEN_WITH "‚ë¡¥à¨â¥ ¯à®£à ¬¬ã ¤«ï ®âªàëâ¨ï ä ©« " ?define T_SELECT_APP_TO_OPEN_WITH "‚ë¡¥à¨â¥ ¯à®£à ¬¬ã ¤«ï ®âªàëâ¨ï ä ©« "
?define DEL_MORE_FILES_1 "íâ¨ í«¥¬¥­âë (" ?define DEL_MORE_FILES_1 "¢ë¡à ­­ë¥ í«¥¬¥­âë ("
?define DEL_MORE_FILES_2 " èâ.)?" ?define DEL_MORE_FILES_2 " èâ.)?"
#elif LANG_EST #elif LANG_EST
?define T_FILE "Fail" ?define T_FILE "Fail"
@ -59,12 +61,14 @@
?define NOT_CREATE_FOLDER "Kataloogi ei saa luua." ?define NOT_CREATE_FOLDER "Kataloogi ei saa luua."
?define NOT_CREATE_FILE "Faili ei saa luua." ?define NOT_CREATE_FILE "Faili ei saa luua."
?define ERROR_1 "Viga teegi laadimisel /rd/1/lib/box_lib.obj" ?define ERROR_1 "Viga teegi laadimisel /rd/1/lib/box_lib.obj"
?define T_PASTE_WINDOW "Kopeerin..." ?define T_PASTE_WINDOW_TITLE "Kopeerin..."
?define T_PASTE_WINDOW_TEXT "Kopeerin faili:" ?define T_PASTE_WINDOW_TEXT "Kopeerin faili:"
?define T_PASTE_WINDOW_BUTTON "Abort"
?define INFO_AFTER_COPY "Copy finished"
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely." ?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely."
?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file" ?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file"
?define DEL_MORE_FILES_1 "íâ¨ í«¥¬¥­âë (" ?define DEL_MORE_FILES_1 "selected items("
?define DEL_MORE_FILES_2 " èâ.)?" ?define DEL_MORE_FILES_2 " pcs.)?"
#else #else
?define T_FILE "File" ?define T_FILE "File"
?define T_TYPE "Type" ?define T_TYPE "Type"
@ -79,18 +83,20 @@
?define NOT_CREATE_FOLDER "Folder can not be created." ?define NOT_CREATE_FOLDER "Folder can not be created."
?define NOT_CREATE_FILE "File can not be created." ?define NOT_CREATE_FILE "File can not be created."
?define ERROR_1 "Error while loading library /rd/1/lib/box_lib.obj" ?define ERROR_1 "Error while loading library /rd/1/lib/box_lib.obj"
?define T_PASTE_WINDOW "Copying..." ?define T_PASTE_WINDOW_TITLE "Copying..."
?define T_PASTE_WINDOW_TEXT "Copying file:" ?define T_PASTE_WINDOW_TEXT "Copying file:"
?define T_PASTE_WINDOW_BUTTON "Abort"
?define INFO_AFTER_COPY "Copy finished"
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely." ?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely."
?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file" ?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file"
?define DEL_MORE_FILES_1 "íâ¨ í«¥¬¥­âë (" ?define DEL_MORE_FILES_1 "selected items("
?define DEL_MORE_FILES_2 " èâ.)?" ?define DEL_MORE_FILES_2 " pcs.)?"
#endif #endif
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
#define TITLE "Eolite File Manager v2.64" #define TITLE "Eolite File Manager v2.65"
#define ABOUT_TITLE "Eolite v2.64" #define ABOUT_TITLE "Eolite v2.65"
dword col_padding, col_selec, col_lpanel; dword col_padding, col_selec, col_lpanel;
int toolbar_buttons_x[7]={9,46,85,134,167,203}; int toolbar_buttons_x[7]={9,46,85,134,167,203};

View File

@ -1,14 +1,6 @@
//Leency 2008-2014
#ifdef LANG_RUS
?define INFO_AFTER_COPY "Š®¯¨à®¢ ­¨¥ § ¢¥à襭®"
#elif LANG_EST
?define INFO_AFTER_COPY "Copy finished"
#else
?define INFO_AFTER_COPY "Copy finished"
#endif
byte copy_to[4096]; byte copy_to[4096];
byte copy_from[4096];
byte cut_active=0; byte cut_active=0;
enum {NOCUT, CUT, COPY_PASTE_END}; enum {NOCUT, CUT, COPY_PASTE_END};
@ -53,25 +45,18 @@ void Copy(dword pcth, char cut)
free(buff_data); free(buff_data);
} }
void copyf_Draw_Progress(dword filename) {
DrawRectangle(0,0,WIN_COPY_W-5, 15,sc.work);
WriteText(5,8, 0x80, sc.work_text, T_PASTE_WINDOW_TEXT);
DrawBar(5, 26, WIN_COPY_W-10, 10, sc.work);
WriteText(5,26, 0x80, sc.work_text, filename);
}
void Paste() void Paste()
{ {
char copy_rezult; char copy_rezult;
byte copy_from[4096];
int j; int j;
int cnt = 0; int cnt = 0;
dword buf; dword buf;
buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1); buf = clipboard.GetSlotData(clipboard.GetSlotCount()-1);
if (DSDWORD[buf+4] != 3) return; if (DSDWORD[buf+4] != 3) return;
cnt = ESINT[buf+8]; cnt = ESINT[buf+8];
for (j = 0; j < cnt; j++) { for (j = 0; j < cnt; j++) {
strlcpy(#copy_from, j*4096+buf+10, 4096); strlcpy(#copy_from, j*4096+buf+10, 4096);
if (!copy_from) CopyExit(); if (!copy_from) CopyExit();
strcpy(#copy_to, #path); strcpy(#copy_to, #path);
@ -87,11 +72,13 @@ void Paste()
notify("Copy directory into itself is a bad idea..."); notify("Copy directory into itself is a bad idea...");
CopyExit(); CopyExit();
} }
DisplayCopyfForm();
if (copy_rezult = copyf(#copy_from,#copy_to)) if (copy_rezult = copyf(#copy_from,#copy_to))
{ {
Write_Error(copy_rezult); Write_Error(copy_rezult);
} }
else if (cut_active) else if (cut_active)
{ {
strcpy(#file_path, #copy_from); strcpy(#file_path, #copy_from);
@ -107,9 +94,40 @@ void Paste()
CopyExit(); CopyExit();
} }
void CopyExit() #define WIN_COPY_W 345
#define WIN_COPY_H 80
proc_info Copy_Form;
void DisplayCopyfForm()
{ {
switch(CheckEvent())
{
case evButton:
notify(T_CANCEL_PASTE);
CopyExit();
break;
case evReDraw:
DefineAndDrawWindow(Form.left+Form.width-200,Form.top+90,WIN_COPY_W,GetSkinHeight()+WIN_COPY_H,0x34,sc.work,T_PASTE_WINDOW_TITLE);
GetProcessInfo(#Copy_Form, SelfInfo);
WriteText(45, 11, 0x80, sc.work_text, T_PASTE_WINDOW_TEXT);
DrawFlatButton(Copy_Form.cwidth - 90, Copy_Form.cheight - 32, 80, 22, 10, sc.work_button, T_PASTE_WINDOW_BUTTON);
DrawBar(8, 10, 32, 32, 0xFFFfff);
break;
}
}
void CopyExit() {
action_buf = COPY_PASTE_END; action_buf = COPY_PASTE_END;
ActivateWindow(GetProcessSlot(Form.ID)); ActivateWindow(GetProcessSlot(Form.ID));
ExitProcess(); ExitProcess();
} }
void copyf_Draw_Progress(dword copying_filename) {
if (Copy_Form.cwidth==0) return;
DisplayCopyfForm();
Put_icon(copying_filename+strrchr(copying_filename,'.'), 16, 19, 0xFFFfff, 0);
DrawBar(45, 29, Copy_Form.cwidth-40, 10, sc.work);
WriteText(45, 29, 0x80, sc.work_text, copying_filename);
}

View File

@ -170,7 +170,7 @@ void properties_dialog()
if (selected_count) if (selected_count)
{ {
Put_icon('', 18, 20, 0xFFFfff, 0); Put_icon('', 18, 19, 0xFFFfff, 0);
strcpy(#folder_info, SET_6); strcpy(#folder_info, SET_6);
strcat(#folder_info, itoa(file_count)); strcat(#folder_info, itoa(file_count));
strcat(#folder_info, SET_7); strcat(#folder_info, SET_7);
@ -186,9 +186,9 @@ void properties_dialog()
else else
{ {
if ( file_info_general.isfolder ) if ( file_info_general.isfolder )
Put_icon("<DIR>", 18, 20, 0xFFFfff, 0); Put_icon("<DIR>", 18, 19, 0xFFFfff, 0);
else else
Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 20, 0xFFFfff, 0); Put_icon(#file_name2+strrchr(#file_name2,'.'), 18, 19, 0xFFFfff, 0);
WriteText(50, 13, 0x80, 0x000000, PR_T_NAME); WriteText(50, 13, 0x80, 0x000000, PR_T_NAME);
edit_box_draw stdcall (#file_name_ed); edit_box_draw stdcall (#file_name_ed);