diff options
author | rachytski <siarhei.rachytski@gmail.com> | 2013-01-28 18:30:30 +0400 |
---|---|---|
committer | Alex Zolotarev <alex@maps.me> | 2015-09-23 01:49:24 +0300 |
commit | 8a76c0966deabbb180730345a9c65859145de9bc (patch) | |
tree | be5957ec98fb9f5859904d682c32815e4eaa5fa3 /qt_tstfrm | |
parent | 6f1dcdd9ede0f0158bc41c964b7bdf5786555700 (diff) |
added gui::Balloon::setOnClickListener and added a test for it.
Diffstat (limited to 'qt_tstfrm')
-rw-r--r-- | qt_tstfrm/gui_test_widget.hpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/qt_tstfrm/gui_test_widget.hpp b/qt_tstfrm/gui_test_widget.hpp index df5d798d09..4fb18ef30c 100644 --- a/qt_tstfrm/gui_test_widget.hpp +++ b/qt_tstfrm/gui_test_widget.hpp @@ -2,6 +2,7 @@ #include "gl_test_widget.hpp" #include "../../gui/controller.hpp" +#include <QMouseEvent> template <class T, void (T::*)(gui::Controller*)> struct init_with_controller_fn_bind @@ -33,6 +34,11 @@ private: public: + void invalidate() + { + base_t::updateGL(); + } + void initializeGL() { base_t::initializeGL(); @@ -56,7 +62,7 @@ public: rp.m_CacheScreen = m_cacheScreen.get(); rp.m_GlyphCache = base_t::m_resourceManager->glyphCache(0); - rp.m_InvalidateFn = bind(&QGLWidget::update, this); + rp.m_InvalidateFn = bind(&GUITestWidget<TTest>::invalidate, this); rp.m_VisualScale = 1.0; InitImpl(m_controller, bool_tag<has_init_with_controller<TTest, TTest>::value >()); @@ -78,6 +84,29 @@ public: m_controller->UpdateElements(); m_controller->DrawFrame(s.get()); } + + void mousePressEvent(QMouseEvent * e) + { + base_t::mousePressEvent(e); + + if (e->button() == Qt::LeftButton) + m_controller->OnTapStarted(m2::PointU(e->pos().x(), e->pos().y())); + } + + void mouseReleaseEvent(QMouseEvent * e) + { + base_t::mouseReleaseEvent(e); + + if (e->button() == Qt::LeftButton) + m_controller->OnTapEnded(m2::PointU(e->pos().x(), e->pos().y())); + } + + void mouseMoveEvent(QMouseEvent * e) + { + base_t::mouseMoveEvent(e); + + m_controller->OnTapMoved(m2::PointU(e->pos().x(), e->pos().y())); + } }; template <class Test> QWidget * create_gui_test_widget() |