Convert GET_{LEFT,RIGHT}_PIXBUF_OFFSET macro to function
[geeqie.git] / src / collect-table.h
1 /*
2  * Copyright (C) 2004 John Ellis
3  * Copyright (C) 2008 - 2016 The Geeqie Team
4  *
5  * Author: John Ellis
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License along
18  * with this program; if not, write to the Free Software Foundation, Inc.,
19  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20  */
21
22 #ifndef COLLECT_TABLE_H
23 #define COLLECT_TABLE_H
24
25 #include <gdk/gdk.h>
26 #include <glib.h>
27 #include <gtk/gtk.h>
28
29 struct CollectInfo;
30 struct CollectionData;
31
32 struct CollectTable
33 {
34         GtkWidget *scrolled;
35         GtkWidget *listview;
36         gint columns;
37         gint rows;
38
39         CollectionData *cd;
40
41         GList *selection;
42         CollectInfo *prev_selection;
43
44         CollectInfo *click_info;
45
46         GtkWidget *tip_window;
47         guint tip_delay_id; /**< event source id */
48         CollectInfo *tip_info;
49
50         GdkWindow *marker_window;
51         CollectInfo *marker_info;
52
53         GtkWidget *status_label;
54         GtkWidget *extra_label;
55
56         gint focus_row;
57         gint focus_column;
58         CollectInfo *focus_info;
59
60         GtkWidget *popup;
61         CollectInfo *drop_info;
62         GList *drop_list;
63
64         guint sync_idle_id; /**< event source id */
65         guint drop_idle_id; /**< event source id */
66
67         gboolean show_text;
68         gboolean show_stars;
69
70         GList *editmenu_fd_list; /**< file list for edit menu */
71 };
72
73 void collection_table_select_all(CollectTable *ct);
74 void collection_table_unselect_all(CollectTable *ct);
75
76 void collection_table_add_filelist(CollectTable *ct, GList *list);
77
78 void collection_table_file_update(CollectTable *ct, CollectInfo *info);
79 void collection_table_file_add(CollectTable *ct, CollectInfo *ci);
80 void collection_table_file_insert(CollectTable *ct, CollectInfo *ci);
81 void collection_table_file_remove(CollectTable *ct, CollectInfo *ci);
82 void collection_table_refresh(CollectTable *ct);
83
84 CollectTable *collection_table_new(CollectionData *cd);
85
86 void collection_table_set_labels(CollectTable *ct, GtkWidget *status, GtkWidget *extra);
87
88 CollectInfo *collection_table_get_focus_info(CollectTable *ct);
89 GList *collection_table_selection_get_list(CollectTable *ct);
90 void collection_table_set_focus(CollectTable *ct, CollectInfo *info);
91 void collection_table_select(CollectTable *ct, CollectInfo *info);
92 #endif
93 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */