[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kstyles/plastik
From:       Sandro Giessl <sgiessl () gmail ! com>
Date:       2006-07-11 23:23:27
Message-ID: 1152660207.466162.6422.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 561361 by giessl:

remove renderPixel() hack for antialias, enable frame focus highlight for item views \
etc.

 M  +23 -65    plastik.cpp  
 M  +2 -14     plastik.h  


--- trunk/KDE/kdelibs/kstyles/plastik/plastik.cpp #561360:561361
@@ -1677,10 +1677,11 @@
         {
             // WT_Generic and other fallen-through frames...
             // QFrame, Qt item views, etc.: sunken..
+            bool focusHighlight = flags&State_HasFocus/* && flags&State_Enabled*/;
             if (flags & State_Sunken) {
-                renderPanel(p, r, pal, true, true);
+                renderPanel(p, r, pal, true, true, focusHighlight);
             } else if (flags & State_Raised) {
-                renderPanel(p, r, pal, true, false);
+                renderPanel(p, r, pal, true, false, focusHighlight);
             } else {
                 renderPanel(p, r, pal, false);
             }
@@ -2034,63 +2035,6 @@
     }
 }
 
-void PlastikStyle::renderPixel(QPainter *p,
-            const QPoint &pos,
-            const int alpha,
-            const QColor &color,
-            const QColor &background,
-            bool fullAlphaBlend) const
-{
-    if(fullAlphaBlend)
-    // full alpha blend: paint into an image with alpha buffer and convert to a \
                pixmap ...
-    {
-        QRgb rgb = color.rgb();
-        // generate a quite unique key -- use the unused width field to store the \
                alpha value.
-        CacheEntry search(cAlphaDot, alpha, 0, rgb);
-        int key = search.key();
-
-        CacheEntry *cacheEntry;
-        if( (cacheEntry = pixmapCache->take(key)) ) {
-            if( search == *cacheEntry ) { // match! we can draw now...
-                if(cacheEntry->pixmap)
-                    p->drawPixmap(pos, *(cacheEntry->pixmap) );
-                return;
-            } else { //Remove old entry in case of a conflict!
-                pixmapCache->remove( key );
-            }
-        }
-
-
-        QImage aImg(1,1,QImage::Format_ARGB32); // 1x1
-        aImg.setPixel(0,0,qRgba(qRed(rgb),qGreen(rgb),qBlue(rgb),alpha));
-        QPixmap *result = new QPixmap(QPixmap::fromImage( aImg ));
-
-        p->drawPixmap(pos, *result);
-
-        // add to the cache...
-        CacheEntry *toAdd = new CacheEntry(search);
-        toAdd->pixmap = result;
-        bool insertOk = pixmapCache->insert( key, toAdd, result->depth()/8);
-        if(!insertOk)
-            delete result;
-    } else
-    // don't use an alpha buffer: calculate the resulting color from the alpha \
                value, the fg- and the bg-color.
-    {
-        QRgb rgb_a = color.rgb();
-        QRgb rgb_b = background.rgb();
-        int a = alpha;
-        if(a>255) a = 255;
-        if(a<0) a = 0;
-        int a_inv = 255 - a;
-
-        QColor res  = QColor( qRgb(qRed(rgb_b)*a_inv/255 + qRed(rgb_a)*a/255,
-                              qGreen(rgb_b)*a_inv/255 + qGreen(rgb_a)*a/255,
-                              qBlue(rgb_b)*a_inv/255 + qBlue(rgb_a)*a/255) );
-        p->setPen(res);
-        p->drawPoint(pos);
-    }
-}
-
 void PlastikStyle::renderButton(QPainter *p,
                                const QRect &r,
                                const QPalette &pal,
@@ -2434,26 +2378,40 @@
                               const QRect &r,
                               const QPalette &pal,
                               const bool pseudo3d,
-                              const bool sunken) const
+                              const bool sunken,
+                              const bool focusHighlight) const
 {
     int x, x2, y, y2, w, h;
     r.getRect(&x,&y,&w,&h);
     r.getCoords(&x, &y, &x2, &y2);
 
-        renderContour(p, r, pal.color(QPalette::Background), getColor(pal, \
PanelContour) ); +    if ( focusHighlight )
+    {
+        renderContour(p, r, pal.color(QPalette::Background),
+                      getColor(pal,FocusHighlight) );
+    }
+    else
+    {
+        renderContour(p, r, pal.color(QPalette::Background),
+                      getColor(pal, PanelContour) );
+    }
 
         if(pseudo3d) {
+            QColor dark = focusHighlight ?
+                    getColor(pal,FocusHighlight).dark(130) : getColor(pal, \
PanelDark); +            QColor light = focusHighlight ?
+                    getColor(pal,FocusHighlight).light(130) : getColor(pal, \
PanelLight);  if (sunken) {
-                p->setPen(getColor(pal, PanelDark) );
+                p->setPen(dark);
             } else {
-                p->setPen(getColor(pal, PanelLight) );
+                p->setPen(light);
             }
             p->drawLine(r.left()+2, r.top()+1, r.right()-2, r.top()+1);
             p->drawLine(r.left()+1, r.top()+2, r.left()+1, r.bottom()-2);
             if (sunken) {
-                p->setPen(getColor(pal, PanelLight) );
+                p->setPen(light);
             } else {
-                p->setPen(getColor(pal, PanelDark) );
+                p->setPen(dark);
             }
             p->drawLine(r.left()+2, r.bottom()-1, r.right()-2, r.bottom()-1);
             p->drawLine(r.right()-1, r.top()+2, r.right()-1, r.bottom()-2);
--- trunk/KDE/kdelibs/kstyles/plastik/plastik.h #561360:561361
@@ -184,12 +184,6 @@
                        const uint flags = Draw_Left|Draw_Right|Draw_Top|Draw_Bottom|
                                \
Round_UpperLeft|Round_UpperRight|Round_BottomLeft|Round_BottomRight) const;  
-//     void renderMask(QPainter *p,
-//                     const QRect &r,
-//                     const QColor &color,
-//                     const uint flags = Draw_Left|Draw_Right|Draw_Top|Draw_Bottom|
-//                             \
                Round_UpperLeft|Round_UpperRight|Round_BottomLeft|Round_BottomRight) \
                const;
-// 
     void renderSurface(QPainter *p,
                         const QRect &r,
                         const QColor &backgroundColor,
@@ -200,13 +194,6 @@
                                 \
Round_UpperLeft|Round_UpperRight|Round_BottomLeft|Round_BottomRight|  Is_Horizontal) \
const;  
-    inline void renderPixel(QPainter *p,
-            const QPoint &pos,
-            const int alpha,
-            const QColor &color,
-            const QColor &background = QColor(),
-            bool fullAlphaBlend = true) const;
-
     void renderButton(QPainter *p,
                       const QRect &r,
                       const QPalette &pal,
@@ -226,7 +213,8 @@
                      const QRect &r,
                      const QPalette &pal,
                      const bool pseudo3d = true,
-                     const bool sunken = true) const;
+                     const bool sunken = true,
+                     const bool focusHighlight = false) const;
 
     void renderDot(QPainter *p,
                    const QPoint &point,


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic