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

Class Index

kicker'EyesApplet (./kdebase/kicker/externalapplets/eyes/eyes.h:35)

class EyesApplet : public KPanelApplet
{
  Q_OBJECT
	
public:
  EyesApplet( QWidget* parent = 0, const char* name = 0 );
  ~EyesApplet();

  int widthForHeight(int height);
  int heightForWidth(int width);

protected:
  void timerEvent(QTimerEvent*);
  void resizeEvent(QResizeEvent*);
  void paintEvent(QPaintEvent*);

  QPoint oldPoint1,oldPoint2;
  Display *display;
  Window root, RootIDRet, ChildIDRet;
  int sizeEye;
  unsigned int StateMask;
};

kicker'EyesApplet::EyesApplet() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:33)

EyesApplet::EyesApplet( QWidget* parent, const char* name )
  : KPanelApplet( parent, name ) 
{
  display = kapp->getDisplay();
  root = RootWindow(display,DefaultScreen(display));

  startTimer(10);
}


kicker'EyesApplet::~EyesApplet() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:42)

EyesApplet::~EyesApplet() {}


kicker'EyesApplet::paintEvent() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:44)

void EyesApplet::paintEvent(QPaintEvent*)
{
  oldPoint1 = QPoint(-1, -1 );
  oldPoint2 = QPoint( -1, -1 );
  timerEvent(0);
}


kicker'EyesApplet::timerEvent() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:51)

void EyesApplet::timerEvent(QTimerEvent*)
{
  QPoint p,mouse,vect;
  double cos_alpha,sin_alpha;
  int WinX, WinY;
  int XCoord,YCoord;
  
  XQueryPointer (display, root, &RootIDRet, &ChildIDRet, &XCoord,&YCoord, &WinX, &WinY, &StateMask);
  mouse = mapFromGlobal(QPoint(XCoord,YCoord));
  int tmp=min(height(),width())/6;

  //Left eye
  vect.setX(mouse.x()-width()/4);
  vect.setY(mouse.y()-height()/2);
  
  cos_alpha=vect.x()/sqrt(vect.x()*vect.x()+vect.y()*vect.y());
  sin_alpha=vect.y()/sqrt(vect.x()*vect.x()+vect.y()*vect.y());
  
  if(vect.x()*vect.x() + vect.y()*vect.y() > (width()/4-tmp)*(width()/4-tmp)*
	 cos_alpha*cos_alpha+(height()/2-tmp)*(height()/2-tmp)*sin_alpha*sin_alpha)
	{
	  p.setX((width()/4-tmp)*cos_alpha+width()/4);
	  p.setY((height()/2-tmp)*sin_alpha+height()/2);	
	} 
  else
	p=mouse;
  
  if( (p.x() != oldPoint1.x()) || (p.y() != oldPoint1.y())) {
	QPainter paint(this);
	paint.setPen(white);
	paint.setBrush(white);
	paint.drawEllipse(oldPoint1.x()-sizeEye/2,oldPoint1.y()-sizeEye/2,sizeEye,sizeEye);
	paint.setPen(QPen(black));
	paint.drawEllipse(0,0,width()/2,height());
	paint.setBrush(QBrush(black));
	sizeEye=min(height(),width())/6;
	paint.drawEllipse(p.x()-sizeEye/2,p.y()-sizeEye/2,sizeEye,sizeEye);	
	oldPoint1 = p;
  }
  
  //Right eye
  vect.setX(mouse.x()-3*width()/4);
  vect.setY(mouse.y()-height()/2);
  
  cos_alpha=vect.x()/sqrt(vect.x()*vect.x()+vect.y()*vect.y());
  sin_alpha=vect.y()/sqrt(vect.x()*vect.x()+vect.y()*vect.y());
  
  if(vect.x()*vect.x() + vect.y()*vect.y() > (width()/4-tmp)*(width()/4-tmp)
	 *cos_alpha*cos_alpha+(height()/2-tmp)*(height()/2-tmp)*sin_alpha*sin_alpha)
	{
	  p.setX((width()/4-tmp)*cos_alpha+3*width()/4);
	  p.setY((height()/2-tmp)*sin_alpha+height()/2);	
	}
  else
	p=mouse;
    
  if( (p.x() != oldPoint2.x()) || (p.y() != oldPoint2.y())) {
	QPainter paint(this);
	paint.setPen(white);
	paint.setBrush(white);
	paint.drawEllipse(oldPoint2.x()-sizeEye/2,oldPoint2.y()-sizeEye/2,sizeEye,sizeEye);
	paint.setPen(QPen(black));
	paint.drawEllipse(width()/2,0,width()/2,height());
	paint.setBrush(QBrush(black));
	sizeEye=min(height(),width())/6;
	paint.drawEllipse(p.x()-sizeEye/2,p.y()-sizeEye/2,sizeEye,sizeEye);	
	oldPoint2 = p;
  }  
}


kicker'EyesApplet::widthForHeight() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:121)

int EyesApplet::widthForHeight(int h)
{
  // I want to have a quadratic shape.
  return h+10;
}

kicker'EyesApplet::heightForWidth() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:126)

int EyesApplet::heightForWidth(int w)
{
  // I want to have a quadratic shape.
  return w;
}


kicker'EyesApplet::resizeEvent() (./kdebase/kicker/externalapplets/eyes/eyes.cpp:132)

void EyesApplet::resizeEvent( QResizeEvent* )
{
  sizeEye=min(height(),width())/6;
  oldPoint1.setX(width()/4);
  oldPoint1.setY(height()/2);
  oldPoint2.setX(3*width()/4);
  oldPoint2.setY(height()/2);
}