Subversion Repositories Kolibri OS

Rev

Rev 7229 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5598 pavelyakov 1
#ifndef INCLUDE_LIBIMG_LOAD_SKIN_H
2
#define INCLUDE_LIBIMG_LOAD_SKIN_H
3
 
4
#ifndef INCLUDE_LIBIMG_H
7049 leency 5
#include "../lib/obj/libimg.h"
5598 pavelyakov 6
#endif
7
 
5773 leency 8
:struct libimg_image {
7156 leency 9
	dword image, w, h, imgsrc;
5773 leency 10
} skin;
5408 leency 11
 
5409 leency 12
:void Libimg_LoadImage(dword struct_pointer, file_path)
5408 leency 13
{
5409 leency 14
	dword image_pointer;
5408 leency 15
	image_pointer = load_image(file_path);
5421 leency 16
	if (!image_pointer) notify("'Error: Image not loaded' -E");
5408 leency 17
	ESDWORD[struct_pointer] = image_pointer;
18
	ESDWORD[struct_pointer+4] = DSWORD[image_pointer+4];
19
	ESDWORD[struct_pointer+8] = DSWORD[image_pointer+8];
7156 leency 20
	ESDWORD[struct_pointer+12] = ESDWORD[image_pointer+24];
5409 leency 21
}
22
 
7229 leency 23
:void Libimg_ReplaceColor(dword struct_pointer, w, h, old_color, new_color)
5409 leency 24
{
25
	dword i, max_i, image_data;
26
	image_data = ESDWORD[struct_pointer + 24];
27
	max_i =  w * h * 4 + image_data;
7229 leency 28
	for (i = image_data; i < max_i; i += 4)	if (DSDWORD[i]==old_color) DSDWORD[i] = new_color;
5598 pavelyakov 29
}
30
 
7229 leency 31
:void Libimg_FillTransparent(dword struct_pointer, w, h, new_color)
7054 leency 32
{
7229 leency 33
	Libimg_ReplaceColor(struct_pointer, w, h, 0, new_color);
7054 leency 34
}
35
 
7229 leency 36
:libimg_image icons32draw;
37
:void DrawIcon32(dword x,y, bg, icon_n) {
38
	//load_dll(libimg, #libimg_init,1);
39
	if (!icons32draw.image) {
40
		Libimg_LoadImage(#icons32draw, "/sys/icons32.png");
41
		Libimg_FillTransparent(icons32draw.image, icons32draw.w, icons32draw.h, bg);
42
	}
43
	if (icon_n>=0) img_draw stdcall(icons32draw.image, x, y, 32, 32, 0, icon_n*32);
44
}
45
 
7906 leency 46
:libimg_image icons16draw;
47
:void DrawIcon16(dword x,y, bg, icon_n) {
48
	//load_dll(libimg, #libimg_init,1);
49
	if (!icons16draw.image) {
50
		Libimg_LoadImage(#icons16draw, "/sys/icons16.png");
51
		Libimg_ReplaceColor(icons16draw.image, icons16draw.w, icons16draw.h, 0xffFFFfff, bg);
52
		Libimg_ReplaceColor(icons16draw.image, icons16draw.w, icons16draw.h, 0xffCACBD6, MixColors(bg, 0, 220));
53
	}
54
	if (icon_n>=0) img_draw stdcall(icons16draw.image, x, y, 16, 16, 0, icon_n*16);
55
}
56
 
5598 pavelyakov 57
#endif