Changeset 45414 in webkit


Ignore:
Timestamp:
Jun 30, 2009 7:16:13 PM (15 years ago)
Author:
jmalonzo@webkit.org
Message:

2009-06-30 Zan Dobersek <zandobersek@gmail.com>

Reviewed by Gustavo Noronha.

[GTK] Drag and drop support
https://bugs.webkit.org/show_bug.cgi?id=23642

Define DragImageRef as GdkPixbuf and implement essential
functions which manipulate drag images.

  • platform/DragImage.h:
  • platform/gtk/DragImageGtk.cpp: (WebCore::dragImageSize): (WebCore::deleteDragImage): (WebCore::scaleDragImage): (WebCore::createDragImageFromImage):
Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r45413 r45414  
     12009-06-30  Zan Dobersek  <zandobersek@gmail.com>
     2
     3        Reviewed by Gustavo Noronha.
     4
     5        [GTK] Drag and drop support
     6        https://bugs.webkit.org/show_bug.cgi?id=23642
     7
     8        Define DragImageRef as GdkPixbuf and implement essential
     9        functions which manipulate drag images.
     10
     11        * platform/DragImage.h:
     12        * platform/gtk/DragImageGtk.cpp:
     13        (WebCore::dragImageSize):
     14        (WebCore::deleteDragImage):
     15        (WebCore::scaleDragImage):
     16        (WebCore::createDragImageFromImage):
     17
    1182009-06-30  Maxime Simon  <simon.maxime@gmail.com>
    219
  • trunk/WebCore/platform/DragImage.h

    r37599 r45414  
    4747#elif PLATFORM(CHROMIUM)
    4848#include "DragImageRef.h"
     49#elif PLATFORM(GTK)
     50typedef struct _GdkPixbuf GdkPixbuf;
    4951#endif
    5052
     
    7072    typedef wxDragImage* DragImageRef;
    7173#elif PLATFORM(GTK)
    72     typedef void* DragImageRef;
     74    typedef GdkPixbuf* DragImageRef;
    7375#endif
    7476   
  • trunk/WebCore/platform/gtk/DragImageGtk.cpp

    r29961 r45414  
    2121#include "Image.h"
    2222
     23#include <gtk/gtk.h>
     24
    2325namespace WebCore {
    2426
    25 IntSize dragImageSize(DragImageRef)
     27IntSize dragImageSize(DragImageRef image)
    2628{
     29    if (image)
     30        return IntSize(gdk_pixbuf_get_width(image), gdk_pixbuf_get_height(image));
     31
    2732    return IntSize(0, 0);
    2833}
    2934
    30 void deleteDragImage(DragImageRef)
     35void deleteDragImage(DragImageRef image)
    3136{
     37    if (image)
     38        g_object_unref(image);
    3239}
    3340
    34 DragImageRef scaleDragImage(DragImageRef image, FloatSize)
     41DragImageRef scaleDragImage(DragImageRef image, FloatSize scale)
    3542{
    36     return image;
     43    if (image) {
     44        IntSize imageSize = dragImageSize(image);
     45        GdkPixbuf* scaledImage = gdk_pixbuf_scale_simple(image,
     46                                                         imageSize.width() * scale.width(),
     47                                                         imageSize.height() * scale.height(),
     48                                                         GDK_INTERP_BILINEAR);
     49        deleteDragImage(image);
     50        return scaledImage;
     51    }
     52
     53    return 0;
    3754}
    3855
     
    4259}
    4360
    44 DragImageRef createDragImageFromImage(Image*)
     61DragImageRef createDragImageFromImage(Image* image)
    4562{
    46     return 0;
     63    return image->getGdkPixbuf();
    4764}
    4865
Note: See TracChangeset for help on using the changeset viewer.