Subversion Repositories Kolibri OS

Rev

Rev 629 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. struct POINT
  3.   X dd ?
  4.   Y dd ?
  5. ends
  6.  
  7. struct RECT
  8.   Left   dd ?
  9.   Top    dd ?
  10.   Right  dd ?
  11.   Bottom dd ?
  12. ends
  13.  
  14. struct TBOX
  15.   width  dw ?
  16.   x      dw ?
  17.   height dw ?
  18.   y      dw ?
  19.   sel.x  db ?
  20.   pos.x  db ?
  21.   ofs.x  db ?
  22.   length db ?
  23.   text   rb 255
  24. ends
  25.  
  26. struct SCROLLBAR
  27.   Top  dd ?
  28.   Size dd ?
  29. ends
  30.  
  31. struct EDITOR
  32.   FilePath       db PATHL dup(?)
  33.   FileName       dd ?
  34.   Bounds         RECT
  35.   Lines          dd ?
  36.   Lines.Size     dd ?
  37.   Lines.Count    dd ?
  38.   Columns.Count  dd ?
  39.   Caret          POINT
  40.   SelStart       POINT
  41.   TopLeft        POINT
  42.   VScroll        SCROLLBAR
  43.   HScroll        SCROLLBAR
  44.   Gutter.Width   dd ?
  45.   Gutter.Visible db ?
  46.   AsmMode        db ?
  47.   Modified       db ?
  48.                  db ?
  49. ends
  50.  
  51. struct EDITOR_LINE_DATA
  52.   Size  dd ?
  53.   Flags dw ?
  54. ends
  55.  
  56. EDITOR_LINE_FLAG_MOFIFIED = 0x0001
  57. EDITOR_LINE_FLAG_SAVED    = 0x0002
  58.  
  59. struct TABITEM
  60.   Editor EDITOR
  61. ends
  62.  
  63. struct TABCTL
  64.   Bounds        RECT
  65.   Items         dd ?
  66.   Items.Count   dd ?
  67.   Items.Left    dd ?
  68.   Current       TABITEM
  69.   Current.Ptr   dd ?
  70.   Default.Ptr   dd ?
  71.   Buttons.First dd ?
  72.   Buttons.Last  dd ?
  73.   Style         db ?
  74.                 db 3 dup(?)
  75. ends
  76.  
  77.  
  78.  
  79. virtual at -20
  80.  POPUP:
  81.   .actions dd ?
  82.   .data    dd ?
  83.   .acc_ofs dd ?
  84.  .size:
  85.   .height  dw ?
  86.   .width   dw ?
  87.  .pos:
  88.   .y       dw ?
  89.   .x       dw ?
  90. end virtual
  91.  
  92. macro popup_res _name,[_lang,_title,_accel,_action]
  93. {
  94.   common
  95.     local s1,s2,m1,m2,c1,c2
  96.     m1 = 0
  97.     m2 = 0
  98.     c1 = 0
  99.     c2 = 0
  100.     if used _name
  101.       dd _name#.actions
  102.       dd _name#.data
  103.       dd ?
  104.       dw ?              ; height
  105.       dw ?              ; width
  106.       dw ?              ; y
  107.       dw ?              ; x
  108.       _name:
  109.   forward
  110.       if (lang eq _lang) | (_lang eq @!)
  111.         db 1
  112.       end if
  113.   common
  114.       .data:
  115.   forward
  116.       if (lang eq _lang) | (_lang eq @!)
  117.         if _title eq '-'
  118.           db 1,'-'
  119.           c2 = c2+2
  120.         else
  121.           virtual at 0
  122.             db _title
  123.             s1 = $
  124.           end virtual
  125.           if m1 < s1
  126.             m1 = s1
  127.           end if
  128.           virtual at 0
  129.             db _accel
  130.             s2 = $
  131.           end virtual
  132.           if m2 < s2
  133.             m2 = s2
  134.           end if
  135.           db s1,_title,s2,_accel
  136.           c1 = c1+1
  137.         end if
  138.       end if
  139.   common
  140.       db 0
  141.       align 4
  142.       .actions:
  143.   forward
  144.       if (lang eq _lang) | (_lang eq @!)
  145.         if (_action eq )
  146.           dd 0
  147.         else
  148.           dd _name#.#_action
  149.         end if
  150.       end if
  151.   common
  152.       .size      = $-_name+20
  153.       .max_title = m1
  154.       .max_accel = m2
  155.       .cnt_item  = c1
  156.       .cnt_sep   = c2
  157.       if (m2 = 0)
  158.         m2 = -2
  159.       end if
  160.       store word (m1*6+m2*6+6*8) at _name+POPUP.width
  161.       store word (c1*POP_IHEIGHT+c2*POP_SHEIGHT+4) at _name+POPUP.height
  162.       store dword (((m1+2)*6-1)*65536) at _name+POPUP.acc_ofs
  163.     end if
  164. }
  165.  
  166. macro menubar_res _name,[_lang,_title,_popup,_onshow]
  167. {
  168.   common
  169.     local s,m,c,x
  170.     m = 0
  171.     c = 0
  172.     x = 2
  173.     if used _name
  174.       _name:
  175.   forward
  176.       if lang eq _lang
  177.         virtual at 0
  178.           db _title
  179.           s = $
  180.         end virtual
  181.         if m < s
  182.           m = s
  183.         end if
  184.         dw (s+2)*6,x,ATOPH-1,0
  185.         db s,_title
  186.         c = c+1
  187.         x = x + (s+2)*6
  188.       end if
  189.   common
  190.       db 0
  191.       align 4
  192.       .popups:
  193.   forward
  194.       if lang eq _lang
  195.         dd _popup
  196.       end if
  197.   common
  198.       align 4
  199.       .onshow:
  200.   forward
  201.       if lang eq _lang
  202.         dd _onshow
  203.       end if
  204.   common
  205.       .size      = $-_name
  206.       .max_title = m
  207.       .cnt_item  = c
  208.       .width     = x-7
  209.     end if
  210. }
  211.  
  212. ;// MOUSE EVENTS
  213.  
  214. MEV_LDOWN = 1
  215. MEV_LUP   = 2
  216. MEV_RDOWN = 3
  217. MEV_RUP   = 4
  218. MEV_WHEEL = 5
  219. MEV_MOVE  = 6
  220.  
  221. ;// KEY MODIFIERS
  222.  
  223. KM_SHIFT        = 0x00010000
  224. KM_CTRL         = 0x00020000
  225. KM_ALT          = 0x00040000
  226.  
  227. KM_CTRLSHIFT    = 0x00030000
  228. KM_ALTSHIFT     = 0x00050000
  229. KM_CTRLALT      = 0x00060000
  230.  
  231. KM_CTRLALTSHIFT = 0x00070000
  232.  
  233. ;// KEY CODES
  234.  
  235. KEY_ESCAPE      = 0x00000001
  236. KEY_SNAPSHOT    = 0x00000137
  237. KEY_PAUSE       = 0x0000021D
  238.  
  239. KEY_F1          = 0x0000003B
  240. KEY_F2          = 0x0000003C
  241. KEY_F3          = 0x0000003D
  242. KEY_F4          = 0x0000003E
  243. KEY_F5          = 0x0000003F
  244. KEY_F6          = 0x00000040
  245. KEY_F7          = 0x00000041
  246. KEY_F8          = 0x00000042
  247. KEY_F9          = 0x00000043
  248. KEY_F10         = 0x00000044
  249. KEY_F11         = 0x00000057
  250. KEY_F12         = 0x00000058
  251.  
  252. KEY_TILDE       = 0x00000029
  253. KEY_MINUS       = 0x0000000C
  254. KEY_EQUAL       = 0x0000000D
  255. KEY_BACKSPACE   = 0x0000000E
  256. KEY_TAB         = 0x0000000F
  257. KEY_SQBRACE1    = 0x0000001A
  258. KEY_SQBRACE2    = 0x0000001B
  259. KEY_SLASH1      = 0x00000035
  260. KEY_SLASH2      = 0x0000002B
  261. KEY_SEMICOLON   = 0x00000027
  262. KEY_QUOTE       = 0x00000028
  263. KEY_COMMA       = 0x00000033
  264. KEY_DOT         = 0x00000034
  265. KEY_SPACE       = 0x00000039
  266.  
  267. KEY_1           = 0x00000002
  268. KEY_2           = 0x00000003
  269. KEY_3           = 0x00000004
  270. KEY_4           = 0x00000005
  271. KEY_5           = 0x00000006
  272. KEY_6           = 0x00000007
  273. KEY_7           = 0x00000008
  274. KEY_8           = 0x00000009
  275. KEY_9           = 0x0000000A
  276. KEY_0           = 0x0000000B
  277.  
  278. KEY_A           = 0x0000001E
  279. KEY_B           = 0x00000030
  280. KEY_C           = 0x0000002E
  281. KEY_D           = 0x00000020
  282. KEY_E           = 0x00000012
  283. KEY_F           = 0x00000021
  284. KEY_G           = 0x00000022
  285. KEY_H           = 0x00000023
  286. KEY_I           = 0x00000017
  287. KEY_J           = 0x00000024
  288. KEY_K           = 0x00000025
  289. KEY_L           = 0x00000026
  290. KEY_M           = 0x00000032
  291. KEY_N           = 0x00000031
  292. KEY_O           = 0x00000018
  293. KEY_P           = 0x00000019
  294. KEY_Q           = 0x00000010
  295. KEY_R           = 0x00000013
  296. KEY_S           = 0x0000001F
  297. KEY_T           = 0x00000014
  298. KEY_U           = 0x00000016
  299. KEY_V           = 0x0000002F
  300. KEY_W           = 0x00000011
  301. KEY_X           = 0x0000002D
  302. KEY_Y           = 0x00000015
  303. KEY_Z           = 0x0000002C
  304.  
  305. KEY_CAPSLK      = 0x0000003A
  306. KEY_SCRLK       = 0x00000046
  307. KEY_NUMLK       = 0x00000069
  308.  
  309. KEY_RETURN      = 0x0000001C
  310. KEY_NUMRETURN   = 0x0000011C
  311.  
  312. KEY_LCONTROL    = 0x0000001D
  313. KEY_RCONTROL    = 0x0000011D
  314. KEY_LSHIFT      = 0x0000002A
  315. KEY_RSHIFT      = 0x00000036
  316. KEY_LALT        = 0x00000038
  317. KEY_RALT        = 0x00000138
  318.  
  319. KEY_LWIN        = 0x0000015B
  320. KEY_RWIN        = 0x0000015C
  321. KEY_APPS        = 0x0000015D
  322.  
  323. KEY_INSERT      = 0x00000152
  324. KEY_DELETE      = 0x00000153
  325. KEY_HOME        = 0x00000147
  326. KEY_END         = 0x0000014F
  327. KEY_PAGEUP      = 0x00000149
  328. KEY_PAGEDOWN    = 0x00000151
  329. KEY_UP          = 0x00000148
  330. KEY_LEFT        = 0x0000014B
  331. KEY_RIGHT       = 0x0000014D
  332. KEY_DOWN        = 0x00000150
  333.  
  334. KEY_DIVIDE      = 0x00000135
  335. KEY_MULTIPLY    = 0x00000037
  336. KEY_SUBTRACT    = 0x0000004A
  337. KEY_ADD         = 0x0000004E
  338. KEY_SEPARATOR   = 0x00000053
  339.  
  340. KEY_NUM1        = 0x0000004F
  341. KEY_NUM2        = 0x00000050
  342. KEY_NUM3        = 0x00000051
  343. KEY_NUM4        = 0x0000004B
  344. KEY_NUM5        = 0x0000004C
  345. KEY_NUM6        = 0x0000004D
  346. KEY_NUM7        = 0x00000047
  347. KEY_NUM8        = 0x00000048
  348. KEY_NUM9        = 0x00000049
  349. KEY_NUM0        = 0x00000052
  350.  
  351. ;// EXTENDED KEY CODES (MULTIMEDIA KEYBOARDS)
  352.  
  353. KEY_MYDOCUMENTS = 0x0000014C
  354. KEY_MYPICTURES  = 0x00000164
  355. KEY_MYMUSIC     = 0x0000013C
  356. KEY_MUTE        = 0x00000120
  357. KEY_PLAYPAUSE   = 0x00000122
  358. KEY_STOP        = 0x00000124
  359. KEY_VOLUMEUP    = 0x00000130
  360. KEY_VOLUMEDOWN  = 0x0000013E
  361. KEY_PREVSONG    = 0x00000110
  362. KEY_NEXTSONG    = 0x00000119
  363. KEY_MEDIA       = 0x0000016D
  364. KEY_MAIL        = 0x0000016C
  365. KEY_WEBHOME     = 0x00000132
  366. KEY_MESSENGER   = 0x00000105
  367.  
  368. KEY_CALCULATOR  = 0x00000121
  369. KEY_LOGOFF      = 0x00000116
  370. KEY_SLEEP       = 0x0000015F