summaryrefslogtreecommitdiff
path: root/shell/ev-utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ev-utils.c')
-rw-r--r--shell/ev-utils.c213
1 files changed, 0 insertions, 213 deletions
diff --git a/shell/ev-utils.c b/shell/ev-utils.c
index 8c9bae55..8789ef88 100644
--- a/shell/ev-utils.c
+++ b/shell/ev-utils.c
@@ -24,194 +24,8 @@
#include "ev-file-helpers.h"
#include <string.h>
-#include <math.h>
#include <glib/gi18n.h>
-typedef struct
-{
- int size;
- double *data;
-} ConvFilter;
-
-static double
-gaussian (double x, double y, double r)
-{
- return ((1 / (2 * M_PI * r)) *
- exp ((- (x * x + y * y)) / (2 * r * r)));
-}
-
-static ConvFilter *
-create_blur_filter (int radius)
-{
- ConvFilter *filter;
- int x, y;
- double sum;
-
- filter = g_new0 (ConvFilter, 1);
- filter->size = radius * 2 + 1;
- filter->data = g_new (double, filter->size * filter->size);
-
- sum = 0.0;
-
- for (y = 0 ; y < filter->size; y++)
- {
- for (x = 0 ; x < filter->size; x++)
- {
- sum += filter->data[y * filter->size + x] = gaussian (x - (filter->size >> 1),
- y - (filter->size >> 1),
- radius);
- }
- }
-
- for (y = 0; y < filter->size; y++)
- {
- for (x = 0; x < filter->size; x++)
- {
- filter->data[y * filter->size + x] /= sum;
- }
- }
-
- return filter;
-
-}
-
-static GdkPixbuf *
-create_shadow (GdkPixbuf *src, int blur_radius,
- int x_offset, int y_offset, double opacity)
-{
- int x, y, i, j;
- int width, height;
- GdkPixbuf *dest;
- static ConvFilter *filter = NULL;
- int src_rowstride, dest_rowstride;
- int src_bpp, dest_bpp;
-
- guchar *src_pixels, *dest_pixels;
-
- if (!filter)
- filter = create_blur_filter (blur_radius);
-
- if (x_offset < 0)
- x_offset = (blur_radius * 4) / 5;
-
- if (y_offset < 0)
- y_offset = (blur_radius * 4) / 5;
-
-
- width = gdk_pixbuf_get_width (src) + blur_radius * 2 + x_offset;
- height = gdk_pixbuf_get_height (src) + blur_radius * 2 + y_offset;
-
- dest = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (src), TRUE,
- gdk_pixbuf_get_bits_per_sample (src),
- width, height);
- gdk_pixbuf_fill (dest, 0);
- src_pixels = gdk_pixbuf_get_pixels (src);
- src_rowstride = gdk_pixbuf_get_rowstride (src);
- src_bpp = gdk_pixbuf_get_has_alpha (src) ? 4 : 3;
-
- dest_pixels = gdk_pixbuf_get_pixels (dest);
- dest_rowstride = gdk_pixbuf_get_rowstride (dest);
- dest_bpp = gdk_pixbuf_get_has_alpha (dest) ? 4 : 3;
-
- for (y = 0; y < height; y++)
- {
- for (x = 0; x < width; x++)
- {
- int sumr = 0, sumg = 0, sumb = 0, suma = 0;
-
- for (i = 0; i < filter->size; i++)
- {
- for (j = 0; j < filter->size; j++)
- {
- int src_x, src_y;
-
- src_y = -(blur_radius + x_offset) + y - (filter->size >> 1) + i;
- src_x = -(blur_radius + y_offset) + x - (filter->size >> 1) + j;
-
- if (src_y < 0 || src_y > gdk_pixbuf_get_height (src) ||
- src_x < 0 || src_x > gdk_pixbuf_get_width (src))
- continue;
-
- sumr += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 0] *
- filter->data [i * filter->size + j];
- sumg += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 1] *
- filter->data [i * filter->size + j];
-
- sumb += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 2] *
- filter->data [i * filter->size + j];
-
- if (src_bpp == 4)
- suma += src_pixels [src_y * src_rowstride +
- src_x * src_bpp + 3] *
- filter->data [i * filter->size + j];
- else
- suma += 0xff;
-
- }
- }
-
- if (dest_bpp == 4)
- dest_pixels [y * dest_rowstride +
- x * dest_bpp + 3] = (suma * opacity) / (filter->size * filter->size);
-
- }
- }
-
- return dest;
-}
-
-GdkPixbuf *
-ev_pixbuf_add_shadow (GdkPixbuf *src, int size,
- int x_offset, int y_offset, double opacity)
-{
- GdkPixbuf *dest;
-
- dest = create_shadow (src, size, x_offset, y_offset, opacity);
-
- gdk_pixbuf_composite (src, dest,
- size, size,
- gdk_pixbuf_get_width (src),
- gdk_pixbuf_get_height (src),
- size, size,
- 1.0, 1.0,
- GDK_INTERP_NEAREST, 255);
-
- return dest;
-}
-
-
-/* Simple function to output the contents of a region. Used solely for testing
- * the region code.
- */
-void
-ev_print_region_contents (cairo_region_t *region)
-{
- gint n_rectangles, i;
-
- if (region == NULL) {
- g_print ("<empty region>\n");
- return;
- }
-
- g_print ("<region %p>\n", region);
- n_rectangles = cairo_region_num_rectangles (region);
- for (i = 0; i < n_rectangles; i++) {
- GdkRectangle rect;
-
- cairo_region_get_rectangle (region, i, &rect);
- g_print ("\t(%d %d, %d %d) [%dx%d]\n",
- rect.x,
- rect.y,
- rect.x + rect.width,
- rect.y + rect.height,
- rect.width,
- rect.height);
- }
-}
-
static void
ev_gui_sanitise_popup_position (GtkMenu *menu,
GtkWidget *widget,
@@ -279,33 +93,6 @@ ev_gui_menu_position_tree_selection (GtkMenu *menu,
ev_gui_sanitise_popup_position (menu, widget, x, y);
}
-/**
- * get_num_monitors: Get the number of user monitors.
- * @window: optional GtkWindow to look at.
- *
- * Returns: Number of monitors, -1 if uncertain situation (like multiple screens)
- */
-gint
-get_num_monitors (GtkWindow *window)
-{
- GdkDisplay *display;
- GdkScreen *screen;
- gint num_screen;
-
- display = gdk_display_get_default ();
- num_screen = gdk_display_get_n_screens (display);
-
- if (num_screen != 1)
- return -1;
-
- if (window)
- screen = gtk_window_get_screen (window);
- else
- screen = gdk_display_get_screen (display, 0);
-
- return gdk_screen_get_n_monitors (screen);
-}
-
void
file_chooser_dialog_add_writable_pixbuf_formats (GtkFileChooser *chooser)
{