[Xfce4-commits] [panel-plugins/xfce4-verve-plugin] 01/04: Start working on custom colors

noreply at xfce.org noreply at xfce.org
Wed Nov 22 23:34:27 CET 2017


This is an automated email from the git hooks/post-receive script.

i   s   a   a   c   s   c   h   e   m   m       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository panel-plugins/xfce4-verve-plugin.

commit 9cea61f1ae537bea50ad252dd31fc974864c2078
Author: Isaac Schemm <isaacschemm at gmail.com>
Date:   Thu Nov 16 12:36:53 2017 -0600

    Start working on custom colors
---
 panel-plugin/verve-plugin.c | 74 ++++++++++++++++++++++++++++++++++++++++-----
 1 file changed, 67 insertions(+), 7 deletions(-)

diff --git a/panel-plugin/verve-plugin.c b/panel-plugin/verve-plugin.c
index c6447bf..72da842 100644
--- a/panel-plugin/verve-plugin.c
+++ b/panel-plugin/verve-plugin.c
@@ -54,6 +54,12 @@ typedef struct
   GtkWidget        *event_box;
   GtkWidget        *label;
   GtkWidget        *input;
+  gboolean          fg_color_override;
+  GdkColor          fg_color;
+  gboolean          bg_color_override;
+  GdkColor          bg_color;
+  gboolean          base_color_override;
+  GdkColor          base_color;
   
   /* Command history */
   GList            *history_current;
@@ -137,9 +143,9 @@ verve_plugin_focus_timeout (VervePlugin *verve)
   if (gdk_color_equal (&style->base[GTK_STATE_NORMAL], &style->base[GTK_STATE_SELECTED]))
     {
       /* Make it look normal again */
-      gtk_widget_modify_base (verve->input, GTK_STATE_NORMAL, &verve->default_style->base[GTK_STATE_NORMAL]);
-      gtk_widget_modify_bg (verve->input, GTK_STATE_NORMAL, &verve->default_style->bg[GTK_STATE_NORMAL]);
-      gtk_widget_modify_text (verve->input, GTK_STATE_NORMAL, &verve->default_style->text[GTK_STATE_NORMAL]);
+      gtk_widget_modify_base (verve->input, GTK_STATE_NORMAL, verve->base_color_override ? &verve->base_color : &verve->default_style->base[GTK_STATE_NORMAL]);
+      gtk_widget_modify_bg (verve->input, GTK_STATE_NORMAL, verve->bg_color_override ? &verve->bg_color : &verve->default_style->bg[GTK_STATE_NORMAL]);
+      gtk_widget_modify_text (verve->input, GTK_STATE_NORMAL, verve->fg_color_override ? &verve->fg_color : &verve->default_style->text[GTK_STATE_NORMAL]);
     }
   else
     {
@@ -170,9 +176,9 @@ verve_plugin_focus_timeout_reset (VervePlugin *verve)
     }
   
   /* Reset entry background */
-  gtk_widget_modify_base (verve->input, GTK_STATE_NORMAL, &verve->default_style->base[GTK_STATE_NORMAL]);
-  gtk_widget_modify_bg (verve->input, GTK_STATE_NORMAL, &verve->default_style->bg[GTK_STATE_NORMAL]);
-  gtk_widget_modify_text (verve->input, GTK_STATE_NORMAL, &verve->default_style->text[GTK_STATE_NORMAL]);
+  gtk_widget_modify_base (verve->input, GTK_STATE_NORMAL, verve->base_color_override ? &verve->base_color : &verve->default_style->base[GTK_STATE_NORMAL]);
+  gtk_widget_modify_bg (verve->input, GTK_STATE_NORMAL, verve->bg_color_override ? &verve->bg_color : &verve->default_style->bg[GTK_STATE_NORMAL]);
+  gtk_widget_modify_text (verve->input, GTK_STATE_NORMAL, verve->fg_color_override ? &verve->fg_color : &verve->default_style->text[GTK_STATE_NORMAL]);
 }
 
 
@@ -561,7 +567,7 @@ verve_plugin_new (XfcePanelPlugin *plugin)
   GtkStyle *style = gtk_widget_get_style (verve->input);
   verve->default_style = g_new (GtkStyle, 1);
   memcpy(verve->default_style, style, sizeof (GtkStyle));
