kolibrios-fun/programs/cmm/eolite/include/icons.h
Kirill Lipatov (Leency) 41386908d7 eolite: bugfixes and code clean
git-svn-id: svn://kolibrios.org@8868 a494cfbc-eb01-0410-851d-a64ba20cac60
2021-06-17 09:29:39 +00:00

52 lines
1.5 KiB
C

_ini icons_ini = { "/sys/File managers/icons.ini", NULL };
void DrawIconByExtension(dword file_path, extension, xx, yy, fairing_color)
{
char BYTE_HEAD_FILE[4];
char ext[512];
int icon_n = 2;
dword selected_image;
dword default_image;
dword default_icon;
if (big_icons.checked) {
icons_ini.section = "icons32";
selected_image = icons32_selected.image;
default_image = icons32_default.image;
default_icon=95;
} else {
icons_ini.section = "icons16";
selected_image = icons16_selected.image;
default_image = icons16_default.image;
default_icon=2;
}
if (ESBYTE[file_path+1]!='k') && (ESBYTE[file_path+1]!='s') && (chrnum(file_path, '/')==2) {
if (ESBYTE[file_path+1]=='/') ext[0] = ESBYTE[file_path+2];
else ext[0] = ESBYTE[file_path+1];
ext[1] = '\0';
if (big_icons.checked) {
icons_ini.section = "drives32";
icon_n = icons_ini.GetInt(#ext, 50);
} else {
icons_ini.section = "drives16";
icon_n = icons_ini.GetInt(#ext, 50);
}
} else if (extension) {
strcpy(#ext, extension);
strlwr(#ext);
icon_n = icons_ini.GetInt(#ext, default_icon);
} else if (file_path) {
ReadFile(0,4,#BYTE_HEAD_FILE,file_path);
IF(DSDWORD[#BYTE_HEAD_FILE]=='KCPK')||(DSDWORD[#BYTE_HEAD_FILE]=='UNEM')
icon_n = icons_ini.GetInt("kex", 2);
}
if (fairing_color==col.selec) {
img_draw stdcall(selected_image, xx, yy, icon_size, icon_size, 0, icon_n*icon_size);
} else {
img_draw stdcall(default_image, xx, yy, icon_size, icon_size, 0, icon_n*icon_size);
}
}