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