Subversion Repositories Kolibri OS

Rev

Rev 6362 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. KMENUITEM_NORMAL equ 0
  2. KMENUITEM_SUBMENU equ 1
  3. KMENUITEM_SEPARATOR equ 2
  4.  
  5. init_main_menu:
  6.         stdcall [kmenu_init], syscolors
  7.        
  8.         stdcall [ksubmenu_new]
  9.         mov [main_menu], eax
  10.        
  11.         stdcall [ksubmenu_new]
  12.         mov [main_menu_file], eax
  13.         stdcall [ksubmenu_new]
  14.         mov [main_menu_edit], eax
  15.         stdcall [ksubmenu_new]
  16.         mov [main_menu_instr], eax
  17.        
  18.         ; init 'File' menu
  19.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_New, 0x71
  20.         stdcall [ksubmenu_add], [main_menu_file], eax
  21.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Open, 0x72
  22.         stdcall [ksubmenu_add], [main_menu_file], eax
  23.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Save, 0x73
  24.         stdcall [ksubmenu_add], [main_menu_file], eax
  25.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_SaveAs, 0x74
  26.         stdcall [ksubmenu_add], [main_menu_file], eax
  27.         stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
  28.         stdcall [ksubmenu_add], [main_menu_file], eax
  29.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_File_Exit, 0x75
  30.         stdcall [ksubmenu_add], [main_menu_file], eax
  31.        
  32.         ; add 'File' menu to main
  33.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_File, [main_menu_file]
  34.         stdcall [ksubmenu_add], [main_menu], eax
  35.        
  36.         ; init 'Edit' menu
  37.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Undo, 0x61
  38.         stdcall [ksubmenu_add], [main_menu_edit], eax
  39.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Redo, 0x62
  40.         stdcall [ksubmenu_add], [main_menu_edit], eax
  41.         stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
  42.         stdcall [ksubmenu_add], [main_menu_edit], eax
  43.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Copy, 0x63
  44.         stdcall [ksubmenu_add], [main_menu_edit], eax
  45.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Paste, 0x64
  46.         stdcall [ksubmenu_add], [main_menu_edit], eax
  47.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_Cut, 0x65
  48.         stdcall [ksubmenu_add], [main_menu_edit], eax
  49.         stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
  50.         stdcall [ksubmenu_add], [main_menu_edit], eax
  51.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_ClS, 0x66
  52.         stdcall [ksubmenu_add], [main_menu_edit], eax
  53.        
  54.         ; add 'Edit' menu to main
  55.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
  56.         stdcall [ksubmenu_add], [main_menu], eax
  57.  
  58.         ; init 'Edit' menu
  59.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
  60.         stdcall [ksubmenu_add], [main_menu_instr], eax
  61.  
  62.         ; add 'Instruments' menu to main
  63.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
  64.         stdcall [ksubmenu_add], [main_menu], eax
  65.  
  66.         ret
  67.  
  68. put_main_menu:
  69.         stdcall [kmainmenu_draw], [main_menu]
  70. ret
  71.  
  72. button_handler_main_menu:
  73.         cmp eax, 0x71
  74.         jne @f
  75.                 mov [number_panel], 7
  76.                 mov [number_menu], 1
  77.                 jmp TakeInstruments
  78. @@:
  79.         cmp eax, 0x72
  80.         jne @f
  81.                 mov [number_panel], 7
  82.                 mov [number_menu], 2
  83.                 jmp TakeInstruments
  84. @@:
  85.         cmp eax, 0x73
  86.         jne @f
  87.                 mov [number_panel], 7
  88.                 mov [number_menu], 3
  89.                 jmp TakeInstruments
  90. @@:
  91.         cmp eax, 0x74
  92.         jne @f
  93.                 mov [number_panel], 7
  94.                 mov [number_menu], 4
  95.                 jmp TakeInstruments
  96. @@:
  97.         cmp eax, 0x75
  98.         jne @f
  99.                 mov [number_panel], 7
  100.                 mov [number_menu], 5
  101.                 jmp TakeInstruments
  102. @@:
  103.         cmp eax, 0x61
  104.         jne @f
  105.                 mov [number_panel], 6
  106.                 mov [number_menu], 1
  107.                 jmp TakeInstruments
  108. @@:
  109.         cmp eax, 0x62
  110.         jne @f
  111.                 mov [number_panel], 6
  112.                 mov [number_menu], 2
  113.                 jmp TakeInstruments
  114. @@:
  115.         cmp eax, 0x63
  116.         jne @f
  117.                 mov [number_panel], 6
  118.                 mov [number_menu], 3
  119.                 jmp TakeInstruments
  120. @@:
  121.         cmp eax, 0x64
  122.         jne @f
  123.                 mov [number_panel], 6
  124.                 mov [number_menu], 4
  125.                 jmp TakeInstruments
  126. @@:
  127.         cmp eax, 0x65
  128.         jne @f
  129.                 mov [number_panel], 6
  130.                 mov [number_menu], 5
  131.                 jmp TakeInstruments
  132. @@:
  133.         cmp eax, 0x66
  134.         jne @f
  135.                 mov [number_panel], 6
  136.                 mov [number_menu], 6
  137.                 jmp TakeInstruments
  138. @@:
  139.         cmp eax, 0x51
  140.         jne @f
  141.                 mov [number_panel], 5
  142.                 mov [number_menu], 1
  143.                 jmp TakeInstruments
  144. @@:
  145. .end_handler:
  146. ret
  147.  
  148. main_menu dd 0
  149. main_menu_file  dd 0
  150. main_menu_edit dd 0
  151. main_menu_instr dd 0
  152.  
  153. sz_main_menu_File        db 'File', 0
  154. sz_main_menu_File_New    db 'New', 0
  155. sz_main_menu_File_Open   db 'Open', 0
  156. sz_main_menu_File_Save   db 'Save', 0
  157. sz_main_menu_File_SaveAs db 'Save as', 0
  158. sz_main_menu_File_Exit   db 'Exit', 0
  159.  
  160. sz_main_menu_Edit       db 'Edit', 0
  161. sz_main_menu_Edit_Undo  db 'Undo', 0
  162. sz_main_menu_Edit_Redo  db 'Redo', 0
  163. sz_main_menu_Edit_Copy  db 'Copy', 0
  164. sz_main_menu_Edit_Paste db 'Paste', 0
  165. sz_main_menu_Edit_Cut   db 'Cut', 0
  166. sz_main_menu_Edit_ClS   db 'Clear screen', 0
  167.  
  168. sz_main_menu_Instr       db 'Instruments', 0
  169. sz_main_menu_Instr_Pencil db 'Pencil', 0