Source Code (Use browser search to find items of interest.)

Class Index

kmix'KMixDockWidget (./kdemultimedia/kmix/kmix-docking.h:30)

class KMixDockWidget : public KDockWidget {

  Q_OBJECT

public:
  KMixDockWidget(const char *name=0, const QString& dockIconName=0);
  ~KMixDockWidget();

  void paintEvent (QPaintEvent* );
  void setDisplay(int i_volume);


  void mouseReleaseEvent ( QMouseEvent *e );
  void mousePressLeftEvent ( QMouseEvent * );
  void mouseMoveEvent ( QMouseEvent *qme );

signals:
  void quickchange(int diff);

private:
  void doPaint();

  int i_i_percent;
  int i_i_height;
  int i_i_y;
  int i_i_width;

  bool i_b_mouse_moved;
  bool i_b_move_active;
  int  i_i_diff;
  int  i_i_click_x;
  int  i_i_click_y;
  int  i_i_move_delta;
};

kmix'KMixDockWidget::KMixDockWidget() (./kdemultimedia/kmix/kmix-docking.cpp:36)

KMixDockWidget::KMixDockWidget(const char *name, 
			       const QString& dockIconName) 
    : KDockWidget((QString)name, dockIconName)
{
  //CT assure that the vars are correctly initialized before the first paint
  setDisplay(0); 

  // Now for the mouse click stuff
  i_b_move_active = false;
  i_i_move_delta  = 5;
}


kmix'KMixDockWidget::~KMixDockWidget() (./kdemultimedia/kmix/kmix-docking.cpp:48)

KMixDockWidget::~KMixDockWidget()
{
}



kmix'KMixDockWidget::doPaint() (./kdemultimedia/kmix/kmix-docking.cpp:53)

void KMixDockWidget::doPaint()
{
  QPainter paint( this );
  int h = this->height();
  for (int i = 0; i < h; i=i+2) {
    paint.setPen( i>i_i_height?gray:QColor(255*i/h, 0, 255*(h-i)/h) );
    paint.drawLine(i_i_width / 2, h - i,
		   i_i_width / 2 + i_i_width * i / h, h - i);
  }
}


kmix'KMixDockWidget::paintEvent() (./kdemultimedia/kmix/kmix-docking.cpp:64)

void KMixDockWidget::paintEvent (QPaintEvent* )
{
  doPaint();
}


kmix'KMixDockWidget::setDisplay() (./kdemultimedia/kmix/kmix-docking.cpp:69)

void KMixDockWidget::setDisplay(int val_i_percent)
{
  i_i_percent = val_i_percent;
  i_i_height  = ( val_i_percent * this->height() ) / 100;
  i_i_y	      = this->height() - i_i_height;
  i_i_width	= this->width() / 2;

  doPaint();
}


kmix'KMixDockWidget::mousePressLeftEvent() (./kdemultimedia/kmix/kmix-docking.cpp:79)

void KMixDockWidget::mousePressLeftEvent ( QMouseEvent *qme )
{
  cerr << "mplEvent()\n";

  i_b_mouse_moved = false;
  i_b_move_active = true;
  i_i_click_x = qme->x();
  i_i_click_y = qme->y();
}



kmix'KMixDockWidget::mouseReleaseEvent() (./kdemultimedia/kmix/kmix-docking.cpp:90)

void KMixDockWidget::mouseReleaseEvent ( QMouseEvent* /*e*/ )
{
  if ( i_b_mouse_moved )
    emit quickchange(i_i_diff);
  else
    toggle_window_state();

  i_b_move_active = false;
}


kmix'KMixDockWidget::mouseMoveEvent() (./kdemultimedia/kmix/kmix-docking.cpp:100)

void KMixDockWidget::mouseMoveEvent ( QMouseEvent *qme )
{
  if ( !i_b_move_active ) {
    KDockWidget::mouseMoveEvent(qme);
  }
  else {
    // We come here if the LEFT mouse button was pressed and the mouse was moved
    if ( ! i_b_mouse_moved ) {
      // Verifying whether the mouse was moved far away after the click
      if ( i_b_move_active ) {
	if ( /* abs ( i_i_click_x - qme->x() ) > i_i_move_delta || */
	     abs ( i_i_click_y - qme->y() ) > i_i_move_delta    ) {
	  i_b_mouse_moved = true;
	}
      }
    }

    if ( i_b_mouse_moved ) {
      //cerr << "Distance = " <<  (i_i_click_y - qme->y())/2 << "\n";
      i_i_diff = (i_i_click_y - qme->y())/1 ; // -<- Scaled distance
      i_i_click_y = qme->y();
      emit quickchange(i_i_diff);
    }
  }
}