/*************************************************************************** tabgrip.cpp - description ------------------- begin : Fri Sep 13 2002 copyright : (C) 2003 by Troy Corbin Jr. email : tcorbin@users.sf.net ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "tabgrip.moc" #include "resource.h" #include TabGrip::TabGrip(TQWidget *parent, const char *name ) : TQWidget(parent,name) { setMaximumSize( 3200, 12 ); setMinimumSize( 32, 12 ); isDragging = FALSE; couldDrag = FALSE; setCursor( TQt::SizeAllCursor ); show(); } TabGrip::~TabGrip() { } /////////////////////////////////////// // // TabGrip::paintEvent // /////////////////////////////////////// void TabGrip::paintEvent( TQPaintEvent* ) { TQPainter paint( this ); TQColorGroup group( colorGroup() ); paint.setPen( group.light() ); paint.drawLine( 2, 2, width() - 3, 2 ); paint.drawLine( 2, 5, width() - 3, 5 ); paint.drawLine( 2, 8, width() - 3, 8 ); paint.setPen( group.dark() ); paint.drawLine( 2, 3, width() - 3, 3 ); paint.drawLine( 2, 6, width() - 3, 6 ); paint.drawLine( 2, 9, width() - 3, 9 ); } /////////////////////////////////////// // // TabGrip::mousePressEvent // /////////////////////////////////////// void TabGrip::mousePressEvent( TQMouseEvent *event ) { event->accept(); if(event->button() == TQt::LeftButton) { couldDrag = TRUE; offset = mapToGlobal( event->pos() ); offset.setX( topLevelWidget()->x() - offset.x() ); offset.setY( topLevelWidget()->y() - offset.y() ); } } /////////////////////////////////////// // // TabGrip::mouseMoveEvent // /////////////////////////////////////// void TabGrip::mouseMoveEvent( TQMouseEvent *event ) { /* By default, MouseMoveEvent is never called unless the user has a button held down, so this should only be called if we're dragging. */ event->accept(); if( couldDrag == TRUE ) { /* Dragging Page */ isDragging = TRUE; couldDrag = FALSE; TQApplication::setOverrideCursor( TQt::SizeAllCursor ); } } /////////////////////////////////////// // // TabGrip::mouseReleaseEvent // /////////////////////////////////////// void TabGrip::mouseReleaseEvent( TQMouseEvent *event ) { event->accept(); if(event->button() == TQt::LeftButton) { couldDrag = FALSE; if( isDragging ) { TQApplication::restoreOverrideCursor(); isDragging = FALSE; emit wasDragged( event->globalPos(), offset ); } } }