Source Code (Use browser search to find items of interest.)
Class Index
khexedit'CDragManager (./kdeutils/khexedit/hexviewwidget.h:65)
class CDragManager : public QWidget
{
Q_OBJECT
public:
enum EDragActivateMode
{
Movement = 0,
Timer = 1
};
public:
CDragManager( void );
void setActivateMode( EDragActivateMode mode );
void setup( int x, int y );
bool start( QMouseEvent *e );
bool clear( void );
protected:
virtual void timerEvent( QTimerEvent *e );
private:
void removeTimer( void );
void setupTimer( void );
signals:
void startDrag( bool asText );
private:
EDragActivateMode mActivateMode;
bool mPending;
int mTimerId;
QPoint mOrigin;
};
khexedit'CDragManager::CDragManager() (./kdeutils/khexedit/hexviewwidget.cc:55)
CDragManager::CDragManager( void )
{
mActivateMode = Movement;
mPending = false;
mTimerId = 0;
}
khexedit'CDragManager::setActivateMode() (./kdeutils/khexedit/hexviewwidget.cc:62)
void CDragManager::setActivateMode( EDragActivateMode mode )
{
clear();
mActivateMode = mode; // Movement or Timer
}
khexedit'CDragManager::setup() (./kdeutils/khexedit/hexviewwidget.cc:68)
void CDragManager::setup( int x, int y )
{
if( mActivateMode == Movement )
{
mOrigin.setX(x);
mOrigin.setY(y);
}
else
{
setupTimer();
}
mPending = true;
}
khexedit'CDragManager::start() (./kdeutils/khexedit/hexviewwidget.cc:82)
bool CDragManager::start( QMouseEvent *e )
{
if( mPending == false )
{
return( false );
}
if( mActivateMode == Movement )
{
if( (mOrigin - e->pos()).manhattanLength() > KGlobalSettings::dndEventDelay() )
{
mPending = false;
emit startDrag( e->state() & ShiftButton ? true : false );
}
return( true );
}
else // Timer
{
if( mTimerId != 0 )
{
removeTimer();
mPending = false;
emit startDrag( e->state() & ShiftButton ? true : false );
return( true );
}
else
{
// Should never happen!
mPending = false;
return( false );
}
}
}
khexedit'CDragManager::clear() (./kdeutils/khexedit/hexviewwidget.cc:117)
bool CDragManager::clear( void )
{
if( mPending == false )
{
return( false );
}
if( mActivateMode == Timer )
{
removeTimer();
}
mPending = false;
return( true );
}
khexedit'CDragManager::timerEvent() (./kdeutils/khexedit/hexviewwidget.cc:133)
void CDragManager::timerEvent( QTimerEvent *e )
{
if( e->timerId() == mTimerId )
{
removeTimer();
if( mPending == true )
{
mPending = false;
Window root, w;
uint mask;
int i;
root = RootWindow( x11Display(), x11Screen() );
XQueryPointer( x11Display(), root, &w, &w, &i, &i, &i, &i, &mask );
emit startDrag( mask & ShiftMask ? true : false );
}
}
}
khexedit'CDragManager::removeTimer() (./kdeutils/khexedit/hexviewwidget.cc:153)
void CDragManager::removeTimer( void )
{
if( mTimerId != 0 )
{
killTimer( mTimerId );
mTimerId = 0;
}
}
khexedit'CDragManager::setupTimer() (./kdeutils/khexedit/hexviewwidget.cc:162)
void CDragManager::setupTimer( void )
{
if( mTimerId != 0 )
{
killTimer( mTimerId );
mTimerId = 0;
}
mTimerId = startTimer( 500 );
}
//
// This widget will use the entire space of the parent widget
//