###############################################################################
# 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_kde_KDE=flags=cpp
KDE__KApplication_new=flags=new
KDE__KApplication_new_0=
KDE__KApplication_new_1=cast=(char **)
KDE__KApplication_new_2=cast=(QCString *),flags=struct
KDE__KApplication_new_3=cast=(bool)
KDE__KApplication_new_4=cast=(bool)

KDE__KGlobal_iconLoader=accessor=KGlobal::iconLoader

KDE__KIconLoader_iconPath=accessor=iconPath,copy=QString,flags=cpp
KDE__KIconLoader_iconPath_0=cast=(KIconLoader *)
KDE__KIconLoader_iconPath_1=cast=(QString *),flags=struct
KDE__KIconLoader_iconPath_2=
KDE__KIconLoader_iconPath_3=cast=bool

KDE__KMimeTypeListIterator_delete=flags=delete
KDE__KMimeTypeListIterator_delete_0=cast=(QValueListIterator<KMimeType::Ptr> *)

KDE__KMimeTypeListIterator_dereference=copy=KSharedPtr<KMimeType>
KDE__KMimeTypeListIterator_dereference_0=

KDE__KMimeTypeListIterator_equals=
KDE__KMimeTypeListIterator_equals_0=
KDE__KMimeTypeListIterator_equals_1=

KDE__KMimeTypeListIterator_increment=
KDE__KMimeTypeListIterator_increment_0=

KDE__KMimeTypeList_begin=copy=QValueListIterator<KMimeType::Ptr>,flags=cpp
KDE__KMimeTypeList_begin_0=cast=(KMimeType::List *)

KDE__KMimeTypeList_delete=flags=delete
KDE__KMimeTypeList_delete_0=cast=(KMimeType::List *)

KDE__KMimeTypeList_end=copy=QValueListIterator<KMimeType::Ptr>,flags=cpp
KDE__KMimeTypeList_end_0=cast=(KMimeType::List *)

KDE__KMimeType_allMimeTypes=accessor=KMimeType::allMimeTypes,copy=KMimeType::List

KDE__KMimeType_delete=flags=delete
KDE__KMimeType_delete_0=cast=(KSharedPtr<KMimeType> *)

KDE__KMimeType_icon=copy=QString,flags=cpp
KDE__KMimeType_icon_0=cast=(KSharedPtr<KMimeType> *),flags=struct
KDE__KMimeType_icon_1=cast=(const QString&)
KDE__KMimeType_icon_2=cast=bool

KDE__KMimeType_mimeType=accessor=KMimeType::mimeType,copy=KSharedPtr<KMimeType>
KDE__KMimeType_mimeType_0=cast=(QString *),flags=struct

KDE__KMimeType_name=copy=QString,flags=cpp
KDE__KMimeType_name_0=cast=(KSharedPtr<KMimeType> *),flags=struct

KDE__KMimeType_offers=accessor=KMimeType::offers,copy=KService::List
KDE__KMimeType_offers_0=cast=(QString *),flags=struct

KDE__KMimeType_patterns=copy=QStringList,flags=cpp
KDE__KMimeType_patterns_0=cast=(KSharedPtr<KMimeType> *),flags=struct

KDE__KRun_runURL=accessor=KRun::runURL
KDE__KRun_runURL_0=cast=(KURL *),flags=struct
KDE__KRun_runURL_1=cast=(QString *),flags=struct

KDE__KServiceList_delete=flags=delete
KDE__KServiceList_delete_0=cast=(KService::List*)

KDE__KURL_delete=flags=delete
KDE__KURL_delete_0=cast=(KURL*)

KDE__KURL_new=flags=new
KDE__KURL_new_0=cast=(QString *),flags=struct

KDE__QCString_data=accessor=data,flags=cpp
KDE__QCString_data_0=cast=(QCString *)

KDE__QCString_delete=flags=delete
KDE__QCString_delete_0=cast=(QCString *)

KDE__QCString_new=flags=new
KDE__QCString_new_0=cast=(char *)

KDE__QStringListIterator_delete=flags=delete
KDE__QStringListIterator_delete_0=cast=(QValueListIterator<QString> *)

KDE__QStringListIterator_dereference=copy=QString
KDE__QStringListIterator_dereference_0=

KDE__QStringListIterator_equals=
KDE__QStringListIterator_equals_0=
KDE__QStringListIterator_equals_1=

KDE__QStringListIterator_increment=
KDE__QStringListIterator_increment_0=

KDE__QStringList_begin=copy=QValueListIterator<QString>,flags=cpp
KDE__QStringList_begin_0=cast=(QStringList *)

KDE__QStringList_delete=flags=delete
KDE__QStringList_delete_0=cast=(QStringList*)

KDE__QStringList_end=copy=QValueListIterator<QString>,flags=cpp
KDE__QStringList_end_0=cast=(QStringList *)

KDE__QString_delete=flags=delete
KDE__QString_delete_0=cast=(QString *)

KDE__QString_equals=
KDE__QString_equals_0=
KDE__QString_equals_1=

KDE__QString_new=flags=new
KDE__QString_new_0=cast=(char *)

KDE__QString_utf8=copy=QCString,flags=cpp
KDE__QString_utf8_0=cast=(QString *)

KDE__XFreePixmap=
KDE__XFreePixmap_0=cast=Display *
KDE__XFreePixmap_1=cast=Pixmap

KDE__XpmReadFileToPixmap=flags=dynamic
KDE__XpmReadFileToPixmap_0=cast=Display *
KDE__XpmReadFileToPixmap_1=cast=Window
KDE__XpmReadFileToPixmap_2=cast=char *
KDE__XpmReadFileToPixmap_3=cast=Pixmap *
KDE__XpmReadFileToPixmap_4=cast=Pixmap *
KDE__XpmReadFileToPixmap_5=cast=(XpmAttributes *)

KDE__free=
KDE__free_0=cast=void *

KDE__malloc=
KDE__malloc_0=

KDE__sigaction=
KDE__sigaction_0=
KDE__sigaction_1=cast=(struct sigaction *)
KDE__sigaction_2=cast=(struct sigaction *)

KDE__sigaction_sizeof=


