summaryrefslogtreecommitdiffstats
path: root/kspread/kspread_handler.cc
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-01-20 01:29:50 +0000
commit8362bf63dea22bbf6736609b0f49c152f975eb63 (patch)
tree0eea3928e39e50fae91d4e68b21b1e6cbae25604 /kspread/kspread_handler.cc
downloadkoffice-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.cc194
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"