Subversion Repositories DevTools

Rev

Rev 2263 | Blame | Compare with Previous | Last modification | View Log | RSS feed

//## begin module%1.7%.codegen_version preserve=yes
//   Read the documentation to learn more about C++ code generator
//   versioning.
//## end module%1.7%.codegen_version

//## begin module%42007ECF0011.cm preserve=no
//## end module%42007ECF0011.cm

//## begin module%42007ECF0011.cp preserve=no
//      C O P Y R I G H T   N O T I C E
//      This material is confidential to ERG and may not be disclosed in whole
//      or in part to any third party nor used in any manner whatsoever other
//      than for the purposes expressly consented to by ERG in writing.
//
//      This material is also copyright and may not be reproduced, stored in a
//      retrieval system or transmitted in any form or by any means in whole or
//      in part without the express written consent of ERG.
//## end module%42007ECF0011.cp

//## Module: ProgressBar%42007ECF0011; Pseudo Package body
//## Subsystem: MASS::Dev::Tools::TxnTestManager::src%41F5A79001E4
//## Source file: Z:\MASS_Dev\Tools\TxnTestManager\src\ProgressBar.cpp

//## begin module%42007ECF0011.additionalIncludes preserve=no
//## end module%42007ECF0011.additionalIncludes

//## begin module%42007ECF0011.includes preserve=yes
#include <algorithm>
//## end module%42007ECF0011.includes

// ProgressBar
#include "ProgressBar.h"
//## begin module%42007ECF0011.additionalDeclarations preserve=yes
#define GREEN 1
//## end module%42007ECF0011.additionalDeclarations


// Class ProgressBar 

//## Operation: ProgressBar%42007F04030F
ProgressBar::ProgressBar (TWinControl *owner)
  //## begin ProgressBar::ProgressBar%42007F04030F.hasinit preserve=no
      : m_percent(0),
        m_position(0),
        m_progressBar(0),
        m_total(0)
  //## end ProgressBar::ProgressBar%42007F04030F.hasinit
  //## begin ProgressBar::ProgressBar%42007F04030F.initialization preserve=yes
  //## end ProgressBar::ProgressBar%42007F04030F.initialization
{
  //## begin ProgressBar::ProgressBar%42007F04030F.body preserve=yes

#ifdef ADV_PROGRESS_BAR
        m_progressBar = new TAdvProgressBar( owner );
        m_progressBar->Parent                           = owner;
        m_progressBar->Steps                            = 10;
        m_progressBar->Position                         = 0;
        m_progressBar->ShowBorder                       = false;
        m_progressBar->ShowGradient                     = true;
        m_progressBar->ShowPercentage           = true;
        m_progressBar->Stacked                          = false;
        m_progressBar->CompletionSmooth         = false;
        m_progressBar->Visible                          = false;
        
        #if GREEN
                #define FROM_COLOUR 0x006AA676
                #define TO_COLOUR   0x00BAE3C3
        #else
                #define FROM_COLOUR 0x00C961AD
                #define TO_COLOUR   0x00FFBCEF
        #endif
        m_progressBar->Level0Color                      = Graphics::TColor( FROM_COLOUR );
        m_progressBar->Level0ColorTo            = Graphics::TColor( TO_COLOUR );
        m_progressBar->Level1Color                      = Graphics::TColor( FROM_COLOUR );
        m_progressBar->Level1ColorTo            = Graphics::TColor( TO_COLOUR );
        m_progressBar->Level2Color                      = Graphics::TColor( FROM_COLOUR );
        m_progressBar->Level2ColorTo            = Graphics::TColor( TO_COLOUR );
        m_progressBar->Level3Color                      = Graphics::TColor( FROM_COLOUR );
        m_progressBar->Level3ColorTo            = Graphics::TColor( TO_COLOUR );
#else
        m_progressBar = new TProgressBar ( StatusBar );
        m_progressBar->Parent = StatusBar;
        m_progressBar->Step     = 10;
        m_progressBar->Max      = 100;  // We've normalised to percent.
        m_progressBar->Position = 0;
        m_progressBar->Visible = false;
#endif

  //## end ProgressBar::ProgressBar%42007F04030F.body
}


ProgressBar::~ProgressBar()
{
  //## begin ProgressBar::~ProgressBar%42007ECF0011_dest.body preserve=yes

        delete m_progressBar;
        m_progressBar = 0;  

  //## end ProgressBar::~ProgressBar%42007ECF0011_dest.body
}



//## Other Operations (implementation)
//## Operation: close%4200859302A4
void ProgressBar::close ()
{
  //## begin ProgressBar::close%4200859302A4.body preserve=yes

        m_progressBar->Hide();
        m_percent       = 0;
        m_position      = 0;

  //## end ProgressBar::close%4200859302A4.body
}

//## Operation: increment%4200923803B3
void ProgressBar::increment (const unsigned int &delta)
{
  //## begin ProgressBar::increment%4200923803B3.body preserve=yes

        update( m_position + delta );

  //## end ProgressBar::increment%4200923803B3.body
}

//## Operation: open%4200813001F0
void ProgressBar::open (const unsigned int &total, const unsigned int &position)
{
  //## begin ProgressBar::open%4200813001F0.body preserve=yes

        m_total         = total;
        m_position      = position;
        m_percent       = ( m_total
                ? ( static_cast< int >( position / double( m_total ) * 100.0 ) )
                : 100.0 );

#ifdef ADV_PROGRESS_BAR
        m_progressBar->Show();
        m_progressBar->Position = m_percent;
#else
        m_progressBar->Show();
        m_progressBar->Position = m_percent;
#endif

  //## end ProgressBar::open%4200813001F0.body
}

//## Operation: resize%4200826C0074
void ProgressBar::resize (const int &top, const int &left, const int &width, const int &height)
{
  //## begin ProgressBar::resize%4200826C0074.body preserve=yes

#ifdef ADV_PROGRESS_BAR
        m_progressBar->Top = top + 2;
        m_progressBar->Left = left + 4;
        m_progressBar->Width = width - 6;
        m_progressBar->Height = height - 4;
#else
        m_progressBar->Top = top;
        m_progressBar->Left = left + 2;
        m_progressBar->Width = width - 2;
        m_progressBar->Height = height;
#endif

  //## end ProgressBar::resize%4200826C0074.body
}

//## Operation: update%420085F6011D
void ProgressBar::update (const unsigned int &position)
{
  //## begin ProgressBar::update%420085F6011D.body preserve=yes

        // Do this only if we're open.          
        if ( m_total )
        {
                m_position      = position;
                const unsigned int percent = ( static_cast< int >( position / double( m_total ) * 100.0 ) );
                if ( m_percent != percent )
                {
                        m_percent       = std::min< int >( percent, 100 );

#ifdef ADV_PROGRESS_BAR
                        m_progressBar->Position = m_percent;
#else
                        m_progressBar->Position = m_percent;
#endif
                }
        }

  //## end ProgressBar::update%420085F6011D.body
}

// Additional Declarations
  //## begin ProgressBar%42007ECF0011.declarations preserve=yes
  //## end ProgressBar%42007ECF0011.declarations

//## begin module%42007ECF0011.epilog preserve=yes
//## end module%42007ECF0011.epilog