[gnome-themes-standard: 4/26] adwaita: use SVG assets to render checkoxes and radiobuttons



commit ffe6c42b321220aba11a5202e2e89e3591b52b39
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Tue Mar 1 21:43:53 2011 -0500

    adwaita: use SVG assets to render checkoxes and radiobuttons
    
    Using the CSS background-image property.
    
    Courtesy of Jakub Steiner, imported here from the gnome-design gitorious
    repo.

 src/adwaita_engine.c                               |  272 ++++++---------
 themes/Adwaita/gtk-3.0/assets/Makefile.am          |   13 +
 .../assets/checkbox-checked-insensitive.svg        |  175 ++++++++++
 themes/Adwaita/gtk-3.0/assets/checkbox-checked.svg |  191 +++++++++++
 themes/Adwaita/gtk-3.0/assets/checkbox-mixed.svg   |  250 ++++++++++++++
 .../assets/checkbox-unchecked-insensitive.svg      |  149 +++++++++
 .../Adwaita/gtk-3.0/assets/checkbox-unchecked.svg  |  168 ++++++++++
 .../gtk-3.0/assets/radio-selected-insensitive.svg  |  264 +++++++++++++++
 themes/Adwaita/gtk-3.0/assets/radio-selected.svg   |  350 ++++++++++++++++++++
 .../assets/radio-unselected-insensitive.svg        |  189 +++++++++++
 themes/Adwaita/gtk-3.0/assets/radio-unselected.svg |  298 +++++++++++++++++
 themes/Adwaita/gtk-3.0/gtk.css                     |   72 +++--
 12 files changed, 2207 insertions(+), 184 deletions(-)
