Rev 3376 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3376 | Rev 4004 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //notify 0.52 |
1 | //notify 0.7 |
2 | //SoUrcerer 2010, Leency 2012-2013, GNU GPLv2 |
2 | //SoUrcerer 2010, Leency 2012-2013, GNU GPLv2 |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | #define MEMSIZE 0x3E80 |
4 | #define MEMSIZE 0x2F00 |
5 | #include "..\lib\kolibri.h" |
5 | #include "..\lib\kolibri.h" |
6 | #include "..\lib\strings.h" |
6 | #include "..\lib\strings.h" |
7 | #include "..\lib\mem.h" |
7 | #include "..\lib\mem.h" |
Line -... | Line 8... | ||
- | 8 | #include "..\lib\figures.h" |
|
- | 9 | ||
8 | #include "..\lib\figures.h" |
10 | ?define PADDING 12; |
9 | 11 | ||
Line 10... | Line 12... | ||
10 | int SCREEN_SIZE_X, |
12 | int SCREEN_SIZE_X, |
- | 13 | SCREEN_SIZE_Y; |
|
11 | SCREEN_SIZE_Y; |
14 | |
12 | 15 | int WIN_X, |
|
Line 13... | Line 16... | ||
13 | int WIN_Y=0, |
16 | WIN_Y, |
Line -... | Line 17... | ||
- | 17 | WIN_SIZE_X=256, |
|
- | 18 | WIN_SIZE_Y=28; |
|
- | 19 | ||
- | 20 | int delay = 400; |
|
- | 21 | ||
14 | WIN_SIZE_X=300, |
22 | #include "lang.h--" |
- | 23 | #ifdef LANG_RUS |
|
- | 24 | ?define DEFAULT_TEXT "â ¯à®£à ¬¬ ¯®ª §ë¢ ¥â 㢥¤®¬«¥¨ï."; |
|
- | 25 | #else |
|
- | 26 | ?define DEFAULT_TEXT "This program shows notices. Open it with params."; |
|
- | 27 | #endif |
|
- | 28 | ||
15 | WIN_SIZE_Y=28; |
29 | void PutText(dword x, y) { |
- | 30 | WriteText(x,y, 0x80, 0, #param); |
|
- | 31 | } |
|
16 | 32 | ||
17 | int delay = 500; |
33 | inline fastcall int GetClientTop() |
18 | 34 | { |
|
- | 35 | $mov eax, 48 |
|
Line -... | Line 36... | ||
- | 36 | $mov ebx, 5 |
|
19 | void main() |
37 | $int 0x40 |
20 | { |
38 | $mov eax, ebx |
- | 39 | $shr eax, 16 |
|
21 | int TEXT_X=4, |
40 | } |
22 | TEXT_Y=12; |
41 | |
- | 42 | dword shadow_buf, lighter_pixel1, lighter_pixel2; |
|
23 | dword shadow_buf, lighter_pixel1, lighter_pixel2; |
43 | void GetBackground() |
24 | 44 | { |
|
25 | if (!param) |
45 | CopyScreen(shadow_buf, WIN_X, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y); |
Line -... | Line 46... | ||
- | 46 | CopyScreen(lighter_pixel1, WIN_X, WIN_Y, 1, 1); |
|
- | 47 | CopyScreen(lighter_pixel2, WIN_X, WIN_Y+WIN_SIZE_Y, 1, 1); |
|
- | 48 | ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 6); |
|
- | 49 | ShadowImage(lighter_pixel1, 1, 1, 2); |
|
- | 50 | ShadowImage(lighter_pixel2, 1, 1, 2); |
|
- | 51 | } |
|
- | 52 | ||
26 | { |
53 | |
27 | if (GetSystemLanguage()==4) |
54 | void main() |
28 | strcpy(#param, "â ¯à®£à ¬¬ ¯®ª §ë¢ ¥â 㢥¤®¬«¥¨ï."); |
55 | { |
29 | else |
56 | int TEXT_X=4, |
30 | strcpy(#param, "This program shows notices. Open it with params."); |
57 | TEXT_Y=12; |
31 | } |
58 | char drawn; |
Line -... | Line 59... | ||
- | 59 | ||
- | 60 | if (!param) strcpy(#param, DEFAULT_TEXT); |
|
- | 61 | if (strlen(#param)*6>WIN_SIZE_X) |
|
32 | 62 | { |
|
33 | SCREEN_SIZE_X=GetScreenWidth()+1; |
63 | WIN_SIZE_X=strlen(#param)*6+PADDING; |
Line 34... | Line 64... | ||
34 | if (strlen(#param)*6>WIN_SIZE_X) |
64 | delay = strlen(#param)*10; |
35 | { |
65 | } |
Line 36... | Line -... | ||
36 | WIN_SIZE_X=strlen(#param)*6+8; |
- | |
37 | delay = strlen(#param)*10; |
- | |
38 | } |
66 | |
39 | 67 | SCREEN_SIZE_X=GetScreenWidth()+1; |
|
40 | TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2; |
68 | WIN_X = SCREEN_SIZE_X-WIN_SIZE_X-1; |
41 | TEXT_Y=WIN_SIZE_Y/2-3; |
69 | WIN_Y = GetClientTop(); |
42 | - | ||
43 | //èçÿÿÿùíûé êîñòûëü, ðåàëèçóþùèé ìíîãîïîòî÷íîñòü :) |
- | |
44 | while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17; |
- | |
45 | - | ||
46 | #if !defined(AUTOBUILD) |
- | |
47 | { |
- | |
48 | mem_Init(); |
- | |
49 | shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3); |
70 | TEXT_X = -6*strlen(#param)+WIN_SIZE_X/2; |
Line 50... | Line 71... | ||
50 | lighter_pixel1 = malloc(3); |
71 | TEXT_Y = WIN_SIZE_Y/2-3; |
51 | lighter_pixel2 = malloc(3); |
72 | |
52 | CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y); |
73 | //emulate multithread :) |
53 | CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1); |
74 | while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17; |
54 | CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1); |
75 | |
55 | ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4); |
76 | mem_Init(); |
56 | ShadowImage(lighter_pixel1, 1, 1, 1); |
- | |
57 | ShadowImage(lighter_pixel2, 1, 1, 1); |
77 | shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3); |
58 | } |
- | |
59 | #endif |
- | |
60 | 78 | lighter_pixel1 = malloc(3); |
|
Line 61... | Line 79... | ||
61 | loop() |
79 | lighter_pixel2 = malloc(3); |
62 | { |
80 | GetBackground(); |
63 | WaitEventTimeout(delay); |
- | |
64 | switch(EAX & 0xFF) |
81 | |
65 | { |
- | |
66 | case evButton: |
- | |
67 | if (GetButtonID()==1) ExitProcess(); |
- | |
68 | break; |
- | |
69 | 82 | loop() |
|
- | 83 | { |
|
- | 84 | WaitEventTimeout(delay); |
|
- | 85 | switch(EAX & 0xFF) |
|
- | 86 | { |
|
- | 87 | case evButton: |
|
- | 88 | ExitProcess(); |
|
- | 89 | break; |
|
- | 90 | ||
- | 91 | case evReDraw: |
|
70 | case evKey: |
92 | DefineAndDrawWindow(WIN_X+1,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF); |
71 | break; |
93 | if (drawn==1) |
72 | 94 | { |
|
73 | case evReDraw: |
- | |
74 | DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF); |
- | |
75 | DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0); |
95 | drawn=2; |
76 | //draw_grid(); |
- | |
77 | //PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4); |
- | |
78 | #ifdef AUTOBUILD |
- | |
79 | { draw_grid(); } |
- | |
80 | #else |
- | |
81 | { |
- | |
82 | _PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); |
- | |
83 | PutPixel(0,0,ESDWORD[lighter_pixel1]); |
- | |
Line -... | Line 96... | ||
- | 96 | MoveSize(0,0,-1,-1); |
|
- | 97 | pause(3); |
|
- | 98 | GetBackground(); |
|
- | 99 | MoveSize(WIN_X,WIN_Y,-1,-1); |
|
- | 100 | drawn=1; |
|
- | 101 | } |
|
- | 102 | DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0); |
|
- | 103 | ||
84 | PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]); |
104 | _PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf); |
- | 105 | PutPixel(0,0,ESDWORD[lighter_pixel1]); |
|
85 | } |
106 | PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]); |
86 | #endif |
107 | DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333); |
87 | DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333); |
108 | |
88 | WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //òåíü |
109 | PutText(TEXT_X-1,TEXT_Y+1); |
89 | WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param); |
110 | PutText(TEXT_X-1,TEXT_Y-1); |
90 | WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param); |
111 | PutText(TEXT_X-1,TEXT_Y ); |
Line 91... | Line -... | ||
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); |
- | |
96 | - | ||
97 | WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param); |
- | |
98 | break; |
- | |
99 | default: |
- | |
100 | ExitProcess(); |
- | |
101 | } |
- | |
102 | } |
- | |
103 | } |
- | |
104 | - | ||
105 | - | ||
106 | - | ||
107 | :void draw_grid() |
112 | PutText(TEXT_X+1,TEXT_Y-1); |