diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2015-10-01 17:05:29 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2015-10-01 17:05:29 +0200 |
commit | 39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70 (patch) | |
tree | d6bc97f38d36892b14703c788cef782f13ee2a4d /src/clip.cpp | |
download | kooldock-39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70.tar.gz kooldock-39f2c6a84cd715b11fb3ffa82a86abf2fb9bcd70.zip |
Initial import of kooldock 0.4.7
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Diffstat (limited to 'src/clip.cpp')
-rw-r--r-- | src/clip.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/clip.cpp b/src/clip.cpp new file mode 100644 index 0000000..de71d2b --- /dev/null +++ b/src/clip.cpp @@ -0,0 +1,47 @@ +#include "clip.h" + +#include <qwidget.h> +#include <qbitmap.h> +#include <qpainter.h> +#include <netwm.h> +#include <netwm_def.h> +#include <kwin.h> + +#include <kdebug.h> + +clip::clip(QWidget *parent, const char *name) : QWidget(parent, name, WStyle_Customize | WStyle_NoBorder | WNoAutoErase | WDestructiveClose | WMouseNoMask | WStyle_StaysOnTop) +{ + info = new NETWinInfo( qt_xdisplay(), winId(), qt_xrootwin(), NET::WMState); + info->setDesktop( NETWinInfo::OnAllDesktops ); + + info->setState(NETWinInfo::SkipTaskbar | NETWinInfo::SkipPager, NETWinInfo::SkipTaskbar | NETWinInfo::SkipPager); + hide(); + setBackgroundMode(NoBackground); + + KWin::setOnAllDesktops(winId(), true); + KWin::setState(winId(), NET::SkipTaskbar | NET::SkipPager); + KWin::setType(winId(), NET::Dock); + + setCaption("kooldock clipping window"); +} + +clip::~clip() +{ +} + +void clip::clipDesktop(int p1,int p2,int p3,int p4,int p5,int p6,int p7,int p8,int p9,int p10,int p11,int p12) +{ +KWin::setExtendedStrut(winId(), p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12); +} + +void clip::paintEvent(QPaintEvent *) +{ + QBitmap bm(size()); + QPainter mp; + + mp.begin(&bm, this); + mp.fillRect(rect(), Qt::black); + mp.end(); + + setMask(bm); +} |