gboolean glade_gtk_listbox_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_LIST_BOX_ROW (child)) { if (user_feedback) { GladeWidgetAdaptor *tool_item_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_LIST_BOX_ROW); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (tool_item_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
gboolean glade_gtk_menu_tool_button_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_MENU (child)) { if (user_feedback) { GladeWidgetAdaptor *menu_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_MENU); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (menu_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
gboolean glade_gtk_tool_palette_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_TOOL_ITEM_GROUP (child)) { if (user_feedback) { GladeWidgetAdaptor *tool_item_group_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_TOOL_ITEM_GROUP); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (tool_item_group_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
gboolean glade_gtk_text_tag_table_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_TEXT_TAG (child)) { if (user_feedback) { GladeWidgetAdaptor *tag_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_TEXT_TAG); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (tag_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
gboolean glade_gtk_treeview_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_TREE_VIEW_COLUMN (child)) { if (user_feedback) { GladeWidgetAdaptor *cell_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_TREE_VIEW_COLUMN); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (cell_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
gboolean glade_gtk_container_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { GladeWidget *gwidget = glade_widget_get_from_gobject (container); if (GTK_IS_WINDOW (child)) { if (user_feedback) glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, _("Cannot add a toplevel window to a containter.")); return FALSE; } else if (!GTK_IS_WIDGET (child) || GTK_IS_TOOL_ITEM (child) || GTK_IS_MENU_ITEM (child)) { if (user_feedback) glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, _("Widgets of type %s can only have widgets as children."), glade_widget_adaptor_get_title (adaptor)); return FALSE; } else if (GWA_USE_PLACEHOLDERS (adaptor) && glade_util_count_placeholders (gwidget) == 0) { if (user_feedback) glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, _("Widgets of type %s need placeholders to add children."), glade_widget_adaptor_get_title (adaptor)); return FALSE; } return TRUE; }
gboolean glade_gtk_menu_item_add_verify (GladeWidgetAdaptor *adaptor, GtkWidget *container, GtkWidget *child, gboolean user_feedback) { if (!GTK_IS_MENU (child)) { if (user_feedback) { GladeWidgetAdaptor *menu_adaptor = glade_widget_adaptor_get_by_type (GTK_TYPE_MENU); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, ONLY_THIS_GOES_IN_THAT_MSG, glade_widget_adaptor_get_title (menu_adaptor), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } else if (GTK_IS_SEPARATOR_MENU_ITEM (container)) { if (user_feedback) { glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, _("An object of type %s cannot have any children."), glade_widget_adaptor_get_title (adaptor)); } return FALSE; } return TRUE; }
static void verify_clicked (GtkWidget *button, GladeProjectProperties *properties) { GladeProjectPropertiesPrivate *priv = properties->priv; if (glade_project_verify (priv->project, FALSE, GLADE_VERIFY_VERSIONS | GLADE_VERIFY_DEPRECATIONS | GLADE_VERIFY_UNRECOGNIZED)) { gchar *name = glade_project_get_name (priv->project); glade_util_ui_message (glade_app_get_window (), GLADE_UI_INFO, NULL, _("Project %s has no deprecated widgets " "or version mismatches."), name); g_free (name); } }
/** * glade_app_config_save * * Saves the GKeyFile to "g_get_user_config_dir()/GLADE_CONFIG_FILENAME" * * Return 0 on success. */ gint glade_app_config_save () { GIOChannel *channel; GIOStatus status; gchar *data = NULL, *filename; const gchar *config_dir = g_get_user_config_dir (); GError *error = NULL; gsize size, written, bytes_written = 0; static gboolean error_shown = FALSE; GladeApp *app; /* If we had any errors; wait untill next session to retry. */ if (error_shown) return -1; app = glade_app_get (); /* Just in case... try to create the config directory */ if (g_file_test (config_dir, G_FILE_TEST_IS_DIR) == FALSE) { if (g_file_test (config_dir, G_FILE_TEST_EXISTS)) { /* Config dir exists but is not a directory */ glade_util_ui_message (glade_app_get_window (), GLADE_UI_ERROR, NULL, _("Trying to save private data to %s directory " "but it is a regular file.\n" "No private data will be saved in this session"), config_dir); error_shown = TRUE; return -1; } else if (g_mkdir (config_dir, S_IRWXU) != 0) { /* Doesnt exist; failed to create */ glade_util_ui_message (glade_app_get_window (), GLADE_UI_ERROR, NULL, _("Failed to create directory %s to save private data.\n" "No private data will be saved in this session"), config_dir); error_shown = TRUE; return -1; } } filename = g_build_filename (config_dir, GLADE_CONFIG_FILENAME, NULL); if ((channel = g_io_channel_new_file (filename, "w", &error)) != NULL) { if ((data = g_key_file_to_data (app->priv->config, &size, &error)) != NULL) { /* Implement loop here */ while ((status = g_io_channel_write_chars (channel, data + bytes_written, /* Offset of write */ size - bytes_written, /* Size left to write */ &written, &error)) != G_IO_STATUS_ERROR && (bytes_written + written) < size) bytes_written += written; if (status == G_IO_STATUS_ERROR) { glade_util_ui_message (glade_app_get_window (), GLADE_UI_ERROR, NULL, _("Error writing private data to %s (%s).\n" "No private data will be saved in this session"), filename, error->message); error_shown = TRUE; } g_free (data); } else { glade_util_ui_message (glade_app_get_window (), GLADE_UI_ERROR, NULL, _("Error serializing configuration data to save (%s).\n" "No private data will be saved in this session"), error->message); error_shown = TRUE; } g_io_channel_shutdown (channel, TRUE, NULL); g_io_channel_unref (channel); } else { glade_util_ui_message (glade_app_get_window (), GLADE_UI_ERROR, NULL, _("Error opening %s to write private data (%s).\n" "No private data will be saved in this session"), filename, error->message); error_shown = TRUE; } g_free (filename); if (error) { g_error_free (error); return -1; } return 0; }