2011-02-08 Martin Robinson <mrobinson@igalia.com>
authormrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Feb 2011 00:45:22 +0000 (00:45 +0000)
committermrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 9 Feb 2011 00:45:22 +0000 (00:45 +0000)
        Reviewed by Xan Lopez.

        [GTK] Remove the last remnants of the Mozilla theme drawing code
        https://bugs.webkit.org/show_bug.cgi?id=54035

        Remove all Mozilla theme drawing code.

        No new tests. This change only removes dead code.

        * GNUmakefile.am: Remove Mozilla files from the source list.
        * platform/gtk/RenderThemeGtk.h: Remove Mozilla-theme-drawing-related methods
        and add m_colormap to hold the current colormap of the widgets.
        * platform/gtk/RenderThemeGtk2.cpp: Remove Mozilla code.
        (WebCore::RenderThemeGtk::platformInit): Ditto.
        (WebCore::RenderThemeGtk::~RenderThemeGtk): Ditto.
        (WebCore::RenderThemeGtk::gtkContainer): Ditto.
        * platform/gtk/ScrollbarThemeGtk2.cpp: Ditto.
        * platform/gtk/WidgetRenderingContext.cpp: Ditto.
        (WebCore::WidgetRenderingContext::WidgetRenderingContext): Ditto.
        * platform/gtk/WidgetRenderingContext.h: Ditto.
        * platform/gtk/gtk2drawing.c: Removed.
        * platform/gtk/gtkdrawing.h: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@77993 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/GNUmakefile.am
Source/WebCore/platform/gtk/RenderThemeGtk.h
Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
Source/WebCore/platform/gtk/ScrollbarThemeGtk2.cpp
Source/WebCore/platform/gtk/WidgetRenderingContext.cpp
Source/WebCore/platform/gtk/WidgetRenderingContext.h
Source/WebCore/platform/gtk/gtk2drawing.c [deleted file]
Source/WebCore/platform/gtk/gtkdrawing.h [deleted file]

index f462e19..fe09740 100644 (file)
@@ -1,3 +1,28 @@
+2011-02-08  Martin Robinson  <mrobinson@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] Remove the last remnants of the Mozilla theme drawing code
+        https://bugs.webkit.org/show_bug.cgi?id=54035
+
+        Remove all Mozilla theme drawing code.
+
+        No new tests. This change only removes dead code.
+
+        * GNUmakefile.am: Remove Mozilla files from the source list.
+        * platform/gtk/RenderThemeGtk.h: Remove Mozilla-theme-drawing-related methods
+        and add m_colormap to hold the current colormap of the widgets.
+        * platform/gtk/RenderThemeGtk2.cpp: Remove Mozilla code.
+        (WebCore::RenderThemeGtk::platformInit): Ditto.
+        (WebCore::RenderThemeGtk::~RenderThemeGtk): Ditto.
+        (WebCore::RenderThemeGtk::gtkContainer): Ditto.
+        * platform/gtk/ScrollbarThemeGtk2.cpp: Ditto.
+        * platform/gtk/WidgetRenderingContext.cpp: Ditto.
+        (WebCore::WidgetRenderingContext::WidgetRenderingContext): Ditto.
+        * platform/gtk/WidgetRenderingContext.h: Ditto.
+        * platform/gtk/gtk2drawing.c: Removed.
+        * platform/gtk/gtkdrawing.h: Removed.
+
 2011-02-08  Yael Aharon  <yael.aharon@nokia.com>
 
         Reviewed by Antti Koivisto.
index 14793e7..04c093e 100644 (file)
@@ -3740,8 +3740,6 @@ webcoregtk_sources += \
        Source/WebCore/platform/gtk/GOwnPtrGtk.h \
        Source/WebCore/platform/gtk/GRefPtrGtk.cpp \
        Source/WebCore/platform/gtk/GRefPtrGtk.h \
-       Source/WebCore/platform/gtk/gtk2drawing.c \
-       Source/WebCore/platform/gtk/gtkdrawing.h \
        Source/WebCore/platform/gtk/GtkPluginWidget.cpp \
        Source/WebCore/platform/gtk/GtkPluginWidget.h \
        Source/WebCore/platform/gtk/GtkVersioning.c \
index 8620127..f5e03a9 100644 (file)
 #include "GRefPtr.h"
 #include "RenderTheme.h"
 
-#ifdef GTK_API_VERSION_2
-#include "gtkdrawing.h"
-#endif
-
 typedef gulong GType;
