Mercurial > geeqie
comparison src/bar_keywords.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 | 2abdd6e50120 |
children | 8cca18bce950 |
comparison
equal
deleted
inserted
replaced
1308:2320339ca8be | 1309:55ea4962887a |
---|---|
23 #include "ui_misc.h" | 23 #include "ui_misc.h" |
24 #include "ui_utildlg.h" | 24 #include "ui_utildlg.h" |
25 #include "utilops.h" | 25 #include "utilops.h" |
26 #include "bar.h" | 26 #include "bar.h" |
27 #include "ui_menu.h" | 27 #include "ui_menu.h" |
28 #include "rcfile.h" | |
28 | 29 |
29 static const gchar *keyword_favorite_defaults[] = { | 30 static const gchar *keyword_favorite_defaults[] = { |
30 N_("Favorite"), | 31 N_("Favorite"), |
31 N_("Todo"), | 32 N_("Todo"), |
32 N_("People"), | 33 N_("People"), |
470 | 471 |
471 file_data_unref(pkd->fd); | 472 file_data_unref(pkd->fd); |
472 pkd->fd = file_data_ref(fd); | 473 pkd->fd = file_data_ref(fd); |
473 | 474 |
474 bar_pane_keywords_update(pkd); | 475 bar_pane_keywords_update(pkd); |
476 } | |
477 | |
478 static void bar_pane_keywords_write_config(GtkWidget *pane, GString *outstr, gint indent) | |
479 { | |
480 PaneKeywordsData *pkd; | |
481 | |
482 pkd = g_object_get_data(G_OBJECT(pane), "pane_data"); | |
483 if (!pkd) return; | |
484 | |
485 write_indent(outstr, indent); | |
486 g_string_append_printf(outstr, "<pane_keywords\n"); | |
487 indent++; | |
488 WRITE_CHAR(*pkd, pane.title); | |
489 WRITE_BOOL(*pkd, pane.expanded); | |
490 WRITE_CHAR(*pkd, key); | |
491 indent--; | |
492 write_indent(outstr, indent); | |
493 g_string_append_printf(outstr, "/>\n"); | |
475 } | 494 } |
476 | 495 |
477 gint bar_pane_keywords_event(GtkWidget *bar, GdkEvent *event) | 496 gint bar_pane_keywords_event(GtkWidget *bar, GdkEvent *event) |
478 { | 497 { |
479 PaneKeywordsData *pkd; | 498 PaneKeywordsData *pkd; |
705 gtk_list_store_append (model, &iter); | 724 gtk_list_store_append (model, &iter); |
706 gtk_list_store_set(model, &iter, 0, " ... ", -1); | 725 gtk_list_store_set(model, &iter, 0, " ... ", -1); |
707 return GTK_TREE_MODEL(model); | 726 return GTK_TREE_MODEL(model); |
708 } | 727 } |
709 | 728 |
710 GtkWidget *bar_pane_keywords_new(const gchar *title, const gchar *key) | 729 GtkWidget *bar_pane_keywords_new(const gchar *title, const gchar *key, gboolean expanded) |
711 { | 730 { |
712 PaneKeywordsData *pkd; | 731 PaneKeywordsData *pkd; |
713 GtkWidget *hbox; | 732 GtkWidget *hbox; |
714 GtkWidget *scrolled; | 733 GtkWidget *scrolled; |
715 GtkTextBuffer *buffer; | 734 GtkTextBuffer *buffer; |
719 | 738 |
720 pkd = g_new0(PaneKeywordsData, 1); | 739 pkd = g_new0(PaneKeywordsData, 1); |
721 | 740 |
722 pkd->pane.pane_set_fd = bar_pane_keywords_set_fd; | 741 pkd->pane.pane_set_fd = bar_pane_keywords_set_fd; |
723 pkd->pane.pane_event = bar_pane_keywords_event; | 742 pkd->pane.pane_event = bar_pane_keywords_event; |
743 pkd->pane.pane_write_config = bar_pane_keywords_write_config; | |
724 pkd->pane.title = g_strdup(title); | 744 pkd->pane.title = g_strdup(title); |
745 pkd->pane.expanded = expanded; | |
725 | 746 |
726 pkd->key = g_strdup(key); | 747 pkd->key = g_strdup(key); |
727 | 748 |
728 | 749 |
729 hbox = gtk_hbox_new(FALSE, PREF_PAD_GAP); | 750 hbox = gtk_hbox_new(FALSE, PREF_PAD_GAP); |
805 | 826 |
806 file_data_register_notify_func(bar_pane_keywords_notify_cb, pkd, NOTIFY_PRIORITY_LOW); | 827 file_data_register_notify_func(bar_pane_keywords_notify_cb, pkd, NOTIFY_PRIORITY_LOW); |
807 | 828 |
808 return pkd->widget; | 829 return pkd->widget; |
809 } | 830 } |
831 | |
832 GtkWidget *bar_pane_keywords_new_from_config(const gchar **attribute_names, const gchar **attribute_values) | |
833 { | |
834 gchar *title = g_strdup(_("NoName")); | |
835 gchar *key = g_strdup(COMMENT_KEY); | |
836 gboolean expanded = TRUE; | |
837 | |
838 while (*attribute_names) | |
839 { | |
840 const gchar *option = *attribute_names++; | |
841 const gchar *value = *attribute_values++; | |
842 | |
843 READ_CHAR_FULL("pane.title", title); | |
844 READ_CHAR_FULL("key", key); | |
845 READ_BOOL_FULL("pane.expanded", expanded); | |
846 | |
847 | |
848 DEBUG_1("unknown attribute %s = %s", option, value); | |
849 } | |
850 | |
851 return bar_pane_keywords_new(title, key, expanded); | |
852 } | |
853 | |
810 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ | 854 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |