Subversion Repositories Kolibri OS

Rev

Rev 3067 | Blame | Last modification | View Log | Download | RSS feed

  1. //notify 0.5
  2.  
  3. #include "..\lib\kolibri.h"
  4. #include "..\lib\strings.h"
  5.  
  6.  
  7. int SCREEN_SIZE_X,
  8.     SCREEN_SIZE_Y;
  9.  
  10. int WIN_Y=0,
  11.     WIN_SIZE_X=300,
  12.     WIN_SIZE_Y=28;
  13.  
  14.        
  15. void main()
  16. {  
  17.         int TEXT_X=4,
  18.             TEXT_Y=12;
  19.        
  20.         if (!param)
  21.         {
  22.                 if (GetSystemLanguage()==4)
  23.                         strcpy(#param, "â  ¯à®£à ¬¬  ¯®ª §ë¢ ¥â 㢥¤®¬«¥­¨ï.");
  24.                 else
  25.                         strcpy(#param, "This program shows notices. Open it with params.");
  26.         }
  27.        
  28.         SCREEN_SIZE_X=GetScreenWidth()+1;
  29.         if (strlen(#param)*6>WIN_SIZE_X) WIN_SIZE_X=strlen(#param)*6+8;
  30.        
  31.         TEXT_X=-6*strlen(#param)+WIN_SIZE_X/2;
  32.         TEXT_Y=WIN_SIZE_Y/2-3;
  33.        
  34.         //èçÿÿÿùíûé êîñòûëü, ðåàëèçóþùèé ìíîãîïîòî÷íîñòü :)
  35.         while (!GetPixelColor(SCREEN_SIZE_X-1, SCREEN_SIZE_X, WIN_Y)) WIN_Y+=45;
  36.        
  37.  
  38.         loop()
  39.    {
  40.                 WaitEventTimeout(500);
  41.                 switch(EAX & 0xFF)
  42.                 {
  43.                 case evButton:
  44.                         if (GetButtonID()==1) ExitProcess();
  45.                         break;
  46.                        
  47.                 case evKey:
  48.                         break;
  49.          
  50.                 case evReDraw:
  51.                         DefineAndDrawWindow(SCREEN_SIZE_X-WIN_SIZE_X,WIN_Y,WIN_SIZE_X, WIN_SIZE_Y, 0x01, 0, 0, 0x01fffFFF);
  52.                         DefineButton(0,0, WIN_SIZE_X, WIN_SIZE_Y, 1+BT_HIDE+BT_NOFRAME, 0);
  53.                         draw_grid();
  54.                         WriteText(TEXT_X-1,TEXT_Y, 0x80, 0,#param); //òåíü
  55.                         WriteText(TEXT_X+1,TEXT_Y, 0x80, 0,#param);
  56.                         WriteText(TEXT_X,TEXT_Y-1, 0x80, 0,#param);
  57.                         WriteText(TEXT_X,TEXT_Y+1, 0x80, 0,#param);
  58.                         WriteText(TEXT_X-1,TEXT_Y-1, 0x80, 0,#param);
  59.                         WriteText(TEXT_X+1,TEXT_Y+1, 0x80, 0,#param);
  60.                         WriteText(TEXT_X-1,TEXT_Y+1, 0x80, 0,#param);
  61.                         WriteText(TEXT_X+1,TEXT_Y-1, 0x80, 0,#param);
  62.                        
  63.                         WriteText(TEXT_X,TEXT_Y, 0x80, 0xFFFfff,#param);
  64.                         break;
  65.                 default:
  66.                         ExitProcess();
  67.       }
  68.    }
  69. }
  70.  
  71.  
  72.  
  73. void draw_grid()
  74. {
  75.         int x, y;
  76.        
  77.         for (y=0; y<=WIN_SIZE_Y; y++)
  78.         {
  79.                 for (x=0; x<=WIN_SIZE_X; x++)  
  80.                 {
  81.                         if (! y&1) && (! x&1) PutPixel(x, y, 0);
  82.                         if (  y&1) && (  x&1) PutPixel(x, y, 0);
  83.                         //PutPixel(x, y, GetPixelColor(SCREEN_SIZE_X-WIN_SIZE_X+x, SCREEN_SIZE_X, y));
  84.                 }
  85.         }
  86. }
  87.  
  88.  
  89.  
  90.  
  91.  
  92. stop:
  93.