forked from KolibriOS/kolibrios
Eolite 2.35: Insert selection
git-svn-id: svn://kolibrios.org@4897 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
2f985ba4ca
commit
5d5e189737
@ -82,8 +82,8 @@
|
|||||||
|
|
||||||
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
|
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
|
||||||
|
|
||||||
#define TITLE "Eolite File Manager v2.31"
|
#define TITLE "Eolite File Manager v2.35"
|
||||||
#define ABOUT_TITLE "Eolite v2.31"
|
#define ABOUT_TITLE "Eolite v2.35"
|
||||||
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};
|
||||||
@ -115,7 +115,7 @@ proc_info Form;
|
|||||||
system_colors sc;
|
system_colors sc;
|
||||||
mouse m;
|
mouse m;
|
||||||
int mouse_dd, scroll_used, scroll_size, sorting_arrow_x, kolibrios_drive;
|
int mouse_dd, scroll_used, scroll_size, sorting_arrow_x, kolibrios_drive;
|
||||||
dword buf, off;
|
dword buf;
|
||||||
dword file_mas[6898];
|
dword file_mas[6898];
|
||||||
int j, i;
|
int j, i;
|
||||||
int action_buf;
|
int action_buf;
|
||||||
@ -158,6 +158,7 @@ void SetAppColors()
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
word key, id, can_show, can_select, m_selected;
|
word key, id, can_show, can_select, m_selected;
|
||||||
|
dword selected_offset;
|
||||||
randomize();
|
randomize();
|
||||||
rand_n = random(40);
|
rand_n = random(40);
|
||||||
|
|
||||||
@ -430,8 +431,10 @@ void main()
|
|||||||
Del_Form();
|
Del_Form();
|
||||||
break;
|
break;
|
||||||
case 185: //ins
|
case 185: //ins
|
||||||
add_to_mark(#file_path);
|
//add_to_mark(#file_path);
|
||||||
//notify("'Eolite\nFile was added to copy queue' -tI");
|
selected_offset = file_mas[files.current+files.first]*304 + buf+32 + 7;
|
||||||
|
if (ESBYTE[selected_offset]) ESBYTE[selected_offset]=0; else ESBYTE[selected_offset] = 1;
|
||||||
|
List_Current(1);
|
||||||
break;
|
break;
|
||||||
case 050...059: //F1-F10
|
case 050...059: //F1-F10
|
||||||
FnProcess(key-49);
|
FnProcess(key-49);
|
||||||
@ -595,10 +598,11 @@ void List_ReDraw()
|
|||||||
|
|
||||||
void Line_ReDraw(dword color, filenum){
|
void Line_ReDraw(dword color, filenum){
|
||||||
dword text_col=0,
|
dword text_col=0,
|
||||||
name_len=0,
|
|
||||||
attr,
|
|
||||||
ext1,
|
ext1,
|
||||||
|
file_offet,
|
||||||
|
file_name_off,
|
||||||
y=filenum*files.line_h+files.y;
|
y=filenum*files.line_h+files.y;
|
||||||
|
BDVK file;
|
||||||
if (filenum==-1) return;
|
if (filenum==-1) return;
|
||||||
DrawBar(files.x,y,3,files.line_h,color);
|
DrawBar(files.x,y,3,files.line_h,color);
|
||||||
DrawBar(files.x+19,y,files.w-19,files.line_h,color);
|
DrawBar(files.x+19,y,files.w-19,files.line_h,color);
|
||||||
@ -606,36 +610,40 @@ void Line_ReDraw(dword color, filenum){
|
|||||||
if (files.line_h>18) DrawBar(files.x+3,y+18,16,files.line_h-18,color);
|
if (files.line_h>18) DrawBar(files.x+3,y+18,16,files.line_h-18,color);
|
||||||
if (files.line_h>15) DrawBar(files.x+3,y,16,files.line_h-15,color);
|
if (files.line_h>15) DrawBar(files.x+3,y,16,files.line_h-15,color);
|
||||||
|
|
||||||
off=file_mas[filenum+files.first]*304 + buf+72;
|
file_offet = file_mas[filenum+files.first]*304 + buf+32;
|
||||||
attr = ESDWORD[off - 40];
|
file.attr = ESDWORD[file_offet];
|
||||||
|
file.selected = ESBYTE[file_offet+7];
|
||||||
|
file.sizelo = ESDWORD[file_offet+32];
|
||||||
|
file_name_off = file_offet+40;
|
||||||
|
|
||||||
if (! TestBit(attr, 4) ) //file or folder?
|
if (! TestBit(file.attr, 4) ) //file or folder?
|
||||||
{
|
{
|
||||||
Put_icon(off+_strrchr(off,'.'), files.x+3, files.line_h/2-7+y, color, 0);
|
Put_icon(file_name_off+_strrchr(file_name_off,'.'), files.x+3, files.line_h/2-7+y, color, 0);
|
||||||
WriteText(7-strlen(ConvertSize(ESDWORD[off-8]))*6+onLeft(75,0),files.line_h-6/2+y,0x80,0,ConvertSize(ESDWORD[off-8])); //size
|
WriteText(7-strlen(ConvertSize(file.sizelo))*6+onLeft(75,0),files.line_h-6/2+y,0x80,0,ConvertSize(file.sizelo));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (strcmp("..",off)==0) ext1=".."; else ext1="<DIR>";
|
if (strcmp("..",file_name_off)==0) ext1=".."; else ext1="<DIR>";
|
||||||
Put_icon(ext1, files.x+3, files.line_h/2-7+y, color, 0);
|
Put_icon(ext1, files.x+3, files.line_h/2-7+y, color, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( TestBit(attr, 1) ) || ( TestBit(attr, 2) ) text_col=0xA6A6B7; //system or hiden?
|
if (TestBit(file.attr, 1)) || (TestBit(file.attr, 2)) text_col=0xA6A6B7; //system or hiden?
|
||||||
if (color!=0xFFFfff)
|
if (color!=0xFFFfff)
|
||||||
{
|
{
|
||||||
itdir = TestBit(attr, 4);
|
itdir = TestBit(file.attr, 4);
|
||||||
strcpy(#file_name, off);
|
strcpy(#file_name, file_name_off);
|
||||||
strcpy(#file_path, #path);
|
strcpy(#file_path, #path);
|
||||||
strcat(#file_path, #file_name);
|
strcat(#file_path, #file_name);
|
||||||
if (text_col==0xA6A6B7) text_col=0xFFFFFF;
|
if (text_col==0xA6A6B7) text_col=0xFFFFFF;
|
||||||
}
|
}
|
||||||
|
if (file.selected) text_col=0xFF0000;
|
||||||
if (Form.width>=480)
|
if (Form.width>=480)
|
||||||
{
|
{
|
||||||
FileShow.start_x = files.x + 23;
|
FileShow.start_x = files.x + 23;
|
||||||
FileShow.font_color = text_col;
|
FileShow.font_color = text_col;
|
||||||
FileShow.area_size_x = Form.width - 380;
|
FileShow.area_size_x = Form.width - 380;
|
||||||
FileShow.text_pointer = off;
|
FileShow.text_pointer = file_name_off;
|
||||||
FileShow.start_y = files.line_h/2-3+y;
|
FileShow.start_y = files.text_y+y;
|
||||||
PathShow_prepare stdcall(#FileShow);
|
PathShow_prepare stdcall(#FileShow);
|
||||||
PathShow_draw stdcall(#FileShow);
|
PathShow_draw stdcall(#FileShow);
|
||||||
}
|
}
|
||||||
@ -685,16 +693,17 @@ void Open_Dir(dword dir_path, redraw){
|
|||||||
inline Sorting()
|
inline Sorting()
|
||||||
{
|
{
|
||||||
dword k=0, l=1;
|
dword k=0, l=1;
|
||||||
|
dword file_off;
|
||||||
int i;
|
int i;
|
||||||
if (!strcmp(#path,"/")) //do not sort
|
if (!strcmp(#path,"/")) //do not sort
|
||||||
{
|
{
|
||||||
FOR(k=1;k<files.count;k++;) file_mas[k]=k;
|
FOR(k=1;k<files.count;k++;) file_mas[k]=k;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FOR (j=files.count-1, off=files.count-1*304+buf+32; j>=0; j--, off-=304;) //files | folders
|
FOR (j=files.count-1, file_off=files.count-1*304+buf+32; j>=0; j--, file_off-=304;) //files | folders
|
||||||
{
|
{
|
||||||
if (!real_files_names_case) strttl(off+40);
|
if (!real_files_names_case) strttl(file_off+40);
|
||||||
if (TestBit(ESDWORD[off],4)) //directory?
|
if (TestBit(ESDWORD[file_off],4)) //directory?
|
||||||
{
|
{
|
||||||
file_mas[k]=j;
|
file_mas[k]=j;
|
||||||
k++;
|
k++;
|
||||||
|
Loading…
Reference in New Issue
Block a user