From bede0063ac2196fa847f964e49e4ab3fe23e5298 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Fri, 5 Aug 2011 20:55:53 +0000 Subject: [PATCH] Introducing a tab to list the monitors --- po/de.po | 137 ++++++------ po/es.po | 137 ++++++------ po/fr.po | 137 ++++++------ po/it.po | 137 ++++++------ src/desktop.c | 568 ++++++++++++++++++++++++++++---------------------- 5 files changed, 618 insertions(+), 498 deletions(-) diff --git a/po/de.po b/po/de.po index df84a5b..07b87a1 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-08-05 22:20+0200\n" +"POT-Creation-Date: 2011-08-05 22:54+0200\n" "PO-Revision-Date: 2010-03-29 23:28+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: English\n" @@ -113,7 +113,7 @@ msgstr "" msgid "_Help" msgstr "_Hilfe" -#: ../src/browser.c:184 ../src/desktop.c:857 ../src/desktop.c:878 +#: ../src/browser.c:184 ../src/desktop.c:635 ../src/desktop.c:656 msgid "Back" msgstr "Zurück" @@ -129,7 +129,7 @@ msgstr "" msgid "Refresh" msgstr "" -#: ../src/browser.c:192 ../src/desktop.c:939 +#: ../src/browser.c:192 ../src/desktop.c:717 msgid "Home" msgstr "Persönlicher Ordner" @@ -187,7 +187,7 @@ msgstr "" #: ../src/browser.c:742 ../src/browser.c:746 ../src/copy.c:674 #: ../src/copy.c:678 ../src/delete.c:421 ../src/delete.c:426 -#: ../src/desktop.c:1540 ../src/desktop.c:1545 ../src/move.c:452 +#: ../src/desktop.c:1318 ../src/desktop.c:1323 ../src/move.c:452 #: ../src/move.c:456 ../src/properties.c:336 ../src/properties.c:340 #: ../src/view.c:367 ../src/view.c:372 msgid "Error" @@ -206,7 +206,7 @@ msgstr "" msgid "Shell scripts" msgstr "" -#: ../src/browser.c:963 ../src/desktop.c:542 ../src/view.c:436 +#: ../src/browser.c:963 ../src/desktop.c:1712 ../src/view.c:436 msgid "All files" msgstr "Alle Dateien" @@ -335,7 +335,7 @@ msgstr "" msgid "Refreshing folder..." msgstr "Aktualisierung..." -#: ../src/callbacks.c:116 ../src/desktop.c:420 +#: ../src/callbacks.c:116 ../src/desktop.c:423 msgid "New folder" msgstr "Neu Ordner" @@ -354,19 +354,19 @@ msgstr "" msgid "New" msgstr "Neu" -#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:331 +#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:334 msgid "Folder" msgstr "Ordner" -#: ../src/callbacks.c:784 ../src/desktop.c:339 +#: ../src/callbacks.c:784 ../src/desktop.c:342 msgid "Symbolic link..." msgstr "" -#: ../src/callbacks.c:788 ../src/desktop.c:343 +#: ../src/callbacks.c:788 ../src/desktop.c:346 msgid "Text file" msgstr "" -#: ../src/callbacks.c:823 ../src/desktop.c:439 +#: ../src/callbacks.c:823 ../src/desktop.c:442 msgid "New text file.txt" msgstr "" @@ -415,7 +415,7 @@ msgstr "" msgid "Copying: " msgstr "" -#: ../src/copy.c:152 ../src/desktop.c:525 +#: ../src/copy.c:152 ../src/desktop.c:1695 msgid "Filename: " msgstr "" @@ -500,63 +500,76 @@ msgid "" " -r\tEquivalent to -R\n" msgstr "" -#: ../src/desktop.c:496 -msgid "Desktop preferences" -msgstr "Desktop Einstellungen" - -#: ../src/desktop.c:517 -msgid "Default color: " -msgstr "" - -#: ../src/desktop.c:529 ../src/desktop.c:571 -msgid "Background" -msgstr "Hintergrund" - -#: ../src/desktop.c:532 -msgid "Picture files" -msgstr "Bilder" - -#: ../src/desktop.c:550 -msgid "Position: " -msgstr "" - -#: ../src/desktop.c:556 -msgid "Centered" -msgstr "" - -#: ../src/desktop.c:558 -msgid "Scaled" -msgstr "" - -#: ../src/desktop.c:560 -msgid "Scaled (keep ratio)" -msgstr "" - -#: ../src/desktop.c:562 -msgid "Tiled" -msgstr "" - -#: ../src/desktop.c:567 -msgid "E_xtend background to all monitors" -msgstr "" - -#: ../src/desktop.c:577 -msgid "Desktop font: " -msgstr "" - -#: ../src/desktop.c:586 -msgid "Theme" -msgstr "" - -#: ../src/desktop.c:970 +#: ../src/desktop.c:748 msgid "Applications" msgstr "" -#: ../src/desktop.c:1588 +#: ../src/desktop.c:1366 msgid "Could not load preferences" msgstr "" -#: ../src/desktop.c:1848 +#: ../src/desktop.c:1650 +msgid "Desktop preferences" +msgstr "Desktop Einstellungen" + +#: ../src/desktop.c:1687 +msgid "Default color: " +msgstr "" + +#: ../src/desktop.c:1699 ../src/desktop.c:1741 +msgid "Background" +msgstr "Hintergrund" + +#: ../src/desktop.c:1702 +msgid "Picture files" +msgstr "Bilder" + +#: ../src/desktop.c:1720 +msgid "Position: " +msgstr "" + +#: ../src/desktop.c:1726 +msgid "Centered" +msgstr "" + +#: ../src/desktop.c:1728 +msgid "Scaled" +msgstr "" + +#: ../src/desktop.c:1730 +msgid "Scaled (keep ratio)" +msgstr "" + +#: ../src/desktop.c:1732 +msgid "Tiled" +msgstr "" + +#: ../src/desktop.c:1737 +msgid "E_xtend background to all monitors" +msgstr "" + +#: ../src/desktop.c:1760 +msgid "Monitor: " +msgstr "" + +#: ../src/desktop.c:1768 +#, c-format +msgid "Monitor %d" +msgstr "" + +#: ../src/desktop.c:1778 +msgid "Monitors" +msgstr "" + +#: ../src/desktop.c:1793 +msgid "Desktop font: " +msgstr "" + +#: ../src/desktop.c:1802 +msgid "Theme" +msgstr "" + +#: ../src/desktop.c:1916 msgid "" "Usage: desktop [-H|-V][-a|-c|-f|-h|-n][-m monitor]\n" " -H\tPlace icons horizontally\n" diff --git a/po/es.po b/po/es.po index f97d709..af7ae8a 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-08-05 22:20+0200\n" +"POT-Creation-Date: 2011-08-05 22:54+0200\n" "PO-Revision-Date: 2010-03-30 01:04+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Spanish\n" @@ -113,7 +113,7 @@ msgstr "" msgid "_Help" msgstr "" -#: ../src/browser.c:184 ../src/desktop.c:857 ../src/desktop.c:878 +#: ../src/browser.c:184 ../src/desktop.c:635 ../src/desktop.c:656 msgid "Back" msgstr "" @@ -129,7 +129,7 @@ msgstr "" msgid "Refresh" msgstr "" -#: ../src/browser.c:192 ../src/desktop.c:939 +#: ../src/browser.c:192 ../src/desktop.c:717 msgid "Home" msgstr "Inicio" @@ -187,7 +187,7 @@ msgstr "" #: ../src/browser.c:742 ../src/browser.c:746 ../src/copy.c:674 #: ../src/copy.c:678 ../src/delete.c:421 ../src/delete.c:426 -#: ../src/desktop.c:1540 ../src/desktop.c:1545 ../src/move.c:452 +#: ../src/desktop.c:1318 ../src/desktop.c:1323 ../src/move.c:452 #: ../src/move.c:456 ../src/properties.c:336 ../src/properties.c:340 #: ../src/view.c:367 ../src/view.c:372 msgid "Error" @@ -206,7 +206,7 @@ msgstr "" msgid "Shell scripts" msgstr "" -#: ../src/browser.c:963 ../src/desktop.c:542 ../src/view.c:436 +#: ../src/browser.c:963 ../src/desktop.c:1712 ../src/view.c:436 msgid "All files" msgstr "" @@ -335,7 +335,7 @@ msgstr "" msgid "Refreshing folder..." msgstr "" -#: ../src/callbacks.c:116 ../src/desktop.c:420 +#: ../src/callbacks.c:116 ../src/desktop.c:423 msgid "New folder" msgstr "" @@ -354,19 +354,19 @@ msgstr "" msgid "New" msgstr "" -#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:331 +#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:334 msgid "Folder" msgstr "" -#: ../src/callbacks.c:784 ../src/desktop.c:339 +#: ../src/callbacks.c:784 ../src/desktop.c:342 msgid "Symbolic link..." msgstr "" -#: ../src/callbacks.c:788 ../src/desktop.c:343 +#: ../src/callbacks.c:788 ../src/desktop.c:346 msgid "Text file" msgstr "" -#: ../src/callbacks.c:823 ../src/desktop.c:439 +#: ../src/callbacks.c:823 ../src/desktop.c:442 msgid "New text file.txt" msgstr "" @@ -415,7 +415,7 @@ msgstr "" msgid "Copying: " msgstr "" -#: ../src/copy.c:152 ../src/desktop.c:525 +#: ../src/copy.c:152 ../src/desktop.c:1695 msgid "Filename: " msgstr "" @@ -500,63 +500,76 @@ msgid "" " -r\tEquivalent to -R\n" msgstr "" -#: ../src/desktop.c:496 -msgid "Desktop preferences" -msgstr "Desktop preferencias" - -#: ../src/desktop.c:517 -msgid "Default color: " -msgstr "" - -#: ../src/desktop.c:529 ../src/desktop.c:571 -msgid "Background" -msgstr "" - -#: ../src/desktop.c:532 -msgid "Picture files" -msgstr "" - -#: ../src/desktop.c:550 -msgid "Position: " -msgstr "" - -#: ../src/desktop.c:556 -msgid "Centered" -msgstr "" - -#: ../src/desktop.c:558 -msgid "Scaled" -msgstr "" - -#: ../src/desktop.c:560 -msgid "Scaled (keep ratio)" -msgstr "" - -#: ../src/desktop.c:562 -msgid "Tiled" -msgstr "" - -#: ../src/desktop.c:567 -msgid "E_xtend background to all monitors" -msgstr "" - -#: ../src/desktop.c:577 -msgid "Desktop font: " -msgstr "" - -#: ../src/desktop.c:586 -msgid "Theme" -msgstr "" - -#: ../src/desktop.c:970 +#: ../src/desktop.c:748 msgid "Applications" msgstr "" -#: ../src/desktop.c:1588 +#: ../src/desktop.c:1366 msgid "Could not load preferences" msgstr "" -#: ../src/desktop.c:1848 +#: ../src/desktop.c:1650 +msgid "Desktop preferences" +msgstr "Desktop preferencias" + +#: ../src/desktop.c:1687 +msgid "Default color: " +msgstr "" + +#: ../src/desktop.c:1699 ../src/desktop.c:1741 +msgid "Background" +msgstr "" + +#: ../src/desktop.c:1702 +msgid "Picture files" +msgstr "" + +#: ../src/desktop.c:1720 +msgid "Position: " +msgstr "" + +#: ../src/desktop.c:1726 +msgid "Centered" +msgstr "" + +#: ../src/desktop.c:1728 +msgid "Scaled" +msgstr "" + +#: ../src/desktop.c:1730 +msgid "Scaled (keep ratio)" +msgstr "" + +#: ../src/desktop.c:1732 +msgid "Tiled" +msgstr "" + +#: ../src/desktop.c:1737 +msgid "E_xtend background to all monitors" +msgstr "" + +#: ../src/desktop.c:1760 +msgid "Monitor: " +msgstr "" + +#: ../src/desktop.c:1768 +#, c-format +msgid "Monitor %d" +msgstr "" + +#: ../src/desktop.c:1778 +msgid "Monitors" +msgstr "" + +#: ../src/desktop.c:1793 +msgid "Desktop font: " +msgstr "" + +#: ../src/desktop.c:1802 +msgid "Theme" +msgstr "" + +#: ../src/desktop.c:1916 msgid "" "Usage: desktop [-H|-V][-a|-c|-f|-h|-n][-m monitor]\n" " -H\tPlace icons horizontally\n" diff --git a/po/fr.po b/po/fr.po index babdd07..90a8b88 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-08-05 22:20+0200\n" +"POT-Creation-Date: 2011-08-05 22:54+0200\n" "PO-Revision-Date: 2010-03-29 23:28+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: French\n" @@ -113,7 +113,7 @@ msgstr "_Vue" msgid "_Help" msgstr "_Aide" -#: ../src/browser.c:184 ../src/desktop.c:857 ../src/desktop.c:878 +#: ../src/browser.c:184 ../src/desktop.c:635 ../src/desktop.c:656 msgid "Back" msgstr "Retour" @@ -129,7 +129,7 @@ msgstr "Suivant" msgid "Refresh" msgstr "Rafraîchir" -#: ../src/browser.c:192 ../src/desktop.c:939 +#: ../src/browser.c:192 ../src/desktop.c:717 msgid "Home" msgstr "Dossier personnel" @@ -187,7 +187,7 @@ msgstr " Chemin : " #: ../src/browser.c:742 ../src/browser.c:746 ../src/copy.c:674 #: ../src/copy.c:678 ../src/delete.c:421 ../src/delete.c:426 -#: ../src/desktop.c:1540 ../src/desktop.c:1545 ../src/move.c:452 +#: ../src/desktop.c:1318 ../src/desktop.c:1323 ../src/move.c:452 #: ../src/move.c:456 ../src/properties.c:336 ../src/properties.c:340 #: ../src/view.c:367 ../src/view.c:372 msgid "Error" @@ -206,7 +206,7 @@ msgstr "Fichiers exécutables" msgid "Shell scripts" msgstr "Scripts shell" -#: ../src/browser.c:963 ../src/desktop.c:542 ../src/view.c:436 +#: ../src/browser.c:963 ../src/desktop.c:1712 ../src/view.c:436 msgid "All files" msgstr "Tous les fichiers" @@ -335,7 +335,7 @@ msgstr "Modifier avec :" msgid "Refreshing folder..." msgstr "Actualisation du dossier..." -#: ../src/callbacks.c:116 ../src/desktop.c:420 +#: ../src/callbacks.c:116 ../src/desktop.c:423 msgid "New folder" msgstr "Nouveau dossier" @@ -354,19 +354,19 @@ msgstr "Voulez-vous vraiment effacer %lu fichier(s)?" msgid "New" msgstr "Nouveau" -#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:331 +#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:334 msgid "Folder" msgstr "Dossier" -#: ../src/callbacks.c:784 ../src/desktop.c:339 +#: ../src/callbacks.c:784 ../src/desktop.c:342 msgid "Symbolic link..." msgstr "Lien symbolique..." -#: ../src/callbacks.c:788 ../src/desktop.c:343 +#: ../src/callbacks.c:788 ../src/desktop.c:346 msgid "Text file" msgstr "Fichier texte" -#: ../src/callbacks.c:823 ../src/desktop.c:439 +#: ../src/callbacks.c:823 ../src/desktop.c:442 msgid "New text file.txt" msgstr "Nouveau fichier texte.txt" @@ -415,7 +415,7 @@ msgstr "Copie de fichier(s)" msgid "Copying: " msgstr "Copie de : " -#: ../src/copy.c:152 ../src/desktop.c:525 +#: ../src/copy.c:152 ../src/desktop.c:1695 msgid "Filename: " msgstr "Nom de fichier : " @@ -520,63 +520,76 @@ msgstr "" " -R\tSupprimer récursivement\n" " -r\tÉquivalent à -R\n" -#: ../src/desktop.c:496 -msgid "Desktop preferences" -msgstr "Préférences du bureau" - -#: ../src/desktop.c:517 -msgid "Default color: " -msgstr "Couleur par défaut :" - -#: ../src/desktop.c:529 ../src/desktop.c:571 -msgid "Background" -msgstr "Arrière-plan" - -#: ../src/desktop.c:532 -msgid "Picture files" -msgstr "Images" - -#: ../src/desktop.c:550 -msgid "Position: " -msgstr "Position : " - -#: ../src/desktop.c:556 -msgid "Centered" -msgstr "Centré" - -#: ../src/desktop.c:558 -msgid "Scaled" -msgstr "Étiré" - -#: ../src/desktop.c:560 -msgid "Scaled (keep ratio)" -msgstr "Étiré (sans déformer)" - -#: ../src/desktop.c:562 -msgid "Tiled" -msgstr "Mosaïque" - -#: ../src/desktop.c:567 -msgid "E_xtend background to all monitors" -msgstr "" - -#: ../src/desktop.c:577 -msgid "Desktop font: " -msgstr "Police du bureau : " - -#: ../src/desktop.c:586 -msgid "Theme" -msgstr "Thème" - -#: ../src/desktop.c:970 +#: ../src/desktop.c:748 msgid "Applications" msgstr "Applications" -#: ../src/desktop.c:1588 +#: ../src/desktop.c:1366 msgid "Could not load preferences" msgstr "Impossible de charger les préférences" -#: ../src/desktop.c:1848 +#: ../src/desktop.c:1650 +msgid "Desktop preferences" +msgstr "Préférences du bureau" + +#: ../src/desktop.c:1687 +msgid "Default color: " +msgstr "Couleur par défaut :" + +#: ../src/desktop.c:1699 ../src/desktop.c:1741 +msgid "Background" +msgstr "Arrière-plan" + +#: ../src/desktop.c:1702 +msgid "Picture files" +msgstr "Images" + +#: ../src/desktop.c:1720 +msgid "Position: " +msgstr "Position : " + +#: ../src/desktop.c:1726 +msgid "Centered" +msgstr "Centré" + +#: ../src/desktop.c:1728 +msgid "Scaled" +msgstr "Étiré" + +#: ../src/desktop.c:1730 +msgid "Scaled (keep ratio)" +msgstr "Étiré (sans déformer)" + +#: ../src/desktop.c:1732 +msgid "Tiled" +msgstr "Mosaïque" + +#: ../src/desktop.c:1737 +msgid "E_xtend background to all monitors" +msgstr "Étendre l'arrière-plan à tous les moniteurs" + +#: ../src/desktop.c:1760 +msgid "Monitor: " +msgstr "Moniteur : " + +#: ../src/desktop.c:1768 +#, c-format +msgid "Monitor %d" +msgstr "Moniteur %d" + +#: ../src/desktop.c:1778 +msgid "Monitors" +msgstr "Moniteurs" + +#: ../src/desktop.c:1793 +msgid "Desktop font: " +msgstr "Police du bureau : " + +#: ../src/desktop.c:1802 +msgid "Theme" +msgstr "Thème" + +#: ../src/desktop.c:1916 msgid "" "Usage: desktop [-H|-V][-a|-c|-f|-h|-n][-m monitor]\n" " -H\tPlace icons horizontally\n" diff --git a/po/it.po b/po/it.po index 0511cd0..579f5db 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Browser 0.1.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-08-05 22:20+0200\n" +"POT-Creation-Date: 2011-08-05 22:54+0200\n" "PO-Revision-Date: 2010-04-07 23:18+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: Italian\n" @@ -113,7 +113,7 @@ msgstr "" msgid "_Help" msgstr "" -#: ../src/browser.c:184 ../src/desktop.c:857 ../src/desktop.c:878 +#: ../src/browser.c:184 ../src/desktop.c:635 ../src/desktop.c:656 msgid "Back" msgstr "" @@ -129,7 +129,7 @@ msgstr "" msgid "Refresh" msgstr "" -#: ../src/browser.c:192 ../src/desktop.c:939 +#: ../src/browser.c:192 ../src/desktop.c:717 msgid "Home" msgstr "" @@ -187,7 +187,7 @@ msgstr "" #: ../src/browser.c:742 ../src/browser.c:746 ../src/copy.c:674 #: ../src/copy.c:678 ../src/delete.c:421 ../src/delete.c:426 -#: ../src/desktop.c:1540 ../src/desktop.c:1545 ../src/move.c:452 +#: ../src/desktop.c:1318 ../src/desktop.c:1323 ../src/move.c:452 #: ../src/move.c:456 ../src/properties.c:336 ../src/properties.c:340 #: ../src/view.c:367 ../src/view.c:372 msgid "Error" @@ -206,7 +206,7 @@ msgstr "" msgid "Shell scripts" msgstr "" -#: ../src/browser.c:963 ../src/desktop.c:542 ../src/view.c:436 +#: ../src/browser.c:963 ../src/desktop.c:1712 ../src/view.c:436 msgid "All files" msgstr "" @@ -335,7 +335,7 @@ msgstr "" msgid "Refreshing folder..." msgstr "" -#: ../src/callbacks.c:116 ../src/desktop.c:420 +#: ../src/callbacks.c:116 ../src/desktop.c:423 msgid "New folder" msgstr "" @@ -354,19 +354,19 @@ msgstr "" msgid "New" msgstr "" -#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:331 +#: ../src/callbacks.c:773 ../src/callbacks.c:777 ../src/desktop.c:334 msgid "Folder" msgstr "" -#: ../src/callbacks.c:784 ../src/desktop.c:339 +#: ../src/callbacks.c:784 ../src/desktop.c:342 msgid "Symbolic link..." msgstr "" -#: ../src/callbacks.c:788 ../src/desktop.c:343 +#: ../src/callbacks.c:788 ../src/desktop.c:346 msgid "Text file" msgstr "" -#: ../src/callbacks.c:823 ../src/desktop.c:439 +#: ../src/callbacks.c:823 ../src/desktop.c:442 msgid "New text file.txt" msgstr "" @@ -415,7 +415,7 @@ msgstr "" msgid "Copying: " msgstr "" -#: ../src/copy.c:152 ../src/desktop.c:525 +#: ../src/copy.c:152 ../src/desktop.c:1695 msgid "Filename: " msgstr "" @@ -500,63 +500,76 @@ msgid "" " -r\tEquivalent to -R\n" msgstr "" -#: ../src/desktop.c:496 -msgid "Desktop preferences" -msgstr "" - -#: ../src/desktop.c:517 -msgid "Default color: " -msgstr "" - -#: ../src/desktop.c:529 ../src/desktop.c:571 -msgid "Background" -msgstr "" - -#: ../src/desktop.c:532 -msgid "Picture files" -msgstr "" - -#: ../src/desktop.c:550 -msgid "Position: " -msgstr "" - -#: ../src/desktop.c:556 -msgid "Centered" -msgstr "" - -#: ../src/desktop.c:558 -msgid "Scaled" -msgstr "" - -#: ../src/desktop.c:560 -msgid "Scaled (keep ratio)" -msgstr "" - -#: ../src/desktop.c:562 -msgid "Tiled" -msgstr "" - -#: ../src/desktop.c:567 -msgid "E_xtend background to all monitors" -msgstr "" - -#: ../src/desktop.c:577 -msgid "Desktop font: " -msgstr "" - -#: ../src/desktop.c:586 -msgid "Theme" -msgstr "" - -#: ../src/desktop.c:970 +#: ../src/desktop.c:748 msgid "Applications" msgstr "" -#: ../src/desktop.c:1588 +#: ../src/desktop.c:1366 msgid "Could not load preferences" msgstr "" -#: ../src/desktop.c:1848 +#: ../src/desktop.c:1650 +msgid "Desktop preferences" +msgstr "" + +#: ../src/desktop.c:1687 +msgid "Default color: " +msgstr "" + +#: ../src/desktop.c:1699 ../src/desktop.c:1741 +msgid "Background" +msgstr "" + +#: ../src/desktop.c:1702 +msgid "Picture files" +msgstr "" + +#: ../src/desktop.c:1720 +msgid "Position: " +msgstr "" + +#: ../src/desktop.c:1726 +msgid "Centered" +msgstr "" + +#: ../src/desktop.c:1728 +msgid "Scaled" +msgstr "" + +#: ../src/desktop.c:1730 +msgid "Scaled (keep ratio)" +msgstr "" + +#: ../src/desktop.c:1732 +msgid "Tiled" +msgstr "" + +#: ../src/desktop.c:1737 +msgid "E_xtend background to all monitors" +msgstr "" + +#: ../src/desktop.c:1760 +msgid "Monitor: " +msgstr "" + +#: ../src/desktop.c:1768 +#, c-format +msgid "Monitor %d" +msgstr "" + +#: ../src/desktop.c:1778 +msgid "Monitors" +msgstr "" + +#: ../src/desktop.c:1793 +msgid "Desktop font: " +msgstr "" + +#: ../src/desktop.c:1802 +msgid "Theme" +msgstr "" + +#: ../src/desktop.c:1916 msgid "" "Usage: desktop [-H|-V][-a|-c|-f|-h|-n][-m monitor]\n" " -H\tPlace icons horizontally\n" diff --git a/src/desktop.c b/src/desktop.c index 6755789..f60eb96 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -96,6 +96,7 @@ struct _Desktop GtkWidget * pr_background; GtkWidget * pr_background_how; GtkWidget * pr_background_extend; + GtkWidget * pr_monitors; /* internal */ GdkScreen * screen; @@ -170,6 +171,8 @@ static void _desktop_draw_background(Desktop * desktop, GdkColor * color, static int _desktop_icon_add(Desktop * desktop, DesktopIcon * icon); static int _desktop_icon_remove(Desktop * desktop, DesktopIcon * icon); +static void _desktop_show_preferences(Desktop * desktop); + /* public */ /* functions */ @@ -465,236 +468,11 @@ static void _on_popup_paste(gpointer data) desktop->menu = NULL; } -static void _preferences_set(Desktop * desktop); -static gboolean _on_preferences_closex(gpointer data); -static void _on_preferences_response(GtkWidget * widget, gint response, - gpointer data); -static void _on_preferences_ok(gpointer data); -static void _on_preferences_apply(gpointer data); -static void _on_preferences_cancel(gpointer data); static void _on_popup_preferences(gpointer data) { Desktop * desktop = data; - GtkWidget * vbox; - GtkWidget * vbox2; - GtkWidget * hbox; - GtkWidget * widget; - GtkWidget * label; - GtkSizeGroup * group; - GtkFileFilter * filter; - if(desktop->menu != NULL) - gtk_widget_destroy(desktop->menu); - desktop->menu = NULL; - if(desktop->pr_window != NULL) - { - gtk_window_present(GTK_WINDOW(desktop->pr_window)); - return; - } - /* window */ - desktop->pr_window = gtk_dialog_new_with_buttons( - _("Desktop preferences"), NULL, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, - GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); - g_signal_connect_swapped(G_OBJECT(desktop->pr_window), "delete-event", - G_CALLBACK(_on_preferences_closex), desktop); - g_signal_connect(G_OBJECT(desktop->pr_window), "response", G_CALLBACK( - _on_preferences_response), desktop); -#if GTK_CHECK_VERSION(2, 14, 0) - vbox = gtk_dialog_get_content_area(GTK_DIALOG(desktop->pr_window)); -#else - vbox = GTK_DIALOG(desktop->pr_window)->vbox; -#endif - /* notebook */ - widget = gtk_notebook_new(); - vbox2 = gtk_vbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(vbox2), 4); - group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - /* background */ - hbox = gtk_hbox_new(FALSE, 0); - label = gtk_label_new(_("Default color: ")); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - gtk_size_group_add_widget(group, label); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); - desktop->pr_color = gtk_color_button_new(); - gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_color, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); - hbox = gtk_hbox_new(FALSE, 0); - label = gtk_label_new(_("Filename: ")); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - gtk_size_group_add_widget(group, label); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); - desktop->pr_background = gtk_file_chooser_button_new(_("Background"), - GTK_FILE_CHOOSER_ACTION_OPEN); - filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter, _("Picture files")); - gtk_file_filter_add_mime_type(filter, "image/bmp"); - gtk_file_filter_add_mime_type(filter, "image/gif"); - gtk_file_filter_add_mime_type(filter, "image/jpeg"); - gtk_file_filter_add_mime_type(filter, "image/pbm"); - gtk_file_filter_add_mime_type(filter, "image/png"); - gtk_file_filter_add_mime_type(filter, "image/svg+xml"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(desktop->pr_background), - filter); - filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter, _("All files")); - gtk_file_filter_add_pattern(filter, "*"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(desktop->pr_background), - filter); - gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_background, TRUE, TRUE, - 0); - gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); - hbox = gtk_hbox_new(FALSE, 0); - label = gtk_label_new(_("Position: ")); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - gtk_size_group_add_widget(group, label); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); - desktop->pr_background_how = gtk_combo_box_new_text(); - gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), - _("Centered")); - gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), - _("Scaled")); - gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), - _("Scaled (keep ratio)")); - gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), - _("Tiled")); - gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_background_how, TRUE, - TRUE, 0); - gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); - desktop->pr_background_extend = gtk_check_button_new_with_mnemonic( - _("E_xtend background to all monitors")); - gtk_box_pack_start(GTK_BOX(vbox2), desktop->pr_background_extend, FALSE, - TRUE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(widget), vbox2, gtk_label_new( - _("Background"))); - /* theme */ - vbox2 = gtk_vbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(vbox2), 4); - group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); - hbox = gtk_hbox_new(FALSE, 0); - label = gtk_label_new(_("Desktop font: ")); - gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); - gtk_size_group_add_widget(group, label); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); - desktop->pr_font = gtk_font_button_new(); - gtk_font_button_set_use_font(GTK_FONT_BUTTON(desktop->pr_font), TRUE); - gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_font, TRUE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); - gtk_notebook_append_page(GTK_NOTEBOOK(widget), vbox2, gtk_label_new( - _("Theme"))); - gtk_box_pack_start(GTK_BOX(vbox), widget, TRUE, TRUE, 0); - /* container */ - _preferences_set(desktop); - gtk_widget_show_all(desktop->pr_window); -} - -static gboolean _on_preferences_closex(gpointer data) -{ - _on_preferences_cancel(data); - return TRUE; -} - -static void _on_preferences_response(GtkWidget * widget, gint response, - gpointer data) -{ - if(response == GTK_RESPONSE_OK) - _on_preferences_ok(data); - else if(response == GTK_RESPONSE_APPLY) - _on_preferences_apply(data); - else if(response == GTK_RESPONSE_CANCEL) - _on_preferences_cancel(data); -} - -static void _on_preferences_ok(gpointer data) -{ - Desktop * desktop = data; - - gtk_widget_hide(desktop->pr_window); - _on_preferences_apply(data); -} - -static void _on_preferences_apply(gpointer data) -{ - Desktop * desktop = data; - Config * config; - GdkColor color; - char * p; - char const * q; - int i; - - /* XXX not very efficient */ - g_idle_add(_new_idle, desktop); - if((config = _desktop_get_config(desktop)) == NULL) - return; - q = gtk_font_button_get_font_name(GTK_FONT_BUTTON(desktop->pr_font)); - config_set(config, NULL, "font", q); - p = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER( - desktop->pr_background)); - config_set(config, NULL, "background", p); - g_free(p); - gtk_color_button_get_color(GTK_COLOR_BUTTON(desktop->pr_color), &color); - p = gdk_color_to_string(&color); - config_set(config, NULL, "background_color", p); - g_free(p); - i = gtk_combo_box_get_active(GTK_COMBO_BOX(desktop->pr_background_how)); - if(i >= 0 && i < DESKTOP_HOW_COUNT) - config_set(config, NULL, "background_how", _desktop_hows[i]); - p = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( - desktop->pr_background_extend)) ? "1" : "0"; - config_set(config, NULL, "background_extend", p); - /* XXX code duplication */ - if((p = string_new_append(desktop->home, "/" DESKTOPRC, NULL)) != NULL) - { - config_save(config, p); - string_delete(p); - } - config_delete(config); -} - -static void _on_preferences_cancel(gpointer data) -{ - Desktop * desktop = data; - - gtk_widget_hide(desktop->pr_window); - _preferences_set(desktop); -} - -static void _preferences_set(Desktop * desktop) -{ - Config * config; - String const * p; - String const * filename = NULL; - GdkColor color = { 0, 0, 0, 0 }; - int how = 0; - gboolean extend = FALSE; - size_t i; - - if((config = _desktop_get_config(desktop)) != NULL) - { - if((p = config_get(config, NULL, "font")) != NULL) - gtk_font_button_set_font_name(GTK_FONT_BUTTON( - desktop->pr_font), p); - filename = config_get(config, NULL, "background"); - if((p = config_get(config, NULL, "background_color")) != NULL - && gdk_color_parse(p, &color) == TRUE) - gtk_color_button_set_color(GTK_COLOR_BUTTON( - desktop->pr_color), &color); - if((p = config_get(config, NULL, "background_how")) != NULL) - for(i = 0; i < DESKTOP_HOW_COUNT; i++) - if(strcmp(_desktop_hows[i], p) == 0) - how = i; - if((p = config_get(config, NULL, "background_extend")) != NULL) - extend = strtol(p, NULL, 10) ? TRUE : FALSE; - config_delete(config); - } - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(desktop->pr_background), - filename); - gtk_combo_box_set_active(GTK_COMBO_BOX(desktop->pr_background_how), - how); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( - desktop->pr_background_extend), extend); + _desktop_show_preferences(desktop); } static void _on_popup_symlink(gpointer data) @@ -1647,14 +1425,14 @@ static int _desktop_get_workarea(Desktop * desktop) /* useful */ /* desktop_background */ -static void _background_centered(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error); -static void _background_scaled(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error); -static void _background_scaled_ratio(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error); -static void _background_tiled(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error); +static void _background_centered(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error); +static void _background_scaled(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error); +static void _background_scaled_ratio(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error); +static void _background_tiled(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error); static void _desktop_draw_background(Desktop * desktop, GdkColor * color, char const * filename, DesktopHows how, gboolean extend) @@ -1682,20 +1460,20 @@ static void _desktop_draw_background(Desktop * desktop, GdkColor * color, switch(how) { case DESKTOP_HOW_CENTERED: - _background_centered(desktop, &window, pixmap, - filename, &error); + _background_centered(&window, pixmap, filename, + &error); break; case DESKTOP_HOW_SCALED_RATIO: - _background_scaled_ratio(desktop, &window, - pixmap, filename, &error); + _background_scaled_ratio(&window, pixmap, + filename, &error); break; case DESKTOP_HOW_TILED: - _background_tiled(desktop, &window, pixmap, - filename, &error); + _background_tiled(&window, pixmap, filename, + &error); break; case DESKTOP_HOW_SCALED: - _background_scaled(desktop, &window, pixmap, - filename, &error); + _background_scaled(&window, pixmap, filename, + &error); break; } if(error != NULL) @@ -1709,8 +1487,8 @@ static void _desktop_draw_background(Desktop * desktop, GdkColor * color, gdk_pixmap_unref(pixmap); } -static void _background_centered(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error) +static void _background_centered(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error) { GdkPixbuf * background; gint w; @@ -1727,8 +1505,8 @@ static void _background_centered(Desktop * desktop, GdkRectangle * window, g_object_unref(background); } -static void _background_scaled(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error) +static void _background_scaled(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error) { GdkPixbuf * background; gint w; @@ -1754,8 +1532,8 @@ static void _background_scaled(Desktop * desktop, GdkRectangle * window, g_object_unref(background); } -static void _background_scaled_ratio(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error) +static void _background_scaled_ratio(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error) { GdkPixbuf * background; gint w; @@ -1778,8 +1556,8 @@ static void _background_scaled_ratio(Desktop * desktop, GdkRectangle * window, #endif } -static void _background_tiled(Desktop * desktop, GdkRectangle * window, - GdkPixmap * pixmap, char const * filename, GError ** error) +static void _background_tiled(GdkRectangle * window, GdkPixmap * pixmap, + char const * filename, GError ** error) { GdkPixbuf * background; gint w; @@ -1842,6 +1620,296 @@ static int _desktop_icon_remove(Desktop * desktop, DesktopIcon * icon) } +/* desktop_show_preferences */ +static void _preferences_background(Desktop * desktop, GtkWidget * notebook); +static void _preferences_monitors(Desktop * desktop, GtkWidget * notebook); +static void _preferences_theme(Desktop * desktop, GtkWidget * notebook); +static void _preferences_set(Desktop * desktop); +static gboolean _on_preferences_closex(gpointer data); +static void _on_preferences_response(GtkWidget * widget, gint response, + gpointer data); +static void _on_preferences_ok(gpointer data); +static void _on_preferences_apply(gpointer data); +static void _on_preferences_cancel(gpointer data); + +static void _desktop_show_preferences(Desktop * desktop) +{ + GtkWidget * vbox; + GtkWidget * notebook; + + if(desktop->menu != NULL) + gtk_widget_destroy(desktop->menu); + desktop->menu = NULL; + if(desktop->pr_window != NULL) + { + gtk_window_present(GTK_WINDOW(desktop->pr_window)); + return; + } + /* window */ + desktop->pr_window = gtk_dialog_new_with_buttons( + _("Desktop preferences"), NULL, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); + g_signal_connect_swapped(G_OBJECT(desktop->pr_window), "delete-event", + G_CALLBACK(_on_preferences_closex), desktop); + g_signal_connect(G_OBJECT(desktop->pr_window), "response", G_CALLBACK( + _on_preferences_response), desktop); +#if GTK_CHECK_VERSION(2, 14, 0) + vbox = gtk_dialog_get_content_area(GTK_DIALOG(desktop->pr_window)); +#else + vbox = GTK_DIALOG(desktop->pr_window)->vbox; +#endif + /* notebook */ + notebook = gtk_notebook_new(); + _preferences_background(desktop, notebook); + _preferences_monitors(desktop, notebook); + _preferences_theme(desktop, notebook); + gtk_box_pack_start(GTK_BOX(vbox), notebook, TRUE, TRUE, 0); + /* container */ + _preferences_set(desktop); + gtk_widget_show_all(desktop->pr_window); +} + +static void _preferences_background(Desktop * desktop, GtkWidget * notebook) +{ + GtkSizeGroup * group; + GtkWidget * vbox2; + GtkWidget * hbox; + GtkWidget * label; + GtkFileFilter * filter; + + vbox2 = gtk_vbox_new(FALSE, 4); + gtk_container_set_border_width(GTK_CONTAINER(vbox2), 4); + group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + hbox = gtk_hbox_new(FALSE, 0); + label = gtk_label_new(_("Default color: ")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); + desktop->pr_color = gtk_color_button_new(); + gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_color, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); + hbox = gtk_hbox_new(FALSE, 0); + label = gtk_label_new(_("Filename: ")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); + desktop->pr_background = gtk_file_chooser_button_new(_("Background"), + GTK_FILE_CHOOSER_ACTION_OPEN); + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, _("Picture files")); + gtk_file_filter_add_mime_type(filter, "image/bmp"); + gtk_file_filter_add_mime_type(filter, "image/gif"); + gtk_file_filter_add_mime_type(filter, "image/jpeg"); + gtk_file_filter_add_mime_type(filter, "image/pbm"); + gtk_file_filter_add_mime_type(filter, "image/png"); + gtk_file_filter_add_mime_type(filter, "image/svg+xml"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(desktop->pr_background), + filter); + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, _("All files")); + gtk_file_filter_add_pattern(filter, "*"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(desktop->pr_background), + filter); + gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_background, TRUE, TRUE, + 0); + gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); + hbox = gtk_hbox_new(FALSE, 0); + label = gtk_label_new(_("Position: ")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); + desktop->pr_background_how = gtk_combo_box_new_text(); + gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), + _("Centered")); + gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), + _("Scaled")); + gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), + _("Scaled (keep ratio)")); + gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_background_how), + _("Tiled")); + gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_background_how, TRUE, + TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); + desktop->pr_background_extend = gtk_check_button_new_with_mnemonic( + _("E_xtend background to all monitors")); + gtk_box_pack_start(GTK_BOX(vbox2), desktop->pr_background_extend, FALSE, + TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, gtk_label_new( + _("Background"))); +} + +static void _preferences_monitors(Desktop * desktop, GtkWidget * notebook) +{ +#if GTK_CHECK_VERSION(2, 14, 0) + GtkSizeGroup * group; + GtkWidget * vbox2; + GtkWidget * hbox; + GtkWidget * label; + gint n; + gint i; + char * name; + char buf[32]; + + group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + vbox2 = gtk_vbox_new(FALSE, 4); + gtk_container_set_border_width(GTK_CONTAINER(vbox2), 4); + hbox = gtk_hbox_new(FALSE, 0); + label = gtk_label_new(_("Monitor: ")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); + desktop->pr_monitors = gtk_combo_box_new_text(); + n = gdk_screen_get_n_monitors(desktop->screen); + for(i = 0; i < n; i++) + { + snprintf(buf, sizeof(buf), _("Monitor %d"), i); + name = gdk_screen_get_monitor_plug_name(desktop->screen, i); + gtk_combo_box_append_text(GTK_COMBO_BOX(desktop->pr_monitors), + (name != NULL) ? name : buf); + g_free(name); + } + gtk_combo_box_set_active(GTK_COMBO_BOX(desktop->pr_monitors), 0); + gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_monitors, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, gtk_label_new( + _("Monitors"))); +#endif +} + +static void _preferences_theme(Desktop * desktop, GtkWidget * notebook) +{ + GtkSizeGroup * group; + GtkWidget * vbox2; + GtkWidget * hbox; + GtkWidget * label; + + vbox2 = gtk_vbox_new(FALSE, 4); + gtk_container_set_border_width(GTK_CONTAINER(vbox2), 4); + group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + hbox = gtk_hbox_new(FALSE, 0); + label = gtk_label_new(_("Desktop font: ")); + gtk_misc_set_alignment(GTK_MISC(label), 0.0, 0.5); + gtk_size_group_add_widget(group, label); + gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); + desktop->pr_font = gtk_font_button_new(); + gtk_font_button_set_use_font(GTK_FONT_BUTTON(desktop->pr_font), TRUE); + gtk_box_pack_start(GTK_BOX(hbox), desktop->pr_font, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox2), hbox, FALSE, TRUE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox2, gtk_label_new( + _("Theme"))); +} + +static gboolean _on_preferences_closex(gpointer data) +{ + _on_preferences_cancel(data); + return TRUE; +} + +static void _on_preferences_response(GtkWidget * widget, gint response, + gpointer data) +{ + if(response == GTK_RESPONSE_OK) + _on_preferences_ok(data); + else if(response == GTK_RESPONSE_APPLY) + _on_preferences_apply(data); + else if(response == GTK_RESPONSE_CANCEL) + _on_preferences_cancel(data); +} + +static void _on_preferences_ok(gpointer data) +{ + Desktop * desktop = data; + + gtk_widget_hide(desktop->pr_window); + _on_preferences_apply(data); +} + +static void _on_preferences_apply(gpointer data) +{ + Desktop * desktop = data; + Config * config; + GdkColor color; + char * p; + char const * q; + int i; + + /* XXX not very efficient */ + g_idle_add(_new_idle, desktop); + if((config = _desktop_get_config(desktop)) == NULL) + return; + q = gtk_font_button_get_font_name(GTK_FONT_BUTTON(desktop->pr_font)); + config_set(config, NULL, "font", q); + p = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER( + desktop->pr_background)); + config_set(config, NULL, "background", p); + g_free(p); + gtk_color_button_get_color(GTK_COLOR_BUTTON(desktop->pr_color), &color); + p = gdk_color_to_string(&color); + config_set(config, NULL, "background_color", p); + g_free(p); + i = gtk_combo_box_get_active(GTK_COMBO_BOX(desktop->pr_background_how)); + if(i >= 0 && i < DESKTOP_HOW_COUNT) + config_set(config, NULL, "background_how", _desktop_hows[i]); + p = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON( + desktop->pr_background_extend)) ? "1" : "0"; + config_set(config, NULL, "background_extend", p); + /* XXX code duplication */ + if((p = string_new_append(desktop->home, "/" DESKTOPRC, NULL)) != NULL) + { + config_save(config, p); + string_delete(p); + } + config_delete(config); +} + +static void _on_preferences_cancel(gpointer data) +{ + Desktop * desktop = data; + + gtk_widget_hide(desktop->pr_window); + _preferences_set(desktop); +} + +static void _preferences_set(Desktop * desktop) +{ + Config * config; + String const * p; + String const * filename = NULL; + GdkColor color = { 0, 0, 0, 0 }; + int how = 0; + gboolean extend = FALSE; + size_t i; + + if((config = _desktop_get_config(desktop)) != NULL) + { + if((p = config_get(config, NULL, "font")) != NULL) + gtk_font_button_set_font_name(GTK_FONT_BUTTON( + desktop->pr_font), p); + filename = config_get(config, NULL, "background"); + if((p = config_get(config, NULL, "background_color")) != NULL + && gdk_color_parse(p, &color) == TRUE) + gtk_color_button_set_color(GTK_COLOR_BUTTON( + desktop->pr_color), &color); + if((p = config_get(config, NULL, "background_how")) != NULL) + for(i = 0; i < DESKTOP_HOW_COUNT; i++) + if(strcmp(_desktop_hows[i], p) == 0) + how = i; + if((p = config_get(config, NULL, "background_extend")) != NULL) + extend = strtol(p, NULL, 10) ? TRUE : FALSE; + config_delete(config); + } + gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(desktop->pr_background), + filename); + gtk_combo_box_set_active(GTK_COMBO_BOX(desktop->pr_background_how), + how); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON( + desktop->pr_background_extend), extend); +} + + /* usage */ static int _usage(void) {