layout id "_current_" matches the currently active layout window
[geeqie.git] / src / layout.h
1 /*
2  * Geeqie
3  * (C) 2004 John Ellis
4  * Copyright (C) 2008 - 2009 The Geeqie Team
5  *
6  * Author: John Ellis
7  *
8  * This software is released under the GNU General Public License (GNU GPL).
9  * Please read the included file COPYING for more information.
10  * This software comes with no warranty of any kind, use at your own risk!
11  */
12
13 #ifndef LAYOUT_H
14 #define LAYOUT_H
15
16 #define LAYOUT_ID_CURRENT "_current_"
17
18 extern GList *layout_window_list;
19
20
21 LayoutWindow *layout_new(FileData *dir_fd, LayoutOptions *lop);
22 LayoutWindow *layout_new_with_geometry(FileData *dir_fd, LayoutOptions *lop,
23                                        const gchar *geometry);
24 LayoutWindow *layout_new_from_config(const gchar **attribute_names, const gchar **attribute_values, gboolean use_commandline);
25 void layout_update_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values);
26
27 void layout_close(LayoutWindow *lw);
28 void layout_free(LayoutWindow *lw);
29
30 gboolean layout_valid(LayoutWindow **lw);
31
32 void layout_show_config_window(LayoutWindow *lw);
33
34 void layout_apply_options(LayoutWindow *lw, LayoutOptions *lop);
35
36 void layout_sync_options_with_current_state(LayoutWindow *lw);
37 void layout_load_attributes(LayoutOptions *layout, const gchar **attribute_names, const gchar **attribute_values);
38 void layout_write_attributes(LayoutOptions *layout, GString *outstr, gint indent);
39 void layout_write_config(LayoutWindow *lw, GString *outstr, gint indent);
40
41
42 LayoutWindow *layout_find_by_image(ImageWindow *imd);
43 LayoutWindow *layout_find_by_image_fd(ImageWindow *imd);
44 LayoutWindow *layout_find_by_layout_id(const gchar *id);
45
46
47 const gchar *layout_get_path(LayoutWindow *lw);
48 gboolean layout_set_path(LayoutWindow *lw, const gchar *path);
49 gboolean layout_set_fd(LayoutWindow *lw, FileData *fd);
50
51 void layout_status_update_progress(LayoutWindow *lw, gdouble val, const gchar *text);
52 void layout_status_update_info(LayoutWindow *lw, const gchar *text);
53 void layout_status_update_image(LayoutWindow *lw);
54 void layout_status_update_write(LayoutWindow *lw);
55 void layout_status_update_all(LayoutWindow *lw);
56
57 void layout_status_update_write_all(void);
58
59 GList *layout_list(LayoutWindow *lw);
60 guint layout_list_count(LayoutWindow *lw, gint64 *bytes);
61 FileData *layout_list_get_fd(LayoutWindow *lw, gint index);
62 gint layout_list_get_index(LayoutWindow *lw, FileData *fd);
63 void layout_list_sync_fd(LayoutWindow *lw, FileData *fd);
64
65 GList *layout_selection_list(LayoutWindow *lw);
66 /* return list of pointers to int for selection */
67 GList *layout_selection_list_by_index(LayoutWindow *lw);
68 guint layout_selection_count(LayoutWindow *lw, gint64 *bytes);
69 void layout_select_all(LayoutWindow *lw);
70 void layout_select_none(LayoutWindow *lw);
71 void layout_select_invert(LayoutWindow *lw);
72
73 void layout_mark_to_selection(LayoutWindow *lw, gint mark, MarkToSelectionMode mode);
74 void layout_selection_to_mark(LayoutWindow *lw, gint mark, SelectionToMarkMode mode);
75
76 void layout_refresh(LayoutWindow *lw);
77
78 void layout_thumb_set(LayoutWindow *lw, gboolean enable);
79 gboolean layout_thumb_get(LayoutWindow *lw);
80
81 void layout_marks_set(LayoutWindow *lw, gboolean enable);
82 gboolean layout_marks_get(LayoutWindow *lw);
83
84 void layout_sort_set(LayoutWindow *lw, SortType type, gboolean ascend);
85 gboolean layout_sort_get(LayoutWindow *lw, SortType *type, gboolean *ascend);
86
87 gboolean layout_geometry_get(LayoutWindow *lw, gint *x, gint *y, gint *w, gint *h);
88 gboolean layout_geometry_get_dividers(LayoutWindow *lw, gint *h, gint *v);
89
90 void layout_views_set(LayoutWindow *lw, DirViewType dir_view_type, FileViewType file_view_type);
91 gboolean layout_views_get(LayoutWindow *lw, DirViewType *dir_view_type, FileViewType *file_view_type);
92
93 void layout_status_update(LayoutWindow *lw, const gchar *text);
94
95 void layout_style_set(LayoutWindow *lw, gint style, const gchar *order);
96
97 void layout_menu_update_edit(void);
98 void layout_styles_update(void);
99 void layout_colors_update(void);
100
101
102 gboolean layout_geometry_get_tools(LayoutWindow *lw, gint *x, gint *y, gint *w, gint *h, gint *divider_pos);
103 void layout_tools_float_set(LayoutWindow *lw, gboolean popped, gboolean hidden);
104 gboolean layout_tools_float_get(LayoutWindow *lw, gboolean *popped, gboolean *hidden);
105
106 void layout_tools_float_toggle(LayoutWindow *lw);
107 void layout_tools_hide_toggle(LayoutWindow *lw);
108
109
110 void layout_toolbar_toggle(LayoutWindow *lw);
111 void layout_info_pixel_toggle(LayoutWindow *lw);
112
113 void layout_split_change(LayoutWindow *lw, ImageSplitMode mode);
114
115 #endif
116 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */