diff src/view_file.c @ 635:eaca3e910ecd

Move a part of pop up menu common code to view_file.[ch].
author zas_
date Sun, 11 May 2008 23:47:59 +0000
parents 92208e71673b
children 2ea7af1fbfe0
line wrap: on
line diff
--- a/src/view_file.c	Sun May 11 23:09:39 2008 +0000
+++ b/src/view_file.c	Sun May 11 23:47:59 2008 +0000
@@ -13,6 +13,11 @@
 #include "view_file.h"
 
 #include "debug.h"
+#include "editors.h"
+#include "info.h"
+#include "layout.h"
+#include "menu.h"
+#include "utilops.h"
 #include "view_file_list.h"
 #include "view_file_icon.h"
 
@@ -290,6 +295,142 @@
 	return ret;
 }
 
+void vf_pop_menu_edit_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf;
+	gint n;
+	GList *list;
+
+	vf = submenu_item_get_data(widget);
+	n = GPOINTER_TO_INT(data);
+
+	if (!vf) return;
+
+	list = vf_pop_menu_file_list(vf);
+	start_editor_from_filelist(n, list);
+	filelist_free(list);
+}
+
+void vf_pop_menu_info_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	info_window_new(NULL, vf_pop_menu_file_list(vf), NULL);
+}
+
+void vf_pop_menu_copy_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	file_util_copy(NULL, vf_pop_menu_file_list(vf), NULL, vf->listview);
+}
+
+void vf_pop_menu_move_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	file_util_move(NULL, vf_pop_menu_file_list(vf), NULL, vf->listview);
+}
+
+void vf_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	file_util_delete(NULL, vf_pop_menu_file_list(vf), vf->listview);
+}
+
+void vf_pop_menu_copy_path_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	file_util_copy_path_list_to_clipboard(vf_pop_menu_file_list(vf));
+}
+
+void vf_pop_menu_sort_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf;
+	SortType type;
+
+	if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
+
+	vf = submenu_item_get_data(widget);
+	if (!vf) return;
+
+	type = (SortType)GPOINTER_TO_INT(data);
+
+	if (vf->layout)
+		{
+		layout_sort_set(vf->layout, type, vf->sort_ascend);
+		}
+	else
+		{
+		vf_sort_set(vf, type, vf->sort_ascend);
+		}
+}
+
+void vf_pop_menu_sort_ascend_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+
+	if (vf->layout)
+		{
+		layout_sort_set(vf->layout, vf->sort_method, !vf->sort_ascend);
+		}
+	else
+		{
+		vf_sort_set(vf, vf->sort_method, !vf->sort_ascend);
+		}
+}
+
+void vf_pop_menu_sel_mark_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_mark_to_selection(vf, vf->active_mark, MTS_MODE_SET);
+}
+
+void vf_pop_menu_sel_mark_and_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_mark_to_selection(vf, vf->active_mark, MTS_MODE_AND);
+}
+
+void vf_pop_menu_sel_mark_or_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_mark_to_selection(vf, vf->active_mark, MTS_MODE_OR);
+}
+
+void vf_pop_menu_sel_mark_minus_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_mark_to_selection(vf, vf->active_mark, MTS_MODE_MINUS);
+}
+
+void vf_pop_menu_set_mark_sel_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_selection_to_mark(vf, vf->active_mark, STM_MODE_SET);
+}
+
+void vf_pop_menu_res_mark_sel_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_selection_to_mark(vf, vf->active_mark, STM_MODE_RESET);
+}
+
+void vf_pop_menu_toggle_mark_sel_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	vf_selection_to_mark(vf, vf->active_mark, STM_MODE_TOGGLE);
+}
+
+void vf_pop_menu_toggle_view_type_cb(GtkWidget *widget, gpointer data)
+{
+	ViewFile *vf = data;
+	
+	if (vf->layout) layout_views_set(vf->layout, vf->layout->dir_view_type, !vf->layout->file_view_type);
+}
+