Adjust vertical spacing in Selector Entry picker (Issue #126)

This commit is contained in:
Joshua Bell 2019-02-09 16:57:18 -08:00
parent 910d11b688
commit 2546a639db
2 changed files with 64 additions and 59 deletions

View File

@ -442,6 +442,7 @@ winfo_about_dialog_port := winfo_about_dialog::port
.proc winfo_entry_picker
width = 350
height = 118
window_id: .byte $1B
options: .byte MGTK::Option::dialog_box
@ -459,10 +460,10 @@ mincontlength: .word 50
maxcontwidth: .word 500
maxcontlength: .word 140
port:
viewloc: DEFINE_POINT (screen_width - width) / 2, 25
viewloc: DEFINE_POINT (screen_width - width) / 2, (screen_height - height) / 2
mapbits: .addr MGTK::screen_mapbits
mapwidth: .word MGTK::screen_mapwidth
cliprect: DEFINE_RECT 0, 0, width, 110
cliprect: DEFINE_RECT 0, 0, width, height
penpattern: .res 8, $FF
colormasks: .byte MGTK::colormask_and, MGTK::colormask_or
penloc: DEFINE_POINT 0, 0
@ -498,11 +499,12 @@ dialog_label_pos:
DEFINE_RECT 0, 0, 358, 100
.endproc
entry_picker_item_height = 9 ; default font height
entry_picker_outer_rect:
DEFINE_RECT 4,2,346,108
DEFINE_RECT 4,2,winfo_entry_picker::width-4,winfo_entry_picker::height-2
entry_picker_inner_rect:
DEFINE_RECT 5,3,345,107
DEFINE_RECT 5,3,winfo_entry_picker::width-5,winfo_entry_picker::height-3
;; Line endpoints
entry_picker_line1_start:
@ -512,20 +514,20 @@ entry_picker_line1_end:
;; Line endpoints
entry_picker_line2_start:
DEFINE_POINT 6,89
DEFINE_POINT 6,winfo_entry_picker::height-21
entry_picker_line2_end:
DEFINE_POINT 344,89
DEFINE_POINT 344,winfo_entry_picker::height-21
entry_picker_ok_rect:
DEFINE_RECT 210,92,310,103
DEFINE_RECT 210,winfo_entry_picker::height-18,310,winfo_entry_picker::height-7
entry_picker_cancel_rect:
DEFINE_RECT 40,92,140,103
DEFINE_RECT 40,winfo_entry_picker::height-18,140,winfo_entry_picker::height-7
entry_picker_ok_pos:
DEFINE_POINT 215,102
DEFINE_POINT 215,winfo_entry_picker::height-8
entry_picker_cancel_pos:
DEFINE_POINT 45,102
DEFINE_POINT 45,winfo_entry_picker::height-8
;; ???
.word 130,7,220,19
@ -568,7 +570,7 @@ entry_picker_item_rect:
DEFINE_RECT 0,0,0,0,entry_picker_item_rect
entry_picker_all_items_rect:
DEFINE_RECT 6,23,344,87
DEFINE_RECT 6,23,344,winfo_entry_picker::height-23
LD887:
.byte 0

View File

@ -435,62 +435,63 @@ L9423: addr_call L94F0, run_an_entry_label
L942B: stx $07
sta $06
lda dialog_label_pos
lda dialog_label_pos::xcoord
sta L94A8
tya
pha
cmp #$10
cmp #16 ; 3rd column (16-24)
bcc L9441
sec
sbc #$10
sbc #16
jmp L9448
L9441: cmp #$08
;; 8 rows
L9441: cmp #8 ; 2nd column (8-15)
bcc L9448
sec
sbc #$08
L9448: ldx #$00
stx L94A7
asl a
rol L94A7
asl a
rol L94A7
asl a
rol L94A7
sbc #8
;; A has row
L9448: ldx #0
ldy #entry_picker_item_height
jsr Multiply_16_8_16 ; A,X = A,X * Y
clc
adc #$20
sta dialog_label_pos+2
lda L94A7
adc #0
sta dialog_label_pos+3
pla
cmp #$08
bcs L9471
lda #$00
tax
beq L947F
L9471: cmp #$10
bcs L947B
ldx #$00
lda #$73
bne L947F
L947B: ldax #220
L947F: clc
adc #10
sta dialog_label_pos
adc #32
sta dialog_label_pos::ycoord
txa
adc #0
sta dialog_label_pos+1
sta dialog_label_pos::ycoord+1
pla
cmp #8
bcs :+
lda #0 ; col 1
tax
beq L947F ; always
: cmp #16
bcs :+
ldx #0
lda #115 ; col 2
bne L947F ; always
: ldax #220 ; col 3
L947F: clc
adc #10
sta dialog_label_pos::xcoord
txa
adc #0
sta dialog_label_pos::xcoord+1
MGTK_RELAY_CALL MGTK::MoveTo, dialog_label_pos
ldax $06
jsr L94CB
lda L94A8
sta dialog_label_pos
sta dialog_label_pos::xcoord
lda #0
sta dialog_label_pos+1
sta dialog_label_pos::xcoord+1
rts
L94A7: .byte 0
L94A8: .byte 0
L94A9: MGTK_RELAY_CALL MGTK::MoveTo, entry_picker_ok_pos
@ -677,17 +678,19 @@ L9716: cmp16 screentowindow_windowx, #110
L9732: lda #1
bne L9738
L9736: lda #0
;; Determine row
L9738: pha
lsr16 screentowindow_windowy
lsr16 screentowindow_windowy
lsr16 screentowindow_windowy
lda screentowindow_windowy
ldax screentowindow_windowy
ldy #entry_picker_item_height
jsr Divide_16_8_16
stax screentowindow_windowy
cmp #8
bcc L9756
bcc :+
pla
return #$FF
L9756: pla
: pla
asl a
asl a
asl a
@ -754,17 +757,17 @@ L97B6: clc
L97D1: sec
sbc #16
L97D4: asl a
asl a
asl a
L97D4: ldx #0
ldy #entry_picker_item_height
jsr Multiply_16_8_16
clc
adc #24
sta entry_picker_item_rect::y1
lda #0
txa
adc #0
sta entry_picker_item_rect::y1+1
add16 entry_picker_item_rect::x1, #106, entry_picker_item_rect::x2
add16 entry_picker_item_rect::y1, #7, entry_picker_item_rect::y2
add16 entry_picker_item_rect::y1, #entry_picker_item_height-1, entry_picker_item_rect::y2
MGTK_RELAY_CALL MGTK::SetPenMode, penXOR
MGTK_RELAY_CALL MGTK::PaintRect, entry_picker_item_rect
MGTK_RELAY_CALL MGTK::SetPenMode, pencopy