diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-20 01:29:50 +0000 |
commit | 8362bf63dea22bbf6736609b0f49c152f975eb63 (patch) | |
tree | 0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kspread/kspread_handler.cc | |
download | koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.tar.gz koffice-8362bf63dea22bbf6736609b0f49c152f975eb63.zip |
Added old abandoned KDE3 version of koffice
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1077364 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kspread/kspread_handler.cc')
-rw-r--r-- | kspread/kspread_handler.cc | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/kspread/kspread_handler.cc b/kspread/kspread_handler.cc new file mode 100644 index 00000000..4e74958f --- /dev/null +++ b/kspread/kspread_handler.cc @@ -0,0 +1,194 @@ +// +// TODO: insert copyright header +// + +#include <qpainter.h> + +#include "kspread_view.h" + +#include "kspread_handler.h" + +#define KS_MIN_RECTSIZE 3 + +using namespace KSpread; + +InsertHandler::InsertHandler( View* view, QWidget* widget ) + : KoEventHandler( widget ) +{ + m_view = view; + m_started = false; + m_clicked = false; + + widget->setCursor( crossCursor ); +} + +InsertHandler::~InsertHandler() +{ + ((QWidget*)target())->setCursor( arrowCursor ); + m_view->resetInsertHandle(); +} + +bool InsertHandler::eventFilter( QObject*, QEvent* ev ) +{ + if ( ev->type() == QEvent::MouseButtonPress ) + { + QMouseEvent* e = (QMouseEvent*)ev; + + m_geometryStart = e->pos(); + m_geometryEnd = e->pos(); + m_started = false; + m_clicked = true; + + return true; + } + else if ( ev->type() == QEvent::MouseMove ) + { + if ( !m_clicked ) + return true; + + QMouseEvent* e = (QMouseEvent*)ev; + + QPainter painter; + painter.begin( (QWidget*)target() ); + painter.setRasterOp( NotROP ); + + QPen pen; + pen.setStyle( DashLine ); + painter.setPen( pen ); + + if ( m_started ) + { + int x = m_geometryStart.x(); + int y = m_geometryStart.y(); + if ( x > m_geometryEnd.x() ) + x = m_geometryEnd.x(); + if ( y > m_geometryEnd.y() ) + y = m_geometryEnd.y(); + int w = m_geometryEnd.x() - m_geometryStart.x(); + if ( w < 0 ) w *= -1; + int h = m_geometryEnd.y() - m_geometryStart.y(); + if ( h < 0 ) h *= -1; + + if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE; + if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE; + + painter.drawRect( x, y, w, h ); + } + else + m_started = true; + + m_geometryEnd = e->pos(); + + int x = m_geometryStart.x(); + int y = m_geometryStart.y(); + if ( x > m_geometryEnd.x() ) + x = m_geometryEnd.x(); + if ( y > m_geometryEnd.y() ) + y = m_geometryEnd.y(); + int w = m_geometryEnd.x() - m_geometryStart.x(); + if ( w < 0 ) w *= -1; + int h = m_geometryEnd.y() - m_geometryStart.y(); + if ( h < 0 ) h *= -1; + + if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE; + if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE; + + painter.drawRect( x, y, w, h ); + painter.end(); + + return true; + } + else if ( ev->type() == QEvent::MouseButtonRelease ) + { + QMouseEvent* e = (QMouseEvent*)ev; + + if ( !m_started ) + { + delete this; + return true; + } + + m_geometryEnd = e->pos(); + + int x = m_geometryStart.x(); + int y = m_geometryStart.y(); + if ( x > m_geometryEnd.x() ) + x = m_geometryEnd.x(); + if ( y > m_geometryEnd.y() ) + y = m_geometryEnd.y(); + int w = m_geometryEnd.x() - m_geometryStart.x(); + if ( w < 0 ) w *= -1; + int h = m_geometryEnd.y() - m_geometryStart.y(); + if ( h < 0 ) h *= -1; + + if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE; + if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE; + + QPainter painter; + painter.begin( (QWidget*)target() ); + + QPen pen; + pen.setStyle( DashLine ); + painter.setPen( pen ); + + painter.setRasterOp( NotROP ); + painter.drawRect( x, y, w, h ); + painter.end(); + + insertObject( QRect( x, y, w, h) ); + + delete this; + return true; + } + else if ( ev->type() == QEvent::KeyPress ) + { + QKeyEvent* e = (QKeyEvent*)ev; + if ( e->key() != Key_Escape ) + return false; + + delete this; + return true; + } + + return false; +} + +InsertPartHandler::InsertPartHandler( View* view, QWidget* widget, const KoDocumentEntry& entry ) + : InsertHandler( view, widget ), m_entry( entry ) +{ +} +InsertPartHandler::~InsertPartHandler() +{ +} +void InsertPartHandler::insertObject( QRect r) +{ + m_view->insertChild( r, m_entry ); +} + + +InsertChartHandler::InsertChartHandler( View* view, QWidget* widget, const KoDocumentEntry& entry ) + : InsertHandler( view, widget ), m_entry( entry ) +{ +} +InsertChartHandler::~InsertChartHandler() +{ +} +void InsertChartHandler::insertObject( QRect r) +{ + m_view->insertChart( r, m_entry ); +} + +InsertPictureHandler::InsertPictureHandler( View* view, QWidget* widget, const KURL &file ) + : InsertHandler( view, widget ) +{ + m_file = file; +} +InsertPictureHandler::~InsertPictureHandler() +{ +} +void InsertPictureHandler::insertObject( QRect r) +{ + //m_view->insertPicture(/* r,*/ m_file ); +} + +#include "kspread_handler.moc" |