1 /********************************************************************
2 KWin - the KDE window manager
3 This file is part of the KDE project.
5 Copyright (c) 2003, Karol Szwed <kszwed@kde.org>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *********************************************************************/
21 #include "geometrytip.h"
27 GeometryTip::GeometryTip( const XSizeHints
* xSizeHints
, bool save_under
):
30 setObjectName( "kwingeometry" );
34 setFrameStyle( QFrame::Raised
| QFrame::StyledPanel
);
35 setAlignment( Qt::AlignCenter
| Qt::AlignTop
);
36 sizeHints
= xSizeHints
;
39 XSetWindowAttributes attr
;
40 attr
.save_under
= True
; // use saveunder if possible to avoid weird effects in transparent mode
41 XChangeWindowAttributes( display(), winId(), CWSaveUnder
, &attr
);
45 GeometryTip::~GeometryTip()
49 void GeometryTip::setGeometry( const QRect
& geom
)
52 int h
= geom
.height();
56 if (sizeHints
->flags
& PResizeInc
)
58 w
= ( w
- sizeHints
->base_width
) / sizeHints
->width_inc
;
59 h
= ( h
- sizeHints
->base_height
) / sizeHints
->height_inc
;
63 h
= qMax( h
, 0 ); // in case of isShade() and PBaseSize
65 pos
.sprintf( "%+d,%+d<br>(<b>%d x %d</b>)",
66 geom
.x(), geom
.y(), w
, h
);
69 move( geom
.x() + ((geom
.width() - width()) / 2),
70 geom
.y() + ((geom
.height() - height()) / 2) );
75 #include "geometrytip.moc"