Subversion Repositories Kolibri OS

Rev

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