kolibrios-fun/programs/develop/tinypad/trunk/tinypad.inc
Mihail Semenyako (mike.dld) 7e149d6d99 tinypad: 4GB line length limit; settings in INI file; bugfixes
git-svn-id: svn://kolibrios.org@987 a494cfbc-eb01-0410-851d-a64ba20cac60
2008-12-29 19:08:59 +00:00

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