7#include "kspread_view.h"
9#include "kspread_handler.h"
11#define KS_MIN_RECTSIZE 3
15InsertHandler::InsertHandler(
View* view, TQWidget* widget )
16 : KoEventHandler( widget )
22 widget->setCursor( crossCursor );
25InsertHandler::~InsertHandler()
27 ((TQWidget*)target())->setCursor( arrowCursor );
31bool InsertHandler::eventFilter( TQObject*, TQEvent* ev )
33 if ( ev->type() == TQEvent::MouseButtonPress )
35 TQMouseEvent* e = (TQMouseEvent*)ev;
37 m_geometryStart = e->pos();
38 m_geometryEnd = e->pos();
44 else if ( ev->type() == TQEvent::MouseMove )
49 TQMouseEvent* e = (TQMouseEvent*)ev;
52 painter.begin( (TQWidget*)target() );
53 painter.setRasterOp( NotROP );
56 pen.setStyle( TQt::DashLine );
57 painter.setPen( pen );
61 int x = m_geometryStart.x();
62 int y = m_geometryStart.y();
63 if ( x > m_geometryEnd.x() )
64 x = m_geometryEnd.x();
65 if ( y > m_geometryEnd.y() )
66 y = m_geometryEnd.y();
67 int w = m_geometryEnd.x() - m_geometryStart.x();
69 int h = m_geometryEnd.y() - m_geometryStart.y();
72 if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE;
73 if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE;
75 painter.drawRect( x, y, w, h );
80 m_geometryEnd = e->pos();
82 int x = m_geometryStart.x();
83 int y = m_geometryStart.y();
84 if ( x > m_geometryEnd.x() )
85 x = m_geometryEnd.x();
86 if ( y > m_geometryEnd.y() )
87 y = m_geometryEnd.y();
88 int w = m_geometryEnd.x() - m_geometryStart.x();
90 int h = m_geometryEnd.y() - m_geometryStart.y();
93 if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE;
94 if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE;
96 painter.drawRect( x, y, w, h );
101 else if ( ev->type() == TQEvent::MouseButtonRelease )
103 TQMouseEvent* e = (TQMouseEvent*)ev;
111 m_geometryEnd = e->pos();
113 int x = m_geometryStart.x();
114 int y = m_geometryStart.y();
115 if ( x > m_geometryEnd.x() )
116 x = m_geometryEnd.x();
117 if ( y > m_geometryEnd.y() )
118 y = m_geometryEnd.y();
119 int w = m_geometryEnd.x() - m_geometryStart.x();
120 if ( w < 0 ) w *= -1;
121 int h = m_geometryEnd.y() - m_geometryStart.y();
122 if ( h < 0 ) h *= -1;
124 if ( w < KS_MIN_RECTSIZE ) w = KS_MIN_RECTSIZE;
125 if ( h < KS_MIN_RECTSIZE ) h = KS_MIN_RECTSIZE;
128 painter.begin( (TQWidget*)target() );
131 pen.setStyle( TQt::DashLine );
132 painter.setPen( pen );
134 painter.setRasterOp( NotROP );
135 painter.drawRect( x, y, w, h );
138 insertObject( TQRect( x, y, w, h) );
143 else if ( ev->type() == TQEvent::KeyPress )
145 TQKeyEvent* e = (TQKeyEvent*)ev;
146 if ( e->key() != Key_Escape )
156InsertPartHandler::InsertPartHandler(
View* view, TQWidget* widget,
const KoDocumentEntry& entry )
160InsertPartHandler::~InsertPartHandler()
163void InsertPartHandler::insertObject( TQRect r)
165 m_view->insertChild( r, m_entry );
169InsertChartHandler::InsertChartHandler(
View* view, TQWidget* widget,
const KoDocumentEntry& entry )
173InsertChartHandler::~InsertChartHandler()
176void InsertChartHandler::insertObject( TQRect r)
178 m_view->insertChart( r, m_entry );
181InsertPictureHandler::InsertPictureHandler(
View* view, TQWidget* widget,
const KURL &file )
186InsertPictureHandler::~InsertPictureHandler()
189void InsertPictureHandler::insertObject( TQRect r)
194#include "kspread_handler.moc"
This event handler is used to insert a new part.
The View class displays a KSpread document.
void resetInsertHandle()
Resets the internal handle pointer, called from InsertHandler destructor.