[gitg] Added state and local name



commit 173a4b1a7e0f77f2020df331c41bbb40c7db0fc5
Author: Jesse van den Kieboom <jessevdk gnome org>
Date:   Sun Jun 28 23:48:01 2009 +0200

    Added state and local name

 gitg/gitg-ref.c |   30 ++++++++++++++++++++++++++++++
 gitg/gitg-ref.h |   39 ++++++++++++++++++++++++++-------------
 2 files changed, 56 insertions(+), 13 deletions(-)
---
diff --git a/gitg/gitg-ref.c b/gitg/gitg-ref.c
index 2e5f826..f577338 100644
--- a/gitg/gitg-ref.c
+++ b/gitg/gitg-ref.c
@@ -39,6 +39,7 @@ struct _GitgRef
 	gchar *shortname;
 	
 	gchar *prefix;
+	GitgRefState state;
 };
 
 GType 
@@ -184,3 +185,32 @@ gitg_ref_get_prefix(GitgRef *ref)
 {
 	return ref->prefix;
 }
+
+GitgRefState    
+gitg_ref_get_state (GitgRef *ref)
+{
+	return ref->state;
+}
+
+void			
+gitg_ref_set_state (GitgRef      *ref,
+                    GitgRefState  state)
+{
+	ref->state = state;
+}
+
+gchar *
+gitg_ref_get_local_name (GitgRef *ref)
+{
+	gchar const *shortname = gitg_ref_get_shortname (ref);
+	gchar const *prefix = gitg_ref_get_prefix (ref);
+	
+	if (prefix && g_str_has_prefix (shortname, prefix))
+	{
+		return g_strdup (shortname + strlen(prefix) + 1);
+	}
+	else
+	{
+		return g_strdup (shortname);
+	}
+}
diff --git a/gitg/gitg-ref.h b/gitg/gitg-ref.h
index 0948b64..8a4da07 100644
--- a/gitg/gitg-ref.h
+++ b/gitg/gitg-ref.h
@@ -40,28 +40,41 @@ typedef enum
 	GITG_REF_TYPE_TAG
 } GitgRefType;
 
+typedef enum
+{
+	GITG_REF_STATE_NONE = 0,
+	GITG_REF_STATE_SELECTED,
+	GITG_REF_STATE_PRELIGHT
+} GitgRefState;
+
 typedef struct _GitgRef GitgRef;
 
 GType 			 gitg_ref_get_type 				(void) G_GNUC_CONST;
 
-GitgRef 		*gitg_ref_new					(gchar const *hash, 
-                                                 gchar const *name);
+GitgRef 		*gitg_ref_new					(gchar const  *hash, 
+                                                 gchar const  *name);
+
+gchar const 	*gitg_ref_get_hash				(GitgRef      *ref);
+GitgRefType 	 gitg_ref_get_ref_type			(GitgRef      *ref);
+gchar const 	*gitg_ref_get_name				(GitgRef      *ref);
+
+gchar const 	*gitg_ref_get_shortname			(GitgRef      *ref);
+gchar const 	*gitg_ref_get_prefix			(GitgRef      *ref);
 
-gchar const 	*gitg_ref_get_hash				(GitgRef     *ref);
-GitgRefType 	 gitg_ref_get_ref_type			(GitgRef     *ref);
-gchar const 	*gitg_ref_get_name				(GitgRef     *ref);
+gchar           *gitg_ref_get_local_name 		(GitgRef      *ref);
 
-gchar const 	*gitg_ref_get_shortname			(GitgRef     *ref);
-gchar const 	*gitg_ref_get_prefix			(GitgRef     *ref);
+GitgRefState     gitg_ref_get_state             (GitgRef      *ref);
+void			 gitg_ref_set_state				(GitgRef      *ref,
+                                                 GitgRefState state);
 
-GitgRef			*gitg_ref_copy					(GitgRef     *ref);
-void 			 gitg_ref_free					(GitgRef     *ref);
+GitgRef			*gitg_ref_copy					(GitgRef      *ref);
+void 			 gitg_ref_free					(GitgRef      *ref);
 
-gboolean 		 gitg_ref_equal					(GitgRef     *ref, 
-                                                 GitgRef     *other);
+gboolean 		 gitg_ref_equal					(GitgRef      *ref, 
+                                                 GitgRef      *other);
 
-gboolean		 gitg_ref_equal_prefix			(GitgRef     *ref,
-                                                 GitgRef     *other);
+gboolean		 gitg_ref_equal_prefix			(GitgRef      *ref,
+                                                 GitgRef      *other);
 
 G_END_DECLS
 



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