From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- examples/chart/canvasview.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 examples/chart/canvasview.cpp (limited to 'examples/chart/canvasview.cpp') diff --git a/examples/chart/canvasview.cpp b/examples/chart/canvasview.cpp new file mode 100644 index 0000000..42701f5 --- /dev/null +++ b/examples/chart/canvasview.cpp @@ -0,0 +1,55 @@ +#include "canvasview.h" +#include "chartform.h" + +#include +#include +#include +#include + + +void CanvasView::contentsContextMenuEvent( QContextMenuEvent * ) +{ + ((ChartForm*)parent())->optionsMenu->exec( QCursor::pos() ); +} + + +void CanvasView::viewportResizeEvent( QResizeEvent *e ) +{ + canvas()->resize( e->size().width(), e->size().height() ); + ((ChartForm*)parent())->drawElements(); +} + + +void CanvasView::contentsMousePressEvent( QMouseEvent *e ) +{ + QCanvasItemList list = canvas()->collisions( e->pos() ); + for ( QCanvasItemList::iterator it = list.begin(); it != list.end(); ++it ) + if ( (*it)->rtti() == CanvasText::CANVAS_TEXT ) { + m_movingItem = *it; + m_pos = e->pos(); + return; + } + m_movingItem = 0; +} + + +void CanvasView::contentsMouseMoveEvent( QMouseEvent *e ) +{ + if ( m_movingItem ) { + QPoint offset = e->pos() - m_pos; + m_movingItem->moveBy( offset.x(), offset.y() ); + m_pos = e->pos(); + ChartForm *form = (ChartForm*)parent(); + form->setChanged( TRUE ); + int chartType = form->chartType(); + CanvasText *item = (CanvasText*)m_movingItem; + int i = item->index(); + + (*m_elements)[i].setProX( chartType, item->x() / canvas()->width() ); + (*m_elements)[i].setProY( chartType, item->y() / canvas()->height() ); + + canvas()->update(); + } +} + + -- cgit v1.2.3