00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "twindowpositioner.h"
00023
00024 #include <kdebug.h>
00025
00026 #include <tqwidget.h>
00027
00028 KWindowPositioner::KWindowPositioner( TQWidget *master, TQWidget *slave,
00029 Mode mode )
00030 : TQObject( master ), mMaster( master ), mSlave( slave ), mMode( mode )
00031 {
00032 master->topLevelWidget()->installEventFilter( this );
00033 }
00034
00035 bool KWindowPositioner::eventFilter( TQObject *, TQEvent *e )
00036 {
00037 if ( e->type() == TQEvent::Move ) {
00038 reposition();
00039 }
00040
00041 return false;
00042 }
00043
00044 void KWindowPositioner::reposition()
00045 {
00046 TQPoint relativePos;
00047 if ( mMode == Right ) {
00048 relativePos = TQPoint( mMaster->width(), -100 );
00049 } else if ( mMode == Bottom ) {
00050 relativePos = TQPoint( 100 - mSlave->width() + mMaster->width(),
00051 mMaster->height() );
00052 } else {
00053 kdError() << "KWindowPositioner: Illegal mode" << endl;
00054 }
00055 TQPoint pos = mMaster->mapToGlobal( relativePos );
00056 mSlave->move( pos );
00057 mSlave->raise();
00058 }
00059
00060 #include "twindowpositioner.moc"