+typedef struct _GdkColormap GdkColormap;
 
 namespace WebCore {
 
@@ -199,12 +196,10 @@ private:
 
 #ifdef GTK_API_VERSION_2
     void setupWidgetAndAddToContainer(GtkWidget*, GtkWidget*) const;
-    bool paintRenderObject(GtkThemeWidgetType, RenderObject*, GraphicsContext*, const IntRect&, int flags = 0);
     void refreshComboBoxChildren() const;
     void getComboBoxPadding(RenderStyle*, int& left, int& top, int& right, int& bottom) const;
     int getComboBoxSeparatorWidth() const;
     int comboBoxArrowSize(RenderStyle*) const;
-    GtkThemeParts m_themeParts;
 
     GtkWidget* gtkButton() const;
     GtkWidget* gtkEntry() const;
@@ -220,6 +215,7 @@ private:
     GtkWidget* gtkComboBoxArrow() const;
     GtkWidget* gtkComboBoxSeparator() const;
 
+    GdkColormap* m_colormap;
     mutable GtkWidget* m_gtkWindow;
     mutable GtkWidget* m_gtkContainer;
     mutable GtkWidget* m_gtkButton;
index b370251..534aa97 100644 (file)
@@ -41,7 +41,6 @@
 #include "TextDirection.h"
 #include "UserAgentStyleSheets.h"
 #include "WidgetRenderingContext.h"
-#include "gtkdrawing.h"
 #include <gdk/gdk.h>
 #include <gtk/gtk.h>
 
@@ -50,7 +49,6 @@ namespace WebCore {
 // This is not a static method, because we want to avoid having GTK+ headers in RenderThemeGtk.h.
 extern GtkTextDirection gtkTextDirection(TextDirection);
 
-static int mozGtkRefCount = 0;
 void RenderThemeGtk::platformInit()
 {
     m_themePartsHaveRGBAColormap = true;
@@ -71,29 +69,15 @@ void RenderThemeGtk::platformInit()
     m_gtkVScrollbar = 0;
     m_gtkHScrollbar = 0;
 
-    memset(&m_themeParts, 0, sizeof(GtkThemeParts));
-    GdkColormap* colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
-    if (!colormap) {
+    m_colormap = gdk_screen_get_rgba_colormap(gdk_screen_get_default());
+    if (!m_colormap) {
         m_themePartsHaveRGBAColormap = false;
-        colormap = gdk_screen_get_default_colormap(gdk_screen_get_default());
+        m_colormap = gdk_screen_get_default_colormap(gdk_screen_get_default());
     }
-    m_themeParts.colormap = colormap;
-
-    // Initialize the Mozilla theme drawing code.
-    if (!mozGtkRefCount) {
-        moz_gtk_init();
-        moz_gtk_use_theme_parts(&m_themeParts);
-    }
-    ++mozGtkRefCount;
 }
 
 RenderThemeGtk::~RenderThemeGtk()
 {
-    --mozGtkRefCount;
-
-    if (!mozGtkRefCount)
-        moz_gtk_shutdown();
-
     if (m_gtkWindow)
         gtk_widget_destroy(m_gtkWindow);
 }
@@ -149,34 +133,6 @@ static GtkStateType getGtkStateType(RenderThemeGtk* theme, RenderObject* object)
     return GTK_STATE_NORMAL;
 }
 
-bool RenderThemeGtk::paintRenderObject(GtkThemeWidgetType type, RenderObject* renderObject, GraphicsContext* context, const IntRect& rect, int flags)
-{
-    // Painting is disabled so just claim to have succeeded
-    if (context->paintingDisabled())
-        return false;
-
-    GtkWidgetState widgetState;
-    widgetState.active = isPressed(renderObject);
-    widgetState.focused = isFocused(renderObject);
-
-    // https://bugs.webkit.org/show_bug.cgi?id=18364
-    // The Mozilla theme drawing code, only paints a button as pressed when it's pressed 
-    // while hovered. Until we move away from the Mozila code, work-around the issue by
-    // forcing a pressed button into the hovered state. This ensures that buttons activated
-    // via the keyboard have the proper rendering.
-    widgetState.inHover = isHovered(renderObject) || (type == MOZ_GTK_BUTTON && isPressed(renderObject));
-
-    // FIXME: Disabled does not always give the correct appearance for ReadOnly
-    widgetState.disabled = !isEnabled(renderObject) || isReadOnlyControl(renderObject);
-    widgetState.isDefault = false;
-    widgetState.canDefault = false;
-    widgetState.depressed = false;
-
-    WidgetRenderingContext widgetContext(context, rect);
-    return !widgetContext.paintMozillaWidget(type, &widgetState, flags,
-                                             gtkTextDirection(renderObject->style()->direction()));
-}
-
 static void setToggleSize(const RenderThemeGtk* theme, RenderStyle* style, GtkWidget* widget)
 {
     // The width and height are both specified, so we shouldn't change them.
@@ -719,7 +675,7 @@ GtkWidget* RenderThemeGtk::gtkContainer() const
         return m_gtkContainer;
 
     m_gtkWindow = gtk_window_new(GTK_WINDOW_POPUP);
-    gtk_widget_set_colormap(m_gtkWindow, m_themeParts.colormap);
+    gtk_widget_set_colormap(m_gtkWindow, m_colormap);
     setupWidget(m_gtkWindow);
     gtk_widget_set_name(m_gtkWindow, "MozillaGtkWidget");
 
index 7a0cdcd..e1ffa71 100644 (file)
@@ -33,7 +33,6 @@
 #include "ScrollView.h"
 #include "Scrollbar.h"
 #include "WidgetRenderingContext.h"
-#include "gtkdrawing.h"
 #include <gtk/gtk.h>
 
 namespace WebCore {
index 0632273..9e640f6 100644 (file)
@@ -103,8 +103,8 @@ WidgetRenderingContext::WidgetRenderingContext(GraphicsContext* graphicsContext,
         width = (1 + (width >> 5)) << 5;
         height = (1 + (height >> 5)) << 5;
 
-        gScratchBuffer = gdk_pixmap_new(0, width, height, gdk_colormap_get_visual(theme->m_themeParts.colormap)->depth);
-        gdk_drawable_set_colormap(gScratchBuffer, theme->m_themeParts.colormap);
+        gScratchBuffer = gdk_pixmap_new(0, width, height, gdk_colormap_get_visual(theme->m_colormap)->depth);
+        gdk_drawable_set_colormap(gScratchBuffer, theme->m_colormap);
     }
     m_target = gScratchBuffer;
 
@@ -143,15 +143,6 @@ WidgetRenderingContext::~WidgetRenderingContext()
     scheduleScratchBufferPurge();
 }
 
-bool WidgetRenderingContext::paintMozillaWidget(GtkThemeWidgetType type, GtkWidgetState* state, int flags, GtkTextDirection textDirection)
-{
-    // Sometimes moz_gtk_widget_paint modifies the clipping rectangle, so we must use a copy.
-    GdkRectangle clipRect = m_paintRect;
-    m_hadError = moz_gtk_widget_paint(type, m_target, &clipRect, &m_paintRect,
-        state, flags, textDirection) != MOZ_GTK_SUCCESS;
-    return !m_hadError;
-}
-
 void WidgetRenderingContext::gtkPaintBox(const IntRect& rect, GtkWidget* widget, GtkStateType stateType, GtkShadowType shadowType, const gchar* detail)
 {
     GdkRectangle paintRect = { m_paintRect.x + rect.x(), m_paintRect.y + rect.y(), rect.width(), rect.height() };
index e248f04..8639a98 100644 (file)
 #ifdef GTK_API_VERSION_2
 
 #include "IntRect.h"
-#include "gtkdrawing.h"
+
+// Usually this is too expensive to have in headers, but GtkStateType GtkShadowType are
+// enums and cannot be forward declared. WidgetRenderingContext.h is currently only
+// included in RenderThemeGtk2.cpp and ScrollbarThemeGtk2.cpp.
+#include <gtk/gtk.h>
 
 namespace WebCore {
 
@@ -37,7 +41,6 @@ public:
     WidgetRenderingContext(GraphicsContext*, const IntRect&);
     ~WidgetRenderingContext();
 
-    bool paintMozillaWidget(GtkThemeWidgetType, GtkWidgetState*, int flags, GtkTextDirection = GTK_TEXT_DIR_NONE);
     void gtkPaintBox(const IntRect&, GtkWidget*, GtkStateType, GtkShadowType, const gchar*);
     void gtkPaintFlatBox(const IntRect&, GtkWidget*, GtkStateType, GtkShadowType, const gchar*);
     void gtkPaintFocus(const IntRect&, GtkWidget*, GtkStateType, const gchar*);
diff --git a/Source/WebCore/platform/gtk/gtk2drawing.c b/Source/WebCore/platform/gtk/gtk2drawing.c
deleted file mode 100644 (file)
index 3979b7f..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2002
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *  Brian Ryner <bryner@brianryner.com>  (Original Author)
- *  Pierre Chanial <p_ch@verizon.net>
- *  Michael Ventnor <m.ventnor@gmail.com>
- *  Alp Toker <alp@nuanti.com>
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/*
- * This file contains painting functions for each of the gtk2 widgets.
- * Adapted from the gtkdrawing.c, and gtk+2.0 source.
- */
-
-#ifdef GTK_API_VERSION_2
-
-#undef GTK_DISABLE_DEPRECATED
-#undef GDK_DISABLE_DEPRECATED
-
-#include <gdk/gdkprivate.h>
-#include "gtkdrawing.h"
-#include "GtkVersioning.h"
-#include <math.h>
-#include <string.h>
-
-#define XTHICKNESS(style) (style->xthickness)
-#define YTHICKNESS(style) (style->ythickness)
-
-static GtkThemeParts *gParts = NULL;
-static style_prop_t style_prop_func;
-static gboolean is_initialized;
-
-void
-moz_gtk_use_theme_parts(GtkThemeParts* parts)
-{
-    gParts = parts;
-}
-
-/* Because we have such an unconventional way of drawing widgets, signal to the GTK theme engine
-   that they are drawing for Mozilla instead of a conventional GTK app so they can do any specific
-   things they may want to do. */
-static void
-moz_gtk_set_widget_name(GtkWidget* widget)
-{
-    gtk_widget_set_name(widget, "MozillaGtkWidget");
-}
-
-gint
-moz_gtk_enable_style_props(style_prop_t styleGetProp)
-{
-    style_prop_func = styleGetProp;
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_window_widget()
-{
-    if (!gParts->protoWindow) {
-        gParts->protoWindow = gtk_window_new(GTK_WINDOW_POPUP);
-
-        if (gParts->colormap)
-            gtk_widget_set_colormap(gParts->protoWindow, gParts->colormap);
-
-        gtk_widget_realize(gParts->protoWindow);
-        moz_gtk_set_widget_name(gParts->protoWindow);
-    }
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-setup_widget_prototype(GtkWidget* widget)
-{
-    ensure_window_widget();
-    if (!gParts->protoLayout) {
-        gParts->protoLayout = gtk_fixed_new();
-        gtk_container_add(GTK_CONTAINER(gParts->protoWindow), gParts->protoLayout);
-    }
-
-    gtk_container_add(GTK_CONTAINER(gParts->protoLayout), widget);
-    gtk_widget_realize(widget);
-    g_object_set_data(G_OBJECT(widget), "transparent-bg-hint", GINT_TO_POINTER(TRUE));
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_scrollbar_widget()
-{
-    if (!gParts->vertScrollbarWidget) {
-        gParts->vertScrollbarWidget = gtk_vscrollbar_new(NULL);
-        setup_widget_prototype(gParts->vertScrollbarWidget);
-    }
-    if (!gParts->horizScrollbarWidget) {
-        gParts->horizScrollbarWidget = gtk_hscrollbar_new(NULL);
-        setup_widget_prototype(gParts->horizScrollbarWidget);
-    }
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-ensure_scrolled_window_widget()
-{
-    if (!gParts->scrolledWindowWidget) {
-        gParts->scrolledWindowWidget = gtk_scrolled_window_new(NULL, NULL);
-        setup_widget_prototype(gParts->scrolledWindowWidget);
-    }
-    return MOZ_GTK_SUCCESS;
-}
-
-static GtkStateType
-ConvertGtkState(GtkWidgetState* state)
-{
-    if (state->disabled)
-        return GTK_STATE_INSENSITIVE;
-    else if (state->depressed)
-        return (state->inHover ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE);
-    else if (state->inHover)
-        return (state->active ? GTK_STATE_ACTIVE : GTK_STATE_PRELIGHT);
-    else
-        return GTK_STATE_NORMAL;
-}
-
-static gint
-TSOffsetStyleGCArray(GdkGC** gcs, gint xorigin, gint yorigin)
-{
-    int i;
-    /* there are 5 gc's in each array, for each of the widget states */
-    for (i = 0; i < 5; ++i)
-        gdk_gc_set_ts_origin(gcs[i], xorigin, yorigin);
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-TSOffsetStyleGCs(GtkStyle* style, gint xorigin, gint yorigin)
-{
-    TSOffsetStyleGCArray(style->fg_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->bg_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->light_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->dark_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->mid_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->text_gc, xorigin, yorigin);
-    TSOffsetStyleGCArray(style->base_gc, xorigin, yorigin);
-    gdk_gc_set_ts_origin(style->black_gc, xorigin, yorigin);
-    gdk_gc_set_ts_origin(style->white_gc, xorigin, yorigin);
-    return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_init()
-{
-    GtkWidgetClass *entry_class;
-
-    is_initialized = TRUE;
-
-    /* Add style property to GtkEntry.
-     * Adding the style property to the normal GtkEntry class means that it
-     * will work without issues inside GtkComboBox and for Spinbuttons. */
-    entry_class = g_type_class_ref(GTK_TYPE_ENTRY);
-    gtk_widget_class_install_style_property(entry_class,
-        g_param_spec_boolean("honors-transparent-bg-hint",
-                             "Transparent BG enabling flag",
-                             "If TRUE, the theme is able to draw the GtkEntry on non-prefilled background.",
-                             FALSE,
-                             G_PARAM_READWRITE));
-
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrolled_window_paint(GdkDrawable* drawable, GdkRectangle* rect,
-                              GdkRectangle* cliprect, GtkWidgetState* state)
-{
-    GtkStyle* style;
-    GtkAllocation allocation;
-    GtkWidget* widget;
-
-    ensure_scrolled_window_widget();
-    widget = gParts->scrolledWindowWidget;
-
-    gtk_widget_get_allocation(widget, &allocation);
-    allocation.x = rect->x;
-    allocation.y = rect->y;
-    allocation.width = rect->width;
-    allocation.height = rect->height;
-    gtk_widget_set_allocation(widget, &allocation);
-
-    style = gtk_widget_get_style(widget);
-    TSOffsetStyleGCs(style, rect->x - 1, rect->y - 1);
-    gtk_paint_shadow(style, drawable, GTK_STATE_NORMAL, GTK_SHADOW_IN,
-                     cliprect, gParts->scrolledWindowWidget, "scrolled_window",
-                     rect->x, rect->y, rect->width, rect->height);
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_button_paint(GdkDrawable* drawable, GdkRectangle* rect,
-                               GdkRectangle* cliprect, GtkWidgetState* state,
-                               GtkScrollbarButtonFlags flags,
-                               GtkTextDirection direction)
-{
-    GtkStateType state_type = ConvertGtkState(state);
-    GtkShadowType shadow_type = (state->active) ?
-        GTK_SHADOW_IN : GTK_SHADOW_OUT;
-    GdkRectangle arrow_rect;
-    GtkStyle* style;
-    GtkWidget *scrollbar;
-    GtkAllocation allocation;
-    GtkArrowType arrow_type;
-    gint arrow_displacement_x, arrow_displacement_y;
-    const char* detail = (flags & MOZ_GTK_STEPPER_VERTICAL) ?
-                           "vscrollbar" : "hscrollbar";
-
-    ensure_scrollbar_widget();
-
-    if (flags & MOZ_GTK_STEPPER_VERTICAL)
-        scrollbar = gParts->vertScrollbarWidget;
-    else
-        scrollbar = gParts->horizScrollbarWidget;
-
-    gtk_widget_set_direction(scrollbar, direction);
-
-    /* Some theme engines (i.e., ClearLooks) check the scrollbar's allocation
-       to determine where it should paint rounded corners on the buttons.
-       We need to trick them into drawing the buttons the way we want them. */
-
-    gtk_widget_get_allocation(scrollbar, &allocation);
-    allocation.x = rect->x;
-    allocation.y = rect->y;
-    allocation.width = rect->width;
-    allocation.height = rect->height;
-
-    if (flags & MOZ_GTK_STEPPER_VERTICAL) {
-        allocation.height *= 5;
-        if (flags & MOZ_GTK_STEPPER_DOWN) {
-            arrow_type = GTK_ARROW_DOWN;
-            if (flags & MOZ_GTK_STEPPER_BOTTOM)
-                allocation.y -= 4 * rect->height;
-            else
-                allocation.y -= rect->height;
-
-        } else {
-            arrow_type = GTK_ARROW_UP;
-            if (flags & MOZ_GTK_STEPPER_BOTTOM)
-                allocation.y -= 3 * rect->height;
-        }
-    } else {
-        allocation.width *= 5;
-        if (flags & MOZ_GTK_STEPPER_DOWN) {
-            arrow_type = GTK_ARROW_RIGHT;
-            if (flags & MOZ_GTK_STEPPER_BOTTOM)
-                allocation.x -= 4 * rect->width;
-            else
-                allocation.x -= rect->width;
-        } else {
-            arrow_type = GTK_ARROW_LEFT;
-            if (flags & MOZ_GTK_STEPPER_BOTTOM)
-                allocation.x -= 3 * rect->width;
-        }
-    }
-
-    gtk_widget_set_allocation(scrollbar, &allocation);
-    style = gtk_widget_get_style(scrollbar);
-
-    TSOffsetStyleGCs(style, rect->x, rect->y);
-
-    gtk_paint_box(style, drawable, state_type, shadow_type, cliprect,
-                  scrollbar, detail, rect->x, rect->y,
-                  rect->width, rect->height);
-
-    arrow_rect.width = rect->width / 2;
-    arrow_rect.height = rect->height / 2;
-    arrow_rect.x = rect->x + (rect->width - arrow_rect.width) / 2;
-    arrow_rect.y = rect->y + (rect->height - arrow_rect.height) / 2;
-
-    if (state_type == GTK_STATE_ACTIVE) {
-        gtk_widget_style_get(scrollbar,
-                             "arrow-displacement-x", &arrow_displacement_x,
-                             "arrow-displacement-y", &arrow_displacement_y,
-                             NULL);
-
-        arrow_rect.x += arrow_displacement_x;
-        arrow_rect.y += arrow_displacement_y;
-    }
-
-    gtk_paint_arrow(style, drawable, state_type, shadow_type, cliprect,
-                    scrollbar, detail, arrow_type, TRUE, arrow_rect.x,
-                    arrow_rect.y, arrow_rect.width, arrow_rect.height);
-
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_trough_paint(GtkThemeWidgetType widget,
-                               GdkDrawable* drawable, GdkRectangle* rect,
-                               GdkRectangle* cliprect, GtkWidgetState* state,
-                               GtkTextDirection direction)
-{
-    GtkStyle* style;
-    GtkScrollbar *scrollbar;
-
-    ensure_scrollbar_widget();
-
-    if (widget ==  MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL)
-        scrollbar = GTK_SCROLLBAR(gParts->horizScrollbarWidget);
-    else
-        scrollbar = GTK_SCROLLBAR(gParts->vertScrollbarWidget);
-
-    gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
-
-    style = gtk_widget_get_style(GTK_WIDGET(scrollbar));
-
-    TSOffsetStyleGCs(style, rect->x, rect->y);
-    gtk_paint_box(style, drawable, GTK_STATE_ACTIVE, GTK_SHADOW_IN, cliprect,
-                  GTK_WIDGET(scrollbar), "trough", rect->x, rect->y,
-                  rect->width, rect->height);
-
-    if (state->focused) {
-        gtk_paint_focus(style, drawable, GTK_STATE_ACTIVE, cliprect,
-                        GTK_WIDGET(scrollbar), "trough",
-                        rect->x, rect->y, rect->width, rect->height);
-    }
-
-    return MOZ_GTK_SUCCESS;
-}
-
-static gint
-moz_gtk_scrollbar_thumb_paint(GtkThemeWidgetType widget,
-                              GdkDrawable* drawable, GdkRectangle* rect,
-                              GdkRectangle* cliprect, GtkWidgetState* state,
-                              GtkTextDirection direction)
-{
-    GtkStateType state_type = (state->inHover || state->active) ?
-        GTK_STATE_PRELIGHT : GTK_STATE_NORMAL;
-    GtkShadowType shadow_type = GTK_SHADOW_OUT;
-    GtkStyle* style;
-    GtkScrollbar *scrollbar;
-    GtkAdjustment *adj;
-    gboolean activate_slider;
-
-    ensure_scrollbar_widget();
-
-    if (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL)
-        scrollbar = GTK_SCROLLBAR(gParts->horizScrollbarWidget);
-    else
-        scrollbar = GTK_SCROLLBAR(gParts->vertScrollbarWidget);
-
-    gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
-
-    /* Make sure to set the scrollbar range before painting so that
-       everything is drawn properly.  At least the bluecurve (and
-       maybe other) themes don't draw the top or bottom black line
-       surrounding the scrollbar if the theme thinks that it's butted
-       up against the scrollbar arrows.  Note the increases of the
-       clip rect below. */
-    /* Changing the cliprect is pretty bogus. This lets themes draw
-       outside the frame, which means we don't invalidate them
-       correctly. See bug 297508. But some themes do seem to need
-       it. So we modify the frame's overflow area to account for what
-       we're doing here; see nsNativeThemeGTK::GetWidgetOverflow. */
-    adj = gtk_range_get_adjustment(GTK_RANGE(scrollbar));
-
-    if (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) {
-        cliprect->x -= 1;
-        cliprect->width += 2;
-        gtk_adjustment_set_page_size(adj, rect->width);
-    }
-    else {
-        cliprect->y -= 1;
-        cliprect->height += 2;
-        gtk_adjustment_set_page_size(adj, rect->height);
-    }
-
-#if GTK_CHECK_VERSION(2, 14, 0)
-    gtk_adjustment_configure(adj,
-                             state->curpos,
-                             0,
-                             state->maxpos,
-                             gtk_adjustment_get_step_increment(adj),
-                             gtk_adjustment_get_page_increment(adj),
-                             gtk_adjustment_get_page_size(adj));
-#else
-    adj->lower = 0;
-    adj->value = state->curpos;
-    adj->upper = state->maxpos;
-    gtk_adjustment_changed(adj);
-#endif
-
-    style = gtk_widget_get_style(GTK_WIDGET(scrollbar));
-    
-    gtk_widget_style_get(GTK_WIDGET(scrollbar), "activate-slider",
-                         &activate_slider, NULL);
-    
-    if (activate_slider && state->active) {
-        shadow_type = GTK_SHADOW_IN;
-        state_type = GTK_STATE_ACTIVE;
-    }
-
-    TSOffsetStyleGCs(style, rect->x, rect->y);
-
-    gtk_paint_slider(style, drawable, state_type, shadow_type, cliprect,
-                     GTK_WIDGET(scrollbar), "slider", rect->x, rect->y,
-                     rect->width,  rect->height,
-                     (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ?
-                     GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
-
-    return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top,
-                          gint* right, gint* bottom, GtkTextDirection direction,
-                          gboolean inhtml)
-{
-    GtkWidget* w;
-    GtkStyle *style;
-
-    switch (widget) {
-    /* These widgets have no borders, since they are not containers. */
-    case MOZ_GTK_SCROLLBAR_BUTTON:
-    case MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL:
-    case MOZ_GTK_SCROLLBAR_TRACK_VERTICAL:
-    case MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL:
-    case MOZ_GTK_SCROLLBAR_THUMB_VERTICAL:
-        *left = *top = *right = *bottom = 0;
-        return MOZ_GTK_SUCCESS;
-    default:
-        g_warning("Unsupported widget type: %d", widget);
-        return MOZ_GTK_UNKNOWN_WIDGET;
-    }
-
-    style = gtk_widget_get_style(w);
-    *right = *left = XTHICKNESS(style);
-    *bottom = *top = YTHICKNESS(style);
-
-    return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_get_scrollbar_metrics(MozGtkScrollbarMetrics *metrics)
-{
-    ensure_scrollbar_widget();
-
-    gtk_widget_style_get (gParts->horizScrollbarWidget,
-                          "slider_width", &metrics->slider_width,
-                          "trough_border", &metrics->trough_border,
-                          "stepper_size", &metrics->stepper_size,
-                          "stepper_spacing", &metrics->stepper_spacing,
-                          "trough_under_steppers", &metrics->trough_under_steppers,
-                          "has_secondary_forward_stepper", &metrics->has_secondary_forward_stepper,
-                          "has_secondary_backward_stepper", &metrics->has_secondary_backward_stepper,
-                          NULL);
-
-    metrics->min_slider_size = gtk_range_get_min_slider_size(GTK_RANGE(gParts->horizScrollbarWidget));
-
-    return MOZ_GTK_SUCCESS;
-}
-
-gint
-moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
-                     GdkRectangle* rect, GdkRectangle* cliprect,
-                     GtkWidgetState* state, gint flags,
-                     GtkTextDirection direction)
-{
-    switch (widget) {
-    case MOZ_GTK_SCROLLBAR_BUTTON:
-        return moz_gtk_scrollbar_button_paint(drawable, rect, cliprect, state,
-                                              (GtkScrollbarButtonFlags) flags,
-                                              direction);
-        break;
-    case MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL:
-    case MOZ_GTK_SCROLLBAR_TRACK_VERTICAL:
-        return moz_gtk_scrollbar_trough_paint(widget, drawable, rect,
-                                              cliprect, state, direction);
-        break;
-    case MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL:
-    case MOZ_GTK_SCROLLBAR_THUMB_VERTICAL:
-        return moz_gtk_scrollbar_thumb_paint(widget, drawable, rect,
-                                             cliprect, state, direction);
-        break;
-    case MOZ_GTK_SCROLLED_WINDOW:
-        return moz_gtk_scrolled_window_paint(drawable, rect, cliprect, state);
-        break;
-    default:
-        g_warning("Unknown widget type: %d", widget);
-    }
-
-    return MOZ_GTK_UNKNOWN_WIDGET;
-}
-
-GtkWidget* moz_gtk_get_scrollbar_widget(void)
-{
-    if (!is_initialized)
-        return NULL;
-    ensure_scrollbar_widget();
-    return gParts->horizScrollbarWidget;
-}
-
-gint
-moz_gtk_shutdown()
-{
-    GtkWidgetClass *entry_class;
-    entry_class = g_type_class_peek(GTK_TYPE_ENTRY);
-    g_type_class_unref(entry_class);
-
-    is_initialized = FALSE;
-
-    return MOZ_GTK_SUCCESS;
-}
-
-void moz_gtk_destroy_theme_parts_widgets(GtkThemeParts* parts)
-{
-    if (!parts)
-        return;
-
-    if (parts->protoWindow) {
-        gtk_widget_destroy(parts->protoWindow);
-        parts->protoWindow = NULL;
-    }
-}
-
-#endif // GTK_API_VERSION_2
diff --git a/Source/WebCore/platform/gtk/gtkdrawing.h b/Source/WebCore/platform/gtk/gtkdrawing.h
deleted file mode 100644 (file)
index cdb343c..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
-/* ***** BEGIN LICENSE BLOCK *****
- * Version: MPL 1.1/GPL 2.0/LGPL 2.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 2002
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *  Brian Ryner <bryner@brianryner.com>  (Original Author)
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either the GNU General Public License Version 2 or later (the "GPL"), or
- * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-/**
- * gtkdrawing.h: GTK widget rendering utilities
- *
- * gtkdrawing provides an API for rendering GTK widgets in the
- * current theme to a pixmap or window, without requiring an actual
- * widget instantiation, similar to the Macintosh Appearance Manager
- * or Windows XP's DrawThemeBackground() API.
- */
-
-#ifndef _GTK_DRAWING_H_
-#define _GTK_DRAWING_H_
-
-#undef GTK_DISABLE_DEPRECATED
-
-#include <gtk/gtk.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
-
-/*** type definitions ***/
-typedef struct {
-  guint8 active;
-  guint8 focused;
-  guint8 inHover;
-  guint8 disabled;
-  guint8 isDefault;
-  guint8 canDefault;
-  /* The depressed state is for buttons which remain active for a longer period:
-   * activated toggle buttons or buttons showing a popup menu. */
-  guint8 depressed;
-  gint32 curpos; /* curpos and maxpos are used for scrollbars */
-  gint32 maxpos;
-} GtkWidgetState;
-
-typedef struct {
-  gint slider_width;
-  gint trough_border;
-  gint stepper_size;
-  gint stepper_spacing;
-  gint min_slider_size;
-  gboolean trough_under_steppers;
-  gboolean has_secondary_forward_stepper;
-  gboolean has_secondary_backward_stepper;
-} MozGtkScrollbarMetrics;
-
-typedef struct _GtkThemeParts {
-    GdkColormap* colormap;
-    GtkWidget* protoWindow;
-    GtkWidget* protoLayout;
-    GtkWidget* horizScrollbarWidget;
-    GtkWidget* vertScrollbarWidget;
-    GtkWidget* scrolledWindowWidget;
-} GtkThemeParts;
-
-typedef enum {
-  MOZ_GTK_STEPPER_DOWN        = 1 << 0,
-  MOZ_GTK_STEPPER_BOTTOM      = 1 << 1,
-  MOZ_GTK_STEPPER_VERTICAL    = 1 << 2
-} GtkScrollbarButtonFlags;
-
-/* function type for moz_gtk_enable_style_props */
-typedef gint (*style_prop_t)(GtkStyle*, const gchar*, gint);
-
-/*** result/error codes ***/
-#define MOZ_GTK_SUCCESS 0
-#define MOZ_GTK_UNKNOWN_WIDGET -1
-#define MOZ_GTK_UNSAFE_THEME -2
-
-/*** widget type constants ***/
-typedef enum {
-  /* Paints a GtkButton. flags is a GtkReliefStyle. */
-  MOZ_GTK_BUTTON,
-  /**
-   * Paints the button of a GtkScrollbar. flags is a GtkArrowType giving
-   * the arrow direction.
-   */
-  MOZ_GTK_SCROLLBAR_BUTTON,
-  /* Paints the trough (track) of a GtkScrollbar. */
-  MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL,
-  MOZ_GTK_SCROLLBAR_TRACK_VERTICAL,
-  /* Paints the slider (thumb) of a GtkScrollbar. */
-  MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL,
-  MOZ_GTK_SCROLLBAR_THUMB_VERTICAL,
-  /* Paints the background of a scrolled window */
-  MOZ_GTK_SCROLLED_WINDOW,
-} GtkThemeWidgetType;
-
-/*** General library functions ***/
-/**
- * Initializes the drawing library.  You must call this function
- * prior to using any other functionality.
- * returns: MOZ_GTK_SUCCESS if there were no errors
- *          MOZ_GTK_UNSAFE_THEME if the current theme engine is known
- *                               to crash with gtkdrawing.
- */
-gint moz_gtk_init();
-
-/**
- * Instruct the drawing library to do all rendering based on
- * the given collection of theme parts. If any members of the
- * GtkThemeParts struct are NULL, they will be created lazily.
- */
-void
-moz_gtk_use_theme_parts(GtkThemeParts* parts);
-
-/**
- * Enable GTK+ 1.2.9+ theme enhancements. You must provide a pointer
- * to the GTK+ 1.2.9+ function "gtk_style_get_prop_experimental".
- * styleGetProp:  pointer to gtk_style_get_prop_experimental
- * 
- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
- */
-gint moz_gtk_enable_style_props(style_prop_t styleGetProp);
-
-/**
- * Perform cleanup of the drawing library. You should call this function
- * when your program exits, or you no longer need the library.
- *
- * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
- */
-gint moz_gtk_shutdown();
-
-/**
- * Destroy the widgets in the given GtkThemeParts, which should
- * be destroyed before the GtkThemeParts can be freed.
- */
-void moz_gtk_destroy_theme_parts_widgets(GtkThemeParts* parts);
-
-/*** Widget drawing ***/
-/**
- * Paint a widget in the current theme.
- * widget:    a constant giving the widget to paint
- * rect:      the bounding rectangle for the widget
- * cliprect:  a clipprect rectangle for this painting operation
- * state:     the state of the widget.  ignored for some widgets.
- * flags:     widget-dependant flags; see the GtkThemeWidgetType definition.
- * direction: the text direction, to draw the widget correctly LTR and RTL.
- */
-gint
-moz_gtk_widget_paint(GtkThemeWidgetType widget, GdkDrawable* drawable,
-                     GdkRectangle* rect, GdkRectangle* cliprect,
-                     GtkWidgetState* state, gint flags,
-                     GtkTextDirection direction);
-
-/*** Widget metrics ***/
-/**
- * Get the border size of a widget
- * left/right:  [OUT] the widget's left/right border
- * top/bottom:  [OUT] the widget's top/bottom border
- * direction:   the text direction for the widget
- * inhtml:      boolean indicating whether this widget will be drawn as a HTML form control,
- *              in order to workaround a size issue (MOZ_GTK_BUTTON only, ignored otherwise)
- *
- * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
- */
-gint moz_gtk_get_widget_border(GtkThemeWidgetType widget, gint* left, gint* top, 
-                               gint* right, gint* bottom, GtkTextDirection direction,
-                               gboolean inhtml);
-/**
- * Get the desired metrics for a GtkScrollbar
- * metrics:          [IN]  struct which will contain the metrics
- *
- * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
- */
-gint
-moz_gtk_get_scrollbar_metrics(MozGtkScrollbarMetrics* metrics);
-
-/**
- * Retrieve an actual GTK scrollbar widget for style analysis. It will not
- * be modified.
- */
-GtkWidget* moz_gtk_get_scrollbar_widget(void);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif