Eolite 1.90

fixed bug with crashing Eolite, while opening menu
fixed list redraw while paste single file
copy, cut, paste added to file menu
text shadow in menu

git-svn-id: svn://kolibrios.org@3695 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2013-06-21 22:49:43 +00:00
parent 703bc20999
commit bd89ff2844
3 changed files with 60 additions and 34 deletions

View File

@ -1,7 +1,7 @@
//Leency & Veliant 2008-2013 //Leency & Veliant 2008-2013
//GNU GPL licence. //GNU GPL licence.
//êîïèðîâàòü ÷åðåç ïîòîê //êîïèðîâàòü ÷åðåç ïîòîê
//libraries //libraries
#define MEMSIZE 0xA0000 #define MEMSIZE 0xA0000
@ -22,8 +22,8 @@
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
#define TITLE "Eolite File Manager v1.89" #define TITLE "Eolite File Manager v1.90"
#define ABOUT_TITLE "Eolite v1.89" #define ABOUT_TITLE "Eolite v1.90"
dword col_work = 0xE4DFE1; dword col_work = 0xE4DFE1;
dword col_border = 0x9098B0; //A0A0B8; //0x819FC5; dword col_border = 0x9098B0; //A0A0B8; //0x819FC5;
dword col_padding = 0xC8C9C9; dword col_padding = 0xC8C9C9;
@ -59,15 +59,15 @@ edit_box edit2= {250,213,80,0xFFFFCC,0x94AECE,0xFFFFCC,0xffffff,0,248,#file_name
PathShow_data PathShow = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, #path, #temp, 0}; PathShow_data PathShow = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, #path, #temp, 0};
PathShow_data FileShow = {0, 56,215, 6, 100, 0, 0, 0x0, 0xFFFfff, #file_name, #temp, 0}; PathShow_data FileShow = {0, 56,215, 6, 100, 0, 0, 0x0, 0xFFFfff, #file_name, #temp, 0};
#include "include\copypaste.h"
#include "include\some_code.h" #include "include\some_code.h"
#include "include\about_dialog.h"
#include "include\sorting.h" #include "include\sorting.h"
#include "include\icons_f.h" #include "include\icons_f.h"
#include "include\ini.h" #include "include\ini.h"
#include "include\left_panel.h" #include "include\left_panel.h"
#include "include\history.h" #include "include\history.h"
#include "include\file_menu.h" #include "include\file_menu.h"
#include "include\copypaste.h" #include "include\about_dialog.h"
void main() void main()
{ {
@ -84,7 +84,9 @@ void main()
if (path[strlen(#path)-1]!='/') chrcat(#path, '/'); //add "/" to the end of the string if (path[strlen(#path)-1]!='/') chrcat(#path, '/'); //add "/" to the end of the string
} }
else else
{
strcpy(#path, "/rd/1/"); strcpy(#path, "/rd/1/");
}
Open_Dir(#path,ONLY_OPEN); Open_Dir(#path,ONLY_OPEN);
SetEventMask(0x27); SetEventMask(0x27);
loop() switch(WaitEvent()) loop() switch(WaitEvent())
@ -112,11 +114,19 @@ void main()
if (!m.lkm) && (!m.pkm) && (can_select) if (!m.lkm) && (!m.pkm) && (can_select)
{ {
can_select = 0; can_select = 0;
if (m.y<57) break; if (m.y>=57)
{
id = m.y - 57 / files.line_h; id = m.y - 57 / files.line_h;
if (id!=m_selected) {can_show=0; break;} if (id!=m_selected)
if (files.current!=id) List_Current(id-files.current); {
else Open(); can_show=0;
break;
}
if (files.current!=id)
List_Current(id-files.current);
else
Open();
}
}; };
// } select/open file // } select/open file
@ -124,14 +134,15 @@ void main()
if (!m.pkm) && (!m.lkm) && (can_show) if (!m.pkm) && (!m.lkm) && (can_show)
{ {
can_show = 0; can_show = 0;
if (m.y<57) break; if (m.y>=57)
{
SwitchToAnotherThread(); SwitchToAnotherThread();
CreateThread(#FileMenu,#menu_stak); CreateThread(#FileMenu,#menu_stak);
}
break; break;
} }
// } file menu // } file menu
if (m.vert) if (m.vert)
{ {
files.MouseScroll(m.vert); files.MouseScroll(m.vert);
@ -444,8 +455,8 @@ void List_Current(int cur)
void List_ReDraw() void List_ReDraw()
{ {
int paint_y; int paint_y;
//åñëè ìû â êîíöå ñïèñêà ôàéëîâ ðàçâåðí¸ì îêíî ïîÿâÿòüñÿ ïóñòÿå áåëûå êíîïêè //åñëè ìû â êîíöå ñïèñêà ôàéëîâ ðàçâåðí¸ì îêíî ïîÿâÿòüñÿ ïóñòÿå áåëûå êíîïêè
//ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì //ýòî åñëè âûäåëåíèå ïîñëå ñõëîïûâàíèÿ îêíà çà êàäðîì
if (files.count-files.first<files.visible) || (files.current>files.visible-1) if (files.count-files.first<files.visible) || (files.current>files.visible-1)
{ files.first=files.count-files.visible; files.current=files.visible-1; } { files.first=files.count-files.visible; files.current=files.visible-1; }

View File

@ -55,5 +55,6 @@ void Paste()
ActivateWindow(GetProcessSlot(Form.ID)); ActivateWindow(GetProcessSlot(Form.ID));
SendWindowMessage(evKey, 54); SendWindowMessage(evKey, 54);
SelectFile(#copy_to+strrchr(#copy_to,'/')); SelectFile(#copy_to+strrchr(#copy_to,'/'));
pause(20);
ExitProcess(); ExitProcess();
} }

View File

@ -5,21 +5,26 @@ char *captions[] = {
"Open with...", "CrlEnt", "Open with...", "CrlEnt",
"View as text", "F3", "View as text", "F3",
"View as HEX", "F4", "View as HEX", "F4",
//
"Copy", "Crl+C",
"Cut", "Crl+X",
"Paste", "Crl+V",
"Rename", "F2", "Rename", "F2",
"Delete", "Del", "Delete", "Del",
//"Refresh", "F5", //"Refresh", "F5",
0}; 0, 0};
proc_info MenuForm;
void FileMenu() void FileMenu()
{ {
proc_info MenuForm;
mouse mm; mouse mm;
word id, key, slot; word id, key, slot, index;
int ccount=0, cur, newi, linew=10, lineh=18, texty; int ccount=0, cur, newi, linew=10, lineh=18, texty;
for (i=0; captions[i]!=0; i+=2) for (index=0; captions[index]!=0; index+=2)
{ {
ccount++; ccount++;
if (strlen(captions[i])>linew) linew = strlen(captions[i]); if (strlen(captions[index])>linew) linew = strlen(captions[index]);
} }
linew = linew + 3 * 6 + 50; linew = linew + 3 * 6 + 50;
texty = lineh/2-4; texty = lineh/2-4;
@ -45,12 +50,14 @@ void FileMenu()
id=GetButtonID(); id=GetButtonID();
if (id==100) Open(); if (id==100) Open();
if (id==101) notify("Not compleated yet"); if (id==101) notify("Not compleated yet");
if (id==102) FnProcess(3); if (id==102) FnProcess(3); //F3
if (id==103) FnProcess(4); if (id==103) FnProcess(4); //F4
if (id==104) FnProcess(2); if (id==104) Copy(#file_path, NOCUT);
if (id==105) Del_Form(); if (id==105) Copy(#file_path, CUT);
if (id==106) FnProcess(5); if (id==106) CreateThread(#Paste,#copy_stak);
SwitchToAnotherThread(); if (id==107) FnProcess(2);
if (id==108) Del_Form();
if (id==109) FnProcess(5);
ExitProcess(); ExitProcess();
break; break;
@ -61,7 +68,6 @@ void FileMenu()
case evReDraw: _MENU_DRAW: case evReDraw: _MENU_DRAW:
DefineAndDrawWindow(m.x+Form.left+5,m.y+Form.top+GetSkinHeight(),linew+3,ccount*lineh+6,0x01, 0, 0, 0x01fffFFF); DefineAndDrawWindow(m.x+Form.left+5,m.y+Form.top+GetSkinHeight(),linew+3,ccount*lineh+6,0x01, 0, 0, 0x01fffFFF);
GetProcessInfo(#MenuForm, SelfInfo); GetProcessInfo(#MenuForm, SelfInfo);
/* _PutImage(1,23, 16,44, #factions); //èêîíêè */
DrawRectangle(0,0,linew+1,ccount*lineh+2,col_border); DrawRectangle(0,0,linew+1,ccount*lineh+2,col_border);
DrawBar(1,1,linew,1,0xFFFfff); DrawBar(1,1,linew,1,0xFFFfff);
PutShadow(linew+2,1,1,ccount*lineh+2,0,2); PutShadow(linew+2,1,1,ccount*lineh+2,0,2);
@ -70,13 +76,21 @@ void FileMenu()
PutShadow(2,ccount*lineh+4,linew+1,1,0,1); PutShadow(2,ccount*lineh+4,linew+1,1,0,1);
_ITEMS_DRAW: _ITEMS_DRAW:
for (i=0; captions[i*2]!=0; i++) for (index=0; captions[index*2]!=0; index++)
{ {
DefineButton(1,i*lineh+1,linew,lineh-1,i+100+BT_HIDE+BT_NOFRAME,0xFFFFFF); DefineButton(1,index*lineh+1,linew,lineh-1,index+100+BT_HIDE+BT_NOFRAME,0xFFFFFF);
DrawBar(1,i*lineh+2,1,lineh,0xFFFfff); DrawBar(1,index*lineh+2,1,lineh,0xFFFfff);
if (i==cur) DrawBar(2,i*lineh+2,linew-1,lineh,0xFFFfff); else DrawBar(2,i*lineh+2,linew-1,lineh,col_work); if (index==cur)
WriteText(7,i*lineh+texty+2,0x80,0x000000,captions[i*2]); {
WriteText(-strlen(captions[i*2+1])*6-6+linew,i*lineh+texty+2,0x80,0x999999,captions[i*2+1]); DrawBar(2,index*lineh+2,linew-1,lineh,0xFFFfff);
}
else
{
DrawBar(2,index*lineh+2,linew-1,lineh,col_work);
WriteText(8,index*lineh+texty+3,0x80,0xf2f2f2,captions[index*2]);
}
WriteText(7,index*lineh+texty+2,0x80,0x000000,captions[index*2]);
WriteText(-strlen(captions[index*2+1])*6-6+linew,index*lineh+texty+2,0x80,0x888888,captions[index*2+1]);
} }
} }
} }