context_menu.cpp
Go to the documentation of this file.00001
00009 #include <vve.h>
00010
00011
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