Subversion Repositories Kolibri OS

Rev

Rev 8072 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #include <kos32sys.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. /*
  6.  EVENTS LOOK LIKE IN C--
  7. */
  8.  
  9. #define evReDraw 1
  10. #define evKey 2
  11. #define evButton 3
  12.  
  13.  
  14.  
  15. #define _size 4
  16.  
  17. #define bs 44
  18.  
  19. #define FIRSTC 0x137F00
  20. #define SECONDC 0x0013FF
  21.  
  22. int field[_size][_size] = {
  23.         {0, 0, 0, 1},
  24.         {0, 0, 1, 0},
  25.         {0, 0, 0, 1},
  26.         {0, 1, 0, 0}
  27. };
  28.  
  29. char* title = "Fridge v0.1";
  30.  
  31. void draw_window(){
  32.         BeginDraw();
  33.         DrawWindow(215,100,225, 225,title,0xEEEeee,0x34);
  34.         for (int j = 10, yy = 0; yy<_size; j+=bs, yy++)
  35.                         for (int i = 10, xx = 0; xx<_size; i+=bs, xx++)
  36.                         {
  37.                                 if (field[yy][xx]) define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, FIRSTC);
  38.                                 else define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, SECONDC);
  39.                         }
  40.         EndDraw();
  41. }
  42.  
  43. void Button() {
  44.         int id = get_os_button();
  45.         if (id == 1) exit(0); else
  46.         {
  47.                 int x = (id/10)-1;
  48.                 int y = (id%10)-1;
  49.                
  50.                 for (int i = 0; i<_size; i++)
  51.                         if (field[i][x]) field[i][x] = 0; else field[i][x] = 1;
  52.                
  53.                 for (int i = 0; i<_size; i++)
  54.                         if (field[y][i]) field[y][i] = 0; else field[y][i] = 1;
  55.                        
  56.                 if (field[y][x]) field[y][x] = 0; else field[y][x] = 1;
  57.                
  58.                 draw_window();
  59.         }
  60. }
  61.  
  62. int main()
  63. {
  64.     draw_window();
  65.     while(1)
  66.     {
  67.                 switch(get_os_event())
  68.                 {
  69.                         case evButton:
  70.                                 Button();
  71.                                 break;
  72.                  
  73.                         case evKey:
  74.                                 get_key();
  75.                                 break;
  76.                          
  77.                         case evReDraw:
  78.                                 draw_window();
  79.                                 break;
  80.                 }
  81.     }
  82. }
  83.