From fbe821ab112b1f3fdf69329d0cc09c52797caede Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Mon, 27 May 2013 23:02:09 -0400 Subject: [PATCH] OpProgress: only skip space if we drew something --- .../PubUtilLib/plPipeline/plDTProgressMgr.cpp | 29 ++++++++++++------- .../PubUtilLib/plPipeline/plDTProgressMgr.h | 6 ++-- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp b/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp index dc5ce0d7..7a7d8bcb 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.cpp @@ -138,9 +138,7 @@ void plDTProgressMgr::Draw( plPipeline *p ) width = scrnWidth - 64; height = 16; x = ( scrnWidth - width ) >> 1; - y = scrnHeight - 32 - height; - if( fOperations->GetNext() == nil ) - y -= text.GetFontSize() + 8 + height + 4; + y = scrnHeight - 44 - (2 * height) - text.GetFontSize(); text.SetDrawOnTopMode( true ); @@ -166,8 +164,8 @@ void plDTProgressMgr::Draw( plPipeline *p ) for( prog = fOperations; prog != nil; prog = prog->GetNext() ) { - IDrawTheStupidThing( p, prog, x, y, width, height ); - y -= text.GetFontSize() + 8 + height + 4; + if (IDrawTheStupidThing(p, prog, x, y, width, height)) + y -= text.GetFontSize() + 8 + height + 4; } text.SetDrawOnTopMode( false ); @@ -175,10 +173,11 @@ void plDTProgressMgr::Draw( plPipeline *p ) //// IDrawTheStupidThing ///////////////////////////////////////////////////// -void plDTProgressMgr::IDrawTheStupidThing( plPipeline *p, plOperationProgress *prog, - uint16_t x, uint16_t y, uint16_t width, uint16_t height ) +bool plDTProgressMgr::IDrawTheStupidThing(plPipeline *p, plOperationProgress *prog, + uint16_t x, uint16_t y, uint16_t width, uint16_t height) { plDebugText &text = plDebugText::Instance(); + bool drew_something = false; // Lets just set the color to blue uint32_t color = 0xff302b3a; @@ -226,26 +225,34 @@ void plDTProgressMgr::IDrawTheStupidThing( plPipeline *p, plOperationProgress x -= 2; y -= 2; + drew_something = true; } y -= ( text.GetFontSize() << 1 ) + 4; #ifndef PLASMA_EXTERNAL_RELEASE - bool drawText = true; + static bool drawText = true; #else - bool drawText = false; + static bool drawText = false; #endif if (drawText) { - if( prog->GetTitle()[ 0 ] != 0 ) + if (prog->GetTitle()) { text.DrawString( x, y, prog->GetTitle(), (uint32_t)0xccb0b0b0 ); x += (uint16_t)text.CalcStringWidth( prog->GetTitle() ); + drew_something = true; } - if( prog->GetStatusText()[ 0 ] != 0 ) + if (prog->GetStatusText()) + { text.DrawString( x, y, prog->GetStatusText(), (uint32_t)0xccb0b0b0 ); + drew_something = true; + } } + + // return whether or not we drew stuff + return drew_something; } diff --git a/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h b/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h index 9c548380..8cb3d50c 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h +++ b/Sources/Plasma/PubUtilLib/plPipeline/plDTProgressMgr.h @@ -61,7 +61,7 @@ class plPipeline; class plDTProgressMgr : public plProgressMgr { protected: - int32_t fCurrentImage; + int32_t fCurrentImage; float fLastDraw; plPlate* fActivePlate; plPlate* fStaticTextPlate; @@ -70,8 +70,8 @@ class plDTProgressMgr : public plProgressMgr void Activate(); void Deactivate(); - void IDrawTheStupidThing( plPipeline *p, plOperationProgress *prog, - uint16_t x, uint16_t y, uint16_t width, uint16_t height ); + bool IDrawTheStupidThing( plPipeline *p, plOperationProgress *prog, + uint16_t x, uint16_t y, uint16_t width, uint16_t height ); public: