[Cxplorer-cvs 00975] CVS update: cxplorer/src

Back to archive index

Yasumichi Akahoshi yasum****@users*****
2005年 4月 8日 (金) 01:15:26 JST


Index: cxplorer/src/cxp-dir-view.c
diff -u cxplorer/src/cxp-dir-view.c:1.8 cxplorer/src/cxp-dir-view.c:1.9
--- cxplorer/src/cxp-dir-view.c:1.8	Thu Apr  7 23:11:43 2005
+++ cxplorer/src/cxp-dir-view.c	Fri Apr  8 01:15:26 2005
@@ -25,6 +25,8 @@
 	gboolean dispose_has_run;
 };
 
+#define CXP_DIR_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CXP_TYPE_DIR_VIEW, CxpDirViewPrivate))
+
 /**
  * This enumeration define signal.
  */
@@ -109,19 +111,19 @@
 static void cxp_dir_view_init (GTypeInstance * instance, gpointer g_class)
 {
 	CxpDirView *self = (CxpDirView *) instance;
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(self);
 
 	gtk_scrolled_window_set_hadjustment (GTK_SCROLLED_WINDOW (self), NULL);
 	gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (self), NULL);
-	self->priv = g_new (CxpDirViewPrivate, 1);
-	self->priv->dirview = cxp_dir_view_tree_view_new (self);
-	gtk_container_add (GTK_CONTAINER (self), self->priv->dirview);
-	self->priv->icon = NULL;
-	self->priv->dispose_has_run = FALSE;
+	priv->dirview = cxp_dir_view_tree_view_new (self);
+	gtk_container_add (GTK_CONTAINER (self), priv->dirview);
+	priv->icon = NULL;
+	priv->dispose_has_run = FALSE;
 
 	/* signal connect */
-	g_signal_connect (self->priv->dirview, "row_expanded",
+	g_signal_connect (priv->dirview, "row_expanded",
 			  G_CALLBACK (cxp_dir_view_on_row_expanded), self);
-	g_signal_connect (self->priv->dirview, "cursor_changed",
+	g_signal_connect (priv->dirview, "cursor_changed",
 			  G_CALLBACK (cxp_dir_view_on_cursor_changed), self);
 }
 
@@ -147,6 +149,8 @@
 					       directory_changed), NULL,
 			      NULL, g_cclosure_marshal_VOID__VOID,
 			      G_TYPE_NONE, 0);
+	
+	g_type_class_add_private (klass, sizeof (CxpDirViewPrivate));
 
 	parent_class = g_type_class_peek_parent (klass);
 }
