Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4048 → Rev 4049

/programs/cmm/eolite/Eolite.c
6,7 → 6,7
#endif
 
//libraries
#define MEMSIZE 0xA0000
#define MEMSIZE 0xD0000
#include "..\lib\kolibri.h"
#include "..\lib\strings.h"
#include "..\lib\mem.h"
38,6 → 38,7
?define T_PASTE_WINDOW "Š®¯¨àãî..."
?define T_PASTE_WINDOW_TEXT "Š®¯¨àã¥âáï ä ©«:"
?define T_CANCEL_PASTE "Š®¯¨à®¢ ­¨¥ ¯à¥ªà é¥­®.  ¯ª  ᪮¯¨à®¢ ­  ­¥ ¯®«­®áâìî."
?define T_SELECT_APP_TO_OPEN_WITH "‚ë¡¥à¨â¥ ¯à®£à ¬¬ã ¤«ï ®âªàëâ¨ï ä ©« "
#elif LANG_EST
?define T_FILE "Fail"
?define T_TYPE "Tüüp"
55,6 → 56,7
?define T_PASTE_WINDOW "Kopeerin..."
?define T_PASTE_WINDOW_TEXT "Kopeerin faili:"
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely."
?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file"
#else
?define T_FILE "File"
?define T_TYPE "Type"
72,12 → 74,13
?define T_PASTE_WINDOW "Copying..."
?define T_PASTE_WINDOW_TEXT "Copying file:"
?define T_CANCEL_PASTE "Copy process terminated. Folder copied incompletely."
?define T_SELECT_APP_TO_OPEN_WITH "Select application to open file"
#endif
 
enum {ONLY_SHOW, WITH_REDRAW, ONLY_OPEN}; //OpenDir
 
