Rev 3369 | 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 |
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 | |||
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 | |
3369 | leency | 42 | #if !defined(AUTOBUILD) |
43 | { |
||
44 | shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3); |
||
45 | lighter_pixel1 = malloc(3); |
||
46 | lighter_pixel2 = malloc(3); |
||
47 | CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y); |
||
48 | CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1); |
||
49 | CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1); |
||
50 | ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4); |
||
51 | ShadowImage(lighter_pixel1, 1, 1, 1); |
||
52 | ShadowImage(lighter_pixel2, 1, 1, 1); |
||
53 | } |
||
54 | #endif |
||
3363 | leency | 55 | |
3067 | leency | 56 | loop() |
3369 | leency | 57 | { |
3067 | leency | 58 | WaitEventTimeout(500); |
59 | switch(EAX & 0xFF) |
||
60 | { |
||
61 | case evButton: |
||
62 | if (GetButtonID()==1) ExitProcess(); |
||
63 | break; |
||
64 | |||
65 | case evKey: |
||
66 | break; |
||
67 | |||
68 | case evReDraw: |
||
3363 | leency | 69 | DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF); |
3067 | leency | 70 | DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0); |
3363 | leency | 71 | //draw_grid(); |
72 | //PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4); |
||
3369 | leency | 73 | #ifdef AUTOBUILD |
74 | { draw_grid(); } |
||
75 | #else |
||
3370 | leency | 76 | { |
77 | _PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); |
||
78 | PutPixel(0,0,ESDWORD[lighter_pixel1]); |
||
79 | PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]); |
||
80 | } |
||
3369 | leency | 81 | #endif |
3363 | leency | 82 | DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333); |
3107 | leency | 83 | WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //тень |
84 | WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param); |
||
85 | WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param); |
||
86 | WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param); |
||
87 | WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param); |
||
88 | WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param); |
||
89 | WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param); |
||
90 | WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param); |
||
3067 | leency | 91 | |
3107 | leency | 92 | WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param); |
3067 | leency | 93 | break; |
94 | default: |
||
95 | ExitProcess(); |
||
96 | } |
||
97 | } |
||
98 | } |
||
99 | |||
100 | |||
101 | |||
3369 | leency | 102 | :void draw_grid() |
3067 | leency | 103 | { |
104 | int x, y; |
||
105 | |||
106 | for (y=0; y<=WIN_SIZE_Y; y++) |
||
107 | { |
||
108 | for (x=0; x<=WIN_SIZE_X; x++) |
||
109 | { |
||
110 | if (! y&1) && (! x&1) PutPixel(x, y, 0); |
||
111 | if ( y&1) && ( x&1) PutPixel(x, y, 0); |
||
112 | } |
||
113 | } |
||
114 | } |
||
115 | |||
116 | |||
117 | stop:=WIN_SIZE_X;>=WIN_SIZE_Y;> |