---
diff --git a/src/adwaita_engine.c b/src/adwaita_engine.c
index ebb8b17..b0abc99 100644
--- a/src/adwaita_engine.c
+++ b/src/adwaita_engine.c
@@ -1,3 +1,4 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
 /* Adwaita - a GTK+ engine
  *
  * Copyright (C) 2011 Carlos Garnacho <carlosg gnome org>
@@ -31,8 +32,6 @@ typedef struct _AdwaitaEngineClass AdwaitaEngineClass;
 struct _AdwaitaEngine
 {
   GtkThemingEngine parent_object;
-
-  GHashTable *assets;
 };
 
 struct _AdwaitaEngineClass
@@ -52,62 +51,6 @@ void  adwaita_engine_register_types (GTypeModule *module);
 
 G_DEFINE_DYNAMIC_TYPE (AdwaitaEngine, adwaita_engine, GTK_TYPE_THEMING_ENGINE)
 
-typedef struct {
-	gchar *data;
-	gsize length;
-} AssetData;
-
-static void
-asset_data_free (gpointer user_data)
-{
-	AssetData *data = user_data;
-
-	g_free (data->data);
-	g_slice_free (AssetData, data);
-}
-
-static const AssetData *
-cache_asset_data (AdwaitaEngine *self,
-		  const gchar *asset_name)
-{
-	gchar *path, *name;
-	gboolean res;
-	GError *error = NULL;
-	AssetData *asset;
-
-	name = g_strconcat (asset_name, ".svg", NULL);
-	path = g_build_filename (ASSETS_DIR, name, NULL);
-
-	asset = g_slice_new0 (AssetData);
-	res = g_file_get_contents (path, &asset->data, &asset->length, &error);
-
-	if (res) {
-		g_hash_table_insert (self->assets, g_strdup (asset_name), asset);
-	}
-
-	g_free (name);
-	g_free (path);
-
-	return asset;
-}
-
-static const AssetData *
-lookup_asset_data (AdwaitaEngine *self,
-		   const gchar *asset_name)
-{
-	const AssetData *retval;
-
-	retval = g_hash_table_lookup (self->assets, asset_name);
-
-	if (retval != NULL) {
-		return retval;
-	}
-
-	retval = cache_asset_data (self, asset_name);
-
-	return retval;
-}
-
 void
 adwaita_engine_register_types (GTypeModule *module)
 {
@@ -117,8 +60,6 @@ adwaita_engine_register_types (GTypeModule *module)
 static void
 adwaita_engine_init (AdwaitaEngine *self)
 {
-	self->assets = g_hash_table_new_full (g_str_hash, g_str_equal,
-					      g_free, asset_data_free);
 }
 
 static void
@@ -217,127 +158,87 @@ adwaita_engine_render_focus (GtkThemingEngine *engine,
 	gdk_rgba_free (border_color);
 }
 
-static gchar *
-option_asset_name_from_state (GtkStateFlags state)
-{
-	GString *string;
-
-	string = g_string_new ("radio-");
-
-	if (state & GTK_STATE_FLAG_ACTIVE) {
-		g_string_append (string, "selected");
-	} else {
-		g_string_append (string, "unselected");
-	}
-
-	if (state & GTK_STATE_FLAG_INSENSITIVE) {
-		g_string_append (string, "-insensitive");
-	}
-
-	return g_string_free (string, FALSE);
-}
-
-static gchar *
-check_asset_name_from_state (GtkStateFlags state)
-{
-	GString *string;
-
-	string = g_string_new ("checkbox-");
-
-	if (state & GTK_STATE_FLAG_ACTIVE) {
-		g_string_append (string, "checked");
-	} else {
-		g_string_append (string, "unchecked");
-	}
-
-	if (state & GTK_STATE_FLAG_INSENSITIVE) {
-		g_string_append (string, "-insensitive");
-	}
-
-	return g_string_free (string, FALSE);
-}
-
 static gboolean
 render_from_assets_common (GtkThemingEngine *engine,
 			   cairo_t *cr,
-			   const gchar *asset_name,
 			   gdouble x,
 			   gdouble y,
 			   gdouble width,
 			   gdouble height)
 {
-	GdkPixbuf *asset;
-	GInputStream *stream;
-	const AssetData *asset_data;
 	gboolean retval = FALSE;
+	GtkStateFlags state;
+	GValue value = { 0, };
+	cairo_pattern_t *asset = NULL;
+	cairo_surface_t *surface = NULL;
 
-	asset_data = lookup_asset_data (ADWAITA_ENGINE (engine), asset_name);
+	state = gtk_theming_engine_get_state (engine);
+	gtk_theming_engine_get_property (engine,
+					 "background-image",
+					 state,
+					 &value);
 
-	if (asset_data == NULL) {
-		goto out;
-	}
+	asset = g_value_dup_boxed (&value);
+	g_value_unset (&value);
 
-	stream = g_memory_input_stream_new_from_data (asset_data->data, asset_data->length,
-						      NULL);
-	asset = gdk_pixbuf_new_from_stream_at_scale (stream, width, height, TRUE,
-						     NULL, NULL);
+	if (asset != NULL) {
+		cairo_pattern_get_surface (asset, &surface);
+	}
 
-	if (asset != NULL) {		      
+	if (surface != NULL) {
 		cairo_save (cr);
 
-		cairo_translate (cr, x, y);
-		gdk_cairo_set_source_pixbuf (cr, asset, 0, 0);
-		cairo_rectangle (cr, 0, 0, width, height);
+		cairo_set_source_surface (cr, surface, x, y);
+		cairo_scale (cr,
+			     width / cairo_image_surface_get_width (surface),
+			     height / cairo_image_surface_get_height (surface));
 
-		cairo_fill (cr);
+		cairo_paint (cr);
 
 		cairo_restore (cr);
-
-		g_object_unref (asset);
-
 		retval = TRUE;
 	}
 
-	g_object_unref (stream);
-	
- out:
+	if (asset != NULL) {
+		cairo_pattern_destroy (asset);
+	}
+
 	return retval;
 }
 
-static gboolean
-render_check_from_assets (GtkThemingEngine *engine,
-			  cairo_t *cr,
-			  gdouble x,
-			  gdouble y,
-			  gdouble width,
-			  gdouble height)
+static void
+render_check_menuitem (GtkThemingEngine *engine,
+		       cairo_t *cr,
+		       gdouble x,
+		       gdouble y,
+		       gdouble width,
+		       gdouble height)
 {
-	gchar *asset_name;
-	gboolean retval;
+	GdkRGBA color;
+	GtkStateFlags state;
 
-	asset_name = check_asset_name_from_state (gtk_theming_engine_get_state (engine));
-	retval = render_from_assets_common (engine, cr, asset_name,
-					    x, y, width, height);
+	state = gtk_theming_engine_get_state (engine);
+	gtk_theming_engine_get_color (engine, state, &color);
 
-	return retval;
-}
+	if (!(state & GTK_STATE_FLAG_ACTIVE))
+		return;
 
-static gboolean
-render_option_from_assets (GtkThemingEngine *engine,
-			   cairo_t *cr,
-			   gdouble x,
-			   gdouble y,
-			   gdouble width,
-			   gdouble height)
-{
-	gchar *asset_name;
-	gboolean retval;
+	cairo_save (cr);
+
+	cairo_translate (cr, x, y);
 
-	asset_name = option_asset_name_from_state (gtk_theming_engine_get_state (engine));
-	retval = render_from_assets_common (engine, cr, asset_name,
-					    x, y, width, height);
+	cairo_set_line_width (cr, 2.0);
+	cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
+	cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
 
-	return retval;
+	cairo_move_to (cr, 0.5 + (width * 0.08), (height * 0.67));
+	cairo_line_to (cr, 0.5 + (width * 0.32), (height * 0.90));
+	cairo_line_to (cr, 0.5 + (width * 0.80), (height * 0.33));
+
+	gdk_cairo_set_source_rgba (cr, &color);
+	cairo_stroke (cr);
+
+	cairo_restore (cr);
 }
 
 static void
@@ -354,17 +255,21 @@ adwaita_engine_render_check (GtkThemingEngine *engine,
 	GtkStateFlags state;
 	gint radius;
 
-	if (!gtk_theming_engine_has_class (engine,
-					   GTK_STYLE_CLASS_MENUITEM) &&
-	    !gtk_theming_engine_has_class (engine,
-					   GTK_STYLE_CLASS_CELL) &&
-	    render_check_from_assets (engine, cr,
-				      x, y, width, height)) {
+	if (gtk_theming_engine_has_class (engine,
+					  GTK_STYLE_CLASS_MENUITEM))
+	{
+		render_check_menuitem (engine, cr,
+				       x, y, width, height);
+
 		return;
 	}
 
-	cairo_save (cr);
+	if (render_from_assets_common (engine, cr,
+				       x, y, width, height)) {
+		return;
+	}
 
+	/* fallback to old code path */
 	state = gtk_theming_engine_get_state (engine);
 	inconsistent = (state & GTK_STATE_FLAG_INCONSISTENT) != 0;
 	draw_bullet = (state & GTK_STATE_FLAG_ACTIVE);
@@ -479,6 +384,41 @@ adwaita_engine_render_line (GtkThemingEngine *engine,
 }
 
 static void
