#include "ui.h"
#include "ui_graph.h"
#include "ui_pref.h"
+#include "ui_sensorpref.h"
#include "ui_sensorlist.h"
static gboolean
ui_psensor_quit();
}
-static void cb_menu_preferences(GtkMenuItem *mi, gpointer data)
+static void cb_preferences(GtkMenuItem *mi, gpointer data)
{
ui_pref_dialog_run((struct ui_psensor *)data);
}
+static void cb_sensor_preferences(GtkMenuItem *mi, gpointer data)
+{
+ struct ui_psensor *ui = data;
+
+ if (ui->sensors && *ui->sensors)
+ ui_sensorpref_dialog_run(*ui->sensors, ui);
+}
+
void ui_psensor_quit()
{
gtk_main_quit();
" <menubar name='MainMenu'>"
" <menu name='Psensor' action='PsensorMenuAction'>"
" <menuitem name='Preferences' action='PreferencesAction' />"
+" <menuitem name='SensorPreferences' action='SensorPreferencesAction' />"
" <separator />"
" <menuitem name='Quit' action='QuitAction' />"
" </menu>"
{ "PreferencesAction", GTK_STOCK_PREFERENCES, /* name, stock id */
"_Preferences", NULL, /* label, accelerator */
"Preferences", /* tooltip */
- G_CALLBACK(cb_menu_preferences) },
+ G_CALLBACK(cb_preferences) },
+
+ { "SensorPreferencesAction", GTK_STOCK_PREFERENCES,
+ "_Sensor Preferences",
+ NULL,
+ "SensorPreferences",
+ G_CALLBACK(cb_sensor_preferences) },
{ "QuitAction",
GTK_STOCK_QUIT, "_Quit", NULL, "Quit", G_CALLBACK(cb_menu_quit) }
return gtk_ui_manager_get_widget(menu_manager, "/MainMenu");
}
+static unsigned int enable_alpha_channel(GtkWidget *w)
+{
+ GdkScreen *screen = gtk_widget_get_screen(w);
+
+#if (GTK_CHECK_VERSION(3, 0, 0))
+ GdkVisual *visual = gdk_screen_get_rgba_visual(screen);
+
+ if (visual) {
+ gtk_widget_set_visual(w, visual);
+ return 1;
+ }
+#else
+ GdkColormap *colormap = gdk_screen_get_rgba_colormap(screen);
+
+ if (colormap) {
+ gtk_widget_set_colormap(w, colormap);
+ return 1;
+ }
+#endif
+ return 0;
+}
+
void ui_window_create(struct ui_psensor *ui)
{
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
GdkScreen *screen;
- GdkColormap *colormap;
GdkPixbuf *icon;
GtkIconTheme *icon_theme;
GtkWidget *menubar;
if (ui->config->alpha_channel_enabled
&& gdk_screen_is_composited(screen)) {
-
- colormap = gdk_screen_get_rgba_colormap(screen);
- if (colormap)
- gtk_widget_set_colormap(window, colormap);
- else
+ if (!enable_alpha_channel(window))
ui->config->alpha_channel_enabled = 0;
} else {
ui->config->alpha_channel_enabled = 0;