1 /* nautilus-list-view-private.h
2  *
3  * Copyright (C) 2015 Carlos Soriano <csoriano@gnome.org>
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 /* Data and functions shared between list view and list view dnd */
20 
21 #pragma once
22 
23 #include "nautilus-list-model.h"
24 #include "nautilus-tree-view-drag-dest.h"
25 #include "nautilus-dnd.h"
26 #include "nautilus-tag-manager.h"
27 
28 struct NautilusListViewDetails {
29   GtkTreeView *tree_view;
30   NautilusListModel *model;
31 
32   GtkTreeViewColumn   *file_name_column;
33   int file_name_column_num;
34 
35   GtkCellRendererPixbuf *pixbuf_cell;
36   GtkCellRendererText   *file_name_cell;
37   GList *cells;
38 
39   NautilusListZoomLevel zoom_level;
40 
41   NautilusTreeViewDragDest *drag_dest;
42 
43   GtkTreePath *first_click_path; /* Both clicks in a double click need to be on the same row */
44 
45   GtkTreePath *new_selection_path;   /* Path of the new selection after removing a file */
46 
47   GtkTreePath *hover_path;
48 
49   gint last_event_button_x;
50   gint last_event_button_y;
51 
52   guint drag_button;
53   int drag_x;
54   int drag_y;
55 
56   gboolean drag_started;
57   gboolean ignore_button_release;
58   gboolean row_selected_on_button_down;
59   gboolean active;
60   NautilusDragInfo *drag_source_info;
61 
62   GHashTable *columns;
63   GtkWidget *column_editor;
64 
65   char *original_name;
66 
67   gulong clipboard_handler_id;
68 
69   GQuark last_sort_attr;
70 
71   GRegex *regex;
72 
73   NautilusTagManager *tag_manager;
74   GCancellable *starred_cancellable;
75 
76   GtkGesture *tree_view_drag_gesture;
77   GtkGesture *tree_view_multi_press_gesture;
78 };
79 
80