summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk/gtkicontheme.c316
1 files changed, 9 insertions, 307 deletions
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index 51f857c50a..4b7777ff6b 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -242,8 +242,6 @@ struct _GtkIconInfo
/* Cache pixbuf (if there is any) */
GdkPixbuf *cache_pixbuf;
- GtkIconData *data;
-
/* Information about the directory where
* the source was found
*/
@@ -257,7 +255,6 @@ struct _GtkIconInfo
*/
gint desired_size;
gint desired_scale;
- guint raw_coordinates : 1;
guint forced_size : 1;
guint emblems_applied : 1;
guint is_svg : 1;
@@ -304,7 +301,6 @@ typedef struct
GtkIconCache *cache;
GHashTable *icons;
- GHashTable *icon_data;
} IconThemeDir;
typedef struct
@@ -351,13 +347,6 @@ static void do_theme_change (GtkIconTheme *icon_theme);
static void blow_themes (GtkIconTheme *icon_themes);
static gboolean rescan_themes (GtkIconTheme *icon_themes);
-static GtkIconData *icon_data_dup (GtkIconData *icon_data);
-static GtkIconData *icon_data_ref (GtkIconData *icon_data);
-static void icon_data_unref (GtkIconData *icon_data);
-static void load_icon_data (IconThemeDir *dir,
- const char *path,
- const char *name);
-
static IconSuffix theme_dir_get_icon_suffix (IconThemeDir *dir,
const gchar *icon_name,
gboolean *has_icon_file);
@@ -2702,8 +2691,6 @@ theme_dir_destroy (IconThemeDir *dir)
else
g_hash_table_destroy (dir->icons);
- if (dir->icon_data)
- g_hash_table_destroy (dir->icon_data);
g_free (dir->dir);
g_free (dir->subdir);
g_free (dir);
@@ -2971,42 +2958,6 @@ theme_lookup_icon (IconTheme *theme,
icon_info->icon_file = NULL;
}
- if (min_dir->icon_data != NULL)
- icon_info->data = icon_data_ref (g_hash_table_lookup (min_dir->icon_data, icon_name));
-
- if (icon_info->data == NULL && min_dir->cache != NULL)
- {
- icon_info->data = _gtk_icon_cache_get_icon_data (min_dir->cache, icon_name, min_dir->subdir_index);
- if (icon_info->data)
- {
- if (min_dir->icon_data == NULL)
- min_dir->icon_data = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, (GDestroyNotify)icon_data_unref);
-
- g_hash_table_replace (min_dir->icon_data, g_strdup (icon_name), icon_data_ref (icon_info->data));
- }
- }
-
- if (icon_info->data == NULL && has_icon_file)
- {
- gchar *icon_file_name, *icon_file_path;
-
- icon_file_name = g_strconcat (icon_name, ".icon", NULL);
- icon_file_path = g_build_filename (min_dir->dir, icon_file_name, NULL);
-
- if (g_file_test (icon_file_path, G_FILE_TEST_IS_REGULAR))
- {
- if (min_dir->icon_data == NULL)
- min_dir->icon_data = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, (GDestroyNotify)icon_data_unref);
- load_icon_data (min_dir, icon_file_path, icon_file_name);
-
- icon_info->data = icon_data_ref (g_hash_table_lookup (min_dir->icon_data, icon_name));
- }
- g_free (icon_file_name);
- g_free (icon_file_path);
- }
-
if (min_dir->cache)
{
icon_info->cache_pixbuf = _gtk_icon_cache_get_icon (min_dir->cache, icon_name,
@@ -3075,89 +3026,6 @@ theme_list_contexts (IconTheme *theme,
}
static void
-load_icon_data (IconThemeDir *dir, const char *path, const char *name)
-{
- GKeyFile *icon_file;
- char *base_name;
- char **split;
- gsize length;
- char *str;
- char *split_point;
- int i;
- gint *ivalues;
- GError *error = NULL;
- GtkIconData *data;
-
- icon_file = g_key_file_new ();
- g_key_file_set_list_separator (icon_file, ',');
- g_key_file_load_from_file (icon_file, path, 0, &error);
- if (error)
- {
- g_error_free (error);
- g_key_file_free (icon_file);
- return;
- }
- else
- {
- base_name = strip_suffix (name);
-
- data = g_slice_new0 (GtkIconData);
- data->ref = 1;
-
- /* takes ownership of base_name */
- g_hash_table_replace (dir->icon_data, base_name, data);
-
- ivalues = g_key_file_get_integer_list (icon_file,
- "Icon Data", "EmbeddedTextRectangle",
- &length, NULL);
- if (ivalues)
- {
- if (length == 4)
- {
- data->has_embedded_rect = TRUE;
- data->x0 = ivalues[0];
- data->y0 = ivalues[1];
- data->x1 = ivalues[2];
- data->y1 = ivalues[3];
- }
-
- g_free (ivalues);
- }
-
- str = g_key_file_get_string (icon_file, "Icon Data", "AttachPoints", NULL);
- if (str)
- {
- split = g_strsplit (str, "|", -1);
-
- data->n_attach_points = g_strv_length (split);
- data->attach_points = g_new (GdkPoint, data->n_attach_points);
-
- i = 0;
- while (split[i] != NULL && i < data->n_attach_points)
- {
- split_point = strchr (split[i], ',');
- if (split_point)
- {
- *split_point = 0;
- split_point++;
- data->attach_points[i].x = atoi (split[i]);
- data->attach_points[i].y = atoi (split_point);
- }
- i++;
- }
-
- g_strfreev (split);
- g_free (str);
- }
-
- data->display_name = g_key_file_get_locale_string (icon_file,
- "Icon Data", "DisplayName",
- NULL, NULL);
- g_key_file_free (icon_file);
- }
-}
-
-static void
scan_directory (GtkIconThemePrivate *icon_theme,
IconThemeDir *dir, char *full_dir)
{
@@ -3176,25 +3044,9 @@ scan_directory (GtkIconThemePrivate *icon_theme,
while ((name = g_dir_read_name (gdir)))
{
- char *path;
char *base_name;
IconSuffix suffix, hash_suffix;
- if (g_str_has_suffix (name, ".icon"))
- {
- if (dir->icon_data == NULL)
- dir->icon_data = g_hash_table_new_full (g_str_hash, g_str_equal,
- g_free, (GDestroyNotify)icon_data_unref);
-
- path = g_build_filename (full_dir, name, NULL);
- if (g_file_test (path, G_FILE_TEST_IS_REGULAR))
- load_icon_data (dir, path, name);
-
- g_free (path);
-
- continue;
- }
-
suffix = suffix_from_name (name);
if (suffix == ICON_SUFFIX_NONE)
continue;
@@ -3308,7 +3160,6 @@ theme_subdir_load (GtkIconTheme *icon_theme,
dir->max_size = max_size;
dir->threshold = threshold;
dir->dir = full_dir;
- dir->icon_data = NULL;
dir->subdir = g_strdup (subdir);
dir->scale = scale;
@@ -3331,50 +3182,6 @@ theme_subdir_load (GtkIconTheme *icon_theme,
}
}
-static GtkIconData *
-icon_data_ref (GtkIconData *icon_data)
-{
- if (icon_data)
- icon_data->ref++;
- return icon_data;
-}
-
-static void
-icon_data_unref (GtkIconData *icon_data)
-{
- if (icon_data)
- {
- icon_data->ref--;
- if (icon_data->ref == 0)
- {
- g_free (icon_data->attach_points);
- g_free (icon_data->display_name);
- g_slice_free (GtkIconData, icon_data);
- }
- }
-}
-
-static GtkIconData *
-icon_data_dup (GtkIconData *icon_data)
-{
- GtkIconData *dup = NULL;
- if (icon_data)
- {
- dup = g_slice_new0 (GtkIconData);
- dup->ref = 1;
- *dup = *icon_data;
- if (dup->n_attach_points > 0)
- {
- dup->attach_points = g_memdup (dup->attach_points,
- sizeof (GdkPoint) * dup->n_attach_points);
- }
- dup->display_name = g_strdup (dup->display_name);
- }
-
- return dup;
-}
-
-
/*
* GtkIconInfo
*/
@@ -3436,12 +3243,10 @@ icon_info_dup (GtkIconInfo *icon_info)
if (icon_info->cache_pixbuf)
dup->cache_pixbuf = g_object_ref (icon_info->cache_pixbuf);
- dup->data = icon_data_dup (icon_info->data);
dup->unscaled_scale = icon_info->unscaled_scale;
dup->threshold = icon_info->threshold;
dup->desired_size = icon_info->desired_size;
dup->desired_scale = icon_info->desired_scale;
- dup->raw_coordinates = icon_info->raw_coordinates;
dup->forced_size = icon_info->forced_size;
dup->emblems_applied = icon_info->emblems_applied;
@@ -3518,7 +3323,6 @@ gtk_icon_info_finalize (GObject *object)
g_clear_object (&icon_info->cache_pixbuf);
g_clear_error (&icon_info->load_error);
g_clear_pointer (&icon_info->symbolic_pixbuf_size, gtk_requisition_free);
- icon_data_unref (icon_info->data);
symbolic_pixbuf_cache_free (icon_info->symbolic_pixbuf_cache);
@@ -4956,36 +4760,6 @@ void
gtk_icon_info_set_raw_coordinates (GtkIconInfo *icon_info,
gboolean raw_coordinates)
{
- g_return_if_fail (icon_info != NULL);
-
- icon_info->raw_coordinates = raw_coordinates != FALSE;
-}
-
-/* Scale coordinates from the icon data prior to returning
- * them to the user.
- */
-static gboolean
-icon_info_scale_point (GtkIconInfo *icon_info,
- gint x,
- gint y,
- gint *x_out,
- gint *y_out)
-{
- if (icon_info->raw_coordinates)
- {
- *x_out = x;
- *y_out = y;
- }
- else
- {
- if (!icon_info_ensure_scale_and_pixbuf (icon_info, TRUE))
- return FALSE;
-
- *x_out = 0.5 + x * icon_info->scale;
- *y_out = 0.5 + y * icon_info->scale;
- }
-
- return TRUE;
}
/**
@@ -4995,13 +4769,9 @@ icon_info_scale_point (GtkIconInfo *icon_info,
* rectangle coordinates; coordinates are only stored
* when this function returns %TRUE.
*
- * Gets the coordinates of a rectangle within the icon
- * that can be used for display of information such
- * as a preview of the contents of a text file.
- * See gtk_icon_info_set_raw_coordinates() for further
- * information about the coordinate system.
+ * This function is deprecated and always returns %FALSE.
*
- * Returns: %TRUE if the icon has an embedded rectangle
+ * Returns: %FALSE
*
* Since: 2.4
*
@@ -5011,33 +4781,7 @@ gboolean
gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info,
GdkRectangle *rectangle)
{
- g_return_val_if_fail (icon_info != NULL, FALSE);
-
- if (icon_info->data && icon_info->data->has_embedded_rect &&
- icon_info_ensure_scale_and_pixbuf (icon_info, TRUE))
- {
- gint scaled_x0, scaled_y0;
- gint scaled_x1, scaled_y1;
-
- if (rectangle)
- {
- icon_info_scale_point (icon_info,
- icon_info->data->x0, icon_info->data->y0,
- &scaled_x0, &scaled_y0);
- icon_info_scale_point (icon_info,
- icon_info->data->x1, icon_info->data->y1,
- &scaled_x1, &scaled_y1);
-
- rectangle->x = scaled_x0;
- rectangle->y = scaled_y0;
- rectangle->width = scaled_x1 - rectangle->x;
- rectangle->height = scaled_y1 - rectangle->y;
- }
-
- return TRUE;
- }
- else
- return FALSE;
+ return FALSE;
}
/**
@@ -5047,11 +4791,9 @@ gtk_icon_info_get_embedded_rect (GtkIconInfo *icon_info,
* free the array of points with g_free().
* @n_points: (allow-none): location to store the number of points in @points, or %NULL
*
- * Fetches the set of attach points for an icon. An attach point
- * is a location in the icon that can be used as anchor points for attaching
- * emblems or overlays to the icon.
+ * This function is deprecated and always returns %FALSE.
*
- * Returns: %TRUE if there are any attach points for the icon.
+ * Returns: %FALSE
*
* Since: 2.4
*
@@ -5062,51 +4804,16 @@ gtk_icon_info_get_attach_points (GtkIconInfo *icon_info,
GdkPoint **points,
gint *n_points)
{
- g_return_val_if_fail (icon_info != NULL, FALSE);
-
- if (icon_info->data && icon_info->data->n_attach_points &&
- icon_info_ensure_scale_and_pixbuf (icon_info, TRUE))
- {
- if (points)
- {
- gint i;
-
- *points = g_new (GdkPoint, icon_info->data->n_attach_points);
- for (i = 0; i < icon_info->data->n_attach_points; i++)
- icon_info_scale_point (icon_info,
- icon_info->data->attach_points[i].x,
- icon_info->data->attach_points[i].y,
- &(*points)[i].x,
- &(*points)[i].y);
- }
-
- if (n_points)
- *n_points = icon_info->data->n_attach_points;
-
- return TRUE;
- }
- else
- {
- if (points)
- *points = NULL;
- if (n_points)
- *n_points = 0;
-
- return FALSE;
- }
+ return FALSE;
}
/**
* gtk_icon_info_get_display_name:
* @icon_info: a #GtkIconInfo
*
- * Gets the display name for an icon. A display name is a
- * string to be used in place of the icon name in a user
- * visible context like a list of icons.
+ * This function is deprecated and always returns %NULL.
*
- * Returns: the display name for the icon or %NULL, if
- * the icon doesn’t have a specified display name. This value
- * is owned @icon_info and must not be modified or free.
+ * Returns: %NULL
*
* Since: 2.4
*
@@ -5115,12 +4822,7 @@ gtk_icon_info_get_attach_points (GtkIconInfo *icon_info,
const gchar *
gtk_icon_info_get_display_name (GtkIconInfo *icon_info)
{
- g_return_val_if_fail (icon_info != NULL, NULL);
-
- if (icon_info->data)
- return icon_info->data->display_name;
- else
- return NULL;
+ return NULL;
}
/*