+render_radio_menuitem (GtkThemingEngine *engine,
+		       cairo_t *cr,
+		       gdouble x,
+		       gdouble y,
+		       gdouble width,
+		       gdouble height)
+{
+	GdkRGBA color;
+	GtkStateFlags state;
+	double radius;
+
+	state = gtk_theming_engine_get_state (engine);
+
+	if (!(state & GTK_STATE_FLAG_ACTIVE))
+		return;
+
+	gtk_theming_engine_get_color (engine, state, &color);
+
+	radius = MAX (height / 2.0, width / 2.0) * 0.58;
+
+	cairo_save (cr);
+
+	cairo_translate (cr, x + width / 2.0, y + height * 0.67);
+	cairo_arc (cr,
+		   0, 0,
+		   radius,
+		   0, 4 * G_PI);
+
+	gdk_cairo_set_source_rgba (cr, &color);
+	cairo_fill (cr);
+
+	cairo_restore (cr);
+}
+
+static void
 adwaita_engine_render_option (GtkThemingEngine *engine,
 			      cairo_t	       *cr,
 			      gdouble		x,
@@ -493,15 +433,19 @@ adwaita_engine_render_option (GtkThemingEngine *engine,
 	gdouble cx, cy, radius;
 	GtkStateFlags state;
 
-	if (!gtk_theming_engine_has_class (engine,
-					   GTK_STYLE_CLASS_MENUITEM) &&
-	    !gtk_theming_engine_has_class (engine,
-					   GTK_STYLE_CLASS_CELL) &&
-	    render_option_from_assets (engine, cr,
+	if (gtk_theming_engine_has_class (engine,
+					  GTK_STYLE_CLASS_MENUITEM))
+	{
+		render_radio_menuitem (engine, cr, x, y, width, height);
+		return;
+	}
+
+	if (render_from_assets_common (engine, cr,
 				       x, y, width, height)) {
 		return;
 	}
-	
+
+	/* fallback to old code path */
 	cx = width / 2.0;
 	cy = height / 2.0;
 	radius = MIN (width, height) / 2.0;
diff --git a/themes/Adwaita/gtk-3.0/assets/Makefile.am b/themes/Adwaita/gtk-3.0/assets/Makefile.am
new file mode 100644
index 0000000..ed6a76a
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/Makefile.am
@@ -0,0 +1,13 @@
+assetsdir = $(datadir)/themes/Adwaita/gtk-3.0/assets
+assets_DATA = 		\
+	checkbox-checked.svg \
+	checkbox-checked-insensitive.svg \
+	checkbox-unchecked.svg \
+	checkbox-unchecked-insensitive.svg \
+	checkbox-mixed.svg \
+	radio-selected.svg \
+	radio-selected-insensitive.svg \
+	radio-unselected.svg \
+	radio-unselected-insensitive.svg
+
+EXTRA_DIST = $(assets_DATA)
\ No newline at end of file
diff --git a/themes/Adwaita/gtk-3.0/assets/checkbox-checked-insensitive.svg b/themes/Adwaita/gtk-3.0/assets/checkbox-checked-insensitive.svg
new file mode 100644
index 0000000..326d133
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/checkbox-checked-insensitive.svg
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-unchecked.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       y2="-202.34555"
+       x2="1205.5752"
+       y1="-186.45331"
+       x1="1205.5752"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3951"
+       xlink:href="#linearGradient10354-2"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="248.97633"
+       x2="260.92538"
+       y1="233.77748"
+       x1="260.92538"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3953"
+       xlink:href="#linearGradient10332-5"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5-8"
+       id="linearGradient8390"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5-8">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5-6" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29-0" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="7.1381674"
+     inkscape:cy="8.4772276"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="981"
+     inkscape:window-height="899"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       style="opacity:0.5;enable-background:new"
+       id="g16895"
+       transform="translate(410.00739,765.05452)">
+      <rect
+         ry="1.6105907"
+         rx="1.6105907"
+         y="-284.86218"
+         x="-409.50739"
+         height="11.023263"
+         width="11.042357"
+         id="rect16897"
+         style="color:#000000;fill:none;stroke:url(#linearGradient8390);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         transform="scale(1,-1)" />
+      <path
+         id="path16899"
+         style="fill:none;stroke:#a3a89c;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;enable-background:new"
+         d="m -406.2425,278.07061 2.7047,3.5 6.3577,-7"
+         sodipodi:nodetypes="ccc"
+         inkscape:connector-curvature="0" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/checkbox-checked.svg b/themes/Adwaita/gtk-3.0/assets/checkbox-checked.svg
new file mode 100644
index 0000000..f2492f1
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/checkbox-checked.svg
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-checked-scalable.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient24133"
+       id="linearGradient8394"
+       gradientUnits="userSpaceOnUse"
+       x1="1582.125"
+       y1="201.98718"
+       x2="1580.5312"
+       y2="197.98718" />
+    <linearGradient
+       id="linearGradient24133"
+       inkscape:collect="always">
+      <stop
+         id="stop24135"
+         offset="0"
+         style="stop-color:#145393;stop-opacity:1;" />
+      <stop
+         id="stop24137"
+         offset="1"
+         style="stop-color:#1b6fc5;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       y2="-202.34555"
+       x2="1205.5752"
+       y1="-186.45331"
+       x1="1205.5752"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3951"
+       xlink:href="#linearGradient10354-2"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="248.97633"
+       x2="260.92538"
+       y1="233.77748"
+       x1="260.92538"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3953"
+       xlink:href="#linearGradient10332-5"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="9.3023818"
+     inkscape:cy="13.216234"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="894"
+     inkscape:window-height="914"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(410.00739,765.00002)"
+       id="g16853"
+       style="enable-background:new">
+      <rect
+         transform="scale(1,-1)"
+         style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect6506"
+         width="11.042357"
+         height="11.023263"
+         x="-409.50739"
+         y="-284.86218"
+         rx="1.6105907"
+         ry="1.6105907" />
+    </g>
+    <g
+       transform="translate(-1568.9928,841.00002)"
+       id="g24757"
+       style="display:inline;enable-background:new">
+      <path
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccsccccsccccccccccccc"
+         id="path24115"
+         d="m 1581.484,197.57451 -5.9527,5.49523 -1.5385,-1.70756 c -0.5675,-0.68154 -1.6986,-0.0737 -2.1043,0.84246 -0.3576,0.80771 -0.263,2.10509 0.2918,2.72004 l 2.3824,2.53125 c 0.3844,0.47604 1.1988,0.53546 1.7814,-0.0313 l 6.9309,-6.67011 c 0.8412,-0.89696 0.6398,-2.23127 0.2214,-2.8846 -0.4925,-0.76903 -1.4327,-0.78265 -2.0124,-0.29546 z m 0.1111,0.94016 1.1079,1.41031 -6.922,6.4375 -0.5937,0 -2.1875,-2.1875 0.1563,-1.45312 0.5312,-0.23438 1.4687,1.21875 0.3438,0.34375 0.2002,0.25 z"
+         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:url(#linearGradient8394);fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+      <path
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccccccc"
+         id="path24119"
+         d="m 1581.7056,198.35054 -6.2213,5.69077 -1.675,-1.75016 c -0.2927,-0.26248 -0.7322,1.5e-4 -0.8428,0.33163 l 0.028,1.54287 1.818,1.8656 7.9844,-7.53125 c -0.2564,-0.46127 -0.6632,-0.48234 -1.0915,-0.14946 z"
+         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#a2c0dd;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+      <path
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccccccccc"
+         id="path24117"
+         d="m 1582.7969,198.5 -7.3077,6.86432 -2.5348,-2.78466 c 0,0 -0.5675,0.90691 0.019,1.58656 l 2.1532,2.25362 c 0.1546,0.17678 0.4665,0.12213 0.6654,-0.0104 l 6.9002,-6.47188 c 0.5082,-0.50823 0.1094,-1.43751 0.1094,-1.43751 l 2e-4,0 z"
+         style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#000000;fill:#4a8dd1;fill-opacity:1;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Ahem;-inkscape-font-specification:Ahem" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/checkbox-mixed.svg b/themes/Adwaita/gtk-3.0/assets/checkbox-mixed.svg
new file mode 100644
index 0000000..ff8ee97
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/checkbox-mixed.svg
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-checked-pixelsharpened.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient7346">
+      <stop
+         style="stop-color:#1969ba;stop-opacity:1"
+         offset="0"
+         id="stop7348" />
+      <stop
+         style="stop-color:#145393;stop-opacity:1"
+         offset="1"
+         id="stop7350" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient24133"
+       id="linearGradient8394"
+       gradientUnits="userSpaceOnUse"
+       x1="1582.125"
+       y1="201.98718"
+       x2="1580.5312"
+       y2="197.98718" />
+    <linearGradient
+       id="linearGradient24133"
+       inkscape:collect="always">
+      <stop
+         id="stop24135"
+         offset="0"
+         style="stop-color:#145393;stop-opacity:1;" />
+      <stop
+         id="stop24137"
+         offset="1"
+         style="stop-color:#1b6fc5;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       y2="-202.34555"
+       x2="1205.5752"
+       y1="-186.45331"
+       x1="1205.5752"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3951"
+       xlink:href="#linearGradient10354-2"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="248.97633"
+       x2="260.92538"
+       y1="233.77748"
+       x1="260.92538"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3953"
+       xlink:href="#linearGradient10332-5"
+       inkscape:collect="always" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient24133-1"
+       id="linearGradient8394-1"
+       gradientUnits="userSpaceOnUse"
+       x1="1582.125"
+       y1="201.98718"
+       x2="1580.5312"
+       y2="197.98718"
+       gradientTransform="translate(0,-20)" />
+    <linearGradient
+       id="linearGradient24133-1"
+       inkscape:collect="always">
+      <stop
+         id="stop24135-6"
+         offset="0"
+         style="stop-color:#145393;stop-opacity:1;" />
+      <stop
+         id="stop24137-2"
+         offset="1"
+         style="stop-color:#1b6fc5;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient24133-9"
+       id="linearGradient8394-11"
+       gradientUnits="userSpaceOnUse"
+       x1="1582.125"
+       y1="201.98718"
+       x2="1580.5312"
+       y2="197.98718" />
+    <linearGradient
+       id="linearGradient24133-9"
+       inkscape:collect="always">
+      <stop
+         id="stop24135-1"
+         offset="0"
+         style="stop-color:#145393;stop-opacity:1;" />
+      <stop
+         id="stop24137-3"
+         offset="1"
+         style="stop-color:#1b6fc5;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient7346"
+       id="linearGradient7352"
+       x1="5.65625"
+       y1="6.390625"
+       x2="5.65625"
+       y2="9.828125"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="13.343981"
+     inkscape:cy="9.0341616"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1373"
+     inkscape:window-height="1035"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(410.00739,765.00002)"
+       id="g16853"
+       style="enable-background:new">
+      <rect
+         transform="scale(1,-1)"
+         style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect6506"
+         width="11.042357"
+         height="11.023263"
+         x="-409.50739"
+         y="-284.86218"
+         rx="1.6105907"
+         ry="1.6105907" />
+    </g>
+    <rect
+       style="color:#000000;fill:#4588ca;fill-opacity:0.98823529;fill-rule:nonzero;stroke:url(#linearGradient7352);stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect5494"
+       width="8.9375"
+       height="3.03125"
+       x="1.53125"
+       y="6.5"
+       transform="translate(0,1036.3622)"
+       rx="1.515625"
+       ry="1.515625" />
+    <path
+       style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1;opacity:0.50431034"
+       d="m 2.53125,7.5625 6.9375,0"
+       id="path5496"
+       inkscape:connector-curvature="0"
+       transform="translate(0,1036.3622)" />
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked-insensitive.svg b/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked-insensitive.svg
new file mode 100644
index 0000000..d5a6bd6
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked-insensitive.svg
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-checked-insensitive.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5-8"
+       id="linearGradient8390"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5-8">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5-6" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29-0" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="7.1381674"
+     inkscape:cy="8.4772276"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="981"
+     inkscape:window-height="899"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       style="opacity:0.5;enable-background:new"
+       id="g16895"
+       transform="translate(410.00739,765.05452)">
+      <rect
+         ry="1.6105907"
+         rx="1.6105907"
+         y="-284.86218"
+         x="-409.50739"
+         height="11.023263"
+         width="11.042357"
+         id="rect16897"
+         style="color:#000000;fill:none;stroke:url(#linearGradient8390);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         transform="scale(1,-1)" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked.svg b/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked.svg
new file mode 100644
index 0000000..42760cb
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/checkbox-unchecked.svg
@@ -0,0 +1,168 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-checked-scalable.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient24133"
+       id="linearGradient8394"
+       gradientUnits="userSpaceOnUse"
+       x1="1582.125"
+       y1="201.98718"
+       x2="1580.5312"
+       y2="197.98718" />
+    <linearGradient
+       id="linearGradient24133"
+       inkscape:collect="always">
+      <stop
+         id="stop24135"
+         offset="0"
+         style="stop-color:#145393;stop-opacity:1;" />
+      <stop
+         id="stop24137"
+         offset="1"
+         style="stop-color:#1b6fc5;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       y2="-202.34555"
+       x2="1205.5752"
+       y1="-186.45331"
+       x1="1205.5752"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3951"
+       xlink:href="#linearGradient10354-2"
+       inkscape:collect="always" />
+    <linearGradient
+       y2="248.97633"
+       x2="260.92538"
+       y1="233.77748"
+       x1="260.92538"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       gradientUnits="userSpaceOnUse"
+       id="linearGradient3953"
+       xlink:href="#linearGradient10332-5"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="7.1381674"
+     inkscape:cy="8.4772276"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="981"
+     inkscape:window-height="899"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(410.00739,765.00002)"
+       id="g16853"
+       style="enable-background:new">
+      <rect
+         transform="scale(1,-1)"
+         style="color:#000000;fill:url(#linearGradient3951);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3953);stroke-width:1;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect6506"
+         width="11.042357"
+         height="11.023263"
+         x="-409.50739"
+         y="-284.86218"
+         rx="1.6105907"
+         ry="1.6105907" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/radio-selected-insensitive.svg b/themes/Adwaita/gtk-3.0/assets/radio-selected-insensitive.svg
new file mode 100644
index 0000000..09eb693
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/radio-selected-insensitive.svg
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="radio-unselected.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11577-0-5-0-2"
+       id="linearGradient8358"
+       gradientUnits="userSpaceOnUse"
+       x1="662.53418"
+       y1="249.29141"
+       x2="662.53418"
+       y2="262.49979" />
+    <linearGradient
+       id="linearGradient11577-0-5-0-2"
+       inkscape:collect="always">
+      <stop
+         id="stop11579-5-6-7-4"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop11581-8-0-0-9"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12415-4-1-5"
+       id="linearGradient8360"
+       gradientUnits="userSpaceOnUse"
+       x1="664.26984"
+       y1="261.44751"
+       x2="664.26984"
+       y2="248.05356" />
+    <linearGradient
+       id="linearGradient12415-4-1-5"
+       inkscape:collect="always">
+      <stop
+         id="stop12417-2-8-0"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop12419-5-0-9"
+         offset="1"
+         style="stop-color:#8f9985;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11553-0-7-9">
+      <stop
+         id="stop11555-5-9-8"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop11557-1-9-0"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12405-7"
+       id="radialGradient8368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+       cx="660.8656"
+       cy="251.41324"
+       fx="660.8656"
+       fy="251.41324"
+       r="5.0290799" />
+    <linearGradient
+       id="linearGradient12405-7"
+       inkscape:collect="always">
+      <stop
+         id="stop12407-9"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop12409-7"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12692-5-0"
+       id="radialGradient8370"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       cx="663.01904"
+       cy="269.82831"
+       fx="663.01904"
+       fy="269.82831"
+       r="2.3864853" />
+    <linearGradient
+       id="linearGradient12692-5-0"
+       inkscape:collect="always">
+      <stop
+         id="stop12694-4-1"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop12696-5-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12415-4-1-5-2"
+       id="linearGradient8392"
+       gradientUnits="userSpaceOnUse"
+       x1="664.26984"
+       y1="261.44751"
+       x2="664.26984"
+       y2="248.05356" />
+    <linearGradient
+       id="linearGradient12415-4-1-5-2"
+       inkscape:collect="always">
+      <stop
+         id="stop12417-2-8-0-7"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop12419-5-0-9-3"
+         offset="1"
+         style="stop-color:#8f9985;stop-opacity:1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.627417"
+     inkscape:cx="7.2871964"
+     inkscape:cy="8.5766833"
+     inkscape:document-units="px"
+     inkscape:current-layer="g6305"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1180"
+     inkscape:window-height="950"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(-1031,770.36221)"
+       id="g6305"
+       style="display:inline;enable-background:new">
+      <g
+         style="opacity:0.5;display:inline;enable-background:new"
+         id="g16917"
+         transform="translate(3.7481965e-5,-1.1707725e-5)">
+        <path
+           sodipodi:type="arc"
+           style="color:#000000;fill:none;stroke:url(#linearGradient8392);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+           id="path16919"
+           sodipodi:cx="660.96808"
+           sodipodi:cy="255.0668"
+           sodipodi:rx="4.5078058"
+           sodipodi:ry="7.2937827"
+           d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+           transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+        <path
+           transform="matrix(0.77479411,0,0,0.47884882,526.8858,151.86156)"
+           d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+           sodipodi:ry="7.2937827"
+           sodipodi:rx="4.5078058"
+           sodipodi:cy="255.0668"
+           sodipodi:cx="660.96808"
+           id="path16921"
+           style="color:#000000;fill:#8f9985;fill-opacity:1;fill-rule:nonzero;stroke:#8f9985;stroke-width:1.64175236;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:144.44521581;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           sodipodi:type="arc" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/radio-selected.svg b/themes/Adwaita/gtk-3.0/assets/radio-selected.svg
new file mode 100644
index 0000000..178c4b3
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/radio-selected.svg
@@ -0,0 +1,350 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="checkbox-unchecked-insensitive.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5-8"
+       id="linearGradient8390"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5-8">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5-6" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29-0" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11577-0-5-0-2"
+       id="linearGradient8358"
+       gradientUnits="userSpaceOnUse"
+       x1="662.53418"
+       y1="249.29141"
+       x2="662.53418"
+       y2="262.49979" />
+    <linearGradient
+       id="linearGradient11577-0-5-0-2"
+       inkscape:collect="always">
+      <stop
+         id="stop11579-5-6-7-4"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop11581-8-0-0-9"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12415-4-1-5"
+       id="linearGradient8360"
+       gradientUnits="userSpaceOnUse"
+       x1="664.26984"
+       y1="261.44751"
+       x2="664.26984"
+       y2="248.05356" />
+    <linearGradient
+       id="linearGradient12415-4-1-5"
+       inkscape:collect="always">
+      <stop
+         id="stop12417-2-8-0"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop12419-5-0-9"
+         offset="1"
+         style="stop-color:#8f9985;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11623-4-5-4"
+       id="linearGradient8362"
+       gradientUnits="userSpaceOnUse"
+       x1="661.04559"
+       y1="251.6946"
+       x2="661.04559"
+       y2="258.26358" />
+    <linearGradient
+       id="linearGradient11623-4-5-4"
+       inkscape:collect="always">
+      <stop
+         id="stop11625-5-6-0"
+         offset="0"
+         style="stop-color:#2e87e3;stop-opacity:1" />
+      <stop
+         id="stop11627-4-4-9"
+         offset="1"
+         style="stop-color:#76b0ec;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12387-1-5"
+       id="linearGradient8364"
+       gradientUnits="userSpaceOnUse"
+       x1="662.26074"
+       y1="251.66537"
+       x2="662.26074"
+       y2="259.77792" />
+    <linearGradient
+       id="linearGradient12387-1-5"
+       inkscape:collect="always">
+      <stop
+         id="stop12389-7-2"
+         offset="0"
+         style="stop-color:#1b6fc5;stop-opacity:1;" />
+      <stop
+         id="stop12391-1-4"
+         offset="1"
+         style="stop-color:#145393;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11553-0-7-9"
+       id="linearGradient8366"
+       gradientUnits="userSpaceOnUse"
+       x1="660.16144"
+       y1="246.69635"
+       x2="660.27411"
+       y2="260.70532" />
+    <linearGradient
+       id="linearGradient11553-0-7-9">
+      <stop
+         id="stop11555-5-9-8"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop11557-1-9-0"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12405-7"
+       id="radialGradient8368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+       cx="660.8656"
+       cy="251.41324"
+       fx="660.8656"
+       fy="251.41324"
+       r="5.0290799" />
+    <linearGradient
+       id="linearGradient12405-7"
+       inkscape:collect="always">
+      <stop
+         id="stop12407-9"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop12409-7"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12692-5-0"
+       id="radialGradient8370"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       cx="663.01904"
+       cy="269.82831"
+       fx="663.01904"
+       fy="269.82831"
+       r="2.3864853" />
+    <linearGradient
+       id="linearGradient12692-5-0"
+       inkscape:collect="always">
+      <stop
+         id="stop12694-4-1"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop12696-5-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="2.3864853"
+       fy="269.82831"
+       fx="663.01904"
+       cy="269.82831"
+       cx="663.01904"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5029"
+       xlink:href="#linearGradient12692-5-0"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="32"
+     inkscape:cx="8.7319174"
+     inkscape:cy="7.9147276"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1180"
+     inkscape:window-height="950"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(-1031,770.36221)"
+       id="g6305"
+       style="display:inline;enable-background:new">
+      <path
+         transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         sodipodi:ry="7.2937827"
+         sodipodi:rx="4.5078058"
+         sodipodi:cy="255.0668"
+         sodipodi:cx="660.96808"
+         id="path6307"
+         style="color:#000000;fill:url(#linearGradient8358);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8360);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="color:#000000;fill:url(#linearGradient8362);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8364);stroke-width:1.27423298;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:144.44521581;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="path6309"
+         sodipodi:cx="660.96808"
+         sodipodi:cy="255.0668"
+         sodipodi:rx="4.5078058"
+         sodipodi:ry="7.2937827"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         transform="matrix(0.99826332,0,0,0.61696032,379.17979,116.6339)" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:0.55465585;fill:none;stroke:url(#linearGradient8366);stroke-width:1.63832664;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+         id="path6311"
+         sodipodi:cx="660.96808"
+         sodipodi:cy="255.0668"
+         sodipodi:rx="4.5078058"
+         sodipodi:ry="7.2937827"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         transform="matrix(0.77641414,0,0,-0.47985006,525.81496,396.39382)" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+         id="path6313"
+         sodipodi:cx="660.96808"
+         sodipodi:cy="255.0668"
+         sodipodi:rx="4.5078058"
+         sodipodi:ry="7.2937827"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+      <path
+         transform="matrix(1.2570829,0,0,1.1611638,205.4417,-43.52207)"
+         d="m 665.47584,271.75009 c 0,0.9397 -1.06847,1.70148 -2.38648,1.70148 -1.31802,0 -2.38649,-0.76178 -2.38649,-1.70148 0,-0.9397 1.06847,-1.70147 2.38649,-1.70147 1.31801,0 2.38648,0.76177 2.38648,1.70147 z"
+         sodipodi:ry="1.7014757"
+         sodipodi:rx="2.3864853"
+         sodipodi:cy="271.75009"
+         sodipodi:cx="663.08936"
+         id="path6315"
+         style="opacity:0.7854251;color:#000000;fill:url(#radialGradient5029);fill-opacity:1;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/radio-unselected-insensitive.svg b/themes/Adwaita/gtk-3.0/assets/radio-unselected-insensitive.svg
new file mode 100644
index 0000000..2c7c606
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/radio-unselected-insensitive.svg
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="radio-selected-insensitive.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient11553-0-7-9">
+      <stop
+         id="stop11555-5-9-8"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop11557-1-9-0"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12692-5-0"
+       id="radialGradient8370"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       cx="663.01904"
+       cy="269.82831"
+       fx="663.01904"
+       fy="269.82831"
+       r="2.3864853" />
+    <linearGradient
+       id="linearGradient12692-5-0"
+       inkscape:collect="always">
+      <stop
+         id="stop12694-4-1"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop12696-5-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12415-4-1-5-2"
+       id="linearGradient8392"
+       gradientUnits="userSpaceOnUse"
+       x1="664.26984"
+       y1="261.44751"
+       x2="664.26984"
+       y2="248.05356" />
+    <linearGradient
+       id="linearGradient12415-4-1-5-2"
+       inkscape:collect="always">
+      <stop
+         id="stop12417-2-8-0-7"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop12419-5-0-9-3"
+         offset="1"
+         style="stop-color:#8f9985;stop-opacity:1" />
+    </linearGradient>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.627417"
+     inkscape:cx="7.2871964"
+     inkscape:cy="8.5324892"
+     inkscape:document-units="px"
+     inkscape:current-layer="g6305"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1180"
+     inkscape:window-height="950"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(-1031,770.36221)"
+       id="g6305"
+       style="display:inline;enable-background:new">
+      <g
+         style="opacity:0.5;display:inline;enable-background:new"
+         id="g16917"
+         transform="translate(3.7481965e-5,-1.1707725e-5)">
+        <path
+           sodipodi:type="arc"
+           style="color:#000000;fill:none;stroke:url(#linearGradient8392);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+           id="path16919"
+           sodipodi:cx="660.96808"
+           sodipodi:cy="255.0668"
+           sodipodi:rx="4.5078058"
+           sodipodi:ry="7.2937827"
+           d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+           transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)" />
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/assets/radio-unselected.svg b/themes/Adwaita/gtk-3.0/assets/radio-unselected.svg
new file mode 100644
index 0000000..7cf1539
--- /dev/null
+++ b/themes/Adwaita/gtk-3.0/assets/radio-unselected.svg
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   width="16"
+   height="16"
+   id="svg814"
+   version="1.1"
+   inkscape:version="0.48+devel r10053 custom"
+   sodipodi:docname="radio-selected.svg">
+  <defs
+     id="defs816">
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10354-2"
+       id="linearGradient8378"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-1609.9926,-78.958432)"
+       x1="1205.5752"
+       y1="-186.45331"
+       x2="1205.5752"
+       y2="-202.34555" />
+    <linearGradient
+       id="linearGradient10354-2"
+       inkscape:collect="always">
+      <stop
+         id="stop10356-2"
+         offset="0"
+         style="stop-color:#bcbfb8;stop-opacity:1" />
+      <stop
+         id="stop10358-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient10332-5"
+       id="linearGradient8380"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.84941206,0,0,0.84794288,-623.98415,-483.16392)"
+       x1="260.92538"
+       y1="233.77748"
+       x2="260.92538"
+       y2="248.97633" />
+    <linearGradient
+       inkscape:collect="always"
+       id="linearGradient10332-5">
+      <stop
+         style="stop-color:#d3d7cf;stop-opacity:1"
+         offset="0"
+         id="stop10334-5" />
+      <stop
+         style="stop-color:#8f9985;stop-opacity:1"
+         offset="1"
+         id="stop10336-29" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11577-0-5-0-2"
+       id="linearGradient8358"
+       gradientUnits="userSpaceOnUse"
+       x1="662.53418"
+       y1="249.29141"
+       x2="662.53418"
+       y2="262.49979" />
+    <linearGradient
+       id="linearGradient11577-0-5-0-2"
+       inkscape:collect="always">
+      <stop
+         id="stop11579-5-6-7-4"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop11581-8-0-0-9"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12415-4-1-5"
+       id="linearGradient8360"
+       gradientUnits="userSpaceOnUse"
+       x1="664.26984"
+       y1="261.44751"
+       x2="664.26984"
+       y2="248.05356" />
+    <linearGradient
+       id="linearGradient12415-4-1-5"
+       inkscape:collect="always">
+      <stop
+         id="stop12417-2-8-0"
+         offset="0"
+         style="stop-color:#d3d7cf;stop-opacity:1;" />
+      <stop
+         id="stop12419-5-0-9"
+         offset="1"
+         style="stop-color:#8f9985;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11623-4-5-4"
+       id="linearGradient8362"
+       gradientUnits="userSpaceOnUse"
+       x1="661.04559"
+       y1="251.6946"
+       x2="661.04559"
+       y2="258.26358" />
+    <linearGradient
+       id="linearGradient11623-4-5-4"
+       inkscape:collect="always">
+      <stop
+         id="stop11625-5-6-0"
+         offset="0"
+         style="stop-color:#2e87e3;stop-opacity:1" />
+      <stop
+         id="stop11627-4-4-9"
+         offset="1"
+         style="stop-color:#76b0ec;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12387-1-5"
+       id="linearGradient8364"
+       gradientUnits="userSpaceOnUse"
+       x1="662.26074"
+       y1="251.66537"
+       x2="662.26074"
+       y2="259.77792" />
+    <linearGradient
+       id="linearGradient12387-1-5"
+       inkscape:collect="always">
+      <stop
+         id="stop12389-7-2"
+         offset="0"
+         style="stop-color:#1b6fc5;stop-opacity:1;" />
+      <stop
+         id="stop12391-1-4"
+         offset="1"
+         style="stop-color:#145393;stop-opacity:1" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient11553-0-7-9"
+       id="linearGradient8366"
+       gradientUnits="userSpaceOnUse"
+       x1="660.16144"
+       y1="246.69635"
+       x2="660.27411"
+       y2="260.70532" />
+    <linearGradient
+       id="linearGradient11553-0-7-9">
+      <stop
+         id="stop11555-5-9-8"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop11557-1-9-0"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12405-7"
+       id="radialGradient8368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4685542,0,0,2.2820942,-309.65132,-324.35943)"
+       cx="660.8656"
+       cy="251.41324"
+       fx="660.8656"
+       fy="251.41324"
+       r="5.0290799" />
+    <linearGradient
+       id="linearGradient12405-7"
+       inkscape:collect="always">
+      <stop
+         id="stop12407-9"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop12409-7"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient12692-5-0"
+       id="radialGradient8370"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       cx="663.01904"
+       cy="269.82831"
+       fx="663.01904"
+       fy="269.82831"
+       r="2.3864853" />
+    <linearGradient
+       id="linearGradient12692-5-0"
+       inkscape:collect="always">
+      <stop
+         id="stop12694-4-1"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop12696-5-2"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <radialGradient
+       r="2.3864853"
+       fy="269.82831"
+       fx="663.01904"
+       cy="269.82831"
+       cx="663.01904"
+       gradientTransform="matrix(2.4143887,0,0,1.7213698,-937.76662,-194.09437)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient5029"
+       xlink:href="#linearGradient12692-5-0"
+       inkscape:collect="always" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="8.7319174"
+     inkscape:cy="7.9147276"
+     inkscape:document-units="px"
+     inkscape:current-layer="g6305"
+     showgrid="true"
+     borderlayer="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1180"
+     inkscape:window-height="950"
+     inkscape:window-x="1600"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4084"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata819">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1036.3622)">
+    <g
+       transform="translate(-1031,770.36221)"
+       id="g6305"
+       style="display:inline;enable-background:new">
+      <path
+         transform="matrix(1.4419436,0,0,0.89116967,85.92127,46.692201)"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         sodipodi:ry="7.2937827"
+         sodipodi:rx="4.5078058"
+         sodipodi:cy="255.0668"
+         sodipodi:cx="660.96808"
+         id="path6307"
+         style="color:#000000;fill:url(#linearGradient8358);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient8360);stroke-width:0.88215655;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:type="arc"
+         style="opacity:0.12955466;fill:none;stroke:url(#radialGradient8368);stroke-width:1.04254842;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:100"
+         id="path6313"
+         sodipodi:cx="660.96808"
+         sodipodi:cy="255.0668"
+         sodipodi:rx="4.5078058"
+         sodipodi:ry="7.2937827"
+         d="m 665.47588,255.0668 c 0,4.02825 -2.01821,7.29379 -4.5078,7.29379 -2.48959,0 -4.50781,-3.26554 -4.50781,-7.29379 0,-4.02824 2.01822,-7.29378 4.50781,-7.29378 2.48959,0 4.5078,3.26554 4.5078,7.29378 z"
+         transform="matrix(1.2201064,0,0,0.75406683,232.54855,81.662583)" />
+    </g>
+  </g>
+</svg>
diff --git a/themes/Adwaita/gtk-3.0/gtk.css b/themes/Adwaita/gtk-3.0/gtk.css
index 429d58f..e28e3a4 100644
--- a/themes/Adwaita/gtk-3.0/gtk.css
+++ b/themes/Adwaita/gtk-3.0/gtk.css
@@ -60,6 +60,7 @@
 
 @define-color highlighted_border #8a8f8a;
 @define-color menu_fg_color #2e87e3;
+ define-color menu_items_color #555753;
 
 @define-color notebook_border #918e8a;
 
@@ -84,7 +85,9 @@
     -GtkTextView-error-underline-color: @error_color;
 
     -GtkPaned-handle-size: 6;
+
     -GtkCheckButton-indicator-size: 16;
+    -GtkCheckMenuItem-indicator-size: 12;
 
     /* The size for scrollbars. The slider is 2px smaller, but we keep it
      * up so that the whole area is sensitive to button presses for the
@@ -417,35 +420,64 @@ GtkStatusbar {
     -GtkWidget-separator-height: 7;
 }
 
-GtkCheckButton, GtkRadioButton {
-    background-color: @theme_bg_color;
+.check {
+    background-image: url ("assets/checkbox-unchecked.svg");
 }
 
-GtkCheckButton:prelight,
-GtkRadioButton:prelight,
-GtkCheckButton:selected,
-GtkRadioButton:selected {
-    color: shade (@theme_selected_bg_color, 0.84);
-    background-color: shade (@theme_bg_color, 1.1);
+.check:insensitive {
+    background-image: url ("assets/checkbox-unchecked-insensitive.svg");
+}
+
+.check:active {
+    background-image: url ("assets/checkbox-checked.svg");
+}
+
+.check:active:insensitive {
+    background-image: url ("assets/checkbox-checked-insensitive.svg");
+}
+
+.check:inconsistent {
+    background-image: url ("assets/checkbox-mixed.svg");
+}
+
+.radio {
+    background-image: url ("assets/radio-unselected.svg");
+}
+
+.radio:insensitive {
+    background-image: url ("assets/radio-unselected-insensitive.svg");
+}
+
+.radio:active {
+    background-image: url ("assets/radio-selected.svg");
 }
 
-.check, .radio,
-.check:active, .radio:active,
-.check:hover, .radio:hover,
-.menu .check, .menu .radio,
-.menu .check:active, .menu .radio:active,
-.menu .check:hover, .menu .radio:hover {
+.radio:active:insensitive {
+    background-image: url ("assets/radio-selected-insensitive.svg");
+}
+
+.radio:inconsistent {
+    /* FIXME: need an asset for this */
+    background-image: none;
     color: shade (@theme_selected_bg_color, 0.84);
     border-color: shade (@frame_color, 1.035);
-    color: @menu_fg_color;
     background-color: mix (shade (@highlighted_border, 1.345), @theme_base_color, 0.9);
 }
 
-.check:insensitive,
-.radio:insensitive {
-    border-color: shade (@inactive_frame_color, 1.06);
-    background-color: shade (@highlighted_border, 1.345);
-    color: shade (#d3d7cf, 0.9);
+.menu .check:active {
+    color: @menu_items_color;
+}
+
+.menu .radio:active {
+    color: @menu_items_color;
+}
+
+.menu .check:prelight {
+    color: @selected_fg_color;
+}
+
+.menu .radio:prelight {
+    color: @selected_fg_color;
 }
 
 .trough {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]