###############################################################################
# Copyright (c) 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Common Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/cpl-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


