forked from KolibriOS/kolibrios
7e149d6d99
git-svn-id: svn://kolibrios.org@987 a494cfbc-eb01-0410-851d-a64ba20cac60
370 lines
6.4 KiB
PHP
370 lines
6.4 KiB
PHP
|
|
struct POINT
|
|
X dd ?
|
|
Y dd ?
|
|
ends
|
|
|
|
struct RECT
|
|
Left dd ?
|
|
Top dd ?
|
|
Right dd ?
|
|
Bottom dd ?
|
|
ends
|
|
|
|
struct TBOX
|
|
width dw ?
|
|
x dw ?
|
|
height dw ?
|
|
y dw ?
|
|
sel.x db ?
|
|
pos.x db ?
|
|
ofs.x db ?
|
|
length db ?
|
|
text rb 255
|
|
ends
|
|
|
|
struct SCROLLBAR
|
|
Top dd ?
|
|
Size dd ?
|
|
ends
|
|
|
|
struct EDITOR
|
|
FilePath db PATHL dup(?)
|
|
FileName dd ?
|
|
Bounds RECT
|
|
Lines dd ?
|
|
Lines.Size dd ?
|
|
Lines.Count dd ?
|
|
Columns.Count dd ?
|
|
Caret POINT
|
|
SelStart POINT
|
|
TopLeft POINT
|
|
VScroll SCROLLBAR
|
|
HScroll SCROLLBAR
|
|
Gutter.Width dd ?
|
|
Gutter.Visible db ?
|
|
AsmMode db ?
|
|
Modified db ?
|
|
db ?
|
|
ends
|
|
|
|
struct EDITOR_LINE_DATA
|
|
Size dd ?
|
|
Flags dw ?
|
|
ends
|
|
|
|
EDITOR_LINE_FLAG_MOFIFIED = 0x0001
|
|
EDITOR_LINE_FLAG_SAVED = 0x0002
|
|
|
|
struct TABITEM
|
|
Editor EDITOR
|
|
ends
|
|
|
|
struct TABCTL
|
|
Bounds RECT
|
|
Items dd ?
|
|
Items.Count dd ?
|
|
Items.Left dd ?
|
|
Current TABITEM
|
|
Current.Ptr dd ?
|
|
Default.Ptr dd ?
|
|
Buttons.First dd ?
|
|
Buttons.Last dd ?
|
|
Style db ?
|
|
db 3 dup(?)
|
|
ends
|
|
|
|
|
|
|
|
virtual at -20
|
|
POPUP:
|
|
.actions dd ?
|
|
.data dd ?
|
|
.acc_ofs dd ?
|
|
.size:
|
|
.height dw ?
|
|
.width dw ?
|
|
.pos:
|
|
.y dw ?
|
|
.x dw ?
|
|
end virtual
|
|
|
|
macro popup_res _name,[_lang,_title,_accel,_action]
|
|
{
|
|
common
|
|
local s1,s2,m1,m2,c1,c2
|
|
m1 = 0
|
|
m2 = 0
|
|
c1 = 0
|
|
c2 = 0
|
|
if used _name
|
|
dd _name#.actions
|
|
dd _name#.data
|
|
dd ?
|
|
dw ? ; height
|
|
dw ? ; width
|
|
dw ? ; y
|
|
dw ? ; x
|
|
_name:
|
|
forward
|
|
if (lang eq _lang) | (_lang eq @!)
|
|
db 1
|
|
end if
|
|
common
|
|
.data:
|
|
forward
|
|
if (lang eq _lang) | (_lang eq @!)
|
|
if _title eq '-'
|
|
db 1,'-'
|
|
c2 = c2+2
|
|
else
|
|
virtual at 0
|
|
db _title
|
|
s1 = $
|
|
end virtual
|
|
if m1 < s1
|
|
m1 = s1
|
|
end if
|
|
virtual at 0
|
|
db _accel
|
|
s2 = $
|
|
end virtual
|
|
if m2 < s2
|
|
m2 = s2
|
|
end if
|
|
db s1,_title,s2,_accel
|
|
c1 = c1+1
|
|
end if
|
|
end if
|
|
common
|
|
db 0
|
|
align 4
|
|
.actions:
|
|
forward
|
|
if (lang eq _lang) | (_lang eq @!)
|
|
if (_action eq )
|
|
dd 0
|
|
else
|
|
dd _name#.#_action
|
|
end if
|
|
end if
|
|
common
|
|
.size = $-_name+20
|
|
.max_title = m1
|
|
.max_accel = m2
|
|
.cnt_item = c1
|
|
.cnt_sep = c2
|
|
if (m2 = 0)
|
|
m2 = -2
|
|
end if
|
|
store word (m1*6+m2*6+6*8) at _name+POPUP.width
|
|
store word (c1*POP_IHEIGHT+c2*POP_SHEIGHT+4) at _name+POPUP.height
|
|
store dword (((m1+2)*6-1)*65536) at _name+POPUP.acc_ofs
|
|
end if
|
|
}
|
|
|
|
macro menubar_res _name,[_lang,_title,_popup,_onshow]
|
|
{
|
|
common
|
|
local s,m,c,x
|
|
m = 0
|
|
c = 0
|
|
x = 2
|
|
if used _name
|
|
_name:
|
|
forward
|
|
if lang eq _lang
|
|
virtual at 0
|
|
db _title
|
|
s = $
|
|
end virtual
|
|
if m < s
|
|
m = s
|
|
end if
|
|
dw (s+2)*6,x,ATOPH-1,0
|
|
db s,_title
|
|
c = c+1
|
|
x = x + (s+2)*6
|
|
end if
|
|
common
|
|
db 0
|
|
align 4
|
|
.popups:
|
|
forward
|
|
if lang eq _lang
|
|
dd _popup
|
|
end if
|
|
common
|
|
align 4
|
|
.onshow:
|
|
forward
|
|
if lang eq _lang
|
|
dd _onshow
|
|
end if
|
|
common
|
|
.size = $-_name
|
|
.max_title = m
|
|
.cnt_item = c
|
|
.width = x-7
|
|
end if
|
|
}
|
|
|
|
;// MOUSE EVENTS
|
|
|
|
MEV_LDOWN = 1
|
|
MEV_LUP = 2
|
|
MEV_RDOWN = 3
|
|
MEV_RUP = 4
|
|
MEV_WHEEL = 5
|
|
MEV_MOVE = 6
|
|
|
|
;// KEY MODIFIERS
|
|
|
|
KM_SHIFT = 0x00010000
|
|
KM_CTRL = 0x00020000
|
|
KM_ALT = 0x00040000
|
|
|
|
KM_CTRLSHIFT = 0x00030000
|
|
KM_ALTSHIFT = 0x00050000
|
|
KM_CTRLALT = 0x00060000
|
|
|
|
KM_CTRLALTSHIFT = 0x00070000
|
|
|
|
;// KEY CODES
|
|
|
|
KEY_ESCAPE = 0x00000001
|
|
KEY_SNAPSHOT = 0x00000137
|
|
KEY_PAUSE = 0x0000021D
|
|
|
|
KEY_F1 = 0x0000003B
|
|
KEY_F2 = 0x0000003C
|
|
KEY_F3 = 0x0000003D
|
|
KEY_F4 = 0x0000003E
|
|
KEY_F5 = 0x0000003F
|
|
KEY_F6 = 0x00000040
|
|
KEY_F7 = 0x00000041
|
|
KEY_F8 = 0x00000042
|
|
KEY_F9 = 0x00000043
|
|
KEY_F10 = 0x00000044
|
|
KEY_F11 = 0x00000057
|
|
KEY_F12 = 0x00000058
|
|
|
|
KEY_TILDE = 0x00000029
|
|
KEY_MINUS = 0x0000000C
|
|
KEY_EQUAL = 0x0000000D
|
|
KEY_BACKSPACE = 0x0000000E
|
|
KEY_TAB = 0x0000000F
|
|
KEY_SQBRACE1 = 0x0000001A
|
|
KEY_SQBRACE2 = 0x0000001B
|
|
KEY_SLASH1 = 0x00000035
|
|
KEY_SLASH2 = 0x0000002B
|
|
KEY_SEMICOLON = 0x00000027
|
|
KEY_QUOTE = 0x00000028
|
|
KEY_COMMA = 0x00000033
|
|
KEY_DOT = 0x00000034
|
|
KEY_SPACE = 0x00000039
|
|
|
|
KEY_1 = 0x00000002
|
|
KEY_2 = 0x00000003
|
|
KEY_3 = 0x00000004
|
|
KEY_4 = 0x00000005
|
|
KEY_5 = 0x00000006
|
|
KEY_6 = 0x00000007
|
|
KEY_7 = 0x00000008
|
|
KEY_8 = 0x00000009
|
|
KEY_9 = 0x0000000A
|
|
KEY_0 = 0x0000000B
|
|
|
|
KEY_A = 0x0000001E
|
|
KEY_B = 0x00000030
|
|
KEY_C = 0x0000002E
|
|
KEY_D = 0x00000020
|
|
KEY_E = 0x00000012
|
|
KEY_F = 0x00000021
|
|
KEY_G = 0x00000022
|
|
KEY_H = 0x00000023
|
|
KEY_I = 0x00000017
|
|
KEY_J = 0x00000024
|
|
KEY_K = 0x00000025
|
|
KEY_L = 0x00000026
|
|
KEY_M = 0x00000032
|
|
KEY_N = 0x00000031
|
|
KEY_O = 0x00000018
|
|
KEY_P = 0x00000019
|
|
KEY_Q = 0x00000010
|
|
KEY_R = 0x00000013
|
|
KEY_S = 0x0000001F
|
|
KEY_T = 0x00000014
|
|
KEY_U = 0x00000016
|
|
KEY_V = 0x0000002F
|
|
KEY_W = 0x00000011
|
|
KEY_X = 0x0000002D
|
|
KEY_Y = 0x00000015
|
|
KEY_Z = 0x0000002C
|
|
|
|
KEY_CAPSLK = 0x0000003A
|
|
KEY_SCRLK = 0x00000046
|
|
KEY_NUMLK = 0x00000069
|
|
|
|
KEY_RETURN = 0x0000001C
|
|
KEY_NUMRETURN = 0x0000011C
|
|
|
|
KEY_LCONTROL = 0x0000001D
|
|
KEY_RCONTROL = 0x0000011D
|
|
KEY_LSHIFT = 0x0000002A
|
|
KEY_RSHIFT = 0x00000036
|
|
KEY_LALT = 0x00000038
|
|
KEY_RALT = 0x00000138
|
|
|
|
KEY_LWIN = 0x0000015B
|
|
KEY_RWIN = 0x0000015C
|
|
KEY_APPS = 0x0000015D
|
|
|
|
KEY_INSERT = 0x00000152
|
|
KEY_DELETE = 0x00000153
|
|
KEY_HOME = 0x00000147
|
|
KEY_END = 0x0000014F
|
|
KEY_PAGEUP = 0x00000149
|
|
KEY_PAGEDOWN = 0x00000151
|
|
KEY_UP = 0x00000148
|
|
KEY_LEFT = 0x0000014B
|
|
KEY_RIGHT = 0x0000014D
|
|
KEY_DOWN = 0x00000150
|
|
|
|
KEY_DIVIDE = 0x00000135
|
|
KEY_MULTIPLY = 0x00000037
|
|
KEY_SUBTRACT = 0x0000004A
|
|
KEY_ADD = 0x0000004E
|
|
KEY_SEPARATOR = 0x00000053
|
|
|
|
KEY_NUM1 = 0x0000004F
|
|
KEY_NUM2 = 0x00000050
|
|
KEY_NUM3 = 0x00000051
|
|
KEY_NUM4 = 0x0000004B
|
|
KEY_NUM5 = 0x0000004C
|
|
KEY_NUM6 = 0x0000004D
|
|
KEY_NUM7 = 0x00000047
|
|
KEY_NUM8 = 0x00000048
|
|
KEY_NUM9 = 0x00000049
|
|
KEY_NUM0 = 0x00000052
|
|
|
|
;// EXTENDED KEY CODES (MULTIMEDIA KEYBOARDS)
|
|
|
|
KEY_MYDOCUMENTS = 0x0000014C
|
|
KEY_MYPICTURES = 0x00000164
|
|
KEY_MYMUSIC = 0x0000013C
|
|
KEY_MUTE = 0x00000120
|
|
KEY_PLAYPAUSE = 0x00000122
|
|
KEY_STOP = 0x00000124
|
|
KEY_VOLUMEUP = 0x00000130
|
|
KEY_VOLUMEDOWN = 0x0000013E
|
|
KEY_PREVSONG = 0x00000110
|
|
KEY_NEXTSONG = 0x00000119
|
|
KEY_MEDIA = 0x0000016D
|
|
KEY_MAIL = 0x0000016C
|
|
KEY_WEBHOME = 0x00000132
|
|
KEY_MESSENGER = 0x00000105
|
|
|
|
KEY_CALCULATOR = 0x00000121
|
|
KEY_LOGOFF = 0x00000116
|
|
KEY_SLEEP = 0x0000015F |