aboutsummaryrefslogtreecommitdiff
path: root/libLumina/LuminaUtils.h
diff options
context:
space:
mode:
Diffstat (limited to 'libLumina/LuminaUtils.h')
-rw-r--r--libLumina/LuminaUtils.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/libLumina/LuminaUtils.h b/libLumina/LuminaUtils.h
index 3ab741a0..bbb40c38 100644
--- a/libLumina/LuminaUtils.h
+++ b/libLumina/LuminaUtils.h
@@ -19,6 +19,10 @@
#include <QObject>
#include <QTranslator>
#include <QApplication>
+#include <QMenu>
+#include <QMouseEvent>
+#include <QSize>
+#include <QWidgetAction>
class LUtils{
public:
@@ -87,4 +91,36 @@ public:
};
+//Special subclass for a menu which the user can grab the edges and resize as necessary
+// Note: Make sure that you don't set 0pixel contents margins on this menu
+// - it needs at least 1 pixel margins for the user to be able to grab it
+class ResizeMenu : public QMenu{
+ Q_OBJECT
+public:
+ ResizeMenu(QWidget *parent = 0);
+ virtual ~ResizeMenu();
+
+ void setContents(QWidget *con);
+
+private:
+ enum SideFlag{NONE, TOP, BOTTOM, LEFT, RIGHT};
+ SideFlag resizeSide;
+ QWidget *contents;
+ QWidgetAction *cAct;
+
+private slots:
+ void clearFlags(){
+ resizeSide=NONE;
+ }
+
+protected:
+ virtual void mouseMoveEvent(QMouseEvent *ev);
+ virtual void mousePressEvent(QMouseEvent *ev);
+ virtual void mouseReleaseEvent(QMouseEvent *ev);
+
+signals:
+ void MenuResized(QSize); //Emitted when the menu is manually resized by the user
+
+};
+
#endif
bgstack15