annotate src/bar.c @ 1672:994169573393

Complete commit @1747 (intltool usage) With using intltool the localisation will fail cause of missing desktop.in file. Also the old desktop files are obsoleted by this commit. Also it is not necessary any more to have a './' in front of the files in POTFILES.in.
author mow
date Sat, 27 Jun 2009 22:57:56 +0000
parents c6d522fe3e5e
children 6e0f6d5e4c25
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
1 /*
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
2 * Geeqie
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
3 * (C) 2004 John Ellis
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
4 * Copyright (C) 2008 - 2009 The Geeqie Team
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
5 *
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
6 * Author: Vladimir Nadvornik
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
7 *
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
8 * This software is released under the GNU General Public License (GNU GPL).
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
9 * Please read the included file COPYING for more information.
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
10 * This software comes with no warranty of any kind, use at your own risk!
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
11 */
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
12
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
13
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
14 #include "main.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
15 #include "bar.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
16
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
17 #include "filedata.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
18 #include "history_list.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
19 #include "metadata.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
20 #include "misc.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
21 #include "ui_fileops.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
22 #include "ui_misc.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
23 #include "ui_utildlg.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
24
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
25 #include "ui_menu.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
26 #include "bar_comment.h"
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
27 #include "bar_keywords.h"
1293
48e064b37ba6 separated "normal" and advanced exif, "Normal" exif is now in the
nadvornik
parents: 1292
diff changeset
28 #include "bar_exif.h"
1298
c37f36b97173 added histogram pane
nadvornik
parents: 1293
diff changeset
29 #include "bar_histogram.h"
1339
45bcfcb69f56 fixed bar_histogram headers
nadvornik
parents: 1317
diff changeset
30 #include "histogram.h"
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
31 #include "rcfile.h"
1604
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
32 #include "bar_gps.h"
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
33
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
34 typedef struct _KnownPanes KnownPanes;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
35 struct _KnownPanes
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
36 {
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
37 PaneType type;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
38 gchar *id;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
39 gchar *title;
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
40 const gchar *config;
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
41 };
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
42
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
43 static const gchar default_config_histogram[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
44 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
45 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
46 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
47 " <pane_histogram id = 'histogram' expanded = 'true' histogram_channel = '4' histogram_mode = '0' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
48 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
49 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
50 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
51
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
52 static const gchar default_config_title[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
53 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
54 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
55 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
56 " <pane_comment id = 'title' expanded = 'true' key = 'Xmp.dc.title' height = '40' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
57 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
58 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
59 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
60
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
61 static const gchar default_config_keywords[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
62 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
63 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
64 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
65 " <pane_keywords id = 'keywords' expanded = 'true' key = '" KEYWORD_KEY "' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
66 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
67 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
68 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
69
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
70 static const gchar default_config_comment[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
71 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
72 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
73 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
74 " <pane_comment id = 'comment' expanded = 'true' key = '" COMMENT_KEY "' height = '150' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
75 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
76 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
77 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
78
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
79 static const gchar default_config_exif[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
80 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
81 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
82 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
83 " <pane_exif id = 'exif' expanded = 'true' >"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
84 " <entry key = 'formatted.Camera' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
85 " <entry key = 'formatted.DateTime' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
86 " <entry key = 'formatted.ShutterSpeed' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
87 " <entry key = 'formatted.Aperture' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
88 " <entry key = 'formatted.ExposureBias' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
89 " <entry key = 'formatted.ISOSpeedRating' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
90 " <entry key = 'formatted.FocalLength' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
91 " <entry key = 'formatted.FocalLength35mmFilm' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
92 " <entry key = 'formatted.Flash' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
93 " <entry key = 'Exif.Photo.ExposureProgram' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
94 " <entry key = 'Exif.Photo.MeteringMode' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
95 " <entry key = 'Exif.Photo.LightSource' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
96 " <entry key = 'formatted.ColorProfile' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
97 " <entry key = 'formatted.SubjectDistance' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
98 " <entry key = 'formatted.Resolution' if_set = 'true' editable = 'false' />"
1567
c776b1310ca6 added an option to write image orientation to the metadata
nadvornik
parents: 1543
diff changeset
99 " <entry key = '" ORIENTATION_KEY "' if_set = 'true' editable = 'false' />"
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
100 " </pane_exif>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
101 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
102 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
103 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
104
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
105 static const gchar default_config_file_info[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
106 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
107 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
108 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
109 " <pane_exif id = 'file_info' expanded = 'true' >"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
110 " <entry key = 'file.mode' if_set = 'false' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
111 " <entry key = 'file.date' if_set = 'false' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
112 " <entry key = 'file.size' if_set = 'false' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
113 " </pane_exif>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
114 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
115 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
116 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
117
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
118 static const gchar default_config_location[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
119 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
120 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
121 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
122 " <pane_exif id = 'location' expanded = 'true' >"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
123 " <entry key = 'formatted.GPSPosition' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
124 " <entry key = 'formatted.GPSAltitude' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
125 " <entry key = 'Xmp.photoshop.Country' if_set = 'false' editable = 'true' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
126 " <entry key = 'Xmp.iptc.CountryCode' if_set = 'false' editable = 'true' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
127 " <entry key = 'Xmp.photoshop.State' if_set = 'false' editable = 'true' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
128 " <entry key = 'Xmp.photoshop.City' if_set = 'false' editable = 'true' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
129 " <entry key = 'Xmp.iptc.Location' if_set = 'false' editable = 'true' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
130 " </pane_exif>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
131 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
132 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
133 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
134
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
135 static const gchar default_config_copyright[] =
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
136 "<gq>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
137 " <layout id = '_current_'>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
138 " <bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
139 " <pane_exif id = 'copyright' expanded = 'true' >"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
140 " <entry key = 'Xmp.dc.creator' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
141 " <entry key = 'Xmp.dc.contributor' if_set = 'true' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
142 " <entry key = 'Xmp.dc.rights' if_set = 'false' editable = 'false' />"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
143 " </pane_exif>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
144 " </bar>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
145 " </layout>"
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
146 "</gq>";
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
147
1604
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
148 #ifdef HAVE_LIBCHAMPLAIN
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
149 #ifdef HAVE_LIBCHAMPLAIN_GTK
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
150 static const gchar default_config_gps[] =
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
151 "<gq>"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
152 " <layout id = '_current_'>"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
153 " <bar>"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
154 " <pane_gps id = 'gps' expanded = 'true'"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
155 " map-id = 'osm::mapnik'"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
156 " zoom-level = '8'"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
157 " latitude = '50116666'"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
158 " longitude = '8683333' />"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
159 " </bar>"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
160 " </layout>"
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
161 "</gq>";
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
162 #endif
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
163 #endif
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
164
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
165 static const KnownPanes known_panes[] = {
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
166 /* default sidebar */
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
167 {PANE_HISTOGRAM, "histogram", N_("Histogram"), default_config_histogram},
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
168 {PANE_COMMENT, "title", N_("Title"), default_config_title},
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
169 {PANE_KEYWORDS, "keywords", N_("Keywords"), default_config_keywords},
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
170 {PANE_COMMENT, "comment", N_("Comment"), default_config_comment},
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
171 {PANE_EXIF, "exif", N_("Exif"), default_config_exif},
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
172 /* other pre-configured panes */
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
173 {PANE_EXIF, "file_info", N_("File info"), default_config_file_info},
1543
c8ac214a2fca fixed ambiguous strings
nadvornik
parents: 1532
diff changeset
174 {PANE_EXIF, "location", N_("Location and GPS"), default_config_location},
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
175 {PANE_EXIF, "copyright", N_("Copyright"), default_config_copyright},
1604
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
176 #ifdef HAVE_LIBCHAMPLAIN
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
177 #ifdef HAVE_LIBCHAMPLAIN_GTK
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
178 {PANE_GPS, "gps", N_("GPS Map"), default_config_gps},
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
179 #endif
c6d522fe3e5e added GPS map support - patch by Colin Clark
nadvornik
parents: 1567
diff changeset
180 #endif
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
181 {PANE_UNDEF, NULL, NULL, NULL}
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
182 };
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
183
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
184 typedef struct _BarData BarData;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
185 struct _BarData
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
186 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
187 GtkWidget *widget;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
188 GtkWidget *vbox;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
189 FileData *fd;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
190 GtkWidget *label_file_name;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
191
1387
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
192 LayoutWindow *lw;
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
193 gint width;
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
194 };
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
195
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
196 static void bar_expander_move(GtkWidget *widget, gpointer data, gboolean up, gboolean single_step)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
197 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
198 GtkWidget *expander = data;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
199 GtkWidget *box;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
200 gint pos;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
201
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
202 if (!expander) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
203 box = gtk_widget_get_ancestor(expander, GTK_TYPE_BOX);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
204 if (!box) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
205
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
206 gtk_container_child_get(GTK_CONTAINER(box), expander, "position", &pos, NULL);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
207
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
208 if (single_step)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
209 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
210 pos = up ? (pos - 1) : (pos + 1);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
211 if (pos < 0) pos = 0;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
212 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
213 else
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
214 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
215 pos = up ? 0 : -1;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
216 }
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
217
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
218 gtk_box_reorder_child(GTK_BOX(box), expander, pos);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
219 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
220
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
221
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
222 static void bar_expander_move_up_cb(GtkWidget *widget, gpointer data)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
223 {
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
224 bar_expander_move(widget, data, TRUE, TRUE);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
225 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
226
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
227 static void bar_expander_move_down_cb(GtkWidget *widget, gpointer data)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
228 {
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
229 bar_expander_move(widget, data, FALSE, TRUE);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
230 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
231
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
232 static void bar_expander_move_top_cb(GtkWidget *widget, gpointer data)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
233 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
234 bar_expander_move(widget, data, TRUE, FALSE);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
235 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
236
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
237 static void bar_expander_move_bottom_cb(GtkWidget *widget, gpointer data)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
238 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
239 bar_expander_move(widget, data, FALSE, FALSE);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
240 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
241
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
242 static void bar_expander_delete_cb(GtkWidget *widget, gpointer data)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
243 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
244 GtkWidget *expander = data;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
245 gtk_widget_destroy(expander);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
246 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
247
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
248 static void bar_expander_add_cb(GtkWidget *widget, gpointer data)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
249 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
250 //GtkWidget *bar = data;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
251 const KnownPanes *pane = known_panes;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
252 const gchar *id = g_object_get_data(G_OBJECT(widget), "pane_add_id");
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
253 const gchar *config;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
254
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
255 if (!id) return;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
256
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
257 while (pane->id)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
258 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
259 if (strcmp(pane->id, id) == 0) break;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
260 pane++;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
261 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
262 if (!pane->id) return;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
263
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
264 config = bar_pane_get_default_config(id);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
265 if (config) load_config_from_buf(config, strlen(config), FALSE);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
266
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
267 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
268
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
269
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
270 static void bar_menu_popup(GtkWidget *widget)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
271 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
272 GtkWidget *menu;
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
273 GtkWidget *bar;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
274 GtkWidget *expander;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
275 const KnownPanes *pane = known_panes;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
276 BarData *bd;
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
277
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
278 bd = g_object_get_data(G_OBJECT(widget), "bar_data");
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
279 if (bd)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
280 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
281 expander = NULL;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
282 bar = widget;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
283 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
284 else
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
285 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
286 expander = widget;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
287 bar = widget->parent;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
288 while (bar && !g_object_get_data(G_OBJECT(bar), "bar_data"))
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
289 bar = bar->parent;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
290 if (!bar) return;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
291 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
292
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
293 menu = popup_menu_short_lived();
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
294
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
295 if (expander)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
296 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
297 menu_item_add_stock(menu, _("Move to _top"), GTK_STOCK_GOTO_TOP, G_CALLBACK(bar_expander_move_top_cb), expander);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
298 menu_item_add_stock(menu, _("Move _up"), GTK_STOCK_GO_UP, G_CALLBACK(bar_expander_move_up_cb), expander);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
299 menu_item_add_stock(menu, _("Move _down"), GTK_STOCK_GO_DOWN, G_CALLBACK(bar_expander_move_down_cb), expander);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
300 menu_item_add_stock(menu, _("Move to _bottom"), GTK_STOCK_GOTO_BOTTOM, G_CALLBACK(bar_expander_move_bottom_cb), expander);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
301 menu_item_add_divider(menu);
1543
c8ac214a2fca fixed ambiguous strings
nadvornik
parents: 1532
diff changeset
302 menu_item_add_stock(menu, _("Remove"), GTK_STOCK_DELETE, G_CALLBACK(bar_expander_delete_cb), expander);
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
303 menu_item_add_divider(menu);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
304 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
305
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
306 while (pane->id)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
307 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
308 GtkWidget *item;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
309 item = menu_item_add_stock(menu, _(pane->title), GTK_STOCK_ADD, G_CALLBACK(bar_expander_add_cb), bar);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
310 g_object_set_data(G_OBJECT(item), "pane_add_id", pane->id);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
311 pane++;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
312 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
313
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
314 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, bar, 0, GDK_CURRENT_TIME);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
315 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
316
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
317
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
318 static gboolean bar_menu_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
319 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
320 if (bevent->button == MOUSE_BUTTON_RIGHT)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
321 {
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
322 bar_menu_popup(widget);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
323 return TRUE;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
324 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
325 return FALSE;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
326 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
327
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
328
1520
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
329 static void bar_pane_set_fd_cb(GtkWidget *expander, gpointer data)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
330 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
331 GtkWidget *widget = gtk_bin_get_child(GTK_BIN(expander));
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
332 PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
333 if (!pd) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
334 if (pd->pane_set_fd) pd->pane_set_fd(widget, data);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
335 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
336
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
337 void bar_set_fd(GtkWidget *bar, FileData *fd)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
338 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
339 BarData *bd;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
340 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
341 if (!bd) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
342
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
343 file_data_unref(bd->fd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
344 bd->fd = file_data_ref(fd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
345
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
346 gtk_container_foreach(GTK_CONTAINER(bd->vbox), bar_pane_set_fd_cb, fd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
347
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
348 gtk_label_set_text(GTK_LABEL(bd->label_file_name), (bd->fd) ? bd->fd->name : "");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
349
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
350 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
351
1520
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
352 static void bar_pane_notify_selection_cb(GtkWidget *expander, gpointer data)
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
353 {
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
354 GtkWidget *widget = gtk_bin_get_child(GTK_BIN(expander));
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
355 PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data");
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
356 if (!pd) return;
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
357 if (pd->pane_notify_selection) pd->pane_notify_selection(widget, GPOINTER_TO_INT(data));
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
358 }
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
359
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
360 void bar_notify_selection(GtkWidget *bar, gint count)
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
361 {
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
362 BarData *bd;
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
363 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
364 if (!bd) return;
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
365
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
366 gtk_container_foreach(GTK_CONTAINER(bd->vbox), bar_pane_notify_selection_cb, GINT_TO_POINTER(count));
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
367 }
7216f4a45698 added pane_notify_selection to pane API
nadvornik
parents: 1484
diff changeset
368
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
369 gboolean bar_event(GtkWidget *bar, GdkEvent *event)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
370 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
371 BarData *bd;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
372 GList *list, *work;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
373 gboolean ret = FALSE;
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
374
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
375 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
376 if (!bd) return FALSE;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
377
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
378 list = gtk_container_get_children(GTK_CONTAINER(bd->vbox));
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
379
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
380 work = list;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
381 while (work)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
382 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
383 GtkWidget *widget = gtk_bin_get_child(GTK_BIN(work->data));
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
384 PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
385 if (!pd) continue;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
386
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
387 if (pd->pane_event && pd->pane_event(widget, event))
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
388 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
389 ret = TRUE;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
390 break;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
391 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
392 work = work->next;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
393 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
394 g_list_free(list);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
395 return ret;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
396 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
397
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
398 GtkWidget *bar_find_pane_by_id(GtkWidget *bar, PaneType type, const gchar *id)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
399 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
400 BarData *bd;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
401 GList *list, *work;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
402 GtkWidget *ret = NULL;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
403
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
404 if (!id || !id[0]) return NULL;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
405
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
406 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
407 if (!bd) return NULL;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
408
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
409 list = gtk_container_get_children(GTK_CONTAINER(bd->vbox));
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
410
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
411 work = list;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
412 while (work)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
413 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
414 GtkWidget *widget = gtk_bin_get_child(GTK_BIN(work->data));
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
415 PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data");
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
416 if (!pd) continue;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
417
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
418 if (type == pd->type && strcmp(id, pd->id) == 0)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
419 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
420 ret = widget;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
421 break;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
422 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
423 work = work->next;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
424 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
425 g_list_free(list);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
426 return ret;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
427 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
428
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
429 void bar_clear(GtkWidget *bar)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
430 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
431 BarData *bd;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
432 GList *list, *work;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
433
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
434 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
435 if (!bd) return;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
436
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
437 list = gtk_container_get_children(GTK_CONTAINER(bd->vbox));
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
438
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
439 work = list;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
440 while (work)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
441 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
442 GtkWidget *widget = work->data;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
443 gtk_widget_destroy(widget);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
444 work = work->next;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
445 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
446 g_list_free(list);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
447 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
448
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
449 void bar_write_config(GtkWidget *bar, GString *outstr, gint indent)
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
450 {
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
451 BarData *bd;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
452 GList *list, *work;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
453
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
454 if (!bar) return;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
455
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
456 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
457 if (!bd) return;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
458
1461
e015b6573d36 improved config file formatting
nadvornik
parents: 1417
diff changeset
459 WRITE_NL(); WRITE_STRING("<bar ");
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
460 write_bool_option(outstr, indent, "enabled", GTK_WIDGET_VISIBLE(bar));
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
461 write_uint_option(outstr, indent, "width", bd->width);
1461
e015b6573d36 improved config file formatting
nadvornik
parents: 1417
diff changeset
462 WRITE_STRING(">");
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
463
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
464 indent++;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
465 WRITE_NL(); WRITE_STRING("<clear/>");
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
466
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
467 list = gtk_container_get_children(GTK_CONTAINER(bd->vbox));
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
468 work = list;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
469 while (work)
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
470 {
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
471 GtkWidget *expander = work->data;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
472 GtkWidget *widget = gtk_bin_get_child(GTK_BIN(expander));
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
473 PaneData *pd = g_object_get_data(G_OBJECT(widget), "pane_data");
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
474 if (!pd) continue;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
475
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
476 pd->expanded = gtk_expander_get_expanded(GTK_EXPANDER(expander));
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
477
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
478 if (pd->pane_write_config)
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
479 pd->pane_write_config(widget, outstr, indent);
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
480
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
481 work = work->next;
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
482 }
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
483 g_list_free(list);
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
484 indent--;
1461
e015b6573d36 improved config file formatting
nadvornik
parents: 1417
diff changeset
485 WRITE_NL(); WRITE_STRING("</bar>");
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
486 }
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
487
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
488 void bar_update_expander(GtkWidget *pane)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
489 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
490 PaneData *pd = g_object_get_data(G_OBJECT(pane), "pane_data");
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
491 GtkWidget *expander;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
492
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
493 if (!pd) return;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
494
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
495 expander = pane->parent;
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
496
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
497 gtk_expander_set_expanded(GTK_EXPANDER(expander), pd->expanded);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
498 }
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
499
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
500 void bar_add(GtkWidget *bar, GtkWidget *pane)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
501 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
502 GtkWidget *expander;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
503 BarData *bd = g_object_get_data(G_OBJECT(bar), "bar_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
504 PaneData *pd = g_object_get_data(G_OBJECT(pane), "pane_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
505
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
506 if (!bd) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
507
1387
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
508 pd->lw = bd->lw;
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
509 pd->bar = bar;
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
510
1351
93fe7a68a689 fixed possible crash
nadvornik
parents: 1350
diff changeset
511 expander = gtk_expander_new(NULL);
1343
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
512 if (pd && pd->title)
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
513 {
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
514 gtk_expander_set_label_widget(GTK_EXPANDER(expander), pd->title);
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
515 gtk_widget_show(pd->title);
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
516 }
eebb8d0cb677 give the panes more control over expander title
nadvornik
parents: 1339
diff changeset
517
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
518 gtk_box_pack_start(GTK_BOX(bd->vbox), expander, FALSE, TRUE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
519
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
520 g_signal_connect(expander, "button_press_event", G_CALLBACK(bar_menu_cb), bd);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
521
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
522 gtk_container_add(GTK_CONTAINER(expander), pane);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
523
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
524 gtk_expander_set_expanded(GTK_EXPANDER(expander), pd->expanded);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
525
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
526 gtk_widget_show(expander);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
527
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
528 if (bd->fd && pd && pd->pane_set_fd) pd->pane_set_fd(pane, bd->fd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
529
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
530 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
531
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
532 void bar_populate_default(GtkWidget *bar)
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
533 {
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
534 const gchar *populate_id[] = {"histogram", "title", "keywords", "comment", "exif", NULL};
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
535 const gchar **id = populate_id;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
536
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
537 while (*id)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
538 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
539 const gchar *config = bar_pane_get_default_config(*id);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
540 if (config) load_config_from_buf(config, strlen(config), FALSE);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
541 id++;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
542 }
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
543 }
55ea4962887a config file format changed to XML
nadvornik
parents: 1298
diff changeset
544
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
545 static void bar_size_allocate(GtkWidget *widget, GtkAllocation *allocation, gpointer data)
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
546 {
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
547 BarData *bd = data;
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
548
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
549 bd->width = allocation->width;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
550 }
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
551
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
552 gint bar_get_width(GtkWidget *bar)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
553 {
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
554 BarData *bd;
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
555
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
556 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
557 if (!bd) return 0;
1417
8036c5b779ca Tidy up.
zas_
parents: 1389
diff changeset
558
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
559 return bd->width;
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
560 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
561
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
562 void bar_close(GtkWidget *bar)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
563 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
564 BarData *bd;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
565
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
566 bd = g_object_get_data(G_OBJECT(bar), "bar_data");
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
567 if (!bd) return;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
568
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
569 gtk_widget_destroy(bd->widget);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
570 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
571
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
572 static void bar_destroy(GtkWidget *widget, gpointer data)
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
573 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
574 BarData *bd = data;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
575
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
576 file_data_unref(bd->fd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
577 g_free(bd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
578 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
579
1387
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
580 GtkWidget *bar_new(LayoutWindow *lw)
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
581 {
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
582 BarData *bd;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
583 GtkWidget *box;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
584 GtkWidget *scrolled;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
585
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
586 bd = g_new0(BarData, 1);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
587
1387
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
588 bd->lw = lw;
6f31fa931d3f simplified bar interface
nadvornik
parents: 1383
diff changeset
589
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
590 bd->widget = gtk_vbox_new(FALSE, PREF_PAD_GAP);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
591 g_object_set_data(G_OBJECT(bd->widget), "bar_data", bd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
592 g_signal_connect(G_OBJECT(bd->widget), "destroy",
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
593 G_CALLBACK(bar_destroy), bd);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
594
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
595 g_signal_connect(G_OBJECT(bd->widget), "size-allocate",
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
596 G_CALLBACK(bar_size_allocate), bd);
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
597
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
598 g_signal_connect(G_OBJECT(bd->widget), "button_press_event", G_CALLBACK(bar_menu_cb), bd);
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
599
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
600 bd->width = SIDEBAR_DEFAULT_WIDTH;
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
601 gtk_widget_set_size_request(bd->widget, bd->width, -1);
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
602
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
603 box = gtk_hbox_new(FALSE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
604
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
605 bd->label_file_name = gtk_label_new("");
1355
5a61fb9adc05 Add an ellipse when the file name is truncated.
zas_
parents: 1354
diff changeset
606 gtk_label_set_ellipsize(GTK_LABEL(bd->label_file_name), PANGO_ELLIPSIZE_END);
1354
d5fec01ce866 In the side bar, display the filename without the 'Filename:' prefix and makes it centered. Allow to select it for copy'n'paste.
zas_
parents: 1351
diff changeset
607 gtk_label_set_selectable(GTK_LABEL(bd->label_file_name), TRUE);
d5fec01ce866 In the side bar, display the filename without the 'Filename:' prefix and makes it centered. Allow to select it for copy'n'paste.
zas_
parents: 1351
diff changeset
608 gtk_misc_set_alignment(GTK_MISC(bd->label_file_name), 0.5, 0.5);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
609 gtk_box_pack_start(GTK_BOX(box), bd->label_file_name, TRUE, TRUE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
610 gtk_widget_show(bd->label_file_name);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
611
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
612 gtk_box_pack_start(GTK_BOX(bd->widget), box, FALSE, FALSE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
613 gtk_widget_show(box);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
614
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
615 scrolled = gtk_scrolled_window_new(NULL, NULL);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
616 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
1293
48e064b37ba6 separated "normal" and advanced exif, "Normal" exif is now in the
nadvornik
parents: 1292
diff changeset
617 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
618 gtk_box_pack_start(GTK_BOX(bd->widget), scrolled, TRUE, TRUE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
619 gtk_widget_show(scrolled);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
620
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
621
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
622 bd->vbox = gtk_vbox_new(FALSE, 0);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
623 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scrolled), bd->vbox);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
624 gtk_viewport_set_shadow_type(GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(scrolled))), GTK_SHADOW_NONE);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
625
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
626 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_NONE);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
627 gtk_widget_show(bd->vbox);
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
628 return bd->widget;
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
629 }
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
630
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
631
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
632 GtkWidget *bar_update_from_config(GtkWidget *bar, const gchar **attribute_names, const gchar **attribute_values)
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
633 {
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
634 gboolean enabled = TRUE;
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1355
diff changeset
635 gint width = SIDEBAR_DEFAULT_WIDTH;
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
636
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
637 while (*attribute_names)
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
638 {
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
639 const gchar *option = *attribute_names++;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
640 const gchar *value = *attribute_values++;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
641
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
642 if (READ_BOOL_FULL("enabled", enabled)) continue;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
643 if (READ_INT_FULL("width", width)) continue;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
644
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
645
1464
1b3751ac4743 be more verbose on parse errors
nadvornik
parents: 1461
diff changeset
646 log_printf("unknown attribute %s = %s\n", option, value);
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
647 }
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
648
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
649 gtk_widget_set_size_request(bar, width, -1);
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
650 if (enabled)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
651 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
652 gtk_widget_show(bar);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
653 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
654 else
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
655 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
656 gtk_widget_hide(bar);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
657 }
1317
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
658 return bar;
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
659 }
cd7204a18f14 simplified and improved bar configuration
nadvornik
parents: 1314
diff changeset
660
1469
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
661 GtkWidget *bar_new_from_config(LayoutWindow *lw, const gchar **attribute_names, const gchar **attribute_values)
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
662 {
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
663 GtkWidget *bar = bar_new(lw);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
664 return bar_update_from_config(bar, attribute_names, attribute_values);
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
665 }
607c60506863 added a possibility to update existing bars from config
nadvornik
parents: 1464
diff changeset
666
1389
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
667 GtkWidget *bar_pane_expander_title(const gchar *title)
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
668 {
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
669 GtkWidget *widget = gtk_label_new(title);
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
670
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
671 pref_label_bold(widget, TRUE, FALSE);
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
672 //gtk_label_set_ellipsize(GTK_LABEL(widget), PANGO_ELLIPSIZE_END); //FIXME: do not work
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
673
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
674 return widget;
c44f21235ffe Use a common function bar_pane_expander_title() to set expanders title widget.
zas_
parents: 1387
diff changeset
675 }
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
676
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
677 gboolean bar_pane_translate_title(PaneType type, const gchar *id, gchar **title)
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
678 {
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
679 const KnownPanes *pane = known_panes;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
680
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
681 if (!title) return FALSE;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
682 while (pane->id)
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
683 {
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
684 if (pane->type == type && strcmp(pane->id, id) == 0) break;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
685 pane++;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
686 }
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
687 if (!pane->id) return FALSE;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
688
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
689 if (*title && **title && strcmp(pane->title, *title) != 0) return FALSE;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
690
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
691 g_free(*title);
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
692 *title = g_strdup(_(pane->title));
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
693 return TRUE;
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
694 }
1484
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
695
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
696 const gchar *bar_pane_get_default_config(const gchar *id)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
697 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
698 const KnownPanes *pane = known_panes;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
699
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
700 while (pane->id)
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
701 {
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
702 if (strcmp(pane->id, id) == 0) break;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
703 pane++;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
704 }
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
705 if (!pane->id) return NULL;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
706 return pane->config;
9c16a93a0fdf improved sidebar configuration
nadvornik
parents: 1471
diff changeset
707 }
1471
65a5c27823c2 update translated pane titles
nadvornik
parents: 1469
diff changeset
708
1291
50ae02a4a675 replaced bar_info with an universal bar, restored the original
nadvornik
parents:
diff changeset
709 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */