mirror of
https://github.com/mi57730/a2d.git
synced 2024-11-26 02:49:18 +00:00
resize calls/params
This commit is contained in:
parent
fe693d5ad4
commit
a1805b2745
@ -50,12 +50,17 @@ A2D_BTN_CLICK := $43
|
||||
;; .byte ??
|
||||
;; .byte ??
|
||||
|
||||
A2D_DRAG_RESIZE := $45
|
||||
|
||||
A2D_QUERY_CLIENT:= $48
|
||||
;; .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)
|
||||
|
||||
A2D_RESIZE_WINDOW := $49
|
||||
|
||||
|
||||
A2D_DRAG_SCROLL:= $4A
|
||||
;; .byte type (1 = vscroll, 2 = hscroll)
|
||||
;; .word xcoord of mouse
|
||||
@ -67,6 +72,8 @@ A2D_UPDATE_SCROLL:= $4B
|
||||
;; .byte type (1 = vertical, 2 = horizontal)
|
||||
;; .byte pos (new position 0...250)
|
||||
|
||||
|
||||
|
||||
;;; Used in A2D_GET_MOUSE
|
||||
A2D_ELEM_DESKTOP:= 0
|
||||
A2D_ELEM_MENU := 1
|
||||
|
@ -127,12 +127,17 @@ Current file: stf.s
|
||||
000800 2 ;; .byte ??
|
||||
000800 2 ;; .byte ??
|
||||
000800 2
|
||||
000800 2 A2D_DRAG_RESIZE := $45
|
||||
000800 2
|
||||
000800 2 A2D_QUERY_CLIENT:= $48
|
||||
000800 2 ;; .word xcoord of query
|
||||
000800 2 ;; .word ycoord of query
|
||||
000800 2 ;; .byte part (0 = client, 1 = vscroll, 2 = hscroll)
|
||||
000800 2 ;; .byte scroll (1 = up/left, 2 = down/right, 3 = above/before, 4 = below/after, 5 = thumb)
|
||||
000800 2
|
||||
000800 2 A2D_RESIZE_WINDOW := $49
|
||||
000800 2
|
||||
000800 2
|
||||
000800 2 A2D_DRAG_SCROLL:= $4A
|
||||
000800 2 ;; .byte type (1 = vscroll, 2 = hscroll)
|
||||
000800 2 ;; .word xcoord of mouse
|
||||
@ -144,6 +149,8 @@ Current file: stf.s
|
||||
000800 2 ;; .byte type (1 = vertical, 2 = horizontal)
|
||||
000800 2 ;; .byte pos (new position 0...250)
|
||||
000800 2
|
||||
000800 2
|
||||
000800 2
|
||||
000800 2 ;;; Used in A2D_GET_MOUSE
|
||||
000800 2 A2D_ELEM_DESKTOP:= 0
|
||||
000800 2 A2D_ELEM_MENU := 1
|
||||
@ -436,18 +443,19 @@ Current file: stf.s
|
||||
000970 1 button_state:
|
||||
000970 1 00 .byte $00
|
||||
000971 1
|
||||
000971 1 .proc mouse_data ; queried by main input loop
|
||||
000971 1 .proc mouse_params ; queried by main input loop
|
||||
000971 1 00 00 xcoord: .word 0
|
||||
000973 1 00 00 ycoord: .word 0
|
||||
000975 1 00 elem: .byte 0
|
||||
000976 1 00 win: .byte 0
|
||||
000977 1 .endproc
|
||||
000977 1
|
||||
000977 1 ;; param block used in dead code (resize button handler?)
|
||||
000977 1 64 L0977: .byte $64 ; ??? window id again?
|
||||
000978 1 00 00 xcoord1:.word 0 ; ???
|
||||
00097A 1 00 00 ycoord1:.word 0 ; ???
|
||||
000977 1 .proc resize_drag_params
|
||||
000977 1 64 id: .byte window_id
|
||||
000978 1 00 00 xcoord: .word 0
|
||||
00097A 1 00 00 ycoord: .word 0
|
||||
00097C 1 00 .byte 0 ; ???
|
||||
00097D 1 .endproc
|
||||
00097D 1
|
||||
00097D 1 .proc close_btn ; queried after close clicked to see if aborted/finished
|
||||
00097D 1 00 state: .byte 0 ; 0 = aborted, 1 = clicked
|
||||
@ -462,8 +470,10 @@ Current file: stf.s
|
||||
000986 1 .endproc
|
||||
000986 1
|
||||
000986 1 ;; param block used in dead code (resize?)
|
||||
000986 1 .proc resize_window_params
|
||||
000986 1 00 L0986: .byte $00
|
||||
000987 1 00 L0987: .byte $00
|
||||
000988 1 .endproc
|
||||
000988 1
|
||||
000988 1 .proc update_scroll_params ; called to update scroll bar position
|
||||
000988 1 00 type: .byte $00 ; 1 = vertical, 2 = horizontal ?
|
||||
@ -690,25 +700,25 @@ Current file: stf.s
|
||||
000ADA 1 C9 01 cmp #1 ; was clicked?
|
||||
000ADC 1 D0 F3 bne input_loop ; nope, keep waiting
|
||||
000ADE 1
|
||||
000ADE 1 20 00 40 40 A2D_CALL A2D_GET_MOUSE, mouse_data
|
||||
000ADE 1 20 00 40 40 A2D_CALL A2D_GET_MOUSE, mouse_params
|
||||
000AE2 1 71 09
|
||||
000AE4 1 AD 76 09 lda mouse_data::win ; in our window?
|
||||
000AE4 1 AD 76 09 lda mouse_params::win ; in our window?
|
||||
000AE7 1 C9 64 cmp #window_id
|
||||
000AE9 1 D0 E6 bne input_loop
|
||||
000AEB 1
|
||||
000AEB 1 ;; which part of the window?
|
||||
000AEB 1 AD 75 09 lda mouse_data::elem
|
||||
000AEB 1 AD 75 09 lda mouse_params::elem
|
||||
000AEE 1 C9 05 cmp #A2D_ELEM_CLOSE
|
||||
000AF0 1 F0 2F beq on_close_btn_down
|
||||
000AF2 1
|
||||
000AF2 1 AE 71 09 ldx mouse_data::xcoord ; stash mouse location
|
||||
000AF5 1 8E 78 09 stx xcoord1
|
||||
000AF2 1 AE 71 09 ldx mouse_params::xcoord ; stash mouse location
|
||||
000AF5 1 8E 78 09 stx resize_drag_params::xcoord
|
||||
000AF8 1 8E 80 09 stx query_client_params::xcoord
|
||||
000AFB 1 AE 72 09 ldx mouse_data::xcoord+1
|
||||
000AFE 1 8E 79 09 stx xcoord1+1
|
||||
000AFB 1 AE 72 09 ldx mouse_params::xcoord+1
|
||||
000AFE 1 8E 79 09 stx resize_drag_params::xcoord+1
|
||||
000B01 1 8E 81 09 stx query_client_params::xcoord+1
|
||||
000B04 1 AE 73 09 ldx mouse_data::ycoord
|
||||
000B07 1 8E 7A 09 stx ycoord1
|
||||
000B04 1 AE 73 09 ldx mouse_params::ycoord
|
||||
000B07 1 8E 7A 09 stx resize_drag_params::ycoord
|
||||
000B0A 1 8E 82 09 stx query_client_params::ycoord
|
||||
000B0D 1
|
||||
000B0D 1 C9 03 cmp #A2D_ELEM_TITLE
|
||||
@ -735,9 +745,9 @@ Current file: stf.s
|
||||
000B3B 1 60 rts ; exits input loop
|
||||
000B3C 1 .endproc
|
||||
000B3C 1
|
||||
000B3C 1 ;;; How would control get here???? Dead code???
|
||||
000B3C 1 .proc maybe_dead_code ; window move routine, maybe?
|
||||
000B3C 1 20 00 40 45 A2D_CALL $45, L0977 ; run resize loop?
|
||||
000B3C 1 ;;; This is dead code (no resize handle!) and may be buggy
|
||||
000B3C 1 .proc on_resize_click
|
||||
000B3C 1 20 00 40 45 A2D_CALL A2D_DRAG_RESIZE, resize_drag_params
|
||||
000B40 1 77 09
|
||||
000B42 1 20 FD 10 jsr L10FD ; call $4015 on main
|
||||
000B45 1 20 88 10 jsr L1088
|
||||
@ -781,10 +791,10 @@ Current file: stf.s
|
||||
000B98 1 ED 62 09 sbc window_width+1
|
||||
000B9B 1 85 07 sta $07
|
||||
000B9D 1 20 DF 10 jsr L10DF
|
||||
000BA0 1 8D 87 09 sta L0987
|
||||
000BA0 1 8D 87 09 sta resize_window_params::L0987
|
||||
000BA3 1 A9 02 lda #$02
|
||||
000BA5 1 8D 86 09 sta L0986
|
||||
000BA8 1 20 00 40 49 A2D_CALL $49, L0986 ; change to clamped size ???
|
||||
000BA5 1 8D 86 09 sta resize_window_params::L0986
|
||||
000BA8 1 20 00 40 49 A2D_CALL A2D_RESIZE_WINDOW, resize_window_params ; change to clamped size ???
|
||||
000BAC 1 86 09
|
||||
000BAE 1 20 98 11 jsr calc_and_draw_mode
|
||||
000BB1 1 4C F9 0D jmp L0DF9
|
||||
@ -847,7 +857,7 @@ Current file: stf.s
|
||||
000C1A 1 AD 9D 09 lda window_params::vscroll_pos
|
||||
000C1D 1 ED 6E 09 sbc track_scroll_delta
|
||||
000C20 1 B0 02 bcs store
|
||||
000C22 1 A9 00 lda #$00 ; underflow
|
||||
000C22 1 A9 00 lda #0 ; underflow
|
||||
000C24 1 8D 89 09 store: sta update_scroll_params::pos
|
||||
000C27 1 20 73 0C jsr update_scroll_pos
|
||||
000C2A 1 90 E5 bcc loop ; repeat while button down
|
||||
@ -1019,11 +1029,11 @@ Current file: stf.s
|
||||
000D39 1
|
||||
000D39 1 ;; Used at start of thumb drag
|
||||
000D39 1 .proc do_thumb_drag
|
||||
000D39 1 AD 71 09 lda mouse_data::xcoord
|
||||
000D39 1 AD 71 09 lda mouse_params::xcoord
|
||||
000D3C 1 8D 8B 09 sta thumb_drag_params::xcoord
|
||||
000D3F 1 AD 72 09 lda mouse_data::xcoord+1
|
||||
000D3F 1 AD 72 09 lda mouse_params::xcoord+1
|
||||
000D42 1 8D 8C 09 sta thumb_drag_params::xcoord+1
|
||||
000D45 1 AD 73 09 lda mouse_data::ycoord
|
||||
000D45 1 AD 73 09 lda mouse_params::ycoord
|
||||
000D48 1 8D 8D 09 sta thumb_drag_params::ycoord
|
||||
000D4B 1 20 00 40 4A A2D_CALL A2D_DRAG_SCROLL, thumb_drag_params
|
||||
000D4F 1 8A 09
|
||||
@ -1517,10 +1527,10 @@ Current file: stf.s
|
||||
00113A 1 ;;; On Title Bar Click - if it's on the Fixed/Proportional label,
|
||||
00113A 1 ;;; toggle it and update.
|
||||
00113A 1 .proc on_title_bar_click
|
||||
00113A 1 AD 72 09 lda mouse_data::xcoord+1 ; mouse x high byte?
|
||||
00113A 1 AD 72 09 lda mouse_params::xcoord+1 ; mouse x high byte?
|
||||
00113D 1 CD 85 11 cmp mode_box_left+1
|
||||
001140 1 D0 06 bne :+
|
||||
001142 1 AD 71 09 lda mouse_data::xcoord
|
||||
001142 1 AD 71 09 lda mouse_params::xcoord
|
||||
001145 1 CD 84 11 cmp mode_box_left
|
||||
001148 1 90 19 : bcc ignore
|
||||
00114A 1 AD 6F 09 lda fixed_mode_flag
|
||||
|
Binary file not shown.
@ -243,18 +243,19 @@ fixed_mode_flag:
|
||||
button_state:
|
||||
.byte $00
|
||||
|
||||
.proc mouse_data ; queried by main input loop
|
||||
.proc mouse_params ; queried by main input loop
|
||||
xcoord: .word 0
|
||||
ycoord: .word 0
|
||||
elem: .byte 0
|
||||
win: .byte 0
|
||||
.endproc
|
||||
|
||||
;; param block used in dead code (resize button handler?)
|
||||
L0977: .byte $64 ; ??? window id again?
|
||||
xcoord1:.word 0 ; ???
|
||||
ycoord1:.word 0 ; ???
|
||||
.proc resize_drag_params
|
||||
id: .byte window_id
|
||||
xcoord: .word 0
|
||||
ycoord: .word 0
|
||||
.byte 0 ; ???
|
||||
.endproc
|
||||
|
||||
.proc close_btn ; queried after close clicked to see if aborted/finished
|
||||
state: .byte 0 ; 0 = aborted, 1 = clicked
|
||||
@ -269,8 +270,10 @@ scroll: .byte 0 ; 1 = up, 2 = down, 3 = above, 4 = below, 5 = th
|
||||
.endproc
|
||||
|
||||
;; param block used in dead code (resize?)
|
||||
.proc resize_window_params
|
||||
L0986: .byte $00
|
||||
L0987: .byte $00
|
||||
.endproc
|
||||
|
||||
.proc update_scroll_params ; called to update scroll bar position
|
||||
type: .byte $00 ; 1 = vertical, 2 = horizontal ?
|
||||
@ -489,24 +492,24 @@ input_loop:
|
||||
cmp #1 ; was clicked?
|
||||
bne input_loop ; nope, keep waiting
|
||||
|
||||
A2D_CALL A2D_GET_MOUSE, mouse_data
|
||||
lda mouse_data::win ; in our window?
|
||||
A2D_CALL A2D_GET_MOUSE, mouse_params
|
||||
lda mouse_params::win ; in our window?
|
||||
cmp #window_id
|
||||
bne input_loop
|
||||
|
||||
;; which part of the window?
|
||||
lda mouse_data::elem
|
||||
lda mouse_params::elem
|
||||
cmp #A2D_ELEM_CLOSE
|
||||
beq on_close_btn_down
|
||||
|
||||
ldx mouse_data::xcoord ; stash mouse location
|
||||
stx xcoord1
|
||||
ldx mouse_params::xcoord ; stash mouse location
|
||||
stx resize_drag_params::xcoord
|
||||
stx query_client_params::xcoord
|
||||
ldx mouse_data::xcoord+1
|
||||
stx xcoord1+1
|
||||
ldx mouse_params::xcoord+1
|
||||
stx resize_drag_params::xcoord+1
|
||||
stx query_client_params::xcoord+1
|
||||
ldx mouse_data::ycoord
|
||||
stx ycoord1
|
||||
ldx mouse_params::ycoord
|
||||
stx resize_drag_params::ycoord
|
||||
stx query_client_params::ycoord
|
||||
|
||||
cmp #A2D_ELEM_TITLE
|
||||
@ -531,9 +534,9 @@ title: jsr on_title_bar_click
|
||||
rts ; exits input loop
|
||||
.endproc
|
||||
|
||||
;;; How would control get here???? Dead code???
|
||||
.proc maybe_dead_code ; window move routine, maybe?
|
||||
A2D_CALL $45, L0977 ; run resize loop?
|
||||
;;; This is dead code (no resize handle!) and may be buggy
|
||||
.proc on_resize_click
|
||||
A2D_CALL A2D_DRAG_RESIZE, resize_drag_params
|
||||
jsr L10FD ; call $4015 on main
|
||||
jsr L1088
|
||||
|
||||
@ -576,10 +579,10 @@ L0B8B: sta window_params::L0998
|
||||
sbc window_width+1
|
||||
sta $07
|
||||
jsr L10DF
|
||||
sta L0987
|
||||
sta resize_window_params::L0987
|
||||
lda #$02
|
||||
sta L0986
|
||||
A2D_CALL $49, L0986 ; change to clamped size ???
|
||||
sta resize_window_params::L0986
|
||||
A2D_CALL A2D_RESIZE_WINDOW, resize_window_params ; change to clamped size ???
|
||||
jsr calc_and_draw_mode
|
||||
jmp L0DF9
|
||||
.endproc
|
||||
@ -640,7 +643,7 @@ loop: lda window_params::vscroll_pos
|
||||
lda window_params::vscroll_pos
|
||||
sbc track_scroll_delta
|
||||
bcs store
|
||||
lda #$00 ; underflow
|
||||
lda #0 ; underflow
|
||||
store: sta update_scroll_params::pos
|
||||
jsr update_scroll_pos
|
||||
bcc loop ; repeat while button down
|
||||
@ -812,11 +815,11 @@ store: sta window_params::L099B
|
||||
|
||||
;; Used at start of thumb drag
|
||||
.proc do_thumb_drag
|
||||
lda mouse_data::xcoord
|
||||
lda mouse_params::xcoord
|
||||
sta thumb_drag_params::xcoord
|
||||
lda mouse_data::xcoord+1
|
||||
lda mouse_params::xcoord+1
|
||||
sta thumb_drag_params::xcoord+1
|
||||
lda mouse_data::ycoord
|
||||
lda mouse_params::ycoord
|
||||
sta thumb_drag_params::ycoord
|
||||
A2D_CALL A2D_DRAG_SCROLL, thumb_drag_params
|
||||
rts
|
||||
@ -1300,10 +1303,10 @@ end: rts
|
||||
;;; On Title Bar Click - if it's on the Fixed/Proportional label,
|
||||
;;; toggle it and update.
|
||||
.proc on_title_bar_click
|
||||
lda mouse_data::xcoord+1 ; mouse x high byte?
|
||||
lda mouse_params::xcoord+1 ; mouse x high byte?
|
||||
cmp mode_box_left+1
|
||||
bne :+
|
||||
lda mouse_data::xcoord
|
||||
lda mouse_params::xcoord
|
||||
cmp mode_box_left
|
||||
: bcc ignore
|
||||
lda fixed_mode_flag
|
||||
|
Loading…
Reference in New Issue
Block a user