All Classes Namespaces Files Functions Variables Enumerations Enumerator
programs/MultiUrgViewer/DropRateWidget.cpp
Go to the documentation of this file.
00001 
00010 #include "DropRateWidget.h"
00011 #include "DetectOS.h"
00012 #include <cstdio>
00013 
00014 using namespace std;
00015 
00016 #if defined(MSC)
00017 #define snprintf _snprintf
00018 #endif
00019 
00020 
00021 struct DropRateWidget::pImpl
00022 {
00023   DropRateWidget* widget_;
00024 
00025 
00026   pImpl(DropRateWidget* widget) : widget_(widget)
00027   {
00028   }
00029 
00030 
00031   void initializeForm(void)
00032   {
00033     setEnabled(false);
00034   }
00035 
00036 
00037   void setEnabled(bool enable)
00038   {
00039     if (! enable) {
00040       widget_->value_label_->setText("---");
00041     }
00042     widget_->value_label_->setEnabled(enable);
00043     widget_->percent_label_->setEnabled(enable);
00044   }
00045 };
00046 
00047 
00048 DropRateWidget::DropRateWidget(QWidget* parent)
00049   : QWidget(parent), pimpl(new pImpl(this))
00050 {
00051   setupUi(this);
00052   pimpl->initializeForm();
00053 }
00054 
00055 
00056 DropRateWidget::~DropRateWidget(void)
00057 {
00058 }
00059 
00060 
00061 void DropRateWidget::setEnabled(bool enable)
00062 {
00063   pimpl->setEnabled(enable);
00064 }
00065 
00066 
00067 void DropRateWidget::setDropRate(size_t percent)
00068 {
00069   enum { BufferSize = 4 };
00070   char buffer[BufferSize];
00071   snprintf(buffer, BufferSize, "%d", percent);
00072   pimpl->widget_->value_label_->setText(buffer);
00073 }