[Xfce4-commits] <gtk-xfce-engine:master> Added Gtk 3.4 support to the engine

Peter de Ridder noreply at xfce.org
Sat Apr 28 11:40:01 CEST 2012


Updating branch refs/heads/master
         to 39d67c146f82f0bc341cf62918220b3627b2ffa5 (commit)
       from 1ff854f50179fa83b82502d5d44cbe47f7ee6833 (commit)

commit 39d67c146f82f0bc341cf62918220b3627b2ffa5
Author: Peter de Ridder <peter at xfce.org>
Date:   Thu Apr 26 21:51:18 2012 +0200

    Added Gtk 3.4 support to the engine
    
    Themes are not updated default themes only support Gtk 3.2

 gtk-3.0/xfce_engine.c |   80 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 80 insertions(+), 0 deletions(-)

diff --git a/gtk-3.0/xfce_engine.c b/gtk-3.0/xfce_engine.c
index acad345..7070c18 100644
--- a/gtk-3.0/xfce_engine.c
+++ b/gtk-3.0/xfce_engine.c
@@ -504,8 +504,16 @@ static void xfce_draw_frame(GtkThemingEngine * engine, cairo_t * cr, gdouble x,
 
     switch (border_style)
     {
+#if GTK_CHECK_VERSION(3,4,0)
+        case GTK_BORDER_STYLE_HIDDEN:
+#endif
         case GTK_BORDER_STYLE_NONE:
             break;
+#if GTK_CHECK_VERSION(3,4,0)
+        case GTK_BORDER_STYLE_DOTTED:
+        case GTK_BORDER_STYLE_DASHED:
+        case GTK_BORDER_STYLE_DOUBLE:
+#endif
         case GTK_BORDER_STYLE_SOLID:
             gdk_cairo_set_source_rgba(cr, &dark);
             if ((xt > 1) && (yt > 1))
@@ -519,6 +527,78 @@ static void xfce_draw_frame(GtkThemingEngine * engine, cairo_t * cr, gdouble x,
             }
             cairo_stroke(cr);
             break;
+#if GTK_CHECK_VERSION(3,4,0)
+	case GTK_BORDER_STYLE_GROOVE:
+            color_dark2light(&dark, &light);
+            if ((xt > 1) && (yt > 1))
+            {
+                gdk_cairo_set_source_rgba(cr, &light);
+                cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &dark);
+                cairo_move_to(cr, x + width - 1.5, y + 0.5);
+                cairo_line_to(cr, x + 0.5, y + 0.5);
+                cairo_line_to(cr, x + 0.5, y + height - 1.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &light);
+                cairo_move_to(cr, x + width - 1.5, y + 1.5);
+                cairo_line_to(cr, x + 1.5, y + 1.5);
+                cairo_line_to(cr, x + 1.5, y + height - 1.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &dark);
+                cairo_move_to(cr, x + 1.5, y + height - 1.5);
+                cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                cairo_line_to(cr, x + width - 1.5, y + 1.5);
+                cairo_stroke(cr);
+            }
+            else if ((xt > 0) && (yt > 0))
+            {
+                gdk_cairo_set_source_rgba(cr, &dark);
+                cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
+                cairo_stroke(cr);
+            }
+            break;
+	case GTK_BORDER_STYLE_RIDGE:
+            color_dark2light(&dark, &light);
+            if ((xt > 1) && (yt > 1))
+            {
+                gdk_cairo_set_source_rgba(cr, &dark);
+                cairo_move_to(cr, x + 0.5, y + height - 0.5);
+                cairo_line_to(cr, x + width - 0.5, y + height - 0.5);
+                cairo_line_to(cr, x + width - 0.5, y + 0.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &light);
+                cairo_move_to(cr, x + width - 1.5, y + 0.5);
+                cairo_line_to(cr, x + 0.5, y + 0.5);
+                cairo_line_to(cr, x + 0.5, y + height - 1.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &dark);
+                cairo_move_to(cr, x + width - 1.5, y + 1.5);
+                cairo_line_to(cr, x + 1.5, y + 1.5);
+                cairo_line_to(cr, x + 1.5, y + height - 1.5);
+                cairo_stroke(cr);
+
+                gdk_cairo_set_source_rgba(cr, &light);
+                cairo_move_to(cr, x + 1.5, y + height - 1.5);
+                cairo_line_to(cr, x + width - 1.5, y + height - 1.5);
+                cairo_line_to(cr, x + width - 1.5, y + 1.5);
+                cairo_stroke(cr);
+            }
+            else if ((xt > 0) && (yt > 0))
+            {
+                gdk_cairo_set_source_rgba(cr, &light);
+                cairo_rectangle(cr, x + 0.5, y + 0.5, width - 1, height - 1);
+                cairo_stroke(cr);
+            }
+            break;
+#endif
         case GTK_BORDER_STYLE_INSET:
             gtk_theming_engine_get(engine, state, XFCE_SMOOTH_EDGE, &smooth_edge, NULL);
             color_dark2light_mid(&dark, &light, &mid);


More information about the Xfce4-commits mailing list