author | mickeyl <mickeyl> | 2004-04-04 13:54:40 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-04-04 13:54:40 (UTC) |
commit | 16cf79e90b5217f8d4bfce2a0fa817ae4b73db36 (patch) (unidiff) | |
tree | 0701eae15aa606a0211a2fccfde0eafdac69357c /noncore/styles/liquid/liquid.cpp | |
parent | 8d2d2664e5f544b8292806e617deb7a0e4170dc0 (diff) | |
download | opie-16cf79e90b5217f8d4bfce2a0fa817ae4b73db36.zip opie-16cf79e90b5217f8d4bfce2a0fa817ae4b73db36.tar.gz opie-16cf79e90b5217f8d4bfce2a0fa817ae4b73db36.tar.bz2 |
convert to Opie Debugging Framework
Diffstat (limited to 'noncore/styles/liquid/liquid.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index bac882c..51814e7 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp | |||
@@ -1,68 +1,73 @@ | |||
1 | /*- | 1 | /*- |
2 | * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved. | 2 | * Copyright (C)QPL 2001 Daniel M. Duley. All rights reserved. |
3 | */ | 3 | */ |
4 | 4 | ||
5 | // | 5 | // |
6 | // (c) 2002 Robert 'sandman' Griebl | 6 | // (c) 2002 Robert 'sandman' Griebl |
7 | // | 7 | // |
8 | 8 | ||
9 | 9 | ||
10 | #ifndef INCLUDE_MENUITEM_DEF | 10 | #ifndef INCLUDE_MENUITEM_DEF |
11 | #define INCLUDE_MENUITEM_DEF | 11 | #define INCLUDE_MENUITEM_DEF |
12 | #endif | 12 | #endif |
13 | 13 | ||
14 | #include <qmenudata.h> | ||
15 | #include "liquid.h" | 14 | #include "liquid.h" |
16 | //#include "liquiddeco.h" | 15 | #include "effects.h" |
17 | #include <qapplication.h> | 16 | #include "htmlmasks.h" |
17 | #include "embeddata.h" | ||
18 | |||
19 | /* OPIE */ | ||
20 | #include <opie2/odebug.h> | ||
18 | #include <qpe/config.h> | 21 | #include <qpe/config.h> |
19 | #include "effects.h" | 22 | using namespace Opie::Core; |
23 | |||
24 | /* QT */ | ||
25 | #include <qmenudata.h> | ||
26 | #include <qapplication.h> | ||
20 | #include <qpalette.h> | 27 | #include <qpalette.h> |
21 | #include <qbitmap.h> | 28 | #include <qbitmap.h> |
22 | #include <qtabbar.h> | 29 | #include <qtabbar.h> |
23 | #include <qpopupmenu.h> | 30 | #include <qpopupmenu.h> |
24 | #include <qobjectlist.h> | 31 | #include <qobjectlist.h> |
25 | #include <qimage.h> | 32 | #include <qimage.h> |
26 | #include <qtimer.h> | 33 | #include <qtimer.h> |
27 | #include <qpixmapcache.h> | 34 | #include <qpixmapcache.h> |
28 | #include <qradiobutton.h> | 35 | #include <qradiobutton.h> |
29 | #include <qcombobox.h> | 36 | #include <qcombobox.h> |
30 | #include <qdrawutil.h> | 37 | #include <qdrawutil.h> |
31 | #include <qwidgetlist.h> | 38 | #include <qwidgetlist.h> |
32 | #include <qtoolbutton.h> | 39 | #include <qtoolbutton.h> |
33 | #include <qheader.h> | 40 | #include <qheader.h> |
34 | #include <unistd.h> | ||
35 | #include <qmenubar.h> | 41 | #include <qmenubar.h> |
36 | #include <qprogressbar.h> | 42 | #include <qprogressbar.h> |
37 | #include <qlineedit.h> | 43 | #include <qlineedit.h> |
38 | #include <qlistbox.h> | 44 | #include <qlistbox.h> |
39 | 45 | ||
46 | /* STD */ | ||
47 | #include <unistd.h> | ||
40 | #include <stdio.h> | 48 | #include <stdio.h> |
41 | 49 | ||
42 | #include "htmlmasks.h" | ||
43 | #include "embeddata.h" | ||
44 | |||
45 | 50 | ||
46 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, | 51 | typedef void (QStyle::*QDrawMenuBarItemImpl) (QPainter *, int, int, int, int, QMenuItem *, |
47 | QColorGroup &, bool, bool); | 52 | QColorGroup &, bool, bool); |
48 | 53 | ||
49 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); | 54 | QDrawMenuBarItemImpl qt_set_draw_menu_bar_impl(QDrawMenuBarItemImpl impl); |
50 | 55 | ||
51 | void TransMenuHandler::stripePixmap(QPixmap &pix, const QColor &color) | 56 | void TransMenuHandler::stripePixmap(QPixmap &pix, const QColor &color) |
52 | { | 57 | { |
53 | QImage img(pix.convertToImage()); | 58 | QImage img(pix.convertToImage()); |
54 | QImageEffect::fade(img, 0.9, color); | 59 | QImageEffect::fade(img, 0.9, color); |
55 | int x, y; | 60 | int x, y; |
56 | int r, g, b; | 61 | int r, g, b; |
57 | for(y=0; y < img.height(); y+=3){ | 62 | for(y=0; y < img.height(); y+=3){ |
58 | unsigned int *data = (unsigned int *) img.scanLine(y); | 63 | unsigned int *data = (unsigned int *) img.scanLine(y); |
59 | for(x=0; x < img.width(); ++x){ | 64 | for(x=0; x < img.width(); ++x){ |
60 | r = qRed(data[x]); | 65 | r = qRed(data[x]); |
61 | g = qGreen(data[x]); | 66 | g = qGreen(data[x]); |
62 | b = qBlue(data[x]); | 67 | b = qBlue(data[x]); |
63 | if(r-10) | 68 | if(r-10) |
64 | r-=10; | 69 | r-=10; |
65 | if(g-10) | 70 | if(g-10) |
66 | g-=10; | 71 | g-=10; |
67 | if(b-10) | 72 | if(b-10) |
68 | b-=10; | 73 | b-=10; |
@@ -128,49 +133,49 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) | |||
128 | stripePixmap(*pix, p->colorGroup().button()); | 133 | stripePixmap(*pix, p->colorGroup().button()); |
129 | } | 134 | } |
130 | else{ | 135 | else{ |
131 | QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color); | 136 | QPixmapEffect::fade(*pix, (((float)opacity)+80)*0.01, color); |
132 | } | 137 | } |
133 | 138 | ||
134 | pixDict.insert(p->winId(), pix); | 139 | pixDict.insert(p->winId(), pix); |
135 | 140 | ||
136 | if ( !p->inherits("QPopupMenu")) | 141 | if ( !p->inherits("QPopupMenu")) |
137 | p->setBackgroundPixmap(*pix); | 142 | p->setBackgroundPixmap(*pix); |
138 | 143 | ||
139 | QObjectList *ol = p-> queryList("QWidget"); | 144 | QObjectList *ol = p-> queryList("QWidget"); |
140 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 145 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
141 | QWidget *wid = (QWidget *) it.current ( ); | 146 | QWidget *wid = (QWidget *) it.current ( ); |
142 | 147 | ||
143 | wid-> setBackgroundPixmap(*pix); | 148 | wid-> setBackgroundPixmap(*pix); |
144 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); | 149 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); |
145 | } | 150 | } |
146 | delete ol; | 151 | delete ol; |
147 | } | 152 | } |
148 | } | 153 | } |
149 | else if(ev->type() == QEvent::Hide){ | 154 | else if(ev->type() == QEvent::Hide){ |
150 | if(type == TransStippleBg || type == TransStippleBtn || | 155 | if(type == TransStippleBg || type == TransStippleBtn || |
151 | type == Custom){ | 156 | type == Custom){ |
152 | // qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); | 157 | // owarn << "Deleting menu pixmap, width " << pixDict.find(p->winId())->width() << "" << oendl; |
153 | 158 | ||
154 | pixDict.remove(p->winId()); | 159 | pixDict.remove(p->winId()); |
155 | if ( !p->inherits("QPopupMenu")) | 160 | if ( !p->inherits("QPopupMenu")) |
156 | p->setBackgroundMode(QWidget::PaletteBackground); | 161 | p->setBackgroundMode(QWidget::PaletteBackground); |
157 | 162 | ||
158 | QObjectList *ol = p-> queryList("QWidget"); | 163 | QObjectList *ol = p-> queryList("QWidget"); |
159 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 164 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
160 | QWidget *wid = (QWidget *) it.current ( ); | 165 | QWidget *wid = (QWidget *) it.current ( ); |
161 | 166 | ||
162 | wid-> setBackgroundMode( QWidget::PaletteBackground ); | 167 | wid-> setBackgroundMode( QWidget::PaletteBackground ); |
163 | } | 168 | } |
164 | delete ol; | 169 | delete ol; |
165 | } | 170 | } |
166 | } | 171 | } |
167 | return(false); | 172 | return(false); |
168 | } | 173 | } |
169 | 174 | ||
170 | 175 | ||
171 | 176 | ||
172 | 177 | ||
173 | LiquidStyle::LiquidStyle() | 178 | LiquidStyle::LiquidStyle() |
174 | :QWindowsStyle() | 179 | :QWindowsStyle() |
175 | { | 180 | { |
176 | setName ( "LiquidStyle" ); | 181 | setName ( "LiquidStyle" ); |
@@ -473,49 +478,49 @@ void LiquidStyle::drawRoundButton(QPainter *painter, const QColor &c, | |||
473 | /*if(autoDefault){ | 478 | /*if(autoDefault){ |
474 | if(supportPushDown && pushedDown){ | 479 | if(supportPushDown && pushedDown){ |
475 | painter->drawPixmap(x+3, y+3, tmpPix); | 480 | painter->drawPixmap(x+3, y+3, tmpPix); |
476 | } | 481 | } |
477 | else{ | 482 | else{ |
478 | painter->drawPixmap(x+2, y+2, tmpPix); | 483 | painter->drawPixmap(x+2, y+2, tmpPix); |
479 | } | 484 | } |
480 | } | 485 | } |
481 | else */if(supportPushDown && pushedDown) | 486 | else */if(supportPushDown && pushedDown) |
482 | painter->drawPixmap(x+1, y+1, tmpPix); | 487 | painter->drawPixmap(x+1, y+1, tmpPix); |
483 | else | 488 | else |
484 | painter->drawPixmap(x, y, tmpPix); | 489 | painter->drawPixmap(x, y, tmpPix); |
485 | 490 | ||
486 | 491 | ||
487 | 492 | ||
488 | } | 493 | } |
489 | 494 | ||
490 | 495 | ||
491 | QPixmap* LiquidStyle::processEmbedded(const char *label, int h, int s, int v, | 496 | QPixmap* LiquidStyle::processEmbedded(const char *label, int h, int s, int v, |
492 | bool blend) | 497 | bool blend) |
493 | { | 498 | { |
494 | QImage img(qembed_findImage(label)); | 499 | QImage img(qembed_findImage(label)); |
495 | img.detach(); | 500 | img.detach(); |
496 | if(img.isNull()){ // shouldn't happen, been tested | 501 | if(img.isNull()){ // shouldn't happen, been tested |
497 | qWarning("Invalid embedded label %s", label); | 502 | owarn << "Invalid embedded label " << label << "" << oendl; |
498 | return(NULL); | 503 | return(NULL); |
499 | } | 504 | } |
500 | if(img.depth() != 32) | 505 | if(img.depth() != 32) |
501 | img = img.convertDepth(32); | 506 | img = img.convertDepth(32); |
502 | unsigned int *data = (unsigned int *)img.bits(); | 507 | unsigned int *data = (unsigned int *)img.bits(); |
503 | int total = img.width()*img.height(); | 508 | int total = img.width()*img.height(); |
504 | int current; | 509 | int current; |
505 | QColor c; | 510 | QColor c; |
506 | int oldH, oldS, oldV; | 511 | int oldH, oldS, oldV; |
507 | int alpha; | 512 | int alpha; |
508 | if(v < 235) | 513 | if(v < 235) |
509 | v += 20; | 514 | v += 20; |
510 | else | 515 | else |
511 | v = 255; | 516 | v = 255; |
512 | float intensity = v/255.0; | 517 | float intensity = v/255.0; |
513 | 518 | ||
514 | for(current=0; current<total; ++current){ | 519 | for(current=0; current<total; ++current){ |
515 | alpha = qAlpha(data[current]); | 520 | alpha = qAlpha(data[current]); |
516 | c.setRgb(data[current]); | 521 | c.setRgb(data[current]); |
517 | c.hsv(&oldH, &oldS, &oldV); | 522 | c.hsv(&oldH, &oldS, &oldV); |
518 | oldV = (int)(oldV*intensity); | 523 | oldV = (int)(oldV*intensity); |
519 | c.setHsv(h, s, oldV); | 524 | c.setHsv(h, s, oldV); |
520 | if(blend && alpha != 255 && alpha != 0){ | 525 | if(blend && alpha != 255 && alpha != 0){ |
521 | float srcPercent = ((float)alpha)/255.0; | 526 | float srcPercent = ((float)alpha)/255.0; |
@@ -839,49 +844,49 @@ void LiquidStyle::polish(QWidget *w) | |||
839 | return; | 844 | return; |
840 | } | 845 | } |
841 | } | 846 | } |
842 | if(w->inherits("QHeader")){ | 847 | if(w->inherits("QHeader")){ |
843 | w->setMouseTracking(true); | 848 | w->setMouseTracking(true); |
844 | w->installEventFilter(this); | 849 | w->installEventFilter(this); |
845 | } | 850 | } |
846 | if(w-> inherits("QToolButton")) { | 851 | if(w-> inherits("QToolButton")) { |
847 | if (w->parent()->inherits("QToolBar")) { | 852 | if (w->parent()->inherits("QToolBar")) { |
848 | ((QToolButton*)w)->setAutoRaise (flatTBButtons); | 853 | ((QToolButton*)w)->setAutoRaise (flatTBButtons); |
849 | if ( flatTBButtons ) | 854 | if ( flatTBButtons ) |
850 | w->setBackgroundOrigin(QWidget::ParentOrigin); | 855 | w->setBackgroundOrigin(QWidget::ParentOrigin); |
851 | } | 856 | } |
852 | w-> installEventFilter ( this ); | 857 | w-> installEventFilter ( this ); |
853 | } | 858 | } |
854 | if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { | 859 | if(w-> inherits("QToolBarSeparator")&&w->parent()->inherits("QToolBar")) { |
855 | ((QFrame *) w)-> setFrameShape ( QFrame::NoFrame ); | 860 | ((QFrame *) w)-> setFrameShape ( QFrame::NoFrame ); |
856 | } | 861 | } |
857 | if(w->ownPalette() && !w->inherits("QButton") && !w->inherits("QComboBox")){ | 862 | if(w->ownPalette() && !w->inherits("QButton") && !w->inherits("QComboBox")){ |
858 | return; | 863 | return; |
859 | } | 864 | } |
860 | 865 | ||
861 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> | 866 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> |
862 | palette().active().brush(QColorGroup::Background).pixmap()){ | 867 | palette().active().brush(QColorGroup::Background).pixmap()){ |
863 | qWarning("No parent pixmap for child widget %s", w->className()); | 868 | owarn << "No parent pixmap for child widget " << w->className() << "" << oendl; |
864 | return; | 869 | return; |
865 | } | 870 | } |
866 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && | 871 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && |
867 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { | 872 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { |
868 | if(w->backgroundMode() == QWidget::PaletteBackground || | 873 | if(w->backgroundMode() == QWidget::PaletteBackground || |
869 | w->backgroundMode() == QWidget::PaletteButton){ | 874 | w->backgroundMode() == QWidget::PaletteButton){ |
870 | w->setBackgroundMode(w->parentWidget()->backgroundMode( )/*QWidget::X11ParentRelative*/); | 875 | w->setBackgroundMode(w->parentWidget()->backgroundMode( )/*QWidget::X11ParentRelative*/); |
871 | w->setBackgroundOrigin(QWidget::ParentOrigin); | 876 | w->setBackgroundOrigin(QWidget::ParentOrigin); |
872 | // w->setBackgroundMode(QWidget::NoBackground); | 877 | // w->setBackgroundMode(QWidget::NoBackground); |
873 | } | 878 | } |
874 | } | 879 | } |
875 | if ( !w-> inherits("QFrame") || (((QFrame*) w)-> frameShape () == QFrame::NoFrame )) | 880 | if ( !w-> inherits("QFrame") || (((QFrame*) w)-> frameShape () == QFrame::NoFrame )) |
876 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); | 881 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); |
877 | else if ( w-> inherits("QFrame") ) | 882 | else if ( w-> inherits("QFrame") ) |
878 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); | 883 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); |
879 | 884 | ||
880 | if ( w->parentWidget()->inherits ( "QWidgetStack" )) { | 885 | if ( w->parentWidget()->inherits ( "QWidgetStack" )) { |
881 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); | 886 | w->setBackgroundOrigin ( QWidget::WidgetOrigin ); |
882 | } | 887 | } |
883 | } | 888 | } |
884 | 889 | ||
885 | void LiquidStyle::unPolish(QWidget *w) | 890 | void LiquidStyle::unPolish(QWidget *w) |
886 | { | 891 | { |
887 | if(w->inherits("QMenuBar")){ | 892 | if(w->inherits("QMenuBar")){ |