From b9aad1f15dc600e4dbe4c62d3fcced6363188ba3 Mon Sep 17 00:00:00 2001 From: zautrix Date: Sat, 26 Jun 2004 19:01:18 +0000 Subject: Initial revision --- (limited to 'microkde/ktextedit.cpp') diff --git a/microkde/ktextedit.cpp b/microkde/ktextedit.cpp new file mode 100644 index 0000000..4dd6875 --- a/dev/null +++ b/microkde/ktextedit.cpp @@ -0,0 +1,53 @@ + +#include +#ifndef DESKTOP_VERSION +#include +#endif + + +KTextEdit::KTextEdit ( QWidget *parent ) : QMultiLineEdit( parent ) +{ + mAllowPopupMenu = false; + mMouseDown = false; + mIgnoreMark = false; +#ifndef DESKTOP_VERSION + QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); +#endif +} + +void KTextEdit::mousePressEvent(QMouseEvent *e) +{ + if ( e->button() == LeftButton ) { + mAllowPopupMenu = true; + mYMousePos = mapToGlobal( (e->pos())).y(); + mXMousePos = mapToGlobal( (e->pos())).x(); + } + if ( e->button() == RightButton && !mAllowPopupMenu ) + return; + if ( e->button() == LeftButton ) { + if ( hasMarkedText () ) + mIgnoreMark = !mIgnoreMark; + if ( mIgnoreMark && hasMarkedText () ) { + mMouseDown = false; + return ; + } + } + QMultiLineEdit::mousePressEvent( e ); +} + +void KTextEdit::mouseReleaseEvent(QMouseEvent *e) +{ + QMultiLineEdit::mouseReleaseEvent(e); +} + +void KTextEdit::mouseMoveEvent(QMouseEvent *e) +{ + int diff = mYMousePos - mapToGlobal( (e->pos())).y(); + if ( diff < 0 ) diff = -diff; + int diff2 = mXMousePos - mapToGlobal( (e->pos())).x(); + if ( diff2 < 0 ) diff2 = -diff2; + if ( diff+ diff2 > 20 ) + mAllowPopupMenu = false; + QMultiLineEdit::mouseMoveEvent(e); +} + -- cgit v0.9.0.2