diff options
Diffstat (limited to 'lumina-wm-INCOMPLETE/LWindow.h')
-rw-r--r-- | lumina-wm-INCOMPLETE/LWindow.h | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/lumina-wm-INCOMPLETE/LWindow.h b/lumina-wm-INCOMPLETE/LWindow.h index af5a8054..61345736 100644 --- a/lumina-wm-INCOMPLETE/LWindow.h +++ b/lumina-wm-INCOMPLETE/LWindow.h @@ -4,16 +4,10 @@ // Available under the 3-clause BSD license // See the LICENSE file for full details //=========================================== -#ifndef _LUMINA_DESKTOP_SCREEN_SAVER_H -#define _LUMINA_DESKTOP_SCREEN_SAVER_H +#ifndef _LUMINA_DESKTOP_WINDOW_FRAME_H +#define _LUMINA_DESKTOP_WINDOW_FRAME_H -#include <QFrame> -#include <QLabel> -#include <QToolButton> -#include <QMenu> -#include <QMouseEvent> -#include <QAction> -#include <QPoint> +#include "GlobalDefines.h" class LWindow : public QFrame{ Q_OBJECT @@ -28,25 +22,35 @@ private: void InitWindow(); //Initialize all the internal widgets //Window status - enum ModStatus{Normal, Move, ResizeTop, ResizeTopRight, ResizeRight, ResizeBottomRight, ResizeBottom, ResizeBottomLeft, ResizeLeft, ResizeTopLeft}; - ModStatus activeState; + enum ModState{Normal, Move, ResizeTop, ResizeTopRight, ResizeRight, ResizeBottomRight, ResizeBottom, ResizeBottomLeft, ResizeLeft, ResizeTopLeft}; + ModState activeState; + QPoint offset; //needed for movement calculations (offset from mouse click to movement point) //Functions for getting/setting state - ModStatus getStateAtPoint(QPoint); //generally used for mouse location detection - void setMouseCursor(ModStatus); //Update the mouse cursor based on 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 - //General Properties + //General Properties/Modifications WId CID; //Client ID + QWindow *WIN; //Embedded window container + //QBackingStore *WINBACK; + void SyncSize(); //sync the window/frame geometries + void SyncText(); //Window Frame Widgets/Items QLabel *titleBar, *title, *icon; QToolButton *minB, *maxB, *closeB, *otherB; QMenu *otherM; //menu of "other" actions for the window - + QRect normalGeom; //used for restoring back to original size after maximization/fullscreen + + //Animations + QPropertyAnimation *anim; //used for appear/disappear animations + QRect lastGeom; //used for appear/disappear animations + void showAnimation(LWM::WindowAction); + public slots: - //These slots are generally used for the outside event watcher to + //These slots are generally used for the outside event watcher to prod for changes void updateAppearance(); //reload the theme and change styling as necessary - void propertiesChanged(); - void + void windowChanged(LWM::WindowAction); private slots: void closeClicked(); |