Subversion Repositories Kolibri OS

Rev

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