Implemented some preferences
This commit is contained in:
parent
77251424d4
commit
9077fe99a3
56
po/fr.po
56
po/fr.po
|
@ -7,7 +7,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Panel 0.0.5\n"
|
"Project-Id-Version: Panel 0.0.5\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2010-10-28 15:39+0200\n"
|
"POT-Creation-Date: 2010-12-31 00:15+0100\n"
|
||||||
"PO-Revision-Date: 2010-04-22 12:45+0200\n"
|
"PO-Revision-Date: 2010-04-22 12:45+0200\n"
|
||||||
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
"Last-Translator: Pierre Pronchery <khorben@defora.org>\n"
|
||||||
"Language-Team: French\n"
|
"Language-Team: French\n"
|
||||||
|
@ -16,11 +16,11 @@ msgstr ""
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
|
||||||
#: ../src/applets/battery.c:168
|
#: ../src/applets/battery.c:170
|
||||||
msgid "Unknown"
|
msgid "Unknown"
|
||||||
msgstr "Inconnu"
|
msgstr "Inconnu"
|
||||||
|
|
||||||
#: ../src/applets/battery.c:184 ../src/panel.c:361 ../src/run.c:196
|
#: ../src/applets/battery.c:186 ../src/panel.c:362 ../src/run.c:196
|
||||||
#: ../src/run.c:200
|
#: ../src/run.c:200
|
||||||
msgid "Error"
|
msgid "Error"
|
||||||
msgstr "Erreur"
|
msgstr "Erreur"
|
||||||
|
@ -62,8 +62,8 @@ msgstr "Verrouiller l'écran"
|
||||||
msgid "Logging out is disabled"
|
msgid "Logging out is disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../src/applets/logout.c:70 ../src/panel.c:547 ../src/panel.c:554
|
#: ../src/applets/logout.c:70 ../src/panel.c:629 ../src/panel.c:636
|
||||||
#: ../src/panel.c:562
|
#: ../src/panel.c:644
|
||||||
msgid "Logout"
|
msgid "Logout"
|
||||||
msgstr "Déconnexion"
|
msgstr "Déconnexion"
|
||||||
|
|
||||||
|
@ -135,15 +135,39 @@ msgstr "Déplacer vers le bureau"
|
||||||
msgid "Maximize"
|
msgid "Maximize"
|
||||||
msgstr "Maximiser"
|
msgstr "Maximiser"
|
||||||
|
|
||||||
#: ../src/panel.c:141
|
#: ../src/panel.c:78
|
||||||
|
msgid "large"
|
||||||
|
msgstr "grande"
|
||||||
|
|
||||||
|
#: ../src/panel.c:79
|
||||||
|
msgid "small"
|
||||||
|
msgstr "petite"
|
||||||
|
|
||||||
|
#: ../src/panel.c:80
|
||||||
|
msgid "smaller"
|
||||||
|
msgstr "très petite"
|
||||||
|
|
||||||
|
#: ../src/panel.c:157
|
||||||
msgid "Invalid panel size"
|
msgid "Invalid panel size"
|
||||||
msgstr "Taille invalide pour le panel"
|
msgstr "Taille invalide pour le panel"
|
||||||
|
|
||||||
#: ../src/panel.c:440
|
#: ../src/panel.c:445
|
||||||
msgid "Panel preferences"
|
msgid "Panel preferences"
|
||||||
msgstr "Préférences du Panel"
|
msgstr "Préférences du Panel"
|
||||||
|
|
||||||
#: ../src/panel.c:537
|
#: ../src/panel.c:458
|
||||||
|
msgid "Top size:"
|
||||||
|
msgstr "Taille du haut :"
|
||||||
|
|
||||||
|
#: ../src/panel.c:469
|
||||||
|
msgid "Bottom size:"
|
||||||
|
msgstr "Taille du bas :"
|
||||||
|
|
||||||
|
#: ../src/panel.c:480
|
||||||
|
msgid "General"
|
||||||
|
msgstr "Générales"
|
||||||
|
|
||||||
|
#: ../src/panel.c:619
|
||||||
msgid ""
|
msgid ""
|
||||||
"This will log you out of the current session, therefore closing any "
|
"This will log you out of the current session, therefore closing any "
|
||||||
"application currently opened and losing any unsaved data.\n"
|
"application currently opened and losing any unsaved data.\n"
|
||||||
|
@ -154,33 +178,33 @@ msgstr ""
|
||||||
"sauvegardées.\n"
|
"sauvegardées.\n"
|
||||||
"Voulez-vous continuer?"
|
"Voulez-vous continuer?"
|
||||||
|
|
||||||
#: ../src/panel.c:610
|
#: ../src/panel.c:692
|
||||||
msgid ""
|
msgid ""
|
||||||
"This will shutdown your device, therefore closing any application currently "
|
"This will shutdown your device, therefore closing any application currently "
|
||||||
"opened and losing any unsaved data.\n"
|
"opened and losing any unsaved data.\n"
|
||||||
"Do you really want to proceed?"
|
"Do you really want to proceed?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Votre appareil va être éteint, fermant toute application actuellement "
|
"Votre appareil va être éteint, fermant toute application actuellement en "
|
||||||
"en cours d'exécution, avec la perte potentielle des données non encore "
|
"cours d'exécution, avec la perte potentielle des données non encore "
|
||||||
"sauvegardées.\n"
|
"sauvegardées.\n"
|
||||||
"Voulez-vous continuer?"
|
"Voulez-vous continuer?"
|
||||||
|
|
||||||
#: ../src/panel.c:615
|
#: ../src/panel.c:697
|
||||||
msgid ""
|
msgid ""
|
||||||
"This will shutdown your computer, therefore closing any application "
|
"This will shutdown your computer, therefore closing any application "
|
||||||
"currently opened and losing any unsaved data.\n"
|
"currently opened and losing any unsaved data.\n"
|
||||||
"Do you really want to proceed?"
|
"Do you really want to proceed?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Votre ordinateur va être éteint, fermant toute application actuellement "
|
"Votre ordinateur va être éteint, fermant toute application actuellement en "
|
||||||
"en cours d'exécution, avec la perte potentielle des données non encore "
|
"cours d'exécution, avec la perte potentielle des données non encore "
|
||||||
"sauvegardées.\n"
|
"sauvegardées.\n"
|
||||||
"Voulez-vous continuer?"
|
"Voulez-vous continuer?"
|
||||||
|
|
||||||
#: ../src/panel.c:632 ../src/panel.c:637 ../src/panel.c:644
|
#: ../src/panel.c:714 ../src/panel.c:719 ../src/panel.c:726
|
||||||
msgid "Shutdown"
|
msgid "Shutdown"
|
||||||
msgstr "Arrêter"
|
msgstr "Arrêter"
|
||||||
|
|
||||||
#: ../src/panel.c:636
|
#: ../src/panel.c:718
|
||||||
msgid "Restart"
|
msgid "Restart"
|
||||||
msgstr "Redémarrer"
|
msgstr "Redémarrer"
|
||||||
|
|
||||||
|
|
130
src/panel.c
130
src/panel.c
|
@ -27,6 +27,7 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "../config.h"
|
#include "../config.h"
|
||||||
#define _(string) gettext(string)
|
#define _(string) gettext(string)
|
||||||
|
#define N_(string) (string)
|
||||||
|
|
||||||
|
|
||||||
/* Panel */
|
/* Panel */
|
||||||
|
@ -54,6 +55,8 @@ struct _Panel
|
||||||
/* preferences */
|
/* preferences */
|
||||||
GtkWidget * pr_window;
|
GtkWidget * pr_window;
|
||||||
GtkWidget * pr_notebook;
|
GtkWidget * pr_notebook;
|
||||||
|
GtkWidget * pr_bottom_size;
|
||||||
|
GtkWidget * pr_top_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,6 +69,17 @@ struct _Panel
|
||||||
#endif
|
#endif
|
||||||
#define PANEL_CONFIG_FILE ".panel"
|
#define PANEL_CONFIG_FILE ".panel"
|
||||||
|
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
char const * alias;
|
||||||
|
GtkIconSize iconsize;
|
||||||
|
} _panel_sizes[] =
|
||||||
|
{
|
||||||
|
{ N_("large"), PANEL_ICON_SIZE_LARGE },
|
||||||
|
{ N_("small"), PANEL_ICON_SIZE_SMALL },
|
||||||
|
{ N_("smaller"), PANEL_ICON_SIZE_SMALLER },
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/* prototypes */
|
/* prototypes */
|
||||||
/* helpers */
|
/* helpers */
|
||||||
|
@ -82,6 +96,8 @@ static void _panel_helper_position_menu(GtkMenu * menu, gint * x, gint * y,
|
||||||
static void _panel_helper_preferences_dialog(Panel * panel);
|
static void _panel_helper_preferences_dialog(Panel * panel);
|
||||||
static int _panel_helper_shutdown_dialog(void);
|
static int _panel_helper_shutdown_dialog(void);
|
||||||
|
|
||||||
|
static char * _config_get_filename(void);
|
||||||
|
|
||||||
|
|
||||||
/* public */
|
/* public */
|
||||||
/* panel_new */
|
/* panel_new */
|
||||||
|
@ -203,13 +219,9 @@ static int _new_config(Panel * panel)
|
||||||
char * filename;
|
char * filename;
|
||||||
|
|
||||||
if((panel->config = config_new()) == NULL)
|
if((panel->config = config_new()) == NULL)
|
||||||
return 1;
|
return -1;
|
||||||
if((homedir = getenv("HOME")) == NULL)
|
if((filename = _config_get_filename()) == NULL)
|
||||||
homedir = g_get_home_dir();
|
return -1;
|
||||||
len = strlen(homedir) + 1 + sizeof(PANEL_CONFIG_FILE);
|
|
||||||
if((filename = malloc(len)) == NULL)
|
|
||||||
return 1;
|
|
||||||
snprintf(filename, len, "%s/%s", homedir, PANEL_CONFIG_FILE);
|
|
||||||
config_load(panel->config, filename); /* we can ignore errors */
|
config_load(panel->config, filename); /* we can ignore errors */
|
||||||
free(filename);
|
free(filename);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -217,24 +229,13 @@ static int _new_config(Panel * panel)
|
||||||
|
|
||||||
static void _new_prefs(PanelPrefs * prefs, PanelPrefs const * user)
|
static void _new_prefs(PanelPrefs * prefs, PanelPrefs const * user)
|
||||||
{
|
{
|
||||||
struct
|
|
||||||
{
|
|
||||||
char const * alias;
|
|
||||||
GtkIconSize iconsize;
|
|
||||||
} aliases[] =
|
|
||||||
{
|
|
||||||
{ "large", PANEL_ICON_SIZE_LARGE },
|
|
||||||
{ "small", PANEL_ICON_SIZE_SMALL },
|
|
||||||
{ "smaller", PANEL_ICON_SIZE_SMALLER },
|
|
||||||
{ NULL, PANEL_ICON_SIZE_UNSET }
|
|
||||||
};
|
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
for(i = 0; aliases[i].alias != NULL; i++)
|
for(i = 0; i < sizeof(_panel_sizes) / sizeof(*_panel_sizes); i++)
|
||||||
if(gtk_icon_size_from_name(aliases[i].alias)
|
if(gtk_icon_size_from_name(_panel_sizes[i].alias)
|
||||||
== GTK_ICON_SIZE_INVALID)
|
== GTK_ICON_SIZE_INVALID)
|
||||||
gtk_icon_size_register_alias(aliases[i].alias,
|
gtk_icon_size_register_alias(_panel_sizes[i].alias,
|
||||||
aliases[i].iconsize);
|
_panel_sizes[i].iconsize);
|
||||||
if(user != NULL)
|
if(user != NULL)
|
||||||
{
|
{
|
||||||
memcpy(prefs, user, sizeof(*prefs));
|
memcpy(prefs, user, sizeof(*prefs));
|
||||||
|
@ -425,6 +426,10 @@ static void _preferences_on_ok(gpointer data);
|
||||||
void panel_show_preferences(Panel * panel, gboolean show)
|
void panel_show_preferences(Panel * panel, gboolean show)
|
||||||
{
|
{
|
||||||
GtkWidget * vbox;
|
GtkWidget * vbox;
|
||||||
|
GtkWidget * hbox;
|
||||||
|
GtkWidget * widget;
|
||||||
|
GtkSizeGroup * group;
|
||||||
|
size_t i;
|
||||||
|
|
||||||
if(show == FALSE)
|
if(show == FALSE)
|
||||||
{
|
{
|
||||||
|
@ -445,6 +450,34 @@ void panel_show_preferences(Panel * panel, gboolean show)
|
||||||
G_CALLBACK(_preferences_on_closex), panel);
|
G_CALLBACK(_preferences_on_closex), panel);
|
||||||
g_signal_connect(G_OBJECT(panel->pr_window), "response",
|
g_signal_connect(G_OBJECT(panel->pr_window), "response",
|
||||||
G_CALLBACK(_preferences_on_response), panel);
|
G_CALLBACK(_preferences_on_response), panel);
|
||||||
|
/* general */
|
||||||
|
group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
|
||||||
|
vbox = gtk_vbox_new(FALSE, 4);
|
||||||
|
gtk_container_set_border_width(GTK_CONTAINER(vbox), 4);
|
||||||
|
hbox = gtk_hbox_new(FALSE, 4);
|
||||||
|
widget = gtk_label_new(_("Top size:"));
|
||||||
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
|
gtk_size_group_add_widget(group, widget);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
|
panel->pr_top_size = gtk_combo_box_new_text();
|
||||||
|
for(i = 0; i < sizeof(_panel_sizes) / sizeof(*_panel_sizes); i++)
|
||||||
|
gtk_combo_box_append_text(GTK_COMBO_BOX(panel->pr_top_size),
|
||||||
|
_(_panel_sizes[i].alias));
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), panel->pr_top_size, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
|
hbox = gtk_hbox_new(FALSE, 4);
|
||||||
|
widget = gtk_label_new(_("Bottom size:"));
|
||||||
|
gtk_misc_set_alignment(GTK_MISC(widget), 0.0, 0.5);
|
||||||
|
gtk_size_group_add_widget(group, widget);
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0);
|
||||||
|
panel->pr_bottom_size = gtk_combo_box_new_text();
|
||||||
|
for(i = 0; i < sizeof(_panel_sizes) / sizeof(*_panel_sizes); i++)
|
||||||
|
gtk_combo_box_append_text(GTK_COMBO_BOX(panel->pr_bottom_size),
|
||||||
|
_(_panel_sizes[i].alias));
|
||||||
|
gtk_box_pack_start(GTK_BOX(hbox), panel->pr_bottom_size, TRUE, TRUE, 0);
|
||||||
|
gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, TRUE, 0);
|
||||||
|
gtk_notebook_append_page(GTK_NOTEBOOK(panel->pr_notebook), vbox,
|
||||||
|
gtk_label_new(_("General")));
|
||||||
#if GTK_CHECK_VERSION(2, 14, 0)
|
#if GTK_CHECK_VERSION(2, 14, 0)
|
||||||
vbox = gtk_dialog_get_content_area(GTK_DIALOG(panel->pr_window));
|
vbox = gtk_dialog_get_content_area(GTK_DIALOG(panel->pr_window));
|
||||||
#else
|
#else
|
||||||
|
@ -477,22 +510,71 @@ static void _preferences_on_response(GtkWidget * widget, gint response,
|
||||||
static void _preferences_on_cancel(gpointer data)
|
static void _preferences_on_cancel(gpointer data)
|
||||||
{
|
{
|
||||||
Panel * panel = data;
|
Panel * panel = data;
|
||||||
|
char const * p;
|
||||||
|
size_t i;
|
||||||
|
const size_t cnt = sizeof(_panel_sizes) / sizeof(*_panel_sizes);
|
||||||
|
|
||||||
gtk_widget_hide(panel->pr_window);
|
gtk_widget_hide(panel->pr_window);
|
||||||
/* FIXME reset configuration */
|
if((p = config_get(panel->config, NULL, "bottom_size")) != NULL)
|
||||||
|
for(i = 0; i < cnt; i++)
|
||||||
|
{
|
||||||
|
if(strcmp(p, _panel_sizes[i].alias) != 0)
|
||||||
|
continue;
|
||||||
|
gtk_combo_box_set_active(GTK_COMBO_BOX(
|
||||||
|
panel->pr_bottom_size), i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if((p = config_get(panel->config, NULL, "top_size")) != NULL)
|
||||||
|
for(i = 0; i < cnt; i++)
|
||||||
|
{
|
||||||
|
if(strcmp(p, _panel_sizes[i].alias) != 0)
|
||||||
|
continue;
|
||||||
|
gtk_combo_box_set_active(GTK_COMBO_BOX(
|
||||||
|
panel->pr_top_size), i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void _preferences_on_ok(gpointer data)
|
static void _preferences_on_ok(gpointer data)
|
||||||
{
|
{
|
||||||
Panel * panel = data;
|
Panel * panel = data;
|
||||||
|
gint i;
|
||||||
|
const gint cnt = sizeof(_panel_sizes) / sizeof(*_panel_sizes);
|
||||||
|
char * filename;
|
||||||
|
|
||||||
gtk_widget_hide(panel->pr_window);
|
gtk_widget_hide(panel->pr_window);
|
||||||
/* FIXME apply configuration */
|
if((i = gtk_combo_box_get_active(GTK_COMBO_BOX(panel->pr_bottom_size)))
|
||||||
|
>= 0 && i < cnt)
|
||||||
|
config_set(panel->config, NULL, "bottom_size",
|
||||||
|
_panel_sizes[i].alias);
|
||||||
|
if((i = gtk_combo_box_get_active(GTK_COMBO_BOX(panel->pr_top_size)))
|
||||||
|
>= 0 && i < cnt)
|
||||||
|
config_set(panel->config, NULL, "top_size",
|
||||||
|
_panel_sizes[i].alias);
|
||||||
|
if((filename = _config_get_filename()) != NULL)
|
||||||
|
config_save(panel->config, filename);
|
||||||
|
free(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* private */
|
/* private */
|
||||||
/* functions */
|
/* functions */
|
||||||
|
static char * _config_get_filename(void)
|
||||||
|
{
|
||||||
|
char const * homedir;
|
||||||
|
size_t len;
|
||||||
|
char * filename;
|
||||||
|
|
||||||
|
if((homedir = getenv("HOME")) == NULL)
|
||||||
|
homedir = g_get_home_dir();
|
||||||
|
len = strlen(homedir) + 1 + sizeof(PANEL_CONFIG_FILE);
|
||||||
|
if((filename = malloc(len)) == NULL)
|
||||||
|
return NULL;
|
||||||
|
snprintf(filename, len, "%s/%s", homedir, PANEL_CONFIG_FILE);
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* helpers */
|
/* helpers */
|
||||||
/* panel_helper_config_get */
|
/* panel_helper_config_get */
|
||||||
static char const * _panel_helper_config_get(Panel * panel,
|
static char const * _panel_helper_config_get(Panel * panel,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user