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