summaryrefslogtreecommitdiffstats
path: root/kwin/geometrytip.cpp
diff options
context:
space:
mode:
authortoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
committertoma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-11-25 17:56:58 +0000
commit4aed2c8219774f5d797760606b8489a92ddc5163 (patch)
tree3f8c130f7d269626bf6a9447407ef6c35954426a /kwin/geometrytip.cpp
downloadtdebase-4aed2c8219774f5d797760606b8489a92ddc5163.tar.gz
tdebase-4aed2c8219774f5d797760606b8489a92ddc5163.zip
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kwin/geometrytip.cpp')
-rw-r--r--kwin/geometrytip.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/kwin/geometrytip.cpp b/kwin/geometrytip.cpp
new file mode 100644
index 000000000..c8a046950
--- /dev/null
+++ b/kwin/geometrytip.cpp
@@ -0,0 +1,63 @@
+/*****************************************************************
+ KWin - the KDE window manager
+ This file is part of the KDE project.
+
+Copyright (c) 2003, Karol Szwed <kszwed@kde.org>
+
+You can Freely distribute this program under the GNU General Public
+License. See the file "COPYING" for the exact licensing terms.
+******************************************************************/
+
+#include "geometrytip.h"
+
+namespace KWinInternal
+{
+
+GeometryTip::GeometryTip( const XSizeHints* xSizeHints, bool save_under ):
+ QLabel(NULL, "kwingeometry" )
+ {
+ setMargin(1);
+ setIndent(0);
+ setLineWidth(1);
+ setFrameStyle( QFrame::Raised | QFrame::StyledPanel );
+ setAlignment( AlignCenter | AlignTop );
+ sizeHints = xSizeHints;
+ if( save_under )
+ {
+ XSetWindowAttributes attr;
+ attr.save_under = True; // use saveunder if possible to avoid weird effects in transparent mode
+ XChangeWindowAttributes( qt_xdisplay(), winId(), CWSaveUnder, &attr );
+ }
+ }
+
+GeometryTip::~GeometryTip()
+ {
+ }
+
+void GeometryTip::setGeometry( const QRect& geom )
+ {
+ int w = geom.width();
+ int h = geom.height();
+
+ if (sizeHints)
+ {
+ if (sizeHints->flags & PResizeInc)
+ {
+ w = ( w - sizeHints->base_width ) / sizeHints->width_inc;
+ h = ( h - sizeHints->base_height ) / sizeHints->height_inc;
+ }
+ }
+
+ h = QMAX( h, 0 ); // in case of isShade() and PBaseSize
+ QString pos;
+ pos.sprintf( "%+d,%+d<br>(<b>%d&nbsp;x&nbsp;%d</b>)",
+ geom.x(), geom.y(), w, h );
+ setText( pos );
+ adjustSize();
+ move( geom.x() + ((geom.width() - width()) / 2),
+ geom.y() + ((geom.height() - height()) / 2) );
+ }
+
+} // namespace
+
+#include "geometrytip.moc"