Subversion Repositories Kolibri OS

Rev

Rev 6481 | Rev 6500 | Go to most recent revision | 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_kmenu.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_kmenu_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, 400, 200, "kmenu example");
  21.  
  22.   kmenu_init(NULL);
  23.  
  24.   void *sub_menu1 = ksubmenu_new();
  25.   ksubmenu_add(sub_menu1, kmenuitem_new(0, "Open", 101));
  26.   ksubmenu_add(sub_menu1, kmenuitem_new(0, "Save", 102));
  27.   ksubmenu_add(sub_menu1, kmenuitem_new(2, "", 0));
  28.   ksubmenu_add(sub_menu1, kmenuitem_new(0, "Exit", 103));
  29.  
  30.   void *sub_menu2 = ksubmenu_new();
  31.   ksubmenu_add(sub_menu2, kmenuitem_new(0, "Find", 201));
  32.   ksubmenu_add(sub_menu2, kmenuitem_new(0, "Replace", 202));
  33.  
  34.   void *sub_menu22 = ksubmenu_new();
  35.   ksubmenu_add(sub_menu22, kmenuitem_new(0, "cp1251", 211));
  36.   ksubmenu_add(sub_menu22, kmenuitem_new(0, "UTF-8", 212));
  37.   ksubmenu_add(sub_menu2, kmenuitem__submenu_new(1, "Encoding", sub_menu22));
  38.  
  39.   void *main_menu = ksubmenu_new();
  40.   ksubmenu_add(main_menu, kmenuitem__submenu_new(1, "File", sub_menu1));
  41.   ksubmenu_add(main_menu, kmenuitem__submenu_new(1, "Edit", sub_menu2));
  42.  
  43.   extern volatile unsigned press_key;
  44.  
  45.   do  /* Start of main activity loop */
  46.     {
  47.       if(gui_event == KOLIBRI_EVENT_REDRAW)#include <string.h>
  48.  
  49.         {
  50.           kolibri_handle_event_redraw(main_window);
  51.           kmainmenu_draw(main_menu);
  52.         }
  53.       else if(gui_event == KOLIBRI_EVENT_KEY)
  54.         {
  55.           key = get_key();
  56.           switch (key.code)
  57.           {
  58.           }
  59.           press_key = key.val;
  60.  
  61.           kolibri_handle_event_key(main_window);
  62.         }
  63.       else if(gui_event == KOLIBRI_EVENT_BUTTON)
  64.         {
  65.           unsigned int pressed_button = kolibri_button_get_identifier();
  66.           switch (pressed_button)
  67.           {
  68.               case 101:
  69.                 debug_board_write_str("File->Open\n");
  70.                         break;
  71.               case 102:
  72.                 debug_board_write_str("File->Save\n");
  73.                         break;
  74.               case 103:
  75.                 debug_board_write_str("File->Exit\n");
  76.                         break;
  77.               case 201:
  78.                 debug_board_write_str("Edit->Find\n");
  79.                         break;
  80.               case 202:
  81.                 debug_board_write_str("Edit->Replace\n");
  82.                         break;
  83.               case 211:
  84.                 debug_board_write_str("Edit->Encoding->cp1251\n");
  85.                         break;
  86.               case 212:
  87.                 debug_board_write_str("Edit->Encoding->UTF-8\n");
  88.                         break;
  89.               case BUTTON_CLOSE:
  90.                         kolibri_exit();
  91.           }
  92.          }
  93.       else if(gui_event == KOLIBRI_EVENT_MOUSE)
  94.         {
  95.           kolibri_handle_event_mouse(main_window);
  96.           kmainmenu_dispatch_cursorevent(main_menu);
  97.         }
  98.  
  99.     } while((gui_event = get_os_event())); /* End of main activity loop */
  100.  
  101.   /* kolibri_quit(); */
  102.  
  103.   return 0;
  104. }
  105.