mirror of
https://github.com/mi57730/a2d.git
synced 2024-11-26 02:49:18 +00:00
Identify 'next' member of window params
This commit is contained in:
parent
fe81830ce0
commit
fa98ed8445
@ -125,18 +125,18 @@ A2D_DRAW_LINE := $0F ; Draw line (from SET_POS)
|
||||
;; .word xdelta signed, delta in pixels
|
||||
;; .word ydelta
|
||||
|
||||
A2D_FILL_RECT := $11 ; With selected simple pattern (SET_PATTERN)
|
||||
A2D_FILL_RECT := $11 ; Fill rectangle with selected simple pattern/thickness
|
||||
;; (input length 8 bytes)
|
||||
;; .word left (includes scroll pos)
|
||||
;; .word top
|
||||
;; .word right pixels
|
||||
;; .word bottom
|
||||
|
||||
A2D_DRAW_RECT := $12 ; With selected pattern
|
||||
A2D_DRAW_RECT := $12 ; Draw rectangle with selected simple pattern/thickness
|
||||
;; (input length 8 bytes)
|
||||
;; .word left (includes scroll pos)
|
||||
;; .word left pixels
|
||||
;; .word top
|
||||
;; .word right pixels
|
||||
;; .word right
|
||||
;; .word bottom
|
||||
|
||||
A2D_TEST_BOX := $13 ; Is pos (via SET_POS) in bounds? Returns true/false in A
|
||||
@ -167,11 +167,11 @@ A2D_DRAW_BITMAP := $14 ; Draw pattern
|
||||
;; $17 used in DeskTop but not DAs - maybe selection drag
|
||||
;; (input length 0 bytes)
|
||||
|
||||
A2D_MEASURE_TEXT := $18
|
||||
A2D_MEASURE_TEXT := $18 ; Measure the width of a string in pixels
|
||||
;; (input length 3 bytes)
|
||||
;; .addr data
|
||||
;; .byte length
|
||||
;; .word width pixels
|
||||
;; .word width result in pixels
|
||||
|
||||
A2D_DRAW_TEXT := $19 ; Drawn at last SET_POS as left, baseline
|
||||
;; (input length 3 bytes)
|
||||
@ -184,8 +184,8 @@ A2D_CONFIGURE_ZP_USE := $1A ; Configure ZP usage by API (speed vs. convenien
|
||||
|
||||
A2D_SET_CURSOR := $24 ; Change cursor pattern
|
||||
;; (input not copied)
|
||||
;; .res 24 2x12 byte bitmap
|
||||
;; .res 24 2x12 byte mask
|
||||
;; .res 24 bitmap 2x12 byte bitmap
|
||||
;; .res 24 mask 2x12 byte mask
|
||||
;; .byte hotx hotspot coords
|
||||
;; .byte hoty
|
||||
|
||||
@ -214,26 +214,21 @@ A2D_UNK_2B := $2B ; Unknown - possibly "reset drawing state"
|
||||
|
||||
A2D_SET_INPUT := $2D ; Set pending input state (mouse or keyboard)
|
||||
;; (input length 5 bytes)
|
||||
;; .byte state (A2D_INPUT_*)
|
||||
;; .byte state A2D_INPUT_*
|
||||
;; if state is A2D_INPUT_KEY:
|
||||
;; .byte key (ASCII code; high bit clear)
|
||||
;; .byte modifiers (0=none, 1=open-apple, 2=closed-apple, 3=both)
|
||||
;; .byte key ASCII code; high bit clear
|
||||
;; .byte modifiers 0=none, 1=open-apple, 2=closed-apple, 3=both
|
||||
;; if state otherwise:
|
||||
;; .word xcoord
|
||||
;; .word ycoord
|
||||
|
||||
A2D_CREATE_WINDOW := $38
|
||||
;; .byte id
|
||||
;; 0 = desktop
|
||||
;; 1, 2, ... = file windows
|
||||
;; 100 = DA (for example)
|
||||
;; .byte flags (A2D_CWF_*)
|
||||
;; bit 0: remove title bar
|
||||
;; bit 1: add close box
|
||||
;; bit 2: add resize box
|
||||
;; (input not copied)
|
||||
;; .byte id 0 = desktop, 1-...n = DeskTop windows, DAs use 51, 52, 100
|
||||
;; .byte flags A2D_CWF_*
|
||||
;; .addr title
|
||||
;; .byte hscroll bits: 7 = enable, 6 = show thumb, 0 = show track
|
||||
;; .byte vscroll
|
||||
;; .byte hscroll A2D_CWS_*
|
||||
;; .byte vscroll A2D_CWS_*
|
||||
;; .byte hsmax
|
||||
;; .byte hspos
|
||||
;; .byte vsmax
|
||||
@ -262,7 +257,7 @@ A2D_CREATE_WINDOW := $38
|
||||
;; .byte 0 ??? fill mode?
|
||||
;; .byte tmsk AND mask for text, default $7F
|
||||
;; .addr font A2D_DEFAULT_FONT
|
||||
;; .byte 0,0 ???
|
||||
;; .addr next address of next lower window in stack (filled in by call)
|
||||
|
||||
A2D_DESTROY_WINDOW := $39
|
||||
;; (input length 1 byte)
|
||||
@ -278,15 +273,9 @@ A2D_QUERY_STATE := $3C ; get drawing state of window
|
||||
|
||||
A2D_QUERY_TARGET := $40
|
||||
;; (input length 4 bytes)
|
||||
;; .word queryx (relative to screen)
|
||||
;; .word queryx relative to screen
|
||||
;; .word queryy
|
||||
;; .byte element (A2D_ELEM_*)
|
||||
;; 0 = desktop
|
||||
;; 1 = menu
|
||||
;; 2 = client area (including scroll bars/resize box)
|
||||
;; 3 = title bar
|
||||
;; 4 = resize box
|
||||
;; 5 = close box
|
||||
;; .byte element A2D_ELEM_*
|
||||
;; .byte id of window
|
||||
|
||||
;; $41 used in DeskTop but not DAs - icon in window drop
|
||||
@ -294,22 +283,22 @@ A2D_QUERY_TARGET := $40
|
||||
|
||||
A2D_CLOSE_CLICK := $43
|
||||
;; (input length 0 bytes)
|
||||
;; .byte clicked (0 = cancelled, 1 = clicked)
|
||||
;; .byte clicked 0 = cancelled, 1 = clicked
|
||||
;; .byte ??
|
||||
;; .byte ??
|
||||
|
||||
A2D_DRAG_WINDOW := $44
|
||||
;; (input length 5 bytes)
|
||||
;; .byte window_id
|
||||
;; .word xcoord screen coordinates
|
||||
;; .byte id window
|
||||
;; .word xcoord mouse coords
|
||||
;; .word ycoord
|
||||
|
||||
A2D_DRAG_RESIZE := $45
|
||||
;; (input length 5 bytes)
|
||||
;; .byte id of window
|
||||
;; .word xcoord of mouse
|
||||
;; .word ycoord of mouse
|
||||
;; .byte ?? (likely: moved? 0 = no change, 1 = moved)
|
||||
;; .byte id window
|
||||
;; .word xcoord mouse coords
|
||||
;; .word ycoord
|
||||
;; .byte ?? likely: moved? 0 = no change, 1 = moved
|
||||
|
||||
A2D_MAP_COORDS := $46 ; Map screen coords to client coords
|
||||
;; (input length 5 bytes)
|
||||
@ -321,10 +310,10 @@ A2D_MAP_COORDS := $46 ; Map screen coords to client coords
|
||||
|
||||
A2D_QUERY_CLIENT:= $48
|
||||
;; (input length 4 bytes)
|
||||
;; .word xcoord of query
|
||||
;; .word ycoord of query
|
||||
;; .byte part (0 = client, 1 = vscroll, 2 = hscroll)
|
||||
;; .byte scroll (1 = up/left, 2 = down/right, 3 = above/before, 4 = below/after, 5 = thumb)
|
||||
;; .word xcoord
|
||||
;; .word ycoord
|
||||
;; .byte part A2D_CLIENT, A2D_HSCROLL or A2D_VSCROLL
|
||||
;; .byte scroll A2D_SCROLL_PART_*
|
||||
|
||||
A2D_RESIZE_WINDOW := $49 ; ???
|
||||
;; (input length 3 bytes)
|
||||
@ -334,16 +323,16 @@ A2D_RESIZE_WINDOW := $49 ; ???
|
||||
|
||||
A2D_DRAG_SCROLL := $4A
|
||||
;; (input length 5 bytes)
|
||||
;; .byte type (1 = vscroll, 2 = hscroll)
|
||||
;; .word xcoord of mouse
|
||||
;; .word ycoord of mouse
|
||||
;; .byte position (0...255)
|
||||
;; .byte moved (0 = no change, 1 = moved)
|
||||
;; .byte type A2D_HSCROLL or A2D_VSCROLL
|
||||
;; .word mouse xcoord
|
||||
;; .word mouse ycoord
|
||||
;; .byte position 0...255
|
||||
;; .byte moved 0 = no change, 1 = moved
|
||||
|
||||
A2D_UPDATE_SCROLL:= $4B
|
||||
;; (input length 3 bytes)
|
||||
;; .byte type (1 = vertical, 2 = horizontal)
|
||||
;; .byte pos (new position 0...250)
|
||||
;; .byte type A2D_HSCROLL or A2D_VSCROLL
|
||||
;; .byte pos new position 0...250
|
||||
;; .byte ???
|
||||
|
||||
;;; $4E looks like last call
|
||||
@ -365,7 +354,7 @@ A2D_INPUT_HELD := 4 ; Mouse button still down
|
||||
;;; Used in A2D_GET_MOUSE
|
||||
A2D_ELEM_DESKTOP:= 0
|
||||
A2D_ELEM_MENU := 1
|
||||
A2D_ELEM_CLIENT := 2
|
||||
A2D_ELEM_CLIENT := 2 ; Includes scroll bars
|
||||
A2D_ELEM_TITLE := 3
|
||||
A2D_ELEM_RESIZE := 4
|
||||
A2D_ELEM_CLOSE := 5
|
||||
@ -393,7 +382,7 @@ A2D_SFM_XOR := 6
|
||||
;;; Used in A2D_CREATE_WINDOW
|
||||
A2D_CWF_NOTITLE := 1 << 0
|
||||
A2D_CWF_ADDCLOSE := 1 << 1
|
||||
A2D_CWF_ADDRESIZE:= 1 << 2
|
||||
A2D_CWF_ADDRESIZE := 1 << 2
|
||||
|
||||
A2D_CWS_NOSCROLL := 0
|
||||
A2D_CWS_SCROLL_ENABLED := 1 << 7
|
||||
|
@ -668,7 +668,7 @@ len: .byte 15 ; ???
|
||||
width: .word 0
|
||||
.endproc
|
||||
|
||||
window_id = $34
|
||||
window_id = 52
|
||||
|
||||
.proc destroy_window_params
|
||||
id: .byte window_id
|
||||
@ -794,7 +794,7 @@ vthick: .byte 1
|
||||
.byte 0 ; ???
|
||||
tmask: .byte 0
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
create_window_params_top := create_window_params::top
|
||||
|
||||
|
@ -673,7 +673,7 @@ len: .byte 15 ; ???
|
||||
width: .word 0
|
||||
.endproc
|
||||
|
||||
window_id = $34
|
||||
window_id = 52
|
||||
|
||||
.proc destroy_window_params
|
||||
id: .byte window_id
|
||||
@ -801,7 +801,7 @@ vthick: .byte 1
|
||||
.byte 0 ; ???
|
||||
tmask: .byte $7f
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
create_window_params_top := create_window_params::top
|
||||
|
||||
|
@ -230,7 +230,7 @@ element:.byte 0
|
||||
id: .byte 0
|
||||
.endproc
|
||||
|
||||
window_id := $64
|
||||
window_id := 100
|
||||
|
||||
.proc map_coords_params
|
||||
id: .byte window_id
|
||||
@ -286,7 +286,7 @@ vthick: .byte 2
|
||||
.byte 0 ; ???
|
||||
tmask: .byte $7F
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
|
||||
;;; ==================================================
|
||||
|
@ -75,7 +75,7 @@ stash_stack: .byte 0
|
||||
jmp create_window
|
||||
.endproc
|
||||
|
||||
window_id = $33
|
||||
window_id := 51
|
||||
|
||||
;;; ==================================================
|
||||
;;; Redraw the screen (all windows) after a drag
|
||||
@ -621,7 +621,7 @@ vthick: .byte 1
|
||||
.byte 0 ; ???
|
||||
tmask: .byte $7F
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
|
||||
;; This is QUERY_STATE/SET_BOX cruft only below
|
||||
|
@ -226,7 +226,7 @@ vthick: .byte 1
|
||||
.byte 0 ; ???
|
||||
tmask: .byte $7F
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
|
||||
|
||||
|
@ -209,7 +209,7 @@ black_pattern:
|
||||
white_pattern:
|
||||
.res $8, $FF
|
||||
|
||||
window_id := $64
|
||||
window_id := 100
|
||||
|
||||
L095A: .byte $00
|
||||
L095B: .byte $FA
|
||||
@ -335,7 +335,7 @@ vthick: .byte 1
|
||||
.byte 0 ; ???
|
||||
tmask: .byte $7F
|
||||
font: .addr A2D_DEFAULT_FONT
|
||||
.byte 0,0 ; ???
|
||||
next: .addr 0
|
||||
.endproc
|
||||
|
||||
;; gets copied over window_params::box after mode is drawn
|
||||
|
Loading…
Reference in New Issue
Block a user