Subversion Repositories Kolibri OS

Rev

Rev 6481 | 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 
3
#include 
6481 punk_joker 4
#include 
5
#include 
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");
6489 siemargl 21
 
6481 punk_joker 22
  kmenu_init(NULL);
6489 siemargl 23
 
6481 punk_joker 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));
6489 siemargl 29
 
6481 punk_joker 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));
6489 siemargl 33
 
6481 punk_joker 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));
6489 siemargl 38
 
6481 punk_joker 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));
6489 siemargl 42
 
6481 punk_joker 43
  extern volatile unsigned press_key;
44
 
45
  do  /* Start of main activity loop */
46
    {
6489 siemargl 47
      if(gui_event == KOLIBRI_EVENT_REDRAW)#include 
48
 
6481 punk_joker 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
}