From 78e4a2cb8a6de88f197fb9ff104f87843f500526 Mon Sep 17 00:00:00 2001 From: Serhii Sakhno Date: Sun, 22 Feb 2015 18:42:51 +0000 Subject: [PATCH] Eolite 1.53: file properties window git-svn-id: svn://kolibrios.org@5447 a494cfbc-eb01-0410-851d-a64ba20cac60 --- programs/cmm/eolite/Eolite.c | 11 +- programs/cmm/eolite/include/menu.h | 3 + programs/cmm/eolite/include/properties.h | 163 +++++++++++++++++++++++ 3 files changed, 174 insertions(+), 3 deletions(-) create mode 100644 programs/cmm/eolite/include/properties.h diff --git a/programs/cmm/eolite/Eolite.c b/programs/cmm/eolite/Eolite.c index 1f9867c855..6cafa6cae3 100644 --- a/programs/cmm/eolite/Eolite.c +++ b/programs/cmm/eolite/Eolite.c @@ -83,8 +83,8 @@ enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir -#define TITLE "Eolite File Manager v2.5" -#define ABOUT_TITLE "Eolite v2.52" +#define TITLE "Eolite File Manager v2.53" +#define ABOUT_TITLE "Eolite v2.53" dword col_padding, col_selec, col_lpanel; int toolbar_buttons_x[7]={9,46,85,134,167,203}; @@ -138,7 +138,7 @@ PathShow_data FileShow = {0, 56,215, 6, 100, 0, 0, 0x0, 0xFFFfff, #file_name, #t #include "include\menu.h" #include "include\about.h" #include "include\settings.h" - +#include "include\properties.h" void main() { @@ -473,6 +473,7 @@ void menu_action(dword id) if (id==207) FnProcess(2); if (id==108) Del_Form(); if (id==109) FnProcess(5); + if (id==110) FnProcess(8); if (id==300) { FnProcess(5); List_ReDraw(); } } @@ -1002,6 +1003,10 @@ void FnProcess(char N) ShowMessage(NOT_CREATE_FILE, 150); } break; + case 8: + SwitchToAnotherThread(); + CreateThread(#properties_dialog,#about_stak+4092); + break; case 10: //F10 if (!active_settings) { diff --git a/programs/cmm/eolite/include/menu.h b/programs/cmm/eolite/include/menu.h index 86ec5a0c85..a23d38fd31 100644 --- a/programs/cmm/eolite/include/menu.h +++ b/programs/cmm/eolite/include/menu.h @@ -13,6 +13,7 @@ char *file_captions[] = { "Переименовать", "F2",207, "Удалить", "Del",108, "Обновить папку", "F5",109, + "Свойства", "",110, 0, 0, 0}; #elif LANG_EST char *file_captions[] = { @@ -26,6 +27,7 @@ char *file_captions[] = { "Nimeta №mber", "F2",207, "Kustuta", "Del",108, "Vфrskenda", "F5",109, + "Properties", "",110, 0, 0, 0}; #else char *file_captions[] = { @@ -39,6 +41,7 @@ char *file_captions[] = { "Rename", "F2",207, "Delete", "Del",108, "Refresh", "F5",109, + "Properties", "",110, 0, 0, 0}; #endif diff --git a/programs/cmm/eolite/include/properties.h b/programs/cmm/eolite/include/properties.h new file mode 100644 index 0000000000..5b902e1d71 --- /dev/null +++ b/programs/cmm/eolite/include/properties.h @@ -0,0 +1,163 @@ +#ifdef LANG_RUS + ?define PROP_TITLE "Свойства" + ?define BTN_CLOSE "Закрыть" + ?define SET_1 "Расположение" + ?define SET_2 "Размер" + ?define SET_3 "Создан" + ?define SET_4 "Открыт" + ?define SET_5 "Изменен" + ?define SET_6 "Файлов: " + ?define SET_7 " Папок: " + ?define SET_8 "Содержит " + ?define HIDDEN_T "Скрытый" + ?define SYSTEM_T "Системный" + ?define ONLY_READ_T "Только чтение" +#elif LANG_EST + ?define PROP_TITLE "Свойства" + ?define BTN_CLOSE "Закрыть" + ?define SET_1 "Расположение" + ?define SET_2 "Размер" + ?define SET_3 "Создан" + ?define SET_4 "Открыт" + ?define SET_5 "Изменен" + ?define SET_6 "Файлов: " + ?define SET_7 " Папок: " + ?define SET_8 "Содержит " + ?define HIDDEN_T "Скрытый" + ?define SYSTEM_T "Системный" + ?define ONLY_READ_T "Только чтение" +#else + ?define PROP_TITLE "Свойства" + ?define BTN_CLOSE "Закрыть" + ?define SET_1 "Расположение" + ?define SET_2 "Размер" + ?define SET_3 "Создан" + ?define SET_4 "Открыт" + ?define SET_5 "Изменен" + ?define SET_6 "Файлов: " + ?define SET_7 " Папок: " + ?define SET_8 "Содержит " + ?define HIDDEN_T "Скрытый" + ?define SYSTEM_T "Системный" + ?define ONLY_READ_T "Только чтение" +#endif + +dword mouse_ddd2; +char path_to_file[4096]="\0"; +char file_name2[4096]="\0"; +edit_box file_name_ed = {100,30,5,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#file_name2,#mouse_ddd2, 1000000000000000b,2,2}; +edit_box path_to_file_ed = {100,100,27,0xffffff,0x94AECE,0x000000,0xffffff,2,4098,#path_to_file,#mouse_ddd2, 1000000000000000b,2,2}; +checkbox2 HIDDEN_chb = {10*65536+15, 115*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, HIDDEN_T, CH_FLAG_MIDDLE, 0}; +checkbox2 SYSTEM_chb = {90*65536+15, 115*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, SYSTEM_T, CH_FLAG_MIDDLE, 0}; +checkbox2 ONLY_READ_chb = {180*65536+15, 115*65536+15, 5, 0xffffff, 0x9098B0, 0x80000000, ONLY_READ_T, CH_FLAG_MIDDLE, 0}; + +int file_count, dir_count, size_dir; +char folder_info[200]; +BDVK file_info2; + +void GetSizeDir(dword way) +{ + dword dirbuf, fcount, i, filename; + char cur_file[4096]; + if (isdir(way)) + { + GetDir(#dirbuf, #fcount, way, DIRS_ONLYREAL); + for (i=0; i", 10, 5, sc.work, 0); + WriteText(10, 30, 0x80, 0x000000, SET_1); + edit_box_draw stdcall (#file_name_ed); + edit_box_draw stdcall (#path_to_file_ed); + WriteText(10, 47, 0x80, 0x000000, SET_2); + /*WriteText(10, 63, 0x80, 0x000000, SET_3); + if (!itdir) + { + WriteText(10, 78, 0x80, 0x000000, SET_4); + WriteText(10, 93, 0x80, 0x000000, SET_5); + }*/ + if (TestBit(file_info.attr, 0)) ONLY_READ_chb.flags = 110b; + if (TestBit(file_info.attr, 1)) HIDDEN_chb.flags = 110b; + if (TestBit(file_info.attr, 2)) SYSTEM_chb.flags = 110b; + if (!itdir) + { + WriteText(100, 47, 0x80, 0x000000, ConvertSize(file_info.sizelo)); + } + else + { + WriteText(10, 63, 0x80, 0x000000, SET_8); + GetSizeDir(#file_path); + strcat(#folder_info, SET_6); + strcat(#folder_info, itoa(file_count)); + strcat(#folder_info, SET_7); + strcat(#folder_info, itoa(dir_count)); + WriteText(100, 63, 0x80, 0x000000, #folder_info); + WriteText(100, 47, 0x80, 0x000000, ConvertSize(size_dir)); + } + check_box_draw stdcall (#HIDDEN_chb); + check_box_draw stdcall (#SYSTEM_chb); + check_box_draw stdcall (#ONLY_READ_chb); + } +} \ No newline at end of file