Subversion Repositories Kolibri OS

Rev

Rev 6496 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #include <stdlib.h>
  2. #include <string.h>
  3. #include <kos32sys.h>
  4. #include <kolibri_gui.h>
  5. #include <kolibri_rasterworks.h>
  6.  
  7. int main()
  8. {
  9.   /* Load all libraries, initialize global tables like system color table and
  10.      operations table. kolibri_gui_init() will EXIT with mcall -1 if it fails
  11.      to do it's job. This is all you need to call and all libraries and GUI
  12.      elements can be used after a successful call to this function
  13.   */
  14.   kolibri_gui_init();
  15.   kolibri_rasterworks_init();
  16.   /* Set gui_event to REDRAW so that window is drawn in first iteration  */
  17.   unsigned int gui_event = KOLIBRI_EVENT_REDRAW;
  18.   oskey_t key;
  19.  
  20.   kolibri_window *main_window = kolibri_new_window(50, 50, 800, 300, "rasterworks example");
  21.  
  22.   unsigned press_key;
  23.  
  24.   int ln_str = countUTF8Z("Пример работы", -1);
  25.   void *buffi = malloc(768*256*3 * sizeof(char));
  26.  
  27.    *((int*)buffi) = 768;
  28.    *((int*)buffi+1) = 256;
  29.  
  30.   memset((char*)buffi+8, (char)-1, 768*256*3);
  31.    
  32.   debug_board_printf("String len: %d \n", ln_str);
  33.  
  34.   drawText(buffi, 0, 0, "Пример работы", ln_str, 0xFF000000, 0x30C18);
  35.   drawText(buffi, 0, 32, "Пример работы", ln_str, 0xFF000000, 0x1030C18);
  36.   drawText(buffi, 0, 64, "Пример работы", ln_str, 0xFF000000, 0x2030C18);
  37.   drawText(buffi, 0, 96, "Пример работы", ln_str, 0xFF000000, 0x4030C18);
  38.   drawText(buffi, 0, 128, "Пример работы", ln_str, 0xFF000000, 0x8030C18);
  39.   drawText(buffi, 0, 160, "Пример работы", ln_str, 0xFF000000, 0x0F031428);
  40.  
  41.   do  /* Start of main activity loop */
  42.     {
  43.       if(gui_event == KOLIBRI_EVENT_REDRAW)
  44.         {
  45.           kolibri_handle_event_redraw(main_window);
  46.           DrawBitmap(buffi+8, 5, 5, 768, 256);
  47.         }
  48.       else if(gui_event == KOLIBRI_EVENT_KEY)
  49.         {
  50.           key = get_key();
  51.           switch (key.code)
  52.           {
  53.           }
  54.           press_key = key.val;
  55.  
  56.           kolibri_handle_event_key(main_window, key);
  57.         }
  58.       else if(gui_event == KOLIBRI_EVENT_BUTTON)
  59.         {
  60.           unsigned int pressed_button = kolibri_button_get_identifier();
  61.           switch (pressed_button)
  62.           {
  63.               case BUTTON_CLOSE:
  64.                         kolibri_exit();
  65.           }
  66.          }
  67.       else if(gui_event == KOLIBRI_EVENT_MOUSE)
  68.         {
  69.           kolibri_handle_event_mouse(main_window);
  70.         }
  71.  
  72.     } while((gui_event = get_os_event())); /* End of main activity loop */
  73.  
  74.   /* kolibri_quit(); */
  75.  
  76.   return 0;
  77. }
  78.