diff options
author | Kris Moore <kris@pcbsd.org> | 2014-09-04 11:42:13 -0400 |
---|---|---|
committer | Kris Moore <kris@pcbsd.org> | 2014-09-04 11:42:13 -0400 |
commit | 71737f70949bd25f9aa8bc4e7d03039ba83c6cb1 (patch) | |
tree | ab29e864d1ae59d10cc6875af9541e3ad306b2fb /lumina-desktop/panel-plugins/taskmanager/LWinInfo.h | |
parent | Initial commit (diff) | |
download | lumina-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.h | 84 |
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 |