* v0.6.2.12
** psensor: added -d option to enable debug log (written to $HOME/.psensor/log).
** psensor: log sensor values in debug mode.
+** psensor: added option to restore window position and size.
* v0.6.2.11
** psensor-server/web interface: use jqplot default css.
#define KEY_INTERFACE_WINDOW_RESTORE_ENABLED \
"/apps/psensor/interface/window_restore_enabled"
+#define KEY_INTERFACE_WINDOW_X "/apps/psensor/interface/window_x"
+#define KEY_INTERFACE_WINDOW_Y "/apps/psensor/interface/window_y"
+#define KEY_INTERFACE_WINDOW_W "/apps/psensor/interface/window_w"
+#define KEY_INTERFACE_WINDOW_H "/apps/psensor/interface/window_h"
+
+
GConfClient *client;
static char *get_string(char *key, char *default_value)
KEY_INTERFACE_WINDOW_RESTORE_ENABLED,
NULL);
+ c->window_x = gconf_client_get_int(client,
+ KEY_INTERFACE_WINDOW_X,
+ NULL);
+ c->window_y = gconf_client_get_int(client,
+ KEY_INTERFACE_WINDOW_Y,
+ NULL);
+ c->window_w = gconf_client_get_int(client,
+ KEY_INTERFACE_WINDOW_W,
+ NULL);
+ c->window_h = gconf_client_get_int(client,
+ KEY_INTERFACE_WINDOW_H,
+ NULL);
+
+ if (!c->window_w || !c->window_h) {
+ c->window_w = 800;
+ c->window_h = 200;
+ }
+
return c;
}
KEY_INTERFACE_WINDOW_RESTORE_ENABLED,
c->window_restore_enabled,
NULL);
+
+ gconf_client_set_int(client,
+ KEY_INTERFACE_WINDOW_X,
+ c->window_x,
+ NULL);
+ gconf_client_set_int(client,
+ KEY_INTERFACE_WINDOW_Y,
+ c->window_y,
+ NULL);
+ gconf_client_set_int(client,
+ KEY_INTERFACE_WINDOW_W,
+ c->window_w,
+ NULL);
+ gconf_client_set_int(client,
+ KEY_INTERFACE_WINDOW_H,
+ c->window_h,
+ NULL);
}
int window_decoration_enabled;
int window_keep_below_enabled;
int window_restore_enabled;
+ /* Last saved position of the window. */
+ int window_x;
+ int window_y;
+ /* Last saved size of the window. */
+ int window_w;
+ int window_h;
int graph_update_interval;
int graph_monitoring_duration;
static void save_window_pos(struct ui_psensor *ui)
{
- gint x, y, w, h;
gboolean visible;
GtkWindow *win;
+ struct config *cfg;
visible = gtk_widget_get_visible(ui->main_window);
log_printf(LOG_DEBUG, "Window visible: %d", visible);
if (visible == TRUE) {
- win = GTK_WINDOW(ui->main_window);
+ cfg = ui->config;
- gtk_window_get_position(win, &x, &y);
- gtk_window_get_size(win, &w, &h);
+ win = GTK_WINDOW(ui->main_window);
- log_printf(LOG_DEBUG, "Window position: %d %d", x, y);
- log_printf(LOG_DEBUG, "Window size: %d %d", w, h);
+ gtk_window_get_position(win, &cfg->window_x, &cfg->window_y);
+ log_printf(LOG_DEBUG,
+ "Window position: %d %d",
+ cfg->window_x,
+ cfg->window_y);
+
+ gtk_window_get_size(win,
+ &cfg->window_w,
+ &cfg->window_h);
+ log_printf(LOG_DEBUG,
+ "Window size: %d %d",
+ cfg->window_w,
+ cfg->window_h);
+
+ config_save(cfg);
}
}
GdkPixbuf *icon;
GtkIconTheme *icon_theme;
GtkWidget *menubar;
+ struct config *cfg;
- gtk_window_set_default_size(GTK_WINDOW(window), 800, 200);
+ cfg = ui->config;
+ if (cfg->window_restore_enabled) {
+ gtk_window_set_default_size(GTK_WINDOW(window),
+ cfg->window_w,
+ cfg->window_h);
+ gtk_window_move(GTK_WINDOW(window),
+ cfg->window_x,
+ cfg->window_y);
+ }
gtk_window_set_title(GTK_WINDOW(window),
_("Psensor - Temperature Monitor"));