context_menu.cpp

Go to the documentation of this file.
00001 
00009 #include <vve.h>
00010 
00011 // Just an empty model
00012 class MyModel : public Model
00013 {
00014 public:
00015   MyModel(QObject *parent)
00016     : Model(parent)
00017   { }
00018 
00019   void step() {}
00020 };
00021 
00022 DEFINE_MODEL(MyModel);
00023 
00024 #include <QContextMenuEvent>
00025 #include <QAction>
00026 #include <QMenu>
00027 #include <iostream>
00028 
00029 using namespace std;
00030 
00031 class MyViewer : public Viewer
00032 {
00033   Q_OBJECT
00034 
00035   QAction *firstAct, *secondAct, *thirdAct;
00036 public:
00037   MyViewer(QWidget* parent)
00038     : Viewer(parent)
00039     , firstAct(new QAction("First action", this))
00040     , secondAct(new QAction("Second action", this))
00041     , thirdAct(new QAction("Third action", this))
00042   {
00043     connect(firstAct, SIGNAL(activated()), SLOT(firstActivated()));
00044     connect(secondAct, SIGNAL(activated()), SLOT(secondActivated()));
00045     connect(thirdAct, SIGNAL(activated()), SLOT(thirdActivated()));
00046   }
00047 
00048 public slots:
00049   void firstActivated()
00050   {
00051     cout << "First action selected" << endl;
00052   }
00053 
00054   void secondActivated()
00055   {
00056     cout << "Second action selected" << endl;
00057   }
00058 
00059   void thirdActivated()
00060   {
00061     cout << "Third action selected" << endl;
00062   }
00063 
00064 protected:
00065   void contextMenuEvent(QContextMenuEvent* event)
00066   {
00067     QMenu *popup = new QMenu(this);
00068     popup->addAction(firstAct);
00069     popup->addAction(secondAct);
00070     popup->addAction(thirdAct);
00071     popup->popup(event->globalPos());
00072   }
00073 };
00074 
00075 #include "model.moc"
00076 
00077 DEFINE_VIEWER(MyViewer);
00078 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Fri May 31 15:37:49 2013 for VVE by  doxygen 1.6.3