All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Slots | Public Member Functions | Protected Attributes
QGpGuiTools::ColorHistogram Class Reference

#include <ColorHistogram.h>

List of all members.

Public Slots

void scrollChanged (int)

Public Member Functions

 ColorHistogram (QRgb *colors, int *values, int num, QWidget *parent=0)
void paintEvent (QPaintEvent *e)
void resizeEvent (QResizeEvent *e)
 ~ColorHistogram ()

Protected Attributes

QRgb * _colors
int _maxVal
int _numColors
int * _values
QScrollBar sBar

Constructor & Destructor Documentation

QGpGuiTools::ColorHistogram::ColorHistogram ( QRgb *  colors,
int *  values,
int  num,
QWidget *  parent = 0 
)

References _colors, _maxVal, _numColors, _values, sBar, scrollChanged(), and TRACE.

                                                                                    :
    QWidget(parent, Qt::Window),
    sBar(Qt::Vertical,this)
{
  TRACE;
  setAttribute(Qt::WA_DeleteOnClose);
  _colors=colors;
  _numColors=num;
  _values=values;
  _maxVal=0;
  for(int i=0;i < _numColors;i++ ) {
    if(_values[ i ] > _maxVal) _maxVal=_values[ i ];
  }
  sBar.setMinimum(0);
  sBar.setMaximum(_numColors - 1);
  sBar.setSingleStep(1);
  sBar.setPageStep(10);
  sBar.setValue(0);
  connect (&sBar, SIGNAL(valueChanged( int) ), this, SLOT(scrollChanged( int) ));
  setGeometry(50, 50, 400, 400);
}

References _colors, _values, and TRACE.

{
  TRACE;
  delete [] _values;
  delete [] _colors;
}

Member Function Documentation

void QGpGuiTools::ColorHistogram::paintEvent ( QPaintEvent *  e)

References _colors, _maxVal, _numColors, _values, COLOR_HEIGHT, COLOR_WIDTH, sBar, str, TEXT_WIDTH, and TRACE.

{
  TRACE;
  int i=sBar.value();
  int maxi=i + height()/COLOR_HEIGHT + 1;
  QPainter p(this);
  p.fillRect(0, 0, width(), height(), Qt::white);
  int y=0;
  int dx0=16 + 6 * TEXT_WIDTH;
  int dx1=dx0 + COLOR_WIDTH;
  int dx=width() - dx0;
  QString str( "%1" );
  while(i < maxi && i < _numColors) {
    QColor col(_colors[ i ] );
    int h, v, s;
    col.getHsv(&h, &s, &v);
    p.drawText(16, y + COLOR_HEIGHT, str.arg(col.red()) );
    p.drawText(16 + TEXT_WIDTH, y + COLOR_HEIGHT, str.arg(col.green()) );
    p.drawText(16 + 2 * TEXT_WIDTH, y + COLOR_HEIGHT, str.arg(col.blue()) );
    p.drawText(16 + 3 * TEXT_WIDTH, y + COLOR_HEIGHT, str.arg(h) );
    p.drawText(16 + 4 * TEXT_WIDTH, y + COLOR_HEIGHT, str.arg(s) );
    p.drawText(16 + 5 * TEXT_WIDTH, y + COLOR_HEIGHT, str.arg(v) );
    p.setPen(QColor( _colors[ i ] ));
    p.setBrush(QColor( _colors[ i ] ));
    p.drawRect(dx0, y, COLOR_WIDTH, COLOR_HEIGHT);
    int y2=y + (COLOR_HEIGHT >> 2);
    p.setPen(QPen( Qt::black, 2) );
    p.drawLine(dx1, y2, dx1 + _values[ i ] * dx/_maxVal, y2);
    i++;
    y += COLOR_HEIGHT;
  }
}
void QGpGuiTools::ColorHistogram::resizeEvent ( QResizeEvent *  e)

References sBar, and TRACE.

{
  TRACE;
  sBar.setGeometry(0, 0, 16, height());
}

References TRACE.

Referenced by ColorHistogram().

{
  TRACE;
  update();
}

Member Data Documentation

Referenced by ColorHistogram(), and paintEvent().

Referenced by ColorHistogram(), and paintEvent().

QScrollBar QGpGuiTools::ColorHistogram::sBar [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines