aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/panel-plugins/taskmanager/LWinInfo.h
diff options
context:
space:
mode:
authorKris Moore <kris@pcbsd.org>2014-09-04 11:42:13 -0400
committerKris Moore <kris@pcbsd.org>2014-09-04 11:42:13 -0400
commit71737f70949bd25f9aa8bc4e7d03039ba83c6cb1 (patch)
treeab29e864d1ae59d10cc6875af9541e3ad306b2fb /lumina-desktop/panel-plugins/taskmanager/LWinInfo.h
parentInitial commit (diff)
downloadlumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.tar.gz
lumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.tar.bz2
lumina-71737f70949bd25f9aa8bc4e7d03039ba83c6cb1.zip
Initial import of the lumina code from pcbsd git repo
Diffstat (limited to 'lumina-desktop/panel-plugins/taskmanager/LWinInfo.h')
-rw-r--r--lumina-desktop/panel-plugins/taskmanager/LWinInfo.h84
1 files changed, 84 insertions, 0 deletions
diff --git a/lumina-desktop/panel-plugins/taskmanager/LWinInfo.h b/lumina-desktop/panel-plugins/taskmanager/LWinInfo.h
new file mode 100644
index 00000000..1084e6e3
--- /dev/null
+++ b/lumina-desktop/panel-plugins/taskmanager/LWinInfo.h
@@ -0,0 +1,84 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2014, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_DESKTOP_WINDOW_INFO_H
+#define _LUMINA_DESKTOP_WINDOW_INFO_H
+
+// Qt includes
+#include <QString>
+#include <QPixmap>
+#include <QIcon>
+#include <QPainter>
+
+// libLumina includes
+#include <LuminaX11.h>
+#include <LuminaXDG.h>
+
+// Local includes
+#include "../../Globals.h" //For the STATES enumeration definition
+
+
+class LWinInfo{
+private:
+ WId window;
+
+public:
+ LWinInfo(WId id = 0){
+ window = id;
+ }
+ ~LWinInfo(){};
+
+ //The current window ID
+ WId windowID(){
+ return window;
+ }
+
+ //Information Retrieval
+ // Don't cache these results because they can change regularly
+ QString text(){
+ if(window==0){ return ""; }
+ QString nm = LX11::WindowVisibleIconName(window);
+ if(nm.isEmpty()){ nm = LX11::WindowIconName(window); }
+ if(nm.isEmpty()){ nm = LX11::WindowVisibleName(window); }
+ if(nm.isEmpty()){ nm = LX11::WindowName(window); }
+ return nm;
+ }
+
+ QIcon icon(){
+ if(window==0){ return QIcon(); }
+ //qDebug() << "Check for Window Icon:" << window;
+ QIcon ico = LX11::WindowIcon(window);
+ //Check for a null icon, and supply one if necessary
+ //if(ico.isNull()){ ico = LXDG::findIcon("preferences-system-windows",""); }
+ return ico;
+ }
+
+ QString Class(){
+ return LX11::WindowClass(window);
+ }
+
+ Lumina::STATES status(){
+ if(window==0){ return Lumina::NOSHOW; }
+ LX11::WINDOWSTATE ws = LX11::GetWindowState(window);
+ Lumina::STATES state;
+ switch(ws){
+ case LX11::VISIBLE:
+ state = Lumina::VISIBLE; break;
+ case LX11::INVISIBLE:
+ state = Lumina::INVISIBLE; break;
+ case LX11::ACTIVE:
+ state = Lumina::ACTIVE; break;
+ case LX11::ATTENTION:
+ state = Lumina::NOTIFICATION; break;
+ default:
+ state = Lumina::NOSHOW;
+ }
+ //qDebug() << "Window State:" << ws << state;
+ return state;
+ }
+};
+
+#endif \ No newline at end of file
bgstack15