author | sandman <sandman> | 2002-06-29 23:58:09 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-06-29 23:58:09 (UTC) |
commit | 0235faab30f436ae3fbfed21e9f07486181bb0dd (patch) (unidiff) | |
tree | b930607e9d18c76b8efea1a1b93529cc6a799990 | |
parent | cb796c20c975cc5fe08a98d5ad90b6652fd3938d (diff) | |
download | opie-0235faab30f436ae3fbfed21e9f07486181bb0dd.zip opie-0235faab30f436ae3fbfed21e9f07486181bb0dd.tar.gz opie-0235faab30f436ae3fbfed21e9f07486181bb0dd.tar.bz2 |
Some fixes regarding transparency for all WType_Popup's
-rw-r--r-- | noncore/styles/liquid/liquid.cpp | 14 | ||||
-rw-r--r-- | noncore/styles/liquid/plugin.cpp | 2 |
2 files changed, 3 insertions, 13 deletions
diff --git a/noncore/styles/liquid/liquid.cpp b/noncore/styles/liquid/liquid.cpp index 4653639..2b6eaa4 100644 --- a/noncore/styles/liquid/liquid.cpp +++ b/noncore/styles/liquid/liquid.cpp | |||
@@ -131,73 +131,64 @@ bool TransMenuHandler::eventFilter(QObject *obj, QEvent *ev) | |||
131 | 131 | ||
132 | QObjectList *ol = p-> queryList("QWidget"); | 132 | QObjectList *ol = p-> queryList("QWidget"); |
133 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 133 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
134 | QWidget *wid = (QWidget *) it.current ( ); | 134 | QWidget *wid = (QWidget *) it.current ( ); |
135 | 135 | ||
136 | wid-> setBackgroundPixmap(*pix); | 136 | wid-> setBackgroundPixmap(*pix); |
137 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); | 137 | wid-> setBackgroundOrigin(QWidget::ParentOrigin); |
138 | } | 138 | } |
139 | delete ol; | 139 | delete ol; |
140 | } | 140 | } |
141 | } | 141 | } |
142 | } | 142 | } |
143 | else if(ev->type() == QEvent::Hide){ | 143 | else if(ev->type() == QEvent::Hide){ |
144 | if(type == TransStippleBg || type == TransStippleBtn || | 144 | if(type == TransStippleBg || type == TransStippleBtn || |
145 | type == Custom){ | 145 | type == Custom){ |
146 | // qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); | 146 | // qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); |
147 | 147 | ||
148 | if (p->inherits("QPopupMenu")) | 148 | if (p->inherits("QPopupMenu")) |
149 | pixDict.remove(p->winId()); | 149 | pixDict.remove(p->winId()); |
150 | else { | 150 | else { |
151 | p->setBackgroundMode(QWidget::PaletteBackground); | 151 | p->setBackgroundMode(QWidget::PaletteBackground); |
152 | 152 | ||
153 | QObjectList *ol = p-> queryList("QWidget"); | 153 | QObjectList *ol = p-> queryList("QWidget"); |
154 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { | 154 | for ( QObjectListIt it( *ol ); it. current ( ); ++it ) { |
155 | QWidget *wid = (QWidget *) it.current ( ); | 155 | QWidget *wid = (QWidget *) it.current ( ); |
156 | 156 | ||
157 | wid-> setBackgroundMode( QWidget::PaletteBackground ); | 157 | wid-> setBackgroundMode( QWidget::PaletteBackground ); |
158 | } | 158 | } |
159 | delete ol; | 159 | delete ol; |
160 | } | 160 | } |
161 | } | 161 | } |
162 | } | 162 | } |
163 | else if(ev->type() == QEvent::Paint){ | ||
164 | if(type == TransStippleBg || type == TransStippleBtn || | ||
165 | type == Custom){ | ||
166 | // qWarning("Deleting menu pixmap, width %d", pixDict.find(p->winId())->width()); | ||
167 | |||
168 | if (!p->inherits("QPopupMenu")) | ||
169 | p->erase(); | ||
170 | } | ||
171 | } | ||
172 | return(false); | 163 | return(false); |
173 | } | 164 | } |
174 | 165 | ||
175 | 166 | ||
176 | LiquidStyle::LiquidStyle() | 167 | LiquidStyle::LiquidStyle() |
177 | :QWindowsStyle() | 168 | :QWindowsStyle() |
178 | { | 169 | { |
179 | setName ( "LiquidStyle" ); | 170 | setName ( "LiquidStyle" ); |
180 | 171 | ||
181 | btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); | 172 | btnMaskBmp = QBitmap(37, 26, buttonmask_bits, true); |
182 | btnMaskBmp.setMask(btnMaskBmp); | 173 | btnMaskBmp.setMask(btnMaskBmp); |
183 | htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); | 174 | htmlBtnMaskBmp = QBitmap(37, 26, htmlbuttonmask_bits, true); |
184 | htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); | 175 | htmlBtnMaskBmp.setMask(htmlBtnMaskBmp); |
185 | headerHoverID = -1; | 176 | headerHoverID = -1; |
186 | highlightWidget = NULL; | 177 | highlightWidget = NULL; |
187 | setButtonDefaultIndicatorWidth(0); | 178 | setButtonDefaultIndicatorWidth(0); |
188 | btnDict.setAutoDelete(true); | 179 | btnDict.setAutoDelete(true); |
189 | bevelFillDict.setAutoDelete(true); | 180 | bevelFillDict.setAutoDelete(true); |
190 | smallBevelFillDict.setAutoDelete(true); | 181 | smallBevelFillDict.setAutoDelete(true); |
191 | customBtnColorList.setAutoDelete(true); | 182 | customBtnColorList.setAutoDelete(true); |
192 | customBtnIconList.setAutoDelete(true); | 183 | customBtnIconList.setAutoDelete(true); |
193 | customBtnLabelList.setAutoDelete(true); | 184 | customBtnLabelList.setAutoDelete(true); |
194 | 185 | ||
195 | rMatrix.rotate(270.0); | 186 | rMatrix.rotate(270.0); |
196 | highcolor = QPixmap::defaultDepth() > 8; | 187 | highcolor = QPixmap::defaultDepth() > 8; |
197 | btnBorderPix = new QPixmap; | 188 | btnBorderPix = new QPixmap; |
198 | btnBorderPix->convertFromImage(qembed_findImage("buttonfill")); | 189 | btnBorderPix->convertFromImage(qembed_findImage("buttonfill")); |
199 | btnBlendPix = new QPixmap; | 190 | btnBlendPix = new QPixmap; |
200 | btnBlendPix->convertFromImage(qembed_findImage("buttonborder")); | 191 | btnBlendPix->convertFromImage(qembed_findImage("buttonborder")); |
201 | bevelFillPix = new QPixmap; | 192 | bevelFillPix = new QPixmap; |
202 | bevelFillPix->convertFromImage(qembed_findImage("clear_fill_large")); | 193 | bevelFillPix->convertFromImage(qembed_findImage("clear_fill_large")); |
203 | smallBevelFillPix = new QPixmap; | 194 | smallBevelFillPix = new QPixmap; |
@@ -808,66 +799,65 @@ void LiquidStyle::polish(QPalette &appPal) | |||
808 | painter.setPen(c.dark(105)); | 799 | painter.setPen(c.dark(105)); |
809 | for(i=0; i < 32; i+=4){ | 800 | for(i=0; i < 32; i+=4){ |
810 | painter.drawLine(0, i, 32, i); | 801 | painter.drawLine(0, i, 32, i); |
811 | painter.drawLine(0, i+1, 32, i+1); | 802 | painter.drawLine(0, i+1, 32, i+1); |
812 | }; | 803 | }; |
813 | painter.end(); | 804 | painter.end(); |
814 | baseBrush.setColor(c); | 805 | baseBrush.setColor(c); |
815 | baseBrush.setPixmap(basePix); | 806 | baseBrush.setPixmap(basePix); |
816 | it.toFirst(); | 807 | it.toFirst(); |
817 | while ((w=it.current()) != 0 ){ | 808 | while ((w=it.current()) != 0 ){ |
818 | ++it; | 809 | ++it; |
819 | if(w->inherits("QLineEdit")){ | 810 | if(w->inherits("QLineEdit")){ |
820 | QPalette pal = w->palette(); | 811 | QPalette pal = w->palette(); |
821 | pal.setBrush(QColorGroup::Base, baseBrush); | 812 | pal.setBrush(QColorGroup::Base, baseBrush); |
822 | w->setPalette(pal); | 813 | w->setPalette(pal); |
823 | } | 814 | } |
824 | else if(w->inherits("QPushButton")){ | 815 | else if(w->inherits("QPushButton")){ |
825 | applyCustomAttributes((QPushButton *)w); | 816 | applyCustomAttributes((QPushButton *)w); |
826 | } | 817 | } |
827 | } | 818 | } |
828 | 819 | ||
829 | } | 820 | } |
830 | 821 | ||
831 | void LiquidStyle::polish(QWidget *w) | 822 | void LiquidStyle::polish(QWidget *w) |
832 | { | 823 | { |
833 | if(w->inherits("QMenuBar")){ | 824 | if(w->inherits("QMenuBar")){ |
834 | //((QFrame*)w)->setLineWidth(0); | 825 | //((QFrame*)w)->setLineWidth(0); |
835 | w->setBackgroundMode(QWidget::PaletteBackground); | 826 | w->setBackgroundMode(QWidget::PaletteBackground); |
836 | return; | 827 | return; |
837 | } | 828 | } |
838 | if(w->inherits("QPopupMenu")) | 829 | if(w->inherits("QPopupMenu")) |
839 | w->setBackgroundMode(QWidget::NoBackground); | 830 | w->setBackgroundMode(QWidget::NoBackground); |
840 | else if(w-> testWFlags(Qt::WType_Popup)) { | 831 | else if(w-> testWFlags(Qt::WType_Popup) && !w->inherits("QListBox")) { |
841 | printf("install popup: %s\n", w-> className ( )); | ||
842 | w->installEventFilter(menuHandler); | 832 | w->installEventFilter(menuHandler); |
843 | } | 833 | } |
844 | 834 | ||
845 | if(w->isTopLevel()){ | 835 | if(w->isTopLevel()){ |
846 | return; | 836 | return; |
847 | } | 837 | } |
848 | 838 | ||
849 | 839 | ||
850 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); | 840 | w-> setBackgroundOrigin ( QWidget::ParentOrigin ); |
851 | 841 | ||
852 | if(w->inherits("QComboBox") || | 842 | if(w->inherits("QComboBox") || |
853 | w->inherits("QLineEdit") || w->inherits("QRadioButton") || | 843 | w->inherits("QLineEdit") || w->inherits("QRadioButton") || |
854 | w->inherits("QCheckBox") || w->inherits("QScrollBar")) { | 844 | w->inherits("QCheckBox") || w->inherits("QScrollBar")) { |
855 | w->installEventFilter(this); | 845 | w->installEventFilter(this); |
856 | } | 846 | } |
857 | if(w->inherits("QLineEdit")){ | 847 | if(w->inherits("QLineEdit")){ |
858 | QPalette pal = w->palette(); | 848 | QPalette pal = w->palette(); |
859 | pal.setBrush(QColorGroup::Base, baseBrush); | 849 | pal.setBrush(QColorGroup::Base, baseBrush); |
860 | w->setPalette(pal); | 850 | w->setPalette(pal); |
861 | } | 851 | } |
862 | if(w->inherits("QPushButton")){ | 852 | if(w->inherits("QPushButton")){ |
863 | applyCustomAttributes((QPushButton *)w); | 853 | applyCustomAttributes((QPushButton *)w); |
864 | w->installEventFilter(this); | 854 | w->installEventFilter(this); |
865 | } | 855 | } |
866 | if(w->inherits("QButton") || w-> inherits("QComboBox")){ | 856 | if(w->inherits("QButton") || w-> inherits("QComboBox")){ |
867 | w-> setBackgroundMode ( QWidget::PaletteBackground ); | 857 | w-> setBackgroundMode ( QWidget::PaletteBackground ); |
868 | } | 858 | } |
869 | 859 | ||
870 | bool isViewport = qstrcmp(w->name(), "qt_viewport") == 0 || | 860 | bool isViewport = qstrcmp(w->name(), "qt_viewport") == 0 || |
871 | qstrcmp(w->name(), "qt_clipped_viewport") == 0; | 861 | qstrcmp(w->name(), "qt_clipped_viewport") == 0; |
872 | bool isViewportChild = w->parent() && | 862 | bool isViewportChild = w->parent() && |
873 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || | 863 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || |
@@ -903,65 +893,65 @@ void LiquidStyle::polish(QWidget *w) | |||
903 | } | 893 | } |
904 | 894 | ||
905 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> | 895 | if(w->parent() && w->parent()->isWidgetType() && !((QWidget*)w->parent())-> |
906 | palette().active().brush(QColorGroup::Background).pixmap()){ | 896 | palette().active().brush(QColorGroup::Background).pixmap()){ |
907 | qWarning("No parent pixmap for child widget %s", w->className()); | 897 | qWarning("No parent pixmap for child widget %s", w->className()); |
908 | return; | 898 | return; |
909 | } | 899 | } |
910 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && | 900 | if(!isViewport && !isViewportChild && !w->testWFlags(WType_Popup) && |
911 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { | 901 | !( !w-> inherits("QLineEdit") && w-> parent() && w-> parent()-> isWidgetType ( ) && w-> parent()-> inherits ( "QMultiLineEdit" ))) { |
912 | if(w->backgroundMode() == QWidget::PaletteBackground || | 902 | if(w->backgroundMode() == QWidget::PaletteBackground || |
913 | w->backgroundMode() == QWidget::PaletteButton){ | 903 | w->backgroundMode() == QWidget::PaletteButton){ |
914 | w->setBackgroundMode(QWidget::X11ParentRelative); | 904 | w->setBackgroundMode(QWidget::X11ParentRelative); |
915 | } | 905 | } |
916 | } | 906 | } |
917 | if(w->inherits("QToolBar")){ | 907 | if(w->inherits("QToolBar")){ |
918 | w->installEventFilter(this); | 908 | w->installEventFilter(this); |
919 | w->setBackgroundMode(QWidget::PaletteBackground); | 909 | w->setBackgroundMode(QWidget::PaletteBackground); |
920 | return; | 910 | return; |
921 | } | 911 | } |
922 | 912 | ||
923 | } | 913 | } |
924 | 914 | ||
925 | void LiquidStyle::unPolish(QWidget *w) | 915 | void LiquidStyle::unPolish(QWidget *w) |
926 | { | 916 | { |
927 | if(w->inherits("QMenuBar")){ | 917 | if(w->inherits("QMenuBar")){ |
928 | ((QFrame *)w)->setLineWidth(1); | 918 | ((QFrame *)w)->setLineWidth(1); |
929 | w->setBackgroundMode(QWidget::PaletteBackground); | 919 | w->setBackgroundMode(QWidget::PaletteBackground); |
930 | return; | 920 | return; |
931 | } | 921 | } |
932 | 922 | ||
933 | if(w->inherits("QPopupMenu")) | 923 | if(w->inherits("QPopupMenu")) |
934 | w->setBackgroundMode(QWidget::PaletteButton); | 924 | w->setBackgroundMode(QWidget::PaletteButton); |
935 | else if(w-> testWFlags(Qt::WType_Popup)) { | 925 | else if(w-> testWFlags(Qt::WType_Popup) && !w->inherits("QListBox")) { |
936 | w->removeEventFilter(menuHandler); | 926 | w->removeEventFilter(menuHandler); |
937 | } | 927 | } |
938 | 928 | ||
939 | if(w->isTopLevel()) | 929 | if(w->isTopLevel()) |
940 | return; | 930 | return; |
941 | 931 | ||
942 | // for viewport children, don't just check for NoBackground.... | 932 | // for viewport children, don't just check for NoBackground.... |
943 | bool isViewportChild = w->parent() && | 933 | bool isViewportChild = w->parent() && |
944 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || | 934 | ((qstrcmp(w->parent()->name(), "qt_viewport") == 0) || |
945 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); | 935 | (qstrcmp(w->parent()->name(), "qt_clipped_viewport") == 0)); |
946 | 936 | ||
947 | w->setPalette(QApplication::palette()); | 937 | w->setPalette(QApplication::palette()); |
948 | if(w->backgroundMode() == QWidget::X11ParentRelative || isViewportChild){ | 938 | if(w->backgroundMode() == QWidget::X11ParentRelative || isViewportChild){ |
949 | if(w->inherits("QPushButton")) | 939 | if(w->inherits("QPushButton")) |
950 | w->setBackgroundMode(QWidget::PaletteButton); | 940 | w->setBackgroundMode(QWidget::PaletteButton); |
951 | else | 941 | else |
952 | w->setBackgroundMode(QWidget::PaletteBackground); | 942 | w->setBackgroundMode(QWidget::PaletteBackground); |
953 | } | 943 | } |
954 | 944 | ||
955 | if(isViewportChild) | 945 | if(isViewportChild) |
956 | w->setAutoMask(false); | 946 | w->setAutoMask(false); |
957 | 947 | ||
958 | if(w->inherits("QPushButton")){ | 948 | if(w->inherits("QPushButton")){ |
959 | unapplyCustomAttributes((QPushButton *)w); | 949 | unapplyCustomAttributes((QPushButton *)w); |
960 | w->removeEventFilter(this); | 950 | w->removeEventFilter(this); |
961 | } | 951 | } |
962 | /* | 952 | /* |
963 | if(w->inherits("QPushButton") || w-> inherits("QComboBox")){ | 953 | if(w->inherits("QPushButton") || w-> inherits("QComboBox")){ |
964 | w-> setBackgroundMode ( PaletteBackground ); | 954 | w-> setBackgroundMode ( PaletteBackground ); |
965 | } | 955 | } |
966 | */ | 956 | */ |
967 | if(w->inherits("QComboBox") || | 957 | if(w->inherits("QComboBox") || |
diff --git a/noncore/styles/liquid/plugin.cpp b/noncore/styles/liquid/plugin.cpp index fca7c06..d9aa8ef 100644 --- a/noncore/styles/liquid/plugin.cpp +++ b/noncore/styles/liquid/plugin.cpp | |||
@@ -1,29 +1,29 @@ | |||
1 | #include "liquid.h" | 1 | #include "liquid.h" |
2 | 2 | ||
3 | 3 | ||
4 | extern "C" { | 4 | extern "C" { |
5 | QStyle* allocate ( ); | 5 | QStyle* allocate ( ); |
6 | int minor_version ( ); | 6 | int minor_version ( ); |
7 | int major_version ( ); | 7 | int major_version ( ); |
8 | const char *description ( ); | 8 | const char *description ( ); |
9 | } | 9 | } |
10 | 10 | ||
11 | QStyle* allocate ( ) | 11 | QStyle* allocate ( ) |
12 | { | 12 | { |
13 | return new LiquidStyle ( ); | 13 | return new LiquidStyle ( ); |
14 | } | 14 | } |
15 | 15 | ||
16 | int minor_version ( ) | 16 | int minor_version ( ) |
17 | { | 17 | { |
18 | return 0; | 18 | return 0; |
19 | } | 19 | } |
20 | 20 | ||
21 | int major_version ( ) | 21 | int major_version ( ) |
22 | { | 22 | { |
23 | return 1; | 23 | return 1; |
24 | } | 24 | } |
25 | 25 | ||
26 | const char *description ( ) | 26 | const char *description ( ) |
27 | { | 27 | { |
28 | return "High performance liquid plugin"; | 28 | return "High Performance Liquid"; |
29 | } | 29 | } |