diff --git a/programs/macros.inc b/programs/macros.inc index 5bd3957d7..1971b882a 100644 --- a/programs/macros.inc +++ b/programs/macros.inc @@ -436,12 +436,14 @@ struc POINT _t,_dx,_dy { ; structure definition helper include 'struct.inc' -struct RECT - left dd ? - top dd ? - right dd ? - bottom dd ? -ends +macro define@lstruct name,[field] + { local value + common struc name [value] \{ + forward \.#field = value + common \} } + +;usecase +define@lstruct area,X,Y,W,H struct BOX left dd ? diff --git a/programs/other/pipet/pipet.asm b/programs/other/pipet/pipet.asm index 1e31fe467..e886ac8af 100644 --- a/programs/other/pipet/pipet.asm +++ b/programs/other/pipet/pipet.asm @@ -129,11 +129,11 @@ draw_window: mcall , SSF_GET_SKIN_HEIGHT, mov ecx, eax - add ecx, WIN_Y * 65536 + WIN_H + add ecx, WIN.Y * 65536 + WIN.H mov edx, [win_cols.work] add edx, 0x34000000 - mcall SF_CREATE_WINDOW, , , , , header + mcall SF_CREATE_WINDOW, , , , , header call draw_base call draw_update @@ -147,30 +147,30 @@ draw_window: ; draw basic elements of window draw_base: - mcall SF_DRAW_RECT, , , [win_cols.work_graph] - mcall , , , - mcall , , , - mcall , , , - mcall , , , + mcall SF_DRAW_RECT, , , [win_cols.work_graph] + mcall , , , + mcall , , , + mcall , , , + mcall , , , - mcall , , , [win_cols.work_dark] - mcall , , , - mcall , , , - mcall , , , - mcall , , , + mcall , , , [win_cols.work_dark] + mcall , , , + mcall , , , + mcall , , , + mcall , , , - mcall , , , [col_white] - mcall , , , - mcall , , , - mcall , , , - mcall , , , + mcall , , , [col_white] + mcall , , , + mcall , , , + mcall , , , + mcall , , , ; buttons 11, 12, 13 and 14 - mcall SF_DEFINE_BUTTON, , , 0x4000000B - mcall , , , 0x4000000C - mcall , , , 0x4000000D - mcall , , , 0x6000000E + mcall SF_DEFINE_BUTTON, , , 0x4000000B + mcall , , , 0x4000000C + mcall , , , 0x4000000D + mcall , , , 0x6000000E ; 18*18 pixels icon mcall SF_PUT_IMAGE_EXT, [pip_icon], 0x00120012, 0x000B000F, 32 @@ -182,12 +182,12 @@ draw_base: draw_update: ; current color rect - mcall SF_DRAW_RECT, , , [sel_color] + mcall SF_DRAW_RECT, , , [sel_color] ; color codes - mcall , , , [col_white] + mcall , , , [col_white] - mcall SF_DRAW_NUMBER, 0x00060100, [sel_color], , 0x50000000, [col_white] + mcall SF_DRAW_NUMBER, 0x00060100, [sel_color], , 0x50000000, [col_white] mov ebx, 0x00030000 xor ecx, ecx @@ -257,12 +257,12 @@ make_pick_active: mov [cell_act_x], 0x03 mov [cell_act_y], 0x03 - mcall SF_DRAW_RECT, , , [col_white] - mcall SF_DRAW_TEXT, , 0x10000000, mes_pick, 4 + mcall SF_DRAW_RECT, , , [col_white] + mcall SF_DRAW_TEXT, , 0x10000000, mes_pick, 4 mcall SF_SLEEP, 50 - mcall SF_DRAW_RECT, , , [win_cols.work_light] + mcall SF_DRAW_RECT, , , [win_cols.work_light] mcall SF_PUT_IMAGE_EXT, [pip_icon], 0x00120012, 0x000B000F, 32 call draw_update @@ -340,7 +340,7 @@ clamp_pixels: ; copy color HEX code copy_col_hex: - mcall SF_DRAW_RECT, , , [col_white] + mcall SF_DRAW_RECT, , , [col_white] mov ebx, [sel_color] mov ecx, 6 @@ -360,10 +360,10 @@ copy_col_hex: loop ch_loop mcall SF_CLIPBOARD, 2, color_hex.end - color_hex, color_hex - mcall SF_DRAW_TEXT, , 0x10000000, mes_copy, 12 + mcall SF_DRAW_TEXT, , 0x10000000, mes_copy, 12 mcall SF_SLEEP, 50 - mcall SF_DRAW_RECT, , , [col_white] + mcall SF_DRAW_RECT, , , [col_white] call draw_update jmp still @@ -372,7 +372,7 @@ copy_col_hex: ; copy color RGB code copy_col_rgb: - mcall SF_DRAW_RECT, , , [col_white] + mcall SF_DRAW_RECT, , , [col_white] mov bl, 10 mov edx, [sel_color] @@ -400,10 +400,10 @@ copy_col_rgb: mcall SF_CLIPBOARD, 2, color_rgb.end - color_rgb, color_rgb - mcall SF_DRAW_TEXT, , 0x10000000, mes_copy, 12 + mcall SF_DRAW_TEXT, , 0x10000000, mes_copy, 12 mcall SF_SLEEP, 50 - mcall SF_DRAW_RECT, , , [col_white] + mcall SF_DRAW_RECT, , , [col_white] call draw_update jmp still @@ -444,35 +444,13 @@ pick_col_cell: ;--------------------------------------------------------------------- -WIN_X = 100 -WIN_W = 221 -WIN_Y = 100 -WIN_H = 112 +WIN area 100,100,221,112 -BUT_PIP_X = 8 -BUT_PIP_W = 24 -BUT_PIP_Y = 12 -BUT_PIP_H = 24 - -BUT_COL_X = 40 -BUT_COL_W = 68 -BUT_COL_Y = 12 -BUT_COL_H = 24 - -BUT_HEX_X = 8 -BUT_HEX_W = 100 -BUT_HEX_Y = 44 -BUT_HEX_H = 24 - -BUT_RGB_X = 8 -BUT_RGB_W = 100 -BUT_RGB_Y = 76 -BUT_RGB_H = 24 - -BUT_REC_X = 116 -BUT_REC_W = 88 -BUT_REC_Y = 12 -BUT_REC_H = 88 +BUT_PIP area 8, 12, 24, 24 +BUT_COL area 40, 12, 68, 24 +BUT_HEX area 8, 44,100, 24 +BUT_RGB area 8, 76,100, 24 +BUT_REC area 116, 12, 88, 88 ;---------------------------------------------------------------------