@@ -563,31 +563,22 @@ def dialog_proc=(p)
563
563
@dialog_vertical_offset = 1
564
564
end
565
565
reset_dialog ( old_dialog_contents , old_dialog_contents_width , old_dialog_column , old_dialog_vertical_offset , old_dialog_updown )
566
- ue = ?/ + ?~ * ( DIALOG_WIDTH - 2 ) + ?\\
567
- sita = ?\\ + ?_ * ( DIALOG_WIDTH - 2 ) + ?/
568
- yoko = ?:
569
566
case @dialog_updown
570
567
when :down
571
568
move_cursor_down ( 1 )
572
569
when :up
573
570
end
574
571
Reline ::IOGate . move_cursor_column ( @dialog_column )
575
- @output . write ue
576
- Reline ::IOGate . move_cursor_column ( @dialog_column )
577
- @dialog_contents = @dialog_contents [ 0 ...( DIALOG_HEIGHT - 2 ) ] if @dialog_contents . size > ( DIALOG_HEIGHT - 2 )
578
- @dialog_contents . each do |item |
579
- move_cursor_down ( 1 )
580
- @output . write yoko
581
- @output . write "%-#{ DIALOG_WIDTH - 2 } s" % item . slice ( 0 , DIALOG_WIDTH - 2 )
582
- @output . write yoko
572
+ @dialog_contents = @dialog_contents [ 0 ...DIALOG_HEIGHT ] if @dialog_contents . size > DIALOG_HEIGHT
573
+ @dialog_contents . each_with_index do |item , i |
574
+ @output . write "\e [46m%-#{ DIALOG_WIDTH } s\e [49m" % item . slice ( 0 , DIALOG_WIDTH )
583
575
Reline ::IOGate . move_cursor_column ( @dialog_column )
576
+ move_cursor_down ( 1 ) if i < ( @dialog_contents . size - 1 )
584
577
end
585
- move_cursor_down ( 1 )
586
- @output . write sita
587
578
Reline ::IOGate . move_cursor_column ( cursor_column )
588
579
case @dialog_updown
589
580
when :down
590
- move_cursor_up ( @dialog_contents . size + 2 )
581
+ move_cursor_up ( @dialog_contents . size )
591
582
when :up
592
583
end
593
584
@dialog_lines_backup = {
@@ -617,37 +608,37 @@ def dialog_proc=(p)
617
608
line_num = @dialog_vertical_offset - old_dialog_vertical_offset
618
609
line_num . times do |i |
619
610
Reline ::IOGate . move_cursor_column ( 0 )
620
- @output . write visual_lines [ start + i ]
611
+ @output . write " \e [39m \e [49m #{ visual_lines [ start + i ] } \e [39m \e [49m"
621
612
Reline ::IOGate . erase_after_cursor
622
613
move_cursor_down ( 1 ) if i < ( line_num - 1 )
623
614
end
624
615
move_cursor_up ( old_dialog_vertical_offset + line_num - 1 )
625
616
end
626
- if ( old_dialog_vertical_offset + old_dialog_contents . size + 2 ) > ( @dialog_vertical_offset + @dialog_contents . size + 2 )
627
- move_cursor_down ( @dialog_vertical_offset + @dialog_contents . size + 2 )
628
- start = visual_start + @dialog_vertical_offset + @dialog_contents . size + 2
629
- line_num = ( old_dialog_vertical_offset + old_dialog_contents . size + 2 ) - ( @dialog_vertical_offset + @dialog_contents . size + 2 )
617
+ if ( old_dialog_vertical_offset + old_dialog_contents . size ) > ( @dialog_vertical_offset + @dialog_contents . size )
618
+ move_cursor_down ( @dialog_vertical_offset + @dialog_contents . size )
619
+ start = visual_start + @dialog_vertical_offset + @dialog_contents . size
620
+ line_num = ( old_dialog_vertical_offset + old_dialog_contents . size ) - ( @dialog_vertical_offset + @dialog_contents . size )
630
621
line_num . times do |i |
631
622
Reline ::IOGate . move_cursor_column ( 0 )
632
- @output . write visual_lines [ start + i ]
623
+ @output . write " \e [39m \e [49m #{ visual_lines [ start + i ] } \e [39m \e [49m"
633
624
Reline ::IOGate . erase_after_cursor
634
625
move_cursor_down ( 1 ) if i < ( line_num - 1 )
635
626
end
636
- move_cursor_up ( @dialog_vertical_offset + @dialog_contents . size + 2 + line_num - 1 )
627
+ move_cursor_up ( @dialog_vertical_offset + @dialog_contents . size + line_num - 1 )
637
628
end
638
629
if old_dialog_column < @dialog_column
639
630
move_cursor_down ( old_dialog_vertical_offset )
640
631
width = @dialog_column - old_dialog_column
641
632
start = visual_start + old_dialog_vertical_offset
642
- line_num = old_dialog_contents . size + 2
633
+ line_num = old_dialog_contents . size
643
634
line_num . times do |i |
644
635
Reline ::IOGate . move_cursor_column ( old_dialog_column )
645
636
if visual_lines [ start + i ] . nil?
646
637
s = ' ' * width
647
638
else
648
639
s = Reline ::Unicode . take_range ( visual_lines [ start + i ] , old_dialog_column , width )
649
640
end
650
- @output . write "%-#{ width } s" % s
641
+ @output . write "\e [39m \e [49m %-#{ width } s\e [39m \e [49m " % s
651
642
move_cursor_down ( 1 ) if i < ( line_num - 1 )
652
643
end
653
644
move_cursor_up ( old_dialog_vertical_offset + line_num - 1 )
@@ -656,15 +647,15 @@ def dialog_proc=(p)
656
647
move_cursor_down ( old_dialog_vertical_offset )
657
648
width = ( old_dialog_column + DIALOG_WIDTH ) - ( @dialog_column + DIALOG_WIDTH )
658
649
start = visual_start + old_dialog_vertical_offset
659
- line_num = old_dialog_contents . size + 2
650
+ line_num = old_dialog_contents . size
660
651
line_num . times do |i |
661
652
Reline ::IOGate . move_cursor_column ( old_dialog_column + DIALOG_WIDTH )
662
653
if visual_lines [ start + i ] . nil?
663
654
s = ' ' * width
664
655
else
665
656
s = Reline ::Unicode . take_range ( visual_lines [ start + i ] , old_dialog_column + DIALOG_WIDTH , width )
666
657
end
667
- @output . write "%-#{ width } s" % s
658
+ @output . write "\e [39m \e [49m %-#{ width } s\e [39m \e [49m " % s
668
659
move_cursor_down ( 1 ) if i < ( line_num - 1 )
669
660
end
670
661
move_cursor_up ( old_dialog_vertical_offset + line_num - 1 )
@@ -686,20 +677,23 @@ def dialog_proc=(p)
686
677
end
687
678
visual_lines . concat ( vl )
688
679
}
689
- visual_lines_under_dialog = visual_lines [ visual_start , @dialog_contents . size + 2 ]
680
+ visual_lines_under_dialog = visual_lines [ visual_start , @dialog_contents . size ]
690
681
move_cursor_down ( @dialog_vertical_offset )
691
- dialog_vertical_size = @dialog_contents . size + 2
682
+ dialog_vertical_size = @dialog_contents . size
692
683
dialog_vertical_size . times do |i |
693
684
if i < visual_lines_under_dialog . size
694
685
Reline ::IOGate . move_cursor_column ( 0 )
695
- @output . write visual_lines_under_dialog [ i ]
686
+ @output . write " \e [39m \e [49m%- #{ DIALOG_WIDTH } s \e [39m \e [49m" % visual_lines_under_dialog [ i ]
696
687
else
697
688
Reline ::IOGate . move_cursor_column ( @dialog_column )
689
+ @output . write "\e [39m\e [49m#{ ' ' * DIALOG_WIDTH } \e [39m\e [49m"
698
690
end
699
- Reline ::IOGate . erase_after_cursor
691
+ # Reline::IOGate.erase_after_cursor
700
692
move_cursor_down ( 1 ) if i < ( dialog_vertical_size - 1 )
701
693
end
702
- move_cursor_up ( @dialog_contents . size + 2 )
694
+ move_cursor_up ( dialog_vertical_size - 1 + @dialog_vertical_offset )
695
+ #Reline::IOGate.move_cursor_column(0)
696
+ # @output.write "\e[39m#{visual_lines[@first_line_started_from + @started_from]}\e[39m"
703
697
Reline ::IOGate . move_cursor_column ( prompt_width + @cursor )
704
698
end
705
699
0 commit comments