comparison src/bar_exif.c @ 1309:55ea4962887a

config file format changed to XML save and restore all layout windows save and restore sidebar configuration
author nadvornik
date Sun, 22 Feb 2009 15:35:37 +0000
parents 48e064b37ba6
children 8cca18bce950
comparison
equal deleted inserted replaced
1308:2320339ca8be 1309:55ea4962887a
19 #include "filedata.h" 19 #include "filedata.h"
20 #include "history_list.h" 20 #include "history_list.h"
21 #include "misc.h" 21 #include "misc.h"
22 #include "ui_misc.h" 22 #include "ui_misc.h"
23 #include "bar.h" 23 #include "bar.h"
24 #include "rcfile.h"
24 25
25 26
26 #include <math.h> 27 #include <math.h>
27 28
28 ExifUI ExifUIList[]={ 29 ExifUI ExifUIList[]={
279 280
280 bar_pane_exif_clear(ped); 281 bar_pane_exif_clear(ped);
281 bar_pane_exif_update(ped); 282 bar_pane_exif_update(ped);
282 } 283 }
283 284
285 static void bar_pane_exif_write_config(GtkWidget *pane, GString *outstr, gint indent)
286 {
287 PaneExifData *ped;
288
289 ped = g_object_get_data(G_OBJECT(pane), "pane_data");
290 if (!ped) return;
291
292 write_indent(outstr, indent);
293 g_string_append_printf(outstr, "<pane_exif\n");
294 indent++;
295 WRITE_CHAR(*ped, pane.title);
296 WRITE_BOOL(*ped, pane.expanded);
297 indent--;
298 write_indent(outstr, indent);
299 g_string_append_printf(outstr, "/>\n");
300 }
301
302
284 static void bar_pane_exif_remove_advanced_cb(GtkWidget *widget, gpointer data) 303 static void bar_pane_exif_remove_advanced_cb(GtkWidget *widget, gpointer data)
285 { 304 {
286 PaneExifData *ped = data; 305 PaneExifData *ped = data;
287 const gchar *key; 306 const gchar *key;
288 307
315 g_free(ped->labels); 334 g_free(ped->labels);
316 file_data_unref(ped->fd); 335 file_data_unref(ped->fd);
317 g_free(ped); 336 g_free(ped);
318 } 337 }
319 338
320 GtkWidget *bar_pane_exif_new(const gchar *title) 339 GtkWidget *bar_pane_exif_new(const gchar *title, gboolean expanded)
321 { 340 {
322 PaneExifData *ped; 341 PaneExifData *ped;
323 GtkWidget *table; 342 GtkWidget *table;
324 GtkWidget *viewport; 343 GtkWidget *viewport;
325 GtkWidget *hbox; 344 GtkWidget *hbox;
330 ; 349 ;
331 350
332 ped = g_new0(PaneExifData, 1); 351 ped = g_new0(PaneExifData, 1);
333 352
334 ped->pane.pane_set_fd = bar_pane_exif_set_fd; 353 ped->pane.pane_set_fd = bar_pane_exif_set_fd;
354 ped->pane.pane_write_config = bar_pane_exif_write_config;
335 ped->pane.title = g_strdup(title); 355 ped->pane.title = g_strdup(title);
356 ped->pane.expanded = expanded;
336 357
337 ped->keys = g_new0(GtkWidget *, exif_len); 358 ped->keys = g_new0(GtkWidget *, exif_len);
338 ped->labels = g_new0(GtkWidget *, exif_len); 359 ped->labels = g_new0(GtkWidget *, exif_len);
339 360
340 ped->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP); 361 ped->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
393 414
394 gtk_widget_show(ped->vbox); 415 gtk_widget_show(ped->vbox);
395 416
396 return ped->vbox; 417 return ped->vbox;
397 } 418 }
419
420 GtkWidget *bar_pane_exif_new_from_config(const gchar **attribute_names, const gchar **attribute_values)
421 {
422 gchar *title = g_strdup(_("NoName"));
423 gboolean expanded = TRUE;
424
425 while (*attribute_names)
426 {
427 const gchar *option = *attribute_names++;
428 const gchar *value = *attribute_values++;
429
430 READ_CHAR_FULL("pane.title", title);
431 READ_BOOL_FULL("pane.expanded", expanded);
432
433
434 DEBUG_1("unknown attribute %s = %s", option, value);
435 }
436
437 return bar_pane_exif_new(title, expanded);
438 }
439
440
398 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ 441 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */