Subversion Repositories Kolibri OS

Rev

Rev 6371 | 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.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Edit_SelectAll, 0x67
  68.         stdcall [ksubmenu_add], [main_menu_edit], eax
  69.        
  70.         ; add 'Edit' menu to main
  71.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Edit, [main_menu_edit]
  72.         stdcall [ksubmenu_add], [main_menu], eax
  73.  
  74.         ; init 'Instruments' menu
  75.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pencil, 0x51
  76.         stdcall [ksubmenu_add], [main_menu_instr], eax
  77.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Brush, 0x52
  78.         stdcall [ksubmenu_add], [main_menu_instr], eax
  79.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Spray, 0x53
  80.         stdcall [ksubmenu_add], [main_menu_instr], eax
  81.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Lastik, 0x54
  82.         stdcall [ksubmenu_add], [main_menu_instr], eax
  83.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Flood_fill, 0x55
  84.         stdcall [ksubmenu_add], [main_menu_instr], eax
  85.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Pipetka, 0x56
  86.         stdcall [ksubmenu_add], [main_menu_instr], eax
  87.         stdcall [kmenuitem_new], KMENUITEM_SEPARATOR, 0, 0
  88.         stdcall [ksubmenu_add], [main_menu_instr], eax
  89.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Line, 0x57
  90.         stdcall [ksubmenu_add], [main_menu_instr], eax
  91.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Rectangle, 0x58
  92.         stdcall [ksubmenu_add], [main_menu_instr], eax
  93.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Circle, 0x59
  94.         stdcall [ksubmenu_add], [main_menu_instr], eax
  95.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Ellips, 0x5a
  96.         stdcall [ksubmenu_add], [main_menu_instr], eax
  97.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Instr_Hard_contour, 0x5b
  98.         stdcall [ksubmenu_add], [main_menu_instr], eax
  99.  
  100.         ; add 'Instruments' menu to main
  101.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Instr, [main_menu_instr]
  102.         stdcall [ksubmenu_add], [main_menu], eax
  103.  
  104.         ; init 'Reflection' menu
  105.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionLR, 0x41
  106.         stdcall [ksubmenu_add], [main_menu_filters], eax
  107.         stdcall [kmenuitem_new], KMENUITEM_NORMAL, sz_main_menu_Filters_ReflectionTB, 0x42
  108.         stdcall [ksubmenu_add], [main_menu_filters], eax
  109.  
  110.         ; add 'Reflection' menu to main
  111.         stdcall [kmenuitem_new], KMENUITEM_SUBMENU, sz_main_menu_Filters, [main_menu_filters]
  112.         stdcall [ksubmenu_add], [main_menu], eax
  113.         ret
  114.  
  115. put_main_menu:
  116.         stdcall [kmainmenu_draw], [main_menu]
  117. ret
  118.  
  119. button_handler_main_menu:
  120.         menu_set 0x71, 7,1
  121.         menu_set 0x72, 7,2
  122.         menu_set 0x73, 7,3
  123.         menu_set 0x74, 7,4
  124.         menu_set 0x75, 7,5
  125.         menu_set 0x61, 6,1
  126.         menu_set 0x62, 6,2
  127.         menu_set 0x63, 6,3
  128.         menu_set 0x64, 6,4
  129.         menu_set 0x65, 6,5
  130.         menu_set 0x66, 6,6
  131.         menu_set 0x67, 6,7
  132.         menu_set 0x51, 5,1
  133.         menu_set 0x52, 5,2
  134.         menu_set 0x53, 5,3
  135.         menu_set 0x54, 5,4
  136.         menu_set 0x55, 5,5
  137.         menu_set 0x56, 5,6
  138.         menu_set 0x57, 5,7
  139.         menu_set 0x58, 5,8
  140.         menu_set 0x59, 5,9
  141.         menu_set 0x5a, 5,10
  142.         menu_set 0x5b, 5,11
  143.         menu_set 0x41, 4,1
  144.         menu_set 0x42, 4,2
  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. main_menu_filters dd 0
  153.  
  154. sz_main_menu_File        db 'File', 0
  155. sz_main_menu_File_New    db 'New', 0
  156. sz_main_menu_File_Open   db 'Open', 0
  157. sz_main_menu_File_Save   db 'Save', 0
  158. sz_main_menu_File_SaveAs db 'Save as', 0
  159. sz_main_menu_File_Exit   db 'Exit', 0
  160.  
  161. sz_main_menu_Edit       db 'Edit', 0
  162. sz_main_menu_Edit_Undo  db 'Undo', 0
  163. sz_main_menu_Edit_Redo  db 'Redo', 0
  164. sz_main_menu_Edit_Copy  db 'Copy', 0
  165. sz_main_menu_Edit_Paste db 'Paste', 0
  166. sz_main_menu_Edit_Cut   db 'Cut', 0
  167. sz_main_menu_Edit_ClS   db 'Clear screen', 0
  168. sz_main_menu_Edit_SelectAll db 'Select all', 0
  169.  
  170. sz_main_menu_Instr       db 'Instruments', 0
  171. sz_main_menu_Instr_Pencil db 'Pencil', 0
  172. sz_main_menu_Instr_Brush db 'Brush', 0
  173. sz_main_menu_Instr_Spray db 'Spray', 0
  174. sz_main_menu_Instr_Lastik db 'Lastik', 0
  175. sz_main_menu_Instr_Flood_fill db 'Flood fill', 0
  176. sz_main_menu_Instr_Pipetka db 'Pipetka', 0
  177. sz_main_menu_Instr_Line db 'Line', 0
  178. sz_main_menu_Instr_Rectangle db 'Rectangle', 0
  179. sz_main_menu_Instr_Circle db 'Circle', 0
  180. sz_main_menu_Instr_Ellips db 'Ellips', 0
  181. sz_main_menu_Instr_Hard_contour db 'Hard contour', 0
  182.  
  183. sz_main_menu_Filters      db 'Filters', 0
  184. sz_main_menu_Filters_ReflectionLR db 'Reflection |', 0
  185. sz_main_menu_Filters_ReflectionTB db 'Reflection -', 0