gwenhywfar
4.3.1
|
00001 /*************************************************************************** 00002 $RCSfile$ 00003 ------------------- 00004 cvs : $Id: stringlist_p.h 786 2005-07-09 13:38:17Z aquamaniac $ 00005 begin : Thu Apr 03 2003 00006 copyright : (C) 2003 by Martin Preuss 00007 email : martin@libchipcard.de 00008 00009 *************************************************************************** 00010 * * 00011 * This library is free software; you can redistribute it and/or * 00012 * modify it under the terms of the GNU Lesser General Public * 00013 * License as published by the Free Software Foundation; either * 00014 * version 2.1 of the License, or (at your option) any later version. * 00015 * * 00016 * This library is distributed in the hope that it will be useful, * 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00019 * Lesser General Public License for more details. * 00020 * * 00021 * You should have received a copy of the GNU Lesser General Public * 00022 * License along with this library; if not, write to the Free Software * 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 00024 * MA 02111-1307 USA * 00025 * * 00026 ***************************************************************************/ 00027 00028 #ifndef GWENHYWFAR_SIGNAL_H 00029 #define GWENHYWFAR_SIGNAL_H 00030 00031 #include <gwenhywfar/gwenhywfarapi.h> 00032 #include <gwenhywfar/types.h> 00033 #include <gwenhywfar/list2.h> 00034 00035 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00064 00065 typedef struct GWEN_SIGNALOBJECT GWEN_SIGNALOBJECT; 00066 00067 typedef struct GWEN_SIGNAL GWEN_SIGNAL; 00068 00069 typedef struct GWEN_SLOT GWEN_SLOT; 00070 00071 00076 typedef int (*GWEN_SLOT_FUNCTION)(GWEN_SLOT *slot, 00077 void *userData, 00078 void *pArg1, 00079 void *pArg2, 00080 int iArg3, 00081 int iArg4); 00082 00083 00088 GWENHYWFAR_API 00089 GWEN_SIGNALOBJECT *GWEN_SignalObject_new(void); 00090 00091 GWENHYWFAR_API 00092 void GWEN_SignalObject_free(GWEN_SIGNALOBJECT *so); 00093 00094 GWENHYWFAR_API 00095 GWEN_SIGNAL *GWEN_SignalObject_FindSignal(const GWEN_SIGNALOBJECT *so, 00096 const char *name, 00097 const char *typeOfArg1, 00098 const char *typeOfArg2); 00099 00100 GWENHYWFAR_API 00101 GWEN_SLOT *GWEN_SignalObject_FindSlot(const GWEN_SIGNALOBJECT *so, 00102 const char *name, 00103 const char *typeOfArg1, 00104 const char *typeOfArg2); 00105 00111 GWENHYWFAR_API 00112 void GWEN_SignalObject_RemoveForDerivedType(GWEN_SIGNALOBJECT *so, 00113 const char *derivedType); 00114 00115 00122 00123 GWENHYWFAR_API 00124 GWEN_SIGNAL *GWEN_Signal_new(GWEN_SIGNALOBJECT *so, 00125 const char *derivedType, 00126 const char *name, 00127 const char *typeOfArg1, 00128 const char *typeOfArg2); 00129 00130 GWENHYWFAR_API 00131 void GWEN_Signal_free(GWEN_SIGNAL *sig); 00132 00133 00134 GWENHYWFAR_API 00135 GWEN_SIGNALOBJECT *GWEN_Signal_GetSignalObject(const GWEN_SIGNAL *sig); 00136 00137 00138 GWENHYWFAR_API 00139 int GWEN_Signal_Connect(GWEN_SIGNAL *sig, GWEN_SLOT *slot); 00140 00141 GWENHYWFAR_API 00142 int GWEN_Signal_Disconnect(GWEN_SIGNAL *sig, GWEN_SLOT *slot); 00143 00151 GWENHYWFAR_API 00152 int GWEN_Signal_Emit(GWEN_SIGNAL *sig, 00153 void *pArg1, void *pArg2, int iArg3, int iArg4); 00163 00164 GWENHYWFAR_API 00165 GWEN_SLOT *GWEN_Slot_new(GWEN_SIGNALOBJECT *so, 00166 const char *derivedType, 00167 const char *name, 00168 const char *typeOfArg1, 00169 const char *typeOfArg2, 00170 GWEN_SLOT_FUNCTION fn, 00171 void *userData); 00172 00173 GWENHYWFAR_API 00174 void GWEN_Slot_free(GWEN_SLOT *slot); 00175 00176 GWENHYWFAR_API 00177 GWEN_SIGNALOBJECT *GWEN_Slot_GetSignalObject(const GWEN_SLOT *slot); 00178 00179 /* defgroup */ 00181 00182 /* defgroup */ 00184 00185 00186 00187 #ifdef __cplusplus 00188 } /* extern C */ 00189 #endif 00190 00191 00192 #endif 00193