aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/core/libLumina/obsolete/RootSubWindow.h
diff options
context:
space:
mode:
authorWeblate <noreply@weblate.org>2017-11-14 00:04:49 +0000
committerWeblate <noreply@weblate.org>2017-11-14 00:04:49 +0000
commitdc40a01ae695b47f87daff7ee08f3519d79b12ae (patch)
tree6e1d58f23d4537f8f501ba7e531f9ed90f269dda /src-qt5/core/libLumina/obsolete/RootSubWindow.h
parentTranslated using Weblate (German) (diff)
parentAdd a special rule for Ubuntu Linux: (diff)
downloadlumina-dc40a01ae695b47f87daff7ee08f3519d79b12ae.tar.gz
lumina-dc40a01ae695b47f87daff7ee08f3519d79b12ae.tar.bz2
lumina-dc40a01ae695b47f87daff7ee08f3519d79b12ae.zip
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src-qt5/core/libLumina/obsolete/RootSubWindow.h')
-rw-r--r--src-qt5/core/libLumina/obsolete/RootSubWindow.h109
1 files changed, 109 insertions, 0 deletions
diff --git a/src-qt5/core/libLumina/obsolete/RootSubWindow.h b/src-qt5/core/libLumina/obsolete/RootSubWindow.h
new file mode 100644
index 00000000..598298e2
--- /dev/null
+++ b/src-qt5/core/libLumina/obsolete/RootSubWindow.h
@@ -0,0 +1,109 @@
+//===========================================
+// Lumina Desktop source code
+// Copyright (c) 2017, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This class embeds a native window
+// within the RootWindow area
+//===========================================
+#ifndef _LUMINA_ROOT_WINDOW_SUB_WINDOW_H
+#define _LUMINA_ROOT_WINDOW_SUB_WINDOW_H
+
+#include <QWindow>
+#include <QWidget>
+#include <QCloseEvent>
+#include <QFrame>
+#include <QBoxLayout>
+#include <QLabel>
+#include <QToolButton>
+#include <QMenu>
+#include <QPropertyAnimation>
+#include <NativeWindow.h>
+#include <NativeEmbedWidget.h>
+
+class RootSubWindow : public QFrame{
+ Q_OBJECT
+public:
+ RootSubWindow(QWidget *root, NativeWindow *win);
+ ~RootSubWindow();
+
+ WId id();
+ NativeWindow* nativeWindow();
+
+private:
+ //Window status
+ enum ModState{Normal, Move, ResizeTop, ResizeTopRight, ResizeRight, ResizeBottomRight, ResizeBottom, ResizeBottomLeft, ResizeLeft, ResizeTopLeft};
+ ModState activeState;
+ ModState currentCursor;
+ QPoint offset; //needed for movement calculations (offset from mouse click to movement point)
+ //Functions for getting/setting state
+ ModState getStateAtPoint(QPoint pt, bool setoffset = false); //generally used for mouse location detection
+ void setMouseCursor(ModState, bool override = false); //Update the mouse cursor based on state
+
+ //Native window embed objects
+ NativeWindow *WIN;
+ NativeEmbedWidget *WinWidget;
+ bool closing;
+ //Title bar objects
+ QBoxLayout *titleBarL, *mainLayout;
+ QToolButton *closeB, *maxB, *minB, *otherB;
+ QLabel *titleLabel;
+ QMenu *otherM; //menu of other actions
+ QWidget *titleBar;
+ //Other random objects (animations,etc)
+ QPropertyAnimation *anim;
+ QVariant animResetProp;
+ QTimer *moveTimer;
+ QRect lastGeom, lastMaxGeom; //frame coordinates
+
+ void initWindowFrame();
+ void enableFrame(bool);
+ void enableFrame(QList<NativeWindow::Type> types);
+
+ void LoadProperties( QList< NativeWindow::Property> list);
+
+ static QStringList validAnimations(NativeWindow::Property);
+
+public slots:
+ void ensureVisible(){ WIN->setProperty(NativeWindow::Visible, true); }
+ void giveMouseFocus(){ WinWidget->raiseWindow(); }
+ void removeMouseFocus(){ WinWidget->lowerWindow(); }
+ void giveKeyboardFocus(){ WIN->requestProperty(NativeWindow::Active, true, true); }
+
+ void clientClosed();
+ void LoadAllProperties();
+
+ QRect clientGlobalGeom();
+
+ //Button Actions - public so they can be tied to key shortcuts and stuff as well
+ void toggleMinimize();
+ void toggleMaximize();
+ void triggerClose();
+ void toggleSticky();
+ void activate();
+
+ //Mouse Interactivity
+ void startMoving();
+ void startResizing();
+
+private slots:
+ void propertiesChanged(QList<NativeWindow::Property>, QList<QVariant>);
+
+ void loadAnimation(QString name, NativeWindow::Property, QVariant nval); //new val
+ void animFinished();
+
+protected:
+ void mousePressEvent(QMouseEvent*);
+ void mouseMoveEvent(QMouseEvent*);
+ void mouseReleaseEvent(QMouseEvent*);
+ //void leaveEvent(QEvent *ev);
+ //void enterEvent(QEvent *ev);
+ void moveEvent(QMoveEvent *ev);
+
+signals:
+ void windowMoved(RootSubWindow*);
+ void windowAnimFinished();
+};
+
+#endif
bgstack15