-  
+
 #ifdef HAVE_DBUS
   /* Attach the D-BUS service */
   verve->dbus_service = g_object_new (VERVE_TYPE_DBUS_SERVICE, NULL);
@@ -650,6 +656,42 @@ verve_plugin_update_label (XfcePanelPlugin *plugin,
 
 
 static gboolean
+verve_plugin_update_colors (XfcePanelPlugin *plugin,
+                            const gchar     *fg_color_str,
+                            const gchar     *bg_color_str,
+                            const gchar     *base_color_str,
+                            VervePlugin     *verve)
+{
+  g_return_val_if_fail (verve != NULL, FALSE);
+
+  GdkColor color;
+  verve->fg_color_override = FALSE;
+  if (gdk_color_parse(fg_color_str, &color)) {
+    verve->fg_color_override = TRUE;
+    verve->fg_color = color;
+  }
+  verve->bg_color_override = FALSE;
+  if (gdk_color_parse(bg_color_str, &color)) {
+    verve->bg_color_override = TRUE;
+    verve->bg_color = color;
+  }
+  verve->base_color_override = FALSE;
+  if (gdk_color_parse(base_color_str, &color)) {
+    verve->base_color_override = TRUE;
+    verve->base_color = color;
+  }
+
+  /* Reset entry colors */
+  gtk_widget_modify_base (verve->input, GTK_STATE_NORMAL, verve->base_color_override ? &verve->base_color : &verve->default_style->base[GTK_STATE_NORMAL]);
+  gtk_widget_modify_bg (verve->input, GTK_STATE_NORMAL, verve->bg_color_override ? &verve->bg_color : &verve->default_style->bg[GTK_STATE_NORMAL]);
+  gtk_widget_modify_text (verve->input, GTK_STATE_NORMAL, verve->fg_color_override ? &verve->fg_color : &verve->default_style->text[GTK_STATE_NORMAL]);
+
+  return TRUE;
+}
+
+
+
+static gboolean
 verve_plugin_update_history_length (XfcePanelPlugin *plugin,
                                     gint             history_length,
                                     VervePlugin     *verve)
@@ -695,6 +737,11 @@ verve_plugin_read_rc_file (XfcePanelPlugin *plugin,
 
   /* Default label */
   gchar  *label = "";
+  
+  /* Default foreground and background colors */
+  gchar  *fg_color_str = "";
+  gchar  *bg_color_str = "";
+  gchar  *base_color_str = "";
 
   /* Default number of saved history entries */
   gint    history_length = 25;
@@ -734,6 +781,11 @@ verve_plugin_read_rc_file (XfcePanelPlugin *plugin,
       /* Read label text */
       label = xfce_rc_read_entry (rc, "label", label);
 
+      /* Read foreground and background colors */
+      fg_color_str = xfce_rc_read_entry (rc, "foreground-color", fg_color_str);
+      bg_color_str = xfce_rc_read_entry (rc, "background-color", bg_color_str);
+      base_color_str = xfce_rc_read_entry (rc, "base-color", base_color_str);
+
       /* Read number of saved history entries */
       history_length = xfce_rc_read_int_entry (rc, "history-length", history_length);
 
@@ -755,6 +807,9 @@ verve_plugin_read_rc_file (XfcePanelPlugin *plugin,
     
       /* Update label */
       verve_plugin_update_label (NULL, label, verve);
+    
+      /* Update colors */
+      verve_plugin_update_colors (NULL, fg_color_str, bg_color_str, base_color_str, verve);
 
       /* Update history length */
       verve_plugin_update_history_length (NULL, history_length, verve);
@@ -815,6 +870,11 @@ verve_plugin_write_rc_file (XfcePanelPlugin *plugin,
 
       /* Write smartbookmark URL */
       xfce_rc_write_entry (rc, "smartbookmark-url", verve->launch_params.smartbookmark_url);
+
+      /* Write colors */
+      xfce_rc_write_entry (rc, "foreground-color", verve->fg_color_override ? "orange" : "");
+      xfce_rc_write_entry (rc, "background-color", verve->bg_color_override ? "green" : "");
+      xfce_rc_write_entry (rc, "base-color", verve->base_color_override ? "blue" : "");
     
       /* Close handle */
       xfce_rc_close (rc);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list