00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GWENHYWFAR_STRINGLIST2_H
00029 #define GWENHYWFAR_STRINGLIST2_H
00030
00031 #include <gwenhywfar/gwenhywfarapi.h>
00032 #include <gwenhywfar/stringlist.h>
00033 #include <gwenhywfar/types.h>
00034 #include <gwenhywfar/refptr.h>
00035 #include <gwenhywfar/list.h>
00036
00037 #ifdef __cplusplus
00038 extern "C" {
00039 #endif
00040
00041 typedef struct GWEN_STRINGLIST2 GWEN_STRINGLIST2;
00042 typedef GWEN_LIST_ITERATOR GWEN_STRINGLIST2_ITERATOR;
00043
00044
00045 typedef enum {
00046 GWEN_StringList2_IntertModeAlwaysAdd=0,
00047 GWEN_StringList2_IntertModeNoDouble,
00048 GWEN_StringList2_IntertModeReuse
00049 } GWEN_STRINGLIST2_INSERTMODE;
00050
00051
00052 GWEN_STRINGLIST2 *GWEN_StringList2_new();
00053 void GWEN_StringList2_free(GWEN_STRINGLIST2 *sl2);
00054 GWEN_STRINGLIST2 *GWEN_StringList2_dup(GWEN_STRINGLIST2 *sl2);
00055
00056
00063 void GWEN_StringList2_SetSenseCase(GWEN_STRINGLIST2 *sl2, int i);
00064
00072 void GWEN_StringList2_SetIgnoreRefCount(GWEN_STRINGLIST2 *sl2, int i);
00073
00081 GWENHYWFAR_API
00082 int GWEN_StringList2_AppendString(GWEN_STRINGLIST2 *sl2,
00083 const char *s,
00084 int take,
00085 GWEN_STRINGLIST2_INSERTMODE m);
00086
00094 GWENHYWFAR_API
00095 int GWEN_StringList2_InsertString(GWEN_STRINGLIST2 *sl2,
00096 const char *s,
00097 int take,
00098 GWEN_STRINGLIST2_INSERTMODE m);
00099
00104 GWENHYWFAR_API int GWEN_StringList2_RemoveString(GWEN_STRINGLIST2 *sl2,
00105 const char *s);
00106
00112 GWENHYWFAR_API int GWEN_StringList2_HasString(const GWEN_STRINGLIST2 *sl2,
00113 const char *s);
00114
00115
00116
00117
00118 GWEN_STRINGLIST2_ITERATOR *GWEN_StringList2_First(const GWEN_STRINGLIST2 *l);
00119
00120
00121 GWEN_STRINGLIST2_ITERATOR *GWEN_StringList2_Last(const GWEN_STRINGLIST2 *l);
00122
00123
00124 void GWEN_StringList2Iterator_free(GWEN_STRINGLIST2_ITERATOR *li);
00125
00126
00127 const char *GWEN_StringList2Iterator_Previous(GWEN_STRINGLIST2_ITERATOR *li);
00128
00129
00130 const char *GWEN_StringList2Iterator_Next(GWEN_STRINGLIST2_ITERATOR *li);
00131
00132
00133 const char *GWEN_StringList2Iterator_Data(GWEN_STRINGLIST2_ITERATOR *li);
00134
00135 unsigned int
00136 GWEN_StringList2Iterator_GetLinkCount(const GWEN_STRINGLIST2_ITERATOR *li);
00137
00138
00139 GWEN_REFPTR*
00140 GWEN_StringList2Iterator_DataRefPtr(GWEN_STRINGLIST2_ITERATOR *li);
00141
00142
00143 GWENHYWFAR_API void GWEN_StringList2_Dump(const GWEN_STRINGLIST2 *sl2);
00144
00145
00146
00147 #ifdef __cplusplus
00148 }
00149 #endif
00150
00151
00152 #endif
00153
00154