forked from KolibriOS/kolibrios
Eolite 4.45: improved file selection
git-svn-id: svn://kolibrios.org@7993 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
04dc8faf5e
commit
ef72ee9094
@ -187,7 +187,7 @@ void handle_param()
|
|||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
dword id;
|
dword id;
|
||||||
byte count_sl = 0;
|
int old_cur_y;
|
||||||
|
|
||||||
rand_n = random(80);
|
rand_n = random(80);
|
||||||
|
|
||||||
@ -236,24 +236,29 @@ void main()
|
|||||||
|
|
||||||
ProceedMouseGestures();
|
ProceedMouseGestures();
|
||||||
|
|
||||||
GetKeyModifier();
|
if (mouse.vert)
|
||||||
if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL)
|
{
|
||||||
if (mouse.key&MOUSE_LEFT) && (mouse.up) {
|
if (files.MouseScroll(mouse.vert)) List_ReDraw();
|
||||||
files.ProcessMouse(mouse.x, mouse.y);
|
|
||||||
EventChooseFile(files.cur_y);
|
|
||||||
List_ReDraw();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (files.MouseOver(mouse.x, mouse.y))
|
if (files.MouseOver(mouse.x, mouse.y))
|
||||||
{
|
{
|
||||||
//select file
|
//select file
|
||||||
if (mouse.key&MOUSE_LEFT) && (mouse.up)
|
if (mouse.key&MOUSE_LEFT) && (mouse.up)
|
||||||
{
|
{
|
||||||
if (files.ProcessMouse(mouse.x, mouse.y)) {
|
GetKeyModifier();
|
||||||
|
old_cur_y = files.cur_y;
|
||||||
|
files.ProcessMouse(mouse.x, mouse.y);
|
||||||
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
||||||
|
EventChooseFilesRange(old_cur_y, files.cur_y);
|
||||||
|
} else if (key_modifier&KEY_LCTRL) || (key_modifier&KEY_RCTRL) {
|
||||||
|
EventChooseFile(files.cur_y);
|
||||||
|
DrawStatusBar();
|
||||||
List_ReDraw();
|
List_ReDraw();
|
||||||
} else {
|
} else {
|
||||||
if (mouse.y - files.y / files.item_h + files.first == files.cur_y) Open(0);
|
if (old_cur_y == files.cur_y) Open(0);
|
||||||
|
else List_ReDraw();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//file menu
|
//file menu
|
||||||
@ -262,13 +267,7 @@ void main()
|
|||||||
if (files.ProcessMouse(mouse.x, mouse.y)) List_ReDraw();
|
if (files.ProcessMouse(mouse.x, mouse.y)) List_ReDraw();
|
||||||
if (getElementSelectedFlag(files.cur_y) == false) selected_count = 0; //on redraw selection would be flashed, see [L001]
|
if (getElementSelectedFlag(files.cur_y) == false) selected_count = 0; //on redraw selection would be flashed, see [L001]
|
||||||
EventShowListMenu();
|
EventShowListMenu();
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (mouse.vert)
|
|
||||||
{
|
|
||||||
if (files.MouseScroll(mouse.vert)) List_ReDraw();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -417,14 +416,9 @@ void main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
if (key_modifier&KEY_LSHIFT) || (key_modifier&KEY_RSHIFT) {
|
||||||
if (key_scancode == SCAN_CODE_DOWN) {
|
old_cur_y = files.cur_y;
|
||||||
EventChooseFile(files.cur_y);
|
files.ProcessKey(key_scancode);
|
||||||
files.KeyDown();
|
EventChooseFilesRange(old_cur_y, files.cur_y);
|
||||||
} else if (key_scancode == SCAN_CODE_UP) {
|
|
||||||
EventChooseFile(files.cur_y);
|
|
||||||
files.KeyUp();
|
|
||||||
} else break;
|
|
||||||
List_ReDraw();
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -479,10 +473,10 @@ void main()
|
|||||||
else Open(1);
|
else Open(1);
|
||||||
break;
|
break;
|
||||||
case SCAN_CODE_KEY_A:
|
case SCAN_CODE_KEY_A:
|
||||||
EventSelectAllFiles(true);
|
EventChooseAllFiles(true);
|
||||||
break;
|
break;
|
||||||
case SCAN_CODE_KEY_U: //unselect all files
|
case SCAN_CODE_KEY_U: //unselect all files
|
||||||
EventSelectAllFiles(false);
|
EventChooseAllFiles(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -579,7 +573,7 @@ void draw_window()
|
|||||||
llist_copy(#files_active, #files);
|
llist_copy(#files_active, #files);
|
||||||
strcpy(#active_path, #path);
|
strcpy(#active_path, #path);
|
||||||
DrawStatusBar();
|
DrawStatusBar();
|
||||||
if (selected_count==0) Open_Dir(#path,ONLY_OPEN); //if there are no selected files -> refresh folder [L001]
|
if (!selected_count) Open_Dir(#path,ONLY_OPEN); //if there are no selected files -> refresh folder [L001]
|
||||||
DrawFilePanels();
|
DrawFilePanels();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -902,7 +896,7 @@ void Del_Form()
|
|||||||
{
|
{
|
||||||
byte f_count[128];
|
byte f_count[128];
|
||||||
int dform_x = files.w - 220 / 2 + files.x;
|
int dform_x = files.w - 220 / 2 + files.x;
|
||||||
if (selected_count==0) && (!strncmp(#file_name,"..",2)) return;
|
if (!selected_count) && (!strncmp(#file_name,"..",2)) return;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!files.count) return;
|
if (!files.count) return;
|
||||||
@ -1161,14 +1155,6 @@ void ChangeActivePanel()
|
|||||||
DrawFilePanels();
|
DrawFilePanels();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventSelectAllFiles(dword state)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i=0; i<files.count; i++) setElementSelectedFlag(i, state);
|
|
||||||
List_ReDraw();
|
|
||||||
DrawStatusBar();
|
|
||||||
}
|
|
||||||
|
|
||||||
void EventSelectFileByKeyPress()
|
void EventSelectFileByKeyPress()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
@ -1342,7 +1328,28 @@ void EventChooseFile(int _id)
|
|||||||
} else {
|
} else {
|
||||||
setElementSelectedFlag(_id, true);
|
setElementSelectedFlag(_id, true);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void EventChooseFilesRange(int _start, _end)
|
||||||
|
{
|
||||||
|
if (_start > _end) _start >< _end;
|
||||||
|
if (_end - _start > 1) list_full_redraw = true;
|
||||||
|
while (_start < _end) {
|
||||||
|
EventChooseFile(_start);
|
||||||
|
_start++;
|
||||||
|
}
|
||||||
|
DrawStatusBar();
|
||||||
|
List_ReDraw();
|
||||||
|
}
|
||||||
|
|
||||||
|
void EventChooseAllFiles(dword state)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i=0; i<files.count; i++) setElementSelectedFlag(i, state);
|
||||||
|
List_ReDraw();
|
||||||
DrawStatusBar();
|
DrawStatusBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
stop:
|
stop:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#define TITLE "Eolite File Manager 4.41"
|
#define TITLE "Eolite File Manager 4.45"
|
||||||
#define ABOUT_TITLE "EOLITE 4.41"
|
#define ABOUT_TITLE "EOLITE 4.45"
|
||||||
|
|
||||||
#ifdef LANG_RUS
|
#ifdef LANG_RUS
|
||||||
?define T_FILE "” ©«"
|
?define T_FILE "” ©«"
|
||||||
|
Loading…
Reference in New Issue
Block a user