From 6bc347e88b3941cdf1a565cc623dd137452882a3 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Mon, 9 Aug 2010 23:02:48 +0000 Subject: [PATCH] Updated the plug-in API for consistency with Phone's own plug-in API --- include/Panel.h | 8 +++++--- po/fr.po | 17 +++++++++-------- src/applets/clock.c | 6 +++--- src/applets/cpu.c | 4 ++-- src/applets/cpufreq.c | 4 ++-- src/applets/keyboard.c | 10 +++++----- src/applets/lock.c | 2 +- src/applets/main.c | 4 ++-- src/applets/memory.c | 5 +++-- src/applets/pager.c | 4 ++-- src/applets/swap.c | 5 +++-- src/applets/systray.c | 2 +- src/applets/tasks.c | 2 +- src/applets/volume.c | 20 ++++++++++---------- src/common.h | 3 +-- src/panel.c | 23 +++++++++-------------- 16 files changed, 59 insertions(+), 60 deletions(-) diff --git a/include/Panel.h b/include/Panel.h index 1567958..e710842 100644 --- a/include/Panel.h +++ b/include/Panel.h @@ -23,19 +23,21 @@ /* PanelApplet */ /* types */ +typedef struct _Panel Panel; + typedef struct _PanelApplet PanelApplet; typedef struct _PanelAppletHelper { + Panel * panel; GtkIconSize icon_size; - char const * (*config_get)(void * priv, char const * section, + char const * (*config_get)(Panel * panel, char const * section, char const * variable); - int (*error)(void * priv, char const * message, int ret); + int (*error)(Panel * panel, char const * message, int ret); int (*logout_dialog)(void); void (*position_menu)(GtkMenu * menu, gint * x, gint * y, gboolean * push_in, gpointer data); int (*shutdown_dialog)(void); - void * priv; } PanelAppletHelper; typedef GtkWidget * (*PanelAppletInitFunc)(PanelApplet * applet); diff --git a/po/fr.po b/po/fr.po index 7fa8203..78a9070 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Panel 0.0.5\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-08-08 00:11+0200\n" +"POT-Creation-Date: 2010-08-10 00:58+0200\n" "PO-Revision-Date: 2010-04-22 12:45+0200\n" "Last-Translator: Pierre Pronchery \n" "Language-Team: French\n" @@ -20,7 +20,8 @@ msgstr "" msgid "Unknown" msgstr "Inconnu" -#: ../src/applets/battery.c:182 ../src/run.c:196 ../src/run.c:200 +#: ../src/applets/battery.c:182 ../src/panel.c:297 ../src/run.c:196 +#: ../src/run.c:200 msgid "Error" msgstr "Erreur" @@ -61,8 +62,8 @@ msgstr "Verrouiller l'écran" msgid "Logging out is disabled" msgstr "" -#: ../src/applets/logout.c:67 ../src/panel.c:396 ../src/panel.c:401 -#: ../src/panel.c:409 +#: ../src/applets/logout.c:67 ../src/panel.c:391 ../src/panel.c:396 +#: ../src/panel.c:404 msgid "Logout" msgstr "Déconnexion" @@ -134,25 +135,25 @@ msgstr "Déplacer vers le bureau" msgid "Maximize" msgstr "Maximiser" -#: ../src/panel.c:388 +#: ../src/panel.c:383 msgid "" "This will log you out of the current session, therefore closing any " "application currently opened and losing any unsaved data.\n" "Do you really want to proceed?" msgstr "" -#: ../src/panel.c:449 +#: ../src/panel.c:444 msgid "" "This will shutdown your computer, therefore closing any application " "currently opened and losing any unsaved data.\n" "Do you really want to proceed?" msgstr "" -#: ../src/panel.c:465 ../src/panel.c:470 ../src/panel.c:477 +#: ../src/panel.c:460 ../src/panel.c:465 ../src/panel.c:472 msgid "Shutdown" msgstr "Arrêter" -#: ../src/panel.c:469 +#: ../src/panel.c:464 msgid "Restart" msgstr "Redémarrer" diff --git a/src/applets/clock.c b/src/applets/clock.c index ae15b6a..bb99566 100644 --- a/src/applets/clock.c +++ b/src/applets/clock.c @@ -77,7 +77,7 @@ static GtkWidget * _clock_init(PanelApplet * applet) applet->priv = clock; clock->helper = applet->helper; clock->label = gtk_label_new(" \n "); - if((clock->format = applet->helper->config_get(applet->helper->priv, + if((clock->format = applet->helper->config_get(applet->helper->panel, "clock", "format")) == NULL) #ifdef EMBEDDED clock->format = _("%H:%M"); @@ -126,8 +126,8 @@ static gboolean _on_timeout(gpointer data) char buf[32]; if(gettimeofday(&tv, NULL) != 0) - return clock->helper->error(clock->helper->priv, "gettimeofday", - TRUE); + return clock->helper->error(clock->helper->panel, + "gettimeofday", TRUE); t = tv.tv_sec; localtime_r(&t, &tm); strftime(buf, sizeof(buf), clock->format, &tm); diff --git a/src/applets/cpu.c b/src/applets/cpu.c index d1a92bc..d075cce 100644 --- a/src/applets/cpu.c +++ b/src/applets/cpu.c @@ -81,7 +81,7 @@ static GtkWidget * _cpu_init(PanelApplet * applet) if((cpu = malloc(sizeof(*cpu))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = cpu; @@ -135,7 +135,7 @@ static gboolean _on_timeout(gpointer data) gdouble value; if(sysctl(mib, 2, &cpu_time, &size, NULL, 0) < 0) - return cpu->helper->error(cpu->helper->priv, "sysctl", TRUE); + return cpu->helper->error(cpu->helper->panel, "sysctl", TRUE); used = cpu_time[CP_USER] + cpu_time[CP_SYS] + cpu_time[CP_NICE] + cpu_time[CP_INTR]; total = used + cpu_time[CP_IDLE]; diff --git a/src/applets/cpufreq.c b/src/applets/cpufreq.c index cc68cfb..d68176f 100644 --- a/src/applets/cpufreq.c +++ b/src/applets/cpufreq.c @@ -93,7 +93,7 @@ static GtkWidget * _cpufreq_init(PanelApplet * applet) } if((cpufreq = malloc(sizeof(*cpufreq))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = cpufreq; @@ -116,7 +116,7 @@ static GtkWidget * _cpufreq_init(PanelApplet * applet) gtk_range_set_inverted(GTK_RANGE(cpufreq->scale), TRUE); gtk_scale_set_value_pos(GTK_SCALE(cpufreq->scale), GTK_POS_RIGHT); gtk_box_pack_start(GTK_BOX(ret), cpufreq->scale, FALSE, FALSE, 0); - cpufreq->timeout = g_timeout_add(500, _on_timeout, cpufreq); + cpufreq->timeout = g_timeout_add(1000, _on_timeout, cpufreq); _on_timeout(cpufreq); pango_font_description_free(desc); gtk_widget_show_all(ret); diff --git a/src/applets/keyboard.c b/src/applets/keyboard.c index 51333df..0c3a251 100644 --- a/src/applets/keyboard.c +++ b/src/applets/keyboard.c @@ -104,16 +104,16 @@ static gboolean _init_idle(gpointer data) if(keyboard->window != NULL) return FALSE; - if((p = keyboard->helper->config_get(keyboard->helper->priv, "keyboard", - "command")) != NULL) + if((p = keyboard->helper->config_get(keyboard->helper->panel, + "keyboard", "command")) != NULL) argv[2] = p; if(g_spawn_async_with_pipes(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, &keyboard->pid, NULL, &out, NULL, &error) != TRUE) - return keyboard->helper->error(keyboard->helper->priv, + return keyboard->helper->error(keyboard->helper->panel, argv[0], FALSE); if((size = read(out, buf, sizeof(buf) - 1)) <= 0) /* XXX may block */ - return keyboard->helper->error(keyboard->helper->priv, + return keyboard->helper->error(keyboard->helper->panel, "read", FALSE); /* XXX not very explicit... */ buf[size] = '\0'; if(sscanf(buf, "%lu", &xid) != 1) @@ -153,7 +153,7 @@ static void _on_keyboard_toggled(GtkWidget * widget, gpointer data) if(keyboard->window == NULL) return; keyboard->helper->position_menu((GtkMenu*)keyboard->window, &x, &y, - &push_in, keyboard->helper->priv); + &push_in, keyboard->helper->panel); gtk_window_move(GTK_WINDOW(keyboard->window), x, y); if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) gtk_widget_show(keyboard->window); diff --git a/src/applets/lock.c b/src/applets/lock.c index a7384d7..717c78d 100644 --- a/src/applets/lock.c +++ b/src/applets/lock.c @@ -75,7 +75,7 @@ static void _on_clicked(gpointer data) char const * p; GError * error = NULL; - if((p = helper->config_get(helper->priv, "lock", "command")) != NULL) + if((p = helper->config_get(helper->panel, "lock", "command")) != NULL) command = p; if(g_spawn_command_line_async(command, &error) != TRUE) helper->error(NULL, error->message, 0); diff --git a/src/applets/main.c b/src/applets/main.c index 43d8aa4..b5ed9ff 100644 --- a/src/applets/main.c +++ b/src/applets/main.c @@ -315,7 +315,7 @@ static void _on_clicked(gpointer data) gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); gtk_widget_show_all(menu); gtk_menu_popup(GTK_MENU(menu), NULL, NULL, main->helper->position_menu, - main->helper->priv, 0, gtk_get_current_event_time()); + main->helper->panel, 0, gtk_get_current_event_time()); } @@ -422,7 +422,7 @@ static void _on_lock(gpointer data) char const * p; GError * error = NULL; - if((p = helper->config_get(helper->priv, "lock", "command")) != NULL) + if((p = helper->config_get(helper->panel, "lock", "command")) != NULL) command = p; if(g_spawn_command_line_async(command, &error) != TRUE) helper->error(NULL, error->message, 0); diff --git a/src/applets/memory.c b/src/applets/memory.c index c93c87f..b67e952 100644 --- a/src/applets/memory.c +++ b/src/applets/memory.c @@ -77,7 +77,7 @@ static GtkWidget * _memory_init(PanelApplet * applet) if((memory = malloc(sizeof(*memory))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = memory; @@ -125,7 +125,8 @@ static gboolean _on_timeout(gpointer data) gdouble value; if(sysinfo(&sy) != 0) - return memory->helper->error(memory->helper->priv, "sysinfo", TRUE); + return memory->helper->error(memory->helper->panel, "sysinfo", + TRUE); value = sy.sharedram; value /= sy.totalram; gtk_range_set_value(GTK_RANGE(memory->scale), value); diff --git a/src/applets/pager.c b/src/applets/pager.c index b96cef9..4966ed0 100644 --- a/src/applets/pager.c +++ b/src/applets/pager.c @@ -104,7 +104,7 @@ static GtkWidget * _pager_init(PanelApplet * applet) if((pager = malloc(sizeof(*pager))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = pager; @@ -258,7 +258,7 @@ static void _pager_do(Pager * pager) g_free(names[i]); } else - snprintf(buf, sizeof(buf), "Desk %ld\n", i + 1); + snprintf(buf, sizeof(buf), "Desk %lu\n", i + 1); pager->widgets[i] = gtk_button_new_with_label(buf); if(i == cur) gtk_widget_set_sensitive(pager->widgets[i], FALSE); diff --git a/src/applets/swap.c b/src/applets/swap.c index a841d2f..30ed943 100644 --- a/src/applets/swap.c +++ b/src/applets/swap.c @@ -77,7 +77,7 @@ static GtkWidget * _swap_init(PanelApplet * applet) if((swap = malloc(sizeof(*swap))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = swap; @@ -125,7 +125,8 @@ static gboolean _on_timeout(gpointer data) gdouble value; if(sysinfo(&sy) != 0) - return swap->helper->error(swap->helper->priv, "sysinfo", TRUE); + return swap->helper->error(swap->helper->panel, "sysinfo", + TRUE); if((value = sy.totalswap - sy.freeswap) != 0.0 && sy.totalswap != 0) value /= sy.totalswap; gtk_range_set_value(GTK_RANGE(swap->scale), value); diff --git a/src/applets/systray.c b/src/applets/systray.c index f3643dd..7be8791 100644 --- a/src/applets/systray.c +++ b/src/applets/systray.c @@ -79,7 +79,7 @@ static GtkWidget * _systray_init(PanelApplet * applet) if((systray = malloc(sizeof(*systray))) == NULL) { - applet->helper->error(applet->helper->priv, "malloc", 0); + applet->helper->error(applet->helper->panel, "malloc", 0); return NULL; } applet->priv = systray; diff --git a/src/applets/tasks.c b/src/applets/tasks.c index 377d6e6..8134530 100644 --- a/src/applets/tasks.c +++ b/src/applets/tasks.c @@ -161,7 +161,7 @@ static Task * _task_new(Tasks * tasks, Window window, char const * name, if((task = malloc(sizeof(*task))) == NULL) { - tasks->helper->error(tasks->helper->priv, "malloc", 0); + tasks->helper->error(tasks->helper->panel, "malloc", 0); return NULL; } task->tasks = tasks; diff --git a/src/applets/volume.c b/src/applets/volume.c index e2cbf06..6e95b50 100644 --- a/src/applets/volume.c +++ b/src/applets/volume.c @@ -129,11 +129,11 @@ static Volume * _volume_new(PanelAppletHelper * helper) if((volume = malloc(sizeof(*volume))) == NULL) { - helper->error(helper->priv, "malloc", 0); + helper->error(helper->panel, "malloc", 0); return NULL; } volume->helper = helper; - if((volume->device = helper->config_get(helper->priv, "volume", + if((volume->device = helper->config_get(helper->panel, "volume", "device")) == NULL) volume->device = "/dev/mixer"; #ifdef AUDIO_MIXER_DEVINFO @@ -141,7 +141,7 @@ static Volume * _volume_new(PanelAppletHelper * helper) volume->outputs = -1; if((volume->fd = open(volume->device, O_RDWR)) < 0) { - helper->error(helper->priv, volume->device, 0); + helper->error(helper->panel, volume->device, 0); return volume; } for(i = 0; volume->outputs == -1 || volume->mix == -1; i++) @@ -158,7 +158,7 @@ static Volume * _volume_new(PanelAppletHelper * helper) } #else if((volume->fd = open(volume->device, O_RDWR)) < 0) - helper->error(helper->priv, volume->device, 0); + helper->error(helper->panel, volume->device, 0); #endif return volume; } @@ -169,10 +169,10 @@ static void _volume_delete(Volume * volume) { #ifdef AUDIO_MIXER_DEVINFO if(volume->fd >= 0 && close(volume->fd) != 0) - volume->helper->error(volume->helper->priv, volume->device, 0); + volume->helper->error(volume->helper->panel, volume->device, 0); #else /* XXX equivalent for now */ if(volume->fd >= 0 && close(volume->fd) != 0) - volume->helper->error(volume->helper->priv, volume->device, 0); + volume->helper->error(volume->helper->panel, volume->device, 0); #endif free(volume); } @@ -206,7 +206,7 @@ static gdouble _volume_get(Volume * volume) mc.type = AUDIO_MIXER_VALUE; mc.un.value.num_channels = md.un.v.num_channels; if(ioctl(volume->fd, AUDIO_MIXER_READ, &mc) < 0) - volume->helper->error(volume->helper->priv, + volume->helper->error(volume->helper->panel, "AUDIO_MIXER_READ", 0); else ret = mc.un.value.level[0] / 255.0; @@ -218,7 +218,7 @@ static gdouble _volume_get(Volume * volume) if(volume->fd < 0) return ret; if(ioctl(volume->fd, MIXER_READ(SOUND_MIXER_VOLUME), &value) < 0) - volume->helper->error(volume->helper->priv, "MIXER_READ", 0); + volume->helper->error(volume->helper->panel, "MIXER_READ", 0); else ret = ((value & 0xff) + ((value & 0xff00) >> 8)) / 200.0; #endif @@ -260,7 +260,7 @@ int _volume_set(Volume * volume, gdouble value) for(j = 1; j < mc.un.value.num_channels; j++) /* XXX overflow */ mc.un.value.level[j] = mc.un.value.level[0]; if(ioctl(volume->fd, AUDIO_MIXER_WRITE, &mc) < 0) - ret |= volume->helper->error(volume->helper->priv, + ret |= volume->helper->error(volume->helper->panel, "AUDIO_MIXER_WRITE", 0); break; } @@ -274,7 +274,7 @@ int _volume_set(Volume * volume, gdouble value) fprintf(stderr, "DEBUG: %s(%lf) 0x%04x\n", __func__, value, v); # endif if(ioctl(volume->fd, MIXER_WRITE(SOUND_MIXER_VOLUME), &v) < 0) - ret |= volume->helper->error(volume->helper->priv, + ret |= volume->helper->error(volume->helper->panel, "MIXER_WRITE", 0); #endif return ret; diff --git a/src/common.h b/src/common.h index 8cffc08..8106a31 100644 --- a/src/common.h +++ b/src/common.h @@ -19,12 +19,11 @@ # define PANEL_COMMON_H # include +# include "Panel.h" /* Panel */ /* types */ -typedef struct _Panel Panel; - typedef enum _PanelPosition { PANEL_POSITION_BOTH, diff --git a/src/panel.c b/src/panel.c index 3100170..0d214e5 100644 --- a/src/panel.c +++ b/src/panel.c @@ -24,7 +24,6 @@ #include #include #include -#include "Panel.h" #include "common.h" #include "../config.h" #define _(string) gettext(string) @@ -65,9 +64,9 @@ struct _Panel /* prototypes */ /* helpers */ -static char const * _panel_helper_config_get(void * priv, char const * section, - char const * variable); -static int _panel_helper_error(void * priv, char const * message, int ret); +static char const * _panel_helper_config_get(Panel * panel, + char const * section, char const * variable); +static int _panel_helper_error(Panel * panel, char const * message, int ret); #ifndef EMBEDDED static int _panel_helper_logout_dialog(void); #endif @@ -110,7 +109,7 @@ Panel * panel_new(PanelPrefs * prefs) if(gtk_icon_size_lookup(prefs->iconsize, &panel->icon_width, &panel->icon_height) != TRUE) error_set_print(PACKAGE, 0, "Invalid panel size"); - panel->helper.priv = panel; + panel->helper.panel = panel; panel->helper.config_get = _panel_helper_config_get; panel->helper.error = _panel_helper_error; panel->helper.icon_size = prefs->iconsize; @@ -295,7 +294,7 @@ int panel_error(Panel * panel, char const * message, int ret) dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s: %s", message, strerror(errno)); - gtk_window_set_title(GTK_WINDOW(dialog), "Error"); + gtk_window_set_title(GTK_WINDOW(dialog), _("Error")); gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); return ret; @@ -351,11 +350,9 @@ int panel_load(Panel * panel, char const * applet) /* functions */ /* helpers */ /* panel_helper_config_get */ -static char const * _panel_helper_config_get(void * priv, char const * section, - char const * variable) +static char const * _panel_helper_config_get(Panel * panel, + char const * section, char const * variable) { - Panel * panel = priv; - return config_get(panel->config, section, variable); } @@ -363,11 +360,9 @@ static char const * _panel_helper_config_get(void * priv, char const * section, /* panel_helper_error */ static int _error_text(char const * message, int ret); -static int _panel_helper_error(void * priv, char const * message, int ret) +static int _panel_helper_error(Panel * panel, char const * message, int ret) { - Panel * panel = priv; - - if(priv == NULL) + if(panel == NULL) return _error_text(message, ret); return panel_error(panel, message, ret); }