Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
3376 leency 1
//notify 0.52
3370 leency 2
//SoUrcerer 2010, Leency 2012-2013, GNU GPLv2
3067 leency 3
 
3286 leency 4
#define MEMSIZE 0x3E80
3067 leency 5
#include "..\lib\kolibri.h"
6
#include "..\lib\strings.h"
3363 leency 7
#include "..\lib\mem.h"
8
#include "..\lib\figures.h"
3067 leency 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
 
3376 leency 17
int delay = 500;
3067 leency 18
 
19
void main()
20
{
21
	int TEXT_X=4,
22
	    TEXT_Y=12;
3363 leency 23
	dword shadow_buf, lighter_pixel1, lighter_pixel2;
3067 leency 24
 
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;
3376 leency 34
	if (strlen(#param)*6>WIN_SIZE_X)
35
	{
36
		WIN_SIZE_X=strlen(#param)*6+8;
37
		delay = strlen(#param)*10;
38
	}
3067 leency 39
 
40
	TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2;
41
	TEXT_Y=WIN_SIZE_Y/2-3;
42
 
43
	//изяяящный костыль, реализующий многопоточность :)
3363 leency 44
	while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17;
3067 leency 45
 
3369 leency 46
	#if !defined(AUTOBUILD)
47
	{
3376 leency 48
		mem_Init();
3369 leency 49
		shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3);
50
		lighter_pixel1 = malloc(3);
51
		lighter_pixel2 = malloc(3);
52
		CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y);
53
		CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1);
54
		CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1);
55
		ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4);
56
		ShadowImage(lighter_pixel1, 1, 1, 1);
57
		ShadowImage(lighter_pixel2, 1, 1, 1);
58
	}
59
	#endif
3363 leency 60
 
3067 leency 61
	loop()
3369 leency 62
	{
3376 leency 63
		WaitEventTimeout(delay);
3067 leency 64
		switch(EAX & 0xFF)
65
		{
66
		case evButton:
67
			if (GetButtonID()==1) ExitProcess();
68
			break;
69
 
70
		case evKey:
71
			break;
72
 
73
		case evReDraw:
3363 leency 74
			DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF);
3067 leency 75
			DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0);
3363 leency 76
			//draw_grid();
77
			//PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4);
3369 leency 78
			#ifdef AUTOBUILD
79
				{ draw_grid(); }
80
			#else
3370 leency 81
			{
82
				_PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf);
83
				PutPixel(0,0,ESDWORD[lighter_pixel1]);
84
				PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]);
85
			}
3369 leency 86
			#endif
3363 leency 87
			DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333);
3107 leency 88
			WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //тень
89
			WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param);
90
			WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param);
91
			WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param);
92
			WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param);
93
			WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param);
94
			WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param);
95
			WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param);
3067 leency 96
 
3107 leency 97
			WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param);
3067 leency 98
			break;
99
		default:
100
			ExitProcess();
101
      }
102
   }
103
}
104
 
105
 
106
 
3369 leency 107
:void draw_grid()
3067 leency 108
{
109
	int x, y;
110
 
111
	for (y=0; y<=WIN_SIZE_Y; y++)
112
	{
113
		for (x=0; x<=WIN_SIZE_X; x++)
114
		{
115
			if (! y&1) && (! x&1) PutPixel(x, y, 0);
116
			if (  y&1) && (  x&1) PutPixel(x, y, 0);
117
		}
118
	}
119
}
120
 
121
 
122
stop: