-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 19 | ||||
-rw-r--r-- | noncore/styles/liquid/liquiddeco.cpp | 18 | ||||
-rw-r--r-- | noncore/styles/liquid/settings/liquidset.cpp | 55 | ||||
-rw-r--r-- | noncore/styles/liquid/settings/liquidset.h | 3 |
4 files changed, 69 insertions, 26 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index 313d52c..acf0a42 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp @@ -65,33 +65,33 @@ void TransMenuHandler::stripePixmap(QPixmap &pix, const QColor &color) } pix.convertFromImage(img); } TransMenuHandler::TransMenuHandler(QObject *parent) : QObject(parent) { pixDict.setAutoDelete(true); reloadSettings(); } void TransMenuHandler::reloadSettings() { pixDict.clear(); Config config ( "qpe" ); - config. setGroup ( "MosfetMenus" ); + config. setGroup ( "Liquid-Style" ); type = config. readNumEntry("Type", TransStippleBg); color = QColor ( config. readEntry("Color", QApplication::palette().active().button().name())); fgColor = QColor ( config. readEntry("TextColor", QApplication::palette().active().text().name())); opacity = config. readNumEntry("Opacity", 10); if ( opacity < -20 ) opacity = 20; else if ( opacity > 20 ) opacity = 20; shadowText = config. readBoolEntry("ShadowText", true); } bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) { QWidget *p = (QWidget *)obj; @@ -697,32 +697,39 @@ void LiquidStyle::polish(QPalette &appPal) QWidget *w; while ((w=it.current()) != 0 ){ ++it; if(w->inherits("QPushButton")){ unapplyCustomAttributes((QPushButton *)w); } } loadCustomButtons(); lowLightVal = 100 + (2* /*KGlobalSettings::contrast()*/ 3 +4)*10; btnDict.clear(); btnBorderDict.clear(); bevelFillDict.clear(); smallBevelFillDict.clear(); Config config ( "qpe" ); + config. setGroup ( "Liquid-Style" ); + int contrast = config. readNumEntry ( "StippleContrast", 5 ); + if ( contrast < 0 ) + contrast = 0; + else if ( contrast > 10 ) + contrast = 10; + QPalette pal = QApplication::palette(); // button color stuff config. setGroup ( "Appearance" ); QColor c = QColor ( config. readEntry("Button", ( Qt::lightGray ). name ( ))); if ( c == QColor ( config. readEntry ( "background", ( Qt::lightGray ). name ( )))) { // force button color to be different from background QBrush btnBrush(QColor(200, 202, 228)); appPal.setBrush(QColorGroup::Button, btnBrush); } c.hsv(&btnH, &btnS, &btnV); c.light(120).hsv(&btnHoverH, &btnHoverS, &btnHoverV); // menu pixmap if(!menuPix){ menuPix = new QPixmap; @@ -768,35 +775,35 @@ void LiquidStyle::polish(QPalette &appPal) // background color stuff c = QColor ( config. readEntry ( "Background", ( Qt::lightGray ).name ( ))); c.hsv(&bH, &bS, &bV); c.light(120).hsv(&bHoverH, &bHoverS, &bHoverV); // FIXME? if(vsbSliderFillPix) delete vsbSliderFillPix; vsbSliderFillPix = new QPixmap(bevelFillPix->xForm(rMatrix)); adjustHSV(*vsbSliderFillPix, bH, bS, bV); // background brush QPixmap wallPaper(32, 32); wallPaper.fill(c.rgb()); painter.begin(&wallPaper); for(i=0; i < 32; i+=4){ - painter.setPen(c.dark(105)); + painter.setPen(c.dark(100 + contrast)); painter.drawLine(0, i, 32, i); - painter.setPen(c.dark(103)); + painter.setPen(c.dark(100 + 3 * contrast / 5 ) ); painter.drawLine(0, i+1, 32, i+1); }; painter.end(); bgBrush.setColor(c); bgBrush.setPixmap(wallPaper); appPal.setBrush(QColorGroup::Background, bgBrush); // lineedits c = QColor ( config. readEntry("Base", ( Qt::white). name ( ))); 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); @@ -976,33 +983,37 @@ void LiquidStyle::unPolish(QWidget *w) } } void LiquidStyle::polish(QApplication *app) { QWindowsStyle::polish(app); menuAni = app->isEffectEnabled(UI_AnimateMenu); menuFade = app->isEffectEnabled(UI_FadeMenu); if(menuAni) app->setEffectEnabled(UI_AnimateMenu, false); if(menuFade) app->setEffectEnabled(UI_FadeMenu, false); qt_set_draw_menu_bar_impl((QDrawMenuBarItemImpl) &LiquidStyle::drawMenuBarItem); - QApplication::qwsSetDecoration ( new LiquidDecoration ( )); + Config config ( "qpe" ); + config. setGroup ( "Liquid-Style" ); + + if ( config. readBoolEntry ( "WinDecoration", true )) + QApplication::qwsSetDecoration ( new LiquidDecoration ( )); } void LiquidStyle::unPolish(QApplication *app) { QWindowsStyle::unPolish(app); app->setEffectEnabled(UI_AnimateMenu, menuAni); app->setEffectEnabled(UI_FadeMenu, menuFade); qt_set_draw_menu_bar_impl ( 0 ); QApplication::qwsSetDecoration ( new QPEDecoration ( )); } /* * This is a fun method ;-) Here's an overview. KToolBar grabs resize to * force everything to erase and repaint on resize. This is going away, I'm diff --git a/noncore/styles/liquid/liquiddeco.cpp b/noncore/styles/liquid/liquiddeco.cpp index 8eee1b1..5488c67 100644 --- a/noncore/styles/liquid/liquiddeco.cpp +++ b/noncore/styles/liquid/liquiddeco.cpp @@ -85,59 +85,53 @@ void LiquidDecoration::paint( QPainter *painter, const QWidget *widget ) QRegion oldClip = painter->clipRegion(); painter->setClipRegion( oldClip - QRegion( tr ) ); // reduce flicker bool isActive = ( widget == qApp->activeWindow() ); QColorGroup cg = QApplication::palette().active(); if ( isActive ) cg. setBrush ( QColorGroup::Button, cg. brush ( QColorGroup::Highlight ) ); qDrawWinPanel( painter, br.x(), br.y(), br.width(), br.height() - 4, cg, FALSE, &cg.brush( QColorGroup::Background ) ); painter->setClipRegion( oldClip ); if ( titleWidth > 0 ) { - QBrush titleBrush; - QPen titlePen; - QPen titleLines; - int titleLeft = titleHeight + 4; - - titleLeft = rect.left() + 5; painter->setPen( cg.midlight() ); painter->drawLine( rect.left() - BORDER_WIDTH + 2, rect.bottom() + 1, rect.right() + BORDER_WIDTH - 2, rect.bottom() + 1 ); QRect t ( rect.left() - 2, rect.top() - titleHeight - 2, rect.width() + 3, titleHeight + 2 ); QApplication::style().drawBevelButton( painter, t.x(), t.y(), t.width(), t.height(), cg, isActive ); - t.setLeft( t.left() + 4 ); - t.setRight( t.right() - 2 ); + t .setLeft ( t. left ( ) + 4 ); + t .setRight ( t. right ( ) - 2 ); - QFont f( QApplication::font() ); - f.setWeight( QFont::Bold ); + QFont f ( QApplication::font ( )); + f. setWeight ( QFont::Bold ); - painter-> setFont( f ); + painter-> setFont ( f ); QColor textcol = cg.color( isActive ? QColorGroup::HighlightedText : QColorGroup::Text ); - QColor shadecol = ( qGray ( textcol. rgb ( ) ) > 128 ) ? textcol. dark ( 130 ) : textcol.light( 200 ); + QColor shadecol = ( qGray ( textcol. rgb ( ) ) > 128 ) ? textcol. dark ( 230 ) : textcol.light( 300 ); if ( textcol == shadecol ) { if ( qGray ( shadecol. rgb ( ) ) < 128 ) shadecol = QColor ( 225, 225, 225 ); else shadecol = QColor ( 30, 30, 30 ); } painter-> setPen( shadecol ); painter-> drawText( t.x() + 1, t.y() + 1, t.width(), t.height(), Qt::AlignLeft | Qt::AlignVCenter | Qt::SingleLine, widget->caption() ); painter-> setPen( textcol ); painter-> drawText( t.x(), t.y(), t.width(), t.height(), Qt::AlignLeft | Qt::AlignVCenter | Qt::SingleLine, widget->caption() ); } #ifndef MINIMIZE_HELP_HACK paintButton( painter, widget, ( QWSDecoration::Region ) Help, 0 ); diff --git a/noncore/styles/liquid/settings/liquidset.cpp b/noncore/styles/liquid/settings/liquidset.cpp index 0ef5dbe..1479ac0 100644 --- a/noncore/styles/liquid/settings/liquidset.cpp +++ b/noncore/styles/liquid/settings/liquidset.cpp @@ -31,53 +31,60 @@ #include <qbuttongroup.h> #include <qradiobutton.h> #include <qcheckbox.h> #include <qlabel.h> #include <qlayout.h> #include <qpalette.h> #include <qpe/config.h> #include <opie/colorpopupmenu.h> static void changeButtonColor ( QWidget *btn, const QColor &col ) { QPalette pal = btn-> palette ( ); + pal. setColor ( QPalette::Normal, QColorGroup::Button, col ); pal. setColor ( QPalette::Active, QColorGroup::Button, col ); pal. setColor ( QPalette::Disabled, QColorGroup::Button, col ); pal. setColor ( QPalette::Inactive, QColorGroup::Button, col ); + pal. setColor ( QPalette::Normal, QColorGroup::Background, col ); + pal. setColor ( QPalette::Active, QColorGroup::Background, col ); + pal. setColor ( QPalette::Disabled, QColorGroup::Background, col ); + pal. setColor ( QPalette::Inactive, QColorGroup::Background, col ); btn-> setPalette ( pal ); } LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl ) : QDialog ( parent, name, fl ) { setCaption ( tr( "Liquid Style" ) ); Config config ( "qpe" ); - config. setGroup ( "MosfetMenus" ); + config. setGroup ( "Liquid-Style" ); - m_type = config. readNumEntry ( "Type", TransStippleBg ); - m_menucol = QColor ( config. readEntry ( "Color", QApplication::palette ( ). active ( ). button ( ). name ( ))); - m_textcol = QColor ( config. readEntry ( "TextColor", QApplication::palette ( ). active ( ). text ( ). name ( ))); - int opacity = config. readNumEntry ( "Opacity", 10 ); - m_shadow = config. readBoolEntry ( "ShadowText", true ); + m_type = config. readNumEntry ( "Type", TransStippleBg ); + m_menucol = QColor ( config. readEntry ( "Color", QApplication::palette ( ). active ( ). button ( ). name ( ))); + m_textcol = QColor ( config. readEntry ( "TextColor", QApplication::palette ( ). active ( ). text ( ). name ( ))); + int opacity = config. readNumEntry ( "Opacity", 10 ); + m_shadow = config. readBoolEntry ( "ShadowText", true ); + m_deco = config. readBoolEntry ( "WinDecoration", true ); + int contrast = config. readNumEntry ( "StippleContrast", 5 ); QVBoxLayout *vbox = new QVBoxLayout ( this ); vbox-> setSpacing ( 3 ); vbox-> setMargin ( 6 ); QButtonGroup *btngrp = new QButtonGroup ( this ); btngrp-> hide ( ); QRadioButton *rad; rad = new QRadioButton ( tr( "No translucency" ), this ); btngrp-> insert ( rad, None ); vbox-> addWidget ( rad ); rad = new QRadioButton ( tr( "Stippled, background color" ), this ); btngrp-> insert ( rad, StippledBg ); @@ -125,75 +132,103 @@ LiquidSet::LiquidSet ( QWidget* parent, const char *name, WFlags fl ) grid-> addWidget ( m_textbtn, 0, 5 ); popup = new ColorPopupMenu ( m_textcol, this ); m_textbtn-> setPopup ( popup ); m_textbtn-> setPopupDelay ( 0 ); connect ( popup, SIGNAL( colorSelected ( const QColor & )), this, SLOT( changeTextColor ( const QColor & ))); changeTextColor ( m_textcol ); m_opacsld = new QSlider ( Horizontal, this ); m_opacsld-> setRange ( -20, 20 ); m_opacsld-> setValue ( opacity ); m_opacsld-> setTickmarks ( QSlider::Below ); grid-> addMultiCellWidget ( m_opacsld, 1, 1, 2, 5 ); vbox-> addSpacing ( 4 ); - QCheckBox *shadow = new QCheckBox ( tr( "Use shadowed text" ), this ); + QCheckBox *shadow = new QCheckBox ( tr( "Use shadowed menu text" ), this ); shadow-> setChecked ( m_shadow ); vbox-> addWidget ( shadow ); + vbox-> addSpacing ( 4 ); + + QCheckBox *windeco = new QCheckBox ( tr( "Draw liquid window title bars" ), this ); + windeco-> setChecked ( m_deco ); + vbox-> addWidget ( windeco ); + + vbox-> addSpacing ( 4 ); + + QHBoxLayout *hbox = new QHBoxLayout ( vbox ); + + hbox-> addWidget ( new QLabel ( tr( "Stipple contrast" ), this )); + + m_contsld = new QSlider ( Horizontal, this ); + m_contsld-> setRange ( 0, 10 ); + m_contsld-> setValue ( contrast ); + m_contsld-> setTickmarks ( QSlider::Below ); + hbox-> addWidget ( m_contsld, 10 ); + vbox-> addStretch ( 10 ); + + changeType ( m_type ); connect ( btngrp, SIGNAL( clicked ( int ) ), this, SLOT( changeType ( int ) ) ); connect ( shadow, SIGNAL( toggled ( bool ) ), this, SLOT( changeShadow ( bool ) ) ); + connect ( windeco, SIGNAL( toggled ( bool ) ), this, SLOT( changeDeco ( bool ) ) ); } void LiquidSet::changeType ( int t ) { bool custom = ( t == Custom ); m_menulbl-> setEnabled ( custom ); m_textlbl-> setEnabled ( custom ); m_opaclbl-> setEnabled ( custom ); m_menubtn-> setEnabled ( custom ); m_textbtn-> setEnabled ( custom ); m_opacsld-> setEnabled ( custom ); m_type = t; } void LiquidSet::changeMenuColor ( const QColor &col ) { - m_menubtn-> setPalette ( col ); + changeButtonColor ( m_menubtn, col ); m_menucol = col; } void LiquidSet::changeTextColor ( const QColor &col ) { - m_textbtn-> setPalette ( col ); + changeButtonColor ( m_textbtn, col ); m_textcol = col; } void LiquidSet::changeShadow ( bool b ) { m_shadow = b; } +void LiquidSet::changeDeco ( bool b ) +{ + m_deco = b; +} + void LiquidSet::accept ( ) { Config config ( "qpe" ); - config. setGroup ( "MosfetMenus" ); + config. setGroup ( "Liquid-Style" ); config. writeEntry ( "Type", m_type ); config. writeEntry ( "Color", m_menucol. name ( )); config. writeEntry ( "TextColor", m_textcol. name ( )); config. writeEntry ( "Opacity", m_opacsld-> value ( )); config. writeEntry ( "ShadowText", m_shadow ); + config. writeEntry ( "WinDecoration", m_deco ); + config. writeEntry ( "StippleContrast", m_contsld-> value ( )); config. write ( ); Global::applyStyle ( ); QDialog::accept ( ); } diff --git a/noncore/styles/liquid/settings/liquidset.h b/noncore/styles/liquid/settings/liquidset.h index 944b1ec..a0f590a 100644 --- a/noncore/styles/liquid/settings/liquidset.h +++ b/noncore/styles/liquid/settings/liquidset.h @@ -6,34 +6,37 @@ class QLabel; class QToolButton; class QSlider; class LiquidSet : public QDialog { Q_OBJECT public: LiquidSet ( QWidget *parent = 0, const char *name = 0, WFlags fl = 0 ); public slots: void changeType ( int t ); void changeMenuColor ( const QColor &col ); void changeTextColor ( const QColor &col ); void changeShadow ( bool b ); + void changeDeco ( bool b ); protected: virtual void accept ( ); private: QColor m_menucol; QColor m_textcol; int m_type; bool m_shadow; + bool m_deco; QSlider * m_opacsld; + QSlider * m_contsld; QLabel * m_menulbl; QLabel * m_textlbl; QLabel * m_opaclbl; QToolButton *m_menubtn; QToolButton *m_textbtn; }; #endif |