Yasumichi Akahoshi
yasum****@users*****
2005年 4月 8日 (金) 00:20:37 JST
Index: cxplorer/src/cxp-right-pane.c diff -u cxplorer/src/cxp-right-pane.c:1.22 cxplorer/src/cxp-right-pane.c:1.23 --- cxplorer/src/cxp-right-pane.c:1.22 Thu Apr 7 23:11:43 2005 +++ cxplorer/src/cxp-right-pane.c Fri Apr 8 00:20:37 2005 @@ -32,6 +32,8 @@ CxpHandler *handler; }; +#define CXP_RIGHT_PANE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CXP_TYPE_RIGHT_PANE, CxpRightPanePrivate)) + /** * This enumeration define property_id. */ @@ -158,6 +160,8 @@ gobject_class->set_property = cxp_right_pane_set_property; gobject_class->get_property = cxp_right_pane_get_property; + g_type_class_add_private (klass, sizeof (CxpRightPanePrivate)); + /* install properties. */ pspec = g_param_spec_string ("preview-dir", "Command to preview directory", @@ -198,55 +202,55 @@ static void cxp_right_pane_instance_init (CxpRightPane * self) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(self); GtkWidget *scrolled_window; PangoFontDescription *font_desc; - self->priv = g_new (CxpRightPanePrivate, 1); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_paned_pack1 (GTK_PANED (self), scrolled_window, TRUE, FALSE); gtk_widget_show (scrolled_window); - self->priv->file_list = cxp_right_pane_file_list_new (); + priv->file_list = cxp_right_pane_file_list_new (); gtk_container_add (GTK_CONTAINER (scrolled_window), - self->priv->file_list); - gtk_widget_show (self->priv->file_list); + priv->file_list); + gtk_widget_show (priv->file_list); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_paned_pack2 (GTK_PANED (self), scrolled_window, FALSE, TRUE); gtk_widget_show (scrolled_window); - self->priv->preview = gtk_text_view_new (); + priv->preview = gtk_text_view_new (); font_desc = pango_font_description_new (); pango_font_description_set_family (font_desc, "monospace"); - gtk_widget_modify_font (GTK_WIDGET (self->priv->preview), font_desc); + gtk_widget_modify_font (GTK_WIDGET (priv->preview), font_desc); pango_font_description_free (font_desc); - gtk_text_view_set_editable (GTK_TEXT_VIEW (self->priv->preview), FALSE); + gtk_text_view_set_editable (GTK_TEXT_VIEW (priv->preview), FALSE); gtk_container_add (GTK_CONTAINER (scrolled_window), - self->priv->preview); - gtk_widget_show (self->priv->preview); - self->priv->show_dot_file = FALSE; - self->priv->dispose_has_run = FALSE; - self->priv->cur_dir = NULL; - self->priv->preview_text = NULL; - self->priv->preview_binary = NULL; - self->priv->handler = cxp_handler_new(); + priv->preview); + gtk_widget_show (priv->preview); + priv->show_dot_file = FALSE; + priv->dispose_has_run = FALSE; + priv->cur_dir = NULL; + priv->preview_text = NULL; + priv->preview_binary = NULL; + priv->handler = cxp_handler_new(); - g_signal_connect (self->priv->file_list, "cursor_changed", + g_signal_connect (priv->file_list, "cursor_changed", G_CALLBACK (cxp_right_pane_on_cursor_changed), self); - g_signal_connect (self->priv->file_list, "row_activated", + g_signal_connect (priv->file_list, "row_activated", G_CALLBACK (cxp_right_pane_on_row_activated), self); } static void cxp_right_pane_dispose (GObject * obj) { - CxpRightPane *self = (CxpRightPane *) obj; + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(obj); - if (self->priv->dispose_has_run) + if (priv->dispose_has_run) { /* If dispose did already run, return. */ return; } /* Make sure dispose does not run twice. */ - self->priv->dispose_has_run = TRUE; + priv->dispose_has_run = TRUE; /* * In dispose, you are supposed to free all types referenced from this @@ -254,7 +258,7 @@ * the most simple solution is to unref all members on which you own a * reference. */ - g_object_unref (self->priv->handler); + g_object_unref (priv->handler); /* Chain up to the parent class */ G_OBJECT_CLASS (parent_class)->dispose (obj); @@ -262,14 +266,6 @@ static void cxp_right_pane_finalize (GObject * obj) { - CxpRightPane *self = (CxpRightPane *) obj; - - /* - * Here, complete object destruction. - * You might not need to do much... - */ - g_free (self->priv); - /* Chain up to the parent class */ G_OBJECT_CLASS (parent_class)->finalize (obj); } @@ -279,21 +275,21 @@ const GValue * value, GParamSpec * pspec) { - CxpRightPane *self = CXP_RIGHT_PANE (object); + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(object); switch (property_id) { case CXP_RIGHT_PANE_PREVIEW_DIR: - g_free (self->priv->preview_dir); - self->priv->preview_dir = g_value_dup_string (value); + g_free (priv->preview_dir); + priv->preview_dir = g_value_dup_string (value); break; case CXP_RIGHT_PANE_PREVIEW_TEXT: - g_free (self->priv->preview_text); - self->priv->preview_text = g_value_dup_string (value); + g_free (priv->preview_text); + priv->preview_text = g_value_dup_string (value); break; case CXP_RIGHT_PANE_PREVIEW_BINARY: - g_free (self->priv->preview_binary); - self->priv->preview_binary = g_value_dup_string (value); + g_free (priv->preview_binary); + priv->preview_binary = g_value_dup_string (value); break; default: /* We don't have any other property... */ @@ -306,18 +302,18 @@ guint property_id, GValue * value, GParamSpec * pspec) { - CxpRightPane *self = CXP_RIGHT_PANE (object); + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(object); switch (property_id) { case CXP_RIGHT_PANE_PREVIEW_DIR: - g_value_set_string (value, self->priv->preview_dir); + g_value_set_string (value, priv->preview_dir); break; case CXP_RIGHT_PANE_PREVIEW_TEXT: - g_value_set_string (value, self->priv->preview_text); + g_value_set_string (value, priv->preview_text); break; case CXP_RIGHT_PANE_PREVIEW_BINARY: - g_value_set_string (value, self->priv->preview_binary); + g_value_set_string (value, priv->preview_binary); break; default: /* We don't have any other property... */ @@ -412,6 +408,7 @@ gpointer user_data) { CxpRightPane *self = CXP_RIGHT_PANE (user_data); + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(self); GtkTextBuffer *text_buffer; GtkTreePath *treepath; GtkTreeViewColumn *column; @@ -420,7 +417,7 @@ gchar *fullpath; text_buffer = - gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->preview)); + gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->preview)); gtk_text_buffer_set_text (text_buffer, "", -1); gtk_tree_view_get_cursor (treeview, &treepath, &column); @@ -454,11 +451,12 @@ gpointer user_data) { CxpRightPane *right_pane = CXP_RIGHT_PANE (user_data); + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *fullpath; GtkTreeModel *model; GtkTreeIter iter; - if (right_pane->priv->dispose_has_run) + if (priv->dispose_has_run) { return; } @@ -476,7 +474,7 @@ } else { - cxp_handler_launch (right_pane->priv->handler, fullpath); + cxp_handler_launch (priv->handler, fullpath); } g_free (fullpath); @@ -682,6 +680,7 @@ GtkTextBuffer * text_buffer, const gchar * filename) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(self); gchar *cmd; magic_t cookie; gchar *filetype; @@ -691,7 +690,7 @@ if (g_file_test (filename, G_FILE_TEST_IS_DIR)) { - cmd = g_strdup_printf ("%s '%s'", self->priv->preview_dir, + cmd = g_strdup_printf ("%s '%s'", priv->preview_dir, filename); } else @@ -702,7 +701,7 @@ if (g_strrstr (filetype, "text") != NULL) { cmd = g_strdup_printf ("%s '%s'", - self->priv->preview_text, + priv->preview_text, filename); } else if (strstr (filetype, "fifo") != NULL) @@ -713,7 +712,7 @@ else { cmd = g_strdup_printf ("%s '%s'", - self->priv->preview_binary, + priv->preview_binary, filename); } magic_close (cookie); @@ -741,7 +740,7 @@ GtkWidget *cxp_right_pane_new (void) { - return GTK_WIDGET (g_object_new (cxp_right_pane_get_type (), NULL)); + return GTK_WIDGET (g_object_new (CXP_TYPE_RIGHT_PANE, NULL)); } /** @@ -751,6 +750,7 @@ void cxp_right_pane_change_directory (CxpRightPane * self, const gchar * dirname) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(self); const gchar *filename; gchar *fullpath; GDir *dir; @@ -759,10 +759,10 @@ GtkTextBuffer *text_buffer; text_buffer = - gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->priv->preview)); + gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->preview)); gtk_text_buffer_set_text (text_buffer, "", -1); - file_list = GTK_TREE_VIEW (self->priv->file_list); + file_list = GTK_TREE_VIEW (priv->file_list); model = gtk_tree_view_get_model (file_list); g_object_ref (model); gtk_tree_view_set_model (file_list, NULL); @@ -773,7 +773,7 @@ while ((filename = g_dir_read_name (dir)) != NULL) { if ((filename[0] == '.') - && (self->priv->show_dot_file == FALSE)) + && (priv->show_dot_file == FALSE)) { continue; } @@ -788,12 +788,13 @@ gtk_tree_view_set_model (file_list, model); g_object_unref (model); - g_free (self->priv->cur_dir); - self->priv->cur_dir = g_strdup (dirname); + g_free (priv->cur_dir); + priv->cur_dir = g_strdup (dirname); } gchar *cxp_right_pane_get_active_file_name (CxpRightPane * right_pane) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *fullpath; GtkTreePath *treepath; GtkTreeView *treeview; @@ -801,7 +802,7 @@ GtkTreeModel *model; GtkTreeIter iter; - treeview = GTK_TREE_VIEW (right_pane->priv->file_list); + treeview = GTK_TREE_VIEW (priv->file_list); gtk_tree_view_get_cursor (treeview, &treepath, &column); if (treepath) { @@ -821,12 +822,14 @@ void cxp_right_pane_set_show_dot_file (CxpRightPane * right_pane, gboolean show_dot_file) { - right_pane->priv->show_dot_file = show_dot_file; + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); + priv->show_dot_file = show_dot_file; } void cxp_right_pane_make_file (CxpRightPane * right_pane, const gchar * base_name) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *fullpath; gchar *basename_locale; GtkTreeIter iter; @@ -843,19 +846,19 @@ if (error == NULL) { fullpath = - g_build_filename (right_pane->priv->cur_dir, + g_build_filename (priv->cur_dir, basename_locale, NULL); g_free (basename_locale); if (mknod (fullpath, S_IFREG | 0666, 0) == 0) { model = gtk_tree_view_get_model (GTK_TREE_VIEW - (right_pane->priv-> + (priv-> file_list)); iter = cxp_right_pane_append_file (GTK_LIST_STORE (model), fullpath); treepath = gtk_tree_model_get_path (model, &iter); gtk_tree_view_set_cursor (GTK_TREE_VIEW - (right_pane->priv-> + (priv-> file_list), treepath, NULL, FALSE); gtk_tree_path_free (treepath); @@ -877,6 +880,7 @@ void cxp_right_pane_delete_current_file (CxpRightPane * right_pane) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *fullpath; GtkTreeIter iter; GtkTreeModel *model; @@ -885,7 +889,7 @@ selection = gtk_tree_view_get_selection (GTK_TREE_VIEW - (right_pane->priv->file_list)); + (priv->file_list)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, COL_FILE_PATH, &fullpath, @@ -918,6 +922,7 @@ void cxp_right_pane_paste_from_clipboard (CxpRightPane * right_pane) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *src; gchar *cur_dir; gchar *error_msg; @@ -934,12 +939,12 @@ if (g_file_test (src, G_FILE_TEST_IS_REGULAR)) { cmd = g_strdup_printf ("cp --backup=t '%s' '%s'", src, - right_pane->priv->cur_dir); + priv->cur_dir); g_spawn_command_line_sync (cmd, NULL, &standard_error, &exit_status, NULL); if (exit_status == 0) { - cur_dir = g_strdup(right_pane->priv->cur_dir); + cur_dir = g_strdup(priv->cur_dir); cxp_right_pane_change_directory (right_pane, cur_dir); g_free (cur_dir); } @@ -966,6 +971,7 @@ void cxp_right_pane_rename_file_request (CxpRightPane *right_pane) { + CxpRightPanePrivate *priv = CXP_RIGHT_PANE_GET_PRIVATE(right_pane); gchar *dirname; gchar *srcpath; gchar *srcbase; @@ -978,7 +984,7 @@ GtkTreeSelection *selection; GtkWidget *dialog; - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(right_pane->priv->file_list)); + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(priv->file_list)); if (gtk_tree_selection_get_selected (selection, &model, &iter)) { gtk_tree_model_get (model, &iter, COL_FILE_PATH, &srcpath, COL_TERMINATOR);