From 0ade9914918238b8da35e995fe9782a517988ae2 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Tue, 5 May 2020 11:04:22 -0400 Subject: Fixed link handling. Can now navigate links and page up/down. --- render.f90 | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'render.f90') diff --git a/render.f90 b/render.f90 index 6f285f7..b3b1c32 100644 --- a/render.f90 +++ b/render.f90 @@ -1,6 +1,11 @@ module render implicit none + integer, parameter::render_action_none = 1 + integer, parameter::render_action_goto = 2 + integer, parameter::render_action_layout = 3 + integer, parameter::render_action_quit = 4 + type, abstract :: renderer integer::y @@ -12,6 +17,7 @@ implicit none procedure(initialize), deferred::initialize procedure(prepare_for_layout), deferred::prepare_for_layout + procedure(new_page), deferred::new_page procedure(calculate_width), deferred::text_width procedure(calculate_height), deferred::text_height @@ -34,6 +40,8 @@ implicit none procedure(draw_text), deferred::report_status + procedure(request_action), deferred::request_action + end type renderer abstract interface @@ -42,6 +50,13 @@ implicit none class(renderer)::self end subroutine initialize end interface + + abstract interface + subroutine new_page(self) + import::renderer + class(renderer)::self + end subroutine new_page + end interface abstract interface subroutine prepare_for_layout(self) @@ -102,7 +117,16 @@ implicit none logical::request_input end function request_input end interface - + + abstract interface + function request_action(self, text) + import::renderer + class(renderer)::self + character(*), intent(out)::text + integer::request_action + end function request_action + end interface + contains function width_of_line(r, text, startpos, endpos) @@ -238,6 +262,7 @@ contains d_length = len_trim(url) - i_whitespace + 1 allocate(character(len=d_length) :: display) display = adjustl(url(i_whitespace:len_trim(url))) + url = url(1:(i_whitespace-1)) end if if(r%is_link_visible(display)) then -- cgit v1.2.3