author | sandman <sandman> | 2002-11-18 03:48:58 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-11-18 03:48:58 (UTC) |
commit | c2d7749ca68a545b67e1b07ffbb65f08da203702 (patch) (side-by-side diff) | |
tree | b5d867ada033b4c98ffaba8bb1d4cfbb8c0e023a | |
parent | ee9696cbb7a39e0f13739ae86cd925b0f675a43c (diff) | |
download | opie-c2d7749ca68a545b67e1b07ffbb65f08da203702.zip opie-c2d7749ca68a545b67e1b07ffbb65f08da203702.tar.gz opie-c2d7749ca68a545b67e1b07ffbb65f08da203702.tar.bz2 |
Optimized Liquid for handhelds:
- removed some dead code from the original liquid
- removed all code related to mouse-hover
- rewrote QToolButton drawing, so navigating toolbars with Menu/Direction
keys looks nicer
- changed the way focus indicators are drawn on many widgets
- support for libqte's with version < 2.3.4
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 545 | ||||
-rw-r--r-- | noncore/styles/liquid/liquid.h | 18 | ||||
-rw-r--r-- | noncore/styles/liquid/opie-liquid.diff | 1111 | ||||
-rw-r--r-- | noncore/styles/liquid/plugin.cpp | 5 |
4 files changed, 1076 insertions, 603 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index 6812d16..ba732aa 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp @@ -4,2 +4,5 @@ +// +// (c) 2002 Robert 'sandman' Griebl +// @@ -33,2 +36,3 @@ #include <qprogressbar.h> +#include <qlineedit.h> @@ -164,2 +168,9 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) +static int qt_version ( ) +{ + const char *qver = qVersion ( ); + return ( qver [0] - '0' ) * 100 + ( qver [2] - '0' ) * 10 + ( qver [4] - '0' ); +} + + LiquidStyle::LiquidStyle() @@ -169,2 +180,3 @@ LiquidStyle::LiquidStyle() + oldqte = ( qt_version ( ) < 234 ); flatTBButtons = false; @@ -181,8 +193,4 @@ LiquidStyle::LiquidStyle() smallBevelFillDict.setAutoDelete(true); - customBtnColorList.setAutoDelete(true); - customBtnIconList.setAutoDelete(true); - customBtnLabelList.setAutoDelete(true); rMatrix.rotate(270.0); - highcolor = QPixmap::defaultDepth() > 8; btnBorderPix = new QPixmap; @@ -546,2 +554,3 @@ QPixmap* LiquidStyle::getPixmap(BitmapData item) break; + case HTMLCB: @@ -549,2 +558,5 @@ QPixmap* LiquidStyle::getPixmap(BitmapData item) break; + case HTMLCBHover: + pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnHoverH, btnHoverS, btnHoverV); + break; case HTMLCBDown: @@ -552,50 +564,55 @@ QPixmap* LiquidStyle::getPixmap(BitmapData item) break; - case HTMLCBHover: - pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnH, btnS, btnV); - break; case HTMLCBDownHover: - pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", - btnHoverH, btnHoverS, - btnHoverV); + pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", btnHoverH, btnHoverS, btnHoverV); break; + case HTMLRadio: pixmaps[HTMLRadio] = processEmbedded("htmlradio", bH, bS, bV); + break; + case HTMLRadioHover: + pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnHoverH, btnHoverS, btnHoverV); + break; case HTMLRadioDown: pixmaps[HTMLRadioDown] = processEmbedded("htmlradiodown", btnH, btnS, btnV); - case HTMLRadioHover: - pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnH, btnS, btnV); + break; case HTMLRadioDownHover: - pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", - btnHoverH, btnHoverS, - btnHoverV); + pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", btnHoverH, btnHoverS, btnHoverV); + break; + + case RadioOff: + pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV /*, true*/); + break; + case RadioOffHover: + pixmaps[RadioOffHover] = processEmbedded("radio", btnHoverH, btnHoverS, btnHoverV /*, true*/); + break; case RadioOn: - pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV, true); + pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV /*, true*/); break; case RadioOnHover: - pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, - btnHoverV, true); + pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, btnHoverV /*, true*/); break; - case RadioOffHover: - pixmaps[RadioOffHover] = processEmbedded("radio", btnH, btnS, btnV, true); + + case Tab: + pixmaps[Tab] = processEmbedded("tab", bH, bS, bV /*, true*/); break; case TabDown: - pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV, true); + pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV /*, true*/); break; case TabFocus: - pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, - btnHoverS, true); + pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, btnHoverV /*, true*/); break; - case CBDown: - pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV, true); - break; - case CBDownHover: - pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, - btnHoverS, btnHoverV, true); + + case CB: + pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV /*, true*/); break; case CBHover: - pixmaps[CBHover] = processEmbedded("checkbox", btnH, btnS, btnV, true); + pixmaps[CBHover] = processEmbedded("checkbox", btnHoverH, btnHoverS, btnHoverV /*, true*/); break; - case HSlider: - pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true); + case CBDown: + pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV /*, true*/); break; + case CBDownHover: + pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, btnHoverS, btnHoverV /*, true*/); + break; + case VSlider: @@ -604,62 +621,41 @@ QPixmap* LiquidStyle::getPixmap(BitmapData item) break; - case RadioOff: - pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV, true); - break; - case Tab: - pixmaps[Tab] = processEmbedded("tab", bH, bS, bV, true); - break; - case CB: - pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV, true); - break; case VSBSliderTop: - pixmaps[VSBSliderTop] = processEmbedded("sbslider_top", btnH, btnS, btnV, true); + case VSBSliderTopHover: + pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV /*, true*/); break; case VSBSliderBtm: - pixmaps[VSBSliderBtm] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true); + case VSBSliderBtmHover: + pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV /*, true*/); break; case VSBSliderMid: - pixmaps[VSBSliderMid] = processEmbedded("sbslider_mid", btnH, btnS, btnV); + case VSBSliderMidHover: + pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); break; - case VSBSliderTopHover: - pixmaps[VSBSliderTopHover] = processEmbedded("sbslider_top", btnHoverH, btnHoverS, btnHoverV, true); + case VSBSliderTopBg: + pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV /*, true*/); break; - case VSBSliderBtmHover: - pixmaps[VSBSliderBtmHover] = processEmbedded("sbslider_btm", btnHoverH, btnHoverS, btnHoverV, true); + case VSBSliderBtmBg: + pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV /*, true*/); break; - case VSBSliderMidHover: - pixmaps[VSBSliderMidHover] = processEmbedded("sbslider_mid", btnHoverH, btnHoverS, btnHoverV); + case VSBSliderMidBg: + pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); break; - case HSBSliderTop: - pixmaps[HSBSliderTop] = processEmbedded("sbslider_top", btnH, btnS, btnV, true); - *pixmaps[HSBSliderTop] = pixmaps[HSBSliderTop]->xForm(rMatrix); - break; - case HSBSliderBtm: - pixmaps[HSBSliderBtm] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true); - *pixmaps[HSBSliderBtm] = pixmaps[HSBSliderBtm]->xForm(rMatrix); - break; - case HSBSliderMid: - pixmaps[HSBSliderMid] = processEmbedded("sbslider_mid", btnH, btnS, btnV); - *pixmaps[HSBSliderMid] = pixmaps[HSBSliderMid]->xForm(rMatrix); + case HSlider: + pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV /*, true*/); break; + case HSBSliderTop: case HSBSliderTopHover: - pixmaps[HSBSliderTopHover] = processEmbedded("sbslider_top", btnHoverH, btnHoverS, btnHoverV, true); - *pixmaps[HSBSliderTopHover] = pixmaps[HSBSliderTopHover]->xForm(rMatrix); + pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV, true ); + *pixmaps[item] = pixmaps[item]->xForm(rMatrix); break; + case HSBSliderBtm: case HSBSliderBtmHover: - pixmaps[HSBSliderBtmHover] = processEmbedded("sbslider_btm", btnHoverH, btnHoverS, btnHoverV, true); - *pixmaps[HSBSliderBtmHover] = pixmaps[HSBSliderBtmHover]->xForm(rMatrix); + pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true ); + *pixmaps[item] = pixmaps[item]->xForm(rMatrix); break; + case HSBSliderMid: case HSBSliderMidHover: - pixmaps[HSBSliderMidHover] = processEmbedded("sbslider_mid", btnHoverH, btnHoverS, btnHoverV); - *pixmaps[HSBSliderMidHover] = pixmaps[HSBSliderMidHover]->xForm(rMatrix); - break; - case VSBSliderTopBg: - pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true); - break; - case VSBSliderBtmBg: - pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true); - break; - case VSBSliderMidBg: - pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); + pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); + *pixmaps[item] = pixmaps[item]->xForm(rMatrix); break; @@ -692,13 +688,2 @@ void LiquidStyle::polish(QPalette &appPal) } - QWidgetList *list = QApplication::allWidgets(); - QWidgetListIt it( *list ); - QWidget *w; - while ((w=it.current()) != 0 ){ - ++it; - if(w->inherits("QPushButton")){ - unapplyCustomAttributes((QPushButton *)w); - } - } - - loadCustomButtons(); lowLightVal = 100 + (2* /*KGlobalSettings::contrast()*/ 3 +4)*10; @@ -721,7 +706,6 @@ void LiquidStyle::polish(QPalette &appPal) config. setGroup ( "Appearance" ); - QColor c = // QColor ( config. readEntry("Button", ( Qt::lightGray ). name ( ))); - appPal. color ( QPalette::Active, QColorGroup::Button ); - if ( c == appPal. color ( QPalette::Active, QColorGroup::Background ) - //QColor ( config. readEntry ( "background", ( Qt::lightGray ). name ( ))) - ) { + QColor c = oldqte ? QColor ( config. readEntry("Button", ( Qt::lightGray ). name ( ))) + : appPal. color ( QPalette::Active, QColorGroup::Button ); + if ( c == ( oldqte ? QColor ( config. readEntry ( "background", ( Qt::lightGray ). name ( ))) + : appPal. color ( QPalette::Active, QColorGroup::Background ))) { // force button color to be different from background @@ -760,4 +744,4 @@ void LiquidStyle::polish(QPalette &appPal) } - pagerHoverBrush.setColor(c); - pagerHoverBrush.setPixmap(*pix); +// pagerHoverBrush.setColor(c); +// pagerHoverBrush.setPixmap(*pix); @@ -772,7 +756,9 @@ void LiquidStyle::polish(QPalette &appPal) } - pagerBrush.setColor(c); - pagerBrush.setPixmap(*pix); +// pagerBrush.setColor(c); +// pagerBrush.setPixmap(*pix); // background color stuff - c = /*QColor ( config. readEntry ( "Background", ( Qt::lightGray ).name ( )));*/ appPal. color ( QPalette::Active, QColorGroup::Background ); + c = oldqte ? QColor ( config. readEntry ( "Background", ( Qt::lightGray ).name ( ))) + : appPal. color ( QPalette::Active, QColorGroup::Background ); + c.hsv(&bH, &bS, &bV); @@ -800,29 +786,2 @@ void LiquidStyle::polish(QPalette &appPal) appPal.setBrush(QColorGroup::Background, bgBrush); - - // lineedits - c = /*QColor ( config. readEntry("Base", ( Qt::white). name ( )));*/ appPal. color ( QPalette::Active, QColorGroup::Base ); - QPixmap basePix; - basePix.resize(32, 32); - basePix.fill(c.rgb()); - painter.begin(&basePix); - painter.setPen(c.dark(105)); - for(i=0; i < 32; i+=4){ - painter.drawLine(0, i, 32, i); - painter.drawLine(0, i+1, 32, i+1); - }; - painter.end(); - baseBrush.setColor(c); - baseBrush.setPixmap(basePix); - it.toFirst(); - while ((w=it.current()) != 0 ){ - ++it; - if(w->inherits("QLineEdit")){ - QPalette pal = w->palette(); - pal.setBrush(QColorGroup::Base, baseBrush); - w->setPalette(pal); - } - else if(w->inherits("QPushButton")){ - applyCustomAttributes((QPushButton *)w); - } - } } @@ -855,16 +814,6 @@ void LiquidStyle::polish(QWidget *w) - if(w->inherits("QComboBox") || w->inherits("QProgressBar") || - w->inherits("QLineEdit") || w->inherits("QRadioButton") || - w->inherits("QCheckBox") || w->inherits("QScrollBar")) { - w->installEventFilter(this); - } - if(w->inherits("QLineEdit")){ - QPalette pal = w->palette(); - pal.setBrush(QColorGroup::Base, baseBrush); - w->setPalette(pal); - } - if(w->inherits("QPushButton")){ - applyCustomAttributes((QPushButton *)w); + if(w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { w->installEventFilter(this); } + if(w->inherits("QButton") || w-> inherits("QComboBox")){ @@ -902,3 +851,4 @@ void LiquidStyle::polish(QWidget *w) } - if(w-> inherits("QToolButton")&&w->parent()->inherits("QToolBar")) { + if(w-> inherits("QToolButton")) { + if (w->parent()->inherits("QToolBar")) { ((QToolButton*)w)->setAutoRaise (flatTBButtons); @@ -907,2 +857,4 @@ void LiquidStyle::polish(QWidget *w) } + w-> installEventFilter ( this ); + } if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { @@ -973,6 +925,2 @@ void LiquidStyle::unPolish(QWidget *w) - if(w->inherits("QPushButton")){ - unapplyCustomAttributes((QPushButton *)w); - w->removeEventFilter(this); - } /* @@ -982,5 +930,3 @@ void LiquidStyle::unPolish(QWidget *w) */ - if(w->inherits("QComboBox") || - w->inherits("QLineEdit") || w->inherits("QRadioButton") || - w->inherits("QCheckBox") || w->inherits("QScrollBar")) { + if( w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { w->removeEventFilter(this); @@ -992,2 +938,5 @@ void LiquidStyle::unPolish(QWidget *w) } + if(w-> inherits("QToolButton")) { + w-> removeEventFilter ( this ); + } if(w->inherits("QToolBar")){ @@ -1097,2 +1046,22 @@ public: +/* + * The same for QToolButton: + * TT hardcoded the drawing of the focus rect ... + * + * - sandman + */ + + +class HackToolButton : public QToolButton { +public: + HackToolButton ( ); + + void paint ( QPaintEvent *ev ) + { + erase ( ev-> region ( )); + QPainter p ( this ); + style ( ). drawToolButton ( this, &p ); + drawButtonLabel ( &p ); + } +}; @@ -1130,20 +1099,5 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) } - else if(obj->inherits("QPushButton") || obj->inherits("QComboBox")){ - QWidget *btn = (QWidget *)obj; - if(ev->type() == QEvent::Enter){ - if(btn->isEnabled()){ - highlightWidget = btn; - btn->repaint(false); - } - } - else if(ev->type() == QEvent::Leave){ - if(btn == highlightWidget){ - highlightWidget = NULL; - btn->repaint(false); - } - } - } else if(obj->inherits("QToolButton")){ - QToolButton *btn = (QToolButton *)btn; - if(!btn->autoRaise()){ + QToolButton *btn = (QToolButton *)obj; + if(ev->type() == QEvent::FocusIn ){ // && !btn-> autoRaise () if(btn->isEnabled()){ @@ -1151,6 +1105,7 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) btn->repaint(false); + + qDebug ( "TB FOCUS IN [%p]", btn ); } } - else if(ev->type() == QEvent::Leave){ - QWidget *btn = (QWidget *)obj; + else if(ev->type() == QEvent::FocusOut ){ if(btn == highlightWidget){ @@ -1158,43 +1113,9 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) btn->repaint(false); + + qDebug ( "TB FOCUS OUT [%p]", btn ); } } - else - highlightWidget = NULL; - } - else if(obj->inherits("QScrollBar")){ - QScrollBar *sb = (QScrollBar *)obj; - if(ev->type() == QEvent::Enter){ - if(sb->isEnabled()){ - highlightWidget = sb; - sb->repaint(false); - } - } - else if(ev->type() == QEvent::Leave){ - if(sb == highlightWidget && !sb->draggingSlider()){ - highlightWidget = NULL; - sb->repaint(false); - } - } - else if(ev->type() == QEvent::MouseButtonRelease){ - QMouseEvent *me = (QMouseEvent *)ev; - if(sb == highlightWidget && !sb->rect().contains(me->pos())){ - highlightWidget = NULL; - sb->repaint(false); - } - } - } - else if(obj->inherits("QLineEdit")){ - if(obj->parent() && obj->parent()->inherits("QComboBox")){ - QWidget *btn = (QComboBox *)obj->parent(); - if(ev->type() == QEvent::Enter){ - if (btn->isEnabled()){ - highlightWidget = btn; - btn->repaint(false); - } - } - else if(ev->type() == QEvent::Leave){ - if (btn == highlightWidget) - highlightWidget = NULL; - btn->repaint(false); - } + else if(ev->type() == QEvent::Paint) { + (( HackToolButton *) btn )-> paint ((QPaintEvent *) ev ); + return true; } @@ -1214,2 +1135,3 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) +/* if(btn->hasFocus()){ @@ -1222,2 +1144,3 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) } +*/ int x = 0; @@ -1241,32 +1164,2 @@ bool LiquidStyle::eventFilter(QObject *obj, QEvent *ev) } - // for hover, just redraw the indicator (not the text) - else if((ev->type() == QEvent::Enter && btn->isEnabled()) || - (ev->type() == QEvent::Leave && btn == highlightWidget)){ - QButton *btn = (QButton *)obj; - bool isRadio = obj->inherits("QRadioButton"); - - if(ev->type() == QEvent::Enter) - highlightWidget = btn; - else - highlightWidget = NULL; - QFontMetrics fm = btn->fontMetrics(); - QSize lsz = fm.size(ShowPrefix, btn->text()); - QSize sz = isRadio ? exclusiveIndicatorSize() - : indicatorSize(); - int x = 0; - int y = (btn->height()-lsz.height()+fm.height()-sz.height())/2; - //if(btn->autoMask()) - // btn->erase(x+1, y+1, sz.width()-2, sz.height()-2); - QPainter p; - p.begin(btn); - if(isRadio) - drawExclusiveIndicator(&p, x, y, sz.width(), sz.height(), - btn->colorGroup(), btn->isOn(), - btn->isDown(), btn->isEnabled()); - else - drawIndicator(&p, x, y, sz.width(), sz.height(), - btn->colorGroup(), btn->state(), btn->isDown(), - btn->isEnabled()); - p.end(); - } } @@ -1355,4 +1248,7 @@ void LiquidStyle::drawToolButton(QPainter *p, int x, int y, int w, int h, p->drawTiledPixmap(x+2, y+2, w-4, h-4, *pix); + qDebug ( "DRAW TOOLBUTTON IN PIXMAP" ); } else{ + qDebug ( "DRAW TOOLBUTTON sunken=%d/high=%p/device=%p", sunken, highlightWidget,p->device() ); + drawClearBevel(p, x, y, w, h, sunken ? g.button() : @@ -1513,3 +1409,16 @@ void LiquidStyle::drawComboButton(QPainter *painter, int x, int y, int w, int h, { - bool isHover = highlightWidget == painter->device(); + bool isActive = false; + if (( painter->device()->devType() == QInternal::Widget ) && + ( + ( qApp-> focusWidget ( ) == painter-> device ( )) || + ( + edit && + ((QWidget *) painter-> device ( ))-> inherits ( "QComboBox" ) && + ( qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->lineEdit ( )) + ) + ) + ) { + isActive = true; + } + bool isMasked = false; @@ -1523,3 +1432,3 @@ void LiquidStyle::drawComboButton(QPainter *painter, int x, int y, int w, int h, sunken, false, isMasked); - if(!isHover){ + if(!isActive){ p.setClipRect(0, 0, w-17, h); @@ -1575,5 +1484,7 @@ QRect LiquidStyle::comboButtonRect(int x, int y, int w, int h) -QRect LiquidStyle::comboButtonFocusRect(int x, int y, int w, int h) +QRect LiquidStyle::comboButtonFocusRect(int /*x*/, int /*y*/, int /*w*/, int /*h*/) { - return(QRect(x+5, y+3, w-(h/3)-13, h-5)); + return QRect ( ); + +// return(QRect(x+5, y+3, w-(h/3)-13, h-5)); } @@ -1584,3 +1495,2 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, { - bool isHover = highlightWidget == p->device(); int sliderMin, sliderMax, sliderLength, buttonDim; @@ -1673,12 +1583,6 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, if(sliderR.height() >= 16){ - painter.drawPixmap(sliderR.x()+1, sliderR.y(), - isHover ? *getPixmap(VSBSliderTopHover): - *getPixmap(VSBSliderTop)); + painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop)); painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+8, 13, - sliderR.height()-16, isHover ? - *getPixmap(VSBSliderMidHover) : - *getPixmap(VSBSliderMid)); - painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, - isHover ? *getPixmap(VSBSliderBtmHover) : - *getPixmap(VSBSliderBtm)); + sliderR.height()-16, *getPixmap(VSBSliderMid)); + painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, *getPixmap(VSBSliderBtm)); } @@ -1686,8 +1590,4 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, int m = sliderR.height()/2; - painter.drawPixmap(sliderR.x()+1, sliderR.y(), - isHover ? *getPixmap(VSBSliderTopHover): - *getPixmap(VSBSliderTop), 0, 0, 13, m); - painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, - isHover ? *getPixmap(VSBSliderBtmHover): - *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); + painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop), 0, 0, 13, m); + painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); } @@ -1699,3 +1599,2 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, 11, sliderR.height()-2, - isHover ? *getPixmap(VSBSliderMidHover) : *getPixmap(VSBSliderMid), 1, 0); @@ -1740,9 +1639,6 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, painter.drawPixmap(sliderR.x(), sliderR.y()+1, - isHover ? *getPixmap(HSBSliderTopHover) : *getPixmap(HSBSliderTop)); painter.drawTiledPixmap(sliderR.x()+8, sliderR.y()+1, sliderR.width()-16, - 13, isHover ? *getPixmap(HSBSliderMidHover) : - *getPixmap(HSBSliderMid)); - painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, isHover ? - *getPixmap(HSBSliderBtmHover) : + 13, *getPixmap(HSBSliderMid)); + painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, *getPixmap(HSBSliderBtm)); @@ -1752,6 +1648,4 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, painter.drawPixmap(sliderR.x(), sliderR.y()+1, - isHover ? *getPixmap(HSBSliderTopHover) : *getPixmap(HSBSliderTop), 0, 0, m, 13); - painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, isHover ? - *getPixmap(HSBSliderBtmHover) : + painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, *getPixmap(HSBSliderBtm), 8-m, 0, m, 13); @@ -1763,4 +1657,3 @@ void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+2, - sliderR.width()-2, 11, isHover ? - *getPixmap(HSBSliderMidHover) : + sliderR.width()-2, 11, *getPixmap(HSBSliderMid), 0, 1); @@ -1943,3 +1836,3 @@ void LiquidStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int /*w*/, { - bool isHover = highlightWidget == p->device(); + bool isActive = ( p->device()->devType() == QInternal::Widget ) && ( qApp-> focusWidget ( ) == p-> device ( )); bool isMasked = p->device() && p->device()->devType() == QInternal::Widget @@ -1949,3 +1842,3 @@ void LiquidStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int /*w*/, if(on || down){ - p->drawPixmap(x, y, isHover ? *getPixmap(HTMLRadioDownHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(HTMLRadioDownHover) : *getPixmap(HTMLRadioDown)); @@ -1953,3 +1846,3 @@ void LiquidStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int /*w*/, else - p->drawPixmap(x, y, isHover ? *getPixmap(HTMLRadioHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(HTMLRadioHover) : *getPixmap(HTMLRadio)); @@ -1959,3 +1852,3 @@ void LiquidStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int /*w*/, if(on || down){ - p->drawPixmap(x, y, isHover ? *getPixmap(RadioOnHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(RadioOnHover) : *getPixmap(RadioOn)); @@ -1963,3 +1856,3 @@ void LiquidStyle::drawExclusiveIndicator(QPainter *p, int x, int y, int /*w*/, else - p->drawPixmap(x, y, isHover ? *getPixmap(RadioOffHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(RadioOffHover) : *getPixmap(RadioOff)); @@ -1985,3 +1878,3 @@ void LiquidStyle::drawIndicator(QPainter *p, int x, int y, int /*w*/, int /*h*/, { - bool isHover = highlightWidget == p->device(); + bool isActive = ( p->device()->devType() == QInternal::Widget ) && ( qApp-> focusWidget ( ) == p-> device ( )); bool isMasked = p->device() && p->device()->devType() == QInternal::Widget @@ -1990,3 +1883,3 @@ void LiquidStyle::drawIndicator(QPainter *p, int x, int y, int /*w*/, int /*h*/, if(state != QButton::Off){ - p->drawPixmap(x, y, isHover ? *getPixmap(HTMLCBDownHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(HTMLCBDownHover) : *getPixmap(HTMLCBDown)); @@ -1994,3 +1887,3 @@ void LiquidStyle::drawIndicator(QPainter *p, int x, int y, int /*w*/, int /*h*/, else - p->drawPixmap(x, y, isHover ? *getPixmap(HTMLCBHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(HTMLCBHover) : *getPixmap(HTMLCB)); @@ -2000,3 +1893,3 @@ void LiquidStyle::drawIndicator(QPainter *p, int x, int y, int /*w*/, int /*h*/, if(state != QButton::Off){ - p->drawPixmap(x, y, isHover ? *getPixmap(CBDownHover) : + p->drawPixmap(x, y, isActive ? *getPixmap(CBDownHover) : *getPixmap(CBDown)); @@ -2017,3 +1910,3 @@ void LiquidStyle::drawIndicator(QPainter *p, int x, int y, int /*w*/, int /*h*/, else - p->drawPixmap(x, y, isHover ? *getPixmap(CBHover) : *getPixmap(CB)); + p->drawPixmap(x, y, isActive ? *getPixmap(CBHover) : *getPixmap(CB)); } @@ -2362,3 +2255,3 @@ void LiquidStyle::drawFocusRect(QPainter *p, const QRect &r, QWidget *w = (QWidget *)p->device(); - if(w->inherits("QPushButton") || w->inherits("QSlider")){ + if(w->inherits("QPushButton") || w->inherits("QSlider") || w->inherits("QComboBox") || w->inherits("QToolButton" )){ return; @@ -2715,106 +2608,2 @@ void LiquidStyle::drawSliderGrooveMask (QPainter * p, int x, int y, int w, -// I'm debating if to use QValueList or QList here. I like QValueList better, -// but QList handles pointers which is good for a lot of empty icons... - -void LiquidStyle::loadCustomButtons() -{ - return; // TODO - customBtnColorList.clear(); - customBtnIconList.clear(); - customBtnLabelList.clear(); - -// KConfig *config = KGlobal::config(); -// QString oldGrp = config->group(); -// config->setGroup("MosfetButtons"); - - QStrList iconList, colorList; //temp, we store QPixmaps and QColors - iconList.setAutoDelete(true); - colorList.setAutoDelete(true); -// config->readListEntry("Labels", customBtnLabelList); -// config->readListEntry("Icons", iconList); -// config->readListEntry("Colors", colorList); - - const char *labelStr = customBtnLabelList.first(); - const char *colorStr = colorList.first(); - const char *iconStr = iconList.first(); - -// KIconLoader *ldr = KGlobal::iconLoader(); - while(labelStr != NULL){ - QColor *c = new QColor; - c->setNamedColor(QString(colorStr)); - customBtnColorList.append(c); - - QString tmpStr(iconStr); - if(!tmpStr.isEmpty()){ - QPixmap *pixmap = - new QPixmap();//ldr->loadIcon(tmpStr, KIcon::Small)); - if(pixmap->isNull()){ - delete pixmap; - customBtnIconList.append(NULL); - } - else - customBtnIconList.append(pixmap); - } - else - customBtnIconList.append(NULL); - - labelStr = customBtnLabelList.next(); - colorStr = colorList.next(); - iconStr = iconList.next(); - } -} - -void LiquidStyle::applyCustomAttributes(QPushButton *btn) -{ - return; // TODO - QString str = btn->text(); - if(str.isEmpty()) - return; - while(str.contains('&') != 0) - str = str.remove(str.find('&'), 1); - - const char *s; - int idx = 0; - for(s = customBtnLabelList.first(); s != NULL; - ++idx, s = customBtnLabelList.next()){ - if(qstricmp(s, str.latin1()) == 0){ - QPalette pal = btn->palette(); - pal.setColor(QColorGroup::Button, - *customBtnColorList.at(idx)); - btn->setPalette(pal); - /* - if(customBtnIconList.at(idx) != NULL){ - QPixmap *pix = customBtnIconList.at(idx); - btn->setIconSet(QIconSet(*pix)); - }*/ - break; - } - } -} - -void LiquidStyle::unapplyCustomAttributes(QPushButton *btn) -{ - return; // TODO - QString str = btn->text(); - if(str.isEmpty()) - return; - while(str.contains('&') != 0) - str = str.remove(str.find('&'), 1); - - const char *s; - for(s = customBtnLabelList.first(); s != NULL; s = customBtnLabelList.next()){ - if(qstricmp(s, str.latin1()) == 0){ - btn->setPalette(QApplication::palette()); - btn->setIconSet(QIconSet()); - break; - } - } -} - -// #include "liquid.moc" - - - - - diff --git a/noncore/styles/liquid/liquid.h b/noncore/styles/liquid/liquid.h index 00cfb35..0582c9a 100644 --- a/noncore/styles/liquid/liquid.h +++ b/noncore/styles/liquid/liquid.h @@ -173,5 +173,2 @@ protected: void drawRoundRect(QPainter *p, int x, int y, int w, int h); - void loadCustomButtons(); - void applyCustomAttributes(QPushButton *btn); - void unapplyCustomAttributes(QPushButton *btn); QPixmap* getPixmap(BitmapData item); @@ -179,16 +176,8 @@ protected: private: + bool oldqte; bool flatTBButtons; - bool highcolor; - QColorGroup radioOnGrp; QWidget *highlightWidget; - QBrush wallpaper; - QBitmap lightBmp; - QBitmap grayBmp; - QBitmap dgrayBmp; - QBitmap maskBmp; - QBitmap xBmp; QBitmap btnMaskBmp, htmlBtnMaskBmp; QPixmap *btnBorderPix, *btnBlendPix, *bevelFillPix, *smallBevelFillPix, *menuPix; - QBitmap paper1, paper2, paper3; - QBrush baseBrush, menuBrush, pagerBrush, pagerHoverBrush, bgBrush; + QBrush bgBrush, menuBrush; bool menuAni, menuFade; @@ -200,5 +189,2 @@ private: - QList<QColor>customBtnColorList; - QList<QPixmap>customBtnIconList; - QStrList customBtnLabelList; QPixmap *vsbSliderFillPix; diff --git a/noncore/styles/liquid/opie-liquid.diff b/noncore/styles/liquid/opie-liquid.diff index f3531e5..29ae6f3 100644 --- a/noncore/styles/liquid/opie-liquid.diff +++ b/noncore/styles/liquid/opie-liquid.diff @@ -5,4 +5,4 @@ Features: ---- - 2002-10-24 03:19:30.000000000 +0200 -+++ liquid.h 2002-07-15 02:52:50.000000000 +0200 +--- - 2002-11-18 04:47:41.000000000 +0100 ++++ liquid.h 2002-11-18 03:32:40.000000000 +0100 @@ -2,7 +2,7 @@ @@ -104,3 +104,9 @@ Features: void drawSliderGroove(QPainter * p, int x, int y, int w, int h, -@@ -204,6 +177,7 @@ +@@ -198,25 +171,15 @@ + void drawSBButton(QPainter *p, const QRect &r, const QColorGroup &g, + bool down=false, bool fast = true); + void drawRoundRect(QPainter *p, int x, int y, int w, int h); +- void loadCustomButtons(); +- void applyCustomAttributes(QPushButton *btn); +- void unapplyCustomAttributes(QPushButton *btn); QPixmap* getPixmap(BitmapData item); @@ -108,9 +114,44 @@ Features: private: +- bool highcolor; +- QColorGroup radioOnGrp; ++ bool oldqte; + bool flatTBButtons; - bool highcolor; - QColorGroup radioOnGrp; QWidget *highlightWidget; ---- - 2002-10-24 03:19:31.000000000 +0200 -+++ liquid.cpp 2002-10-24 03:18:15.000000000 +0200 -@@ -10,12 +10,10 @@ +- QBrush wallpaper; +- QBitmap lightBmp; +- QBitmap grayBmp; +- QBitmap dgrayBmp; +- QBitmap maskBmp; +- QBitmap xBmp; + QBitmap btnMaskBmp, htmlBtnMaskBmp; + QPixmap *btnBorderPix, *btnBlendPix, *bevelFillPix, *smallBevelFillPix, *menuPix; +- QBitmap paper1, paper2, paper3; +- QBrush baseBrush, menuBrush, pagerBrush, pagerHoverBrush, bgBrush; ++ QBrush bgBrush, menuBrush; + bool menuAni, menuFade; + + QIntDict<QPixmap>btnDict; +@@ -224,9 +187,6 @@ + QIntDict<QPixmap>bevelFillDict; + QIntDict<QPixmap>smallBevelFillDict; + +- QList<QColor>customBtnColorList; +- QList<QPixmap>customBtnIconList; +- QStrList customBtnLabelList; + QPixmap *vsbSliderFillPix; + TransMenuHandler *menuHandler; + QPixmap *pixmaps[BITMAP_ITEMS]; +--- - 2002-11-18 04:47:41.000000000 +0100 ++++ liquid.cpp 2002-11-18 04:46:13.000000000 +0100 +@@ -2,6 +2,9 @@ + * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved. + */ + ++// ++// (c) 2002 Robert 'sandman' Griebl ++// + + + #ifndef INCLUDE_MENUITEM_DEF +@@ -10,12 +13,10 @@ @@ -131,3 +172,3 @@ Features: #include <qtabbar.h> -@@ -25,28 +23,29 @@ +@@ -25,28 +26,30 @@ #include <qtimer.h> @@ -149,2 +190,3 @@ Features: +#include <qprogressbar.h> ++#include <qlineedit.h> @@ -171,3 +213,3 @@ Features: for(y=0; y < img.height(); y+=3){ -@@ -71,35 +70,37 @@ +@@ -71,35 +74,37 @@ : QObject(parent) @@ -222,3 +264,3 @@ Features: QRect deskR = QApplication::desktop()->rect(); -@@ -107,7 +108,7 @@ +@@ -107,7 +112,7 @@ r.setBottom(deskR.bottom()); @@ -231,3 +273,3 @@ Features: else{ // tear off menu -@@ -121,82 +122,53 @@ +@@ -121,82 +126,61 @@ stripePixmap(*pix, p->colorGroup().button()); @@ -268,7 +310,7 @@ Features: - bool oldShadow = shadowText; -+// qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); - +- - KConfig *config = KGlobal::config(); - config->reparseConfiguration(); // in case KControl changed values -- ++// qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); + - // Make sure no popupmenus are shown. There shouldn't be any because @@ -301,7 +343,6 @@ Features: - w->repaint(); +- } +- } + wid-> setBackgroundMode( QWidget::PaletteBackground ); } -+ delete ol; - } - } - } @@ -325,7 +366,14 @@ Features: - ((LiquidStyle*)parent())->applyCustomAttributes((QPushButton *)w); -- } -- } -- -- } ++ delete ol; + } + } + return(false); ++} + +- } ++ ++static int qt_version ( ) ++{ ++ const char *qver = qVersion ( ); ++ return ( qver [0] - '0' ) * 100 + ( qver [2] - '0' ) * 10 + ( qver [4] - '0' ); } @@ -339,2 +387,3 @@ Features: + ++ oldqte = ( qt_version ( ) < 234 ); + flatTBButtons = false; @@ -344,3 +393,211 @@ Features: htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); -@@ -711,7 +683,6 @@ +@@ -207,12 +191,8 @@ + btnDict.setAutoDelete(true); + bevelFillDict.setAutoDelete(true); + smallBevelFillDict.setAutoDelete(true); +- customBtnColorList.setAutoDelete(true); +- customBtnIconList.setAutoDelete(true); +- customBtnLabelList.setAutoDelete(true); + + rMatrix.rotate(270.0); +- highcolor = QPixmap::defaultDepth() > 8; + btnBorderPix = new QPixmap; + btnBorderPix->convertFromImage(qembed_findImage("buttonfill")); + btnBlendPix = new QPixmap; +@@ -572,131 +552,119 @@ + case HTMLBtnBorderDown: + pixmaps[HTMLBtnBorderDown] = processEmbedded("htmlbtnborder", btnHoverH, btnHoverS, btnHoverV); + break; ++ + case HTMLCB: + pixmaps[HTMLCB] = processEmbedded("htmlcheckbox", bH, bS, bV); + break; ++ case HTMLCBHover: ++ pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnHoverH, btnHoverS, btnHoverV); ++ break; + case HTMLCBDown: + pixmaps[HTMLCBDown] = processEmbedded("htmlcheckboxdown", btnH, btnS, btnV); + break; +- case HTMLCBHover: +- pixmaps[HTMLCBHover] = processEmbedded("htmlcheckbox", btnH, btnS, btnV); +- break; + case HTMLCBDownHover: +- pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", +- btnHoverH, btnHoverS, +- btnHoverV); ++ pixmaps[HTMLCBDownHover] = processEmbedded("htmlcheckboxdown", btnHoverH, btnHoverS, btnHoverV); + break; ++ + case HTMLRadio: + pixmaps[HTMLRadio] = processEmbedded("htmlradio", bH, bS, bV); ++ break; ++ case HTMLRadioHover: ++ pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnHoverH, btnHoverS, btnHoverV); ++ break; + case HTMLRadioDown: + pixmaps[HTMLRadioDown] = processEmbedded("htmlradiodown", btnH, btnS, btnV); +- case HTMLRadioHover: +- pixmaps[HTMLRadioHover] = processEmbedded("htmlradio", btnH, btnS, btnV); ++ break; + case HTMLRadioDownHover: +- pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", +- btnHoverH, btnHoverS, +- btnHoverV); ++ pixmaps[HTMLRadioDownHover] = processEmbedded("htmlradiodown", btnHoverH, btnHoverS, btnHoverV); ++ break; ++ ++ case RadioOff: ++ pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV /*, true*/); ++ break; ++ case RadioOffHover: ++ pixmaps[RadioOffHover] = processEmbedded("radio", btnHoverH, btnHoverS, btnHoverV /*, true*/); ++ break; + case RadioOn: +- pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV, true); ++ pixmaps[RadioOn] = processEmbedded("radio_down", btnH, btnS, btnV /*, true*/); + break; + case RadioOnHover: +- pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, +- btnHoverV, true); ++ pixmaps[RadioOnHover] = processEmbedded("radio_down", btnHoverH, btnHoverS, btnHoverV /*, true*/); + break; +- case RadioOffHover: +- pixmaps[RadioOffHover] = processEmbedded("radio", btnH, btnS, btnV, true); ++ ++ case Tab: ++ pixmaps[Tab] = processEmbedded("tab", bH, bS, bV /*, true*/); + break; + case TabDown: +- pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV, true); ++ pixmaps[TabDown] = processEmbedded("tab", btnH, btnS, btnV /*, true*/); + break; + case TabFocus: +- pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, +- btnHoverS, true); +- break; +- case CBDown: +- pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV, true); ++ pixmaps[TabFocus] = processEmbedded("tab", btnHoverH, btnHoverS, btnHoverV /*, true*/); + break; +- case CBDownHover: +- pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, +- btnHoverS, btnHoverV, true); ++ ++ case CB: ++ pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV /*, true*/); + break; + case CBHover: +- pixmaps[CBHover] = processEmbedded("checkbox", btnH, btnS, btnV, true); ++ pixmaps[CBHover] = processEmbedded("checkbox", btnHoverH, btnHoverS, btnHoverV /*, true*/); + break; +- case HSlider: +- pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true); ++ case CBDown: ++ pixmaps[CBDown] = processEmbedded("checkboxdown", btnH, btnS, btnV /*, true*/); + break; ++ case CBDownHover: ++ pixmaps[CBDownHover] = processEmbedded("checkboxdown", btnHoverH, btnHoverS, btnHoverV /*, true*/); ++ break; ++ + case VSlider: +- pixmaps[VSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true); ++ pixmaps[VSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV, true ); + *pixmaps[VSlider] = pixmaps[VSlider]->xForm(rMatrix); + break; +- case RadioOff: +- pixmaps[RadioOff] = processEmbedded("radio", bH, bS, bV, true); +- break; +- case Tab: +- pixmaps[Tab] = processEmbedded("tab", bH, bS, bV, true); +- break; +- case CB: +- pixmaps[CB] = processEmbedded("checkbox", bH, bS, bV, true); +- break; + case VSBSliderTop: +- pixmaps[VSBSliderTop] = processEmbedded("sbslider_top", btnH, btnS, btnV, true); ++ case VSBSliderTopHover: ++ pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV /*, true*/); + break; + case VSBSliderBtm: +- pixmaps[VSBSliderBtm] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true); ++ case VSBSliderBtmHover: ++ pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV /*, true*/); + break; + case VSBSliderMid: +- pixmaps[VSBSliderMid] = processEmbedded("sbslider_mid", btnH, btnS, btnV); ++ case VSBSliderMidHover: ++ pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); + break; +- case VSBSliderTopHover: +- pixmaps[VSBSliderTopHover] = processEmbedded("sbslider_top", btnHoverH, btnHoverS, btnHoverV, true); ++ case VSBSliderTopBg: ++ pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV /*, true*/); + break; +- case VSBSliderBtmHover: +- pixmaps[VSBSliderBtmHover] = processEmbedded("sbslider_btm", btnHoverH, btnHoverS, btnHoverV, true); ++ case VSBSliderBtmBg: ++ pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV /*, true*/); + break; +- case VSBSliderMidHover: +- pixmaps[VSBSliderMidHover] = processEmbedded("sbslider_mid", btnHoverH, btnHoverS, btnHoverV); ++ case VSBSliderMidBg: ++ pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); + break; + +- case HSBSliderTop: +- pixmaps[HSBSliderTop] = processEmbedded("sbslider_top", btnH, btnS, btnV, true); +- *pixmaps[HSBSliderTop] = pixmaps[HSBSliderTop]->xForm(rMatrix); +- break; +- case HSBSliderBtm: +- pixmaps[HSBSliderBtm] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true); +- *pixmaps[HSBSliderBtm] = pixmaps[HSBSliderBtm]->xForm(rMatrix); +- break; +- case HSBSliderMid: +- pixmaps[HSBSliderMid] = processEmbedded("sbslider_mid", btnH, btnS, btnV); +- *pixmaps[HSBSliderMid] = pixmaps[HSBSliderMid]->xForm(rMatrix); ++ case HSlider: ++ pixmaps[HSlider] = processEmbedded("sliderarrow", btnH, btnS, btnV /*, true*/); + break; ++ case HSBSliderTop: + case HSBSliderTopHover: +- pixmaps[HSBSliderTopHover] = processEmbedded("sbslider_top", btnHoverH, btnHoverS, btnHoverV, true); +- *pixmaps[HSBSliderTopHover] = pixmaps[HSBSliderTopHover]->xForm(rMatrix); ++ pixmaps[item] = processEmbedded("sbslider_top", btnH, btnS, btnV, true ); ++ *pixmaps[item] = pixmaps[item]->xForm(rMatrix); + break; ++ case HSBSliderBtm: + case HSBSliderBtmHover: +- pixmaps[HSBSliderBtmHover] = processEmbedded("sbslider_btm", btnHoverH, btnHoverS, btnHoverV, true); +- *pixmaps[HSBSliderBtmHover] = pixmaps[HSBSliderBtmHover]->xForm(rMatrix); ++ pixmaps[item] = processEmbedded("sbslider_btm", btnH, btnS, btnV, true ); ++ *pixmaps[item] = pixmaps[item]->xForm(rMatrix); + break; ++ case HSBSliderMid: + case HSBSliderMidHover: +- pixmaps[HSBSliderMidHover] = processEmbedded("sbslider_mid", btnHoverH, btnHoverS, btnHoverV); +- *pixmaps[HSBSliderMidHover] = pixmaps[HSBSliderMidHover]->xForm(rMatrix); +- break; +- case VSBSliderTopBg: +- pixmaps[VSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true); +- break; +- case VSBSliderBtmBg: +- pixmaps[VSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true); +- break; +- case VSBSliderMidBg: +- pixmaps[VSBSliderMidBg] = processEmbedded("sbslider_mid", bH, bS, bV); ++ pixmaps[item] = processEmbedded("sbslider_mid", btnH, btnS, btnV); ++ *pixmaps[item] = pixmaps[item]->xForm(rMatrix); + break; + case HSBSliderTopBg: +- pixmaps[HSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true); ++ pixmaps[HSBSliderTopBg] = processEmbedded("sbslider_top", bH, bS, bV, true ); + *pixmaps[HSBSliderTopBg] = pixmaps[HSBSliderTopBg]->xForm(rMatrix); + break; + case HSBSliderBtmBg: +- pixmaps[HSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true); ++ pixmaps[HSBSliderBtmBg] = processEmbedded("sbslider_btm", bH, bS, bV, true ); + *pixmaps[HSBSliderBtmBg] = pixmaps[HSBSliderBtmBg]->xForm(rMatrix); + break; + case HSBSliderMidBg: +@@ -711,7 +679,6 @@ @@ -352,6 +609,17 @@ Features: if(pixmaps[i]){ -@@ -730,20 +701,29 @@ +@@ -719,31 +686,28 @@ + pixmaps[i] = NULL; } - - loadCustomButtons(); + } +- QWidgetList *list = QApplication::allWidgets(); +- QWidgetListIt it( *list ); +- QWidget *w; +- while ((w=it.current()) != 0 ){ +- ++it; +- if(w->inherits("QPushButton")){ +- unapplyCustomAttributes((QPushButton *)w); +- } +- } +- +- loadCustomButtons(); - lowLightVal = 100 + (2*KGlobalSettings::contrast()+4)*10; @@ -381,7 +649,6 @@ Features: + config. setGroup ( "Appearance" ); -+ QColor c = // QColor ( config. readEntry("Button", ( Qt::lightGray ). name ( ))); -+ appPal. color ( QPalette::Active, QColorGroup::Button ); -+ if ( c == appPal. color ( QPalette::Active, QColorGroup::Background ) -+ //QColor ( config. readEntry ( "background", ( Qt::lightGray ). name ( ))) -+ ) { ++ QColor c = oldqte ? QColor ( config. readEntry("Button", ( Qt::lightGray ). name ( ))) ++ : appPal. color ( QPalette::Active, QColorGroup::Button ); ++ if ( c == ( oldqte ? QColor ( config. readEntry ( "background", ( Qt::lightGray ). name ( ))) ++ : appPal. color ( QPalette::Active, QColorGroup::Background ))) { // force button color to be different from background @@ -389,4 +656,21 @@ Features: appPal.setBrush(QColorGroup::Button, btnBrush); -@@ -794,15 +774,7 @@ - pagerBrush.setPixmap(*pix); +@@ -778,8 +742,8 @@ + adjustHSV(*pix, h, s, v); + smallBevelFillDict.insert(c.rgb(), pix); + } +- pagerHoverBrush.setColor(c); +- pagerHoverBrush.setPixmap(*pix); ++// pagerHoverBrush.setColor(c); ++// pagerHoverBrush.setPixmap(*pix); + + c = c.dark(120); + pix = smallBevelFillDict.find(c.rgb()); // better be NULL ;-) +@@ -790,19 +754,13 @@ + adjustHSV(*pix, h, s, v); + smallBevelFillDict.insert(c.rgb(), pix); + } +- pagerBrush.setColor(c); +- pagerBrush.setPixmap(*pix); ++// pagerBrush.setColor(c); ++// pagerBrush.setPixmap(*pix); @@ -402,3 +686,5 @@ Features: - } -+ c = /*QColor ( config. readEntry ( "Background", ( Qt::lightGray ).name ( )));*/ appPal. color ( QPalette::Active, QColorGroup::Background ); ++ c = oldqte ? QColor ( config. readEntry ( "Background", ( Qt::lightGray ).name ( ))) ++ : appPal. color ( QPalette::Active, QColorGroup::Background ); ++ c.hsv(&bH, &bS, &bV); @@ -406,3 +692,3 @@ Features: -@@ -817,21 +789,18 @@ +@@ -817,101 +775,50 @@ wallPaper.fill(c.rgb()); @@ -424,13 +710,29 @@ Features: - } - - // lineedits +- +- // lineedits - c = config->readColorEntry("windowBackground", &Qt::white); -+ c = /*QColor ( config. readEntry("Base", ( Qt::white). name ( )));*/ appPal. color ( QPalette::Active, QColorGroup::Base ); - QPixmap basePix; - basePix.resize(32, 32); - basePix.fill(c.rgb()); -@@ -856,52 +825,37 @@ - applyCustomAttributes((QPushButton *)w); - } - } +- QPixmap basePix; +- basePix.resize(32, 32); +- basePix.fill(c.rgb()); +- painter.begin(&basePix); +- painter.setPen(c.dark(105)); +- for(i=0; i < 32; i+=4){ +- painter.drawLine(0, i, 32, i); +- painter.drawLine(0, i+1, 32, i+1); +- }; +- painter.end(); +- baseBrush.setColor(c); +- baseBrush.setPixmap(basePix); +- it.toFirst(); +- while ((w=it.current()) != 0 ){ +- ++it; +- if(w->inherits("QLineEdit")){ +- QPalette pal = w->palette(); +- pal.setBrush(QColorGroup::Base, baseBrush); +- w->setPalette(pal); +- } +- else if(w->inherits("QPushButton")){ +- applyCustomAttributes((QPushButton *)w); +- } +- } - @@ -491,4 +793,3 @@ Features: - if(w->inherits("QComboBox") || -+ if(w->inherits("QComboBox") || w->inherits("QProgressBar") || - w->inherits("QLineEdit") || w->inherits("QRadioButton") || +- w->inherits("QLineEdit") || w->inherits("QRadioButton") || - w->inherits("QCheckBox") || w->inherits("QScrollBar") || @@ -496,10 +797,14 @@ Features: - w->inherits("TaskContainer")){ -+ w->inherits("QCheckBox") || w->inherits("QScrollBar")) { - w->installEventFilter(this); - } - if(w->inherits("QLineEdit")){ -@@ -913,6 +867,10 @@ - applyCustomAttributes((QPushButton *)w); ++ if(w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { w->installEventFilter(this); } +- if(w->inherits("QLineEdit")){ +- QPalette pal = w->palette(); +- pal.setBrush(QColorGroup::Base, baseBrush); +- w->setPalette(pal); +- } +- if(w->inherits("QPushButton")){ +- applyCustomAttributes((QPushButton *)w); +- w->installEventFilter(this); ++ + if(w->inherits("QButton") || w-> inherits("QComboBox")){ @@ -507,7 +812,6 @@ Features: + w->setBackgroundOrigin ( QWidget::ParentOrigin); -+ } + } bool isViewport = qstrcmp(w->name(), "qt_viewport") == 0 || - qstrcmp(w->name(), "qt_clipped_viewport") == 0; -@@ -942,11 +900,17 @@ +@@ -942,11 +849,20 @@ w->setMouseTracking(true); @@ -515,3 +819,4 @@ Features: } -+ if(w-> inherits("QToolButton")&&w->parent()->inherits("QToolBar")) { ++ if(w-> inherits("QToolButton")) { ++ if (w->parent()->inherits("QToolBar")) { + ((QToolButton*)w)->setAutoRaise (flatTBButtons); @@ -520,2 +825,4 @@ Features: + } ++ w-> installEventFilter ( this ); ++ } + if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { @@ -531,3 +838,3 @@ Features: palette().active().brush(QColorGroup::Background).pixmap()){ -@@ -954,16 +918,21 @@ +@@ -954,16 +870,21 @@ return; @@ -559,3 +866,3 @@ Features: -@@ -977,6 +946,11 @@ +@@ -977,6 +898,11 @@ @@ -571,3 +878,3 @@ Features: return; -@@ -986,7 +960,7 @@ +@@ -986,7 +912,7 @@ ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || @@ -580,7 +887,9 @@ Features: w->setBackgroundMode(QWidget::PaletteButton); -@@ -1001,12 +975,14 @@ - unapplyCustomAttributes((QPushButton *)w); - w->removeEventFilter(this); - } -- +@@ -997,16 +923,12 @@ + if(isViewportChild) + w->setAutoMask(false); + +- if(w->inherits("QPushButton")){ +- unapplyCustomAttributes((QPushButton *)w); +- w->removeEventFilter(this); +/* @@ -588,6 +897,6 @@ Features: + w-> setBackgroundMode ( PaletteBackground ); -+ } -+*/ - if(w->inherits("QComboBox") || - w->inherits("QLineEdit") || w->inherits("QRadioButton") || + } +- +- if(w->inherits("QComboBox") || +- w->inherits("QLineEdit") || w->inherits("QRadioButton") || - w->inherits("QCheckBox") || w->inherits("QScrollBar") || @@ -595,3 +904,4 @@ Features: - w->inherits("TaskContainer")){ -+ w->inherits("QCheckBox") || w->inherits("QScrollBar")) { ++*/ ++ if( w->inherits("QRadioButton") || w->inherits("QCheckBox") || w->inherits("QProgressBar")) { w->removeEventFilter(this); @@ -599,3 +909,3 @@ Features: if(w->inherits("QButton") || w->inherits("QComboBox")){ -@@ -1014,9 +990,9 @@ +@@ -1014,9 +936,12 @@ w->setAutoMask(false); @@ -604,2 +914,5 @@ Features: - if(w->inherits("KToolBar")){ ++ if(w-> inherits("QToolButton")) { ++ w-> removeEventFilter ( this ); ++ } + if(w->inherits("QToolBar")){ @@ -611,3 +924,3 @@ Features: if(w->inherits("QHeader")){ -@@ -1028,22 +1004,98 @@ +@@ -1028,22 +953,118 @@ void LiquidStyle::polish(QApplication *app) @@ -708,2 +1021,22 @@ Features: + ++/* ++ * The same for QToolButton: ++ * TT hardcoded the drawing of the focus rect ... ++ * ++ * - sandman ++ */ ++ ++ ++class HackToolButton : public QToolButton { ++public: ++ HackToolButton ( ); ++ ++ void paint ( QPaintEvent *ev ) ++ { ++ erase ( ev-> region ( )); ++ QPainter p ( this ); ++ style ( ). drawToolButton ( this, &p ); ++ drawButtonLabel ( &p ); ++ } ++}; + @@ -712,3 +1045,3 @@ Features: * force everything to erase and repaint on resize. This is going away, I'm -@@ -1063,7 +1115,7 @@ +@@ -1063,7 +1084,7 @@ */ @@ -721,3 +1054,3 @@ Features: QObjectListIt it(*tbChildList); -@@ -1076,35 +1128,7 @@ +@@ -1076,116 +1097,27 @@ @@ -754,10 +1087,16 @@ Features: - obj->isA("AppletHandle")){ -+ else if(obj->inherits("QPushButton") || obj->inherits("QComboBox")){ - QWidget *btn = (QWidget *)obj; - if(ev->type() == QEvent::Enter){ - if(btn->isEnabled()){ -@@ -1119,20 +1143,7 @@ - } - } - } +- QWidget *btn = (QWidget *)obj; +- if(ev->type() == QEvent::Enter){ +- if(btn->isEnabled()){ +- highlightWidget = btn; +- btn->repaint(false); +- } +- } +- else if(ev->type() == QEvent::Leave){ +- if(btn == highlightWidget){ +- highlightWidget = NULL; +- btn->repaint(false); +- } +- } +- } - else if(obj->inherits("TaskContainer")){ @@ -776,7 +1115,123 @@ Features: - else if(obj->inherits("QToolButton") && !obj->inherits("KToolBarButton")){ +- QToolButton *btn = (QToolButton *)btn; +- if(!btn->autoRaise()){ + else if(obj->inherits("QToolButton")){ - QToolButton *btn = (QToolButton *)btn; - if(!btn->autoRaise()){ ++ QToolButton *btn = (QToolButton *)obj; ++ if(ev->type() == QEvent::FocusIn ){ // && !btn-> autoRaise () if(btn->isEnabled()){ -@@ -1290,7 +1301,24 @@ + highlightWidget = btn; + btn->repaint(false); ++ ++ qDebug ( "TB FOCUS IN [%p]", btn ); + } + } +- else if(ev->type() == QEvent::Leave){ +- QWidget *btn = (QWidget *)obj; ++ else if(ev->type() == QEvent::FocusOut ){ + if(btn == highlightWidget){ + highlightWidget = NULL; + btn->repaint(false); ++ ++ qDebug ( "TB FOCUS OUT [%p]", btn ); + } + } +- else +- highlightWidget = NULL; +- } +- else if(obj->inherits("QScrollBar")){ +- QScrollBar *sb = (QScrollBar *)obj; +- if(ev->type() == QEvent::Enter){ +- if(sb->isEnabled()){ +- highlightWidget = sb; +- sb->repaint(false); +- } +- } +- else if(ev->type() == QEvent::Leave){ +- if(sb == highlightWidget && !sb->draggingSlider()){ +- highlightWidget = NULL; +- sb->repaint(false); +- } +- } +- else if(ev->type() == QEvent::MouseButtonRelease){ +- QMouseEvent *me = (QMouseEvent *)ev; +- if(sb == highlightWidget && !sb->rect().contains(me->pos())){ +- highlightWidget = NULL; +- sb->repaint(false); +- } +- } +- } +- else if(obj->inherits("QLineEdit")){ +- if(obj->parent() && obj->parent()->inherits("QComboBox")){ +- QWidget *btn = (QComboBox *)obj->parent(); +- if(ev->type() == QEvent::Enter){ +- if (btn->isEnabled()){ +- highlightWidget = btn; +- btn->repaint(false); +- } +- } +- else if(ev->type() == QEvent::Leave){ +- if (btn == highlightWidget) +- highlightWidget = NULL; +- btn->repaint(false); +- } ++ else if(ev->type() == QEvent::Paint) { ++ (( HackToolButton *) btn )-> paint ((QPaintEvent *) ev ); ++ return true; + } + } + else if(obj->inherits("QRadioButton") || obj->inherits("QCheckBox")){ +@@ -1201,6 +1133,7 @@ + QSize sz = isRadio ? exclusiveIndicatorSize() + : indicatorSize(); + ++/* + if(btn->hasFocus()){ + QRect r = QRect(0, 0, btn->width(), btn->height()); + p.setPen(btn->colorGroup().button().dark(140)); +@@ -1209,6 +1142,7 @@ + p.drawLine(r.right(), r.y()+1, r.right(), r.bottom()-1); + p.drawLine(r.x()+1, r.bottom(), r.right()-1, r.bottom()); + } ++*/ + int x = 0; + int y = (btn->height()-lsz.height()+fm.height()-sz.height())/2; + if(isRadio) +@@ -1228,36 +1162,6 @@ + p.end(); + return(true); + } +- // for hover, just redraw the indicator (not the text) +- else if((ev->type() == QEvent::Enter && btn->isEnabled()) || +- (ev->type() == QEvent::Leave && btn == highlightWidget)){ +- QButton *btn = (QButton *)obj; +- bool isRadio = obj->inherits("QRadioButton"); +- +- if(ev->type() == QEvent::Enter) +- highlightWidget = btn; +- else +- highlightWidget = NULL; +- QFontMetrics fm = btn->fontMetrics(); +- QSize lsz = fm.size(ShowPrefix, btn->text()); +- QSize sz = isRadio ? exclusiveIndicatorSize() +- : indicatorSize(); +- int x = 0; +- int y = (btn->height()-lsz.height()+fm.height()-sz.height())/2; +- //if(btn->autoMask()) +- // btn->erase(x+1, y+1, sz.width()-2, sz.height()-2); +- QPainter p; +- p.begin(btn); +- if(isRadio) +- drawExclusiveIndicator(&p, x, y, sz.width(), sz.height(), +- btn->colorGroup(), btn->isOn(), +- btn->isDown(), btn->isEnabled()); +- else +- drawIndicator(&p, x, y, sz.width(), sz.height(), +- btn->colorGroup(), btn->state(), btn->isDown(), +- btn->isEnabled()); +- p.end(); +- } + } + else if(obj->inherits("QHeader")){ + QHeader *hw = (QHeader *)obj; +@@ -1290,7 +1194,24 @@ } @@ -806,3 +1261,15 @@ Features: void LiquidStyle::drawButton(QPainter *p, int x, int y, int w, int h, -@@ -1340,11 +1368,6 @@ +@@ -1325,8 +1246,11 @@ + } + + p->drawTiledPixmap(x+2, y+2, w-4, h-4, *pix); ++ qDebug ( "DRAW TOOLBUTTON IN PIXMAP" ); + } + else{ ++ qDebug ( "DRAW TOOLBUTTON sunken=%d/high=%p/device=%p", sunken, highlightWidget,p->device() ); ++ + drawClearBevel(p, x, y, w, h, sunken ? g.button() : + highlightWidget == p->device() ? g.button().light(110) : + g.background(), g.background()); +@@ -1340,11 +1264,6 @@ QColorGroup g = btn->colorGroup(); @@ -818,3 +1285,55 @@ Features: QColor c = btn->hasFocus() ? g.button().light(110) : g.background(); -@@ -1596,7 +1619,7 @@ +@@ -1488,7 +1407,20 @@ + const QColorGroup &g, bool sunken, + bool edit, bool, const QBrush *) + { +- bool isHover = highlightWidget == painter->device(); ++ bool isActive = false; ++ if (( painter->device()->devType() == QInternal::Widget ) && ++ ( ++ ( qApp-> focusWidget ( ) == painter-> device ( )) || ++ ( ++ edit && ++ ((QWidget *) painter-> device ( ))-> inherits ( "QComboBox" ) && ++ ( qApp-> focusWidget ( ) == ((QComboBox *) painter->device())->lineEdit ( )) ++ ) ++ ) ++ ) { ++ isActive = true; ++ } ++ + bool isMasked = false; + if(painter->device()->devType() == QInternal::Widget) + isMasked = ((QWidget*)painter->device())->autoMask(); +@@ -1498,7 +1430,7 @@ + + drawRoundButton(&p, g.button(), g.background(), 0, 0, w, h, false, + sunken, false, isMasked); +- if(!isHover){ ++ if(!isActive){ + p.setClipRect(0, 0, w-17, h); + drawRoundButton(&p, g.background(), g.background(), 0, 0, w, h, false, + sunken, false, isMasked); +@@ -1550,16 +1482,17 @@ + return(QRect(x+9, y+3, w - (h / 3) - 20, h-6)); + } + +-QRect LiquidStyle::comboButtonFocusRect(int x, int y, int w, int h) ++QRect LiquidStyle::comboButtonFocusRect(int /*x*/, int /*y*/, int /*w*/, int /*h*/) + { +- return(QRect(x+5, y+3, w-(h/3)-13, h-5)); ++ return QRect ( ); ++ ++// return(QRect(x+5, y+3, w-(h/3)-13, h-5)); + } + + void LiquidStyle::drawScrollBarControls(QPainter *p, const QScrollBar *sb, + int sliderStart, uint controls, + uint activeControl) + { +- bool isHover = highlightWidget == p->device(); + int sliderMin, sliderMax, sliderLength, buttonDim; + scrollBarMetrics( sb, sliderMin, sliderMax, sliderLength, buttonDim ); + +@@ -1596,7 +1529,7 @@ if(sbBuffer.size() != sb->size()) @@ -827,3 +1346,3 @@ Features: subHC.setRect(addX-buttonDim,addY,buttonDim,buttonDim ); -@@ -1624,7 +1647,7 @@ +@@ -1624,7 +1557,7 @@ QPainter painter; @@ -836,3 +1355,42 @@ Features: 13, 8); -@@ -1690,7 +1713,7 @@ +@@ -1648,25 +1581,15 @@ + } + if(controls & Slider){ + if(sliderR.height() >= 16){ +- painter.drawPixmap(sliderR.x()+1, sliderR.y(), +- isHover ? *getPixmap(VSBSliderTopHover): +- *getPixmap(VSBSliderTop)); ++ painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop)); + painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+8, 13, +- sliderR.height()-16, isHover ? +- *getPixmap(VSBSliderMidHover) : +- *getPixmap(VSBSliderMid)); +- painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, +- isHover ? *getPixmap(VSBSliderBtmHover) : +- *getPixmap(VSBSliderBtm)); ++ sliderR.height()-16, *getPixmap(VSBSliderMid)); ++ painter.drawPixmap(sliderR.x()+1, sliderR.bottom()-8, *getPixmap(VSBSliderBtm)); + } + else if(sliderR.height() >= 8){ + int m = sliderR.height()/2; +- painter.drawPixmap(sliderR.x()+1, sliderR.y(), +- isHover ? *getPixmap(VSBSliderTopHover): +- *getPixmap(VSBSliderTop), 0, 0, 13, m); +- painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, +- isHover ? *getPixmap(VSBSliderBtmHover): +- *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); ++ painter.drawPixmap(sliderR.x()+1, sliderR.y(), *getPixmap(VSBSliderTop), 0, 0, 13, m); ++ painter.drawPixmap(sliderR.x()+1, sliderR.y()+m, *getPixmap(VSBSliderBtm), 0, 8-m, 13, m); + } + else{ + painter.setPen(g.button().dark(210)); +@@ -1674,7 +1597,6 @@ + 13, sliderR.height()); + painter.drawTiledPixmap(sliderR.x()+2, sliderR.y()+1, + 11, sliderR.height()-2, +- isHover ? *getPixmap(VSBSliderMidHover) : + *getPixmap(VSBSliderMid), 1, 0); + } + } +@@ -1690,7 +1612,7 @@ } @@ -845,3 +1403,39 @@ Features: 8, 13); -@@ -1761,10 +1784,10 @@ +@@ -1715,22 +1637,17 @@ + if(controls & Slider){ + if(sliderR.width() >= 16){ + painter.drawPixmap(sliderR.x(), sliderR.y()+1, +- isHover ? *getPixmap(HSBSliderTopHover) : + *getPixmap(HSBSliderTop)); + painter.drawTiledPixmap(sliderR.x()+8, sliderR.y()+1, sliderR.width()-16, +- 13, isHover ? *getPixmap(HSBSliderMidHover) : +- *getPixmap(HSBSliderMid)); +- painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, isHover ? +- *getPixmap(HSBSliderBtmHover) : ++ 13, *getPixmap(HSBSliderMid)); ++ painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, + *getPixmap(HSBSliderBtm)); + } + else if(sliderR.width() >= 8){ + int m = sliderR.width()/2; + painter.drawPixmap(sliderR.x(), sliderR.y()+1, +- isHover ? *getPixmap(HSBSliderTopHover) : + *getPixmap(HSBSliderTop), 0, 0, m, 13); +- painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, isHover ? +- *getPixmap(HSBSliderBtmHover) : ++ painter.drawPixmap(sliderR.right()-8, sliderR.y()+1, + *getPixmap(HSBSliderBtm), 8-m, 0, m, 13); + } + else{ +@@ -1738,8 +1655,7 @@ + drawRoundRect(&painter, sliderR.x(), sliderR.y()+1, + sliderR.width(), 13); + painter.drawTiledPixmap(sliderR.x()+1, sliderR.y()+2, +- sliderR.width()-2, 11, isHover ? +- *getPixmap(HSBSliderMidHover) : ++ sliderR.width()-2, 11, + *getPixmap(HSBSliderMid), 0, 1); + } + } +@@ -1761,10 +1677,10 @@ addB.width()-8, addB.height()-8, g, !maxed); @@ -860,3 +1454,3 @@ Features: false, subHC.x()+4, subHC.y()+4, -@@ -1865,8 +1888,8 @@ +@@ -1865,8 +1781,8 @@ else @@ -871,3 +1465,3 @@ Features: sliderLength = maxLength; -@@ -1914,8 +1937,8 @@ +@@ -1914,31 +1830,31 @@ return(QSize(16, 16)); @@ -881,4 +1475,32 @@ Features: { - bool isHover = highlightWidget == p->device(); -@@ -1957,8 +1980,8 @@ +- bool isHover = highlightWidget == p->device(); ++ bool isActive = ( p->device()->devType() == QInternal::Widget ) && ( qApp-> focusWidget ( ) == p-> device ( )); + bool isMasked = p->device() && p->device()->devType() == QInternal::Widget + && ((QWidget*)p->device())->autoMask(); + + if(isMasked){ + if(on || down){ +- p->drawPixmap(x, y, isHover ? *getPixmap(HTMLRadioDownHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(HTMLRadioDownHover) : + *getPixmap(HTMLRadioDown)); + } + else +- p->drawPixmap(x, y, isHover ? *getPixmap(HTMLRadioHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(HTMLRadioHover) : + *getPixmap(HTMLRadio)); + + } + else{ + if(on || down){ +- p->drawPixmap(x, y, isHover ? *getPixmap(RadioOnHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(RadioOnHover) : + *getPixmap(RadioOn)); + } + else +- p->drawPixmap(x, y, isHover ? *getPixmap(RadioOffHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(RadioOffHover) : + *getPixmap(RadioOff)); + } + } +@@ -1957,25 +1873,25 @@ return(QSize(20, 22)); @@ -891,5 +1513,31 @@ Features: { - bool isHover = highlightWidget == p->device(); +- bool isHover = highlightWidget == p->device(); ++ bool isActive = ( p->device()->devType() == QInternal::Widget ) && ( qApp-> focusWidget ( ) == p-> device ( )); bool isMasked = p->device() && p->device()->devType() == QInternal::Widget -@@ -1996,8 +2019,8 @@ + && ((QWidget*)p->device())->autoMask(); + if(isMasked){ + if(state != QButton::Off){ +- p->drawPixmap(x, y, isHover ? *getPixmap(HTMLCBDownHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(HTMLCBDownHover) : + *getPixmap(HTMLCBDown)); + } + else +- p->drawPixmap(x, y, isHover ? *getPixmap(HTMLCBHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(HTMLCBHover) : + *getPixmap(HTMLCB)); + + } + else{ + if(state != QButton::Off){ +- p->drawPixmap(x, y, isHover ? *getPixmap(CBDownHover) : ++ p->drawPixmap(x, y, isActive ? *getPixmap(CBDownHover) : + *getPixmap(CBDown)); + /* Todo - tristate + if(state == QButton::On){ +@@ -1992,12 +1908,12 @@ + }*/ + } + else +- p->drawPixmap(x, y, isHover ? *getPixmap(CBHover) : *getPixmap(CB)); ++ p->drawPixmap(x, y, isActive ? *getPixmap(CBHover) : *getPixmap(CB)); } @@ -904,3 +1552,3 @@ Features: p->drawPixmap(x, y, *getPixmap(HTMLCB)->mask()); -@@ -2005,18 +2028,17 @@ +@@ -2005,18 +1921,17 @@ } @@ -926,3 +1574,3 @@ Features: p->drawPixmap(x, y, orient == Qt::Horizontal ? *getPixmap(HSlider)->mask() : -@@ -2065,203 +2087,26 @@ +@@ -2065,203 +1980,26 @@ p->drawLineSegments(a); @@ -948,3 +1596,3 @@ Features: - - +- - @@ -965,5 +1613,3 @@ Features: - const QColorGroup &g, bool mac, QBrush *) -+void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, -+ QMenuItem *mi, QColorGroup &g, bool /*enabled*/, bool active ) - { +-{ - if(p->device() && p->device()->devType() == QInternal::Widget && @@ -991,6 +1637,8 @@ Features: -} -- + -void LiquidStyle::drawKToolBar(QPainter *p, int x, int y, int w, int h, - const QColorGroup &g, KToolBarPos, QBrush *) --{ ++void LiquidStyle::drawMenuBarItem(QPainter *p, int x, int y, int w, int h, ++ QMenuItem *mi, QColorGroup &g, bool /*enabled*/, bool active ) + { - //p->fillRect(x, y, w, h, g.brush(QColorGroup::Background)); @@ -1120,4 +1768,4 @@ Features: -} - - + -void LiquidStyle::drawKMenuItem(QPainter *p, int x, int y, int w, int h, @@ -1142,3 +1790,3 @@ Features: else -@@ -2300,8 +2145,8 @@ +@@ -2300,8 +2038,8 @@ } @@ -1153,3 +1801,3 @@ Features: switch(menuHandler->transType()){ -@@ -2336,8 +2181,6 @@ +@@ -2336,8 +2074,6 @@ @@ -1162,3 +1810,3 @@ Features: QColorGroup itemg = dis ? pal.disabled() : pal.active(); -@@ -2363,7 +2206,7 @@ +@@ -2363,7 +2099,7 @@ p->fillRect(x, y, w, h, menuBrush); @@ -1171,3 +1819,3 @@ Features: } -@@ -2508,25 +2351,6 @@ +@@ -2508,25 +2244,6 @@ return h; @@ -1197,3 +1845,8 @@ Features: const QColorGroup &g, const QColor *c, -@@ -2540,25 +2364,25 @@ +@@ -2536,29 +2253,29 @@ + if(p->device()->devType() == QInternal::Widget){ + // if so does it use a special focus rectangle? + QWidget *w = (QWidget *)p->device(); +- if(w->inherits("QPushButton") || w->inherits("QSlider")){ ++ if(w->inherits("QPushButton") || w->inherits("QSlider") || w->inherits("QComboBox") || w->inherits("QToolButton" )){ return; @@ -1227,3 +1880,3 @@ Features: QPixmap tilePix; -@@ -2671,7 +2495,7 @@ +@@ -2671,7 +2388,7 @@ vFrame = 8; // was 10 @@ -1236,3 +1889,3 @@ Features: -@@ -2699,7 +2523,7 @@ +@@ -2699,7 +2416,7 @@ p->drawLine(x+1, y+1, x+1, y2-1); @@ -1245,3 +1898,3 @@ Features: int x2 = x+w-1; -@@ -2726,105 +2550,6 @@ +@@ -2726,105 +2443,6 @@ } @@ -1351,6 +2004,16 @@ Features: { -@@ -2998,22 +2723,22 @@ - customBtnIconList.clear(); - customBtnLabelList.clear(); +@@ -2988,110 +2606,5 @@ + } + } +-// I'm debating if to use QValueList or QList here. I like QValueList better, +-// but QList handles pointers which is good for a lot of empty icons... +- +-void LiquidStyle::loadCustomButtons() +-{ +- return; // TODO +- customBtnColorList.clear(); +- customBtnIconList.clear(); +- customBtnLabelList.clear(); +- - KConfig *config = KGlobal::config(); @@ -1358,9 +2021,6 @@ Features: - config->setGroup("MosfetButtons"); -+// KConfig *config = KGlobal::config(); -+// QString oldGrp = config->group(); -+// config->setGroup("MosfetButtons"); - - QStrList iconList, colorList; //temp, we store QPixmaps and QColors - iconList.setAutoDelete(true); - colorList.setAutoDelete(true); +- +- QStrList iconList, colorList; //temp, we store QPixmaps and QColors +- iconList.setAutoDelete(true); +- colorList.setAutoDelete(true); - config->readListEntry("Labels", customBtnLabelList); @@ -1368,44 +2028,92 @@ Features: - config->readListEntry("Colors", colorList); -+// config->readListEntry("Labels", customBtnLabelList); -+// config->readListEntry("Icons", iconList); -+// config->readListEntry("Colors", colorList); - - const char *labelStr = customBtnLabelList.first(); - const char *colorStr = colorList.first(); - const char *iconStr = iconList.first(); - +- +- const char *labelStr = customBtnLabelList.first(); +- const char *colorStr = colorList.first(); +- const char *iconStr = iconList.first(); +- - KIconLoader *ldr = KGlobal::iconLoader(); -+// KIconLoader *ldr = KGlobal::iconLoader(); - while(labelStr != NULL){ - QColor *c = new QColor; - c->setNamedColor(QString(colorStr)); -@@ -3022,7 +2747,7 @@ - QString tmpStr(iconStr); - if(!tmpStr.isEmpty()){ - QPixmap *pixmap = +- while(labelStr != NULL){ +- QColor *c = new QColor; +- c->setNamedColor(QString(colorStr)); +- customBtnColorList.append(c); +- +- QString tmpStr(iconStr); +- if(!tmpStr.isEmpty()){ +- QPixmap *pixmap = - new QPixmap(ldr->loadIcon(tmpStr, KIcon::Small)); -+ new QPixmap();//ldr->loadIcon(tmpStr, KIcon::Small)); - if(pixmap->isNull()){ - delete pixmap; - customBtnIconList.append(NULL); -@@ -3037,7 +2762,6 @@ - colorStr = colorList.next(); - iconStr = iconList.next(); - } +- if(pixmap->isNull()){ +- delete pixmap; +- customBtnIconList.append(NULL); +- } +- else +- customBtnIconList.append(pixmap); +- } +- else +- customBtnIconList.append(NULL); +- +- labelStr = customBtnLabelList.next(); +- colorStr = colorList.next(); +- iconStr = iconList.next(); +- } - config->setGroup(oldGrp); - } - - void LiquidStyle::applyCustomAttributes(QPushButton *btn) -@@ -3087,7 +2811,7 @@ - } - } - +-} +- +-void LiquidStyle::applyCustomAttributes(QPushButton *btn) +-{ +- return; // TODO +- QString str = btn->text(); +- if(str.isEmpty()) +- return; +- while(str.contains('&') != 0) +- str = str.remove(str.find('&'), 1); +- +- const char *s; +- int idx = 0; +- for(s = customBtnLabelList.first(); s != NULL; +- ++idx, s = customBtnLabelList.next()){ +- if(qstricmp(s, str.latin1()) == 0){ +- QPalette pal = btn->palette(); +- pal.setColor(QColorGroup::Button, +- *customBtnColorList.at(idx)); +- btn->setPalette(pal); +- /* +- if(customBtnIconList.at(idx) != NULL){ +- QPixmap *pix = customBtnIconList.at(idx); +- btn->setIconSet(QIconSet(*pix)); +- }*/ +- break; +- } +- } +-} +- +-void LiquidStyle::unapplyCustomAttributes(QPushButton *btn) +-{ +- return; // TODO +- QString str = btn->text(); +- if(str.isEmpty()) +- return; +- while(str.contains('&') != 0) +- str = str.remove(str.find('&'), 1); +- +- const char *s; +- for(s = customBtnLabelList.first(); s != NULL; s = customBtnLabelList.next()){ +- if(qstricmp(s, str.latin1()) == 0){ +- btn->setPalette(QApplication::palette()); +- btn->setIconSet(QIconSet()); +- break; +- } +- } +-} +- -#include "liquid.moc" -+// #include "liquid.moc" - - +- +- +- +- +- ---- - 2002-10-24 03:19:31.000000000 +0200 -+++ plugin.cpp 2002-10-04 03:37:38.000000000 +0200 -@@ -1,29 +1,84 @@ + /* vim: set noet sw=8 ts=8: */ +--- - 2002-11-18 04:47:41.000000000 +0100 ++++ plugin.cpp 2002-11-18 03:54:56.000000000 +0100 +@@ -1,29 +1,79 @@ +#include <qapplication.h> @@ -1423,24 +2131,37 @@ Features: +} -+ + +-extern "C" { +- KStyle* allocate(); +- int minor_version(); +- int major_version(); +- const char *description(); +LiquidInterface::~LiquidInterface ( ) +{ -+} -+ + } + +-KStyle* allocate() +QStyle *LiquidInterface::style ( ) -+{ + { +- return(new LiquidStyle); + return new LiquidStyle ( ); -+} -+ + } + +-int minor_version() +QString LiquidInterface::name ( ) const -+{ + { +- return(0); + return qApp-> translate ( "Styles", "Liquid" ); -+} -+ + } + +-int major_version() +QString LiquidInterface::description ( ) const -+{ + { +- return(1); + return qApp-> translate ( "Styles", "High Performance Liquid style by Mosfet" ); -+} -+ + } + +-const char *description() +bool LiquidInterface::hasSettings ( ) const -+{ + { +- return(i18n("High performance liquid plugin").utf8()); + return true; @@ -1451,15 +2172,8 @@ Features: + m_widget = new LiquidSettings ( parent, name ? name : "LIQUID-SETTINGS" ); - --extern "C" { -- KStyle* allocate(); -- int minor_version(); -- int major_version(); -- const char *description(); ++ + return m_widget; - } - --KStyle* allocate() ++} ++ +bool LiquidInterface::accept ( ) - { -- return(new LiquidStyle); ++{ + if ( !m_widget ) @@ -1469,14 +2183,10 @@ Features: } - --int minor_version() ++ +void LiquidInterface::reject ( ) - { -- return(0); - } - --int major_version() ++{ ++} ++ + +QRESULT LiquidInterface::queryInterface ( const QUuid &uuid, QUnknownInterface **iface ) - { -- return(1); ++{ + *iface = 0; @@ -1494,15 +2204,8 @@ Features: + return QS_OK; - } - --const char *description() ++} ++ +Q_EXPORT_INTERFACE() - { -- return(i18n("High performance liquid plugin").utf8()); ++{ + Q_CREATE_INSTANCE( LiquidInterface ) - } -+ -+ -+ ++} + -+// Hack for Retail Z experiments -+extern "C" { QStyle *allocate ( ) { return new LiquidStyle ( ); } } diff --git a/noncore/styles/liquid/plugin.cpp b/noncore/styles/liquid/plugin.cpp index 0740420..6813fc5 100644 --- a/noncore/styles/liquid/plugin.cpp +++ b/noncore/styles/liquid/plugin.cpp @@ -79,6 +79 @@ Q_EXPORT_INTERFACE() - - - -// Hack for Retail Z experiments -extern "C" { QStyle *allocate ( ) { return new LiquidStyle ( ); } } |