Subversion Repositories Kolibri OS

Rev

Rev 6500 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6489 siemargl 1
#include 
2
#include 
6500 punk_joker 3
#include 
6489 siemargl 4
#include 
6481 punk_joker 5
#include 
6
#include 
7
 
8
int main()
9
{
10
  /* Load all libraries, initialize global tables like system color table and
11
     operations table. kolibri_gui_init() will EXIT with mcall -1 if it fails
12
     to do it's job. This is all you need to call and all libraries and GUI
13
     elements can be used after a successful call to this function
14
  */
15
  kolibri_gui_init();
16
  kolibri_kmenu_init();
17
  /* Set gui_event to REDRAW so that window is drawn in first iteration  */
18
  unsigned int gui_event = KOLIBRI_EVENT_REDRAW;
19
  oskey_t key;
20
 
21
  kolibri_window *main_window = kolibri_new_window(50, 50, 400, 200, "kmenu example");
6489 siemargl 22
 
6481 punk_joker 23
  kmenu_init(NULL);
6489 siemargl 24
 
6500 punk_joker 25
  ksubmenu_t *sub_menu1 = ksubmenu_new();
6559 siemargl 26
  ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Open", 101));
27
  ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Save", 102));
28
  ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_SEPARATOR, NULL, 0));
29
  ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Exit", 103));
6489 siemargl 30
 
6500 punk_joker 31
  ksubmenu_t *sub_menu2 = ksubmenu_new();
6559 siemargl 32
  ksubmenu_add(sub_menu2, kmenuitem_new(KMENUITEM_NORMAL, "Find", 201));
33
  ksubmenu_add(sub_menu2, kmenuitem_new(KMENUITEM_NORMAL, "Replace", 202));
6489 siemargl 34
 
6500 punk_joker 35
  ksubmenu_t *sub_menu22 = ksubmenu_new();
6559 siemargl 36
  ksubmenu_add(sub_menu22, kmenuitem_new(KMENUITEM_NORMAL, "CP1251", 211));
37
  ksubmenu_add(sub_menu22, kmenuitem_new(KMENUITEM_NORMAL, "UTF-8", 212));
38
  ksubmenu_add(sub_menu2, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "Encoding", sub_menu22));
6489 siemargl 39
 
6500 punk_joker 40
  ksubmenu_t *main_menu = ksubmenu_new();
6559 siemargl 41
  ksubmenu_add(main_menu, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "File", sub_menu1));
42
  ksubmenu_add(main_menu, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "Edit", sub_menu2));
6489 siemargl 43
 
6481 punk_joker 44
  extern volatile unsigned press_key;
45
 
46
  do  /* Start of main activity loop */
47
    {
6500 punk_joker 48
      if(gui_event == KOLIBRI_EVENT_REDRAW)
6489 siemargl 49
 
6481 punk_joker 50
	{
51
	  kolibri_handle_event_redraw(main_window);
52
	  kmainmenu_draw(main_menu);
53
	}
54
      else if(gui_event == KOLIBRI_EVENT_KEY)
55
	{
56
	  key = get_key();
57
	  switch (key.code)
58
	  {
59
	  }
60
	  press_key = key.val;
61
 
62
	  kolibri_handle_event_key(main_window);
63
	}
64
      else if(gui_event == KOLIBRI_EVENT_BUTTON)
65
	{
66
	  unsigned int pressed_button = kolibri_button_get_identifier();
67
	  switch (pressed_button)
68
	  {
69
	      case 101:
70
	        debug_board_write_str("File->Open\n");
71
			break;
72
	      case 102:
73
	        debug_board_write_str("File->Save\n");
74
			break;
75
	      case 103:
76
	        debug_board_write_str("File->Exit\n");
77
			break;
78
	      case 201:
79
	        debug_board_write_str("Edit->Find\n");
80
			break;
81
	      case 202:
82
	        debug_board_write_str("Edit->Replace\n");
83
			break;
84
	      case 211:
85
	        debug_board_write_str("Edit->Encoding->cp1251\n");
86
			break;
87
	      case 212:
88
	        debug_board_write_str("Edit->Encoding->UTF-8\n");
89
			break;
90
	      case BUTTON_CLOSE:
91
			kolibri_exit();
92
	  }
93
	 }
94
      else if(gui_event == KOLIBRI_EVENT_MOUSE)
95
	{
96
	  kolibri_handle_event_mouse(main_window);
97
	  kmainmenu_dispatch_cursorevent(main_menu);
98
	}
99
 
100
    } while((gui_event = get_os_event())); /* End of main activity loop */
101
 
102
  /* kolibri_quit(); */
103
 
104
  return 0;
105
}