to view_dir.c.
#include "main.h"
#include "view_dir.h"
+#include "filelist.h"
+#include "ui_menu.h"
+#include "utilops.h"
#include "view_dir_list.h"
#include "view_dir_tree.h"
return ret;
}
+void vd_color_set(ViewDir *vd, FileData *fd, gint color_set)
+{
+ GtkTreeModel *store;
+ GtkTreeIter iter;
+
+ switch(vd->type)
+ {
+ case DIRVIEW_LIST:
+ {
+ if (vdlist_find_row(vd, fd, &iter) < 0) return;
+ store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
+ gtk_list_store_set(GTK_LIST_STORE(store), &iter, DIR_COLUMN_COLOR, color_set, -1);
+ }
+ break;
+ case DIRVIEW_TREE:
+ {
+ if (vdtree_find_row(vd, fd, &iter, NULL) < 0) return;
+ store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
+ gtk_tree_store_set(GTK_TREE_STORE(store), &iter, DIR_COLUMN_COLOR, color_set, -1);
+ }
+ break;
+ }
+}
+
+void vd_popup_destroy_cb(GtkWidget *widget, gpointer data)
+{
+ ViewDir *vd = data;
+
+ vd_color_set(vd, vd->click_fd, FALSE);
+ vd->click_fd = NULL;
+ vd->popup = NULL;
+
+ vd_color_set(vd, vd->drop_fd, FALSE);
+ filelist_free(vd->drop_list);
+ vd->drop_list = NULL;
+ vd->drop_fd = NULL;
+}
+
+/*
+ *-----------------------------------------------------------------------------
+ * drop menu (from dnd)
+ *-----------------------------------------------------------------------------
+ */
+
+static void vd_drop_menu_copy_cb(GtkWidget *widget, gpointer data)
+{
+ ViewDir *vd = data;
+ const gchar *path;
+ GList *list;
+
+ if (!vd->drop_fd) return;
+
+ path = vd->drop_fd->path;
+ list = vd->drop_list;
+ vd->drop_list = NULL;
+
+ file_util_copy_simple(list, path);
+}
+
+static void vd_drop_menu_move_cb(GtkWidget *widget, gpointer data)
+{
+ ViewDir *vd = data;
+ const gchar *path;
+ GList *list;
+
+ if (!vd->drop_fd) return;
+
+ path = vd->drop_fd->path;
+ list = vd->drop_list;
+
+ vd->drop_list = NULL;
+
+ file_util_move_simple(list, path);
+}
+
+GtkWidget *vd_drop_menu(ViewDir *vd, gint active)
+{
+ GtkWidget *menu;
+
+ menu = popup_menu_short_lived();
+ g_signal_connect(G_OBJECT(menu), "destroy",
+ G_CALLBACK(vd_popup_destroy_cb), vd);
+
+ menu_item_add_stock_sensitive(menu, _("_Copy"), GTK_STOCK_COPY, active,
+ G_CALLBACK(vd_drop_menu_copy_cb), vd);
+ menu_item_add_sensitive(menu, _("_Move"), active, G_CALLBACK(vd_drop_menu_move_cb), vd);
+
+ menu_item_add_divider(menu);
+ menu_item_add_stock(menu, _("Cancel"), GTK_STOCK_CANCEL, NULL, vd);
+
+ return menu;
+}
+
const gchar *vd_row_get_path(ViewDir *vdl, gint row);
+void vd_color_set(ViewDir *vd, FileData *fd, gint color_set);
+void vd_popup_destroy_cb(GtkWidget *widget, gpointer data);
+
+GtkWidget *vd_drop_menu(ViewDir *vd, gint active);
+
#endif
*-----------------------------------------------------------------------------
*/
-static gint vdlist_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter)
+gint vdlist_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter)
{
GtkTreeModel *store;
gint valid;
return NULL;
}
-static void vdlist_color_set(ViewDir *vd, FileData *fd, gint color_set)
-{
- GtkTreeModel *store;
- GtkTreeIter iter;
-
- if (vdlist_find_row(vd, fd, &iter) < 0) return;
- store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
- gtk_list_store_set(GTK_LIST_STORE(store), &iter, DIR_COLUMN_COLOR, color_set, -1);
-}
-
-/*
- *-----------------------------------------------------------------------------
- * drop menu (from dnd)
- *-----------------------------------------------------------------------------
- */
-
-static void vdlist_drop_menu_copy_cb(GtkWidget *widget, gpointer data)
-{
- ViewDir *vd = data;
- const gchar *path;
- GList *list;
-
- if (!vd->drop_fd) return;
-
- path = vd->drop_fd->path;
- list = vd->drop_list;
- vd->drop_list = NULL;
-
- file_util_copy_simple(list, path);
-}
-
-static void vdlist_drop_menu_move_cb(GtkWidget *widget, gpointer data)
-{
- ViewDir *vd = data;
- const gchar *path;
- GList *list;
-
- if (!vd->drop_fd) return;
-
- path = vd->drop_fd->path;
- list = vd->drop_list;
-
- vd->drop_list = NULL;
-
- file_util_move_simple(list, path);
-}
-
-static GtkWidget *vdlist_drop_menu(ViewDir *vd, gint active)
-{
- GtkWidget *menu;
-
- menu = popup_menu_short_lived();
- g_signal_connect(G_OBJECT(menu), "destroy",
- G_CALLBACK(vdlist_popup_destroy_cb), vd);
-
- menu_item_add_stock_sensitive(menu, _("_Copy"), GTK_STOCK_COPY, active,
- G_CALLBACK(vdlist_drop_menu_copy_cb), vd);
- menu_item_add_sensitive(menu, _("_Move"), active, G_CALLBACK(vdlist_drop_menu_move_cb), vd);
-
- menu_item_add_divider(menu);
- menu_item_add_stock(menu, _("Cancel"), GTK_STOCK_CANCEL, NULL, vd);
-
- return menu;
-}
-
/*
*-----------------------------------------------------------------------------
* pop-up menu
{
ViewDir *vd = data;
- vdlist_color_set(vd, vd->click_fd, FALSE);
+ vd_color_set(vd, vd->click_fd, FALSE);
vd->click_fd = NULL;
vd->popup = NULL;
- vdlist_color_set(vd, vd->drop_fd, FALSE);
+ vd_color_set(vd, vd->drop_fd, FALSE);
filelist_free(vd->drop_list);
vd->drop_list = NULL;
vd->drop_fd = NULL;
{
ViewDir *vd = data;
- vdlist_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
vdlist_dest_set(vd, FALSE);
}
{
ViewDir *vd = data;
- vdlist_color_set(vd, vd->click_fd, FALSE);
+ vd_color_set(vd, vd->click_fd, FALSE);
if (context->action == GDK_ACTION_MOVE)
{
active = access_file(fd->path, W_OK | X_OK);
- vdlist_color_set(vd, fd, TRUE);
- vd->popup = vdlist_drop_menu(vd, active);
+ vd_color_set(vd, fd, TRUE);
+ vd->popup = vd_drop_menu(vd, active);
gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, NULL, NULL, 0, time);
vd->drop_fd = fd;
if (fd != vd->drop_fd)
{
- vdlist_color_set(vd, vd->drop_fd, FALSE);
- vdlist_color_set(vd, fd, TRUE);
+ vd_color_set(vd, vd->drop_fd, FALSE);
+ vd_color_set(vd, fd, TRUE);
}
vd->drop_fd = fd;
{
ViewDir *vd = data;
- if (vd->drop_fd != vd->click_fd) vdlist_color_set(vd, vd->drop_fd, FALSE);
+ if (vd->drop_fd != vd->click_fd) vd_color_set(vd, vd->drop_fd, FALSE);
vd->drop_fd = NULL;
}
vd->click_fd = NULL;
}
- vdlist_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
vd->popup = vdlist_pop_menu(vd, vd->click_fd);
}
vd->click_fd = fd;
- vdlist_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
if (bevent->button == 3)
{
GtkTreeIter iter;
FileData *fd = NULL;
- vdlist_color_set(vd, vd->click_fd, FALSE);
+ vd_color_set(vd, vd->click_fd, FALSE);
if (bevent->button != 1) return TRUE;
void vdlist_refresh(ViewDir *vdl);
const gchar *vdlist_row_get_path(ViewDir *vdl, gint row);
+gint vdlist_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter);
#endif
if (VDTREE_INFO(vd, busy_ref) > 0) VDTREE_INFO(vd, busy_ref)--;
}
-static gint vdtree_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter, GtkTreeIter *parent)
+gint vdtree_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter, GtkTreeIter *parent)
{
GtkTreeModel *store;
gint valid;
}
}
-static void vdtree_color_set(ViewDir *vd, FileData *fd, gint color_set)
-{
- GtkTreeModel *store;
- GtkTreeIter iter;
-
- if (!vdtree_find_row(vd, fd, &iter, NULL)) return;
- store = gtk_tree_view_get_model(GTK_TREE_VIEW(vd->view));
- gtk_tree_store_set(GTK_TREE_STORE(store), &iter, DIR_COLUMN_COLOR, color_set, -1);
-}
-
static gint vdtree_rename_row_cb(TreeEditData *td, const gchar *old, const gchar *new, gpointer data)
{
ViewDir *vd = data;
g_free(nd);
}
-static void vdtree_popup_destroy_cb(GtkWidget *widget, gpointer data)
-{
- ViewDir *vd = data;
-
- vdtree_color_set(vd, vd->click_fd, FALSE);
- vd->click_fd = NULL;
- vd->popup = NULL;
-
- vdtree_color_set(vd, vd->drop_fd, FALSE);
- filelist_free(vd->drop_list);
- vd->drop_list = NULL;
- vd->drop_fd = NULL;
-}
-
-/*
- *-----------------------------------------------------------------------------
- * drop menu (from dnd)
- *-----------------------------------------------------------------------------
- */
-
-static void vdtree_drop_menu_copy_cb(GtkWidget *widget, gpointer data)
-{
- ViewDir *vd = data;
- const gchar *path;
- GList *list;
-
- if (!vd->drop_fd) return;
-
- path = vd->drop_fd->path;
- list = vd->drop_list;
-
- vd->drop_list = NULL;
-
- file_util_copy_simple(list, path);
-}
-
-static void vdtree_drop_menu_move_cb(GtkWidget *widget, gpointer data)
-{
- ViewDir *vd = data;
- const gchar *path;
- GList *list;
-
- if (!vd->drop_fd) return;
-
- path = vd->drop_fd->path;
- list = vd->drop_list;
-
- vd->drop_list = NULL;
-
- file_util_move_simple(list, path);
-}
-
-static GtkWidget *vdtree_drop_menu(ViewDir *vd, gint active)
-{
- GtkWidget *menu;
-
- menu = popup_menu_short_lived();
- g_signal_connect(G_OBJECT(menu), "destroy",
- G_CALLBACK(vdtree_popup_destroy_cb), vd);
-
- menu_item_add_stock_sensitive(menu, _("_Copy"), GTK_STOCK_COPY, active,
- G_CALLBACK(vdtree_drop_menu_copy_cb), vd);
- menu_item_add_sensitive(menu, _("_Move"), active, G_CALLBACK(vdtree_drop_menu_move_cb), vd);
-
- menu_item_add_divider(menu);
- menu_item_add_stock(menu, _("Cancel"), GTK_STOCK_CANCEL, NULL, vd);
-
- return menu;
-}
-
/*
*-----------------------------------------------------------------------------
* pop-up menu
menu = popup_menu_short_lived();
g_signal_connect(G_OBJECT(menu), "destroy",
- G_CALLBACK(vdtree_popup_destroy_cb), vd);
+ G_CALLBACK(vd_popup_destroy_cb), vd);
menu_item_add_stock_sensitive(menu, _("_Up to parent"), GTK_STOCK_GO_UP,
(vd->path && strcmp(vd->path, "/") != 0),
{
ViewDir *vd = data;
- vdtree_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
vdtree_dest_set(vd, FALSE);
}
{
ViewDir *vd = data;
- vdtree_color_set(vd, vd->click_fd, FALSE);
+ vd_color_set(vd, vd->click_fd, FALSE);
vdtree_dest_set(vd, TRUE);
}
active = access_file(fd->path, W_OK | X_OK);
- vdtree_color_set(vd, fd, TRUE);
- vd->popup = vdtree_drop_menu(vd, active);
+ vd_color_set(vd, fd, TRUE);
+ vd->popup = vd_drop_menu(vd, active);
gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, NULL, NULL, 0, time);
vd->drop_fd = fd;
if (fd != vd->drop_fd)
{
- vdtree_color_set(vd, vd->drop_fd, FALSE);
- vdtree_color_set(vd, fd, TRUE);
+ vd_color_set(vd, vd->drop_fd, FALSE);
+ vd_color_set(vd, fd, TRUE);
if (fd) vdtree_dnd_drop_expand(vd);
}
{
ViewDir *vd = data;
- if (vd->drop_fd != vd->click_fd) vdtree_color_set(vd, vd->drop_fd, FALSE);
+ if (vd->drop_fd != vd->click_fd) vd_color_set(vd, vd->drop_fd, FALSE);
vd->drop_fd = NULL;
{
case GDK_Menu:
vd->click_fd = fd;
- vdtree_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
vd->popup = vdtree_pop_menu(vd, vd->click_fd);
gtk_menu_popup(GTK_MENU(vd->popup), NULL, NULL, vdtree_menu_position_cb, vd, 0, GDK_CURRENT_TIME);
}
vd->click_fd = (nd) ? nd->fd : NULL;
- vdtree_color_set(vd, vd->click_fd, TRUE);
+ vd_color_set(vd, vd->click_fd, TRUE);
if (bevent->button == 3)
{
NodeData *nd = NULL;
if (!vd->click_fd) return FALSE;
- vdtree_color_set(vd, vd->click_fd, FALSE);
+ vd_color_set(vd, vd->click_fd, FALSE);
if (bevent->button != 1) return TRUE;
void vdtree_refresh(ViewDir *vdt);
const gchar *vdtree_row_get_path(ViewDir *vdt, gint row);
+gint vdtree_find_row(ViewDir *vd, FileData *fd, GtkTreeIter *iter, GtkTreeIter *parent);
#endif