diff options
-rw-r--r-- | dumb_render.f90 | 43 | ||||
-rw-r--r-- | render.f90 | 14 |
2 files changed, 57 insertions, 0 deletions
diff --git a/dumb_render.f90 b/dumb_render.f90 index 7832891..21d6c34 100644 --- a/dumb_render.f90 +++ b/dumb_render.f90 @@ -32,6 +32,10 @@ implicit none procedure :: is_link_visible => dumb_text_visible procedure :: draw_link => dumb_link_draw + + procedure :: request_input => dumb_request_input + + procedure :: draw_error => dumb_draw_error end type dumb_renderer @@ -181,4 +185,43 @@ contains end subroutine dumb_link_draw + function dumb_request_input(self, question, answer) + implicit none + + class(dumb_renderer)::self + character(*), intent(in)::question + character(*), intent(out)::answer + logical::dumb_request_input + + ! Line Feed + Print *, " " + + answer = " " + + Print *, question + Read *, answer + + ! Line Feed + Print *, " " + + dumb_request_input = (len_trim(answer) > 0) + + end function dumb_request_input + + subroutine dumb_draw_error(self, text) + implicit none + + class(dumb_renderer)::self + character(*), intent(in)::text + + ! Line Feed + Print *, " " + + Print *, "ERROR: "//trim(text) + + ! Line Feed + Print *, " " + + end subroutine dumb_draw_error + end module dumb_render
\ No newline at end of file @@ -27,6 +27,10 @@ implicit none procedure(calculate_height), deferred::link_height procedure(calculate_visibility), deferred::is_link_visible procedure(draw_link), deferred::draw_link + + procedure(request_input), deferred::request_input + + procedure(draw_text), deferred::draw_error end type renderer @@ -86,6 +90,16 @@ implicit none character(*), intent(in)::text, url end subroutine draw_link end interface + + abstract interface + function request_input(self, question, answer) + import::renderer + class(renderer)::self + character(*), intent(in)::question + character(*), intent(out)::answer + logical::request_input + end function request_input + end interface contains |