@@ -159,15 +163,15 @@
  **/
 static void cxp_dir_view_dispose (GObject * obj)
 {
-	CxpDirView *self = (CxpDirView *) obj;
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(obj);
 
-	if (self->priv->dispose_has_run)
+	if (priv->dispose_has_run)
 	{
 		/* When dispose has run, return. */
 		return;
 	}
 	/* メソッド dispose() が二度実行されることがないようチェックします。 */
-	self->priv->dispose_has_run = TRUE;
+	priv->dispose_has_run = TRUE;
 
 	/* Chain up to the parent class */
 	G_OBJECT_CLASS (parent_class)->dispose (obj);
@@ -181,11 +185,6 @@
  **/
 static void cxp_dir_view_finalize (GObject * object)
 {
-	CxpDirView *self = (CxpDirView *) object;
-
-	g_free (self->priv);
-
-	/* Chain up to the parent class */
 	G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -358,11 +357,11 @@
 					 GtkTreeModel * tree_model,
 					 GtkTreeIter * iter, gpointer data)
 {
-	CxpDirView *self = CXP_DIR_VIEW (data);
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(data);
 
-	if (self->priv->icon)
+	if (priv->icon)
 	{
-		g_object_set (cell, "pixbuf", self->priv->icon, NULL);
+		g_object_set (cell, "pixbuf", priv->icon, NULL);
 	}
 	else
 	{
@@ -413,13 +412,12 @@
 					  GtkTreePath * path,
 					  gpointer user_data)
 {
-	CxpDirView *self;
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(user_data);
 	GtkTreeStore *store;
 	GtkTreeIter child;
 	gchar *fullpath;
 	gboolean isDummy;
 
-	self = CXP_DIR_VIEW (user_data);
 	store = GTK_TREE_STORE (gtk_tree_view_get_model (treeview));
 	gtk_tree_model_iter_children (GTK_TREE_MODEL (store), &child, iter);
 	gtk_tree_model_get (GTK_TREE_MODEL (store), &child, COL_IS_DUMMY,
@@ -430,7 +428,7 @@
 		gtk_tree_model_get (GTK_TREE_MODEL (store), iter,
 				    COL_FULL_PATH, &fullpath, COL_TERMINATOR);
 		cxp_dir_view_set_child_dirctory (store, iter, fullpath,
-						 self->priv->showDotFile);
+						 priv->showDotFile);
 		gtk_tree_store_remove (store, &child);
 
 		g_free (fullpath);
@@ -443,13 +441,7 @@
 {
 	CxpDirView *self = CXP_DIR_VIEW (user_data);
 
-	if (self->priv->dispose_has_run)
-	{
-		return;
-	}
-
-	g_signal_emit (self,
-		       cxp_dir_view_signals[DIRECTORY_CHANGED_SIGNAL], 0);
+	g_signal_emit (self, cxp_dir_view_signals[DIRECTORY_CHANGED_SIGNAL], 0);
 }
 
 static GtkTreeIter *cxp_dir_view_search_child_node (GtkTreeModel * model,
@@ -496,29 +488,33 @@
 GtkWidget *cxp_dir_view_new (gboolean showDotFile, GdkPixbuf * icon)
 {
 	CxpDirView *object;
+	CxpDirViewPrivate *priv;
 
 	object = CXP_DIR_VIEW (g_object_new (CXP_TYPE_DIR_VIEW, NULL));
-	object->priv->showDotFile = showDotFile;
-	object->priv->icon = icon;
+
+	priv = CXP_DIR_VIEW_GET_PRIVATE(object);
+	priv->showDotFile = showDotFile;
+	priv->icon = icon;
 
 	return GTK_WIDGET (object);
 }
 
 gchar *cxp_dir_view_get_current_directory (CxpDirView * instance)
 {
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(instance);
 	gchar *fullpath = NULL;
 	GtkTreePath *path;
 	GtkTreeViewColumn *column;
 	GtkTreeIter iter;
 	GtkTreeModel *model;
 
-	gtk_tree_view_get_cursor (GTK_TREE_VIEW (instance->priv->dirview),
+	gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->dirview),
 				  &path, &column);
 
 	if (path)
 	{
 		model = gtk_tree_view_get_model (GTK_TREE_VIEW
-						 (instance->priv->dirview));
+						 (priv->dirview));
 		if (gtk_tree_model_get_iter (model, &iter, path))
 		{
 			gtk_tree_model_get (model, &iter, COL_FULL_PATH,
@@ -534,6 +530,7 @@
 gboolean cxp_dir_view_change_directory (CxpDirView * instance,
 					const gchar * fullpath)
 {
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(instance);
 	gchar **elements;
 	gint index;
 	GtkWidget *treeview;
@@ -548,7 +545,7 @@
 		return FALSE;
 	}
 
-	treeview = instance->priv->dirview;
+	treeview = priv->dirview;
 
 	parent = g_new (GtkTreeIter, 1);
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (treeview));
@@ -594,11 +591,14 @@
 void cxp_dir_view_set_show_dot_file (CxpDirView * instance,
 				     gboolean showDotFile)
 {
-	instance->priv->showDotFile = showDotFile;
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(instance);
+
+	priv->showDotFile = showDotFile;
 }
 
 void cxp_dir_view_refresh (CxpDirView * instance)
 {
+	CxpDirViewPrivate *priv = CXP_DIR_VIEW_GET_PRIVATE(instance);
 	gchar *currentDirectory;
 	GtkWidget *dirview;
 	GtkTreeIter root, current;
@@ -606,7 +606,7 @@
 	GtkTreePath *path;
 	GtkTreeViewColumn *column;
 
-	dirview = instance->priv->dirview;
+	dirview = priv->dirview;
 	gtk_tree_view_get_cursor (GTK_TREE_VIEW (dirview), &path, &column);
 	model = gtk_tree_view_get_model (GTK_TREE_VIEW (dirview));
 	gtk_tree_model_get_iter (model, &current, path);
@@ -618,7 +618,7 @@
 	gtk_tree_store_set (GTK_TREE_STORE (model), &root,
 			    COL_FULL_PATH, "/", COL_IS_DUMMY, FALSE, -1);
 	cxp_dir_view_set_child_dirctory (GTK_TREE_STORE (model), &root, "/",
-					 instance->priv->showDotFile);
+					 priv->showDotFile);
 	cxp_dir_view_change_directory (instance, currentDirectory);
 	g_free (currentDirectory);
 }


Cxplorer-cvs メーリングリストの案内
Back to archive index