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

Class Index

kword'KWResizeHandle (./koffice/kword/kword_page.h:52)

class KWResizeHandle : public QWidget
{
    Q_OBJECT

public:
    enum Direction {
	LeftUp = 0,
	Up,
	RightUp,
	Right,
	RightDown,
	Down,
	LeftDown,
	Left
    };

    KWResizeHandle( KWPage *p, Direction d, KWFrame *frm );
    void updateGeometry();

protected:
    void mouseMoveEvent( QMouseEvent *e );
    void mousePressEvent( QMouseEvent *e );
    void mouseReleaseEvent( QMouseEvent *e );

    bool mousePressed;
    int oldX, oldY;
    KWPage *page;
    Direction direction;
    KWFrame *frame;

};

/******************************************************************/
/* Class: KWPage						  */
/******************************************************************/


kword'KWResizeHandle::KWResizeHandle() (./koffice/kword/kword_page.cc:5250)

KWResizeHandle::KWResizeHandle( KWPage *p, Direction d, KWFrame *frm )
    : QWidget( p->viewport() ), page( p ), direction( d ), frame( frm )
{
    mousePressed = FALSE;
    setMouseTracking( TRUE );
    setBackgroundMode( PaletteHighlight );

    switch ( direction ) {
    case LeftUp:
	setCursor( Qt::sizeFDiagCursor );
	break;
    case Up:
	setCursor( Qt::sizeVerCursor );
	break;
    case RightUp:
	setCursor( Qt::sizeBDiagCursor );
	break;
    case Right:
	setCursor( Qt::sizeHorCursor );
	break;
    case RightDown:
	setCursor( Qt::sizeFDiagCursor );
	break;
    case Down:
	setCursor( Qt::sizeVerCursor );
	break;
    case LeftDown:
	setCursor( Qt::sizeBDiagCursor );
	break;
    case Left:
	setCursor( Qt::sizeHorCursor );
	break;
    }

    updateGeometry();
    show();
}

/*================================================================*/

kword'KWResizeHandle::mouseMoveEvent() (./koffice/kword/kword_page.cc:5289)

void KWResizeHandle::mouseMoveEvent( QMouseEvent *e )
{
    if ( !mousePressed )
	return;
    page->mouseMoved = TRUE;

    int my = y() + e->y();
    int mx = x() + e->x();
    mx += page->contentsX();
    my += page->contentsY();
    mx = ( mx / page->doc->getRastX() ) * page->doc->getRastX();
    my = ( my / page->doc->getRastY() ) * page->doc->getRastY();
    switch ( direction ) {
    case LeftUp:
	page->vmmEditFrameFDiag( mx, my );
	break;
    case Up:
	page->vmmEditFrameSizeVert( mx, my );
	break;
    case RightUp:
	page->vmmEditFrameBDiag( mx, my );
	break;
    case Right:
	page->vmmEditFrameSizeHorz( mx, my );
	break;
    case RightDown:
	page->vmmEditFrameFDiag( mx, my );
	break;
    case Down:
	page->vmmEditFrameSizeVert( mx, my );
	break;
    case LeftDown:
	page->vmmEditFrameBDiag( mx, my );
	break;
    case Left:
	page->vmmEditFrameSizeHorz( mx, my );
	break;
    }
    page->oldMy = my;
    page->oldMx = mx;
    page->deleteMovingRect = TRUE;
    page->doRaster = TRUE;
    page->doc->setModified( TRUE );
}

/*================================================================*/

kword'KWResizeHandle::mousePressEvent() (./koffice/kword/kword_page.cc:5335)

void KWResizeHandle::mousePressEvent( QMouseEvent *e )
{
    KWFrameSet *fs = 0;
    KWFrame *frm = 0;

    for ( unsigned int i = 0; i < page->doc->getNumFrameSets(); ++i ) {
	fs = page->doc->getFrameSet( i );
	for ( unsigned int j = 0; j < fs->getNumFrames(); ++j ) {
	    frm = fs->getFrame( j );
	    if ( frame->isSelected() && frm != frame ) {
		frm->setSelected( FALSE );
		page->removeResizeHandles( frm );
	    }
	}
    }

    mousePressed = TRUE;
    oldX = e->x();
    oldY = e->y();
    page->mouseMoved = FALSE;
    page->mousePressed = TRUE;
    page->vmpEditFrame( 0, x() + e->x() + page->contentsX(),
			y() + e->y() + page->contentsY() );
    page->doc->setModified( TRUE );
}

/*================================================================*/

kword'KWResizeHandle::mouseReleaseEvent() (./koffice/kword/kword_page.cc:5362)

void KWResizeHandle::mouseReleaseEvent( QMouseEvent *e )
{
    mousePressed = FALSE;
    page->vmrEditFrame( x() + e->x() + page->contentsX(),
			y() + e->y() + page->contentsY() );
    page->mousePressed = FALSE;
}

/*================================================================*/

kword'KWResizeHandle::updateGeometry() (./koffice/kword/kword_page.cc:5371)

void KWResizeHandle::updateGeometry()
{
    switch ( direction ) {
    case LeftUp:
	page->moveChild( this, frame->x(), frame->y() );
	break;
    case Up:
	page->moveChild( this, frame->x() + frame->width() / 2 - 3, frame->y() );
	break;
    case RightUp:
	page->moveChild( this, frame->x() + frame->width() - 6, frame->y() );
	break;
    case Right:
	page->moveChild( this, frame->x() + frame->width() - 6,
		     frame->y() + frame->height() / 2 - 3 );
	break;
    case RightDown:
	page->moveChild( this, frame->x() + frame->width() - 6,
		     frame->y() + frame->height() - 6 );
	break;
    case Down:
	page->moveChild( this, frame->x() + frame->width() / 2 - 3,
		     frame->y() + frame->height() - 5 );
	break;
    case LeftDown:
	page->moveChild( this, frame->x(), frame->y() + frame->height() - 6 );
	break;
    case Left:
	page->moveChild( this, frame->x(), frame->y() + frame->height() / 2 - 3 );
	break;
    }
    resize( 6, 6 );
}