VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtContextTreeWidget.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtContextTreeWidget_H_
11 #define DtContextTreeWidget_H_
12 
13 #include <vrvCoreQt/vrvCoreQt.h>
14 #include <vrvUtil/signalslib.h>
15 
16 #include <QtWidgets/QTreeWidget>
17 
18 class QMenu;
19 class QMouseEvent;
20 class QPoint;
21 class QPushButton;
22 class QIcon;
23 
24 namespace makVrv
25 {
30  {
31  Q_OBJECT
32 
33  public:
35  {
36  public:
38  : myButton(0)
39  , myReceiver(0)
40  , mySlot(0)
41  {
42  }
43 
46  const char* mySlot;
47  QString myTitle;
48  };
49 
50  typedef std::vector<ContextMenuItem> DtContextMenuItems;
51 
52  public:
53  DtContextTreeWidget(QWidget* parent = 0);
54 
55  virtual ~DtContextTreeWidget();
56 
57  public:
58  // \brief Will add a context menu item for the specified button when creating the
63  virtual void addContextItem(QPushButton* b, QObject* receiver, const char* slot);
64  virtual void addContextItem(QPushButton* b, const QString& title, QObject* receiver, const char* slot);
65 
68  virtual void addContextItem(const QString& item, QObject* receiver, const char* slot,
69  const QIcon& icon = QIcon());
70 
72  virtual void addContextSeparator();
73 
76  const DtContextMenuItems& menuItems() const;
77  virtual void setMenuItems(const DtContextMenuItems&);
78 
81  virtual void removeMenuItem(const QString&);
82 
84  virtual void removeSeparator(int at = 1);
85 
86  bool rightClick() const
87  {
88  return myRightClick;
89  }
90 
91  public:
94  boost::signalslib::signal<void (DtContextTreeWidget*, QMenu*)> signal_contextMenuAboutToBeShown;
95 
96  protected slots:
97  virtual void onButtonDestroyed();
98 
99  protected:
102  virtual void processContextMenu(const QPoint&);
103 
105  virtual void mousePressEvent(QMouseEvent* mouseEvent);
106 
108  virtual void mouseReleaseEvent(QMouseEvent* mouseEvent);
109 
111  virtual void deleteIfOwned(const ContextMenuItem&);
112 
113  protected:
116  };
117 }
118 
119 #endif
DtContextMenuItems myMenuItems
Definition: DtContextTreeWidget.h:115
std::vector< ContextMenuItem > DtContextMenuItems
Definition: DtContextTreeWidget.h:50
boost::signalslib::signal< void(DtContextTreeWidget *, QMenu *)> signal_contextMenuAboutToBeShown
Signal emitted before the menu is shown. Can be used for menu item validation.
Definition: DtContextTreeWidget.h:94
#define DT_DLL_VRVCOREQT
Definition: vrvCoreQt.h:20
ContextMenuItem()
Definition: DtContextTreeWidget.h:37
Contains DLL export macros.
bool rightClick() const
Definition: DtContextTreeWidget.h:86
QObject * myReceiver
Definition: DtContextTreeWidget.h:45
A tree widget that will allow the addition of menu items that will appear on a context menu when the ...
Definition: DtContextTreeWidget.h:29
QString myTitle
Definition: DtContextTreeWidget.h:47
Definition: DtContextTreeWidget.h:34
bool myRightClick
Definition: DtContextTreeWidget.h:114
QPushButton * myButton
Definition: DtContextTreeWidget.h:44
const char * mySlot
Definition: DtContextTreeWidget.h:46

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)