comparison src/img-view.c @ 23:17acca639a86

##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. ##### Fri Mar 18 19:52:38 2005 John Ellis <johne@verizon.net> * pixbuf-renderer.c: Fix broken 2pass queueing so it merges a single queue item for each tile, and now that a tile holds a queue pointer there is no need to walk the tile list to find a possible merge victim. Thu Mar 17 19:23:56 2005 John Ellis <johne@verizon.net> * image.c, pixbuf-renderer.[ch]: More progress, and 2 pass zoom now works again (mostly). Tue Mar 15 23:17:41 2005 John Ellis <johne@verizon.net> * image.[ch]: Start conversion to use of PixbufRenderer. * pixbuf-renderer.[ch]: Additions and fixes for use by ImageWindow. * fullscreen.c, image-overlay.c, img-view.c, info.c, layout.c, layout_image.c, print.c: Changes for above ImageWindow conversion. * typedefs.h: Remove unused ImageWindow variables. Mon Mar 14 20:45:50 2005 John Ellis <johne@verizon.net> * pan-view.c: Convert to using new PixbufRenderer. * pixbuf-renderer.[ch]: Clean up and fixes. Sun Mar 13 10:21:35 2005 John Ellis <johne@verizon.net> * image.c (image_scroller_start): Unref scroller pixbuf after adding it as an overlay to avoid leaking it. * pixbuf-renderer.[ch]: All functions defined in header file are now implemented. Fri Mar 11 17:05:36 2005 John Ellis <johne@verizon.net> * pixbuf-renderer.[ch]: Set up object properties and additional. Mar 10 19:22:18 2005 John Ellis <johne@verizon.net> * pixbuf-renderer.[ch]: FIx scrolling to use old method of gdk_draw and not gdk_scroll, as scroll often invalidates the entire window (!). Also merged in source tiles code from image.c. * pan-view.c: Change picked up when testing PixbufRender zoom. Tue Mar 8 23:26:00 2005 John Ellis <johne@verizon.net> * pixbuf-renderer.[ch]: Start of turning image drawing portion of ImageWindow into an actual GtkWidget. * src/Makefile.am: Add pixbuf-renderer.[ch]. * pan-view.c: Added temporary hack button and callback for testing PixbufRenderer widget.
author gqview
date Sat, 19 Mar 2005 01:15:17 +0000
parents d907d608745f
children 9c0c402b0ef3
comparison
equal deleted inserted replaced
22:e9625635e162 23:17acca639a86
21 #include "fullscreen.h" 21 #include "fullscreen.h"
22 #include "image.h" 22 #include "image.h"
23 #include "image-overlay.h" 23 #include "image-overlay.h"
24 #include "info.h" 24 #include "info.h"
25 #include "menu.h" 25 #include "menu.h"
26 #include "pixbuf-renderer.h"
26 #include "slideshow.h" 27 #include "slideshow.h"
27 #include "utilops.h" 28 #include "utilops.h"
28 #include "ui_bookmark.h" 29 #include "ui_bookmark.h"
29 #include "ui_fileops.h" 30 #include "ui_fileops.h"
30 #include "ui_menu.h" 31 #include "ui_menu.h"
315 { 316 {
316 ViewWindow *vw = data; 317 ViewWindow *vw = data;
317 ImageWindow *imd; 318 ImageWindow *imd;
318 319
319 imd = view_window_active_image(vw); 320 imd = view_window_active_image(vw);
320 gdk_window_get_origin(imd->image->window, x, y); 321 gdk_window_get_origin(imd->pr->window, x, y);
321 popup_menu_position_clamp(menu, x, y, 0); 322 popup_menu_position_clamp(menu, x, y, 0);
322 } 323 }
323 324
324 static gint view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data) 325 static gint view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
325 { 326 {
850 image_change_path(vw->imd, path, image_zoom_get_default(NULL, zoom_mode)); 851 image_change_path(vw->imd, path, image_zoom_get_default(NULL, zoom_mode));
851 } 852 }
852 853
853 if (image_zoom_get(vw->imd) == 0.0) 854 if (image_zoom_get(vw->imd) == 0.0)
854 { 855 {
855 w = vw->imd->image_width; 856 pixbuf_renderer_get_image_size(PIXBUF_RENDERER(vw->imd->pr), &w, &h);
856 h = vw->imd->image_height; 857 }
857 } 858 else
858 else 859 {
859 { 860 pixbuf_renderer_get_scaled_size(PIXBUF_RENDERER(vw->imd->pr), &w, &h);
860 w = vw->imd->width;
861 h = vw->imd->height;
862 } 861 }
863 if (limit_window_size) 862 if (limit_window_size)
864 { 863 {
865 gint mw = gdk_screen_width() * max_window_size / 100; 864 gint mw = gdk_screen_width() * max_window_size / 100;
866 gint mh = gdk_screen_height() * max_window_size / 100; 865 gint mh = gdk_screen_height() * max_window_size / 100;
873 req_size.x = req_size.y = 0; 872 req_size.x = req_size.y = 0;
874 req_size.width = w; 873 req_size.width = w;
875 req_size.height = h; 874 req_size.height = h;
876 gtk_widget_size_allocate(GTK_WIDGET(vw->window), &req_size); 875 gtk_widget_size_allocate(GTK_WIDGET(vw->window), &req_size);
877 876
878 gtk_widget_set_size_request(vw->imd->image, w, h); 877 gtk_widget_set_size_request(vw->imd->pr, w, h);
879 878
880 gtk_widget_show(vw->window); 879 gtk_widget_show(vw->window);
881 880
882 view_window_list = g_list_append(view_window_list, vw); 881 view_window_list = g_list_append(view_window_list, vw);
883 882
1367 guint time, gpointer data) 1366 guint time, gpointer data)
1368 { 1367 {
1369 ViewWindow *vw = data; 1368 ViewWindow *vw = data;
1370 ImageWindow *imd; 1369 ImageWindow *imd;
1371 1370
1372 if (gtk_drag_get_source_widget(context) == vw->imd->image) return; 1371 if (gtk_drag_get_source_widget(context) == vw->imd->pr) return;
1373 1372
1374 imd = vw->imd; 1373 imd = vw->imd;
1375 1374
1376 if (info == TARGET_URI_LIST || info == TARGET_APP_COLLECTION_MEMBER) 1375 if (info == TARGET_URI_LIST || info == TARGET_APP_COLLECTION_MEMBER)
1377 { 1376 {
1487 { 1486 {
1488 ImageWindow *imd; 1487 ImageWindow *imd;
1489 1488
1490 imd = vw->imd; 1489 imd = vw->imd;
1491 1490
1492 gtk_drag_source_set(imd->image, GDK_BUTTON2_MASK, 1491 gtk_drag_source_set(imd->pr, GDK_BUTTON2_MASK,
1493 dnd_file_drag_types, dnd_file_drag_types_count, 1492 dnd_file_drag_types, dnd_file_drag_types_count,
1494 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK); 1493 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
1495 g_signal_connect(G_OBJECT(imd->image), "drag_data_get", 1494 g_signal_connect(G_OBJECT(imd->pr), "drag_data_get",
1496 G_CALLBACK(view_window_set_dnd_data), vw); 1495 G_CALLBACK(view_window_set_dnd_data), vw);
1497 1496
1498 gtk_drag_dest_set(imd->image, 1497 gtk_drag_dest_set(imd->pr,
1499 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP, 1498 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP,
1500 dnd_file_drop_types, dnd_file_drop_types_count, 1499 dnd_file_drop_types, dnd_file_drop_types_count,
1501 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK); 1500 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
1502 g_signal_connect(G_OBJECT(imd->image), "drag_data_received", 1501 g_signal_connect(G_OBJECT(imd->pr), "drag_data_received",
1503 G_CALLBACK(view_window_get_dnd_data), vw); 1502 G_CALLBACK(view_window_get_dnd_data), vw);
1504 } 1503 }
1505 1504
1506 /* 1505 /*
1507 *----------------------------------------------------------------------------- 1506 *-----------------------------------------------------------------------------