static void sensor_properties_clicked_cb(GtkButton *button, gpointer data) { IsPreferencesDialog *self = IS_PREFERENCES_DIALOG(data); gtk_dialog_response(GTK_DIALOG(self), IS_PREFERENCES_DIALOG_RESPONSE_SENSOR_PROPERTIES); }
static void is_preferences_dialog_get_property(GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { IsPreferencesDialog *self = IS_PREFERENCES_DIALOG(object); IsPreferencesDialogPrivate *priv = self->priv; switch (property_id) { case PROP_APPLICATION: g_value_set_object(value, priv->application); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } }
static void is_preferences_dialog_set_property(GObject *object, guint property_id, const GValue *value, GParamSpec *pspec) { IsPreferencesDialog *self = IS_PREFERENCES_DIALOG(object); IsPreferencesDialogPrivate *priv = self->priv; GtkWidget *scrolled_window; IsManager *manager; IsIndicatorDisplayFlags flags; switch (property_id) { case PROP_APPLICATION: priv->application = g_object_ref(g_value_get_object(value)); gtk_widget_set_sensitive(priv->display_icon_check_button, TRUE); gtk_widget_set_sensitive(priv->display_label_check_button, TRUE); gtk_widget_set_sensitive(priv->display_value_check_button, TRUE); flags = g_settings_get_int(self->priv->indicator_settings, "display-flags"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->display_icon_check_button), flags & IS_INDICATOR_DISPLAY_ICON); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->display_label_check_button), flags & IS_INDICATOR_DISPLAY_LABEL); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->display_value_check_button), flags & IS_INDICATOR_DISPLAY_VALUE); g_signal_connect(priv->display_icon_check_button, "toggled", G_CALLBACK(display_icon_toggled), self); g_signal_connect(priv->display_label_check_button, "toggled", G_CALLBACK(display_label_toggled), self); g_signal_connect(priv->display_value_check_button, "toggled", G_CALLBACK(display_value_toggled), self); g_signal_connect(priv->indicator_settings, "changed::display-flags", G_CALLBACK(settings_display_flags_changed), self); manager = is_application_get_manager(priv->application); g_signal_connect(manager, "row-activated", G_CALLBACK(manager_row_activated), self); /* control properties button sensitivity */ g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(manager)), "changed", G_CALLBACK(manager_selection_changed), self); /* set state of autostart checkbutton */ gtk_widget_set_sensitive(priv->autostart_check_button, TRUE); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->autostart_check_button), is_application_get_autostart(priv->application)); gtk_widget_set_sensitive(priv->celsius_radio_button, TRUE); gtk_widget_set_sensitive(priv->fahrenheit_radio_button, TRUE); switch (is_application_get_temperature_scale(priv->application)) { case IS_TEMPERATURE_SENSOR_SCALE_CELSIUS: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->celsius_radio_button), TRUE); break; case IS_TEMPERATURE_SENSOR_SCALE_FAHRENHEIT: gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(priv->fahrenheit_radio_button), TRUE); break; case IS_TEMPERATURE_SENSOR_SCALE_INVALID: case NUM_IS_TEMPERATURE_SENSOR_SCALE: default: g_assert_not_reached(); } g_signal_connect(priv->autostart_check_button, "toggled", G_CALLBACK(autostart_toggled), priv->application); g_signal_connect(priv->application, "notify::autostart", G_CALLBACK(application_notify_autostart), priv->autostart_check_button); scrolled_window = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(manager)); gtk_widget_set_hexpand(scrolled_window, TRUE); gtk_widget_set_vexpand(scrolled_window, TRUE); gtk_grid_attach(GTK_GRID(priv->grid), scrolled_window, 0, 4, 3, 1); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec); break; } }