mirror of
https://github.com/mi57730/a2d.git
synced 2025-04-09 10:37:00 +00:00
Allow dragging "unlimited" icons. Fixes #18
The number of draggable icons was restricted to a hardcoded limit of 20, using a pre-allocated buffer (680 bytes) to hold a composite polygon of the icon outlines. Switch that to re-use the "save area" (used by MGTK to stash the background of menus, so not in conflict), $800-$1AFF, which is more than enough room for 127 icons (the maximum number supported).
This commit is contained in:
parent
74fb526ced
commit
0db0530367
@ -5,8 +5,9 @@
|
||||
### Enhancements
|
||||
|
||||
* Current time shown on right side of menu bar, if system has a clock. (#7)
|
||||
* Up to 13 volumes are shown on the desktop. (#20)
|
||||
* Up to 12 Desk Accessories are shown in the menu. (#90)
|
||||
* Up to 13 volumes are shown on the desktop (was 10). (#20)
|
||||
* Up to 12 Desk Accessories are shown in the menu (was 8). (#90)
|
||||
* Drag "unlimited" number of icons (was 20). (#18)
|
||||
* Menus allow click-to-drop, click-to-select interaction. (#104)
|
||||
* Add Special > Check Drive command to refresh a single drive. (#97)
|
||||
* Show Text File DA: Keyboard support. Escape quits, arrows scroll. (#4)
|
||||
|
@ -298,13 +298,12 @@ highlight_count: ; number of highlighted icons
|
||||
highlight_list: ; selected icons
|
||||
.res 127, 0
|
||||
|
||||
max_draggable_items = 20
|
||||
;;; Polygon holding the composite outlines of all icons being dragged.
|
||||
;;; Re-use the "save area" ($800-$1AFF) since menus won't show during
|
||||
;;; this operation.
|
||||
|
||||
;;; Polygon holding the composite outlines of all icons
|
||||
;;; being dragged.
|
||||
|
||||
drag_outline_buffer:
|
||||
.res max_draggable_items * (.sizeof(MGTK::Point) * 8 + 2), 0
|
||||
drag_outline_buffer := save_area_buffer
|
||||
max_draggable_items = save_area_size / (.sizeof(MGTK::Point) * 8 + 2)
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
|
@ -178,6 +178,9 @@ checkerboard_pattern3:
|
||||
.byte %10101010
|
||||
.byte $FF
|
||||
|
||||
save_area_buffer := $800
|
||||
save_area_size = $1300
|
||||
|
||||
;; Copies of ROM bytes used for machine identification
|
||||
.proc startdesktop_params
|
||||
machine: .byte $06 ; ROM FBB3 ($06 = IIe or later)
|
||||
@ -186,8 +189,8 @@ op_sys: .byte 0 ; 0=ProDOS
|
||||
slot_num: .byte 0 ; Mouse slot, 0 = search
|
||||
use_interrupts: .byte 0 ; 0=passive
|
||||
sysfontptr: .addr DEFAULT_FONT
|
||||
savearea: .addr $0800 ; $0800 - $1AFF
|
||||
savesize: .word $1300
|
||||
savearea: .addr save_area_buffer
|
||||
savesize: .word save_area_size
|
||||
.endproc
|
||||
|
||||
zp_use_flag0:
|
||||
|
Loading…
x
Reference in New Issue
Block a user