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, ¤t, 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); }