Subversion Repositories Kolibri OS

Rev

Rev 6489 | Go to most recent revision | Details | Last modification | View Log | RSS feed

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