summaryrefslogtreecommitdiffstats
path: root/kstyles/web/webstyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kstyles/web/webstyle.cpp')
-rw-r--r--kstyles/web/webstyle.cpp1690
1 files changed, 0 insertions, 1690 deletions
diff --git a/kstyles/web/webstyle.cpp b/kstyles/web/webstyle.cpp
deleted file mode 100644
index b3b461954..000000000
--- a/kstyles/web/webstyle.cpp
+++ /dev/null
@@ -1,1690 +0,0 @@
-/*
- * Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#ifndef INCLUDE_MENUITEM_DEF
-#define INCLUDE_MENUITEM_DEF
-#endif
-
-#include <tqmenudata.h>
-#include <tqpalette.h>
-#include <tqbitmap.h>
-#include <tqtabbar.h>
-#include <tqpointarray.h>
-#include <tqscrollbar.h>
-#include <tqframe.h>
-#include <tqpushbutton.h>
-#include <tqdrawutil.h>
-#include <tqpainter.h>
-
-#include <tdeapplication.h>
-#include <kdrawutil.h>
-#include <tdelocale.h>
-#include <kiconloader.h>
-#include <kdebug.h>
-
-#include "webstyle.h"
-
-static const int _indicatorSize = 13;
-static TQButton * _highlightedButton = 0;
-static const int _scrollBarExtent = 14;
-
-static TQFrame * _currentFrame = 0;
-static int _savedFrameLineWidth;
-static int _savedFrameMidLineWidth;
-static ulong _savedFrameStyle;
-
-static TQColor contrastingForeground(const TQColor & fg, const TQColor & bg)
-{
- int h, s, vbg, vfg;
-
- bg.hsv(&h, &s, &vbg);
- fg.hsv(&h, &s, &vfg);
-
- int diff(vbg - vfg);
-
- if ((diff > -72) && (diff < 72))
- {
- return (vbg < 128) ? Qt::white : Qt::black;
- }
- else
- {
- return fg;
- }
-}
-
-// Gotta keep it separated.
-
- static void
-scrollBarControlsMetrics
-(
- const TQScrollBar * sb,
- int sliderStart,
- int /* sliderMin */,
- int sliderMax,
- int sliderLength,
- int buttonDim,
- TQRect & rSub,
- TQRect & rAdd,
- TQRect & rSubPage,
- TQRect & rAddPage,
- TQRect & rSlider
- )
-{
- bool horizontal = sb->orientation() == TQScrollBar::Horizontal;
-
- int len = horizontal ? sb->width() : sb->height();
-
- int extent = horizontal ? sb->height() : sb->width();
-
- TQColorGroup g = sb->colorGroup();
-
- if (sliderStart > sliderMax)
- sliderStart = sliderMax;
-
- int sliderEnd = sliderStart + sliderLength;
-
- int addX, addY;
- int subX, subY;
- int subPageX, subPageY, subPageW, subPageH;
- int addPageX, addPageY, addPageW, addPageH;
- int sliderX, sliderY, sliderW, sliderH;
-
- if (horizontal)
- {
- subY = 0;
- addY = 0;
- subX = 0;
- addX = buttonDim;
-
- subPageX = buttonDim * 2;
- subPageY = 0;
- subPageW = sliderStart - 1;
- subPageH = extent;
-
- addPageX = sliderEnd;
- addPageY = 0;
- addPageW = len - sliderEnd;
- addPageH = extent;
-
- sliderX = sliderStart;
- sliderY = 0;
- sliderW = sliderLength;
- sliderH = extent;
- }
- else
- {
- subX = 0;
- addX = 0;
- subY = len - buttonDim * 2;
- addY = len - buttonDim;
-
- subPageX = 0;
- subPageY = 0;
- subPageW = extent;
- subPageH = sliderStart;
-
- addPageX = 0;
- addPageY = sliderEnd;
- addPageW = extent;
- addPageH = subY - sliderEnd;
-
- sliderX = 0;
- sliderY = sliderStart;
- sliderW = extent;
- sliderH = sliderLength;
- }
-
- rSub .setRect( subX, subY, buttonDim, buttonDim);
- rAdd .setRect( addX, addY, buttonDim, buttonDim);
- rSubPage .setRect(subPageX, subPageY, subPageW, subPageH);
- rAddPage .setRect(addPageX, addPageY, addPageW, addPageH);
- rSlider .setRect( sliderX, sliderY, sliderW, sliderH);
-}
-
-// Rounded rects my way.
-
- static void
-drawFunkyRect
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- bool small
-)
-{
- p->translate(x, y);
-
- if (small)
- {
- p->drawLine( 2, 0, w - 3, 0 );
- p->drawLine( w - 1, 2, w - 1, h - 3 );
- p->drawLine( w - 3, h - 1, 2, h - 1 );
- p->drawLine( 0, h - 3, 0, 2 );
-
- // Use an array of points so that there's only one round-trip with the
- // X server.
-
- QCOORD pointList[] =
- {
- 1, 1,
- w - 2, 1,
- w - 2, h - 2,
- 1, h - 2
- };
-
- p->drawPoints(TQPointArray(4, pointList));
- }
- else
- {
- p->drawLine( 3, 0, w - 4, 0 );
- p->drawLine( w - 1, 3, w - 1, h - 4 );
- p->drawLine( w - 4, h - 1, 3, h - 1 );
- p->drawLine( 0, h - 4, 0, 3 );
-
- QCOORD pointList[] =
- {
- 1, 2,
- 2, 1,
- w - 3, 1,
- w - 2, 2,
- w - 2, h - 3,
- w - 3, h - 2,
- 2, h - 2,
- 1, h - 3
- };
-
- p->drawPoints(TQPointArray(8, pointList));
- }
-
- p->translate(-x, -y);
-}
-
-WebStyle::WebStyle()
- : TDEStyle()
-{
- setButtonDefaultIndicatorWidth(6);
- setScrollBarExtent(_scrollBarExtent, _scrollBarExtent);
-}
-
-WebStyle::~WebStyle()
-{
- // Empty.
-}
-
- void
-WebStyle::polish(TQApplication *)
-{
- // Empty.
-}
-
- void
-WebStyle::polish(TQPalette &)
-{
- // Empty.
-}
-
- void
-WebStyle::unPolish(TQApplication *)
-{
- // Empty.
-}
-
- void
-WebStyle::polish(TQWidget * w)
-{
- if (w->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING))
- w->installEventFilter(this);
-
- else if (w->inherits(TQGROUPBOX_OBJECT_NAME_STRING) || w->inherits(TQFRAME_OBJECT_NAME_STRING))
- {
- TQFrame * f(static_cast<TQFrame *>(w));
-
- if (f->frameStyle() != TQFrame::NoFrame)
- {
- _currentFrame = f;
-
- _savedFrameLineWidth = f->lineWidth();
- _savedFrameMidLineWidth = f->midLineWidth();
- _savedFrameStyle = f->frameStyle();
-
- if (f->frameShape() == TQFrame::HLine || f->frameShape() == TQFrame::VLine)
- {
- f->setMidLineWidth(1);
- f->setFrameStyle(f->frameShape() | TQFrame::Plain);
- }
- else
- {
- f->setLineWidth(1);
- f->setFrameStyle(TQFrame::Box | TQFrame::Plain);
- }
- }
- }
-}
-
- void
-WebStyle::unPolish(TQWidget * w)
-{
- if (w->inherits(TQPUSHBUTTON_OBJECT_NAME_STRING))
- w->removeEventFilter(this);
-
- else if (w == _currentFrame)
- {
- TQFrame * f(static_cast<TQFrame *>(w));
-
- f->setLineWidth(_savedFrameLineWidth);
- f->setMidLineWidth(_savedFrameMidLineWidth);
- f->setFrameStyle(_savedFrameStyle);
- }
-}
-
- bool
-WebStyle::eventFilter(TQObject * o, TQEvent * e)
-{
- TQPushButton * pb(static_cast<TQPushButton *>(o));
-
- if (e->type() == TQEvent::Enter)
- {
- _highlightedButton = pb;
- pb->repaint(false);
- }
- else if (e->type() == TQEvent::Leave)
- {
- _highlightedButton = 0;
- pb->repaint(false);
- }
-
- return false;
-}
-
- void
-WebStyle::drawButton
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool sunken,
- const TQBrush * fill
-)
-{
- p->save();
-
- if (sunken)
- p->setPen(contrastingForeground(g.light(), g.button()));
- else
- p->setPen(contrastingForeground(g.mid(), g.button()));
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- drawFunkyRect(p, x, y, w, h, true);
-
- p->restore();
-}
-
- QRect
-WebStyle::buttonRect(int x, int y, int w, int h)
-{
- return TQRect(x + 2, y + 2, w - 4, h - 4);
-}
-
- void
-WebStyle::drawBevelButton
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool sunken,
- const TQBrush * fill
-)
-{
- drawButton(p, x, y, w, h, g, sunken, fill);
-}
-
- void
-WebStyle::drawPushButton(TQPushButton * b, TQPainter * p)
-{
- // Note: painter is already translated for us.
-
- bool sunken(b->isDown() || b->isOn());
- bool hl(_highlightedButton == b);
-
- TQColor bg(b->colorGroup().button());
-
- p->save();
- p->fillRect(b->rect(), b->colorGroup().brush(TQColorGroup::Background));
-
- if (b->isDefault())
- {
- TQColor c(hl ? b->colorGroup().highlight() : b->colorGroup().mid());
-
- p->setPen(contrastingForeground(c, bg));
-
- drawFunkyRect(p, 0, 0, b->width(), b->height(), false);
- }
-
- p->fillRect
- (
- 4,
- 4,
- b->width() - 8,
- b->height() - 8,
- b->colorGroup().brush(TQColorGroup::Button)
- );
-
- if (b->isEnabled())
- {
- if (sunken)
- {
- p->setPen(contrastingForeground(b->colorGroup().light(), bg));
- }
- else
- {
- if (hl)
- p->setPen(contrastingForeground(b->colorGroup().highlight(), bg));
- else
- p->setPen(contrastingForeground(b->colorGroup().mid(), bg));
- }
- }
- else
- {
- p->setPen(b->colorGroup().button());
- }
-
- drawFunkyRect(p, 3, 3, b->width() - 6, b->height() - 6, true);
-
- p->restore();
-}
-
- void
-WebStyle::drawPushButtonLabel(TQPushButton * b, TQPainter * p)
-{
- // This is complicated stuff and we don't really want to mess with it.
-
- TDEStyle::drawPushButtonLabel(b, p);
-}
-
- void
-WebStyle::drawScrollBarControls
-(
- TQPainter * p,
- const TQScrollBar * sb,
- int sliderStart,
- uint controls,
- uint activeControl
-)
-{
- p->save();
-
- int sliderMin, sliderMax, sliderLength, buttonDim;
-
- scrollBarMetrics(sb, sliderMin, sliderMax, sliderLength, buttonDim);
-
- TQRect rSub, rAdd, rSubPage, rAddPage, rSlider;
-
- scrollBarControlsMetrics
- (
- sb,
- sliderStart,
- sliderMin,
- sliderMax,
- sliderLength,
- buttonDim,
- rSub,
- rAdd,
- rSubPage,
- rAddPage,
- rSlider
- );
-
- TQColorGroup g(sb->colorGroup());
-
- if (controls & AddLine && rAdd.isValid())
- {
- bool active(activeControl & AddLine);
-
- TQColor c(active ? g.highlight() : g.dark());
-
- p->setPen(c);
- p->setBrush(g.button());
- p->drawRect(rAdd);
-
- Qt::ArrowType t =
- sb->orientation() == Horizontal ? Qt::RightArrow : Qt::DownArrow;
-
- // Is it me or is TDEStyle::drawArrow broken ?
-
- drawArrow
- (
- p,
- t,
- true, // FIXME - down ?
- rAdd.x(),
- rAdd.y(),
- rAdd.width(),
- rAdd.height(),
- g,
- true // FIXME - enabled ?
- );
- }
-
- if (controls & SubLine && rSub.isValid())
- {
- bool active(activeControl & SubLine);
-
- TQColor c(active ? g.highlight() : g.dark());
-
- p->setPen(c);
- p->setBrush(g.button());
- p->drawRect(rSub);
-
- Qt::ArrowType t =
- sb->orientation() == Horizontal ? Qt::LeftArrow : Qt::UpArrow;
-
- drawArrow
- (
- p,
- t,
- true, // FIXME - down ?
- rSub.x(),
- rSub.y(),
- rSub.width(),
- rSub.height(),
- g,
- true // FIXME - enabled ?
- );
- }
-
- if (controls & SubPage && rSubPage.isValid())
- {
- p->setPen(g.mid());
- p->setBrush(g.base());
- p->drawRect(rSubPage);
- }
-
- if (controls & AddPage && rAddPage.isValid())
- {
- p->setPen(g.mid());
- p->setBrush(g.base());
- p->drawRect(rAddPage);
- }
-
- if (controls & Slider && rSlider.isValid())
- {
- p->setPen(activeControl & Slider ? g.highlight() : g.dark());
-
- p->setBrush(g.button());
- p->drawRect(rSlider);
-
- p->setBrush(g.light());
- p->setPen(g.dark());
-
- if (sliderLength > _scrollBarExtent * 2)
- {
- int ellipseSize =
- Horizontal == sb->orientation()
- ?
- rSlider.height() - 4
- :
- rSlider.width() - 4
- ;
-
- TQPoint center(rSlider.center());
-
- if (Horizontal == sb->orientation())
- {
- p->drawEllipse
- (
- center.x() - ellipseSize / 2, rSlider.y() + 2,
- ellipseSize, ellipseSize
- );
- }
- else
- {
- p->drawEllipse
- (
- rSlider.x() + 2, center.y() - ellipseSize / 2,
- ellipseSize, ellipseSize
- );
- }
- }
- }
-
- p->restore();
-}
-
- TQStyle::ScrollControl
-WebStyle::scrollBarPointOver
-(
- const TQScrollBar * sb,
- int sliderStart,
- const TQPoint & point
-)
-{
- if (!sb->rect().contains(point))
- return NoScroll;
-
- int sliderMin, sliderMax, sliderLength, buttonDim;
-
- scrollBarMetrics(sb, sliderMin, sliderMax, sliderLength, buttonDim);
-
- if (sb->orientation() == TQScrollBar::Horizontal)
- {
- int x = point.x();
-
- if (x <= buttonDim)
- return SubLine;
-
- else if (x <= buttonDim * 2)
- return AddLine;
-
- else if (x < sliderStart)
- return SubPage;
-
- else if (x < sliderStart+sliderLength)
- return Slider;
-
- return AddPage;
- }
- else
- {
- int y = point.y();
-
- if (y < sliderStart)
- return SubPage;
-
- else if (y < sliderStart + sliderLength)
- return Slider;
-
- else if (y < sliderMax + sliderLength)
- return AddPage;
-
- else if (y < sliderMax + sliderLength + buttonDim)
- return SubLine;
-
- return AddLine;
- }
-}
-
- void
-WebStyle::scrollBarMetrics
-(
- const TQScrollBar * sb,
- int & sliderMin,
- int & sliderMax,
- int & sliderLength,
- int & buttonDim
-)
-{
- int maxlen;
-
- bool horizontal = sb->orientation() == TQScrollBar::Horizontal;
-
- int len = (horizontal) ? sb->width() : sb->height();
-
- int extent = (horizontal) ? sb->height() : sb->width();
-
- if (len > (extent - 1) * 2)
- buttonDim = extent;
- else
- buttonDim = len / 2 - 1;
-
- if (horizontal)
- sliderMin = buttonDim * 2;
- else
- sliderMin = 1;
-
- maxlen = len - buttonDim * 2 - 1;
-
- sliderLength =
- (sb->pageStep() * maxlen) /
- (sb->maxValue() - sb->minValue() + sb->pageStep());
-
- if (sliderLength < _scrollBarExtent)
- sliderLength = _scrollBarExtent;
-
- if (sliderLength > maxlen)
- sliderLength = maxlen;
-
- sliderMax = sliderMin + maxlen - sliderLength;
-}
-
- QSize
-WebStyle::indicatorSize() const
-{
- return TQSize(_indicatorSize, _indicatorSize);
-}
-
- void
-WebStyle::drawIndicator
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- int state,
- bool down,
- bool enabled
-)
-{
- p->save();
-
- p->fillRect(x, y, w, h, g.background());
-
- if (enabled)
- {
- p->setPen(down ? g.highlight() : contrastingForeground(g.dark(), g.background()));
- }
- else
- {
- g.mid();
- }
-
- p->drawRect(x, y, w, h);
-
- if (state != TQButton::Off)
- {
- p->fillRect(x + 2, y + 2, w - 4, h - 4, enabled ? g.highlight() : g.mid());
-
- if (state == TQButton::NoChange)
- {
- p->fillRect(x + 4, y + 4, w - 8, h - 8, g.background());
- }
- }
-
- p->restore();
-}
-
- QSize
-WebStyle::exclusiveIndicatorSize() const
-{
- return TQSize(_indicatorSize, _indicatorSize);
-}
-
- void
-WebStyle::drawExclusiveIndicator
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool on,
- bool down,
- bool enabled
-)
-{
- p->save();
-
- p->fillRect(x, y, w, h, g.background());
-
- if (enabled)
- {
- p->setPen(down ? g.highlight() : contrastingForeground(g.dark(), g.background()));
- }
- else
- {
- p->setPen(g.mid());
- }
-
- p->setBrush(g.brush(TQColorGroup::Background));
-
- // Avoid misshapen ellipses. Qt or X bug ? Who knows...
-
- if (0 == w % 2)
- --w;
-
- if (0 == h % 2)
- --h;
-
- p->drawEllipse(x, y, w, h);
-
- if (on)
- {
- p->setPen(enabled ? g.highlight() : g.mid());
- p->setBrush(enabled ? g.highlight() : g.mid());
- p->drawEllipse(x + 3, y + 3, w - 6, h - 6);
- }
-
- p->restore();
-}
-
- void
-WebStyle::drawIndicatorMask
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- int /* state */
-)
-{
- p->fillRect(x, y, w, h, Qt::color1);
-}
-
- void
-WebStyle::drawExclusiveIndicatorMask
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- bool /* on */
-)
-{
- if (0 == w % 2)
- --w;
-
- if (0 == h % 2)
- --h;
-
- p->setPen(Qt::color1);
- p->setBrush(Qt::color1);
- p->drawEllipse(x, y, w, h);
-}
-
- void
-WebStyle::drawComboButton
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool sunken,
- bool editable,
- bool enabled,
- const TQBrush * fill
-)
-{
- p->save();
-
- p->setPen(NoPen);
- p->setBrush(0 == fill ? g.brush(TQColorGroup::Background) : *fill);
- p->drawRect(x, y, w, h);
-
- if (enabled)
- {
- if (sunken)
- p->setPen(contrastingForeground(g.highlight(), g.background()));
- else
- p->setPen(contrastingForeground(g.mid(), g.background()));
- }
- else
- {
- p->setPen(contrastingForeground(g.mid(), g.background()));
- }
-
- drawFunkyRect(p, x, y, w, h, true);
-
- p->drawPoint(w - 10, h - 6);
- p->drawPoint(w - 9, h - 6);
- p->drawPoint(w - 8, h - 6);
- p->drawPoint(w - 7, h - 6);
- p->drawPoint(w - 6, h - 6);
-
- p->drawPoint(w - 9, h - 7);
- p->drawPoint(w - 8, h - 7);
- p->drawPoint(w - 7, h - 7);
- p->drawPoint(w - 6, h - 7);
-
- p->drawPoint(w - 8, h - 8);
- p->drawPoint(w - 7, h - 8);
- p->drawPoint(w - 6, h - 8);
-
- p->drawPoint(w - 7, h - 9);
- p->drawPoint(w - 6, h - 9);
-
- p->drawPoint(w - 6, h - 10);
-
- if (editable)
- p->fillRect(comboButtonFocusRect(x, y, w, h), Qt::red);
-
- p->restore();
-}
-
- QRect
-WebStyle::comboButtonRect(int x, int y, int w, int h)
-{
- return TQRect(x + 2, y + 2, w - 20, h - 4);
-}
-
- QRect
-WebStyle::comboButtonFocusRect(int x, int y, int w, int h)
-{
- return TQRect(x + 2, y + 2, w - 20, h - 4);
-}
-
- int
-WebStyle::sliderLength() const
-{
- return 13;
-}
-
- void
-WebStyle::drawSliderGroove
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- QCOORD /* c */,
- Orientation o
-)
-{
- p->save();
-
- p->setPen(TQPen(g.dark(), 0, Qt::DotLine));
-
- if( o == Qt::Horizontal )
- p->drawLine(x, y + h / 2, w, y + h / 2);
- else
- if( o == Qt::Vertical )
- p->drawLine(x + w / 2, y, x + w / 2, h);
-
- p->restore();
-}
-
- void
-WebStyle::drawArrow
-(
- TQPainter * p,
- Qt::ArrowType type,
- bool down,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool enabled,
- const TQBrush * fill
-)
-{
- TDEStyle::drawArrow(p, type, down, x, y, w, h, g, enabled, fill);
-}
-
- void
-WebStyle::drawSlider
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- Orientation o,
- bool /* tickAbove */,
- bool /* tickBelow */
-)
-{
- p->save();
-
- p->fillRect(x + 1, y + 1, w - 2, h - 2, g.background());
- p->setPen(g.dark());
- p->setBrush(g.light());
-
- int sl = sliderLength();
-
- if( o == Qt::Horizontal )
- p->drawEllipse(x, y + h / 2 - sl / 2, sl, sl);
- else
- if( o == Qt::Vertical )
- p->drawEllipse(x + w / 2 - sl / 2, y, sl, sl);
-
- p->restore();
-}
-
- void
-WebStyle::drawTDEToolBar
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- TDEToolBarPos /* pos */,
- TQBrush * /* fill */
-)
-{
- p->save();
- p->setPen(g.background());
- p->setBrush(g.background());
- p->drawRect(x, y, w, h);
- p->restore();
-}
-
- void
-WebStyle::drawKBarHandle
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- TDEToolBarPos /* pos */,
- TQBrush * /* fill */
-)
-{
- p->save();
- p->setPen(g.mid());
- p->setBrush(g.background());
- p->drawRect(x + 1, y + 1, w - 2, h - 2);
- p->restore();
-}
-
- void
-WebStyle::drawKMenuBar
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool /* macMode */,
- TQBrush * /* fill */
-)
-{
- p->save();
- p->setPen(g.mid());
- p->setBrush(g.background());
- p->drawRect(x, y, w, h);
- p->restore();
-}
-
- void
-WebStyle::drawTDEToolBarButton
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool sunken,
- bool raised,
- bool enabled,
- bool popup,
- TDEToolButtonType type,
- const TQString & btext,
- const TQPixmap * pixmap,
- TQFont * font,
- TQWidget * button
-)
-{
- bool toggleAndOn = false;
-
- if (button->inherits(TQBUTTON_OBJECT_NAME_STRING))
- {
- TQButton * b = static_cast<TQButton *>(button);
- toggleAndOn = b->isToggleButton() && b->isOn();
- }
-
- p->save();
-
- TQColor borderColour;
- TQColor textColour;
- TQColor fillColour;
-
- if (!enabled)
- {
- borderColour = g.background();
- fillColour = g.background();
- textColour = g.text();
- }
- else
- {
- if (toggleAndOn)
- {
- borderColour = g.dark();
- fillColour = g.button();
- textColour = g.buttonText();
- }
- else if (sunken)
- {
- borderColour = g.light();
- fillColour = g.button();
- textColour = g.buttonText();
- }
- else if (raised)
- {
- borderColour = g.highlight();
- fillColour = g.background();
- textColour = g.text();
- }
- else
- {
- borderColour = g.background();
- fillColour = g.background();
- textColour = g.text();
- }
- }
-
- p->setPen(borderColour);
- p->setBrush(fillColour);
-
- p->drawRect(x, y, w, h);
-
- p->setPen(g.background());
-
- p->drawPoint(x, y);
- p->drawPoint(x + w, y);
- p->drawPoint(x, y + h);
- p->drawPoint(x + w, y + h);
-
- switch (type)
- {
- case Icon:
-
- if (0 != pixmap)
- p->drawPixmap
- (
- x + (w - pixmap->width()) / 2,
- y + (h - pixmap->height()) / 2,
- *pixmap
- );
- break;
-
- case Text:
-
- if (!btext.isNull())
- {
- if (0 != font)
- p->setFont(*font);
-
- p->setPen(textColour);
-
- p->drawText
- (
- x,
- y,
- w,
- h,
- AlignCenter,
- btext
- );
- }
-
- break;
-
- case IconTextRight:
-
- if (0 != pixmap)
- p->drawPixmap
- (
- x + 2,
- y + (h - pixmap->height()) / 2,
- *pixmap
- );
-
- if (!btext.isNull())
- {
- if (0 != font)
- p->setFont(*font);
-
- p->setPen(textColour);
-
- if (0 != pixmap)
- {
- int textLeft = pixmap->width() + 4;
-
- p->drawText
- (
- x + textLeft,
- y,
- w - textLeft,
- h,
- AlignVCenter | AlignLeft,
- btext
- );
- }
- else
- {
- p->drawText
- (
- x,
- y,
- w,
- h,
- AlignVCenter | AlignLeft,
- btext
- );
- }
- }
- break;
-
- case IconTextBottom:
-
- if (0 != pixmap)
- p->drawPixmap
- (
- x + (w - pixmap->width()) / 2,
- y + 2,
- *pixmap
- );
-
- if (!btext.isNull())
- {
- if (0 != font)
- p->setFont(*font);
-
- p->setPen(textColour);
-
- if (0 != pixmap)
- {
- int textTop = y + pixmap->height() + 4;
-
- p->drawText
- (
- x + 2,
- textTop,
- w - 4,
- h - x - textTop,
- AlignCenter,
- btext
- );
- }
- else
- {
- p->drawText
- (
- x,
- y,
- w,
- h,
- AlignCenter,
- btext
- );
- }
- }
- break;
-
- default:
- break;
- }
-
- if (popup)
- {
- p->setPen(g.dark());
- for (int px = 0; px < 5; ++px)
- for (int py = 0; py < 5 - px; ++py)
- p->drawPoint(w - 6 - px, h - 6 - py);
- }
-
- p->restore();
-}
-
- void
-WebStyle::drawKMenuItem
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool active,
- TQMenuItem * mi,
- TQBrush * /* fill */
-)
-{
- p->save();
-
- TQColor bg(active ? g.highlight() : g.background());
-
- p->fillRect(x, y, w, h, bg);
-
- TQColor textColour =
- active ?
- contrastingForeground(g.highlightedText(), bg) :
- contrastingForeground(g.text(), bg);
-
- TQApplication::style().drawItem
- (
- p,
- x,
- y,
- w,
- h,
- AlignCenter | ShowPrefix | DontClip | SingleLine,
- g,
- mi->isEnabled(),
- mi->pixmap(),
- mi->text(),
- -1,
- &textColour
- );
-
- p->restore();
-}
-
- void
-WebStyle::drawPopupMenuItem
-(
- TQPainter * p,
- bool checkable,
- int maxpmw,
- int tab,
- TQMenuItem * mi,
- const TQPalette & pal,
- bool act,
- bool enabled,
- int x,
- int y,
- int w,
- int h
-)
-{
- // TODO
- TDEStyle::drawPopupMenuItem(p, checkable, maxpmw, tab, mi, pal, act, enabled, x, y, w, h);
-}
-
- void
-WebStyle::drawKProgressBlock
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- TQBrush * fill
-)
-{
- p->save();
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- p->fillRect(x, y, w, h, g.highlight());
-
- p->restore();
-}
-
- void
-WebStyle::drawFocusRect
-(
- TQPainter * p,
- const TQRect & r,
- const TQColorGroup & g,
- const TQColor * pen,
- bool atBorder
-)
-{
- p->save();
-
- if (0 != pen)
- p->setPen(0 == pen ? g.foreground() : *pen);
- p->setBrush(NoBrush);
-
- if (atBorder)
- {
- p->drawRect(TQRect(r.x() + 1, r.y() + 1, r.width() - 2, r.height() - 2));
- }
- else
- {
- p->drawRect(r);
- }
-
- p->restore();
-}
-
- void
-WebStyle::drawPanel
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool /* sunken */,
- int /* lineWidth */,
- const TQBrush * fill
-)
-{
- p->save();
-
- p->setPen(g.dark());
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- p->drawRect(x, y, w, h);
-
- p->restore();
-}
-
- void
-WebStyle::drawPopupPanel
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- int /* lineWidth */,
- const TQBrush * fill
-)
-{
- p->save();
-
- p->setPen(g.dark());
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- p->drawRect(x, y, w, h);
-
- p->restore();
-}
-
- void
-WebStyle::drawSeparator
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- bool /* sunken */,
- int /* lineWidth */,
- int /* midLineWidth */
-)
-{
- p->save();
-
- p->setPen(g.dark());
-
- if (w > h)
- {
- p->drawLine(x, y + h / 2, x + w, y + h / 2);
- }
- else
- {
- p->drawLine(x + w / 2, y, x + w / 2, y + h);
- }
-
- p->restore();
-}
-
- void
-WebStyle::drawTab
-(
- TQPainter * p,
- const TQTabBar * tabBar,
- TQTab * tab,
- bool selected
-)
-{
- TQRect r(tab->rect());
-
- TQColorGroup g(tabBar->colorGroup());
-
- p->save();
-
- p->setPen(selected ? g.dark() : g.mid());
- p->fillRect(r, g.brush(TQColorGroup::Background));
-
- switch (tabBar->shape())
- {
- case TQTabBar::RoundedAbove:
- case TQTabBar::TriangularAbove:
- p->drawLine(r.left(), r.top(), r.left(), r.bottom());
- p->drawLine(r.left(), r.top(), r.right(), r.top());
- p->drawLine(r.right(), r.top(), r.right(), r.bottom());
- if (!selected)
- {
- p->setPen(g.dark());
- p->drawLine(r.left(), r.bottom(), r.right(), r.bottom());
- }
- break;
- case TQTabBar::RoundedBelow:
- case TQTabBar::TriangularBelow:
- if (!selected)
- {
- p->setPen(g.dark());
- p->drawLine(r.left(), r.top(), r.right(), r.top());
- }
- p->drawLine(r.left(), r.top(), r.left(), r.bottom());
- p->drawLine(r.left(), r.bottom(), r.right(), r.bottom());
- p->drawLine(r.right(), r.top(), r.right(), r.bottom());
- break;
- }
-
- p->restore();
-}
-
- void
-WebStyle::drawTabMask
-(
- TQPainter * p,
- const TQTabBar *,
- TQTab * tab,
- bool
-)
-{
- p->fillRect(tab->rect(), Qt::color1);
-}
-
- void
-WebStyle::drawKickerHandle
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- TQBrush * fill
-)
-{
- p->save();
-
- p->setPen(g.mid());
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- p->drawRect(x, y, w, h);
-
- p->restore();
-}
-
- void
-WebStyle::drawKickerAppletHandle
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- TQBrush * fill
-)
-{
- p->save();
-
- p->setPen(g.mid());
-
- p->setBrush(0 == fill ? NoBrush : *fill);
-
- p->drawRect(x, y, w, h);
-
- p->restore();
-}
-
- void
-WebStyle::drawKickerTaskButton
-(
- TQPainter * p,
- int x,
- int y,
- int w,
- int h,
- const TQColorGroup & g,
- const TQString & text,
- bool active,
- TQPixmap * icon,
- TQBrush * /* fill */
-)
-{
- p->save();
-
- TQColor bg;
-
- if (active)
- {
- p->setPen(g.light());
- bg = g.highlight();
- }
- else
- {
- p->setPen(g.mid());
- bg = g.button();
- }
-
- p->setBrush(bg);
-
- p->drawRect(x, y, w, h);
-
- if (text.isEmpty() && 0 == icon)
- {
- p->restore();
- return;
- }
-
- const int pxWidth = 20;
-
- int textPos = pxWidth;
-
- TQRect br(buttonRect(x, y, w, h));
-
- if ((0 != icon) && !icon->isNull())
- {
- int dx = (pxWidth - icon->width()) / 2;
- int dy = (h - icon->height()) / 2;
-
- p->drawPixmap(br.x() + dx, dy, *icon);
- }
-
- TQString s(text);
-
- static TQString modStr =
- TQString::fromUtf8("[") + i18n("modified") + TQString::fromUtf8("]");
-
- int modStrPos = s.find(modStr);
-
- if (-1 != modStrPos)
- {
- // +1 because we include a space after the closing brace.
- s.remove(modStrPos, modStr.length() + 1);
-
- TQPixmap modPixmap = SmallIcon("modified");
-
- int dx = (pxWidth - modPixmap.width()) / 2;
- int dy = (h - modPixmap.height()) / 2;
-
- p->drawPixmap(br.x() + textPos + dx, dy, modPixmap);
-
- textPos += pxWidth;
- }
-
- if (!s.isEmpty())
- {
- if (p->fontMetrics().width(s) > br.width() - textPos)
- {
- int maxLen = br.width() - textPos - p->fontMetrics().width("...");
-
- while ((!s.isEmpty()) && (p->fontMetrics().width(s) > maxLen))
- s.truncate(s.length() - 1);
-
- s.append("...");
- }
-
- if (active)
- {
- p->setPen(contrastingForeground(g.buttonText(), bg));
- }
- else
- {
- p->setPen(contrastingForeground(g.text(), bg));
- }
-
- p->setPen(Qt::white);
-
- p->drawText
- (
- br.x() + textPos,
- -1,
- w - textPos,
- h,
- AlignLeft | AlignVCenter,
- s
- );
- }
-
- p->restore();
- p->setPen(Qt::white);
-}
-
- int
-WebStyle::popupMenuItemHeight(bool, TQMenuItem * i, const TQFontMetrics & fm)
-{
- if (i->isSeparator())
- return 1;
-
- int h = 0;
-
- if (0 != i->pixmap())
- {
- h = i->pixmap()->height();
- }
-
- if (0 != i->iconSet())
- {
- h = QMAX
- (
- i->iconSet()->pixmap(TQIconSet::Small, TQIconSet::Normal).height(),
- h
- );
- }
-
- h = QMAX(fm.height() + 4, h);
-
- h = QMAX(18, h);
-
- return h;
-
-}
-