[Xfce4-commits] <parole:bluesabre/gtk3> Use theme-colors to draw the overlay background and border Add 3px padding (=border-width) to the play-box

Simon Steinbeiss noreply at xfce.org
Tue Sep 10 17:36:01 CEST 2013


Updating branch refs/heads/bluesabre/gtk3
         to 3c4f9f5d6b46149931311d5e19df6de831d0fbc6 (commit)
       from f258ca80b8a990a8d8830faad05a265280570846 (commit)

commit 3c4f9f5d6b46149931311d5e19df6de831d0fbc6
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Tue Sep 10 17:34:46 2013 +0200

    Use theme-colors to draw the overlay background and border
    Add 3px padding (=border-width) to the play-box

 src/parole-player.c |   30 ++++++++++++++++++++----------
 1 file changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/parole-player.c b/src/parole-player.c
index e537275..09a9a62 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -2583,24 +2583,35 @@ on_bug_report_clicked (GtkWidget *w, ParolePlayer *player)
     }
 }
 
+/**
+ * 
+ * Draw a simple rectangular GtkOverlay
+ * using the theme's background and border-color
+ * to keep it on top of the gst-video-widget with Gtk3.8 and above
+ * 
+ * NOTE: Transparency is not supported, so there's also no fadeout.
+ **/
 static gboolean
 parole_overlay_expose_event (GtkWidget *widget, cairo_t *cr, gpointer user_data)
 {
     GtkAllocation *allocation = g_new0 (GtkAllocation, 1);
-    /* FIXME: Get the theme-color and use that to draw the overlay
     GtkStyleContext *context;
     GdkRGBA acolor;
-    context = gtk_widget_get_style_context(GTK_WIDGET(widget));
-    gtk_style_context_get_background_color (context, GTK_STATE_NORMAL, &acolor);
-    gdk_cairo_set_source_rgba (cr, &acolor); */
 
-    /* Draw a simple rectangular border around the GtkOverlay */
     gtk_widget_get_allocation(widget, allocation);
-    cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0);
     cairo_rectangle (cr, 0, 0, allocation->width, allocation->height);
+
+    context = gtk_widget_get_style_context(GTK_WIDGET(widget));
+    gtk_style_context_add_class (context, "background");
+    gtk_style_context_add_class (context, "osd");
+    gtk_style_context_get_background_color (context, GTK_STATE_NORMAL, &acolor);
+    gdk_cairo_set_source_rgba (cr, &acolor);
     cairo_fill_preserve (cr);
-    cairo_set_source_rgba (cr, 0.95, 0.95, 0.95, 0.3);
+
+    gtk_style_context_get_border_color (context, GTK_STATE_NORMAL, &acolor);
+    gdk_cairo_set_source_rgba (cr, &acolor);
     cairo_stroke (cr);
+
     return FALSE;
 }
 
@@ -2808,7 +2819,6 @@ parole_player_init (ParolePlayer *player)
     
     GtkWidget *controls_overlay, *tmp_box;
     GtkWidget *controls_parent;
-    GtkStyleContext *controls_style;
     
     GtkWidget *action_widget;
     
@@ -3117,8 +3127,7 @@ parole_player_init (ParolePlayer *player)
     gtk_widget_set_margin_bottom(tmp_box, 10);
     gtk_widget_set_margin_top(tmp_box, 10);
     gtk_widget_set_valign(tmp_box, GTK_ALIGN_END);
-    controls_style = gtk_widget_get_style_context(GTK_WIDGET(controls_overlay));
-    gtk_style_context_add_class (controls_style, "osd");
+
 #if GTK_CHECK_VERSION(3,8,0)
 #else
     gdk_color_parse("#080810", &background);
@@ -3127,6 +3136,7 @@ parole_player_init (ParolePlayer *player)
     gtk_widget_reparent(GTK_WIDGET(player->priv->control), tmp_box);
     gtk_overlay_add_overlay(GTK_OVERLAY(controls_overlay), tmp_box);
     gtk_box_set_child_packing( GTK_BOX(player->priv->control), GTK_WIDGET(player->priv->play_box), TRUE, TRUE, 2, GTK_PACK_START );
+    gtk_container_set_border_width(GTK_CONTAINER(player->priv->play_box), 3);
     gtk_widget_show_all(controls_parent);
     
     /* Previous, Play/Pause, Next */


More information about the Xfce4-commits mailing list