###############################################################################
# Copyright (c) 2000, 2006 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
org_eclipse_swt_internal_gtk_GTK=
GTK__GTK_WIDGET_HEIGHT=
GTK__GTK_WIDGET_HEIGHT_0=cast=GtkWidget *

GTK__GTK_WIDGET_WIDTH=
GTK__GTK_WIDGET_WIDTH_0=cast=GtkWidget *

GTK__g_signal_connect=
GTK__g_signal_connect_0=cast=(gpointer)
GTK__g_signal_connect_1=cast=(const gchar *),flags=no_out
GTK__g_signal_connect_2=cast=(GCallback)
GTK__g_signal_connect_3=cast=gpointer

GTK__gtk_events_pending=

GTK__gtk_init_check=
GTK__gtk_init_check_0=cast=int *
GTK__gtk_init_check_1=cast=char ***

GTK__gtk_main=

GTK__gtk_main_iteration=

GTK__gtk_plug_new=
GTK__gtk_plug_new_0=

GTK__gtk_widget_destroy=
GTK__gtk_widget_destroy_0=cast=GtkWidget *

GTK__gtk_widget_show=
GTK__gtk_widget_show_0=cast=GtkWidget *

GTK__gtk_widget_show_now=
GTK__gtk_widget_show_now_0=cast=GtkWidget *

GTK__gtk_window_new=
GTK__gtk_window_new_0=cast=GtkWindowType


