[libchamplain] Set the highlight color to use Gtk's selection color
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Subject: [libchamplain] Set the highlight color to use Gtk's selection color
- Date: Tue, 28 Jul 2009 21:39:48 +0000 (UTC)
commit 044b08f5e42ea0a3419354146364901dcc1d1369
Author: Pierre-Luc Beaudoin <pierre-luc pierlux com>
Date: Mon Jul 27 22:45:41 2009 -0400
Set the highlight color to use Gtk's selection color
champlain-gtk/gtk-champlain-embed.c | 8 ++++++++
champlain/champlain-marker.c | 20 +++++++++++++++++++-
champlain/champlain-marker.h | 2 ++
3 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/champlain-gtk/gtk-champlain-embed.c b/champlain-gtk/gtk-champlain-embed.c
index 755a34a..5330191 100644
--- a/champlain-gtk/gtk-champlain-embed.c
+++ b/champlain-gtk/gtk-champlain-embed.c
@@ -178,6 +178,7 @@ gtk_champlain_embed_init (GtkChamplainEmbed *embed)
{
ClutterColor stage_color = { 0x34, 0x39, 0x39, 0xff };
ClutterActor *stage;
+ GtkStyle *style;
GtkChamplainEmbedPrivate *priv = GTK_CHAMPLAIN_EMBED_GET_PRIVATE (embed);
embed->priv = priv;
@@ -212,6 +213,13 @@ gtk_champlain_embed_init (GtkChamplainEmbed *embed)
clutter_stage_set_color (CLUTTER_STAGE (stage), &stage_color);
gtk_container_add (GTK_CONTAINER (embed), priv->clutter_embed);
+
+ /* Set selection color */
+ style = gtk_widget_get_style (GTK_WIDGET (embed));
+ ClutterColor color = {0, 0, 0, };
+ gtk_clutter_get_bg_color (GTK_WIDGET (embed), GTK_STATE_SELECTED, &color);
+ champlain_marker_set_highlight_color (&color);
+
}
static void
diff --git a/champlain/champlain-marker.c b/champlain/champlain-marker.c
index 6589d89..0f4f683 100644
--- a/champlain/champlain-marker.c
+++ b/champlain/champlain-marker.c
@@ -55,7 +55,7 @@
#define DEFAULT_FONT_NAME "Sans 11"
-static ClutterColor SELECTED_COLOR = {0x00, 0x00, 0xff, 0xff};
+static ClutterColor SELECTED_COLOR = {0x00, 0x33, 0xcc, 0xff};
static ClutterColor DEFAULT_COLOR = {0x33, 0x33, 0x33, 0xff};
static ClutterColor DEFAULT_TEXT_COLOR = {0xee, 0xee, 0xee, 0xff};
@@ -115,6 +115,24 @@ G_DEFINE_TYPE (ChamplainMarker, champlain_marker, CHAMPLAIN_TYPE_BASE_MARKER);
static void draw_marker (ChamplainMarker *marker);
static void queue_redraw (ChamplainMarker *marker);
+/**
+ * champlain_marker_set_hightlight_color:
+ * @color: a #ClutterColor
+ *
+ * Changes the highlight color, this is to ensure a better integration with
+ * the desktop, this is automatically done by GtkChamplainEmbed.
+ *
+ * Since: 0.2
+ */
+void
+champlain_marker_set_highlight_color (ClutterColor *color)
+{
+ SELECTED_COLOR.red = color->red;
+ SELECTED_COLOR.green = color->green;
+ SELECTED_COLOR.blue = color->blue;
+ SELECTED_COLOR.alpha = color->alpha;
+}
+
static void
champlain_marker_get_property (GObject *object,
guint prop_id,
diff --git a/champlain/champlain-marker.h b/champlain/champlain-marker.h
index d43a835..f52e4cb 100644
--- a/champlain/champlain-marker.h
+++ b/champlain/champlain-marker.h
@@ -111,6 +111,8 @@ PangoEllipsizeMode champlain_marker_get_ellipsize (ChamplainMarker *marker);
gboolean champlain_marker_get_single_line_mode (ChamplainMarker *marker);
gboolean champlain_marker_get_draw_background (ChamplainMarker *marker);
+void champlain_marker_set_highlight_color (ClutterColor *color);
+
G_END_DECLS
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]