char path_to_file[PATHLEN]; char file_name2[PATHLEN]; edit_box file_name_ed = {230,59,32,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(file_name2)-2,#file_name2,NULL, 0b,2,2}; edit_box path_to_file_ed = {160,120,79,0xffffff,0x94AECE,0xFFFfff,0xffffff,2,sizeof(path_to_file)-2,#path_to_file,NULL, 0b,2,2}; BDVK file_info_general; BDVK file_info_dirsize; bool apply_question_active; DIR_SIZE more_files_count; DIR_SIZE dir_size; checkbox ch_read_only = { PR_T_ONLY_READ, NULL }; checkbox ch_hidden = { PR_T_HIDDEN, NULL }; checkbox ch_system = { PR_T_SYSTEM, NULL }; void SetPropertiesFile(dword cur_file, bdvk_pointer) { GetFileInfo(cur_file, bdvk_pointer); ESI = bdvk_pointer; ESI.BDVK.readonly = ch_read_only.checked; ESI.BDVK.hidden = ch_hidden.checked; ESI.BDVK.system = ch_system.checked; SetFileInfo(cur_file, bdvk_pointer); } void SetPropertiesDir(dword way) { dword dirbuf, fcount, i, filename; dword cur_file; if (dir_exists(way)) { cur_file = malloc(PATHLEN); GetDir(#dirbuf, #fcount, way, DIRS_ONLYREAL); for (i=0; i1) || (streq(path, "/kolibrios")) || (streq(path, "/sys")) show_date = true; if (getSelectedCount()) show_date = false; DefineAndDrawWindow(Form.left + 150,150,315,show_date*60+300+skin_h,0x34,sc.work,WINDOW_TITLE_PROPERTIES,0); GetProcessInfo(#pform, SelfInfo); DrawStandartCaptButton(pform.cwidth - 96, pform.cheight-34, B_CLOSE, T_CLOSE); DrawStandartCaptButton(pform.cwidth -208, pform.cheight-34, B_APPLY, T_APPLY); WriteText(10, 78, 0x90, sc.work_text, PR_T_DEST); edit_box_draw stdcall (#path_to_file_ed); if (getSelectedCount()) { PropertiesDrawIcon(NULL, ""); sprintf(#folder_info,T_FILES_FOLDERS,more_files_count.files,more_files_count.folders); WriteText(file_name_ed.left+4, 30, 0x90, sc.work_text, #folder_info); sprintf(#size_lbl,T_PROP_SIZE,ConvertSize64(more_files_count.bytes, more_files_count.bytes>>32),more_files_count.bytes); WriteText(10, 97, 0x90, sc.work_text, #size_lbl); } else { if ( file_info_general.isfolder ) PropertiesDrawIcon(NULL, ""); else { sprintf(#temp_path,"%s/%s",path,#file_name2); ext1 = strrchr(#file_name2,'.'); if (ext1) ext1 += #file_name2; PropertiesDrawIcon(#temp_path, ext1); } WriteText(file_name_ed.left, file_name_ed.top-15, 0x80, sc.work_text, PR_T_NAME); DrawEditBox(#file_name_ed); if (!itdir) { sprintf(#size_lbl,T_PROP_SIZE,ConvertSize64(file_info_general.sizelo, file_info_general.sizehi),file_info_general.sizelo); } else { sprintf(#folder_info,T_FILES_FOLDERS,dir_size.files,dir_size.folders); WriteText(10, 117, 0x90, sc.work_text, PR_T_CONTAINS); WriteText(120, 117, 0x90, sc.work_text, #folder_info); sprintf(#size_lbl,T_PROP_SIZE,ConvertSize64(dir_size.bytes, dir_size.bytes_high),dir_size.bytes); } WriteText(10, 99, 0x90, sc.work_text, #size_lbl); } if (show_date) { WriteTextLines(10, 136, 0x90, sc.work_text, CREATED_OPENED_MODIFIED, 20); DrawDateTime(120, 136, sc.work_text, #file_info_general.datecreate, #file_info_general.timecreate); DrawDateTime(120, 156, sc.work_text, #file_info_general.datelastaccess, #file_info_general.timelastaccess); DrawDateTime(120, 176, sc.work_text, #file_info_general.datelastedit, #file_info_general.timelastedit); } DrawFrame(10, y.set(pform.cheight - 143), -10*2 + pform.cwidth - 2, 92, FLAGS); ch_read_only.draw(24, y.inc(18)); ch_hidden.draw(24, y.inc(24)); ch_system.draw(24, y.inc(24)); if (apply_question_active) ShowConfirmQuestionPopin(); } void PropertiesDrawIcon(dword file_path, extension) { int icon_n = ini_icons.get(file_path, extension, 32); draw_icon_32(12, 22, sc.work, icon_n); } void EventApplyProperties() { if (getSelectedCount()) || (itdir) { ShowConfirmQuestionPopin(); } else { SetProperties(SET_PROPERTIES_SINGLE_FILE); } }