#define TITLE "Eolite File Manager v1.98.8"
#define ABOUT_TITLE "Eolite v1.98.8"
#define TITLE "Eolite File Manager v1.99"
#define ABOUT_TITLE "Eolite v1.99"
dword col_work = 0xE4DFE1;
dword col_border = 0x9098B0; //A0A0B8; //0x819FC5;
dword col_padding = 0xC8C9C9;
422,7 → 425,6
if (id==100) Open();
if (id==201)
{
pause(10);
SwitchToAnotherThread();
CreateThread(#OpenWith,#open_with_stak);
}
570,14 → 572,14
 
if (! TestBit(attr, 4) ) //file or folder?
{
Put_icon(off+_strrchr(off,'.'), files.line_h/2-7+y, color);
Put_icon(off+_strrchr(off,'.'), files.x+3, files.line_h/2-7+y, color);
WriteText(7-strlen(ConvertMemSize(ESDWORD[off-8]))*6+onLeft(75,0),files.line_h-6/2+y,0x80,0,ConvertMemSize(ESDWORD[off-8])); //size
}
else
if (!strcmp("..",off))
Put_icon("..", files.line_h/2-7+y, color);
Put_icon("..", files.x+3, files.line_h/2-7+y, color);
else
Put_icon("<DIR>", files.line_h/2-7+y, color);
Put_icon("<DIR>", files.x+3, files.line_h/2-7+y, color);
if ( TestBit(attr, 1) ) || ( TestBit(attr, 2) ) text_col=0xA6A6B7; //system or hiden?
if (color!=0xFFFfff)
{
/programs/cmm/eolite/include/icons.h
30,14 → 30,14
 
#include "imgs\icons.txt"
 
void Put_icon(dword extension, yy, fairing_color)
void Put_icon(dword extension, xx, yy, fairing_color)
{
int icon_n=0, i;
for (i=0; ext[i]!=0; i+=2;) if (!strcmp(extension, ext[i])) { icon_n = ext[i+1]; break; }
 
ficons_pal[0] = fairing_color;
PutPaletteImage(icon_n*16*15+#ficons,16,15,files.x+3,yy,8,#ficons_pal);
if (fairing_color!=0xFFFfff) IconFairing(icon_n, files.x+3, yy, fairing_color);
PutPaletteImage(icon_n*16*15+#ficons,16,15,xx,yy,8,#ficons_pal);
if (fairing_color!=0xFFFfff) IconFairing(icon_n, xx, yy, fairing_color);
if (icon_n<>17) && (strlen(extension)<9) WriteText(-strlen(extension)*3+Form.cwidth-120,yy+4,0x80,0,extension);
}
 
49,16 → 49,16
case 0...1: //file
case 3: //íàñòðîéêè
RIGHT_PAINT:
DrawBar(205,y,4,1,color);
DrawBar(206,y+1,3,1,color);
DrawBar(207,y+2,2,1,color);
PutPixel(208,y+3,color);
PutPixel(x+10,y,color);
PutPixel(x+11,y+1,color);
PutPixel(x+12,y+2,color);
PutPixel(x+13,y+3,color);
return;
case 2: //html
DrawBar(195,y,1,7,color);
DrawBar(196,y,1,6,color);
DrawBar(195,y+10,1,5,color);
DrawBar(196,y+11,1,4,color);
DrawBar(x,y,1,7,color);
DrawBar(x+1,y,1,6,color);
DrawBar(x,y+10,1,5,color);
DrawBar(x+1,y+11,1,4,color);
GOTO RIGHT_PAINT;
case 9: //inc
DrawBar(208,y,1,3,color);
75,7 → 75,7
PutPixel(209,y+5,color);
return;
case 10: //font
DrawBar(196,y+1,1,13,color);
DrawBar(x+1,y+1,1,13,color);
DrawBar(197,y+1,1,11,color);
DrawBar(198,y+1,1,10,color);
DrawBar(199,y+1,1,9,color);
104,42 → 104,42
PutPixel(210,y,color);
return;
case 16...17: //folder
DrawBar(195,y,1,15,color);
DrawBar(x,y,1,15,color);
DrawBar(203,y,8,2,color);
IF (filenum==17) PutPixel(206,y+1,0x1A7B17); //green arrow part
DrawBar(196,y+13,15,2,color);
PutPixel(196,y,color); //.òî÷êè
DrawBar(x+1,y+13,15,2,color);
PutPixel(x+1,y,color); //.òî÷êè
PutPixel(202,y,color);
PutPixel(210,y+2,color);
PutPixel(196,y+12,color);
PutPixel(x+1,y+12,color);
PutPixel(210,y+12,color);
return;
case 18: //êàðòðèäæ
DrawBar(195,y+11,1,2,color);
DrawBar(x,y+11,1,2,color);
DrawBar(210,y+11,1,2,color);
DrawBar(195,y+13,16,1,color);
DrawBar(x,y+13,16,1,color);
return;
case 24: //îáðàç
DrawBar(195,y,6,1,color);
DrawBar(195,y+1,4,1,color);
DrawBar(195,y+2,3,1,color);
DrawBar(195,y+3,2,2,color);
DrawBar(x,y,6,1,color);
DrawBar(x,y+1,4,1,color);
DrawBar(x,y+2,3,1,color);
DrawBar(x,y+3,2,2,color);
DrawBar(195,y+5,1,5,color);
DrawBar(x,y+5,1,5,color);
DrawBar(195,y+10,2,2,color);
DrawBar(195,y+12,3,1,color);
DrawBar(195,y+13,4,1,color);
DrawBar(195,y+14,6,1,color);
DrawBar(x,y+10,2,2,color);
DrawBar(x,y+12,3,1,color);
DrawBar(x,y+13,4,1,color);
DrawBar(x,y+14,6,1,color);
 
DrawBar(195+11,y,5,1,color);
DrawBar(195+13,y+1,3,1,color);
DrawBar(195+14,y+2,2,1,color);
DrawBar(195+15,y+3,1,2,color);
DrawBar(x+11,y,5,1,color);
DrawBar(x+13,y+1,3,1,color);
DrawBar(x+14,y+2,2,1,color);
DrawBar(x+15,y+3,1,2,color);
DrawBar(195+15,y+10,1,2,color);
DrawBar(195+14,y+12,2,1,color);
DrawBar(195+13,y+13,3,1,color);
DrawBar(195+11,y+14,5,1,color);
DrawBar(x+15,y+10,1,2,color);
DrawBar(x+14,y+12,2,1,color);
DrawBar(x+13,y+13,3,1,color);
DrawBar(x+11,y+14,5,1,color);
}
}
/programs/cmm/eolite/include/ini.h
13,31 → 13,20
char bukva[2];
int errornum, tj;
static dword buff, fsize;
//÷èòàåì ôàéë
if (onload==1)
{
free(buff);
if (!GetFile(#buff, #fsize, abspath("Eolite.ini"))) notify("Eolite.ini not found. Defaults will be used.");
}
//ïàðñèì åãî
for (tj=0; tj<fsize; tj++;)
{
bukva = ESBYTE[buff+tj];
switch (bukva)
{
case ';':
InfType=COMMENT;
break;
case '[':
InfType=SECTION;
section=NULL;
break;
case ']':
InfType=PARAM;
break;
case '=':
InfType=OPTION;
break;
case ';': InfType=COMMENT; break;
case '[': InfType=SECTION; section=NULL; break;
case ']': InfType=PARAM; break;
case '=': InfType=OPTION; break;
case 0x0a:
case 0x0d:
InfType=PARAM;
45,16 → 34,10
IF (!strcmp(#parametr,"LineHeight")) files.line_h = atoi(#option);
IF (!strcmp(#parametr,"ShowDeviceName")) show_dev_name=atoi(#option);
/*if (!strcmp(#section,"UserDirectories")) && (parametr) && (onload)
{
copystr(#parametr, #disk_list[disc_num].Item);
disc_num++;
}*/
IF (parametr) && (!strcmp(#file_name+strrchr(#file_name,'.'),#parametr)) && (!onload)
{
errornum=RunProgram(#option,#file_path);
IF (errornum<0) Write_Error(errornum); //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
IF (errornum<0) Write_Error(errornum);
return;
}
parametr=option=NULL;
68,7 → 51,8
if (file_path) && (!onload)
{
errornum=RunProgram(#file_path,NULL);
if (errornum<0) Write_Error(errornum); //åñëè îøèáî÷êà âûøëà ïðè çàïóñêå
if (errornum==-31) menu_action(201); else if (errornum<0) Write_Error(errornum);
return;
}
}
 
/programs/cmm/eolite/include/open_with.h
1,17 → 1,75
//Leency 2013
 
llist app_list;
struct app_list_string { char item[1024]; char icon; };
app_list_string app_paths[100];
 
int GetListOfPrograms()
{
byte section[32], parametr[32], option[256], InfType=0;
char bukva[2];
int tj, ti;
static dword buff, fsize;
 
debug("GetListOfPrograms()");
 
free(buff);
if (!GetFile(#buff, #fsize, abspath("Eolite.ini")))
{
notify("Eolite.ini not found. Don't know any programm.");
return -1;
}
 
for (tj=0; tj<fsize; tj++;)
{
bukva = ESBYTE[buff+tj];
switch (bukva)
{
case ';': InfType=COMMENT; break;
case '[': InfType=SECTION; section=NULL; break;
case ']': InfType=PARAM; break;
case '=': InfType=OPTION; break;
case 0x0a:
case 0x0d:
InfType=PARAM;
if (!strcmp(#section,"Associations")) && (option)
{
for (ti=0; ti<app_list.count; ti++) //do not add duplications
{
if (strcmp(#app_paths[ti].item, #option)==0) GOTO _OUT;
}
// for (i=0; ext[i]!=0; i+=2;) if (!strcmp(extension, ext[i])) { icon_n = ext[i+1]; break; }
strcpy(#app_paths[app_list.count].item, #option);
app_list.count++;
}
_OUT:
parametr=option=NULL;
break;
default:
IF (InfType==SECTION) chrcat(#section, bukva);
IF (InfType==PARAM) chrcat(#parametr, bukva);
IF (InfType==OPTION) chrcat(#option, bukva);
}
}
}
 
 
 
void OpenWith()
{
?define OPEN_LIST_W 300
?define OPEN_LIST_H 300
#define WIN_W 290
#define OPEN_LIST_VISIBLE_N 12
#define OPEN_LIST_LINE_H 20
#define PANEL_H 40
#define PADDING 8;
int WIN_H;
mouse mm;
word key, slot, index, start_y;
llist app_list;
word key, slot;
proc_info MenuForm;
int texty, newi;
 
app_list.ClearList();
app_list.SetSizes(files.w-OPEN_LIST_W/2+files.x+Form.left+4,files.h-OPEN_LIST_H/2+files.y+Form.top+GetSkinHeight(),OPEN_LIST_W,OPEN_LIST_H,150,18);
app_list.SetSizes(PADDING,PANEL_H+1,WIN_W-PADDING-PADDING,OPEN_LIST_VISIBLE_N*OPEN_LIST_LINE_H,150,OPEN_LIST_LINE_H);
if (!app_list.count) if (GetListOfPrograms()==-1) return;
SetEventMask(100111b);
goto _APP_LIST_DRAW;
 
21,7 → 79,22
slot = GetProcessSlot(MenuForm.ID);
if (slot != GetActiveProcess()) ExitProcess();
mm.get();
if (mm.lkm) ExitProcess();
//if (mm.lkm) ExitProcess();
if (mm.vert)
{
app_list.MouseScroll(mm.vert);
DrawAppList();
}
if (mm.x>app_list.x) && (mm.x<app_list.x+app_list.w) && (mm.y>app_list.y) && (mm.y<app_list.y+app_list.h)
{
app_list.current_temp = mm.y - app_list.y / app_list.line_h + app_list.first;
if (app_list.current_temp != app_list.current)
{
app_list.current = app_list.current_temp;
DrawAppList();
}
}
 
break;
case evKey:
29,15 → 102,36
if (key==27) ExitProcess();
break;
case evButton:
RunProgram(#app_paths[GetButtonID()-10].item, #file_path);
ExitProcess();
break;
case evReDraw: _APP_LIST_DRAW:
DefineAndDrawWindow(app_list.x, app_list.y,app_list.w+3,app_list.h+6,0x01, 0, 0, 0x01fffFFF);
WIN_H = app_list.h+PANEL_H+PADDING+2;
DefineAndDrawWindow(files.w-WIN_W/2+files.x+Form.left+6,
files.h-WIN_H/2+files.y+Form.top+GetSkinHeight(),WIN_W+1,WIN_H,0x01, 0, 0, 0x01fffFFF);
GetProcessInfo(#MenuForm, SelfInfo);
DrawPopup(0,0,app_list.w,app_list.h,0, col_work,col_border);
WriteText(10,10, 0x80, 0, "Select application to open file"w);
WriteText(10,23, 0x80, 0, #file_name);
WriteTextB(app_list.w/2-25,app_list.h/2, 0x90, 0, "S O O N");
DrawPopup(0,0,MenuForm.width-2,MenuForm.height-2,0, col_work, col_border);
DrawRectangle(app_list.x-1, app_list.y-2, app_list.w+1, app_list.h+2, col_border);
 
_APP_LIST_ITEMS_DRAW:
break;
Put_icon(#file_name+_strrchr(#file_name,'.'), 10, 13, col_work);
WriteText(35,10, 0x80, 0, T_SELECT_APP_TO_OPEN_WITH);
WriteText(35,23, 0x80, 0, #file_name);
 
DrawAppList();
}
}
 
void DrawAppList()
{
dword index, col_bg;
for (index = 0; (index<app_list.visible) && (index+app_list.first<app_list.count); index++)
{
DefineButton(app_list.x, index*app_list.line_h+app_list.y, app_list.w, app_list.line_h-1, index+app_list.first+10+BT_HIDE+BT_NOFRAME, 0);
if (index+app_list.first==app_list.current) col_bg = col_selec; else col_bg = 0xFFFfff;
DrawBar(app_list.x, index*app_list.line_h+app_list.y, app_list.w, app_list.line_h, col_bg);
Put_icon("kex", app_list.x+4, index*app_list.line_h+app_list.y+2, col_bg);
WriteText(app_list.x+23, index*app_list.line_h+app_list.y+7, 0x80, 0, #app_paths[index+app_list.first].item);
}
}
/programs/cmm/lib/list_box.h
2,9 → 2,9
 
struct llist
{
int x, y, w, h, min_h;
int line_h;
int x, y, w, h, min_h, line_h;
int count, visible, first, current;
int current_temp;
void ClearList();
void SetSizes(int xx, yy, ww, hh, min_hh, line_hh);
int MouseScroll(dword scroll_state);