From 9bf49b7acbe1654744399a73de363f84d50f1574 Mon Sep 17 00:00:00 2001 From: Jeffrey Armstrong Date: Wed, 2 Dec 2020 20:15:03 -0500 Subject: Fixed status bar rendering issues in AppGraphics due to double-buffering. --- ag_render.f90 | 43 ++++++++++++++++++++++++------------------- gemini-windows.prj | 22 ++++++++++++++++++++-- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/ag_render.f90 b/ag_render.f90 index b3b76b1..bddec84 100644 --- a/ag_render.f90 +++ b/ag_render.f90 @@ -387,18 +387,30 @@ contains type(appgraphics_renderer)::self character(*), intent(in)::text - + + ! Double-buffer + integer::i, active_page + + call resetviewport() + call setviewport(0, getmaxy()-self%status_bar_height, getmaxx()+1, getmaxy()+1, .true.) + active_page = getactivepage() self%status_bar_height = 16 - + + do i = 0, 1 + call setactivepage(i) + + call setbkcolor(LIGHTGRAY) + call setcolor(BLACK) + call settextstyle(WINDOWS_FONT, HORIZ_DIR, 12) + + + call clearviewport() + call outtextxy(5, 2, trim(text)) + + end do + call setactivepage(active_page) call resetviewport() - call setbkcolor(LIGHTGRAY) - call setcolor(BLACK) - call settextstyle(WINDOWS_FONT, HORIZ_DIR, 12) - - call bar(0, getmaxy()-self%status_bar_height, getmaxx()+1, getmaxy()+1) - call outtextxy(5, getmaxy()-self%status_bar_height+2, trim(text)) - end subroutine draw_status_bar subroutine draw_scroll_bar(self) @@ -472,7 +484,8 @@ contains self%scroll_id = -1 call draw_address_bar(self) - call draw_status_bar(self, "Welcome to the LR-87 Gemini Client") + !call draw_status_bar(self, "Welcome to the LR-87 Gemini Client") + call self%report_status("Welcome to the LR-87 Gemini Client") call draw_scroll_bar(self) self%background_color = WHITE @@ -859,19 +872,11 @@ contains class(appgraphics_renderer)::self character(*), intent(in)::text character(64), save::last_text - integer::vp, ap if(trim(last_text) == trim(text)) then return end if - vp = getvisualpage() - ap = getactivepage() - - call setactivepage(vp) - call draw_status_bar(self, text) - - call setactivepage(ap) call draw_status_bar(self, text) last_text = text @@ -955,7 +960,7 @@ contains ! Effectively have to redraw everything call draw_address_bar(self, expanding=expanding_horizontally) - call draw_status_bar(self, idle_status) + call self%report_status(idle_status) call draw_scroll_bar(self) call setscrollposition(self%scroll_id, 0) diff --git a/gemini-windows.prj b/gemini-windows.prj index eb26b44..f84b768 100644 --- a/gemini-windows.prj +++ b/gemini-windows.prj @@ -1,6 +1,13 @@ { "Root":{ "Folders":[{ + "Folders":[], + "Name":"+packaging", + "Files":[{ + "filename":".\\packaging\\appxmanifest.xml", + "enabled":"1" + }] + },{ "Folders":[], "Name":"+samples", "Files":[{ @@ -26,6 +33,13 @@ "filename":".\\wsa.f90", "enabled":"1" }] + },{ + "Folders":[], + "Name":"+winbuild", + "Files":[{ + "filename":".\\build_appx.bat", + "enabled":"1" + }] }], "Name":"+gemini-windows (lr87.exe)", "Files":[{ @@ -73,6 +87,9 @@ },{ "filename":".\\platform.F90", "enabled":"1" + },{ + "filename":".\\PRIVACY.md", + "enabled":"1" },{ "filename":".\\protocol.f90", "enabled":"1" @@ -125,12 +142,13 @@ }, "Build Dependencies":1, "Launch Options":{ + "Build Before Launch":"true", "Working Directory":"", "Launch Using MPI":"false", "Keep Console":"true", - "External Console":"false", + "Executable":"", "Command Line Arguments":"", - "Build Before Launch":"true" + "External Console":"false" }, "Build Options":{ "Makefile":"Makefile", -- cgit v1.2.3