aboutsummaryrefslogtreecommitdiff
path: root/lumina-wm-INCOMPLETE/LWindow.h
diff options
context:
space:
mode:
Diffstat (limited to 'lumina-wm-INCOMPLETE/LWindow.h')
-rw-r--r--lumina-wm-INCOMPLETE/LWindow.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/lumina-wm-INCOMPLETE/LWindow.h b/lumina-wm-INCOMPLETE/LWindow.h
deleted file mode 100644
index ceefca83..00000000
--- a/lumina-wm-INCOMPLETE/LWindow.h
+++ /dev/null
@@ -1,114 +0,0 @@
-//===========================================
-// Lumina-DE source code
-// Copyright (c) 2015, Ken Moore
-// Available under the 3-clause BSD license
-// See the LICENSE file for full details
-//===========================================
-#ifndef _LUMINA_DESKTOP_WINDOW_FRAME_H
-#define _LUMINA_DESKTOP_WINDOW_FRAME_H
-
-#include "GlobalDefines.h"
-
-class LWindowFrame : public QFrame{
- Q_OBJECT
-public:
- LWindowFrame(WId client, QWidget *parent = 0); //MUST have a valid client window
- ~LWindowFrame();
-
-private:
- void InitWindow(); //Initialize all the internal widgets
-
- //Window status
- 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
- 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/Modifications
- WId CID; //Client ID
- QWindow *WIN; //Embedded window container
- QWidget *WinWidget;
- bool Closing;
- LWM::WindowAction lastAction;
- //QBackingStore *WINBACK;
- void SyncSize(bool fromwin = false); //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); //sets lastAction
- void ShowClient(bool show);
-
-public slots:
- //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 windowChanged(LWM::WindowAction);
-
-private slots:
- void finishedAnimation(); //uses lastAction
- void closeClicked();
- void minClicked();
- void maxClicked();
- void otherClicked(QAction*);
-
- void CloseAll();
-
-protected:
- void mousePressEvent(QMouseEvent*);
- void mouseMoveEvent(QMouseEvent*);
- void mouseReleaseEvent(QMouseEvent*);
-
-signals:
- void Finished(); //This means the window is completely finished (with animations and such) and should be removed from any lists
-
-};
-
-class LWindow : public QObject{
- Q_OBJECT
-signals:
- void Finished(WId client); //ready to be removed
-private:
- WId CID;
- LWindowFrame *FID;
- bool needsFrame(QList<LXCB::WINDOWTYPE> list){
- if(list.isEmpty()){ return !LWM::SYSTEM->WM_ICCCM_GetClass(CID).contains("Lumina-DE"); } //assume a normal window (fallback)
- return !(list.contains(LXCB::T_DESKTOP) || list.contains(LXCB::T_DOCK) || list.contains(LXCB::T_TOOLBAR) \
- || list.contains(LXCB::T_SPLASH) || list.contains(LXCB::T_DROPDOWN_MENU) \
- || list.contains(LXCB::T_TOOLTIP) || list.contains(LXCB::T_POPUP_MENU) || list.contains(LXCB::T_TOOLTIP) \
- || list.contains(LXCB::T_COMBO) || list.contains(LXCB::T_DND) );
- }
-private slots:
- void frameclosed(){
- qDebug() << " - Window got frame closed signal";
- //FID->close();
- //delete FID;
- emit Finished(CID);
- }
-public:
- LWindow(WId client){
- FID= 0;
- CID = client;
- if( needsFrame(LWM::SYSTEM->WM_Get_Window_Type(CID)) ){
- FID = new LWindowFrame(CID);
- connect(FID, SIGNAL(Finished()), this, SLOT(frameclosed()) );
- }
- }
- ~LWindow(){
- if(FID!=0){delete FID;}
- }
-
- WId clientID(){ return CID; }
- bool hasFrame(){ return FID!=0; }
- LWindowFrame* frame(){ return FID; }
-
-};
-#endif
bgstack15