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:=WIN_SIZE_X;>=WIN_SIZE_Y;> |