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);
}
}
}