static void save_window_size (GtkWidget *dialog, XfceSettingsEditorBox *settings_editor) { GdkWindowState state; gint width, height; gint paned_pos; g_object_get (G_OBJECT(settings_editor), "paned-pos", &paned_pos, NULL); state = gdk_window_get_state (gtk_widget_get_window(dialog)); if ((state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_FULLSCREEN)) == 0) { /* save window size */ gtk_window_get_size (GTK_WINDOW (dialog), &width, &height); xfconf_channel_set_int (channel, "/last/window-width", width), xfconf_channel_set_int (channel, "/last/window-height", height); xfconf_channel_set_int (channel, "/last/paned-position", paned_pos); } }
/* Update xfconf property if combobox selection is changed */ static void power_manager_plugin_combo_changed (GtkComboBox *combo, gpointer user_data) { XfconfChannel *channel = user_data; GtkTreeModel *model; GtkTreeIter iter; int show_panel_label; if (!gtk_combo_box_get_active_iter (combo, &iter)) return; model = gtk_combo_box_get_model (combo); gtk_tree_model_get (model, &iter, 0, &show_panel_label, -1); xfconf_channel_set_int (channel, XFPM_PROPERTIES_PREFIX SHOW_PANEL_LABEL, show_panel_label); }
int main(int argc, char **argv) { XfconfChannel *channel; if(!xfconf_tests_start()) return 1; channel = xfconf_channel_new(TEST_CHANNEL_NAME); TEST_OPERATION(xfconf_channel_set_int(channel, test_int_property, test_int)); g_object_unref(G_OBJECT(channel)); xfconf_tests_end(); return 0; }
gint main (gint argc, gchar **argv) { GError *error = NULL; GtkWidget *dialog; GtkWidget *button; gint result; gint retval = EXIT_SUCCESS; gint default_response = GTK_RESPONSE_CANCEL; XfconfChannel *channel; gint configver; gchar *filename_46; gchar *filename_default; gboolean migrate_vendor_default; /* set translation domain */ lde_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8"); #ifndef NDEBUG /* terminate the program on warnings and critical messages */ g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING); #endif gtk_init (&argc, &argv); if (!xfconf_init (&error)) { g_critical ("Failed to initialize Xfconf: %s", error->message); g_error_free (error); return EXIT_FAILURE; } channel = xfconf_channel_get (LDE_PANEL_CHANNEL_NAME); if (!xfconf_channel_has_property (channel, "/panels")) { /* lookup the old 4.6 config file */ filename_46 = lde_resource_lookup (LDE_RESOURCE_CONFIG, LDE_46_CONFIG); /* lookup the default configuration */ lde_resource_push_path (LDE_RESOURCE_CONFIG, XDGCONFIGDIR); filename_default = lde_resource_lookup (LDE_RESOURCE_CONFIG, DEFAULT_CONFIG_FILENAME); lde_resource_pop_path (LDE_RESOURCE_CONFIG); if (filename_46 == NULL && filename_default == NULL) { g_warning ("No default or old configuration found"); return EXIT_FAILURE; } /* if the default configuration does not match with the file found * by the resource lookup, migrate it without asking */ migrate_vendor_default = (g_strcmp0 (DEFAULT_CONFIG_PATH, filename_default) != 0); /* check if we auto-migrate the default configuration */ if (g_getenv ("LDE_PANEL_MIGRATE_DEFAULT") != NULL || migrate_vendor_default) { if (filename_46 != NULL) g_message ("Tried to auto-migrate, but old configuration found"); else if (filename_default == NULL) g_message ("Tried to auto-migrate, but no default configuration found"); else goto migrate_default; } /* create question dialog */ dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, _("Welcome to the first start of the panel")); gtk_window_set_title (GTK_WINDOW (dialog), _("Panel")); gtk_window_set_icon_name (GTK_WINDOW (dialog), GTK_STOCK_PREFERENCES); gtk_window_stick (GTK_WINDOW (dialog)); gtk_window_set_keep_above (GTK_WINDOW (dialog), TRUE); if (filename_46 != NULL) { gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), "%s\n%s", _("Because the panel moved to a new system for storing the " "settings, it has to load a fresh initial configuration."), _("Choose below which setup you want for the first startup.")); button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Migrate old config"), GTK_RESPONSE_OK); gtk_widget_set_tooltip_text (button, _("Migrate the old 4.6 configuration to Xfconf")); default_response = GTK_RESPONSE_OK; } else { gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog), _("Choose below which setup you want for the first startup.")); } if (filename_default != NULL) { button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("Use default config"), GTK_RESPONSE_YES); gtk_widget_set_tooltip_text (button, _("Load the default configuration")); if (default_response == GTK_RESPONSE_CANCEL) default_response = GTK_RESPONSE_YES; } button = gtk_dialog_add_button (GTK_DIALOG (dialog), _("One empty panel"), GTK_RESPONSE_CANCEL); gtk_widget_set_tooltip_text (button, _("Start with one empty panel")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), default_response); result = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); if (result == GTK_RESPONSE_OK && filename_46 != NULL) { /* restore 4.6 config */ if (!migrate_46 (filename_46, channel, &error)) { lde_dialog_show_error (NULL, error, _("Failed to migrate the old panel configuration")); g_error_free (error); retval = EXIT_FAILURE; } } else if (result == GTK_RESPONSE_YES && filename_default != NULL) { migrate_default: /* apply default config */ if (!migrate_default (filename_default, &error)) { lde_dialog_show_error (NULL, error, _("Failed to load the default configuration")); g_error_free (error); retval = EXIT_FAILURE; } } g_free (filename_46); g_free (filename_default); } configver = xfconf_channel_get_int (channel, "/configver", -1); if (configver < LDE4_PANEL_CONFIG_VERSION) { g_message (_("Panel config needs migration...")); if (!migrate_config (channel, configver, &error)) { lde_dialog_show_error (NULL, error, _("Failed to migrate the existing configuration")); g_error_free (error); retval = EXIT_FAILURE; } else { g_message (_("Panel configuration has been updated.")); } /* migration complete, set new version */ xfconf_channel_set_int (channel, "/configver", LDE4_PANEL_CONFIG_VERSION); } xfconf_shutdown (); return retval; }
void xfce_randr_save_output (XfceRandr *randr, const gchar *scheme, XfconfChannel *channel, guint output, gint rel_changed) { gchar property[512]; gchar *str_value; const XfceRRMode *mode; gint degrees; g_return_if_fail (randr != NULL && scheme != NULL); g_return_if_fail (XFCONF_IS_CHANNEL (channel)); g_return_if_fail (output < randr->noutput); /* save the device name */ g_snprintf (property, sizeof (property), "/%s/%s", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_string (channel, property, randr->friendly_name[output]); /* find the resolution and refresh rate */ mode = xfce_randr_find_mode_by_id (randr, output, randr->mode[output]); /* if no resolution was found, mark it as inactive and stop */ g_snprintf (property, sizeof (property), "/%s/%s/Active", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_bool (channel, property, mode != NULL); if (mode == NULL) return; /* save the resolution */ str_value = g_strdup_printf ("%dx%d", mode->width, mode->height); g_snprintf (property, sizeof (property), "/%s/%s/Resolution", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_string (channel, property, str_value); g_free (str_value); /* save the refresh rate */ g_snprintf (property, sizeof (property), "/%s/%s/RefreshRate", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_double (channel, property, mode->rate); /* convert the rotation into degrees */ switch (randr->rotation[output] & XFCE_RANDR_ROTATIONS_MASK) { case RR_Rotate_90: degrees = 90; break; case RR_Rotate_180: degrees = 180; break; case RR_Rotate_270: degrees = 270; break; default: degrees = 0; break; } /* save the rotation in degrees */ g_snprintf (property, sizeof (property), "/%s/%s/Rotation", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_int (channel, property, degrees); /* convert the reflection into a string */ switch (randr->rotation[output] & XFCE_RANDR_REFLECTIONS_MASK) { case RR_Reflect_X: str_value = "X"; break; case RR_Reflect_Y: str_value = "Y"; break; case RR_Reflect_X|RR_Reflect_Y: str_value = "XY"; break; default: str_value = "0"; break; } /* save the reflection string */ g_snprintf (property, sizeof (property), "/%s/%s/Reflection", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_string (channel, property, str_value); #ifdef HAS_RANDR_ONE_POINT_THREE /* is it the primary output? */ g_snprintf (property, sizeof (property), "/%s/%s/Primary", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_bool (channel, property, randr->status[output] == XFCE_OUTPUT_STATUS_PRIMARY); #endif /* update positions according to the current relations */ if (rel_changed) xfce_randr_update_positions (randr, output); /* save the position */ g_snprintf (property, sizeof (property), "/%s/%s/Position/X", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_int (channel, property, MAX (randr->priv->position[output].x, 0)); g_snprintf (property, sizeof (property), "/%s/%s/Position/Y", scheme, randr->priv->output_info[output]->name); xfconf_channel_set_int (channel, property, MAX (randr->priv->position[output].y, 0)); }