summaryrefslogtreecommitdiffstats
path: root/kwin/clients/web/Web.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kwin/clients/web/Web.cpp')
-rw-r--r--kwin/clients/web/Web.cpp385
1 files changed, 0 insertions, 385 deletions
diff --git a/kwin/clients/web/Web.cpp b/kwin/clients/web/Web.cpp
deleted file mode 100644
index 793b406af..000000000
--- a/kwin/clients/web/Web.cpp
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- 'Web' twin client
-
- Copyright (C) 2005 Sandro Giessl <sandro@giessl.com>
- Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org>
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <tqpainter.h>
-
-#include <kconfig.h>
-
-#include "Web.h"
-#include "WebButton.h"
-
-extern "C"
-{
- KDE_EXPORT KDecorationFactory *create_factory()
- {
- return new Web::WebFactory();
- }
-}
-
-namespace Web {
-
-WebClient::WebClient(KDecorationBridge* bridge, KDecorationFactory* factory)
- : KCommonDecoration(bridge, factory)
-{
- // Empty.
-}
-
-WebClient::~WebClient()
-{
- // Empty.
-}
-
-TQString WebClient::visibleName() const
-{
- return i18n("Web");
-}
-
-TQString WebClient::defaultButtonsLeft() const
-{
- return "S";
-}
-
-TQString WebClient::defaultButtonsRight() const
-{
- return "HIAX";
-}
-
-bool WebClient::decorationBehaviour(DecorationBehaviour behaviour) const
-{
- switch (behaviour) {
- case DB_MenuClose:
- return false;
-
- case DB_WindowMask:
- return true;
-
- case DB_ButtonHide:
- return true;
-
- default:
- return KCommonDecoration::decorationBehaviour(behaviour);
- }
-}
-
-int WebClient::layoutMetric(LayoutMetric lm, bool respectWindowState, const KCommonDecorationButton *btn) const
-{
-// bool maximized = maximizeMode()==MaximizeFull && !options()->moveResizeMaximizedWindows();
-
- switch (lm) {
- case LM_BorderLeft:
- case LM_BorderRight:
- case LM_BorderBottom:
- return borderSize_;
-
- case LM_TitleEdgeLeft:
- case LM_TitleEdgeRight:
- case LM_TitleEdgeTop:
- case LM_TitleEdgeBottom:
- return 0;
-
- case LM_TitleBorderLeft:
- case LM_TitleBorderRight:
- return 0;
-
- case LM_TitleHeight:
- case LM_ButtonWidth:
- case LM_ButtonHeight:
- return titleHeight_;
-
- case LM_ButtonSpacing:
- return 0;
-
- case LM_ExplicitButtonSpacer:
- return 0;
-
- default:
- return KCommonDecoration::layoutMetric(lm, respectWindowState, btn);
- }
-}
-
-KCommonDecorationButton *WebClient::createButton(ButtonType type)
-{
- switch (type) {
- case MenuButton:
- return new WebButton(MenuButton, this, "menu", tqshape_);
-
- case OnAllDesktopsButton:
- return new WebButton(OnAllDesktopsButton, this, "on_all_desktops", tqshape_);
-
- case HelpButton:
- return new WebButton(HelpButton, this, "help", tqshape_);
-
- case MinButton:
- return new WebButton(MinButton, this, "minimize", tqshape_);
-
- case MaxButton:
- return new WebButton(MaxButton, this, "maximize", tqshape_);
-
- case CloseButton:
- return new WebButton(CloseButton, this, "close", tqshape_);
-
- case AboveButton:
- return new WebButton(AboveButton, this, "above", tqshape_);
-
- case BelowButton:
- return new WebButton(BelowButton, this, "below", tqshape_);
-
- case ShadeButton:
- return new WebButton(ShadeButton, this, "shade", tqshape_);
-
- default:
- return 0;
- }
-}
-
- void
-WebClient::init()
-{
- // title height
- const int textVMargin = 2;
- TQFontMetrics fm(options()->font(isActive(), isToolWindow()));
-
- // border size
- switch(options()->preferredBorderSize( factory())) {
- case BorderLarge:
- borderSize_ = 8;
- break;
- case BorderVeryLarge:
- borderSize_ = 12;
- break;
- case BorderHuge:
- borderSize_ = 18;
- break;
- case BorderVeryHuge:
- borderSize_ = 27;
- break;
- case BorderOversized:
- borderSize_ = 40;
- break;
- case BorderNormal:
- default:
- borderSize_ = 4;
- }
- titleHeight_ = QMAX(QMAX(14, fm.height() + textVMargin * 2), borderSize_);
- if (0 != titleHeight_ % 2)
- titleHeight_ += 1;
-
- KConfig c("twinwebrc");
- c.setGroup("General");
- tqshape_ = c.readBoolEntry("Shape", true);
-
- KCommonDecoration::init();
-}
-
- void
-WebClient::reset( unsigned long changed )
-{
- if (changed & SettingColors)
- {
- // tqrepaint the whole thing
- widget()->tqrepaint(false);
- } else if (changed & SettingFont) {
- // font has changed -- update title height
- // title height
- const int textVMargin = 2;
- TQFontMetrics fm(options()->font(isActive(), isToolWindow()));
- titleHeight_ = QMAX(QMAX(14, fm.height() + textVMargin * 2), borderSize_);
- if (0 != titleHeight_ % 2)
- titleHeight_ += 1;
-
- widget()->tqrepaint(false);
- }
-
- KCommonDecoration::reset(changed);
-}
-
- void
-WebClient::paintEvent(TQPaintEvent * pe)
-{
- int r_x, r_y, r_x2, r_y2;
- TQT_TQRECT_OBJECT(widget()->rect()).coords(&r_x, &r_y, &r_x2, &r_y2);
- const int titleEdgeLeft = layoutMetric(LM_TitleEdgeLeft);
- const int titleEdgeTop = layoutMetric(LM_TitleEdgeTop);
- const int titleEdgeRight = layoutMetric(LM_TitleEdgeRight);
- const int titleEdgeBottom = layoutMetric(LM_TitleEdgeBottom);
- const int ttlHeight = layoutMetric(LM_TitleHeight);
- const int titleEdgeBottomBottom = r_y+titleEdgeTop+ttlHeight+titleEdgeBottom-1;
- TQRect titleRect = TQRect(r_x+titleEdgeLeft+buttonsLeftWidth(), r_y+titleEdgeTop,
- r_x2-titleEdgeRight-buttonsRightWidth()-(r_x+titleEdgeLeft+buttonsLeftWidth()),
- titleEdgeBottomBottom-(r_y+titleEdgeTop) );
- titleRect.setTop(1);
-
- TQPainter p(widget());
-
- p.setPen(Qt::black);
- p.setBrush(options()->tqcolorGroup(ColorFrame, isActive()).background());
-
- p.setClipRegion(pe->region() - titleRect);
-
- p.drawRect(widget()->rect());
-
- p.setClipRegion(pe->region());
-
- p.fillRect(titleRect, options()->color(ColorTitleBar, isActive()));
-
- if (tqshape_)
- {
- int r(width());
- int b(height());
-
- // Draw edge of top-left corner inside the area removed by the mask.
-
- p.drawPoint(3, 1);
- p.drawPoint(4, 1);
- p.drawPoint(2, 2);
- p.drawPoint(1, 3);
- p.drawPoint(1, 4);
-
- // Draw edge of top-right corner inside the area removed by the mask.
-
- p.drawPoint(r - 5, 1);
- p.drawPoint(r - 4, 1);
- p.drawPoint(r - 3, 2);
- p.drawPoint(r - 2, 3);
- p.drawPoint(r - 2, 4);
-
- // Draw edge of bottom-left corner inside the area removed by the mask.
-
- p.drawPoint(1, b - 5);
- p.drawPoint(1, b - 4);
- p.drawPoint(2, b - 3);
- p.drawPoint(3, b - 2);
- p.drawPoint(4, b - 2);
-
- // Draw edge of bottom-right corner inside the area removed by the mask.
-
- p.drawPoint(r - 2, b - 5);
- p.drawPoint(r - 2, b - 4);
- p.drawPoint(r - 3, b - 3);
- p.drawPoint(r - 4, b - 2);
- p.drawPoint(r - 5, b - 2);
- }
-
- p.setFont(options()->font(isActive(), isToolWindow()));
-
- p.setPen(options()->color(ColorFont, isActive()));
-
- p.drawText(titleRect, AlignCenter, caption());
-}
-
-void WebClient::updateWindowShape()
-{
- if (!tqshape_)
- return;
-
- TQRegion mask(0, 0, width(), height());
-
- int r(width());
- int b(height());
-
- // Remove top-left corner.
-
- mask -= TQRegion(0, 0, 5, 1);
- mask -= TQRegion(0, 1, 3, 1);
- mask -= TQRegion(0, 2, 2, 1);
- mask -= TQRegion(0, 3, 1, 2);
-
- // Remove top-right corner.
-
- mask -= TQRegion(r - 5, 0, 5, 1);
- mask -= TQRegion(r - 3, 1, 3, 1);
- mask -= TQRegion(r - 2, 2, 2, 1);
- mask -= TQRegion(r - 1, 3, 1, 2);
-
- // Remove bottom-left corner.
-
- mask -= TQRegion(0, b - 5, 1, 3);
- mask -= TQRegion(0, b - 3, 2, 1);
- mask -= TQRegion(0, b - 2, 3, 1);
- mask -= TQRegion(0, b - 1, 5, 1);
-
- // Remove bottom-right corner.
-
- mask -= TQRegion(r - 5, b - 1, 5, 1);
- mask -= TQRegion(r - 3, b - 2, 3, 1);
- mask -= TQRegion(r - 2, b - 3, 2, 1);
- mask -= TQRegion(r - 1, b - 5, 1, 2);
-
- setMask(mask);
-}
-
-KDecoration* WebFactory::createDecoration( KDecorationBridge* b )
-{
- return(new WebClient(b, this));
-}
-
-bool WebFactory::reset(unsigned long changed)
-{
- // Do we need to "hit the wooden hammer" ?
- bool needHardReset = true;
- if (changed & SettingColors || changed & SettingFont)
- {
- needHardReset = false;
- } else if (changed & SettingButtons) {
- // handled by KCommonDecoration
- needHardReset = false;
- }
-
- if (needHardReset) {
- return true;
- } else {
- resetDecorations(changed);
- return false;
- }
-}
-
-bool WebFactory::supports( Ability ability )
-{
- switch( ability )
- {
- case AbilityAnnounceButtons:
- case AbilityButtonOnAllDesktops:
- case AbilityButtonHelp:
- case AbilityButtonMinimize:
- case AbilityButtonMaximize:
- case AbilityButtonClose:
- case AbilityButtonMenu:
- case AbilityButtonAboveOthers:
- case AbilityButtonBelowOthers:
- case AbilityButtonShade:
- return true;
- default:
- return false;
- };
-}
-
-TQValueList< WebFactory::BorderSize > WebFactory::borderSizes() const
-{ // the list must be sorted
- return TQValueList< BorderSize >() << BorderNormal << BorderLarge <<
- BorderVeryLarge << BorderHuge << BorderVeryHuge << BorderOversized;
-}
-
-}
-
-#include "Web.moc"
-// vim:ts=2:sw=2:tw=78:set et:
-// kate: indent-width 2; replace-tabs on; tab-width 2; space-indent on;