1/*
2 * Copyright (C) 2013, Igalia S.L.
3 *
4 *  This library is free software; you can redistribute it and/or
5 *  modify it under the terms of the GNU Lesser General Public
6 *  License as published by the Free Software Foundation; either
7 *  version 2 of the License, or (at your option) any later version.
8 *
9 *  This library is distributed in the hope that it will be useful,
10 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 *  Lesser General Public License for more details.
13 *
14 *  You should have received a copy of the GNU Lesser General Public
15 *  License along with this library; if not, write to the Free Software
16 *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17 */
18
19#ifndef GtkWidgetBackingStoreX11_h
20#define GtkWidgetBackingStoreX11_h
21
22#include "WidgetBackingStore.h"
23
24#include <X11/Xlib.h>
25
26namespace WebCore {
27
28class WidgetBackingStoreGtkX11 : public WidgetBackingStore {
29
30public:
31    static PassOwnPtr<WidgetBackingStore> create(GtkWidget*, const IntSize&);
32    WidgetBackingStoreGtkX11(GtkWidget*, const IntSize&);
33    ~WidgetBackingStoreGtkX11();
34    cairo_surface_t* cairoSurface();
35    void scroll(const IntRect& scrollRect, const IntSize& scrollOffset);
36
37private:
38    Display* m_display;
39    Pixmap m_pixmap;
40    GC m_gc;
41    RefPtr<cairo_surface_t> m_surface;
42};
43
44} // namespace WebCore
45
46#endif // GtkWidgetBackingStoreX11_h
47