Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
3067 leency 1
//notify 0.5
2
 
3286 leency 3
#define MEMSIZE 0x3E80
3067 leency 4
#include "..\lib\kolibri.h"
5
#include "..\lib\strings.h"
3363 leency 6
#include "..\lib\mem.h"
7
#include "..\lib\figures.h"
3067 leency 8
 
9
 
10
int SCREEN_SIZE_X,
11
    SCREEN_SIZE_Y;
12
 
13
int WIN_Y=0,
14
    WIN_SIZE_X=300,
15
    WIN_SIZE_Y=28;
16
 
17
 
18
void main()
19
{
20
	int TEXT_X=4,
21
	    TEXT_Y=12;
3363 leency 22
	dword shadow_buf, lighter_pixel1, lighter_pixel2;
3067 leency 23
 
3363 leency 24
	mem_Init();
3067 leency 25
	if (!param)
26
	{
27
		if (GetSystemLanguage()==4)
3107 leency 28
			strcpy(#param, "ќв  Їа®Ја ¬¬  Ї®Є §лў Ґв 㢥¤®¬«Ґ­Ёп.");
3067 leency 29
		else
30
			strcpy(#param, "This program shows notices. Open it with params.");
31
	}
32
 
33
	SCREEN_SIZE_X=GetScreenWidth()+1;
34
	if (strlen(#param)*6>WIN_SIZE_X) WIN_SIZE_X=strlen(#param)*6+8;
35
 
36
	TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2;
37
	TEXT_Y=WIN_SIZE_Y/2-3;
38
 
39
	//изяяящный костыль, реализующий многопоточность :)
3363 leency 40
	while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17;
3067 leency 41
 
3363 leency 42
	shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3);
43
	lighter_pixel1 = malloc(3);
44
	lighter_pixel2 = malloc(3);
45
	CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y);
46
	CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1);
47
	CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1);
48
	ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4);
49
	ShadowImage(lighter_pixel1, 1, 1, 1);
50
	ShadowImage(lighter_pixel2, 1, 1, 1);
51
 
3067 leency 52
	loop()
53
   {
54
		WaitEventTimeout(500);
55
		switch(EAX & 0xFF)
56
		{
57
		case evButton:
58
			if (GetButtonID()==1) ExitProcess();
59
			break;
60
 
61
		case evKey:
62
			break;
63
 
64
		case evReDraw:
3363 leency 65
			DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF);
3067 leency 66
			DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0);
3363 leency 67
			//draw_grid();
68
			//PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4);
69
			_PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf);
70
			PutPixel(0,0,ESDWORD[lighter_pixel1]);
71
			PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]);
72
			DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333);
3107 leency 73
			WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //тень
74
			WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param);
75
			WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param);
76
			WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param);
77
			WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param);
78
			WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param);
79
			WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param);
80
			WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param);
3067 leency 81
 
3107 leency 82
			WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param);
3067 leency 83
			break;
84
		default:
85
			ExitProcess();
86
      }
87
   }
88
}
89
 
90
 
91
 
92
void draw_grid()
93
{
94
	int x, y;
95
 
96
	for (y=0; y<=WIN_SIZE_Y; y++)
97
	{
98
		for (x=0; x<=WIN_SIZE_X; x++)
99
		{
100
			if (! y&1) && (! x&1) PutPixel(x, y, 0);
101
			if (  y&1) && (  x&1) PutPixel(x, y, 0);
102
			//PutPixel(x, y, GetPixelColor(SCREEN_SIZE_X-WIN_SIZE_X+x, SCREEN_SIZE_X, y));
103
		}
104
	}
105
}
106
 
107
 
108
 
109
 
110
 
111
stop: