[gnome-control-center] keyboard: Add _equal() helper function



commit b77df5138445b9e00f85ff6b866dd8beb00ae618
Author: Bastien Nocera <hadess hadess net>
Date:   Thu Feb 24 04:20:07 2011 +0000

    keyboard: Add _equal() helper function

 panels/keyboard/cc-keyboard-item.c |   21 +++++++++++++++++++++
 panels/keyboard/cc-keyboard-item.h |    3 +++
 2 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/panels/keyboard/cc-keyboard-item.c b/panels/keyboard/cc-keyboard-item.c
index aa7739e..ec7e130 100644
--- a/panels/keyboard/cc-keyboard-item.c
+++ b/panels/keyboard/cc-keyboard-item.c
@@ -554,6 +554,27 @@ cc_keyboard_item_load_from_gsettings (CcKeyboardItem *item,
   return TRUE;
 }
 
+gboolean
+cc_keyboard_item_equal (CcKeyboardItem *a,
+			CcKeyboardItem *b)
+{
+  if (a->type != b->type)
+    return FALSE;
+  switch (a->type)
+    {
+      case CC_KEYBOARD_ITEM_TYPE_GCONF:
+        return g_str_equal (a->gconf_key, b->gconf_key);
+      case CC_KEYBOARD_ITEM_TYPE_GCONF_DIR:
+	return g_str_equal (a->gconf_key_dir, b->gconf_key_dir);
+      case CC_KEYBOARD_ITEM_TYPE_GSETTINGS:
+	return (g_str_equal (a->schema, b->schema) &&
+		g_str_equal (a->key, b->key));
+      default:
+	g_assert_not_reached ();
+    }
+
+}
+
 /*
  * vim: sw=2 ts=8 cindent noai bs=2
  */
diff --git a/panels/keyboard/cc-keyboard-item.h b/panels/keyboard/cc-keyboard-item.h
index 243d898..ce29052 100644
--- a/panels/keyboard/cc-keyboard-item.h
+++ b/panels/keyboard/cc-keyboard-item.h
@@ -115,6 +115,9 @@ const char * cc_keyboard_item_get_description (CcKeyboardItem *item);
 const char * cc_keyboard_item_get_binding     (CcKeyboardItem *item);
 const char * cc_keyboard_item_get_command     (CcKeyboardItem *item);
 
+gboolean     cc_keyboard_item_equal           (CcKeyboardItem *a,
+					       CcKeyboardItem *b);
+
 G_END_DECLS
 
 #endif /* __CC_KEYBOARD_ITEM_H */



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