Subversion Repositories Kolibri OS

Rev

Rev 3286 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. //notify 0.5
  2.  
  3. #define MEMSIZE 0x3E80
  4. #include "..\lib\kolibri.h"
  5. #include "..\lib\strings.h"
  6. #include "..\lib\mem.h"
  7. #include "..\lib\figures.h"
  8.  
  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;
  22.         dword shadow_buf, lighter_pixel1, lighter_pixel2;
  23.        
  24.         mem_Init();
  25.         if (!param)
  26.         {
  27.                 if (GetSystemLanguage()==4)
  28.                         strcpy(#param, "â  ¯à®£à ¬¬  ¯®ª §ë¢ ¥â 㢥¤®¬«¥­¨ï.");
  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.         //èçÿÿÿùíûé êîñòûëü, ðåàëèçóþùèé ìíîãîïîòî÷íîñòü :)
  40.         while (GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)==0x333333) WIN_Y+=WIN_SIZE_Y+17;
  41.  
  42.         shadow_buf = malloc(WIN_SIZE_X*WIN_SIZE_Y*3);
  43.         lighter_pixel1 = malloc(3);
  44.         lighter_pixel2 = malloc(3);
  45.         CopyScreen(shadow_buf, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, WIN_SIZE_X, WIN_SIZE_Y);
  46.         CopyScreen(lighter_pixel1, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y, 1, 1);
  47.         CopyScreen(lighter_pixel2, SCREEN_SIZE_X-WIN_SIZE_X-1, WIN_Y+WIN_SIZE_Y, 1, 1);
  48.         ShadowImage(shadow_buf, WIN_SIZE_X, WIN_SIZE_Y, 4);
  49.         ShadowImage(lighter_pixel1, 1, 1, 1);
  50.         ShadowImage(lighter_pixel2, 1, 1, 1);
  51.  
  52.         loop()
  53.    {
  54.                 WaitEventTimeout(500);
  55.                 switch(EAX & 0xFF)
  56.                 {
  57.                 case evButton:
  58.                         if (GetButtonID()==1) ExitProcess();
  59.                         break;
  60.                        
  61.                 case evKey:
  62.                         break;
  63.          
  64.                 case evReDraw:
  65.                         DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y-1, 0x01, 0, 0, 0x01fffFFF);
  66.                         DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0);
  67.                         //draw_grid();
  68.                         //PutShadow(0,0,WIN_SIZE_X,WIN_SIZE_Y, 0, 4);
  69.                         _PutImage(0,0,WIN_SIZE_X,WIN_SIZE_Y,shadow_buf);
  70.                         PutPixel(0,0,ESDWORD[lighter_pixel1]);
  71.                         PutPixel(0,WIN_SIZE_Y-1,ESDWORD[lighter_pixel2]);
  72.                         DrawBar(WIN_SIZE_X,0, 1, WIN_SIZE_Y, 0x333333);
  73.                         WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //òåíü
  74.                         WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param);
  75.                         WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param);
  76.                         WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param);
  77.                         WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param);
  78.                         WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param);
  79.                         WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param);
  80.                         WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param);
  81.                        
  82.                         WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param);
  83.                         break;
  84.                 default:
  85.                         ExitProcess();
  86.       }
  87.    }
  88. }
  89.  
  90.  
  91.  
  92. void draw_grid()
  93. {
  94.         int x, y;
  95.        
  96.         for (y=0; y<=WIN_SIZE_Y; y++)
  97.         {
  98.                 for (x=0; x<=WIN_SIZE_X; x++)  
  99.                 {
  100.                         if (! y&1) && (! x&1) PutPixel(x, y, 0);
  101.                         if (  y&1) && (  x&1) PutPixel(x, y, 0);
  102.                         //PutPixel(x, y, GetPixelColor(SCREEN_SIZE_X-WIN_SIZE_X+x, SCREEN_SIZE_X, y));
  103.                 }
  104.         }
  105. }
  106.  
  107.  
  108.  
  109.  
  110.  
  111. stop:
  112.