]> source.dussan.org Git - tigervnc.git/commitdiff
Added clearAll and clearSingle methods to FTProgress class.
authorDennis Syrovatsky <dennis@tightvnc.com>
Mon, 7 Nov 2005 08:21:03 +0000 (08:21 +0000)
committerDennis Syrovatsky <dennis@tightvnc.com>
Mon, 7 Nov 2005 08:21:03 +0000 (08:21 +0000)
Code improvements.

git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@380 3789f03b-4d11-0410-bbf8-ca57d06f2519

rfb_win32/ProgressControl.cxx
vncviewer/FTProgress.cxx
vncviewer/FTProgress.h

index 1beced0ddf11b9de3e8c9278a695269fb0a78034..85bd15f33db730d3fb2784792a2769ffd8dc8c83 100644 (file)
@@ -31,6 +31,9 @@ using namespace rfb::win32;
 ProgressControl::ProgressControl(HWND hwndProgress)
 {
   m_hwndProgress = hwndProgress;
+  
+  m_dw64MaxValue = 0;
+  m_dw64CurrentValue = 0;
 }
 
 ProgressControl::~ProgressControl()
@@ -72,7 +75,12 @@ ProgressControl::increase(DWORD64 value)
 bool
 ProgressControl::show()
 {
-  DWORD curPos = (DWORD) ((m_dw64CurrentValue * MAX_RANGE) / m_dw64MaxValue);
+  DWORD curPos;
+  if (m_dw64MaxValue != 0) {
+    curPos = (DWORD) ((m_dw64CurrentValue * MAX_RANGE) / m_dw64MaxValue);
+  } else {
+    curPos = 0;
+  }
   
   if (!SendMessage(m_hwndProgress, PBM_SETPOS, (WPARAM) curPos, (LPARAM) 0))
     return false;
@@ -83,5 +91,7 @@ ProgressControl::show()
 int 
 ProgressControl::getCurrentPercent()
 {
+  if (m_dw64MaxValue == 0) return 0;
+
   return ((int) ((m_dw64CurrentValue * 100) / m_dw64MaxValue));
 }
\ No newline at end of file
index 63b104b0cc644a4ac7f880598c461e825b35910c..b4c461ad99e67d3963f0b9feee945f1eb13c7cde 100644 (file)
@@ -37,7 +37,7 @@ FTProgress::FTProgress(HWND hwndParent)
 
 FTProgress::~FTProgress()
 {
-
+  destroyProgressBarObjects();
 }
 
 bool
@@ -61,13 +61,33 @@ FTProgress::initialize(DWORD64 totalMaxValue, DWORD maxValue)
 void
 FTProgress::increase(DWORD value)
 {
+  if (!m_bInitialized) return;
+
+  m_pSingleProgress->increase(value);
+  m_pGeneralProgress->increase(value);
 
+  setProgressText();
 }
 
 void
-FTProgress::clear()
+FTProgress::clearSingle()
 {
+  if (!m_bInitialized) return;
+
+  m_pSingleProgress->clear();
 
+  setProgressText();
+}
+
+void
+FTProgress::clearAll()
+{
+  if (!m_bInitialized) return;
+
+  m_pSingleProgress->clear();
+  m_pGeneralProgress->clear();
+
+  setProgressText();
 }
 
 bool 
@@ -95,6 +115,8 @@ FTProgress::createProgressBarObjects()
 bool 
 FTProgress::destroyProgressBarObjects()
 {
+  clearAll();
+
   if (m_pSingleProgress != NULL) {
     delete m_pSingleProgress;
   }
index 2aef36d77d3c28cb9b13338d00ee9a39c219c643..bcfb02c831ccb6f2957ea0bb4cd7671aecb10b81 100644 (file)
@@ -41,7 +41,8 @@ namespace rfb {
       
       bool initialize(DWORD64 totalMaxValue, DWORD maxValue);
       void increase(DWORD value);
-      void clear();
+      void clearSingle();
+      void clearAll();
 
     private:
       ProgressControl *m_pSingleProgress;