gwensignal.h File Reference
`#include <gwenhywfar/gwenhywfarapi.h>`
`#include <gwenhywfar/types.h>`
`#include <gwenhywfar/list2.h>`

Go to the source code of this file.

## Typedefs

typedef struct GWEN_SIGNAL | GWEN_SIGNAL
typedef struct GWEN_SIGNALOBJECT | GWEN_SIGNALOBJECT
typedef struct GWEN_SLOT | GWEN_SLOT
typedef int GWENHYWFAR_CB(* | GWEN_SLOT_FUNCTION) (GWEN_SLOT *slot, void *userData, void *pArg1, void *pArg2, int iArg3, int iArg4)

## Functions

SignalObject
GWENHYWFAR_API int | GWEN_Signal_Connect (GWEN_SIGNAL *sig, GWEN_SLOT *slot)
GWENHYWFAR_API int | GWEN_Signal_Disconnect (GWEN_SIGNAL *sig, GWEN_SLOT *slot)
GWENHYWFAR_API int | GWEN_Signal_Emit (GWEN_SIGNAL *sig, void *pArg1, void *pArg2, int iArg3, int iArg4)
GWENHYWFAR_API void | GWEN_Signal_free (GWEN_SIGNAL *sig)
GWENHYWFAR_API GWEN_SIGNALOBJECT * | GWEN_Signal_GetSignalObject (const GWEN_SIGNAL *sig)
GWENHYWFAR_API GWEN_SIGNAL * | GWEN_Signal_new (GWEN_SIGNALOBJECT *so, const char *derivedType, const char *name, const char *typeOfArg1, const char *typeOfArg2)
GWENHYWFAR_API GWEN_SIGNAL * | GWEN_SignalObject_FindSignal (const GWEN_SIGNALOBJECT *so, const char *name, const char *typeOfArg1, const char *typeOfArg2)
GWENHYWFAR_API GWEN_SLOT * | GWEN_SignalObject_FindSlot (const GWEN_SIGNALOBJECT *so, const char *name, const char *typeOfArg1, const char *typeOfArg2)
GWENHYWFAR_API void | GWEN_SignalObject_free (GWEN_SIGNALOBJECT *so)
GWENHYWFAR_API GWEN_SIGNALOBJECT * | GWEN_SignalObject_new (void)
GWENHYWFAR_API void | GWEN_SignalObject_RemoveForDerivedType (GWEN_SIGNALOBJECT *so, const char *derivedType)
GWENHYWFAR_API void | GWEN_Slot_free (GWEN_SLOT *slot)
GWENHYWFAR_API GWEN_SIGNALOBJECT * | GWEN_Slot_GetSignalObject (const GWEN_SLOT *slot)
GWENHYWFAR_API GWEN_SLOT * | GWEN_Slot_new (GWEN_SIGNALOBJECT *so, const char *derivedType, const char *name, const char *typeOfArg1, const char *typeOfArg2, GWEN_SLOT_FUNCTION fn, void *userData)

## Typedef Documentation

## GWEN_SIGNAL

typedef struct GWEN_SIGNAL GWEN_SIGNAL

Definition at line 67 of file gwensignal.h.

## GWEN_SIGNALOBJECT

typedef struct GWEN_SIGNALOBJECT GWEN_SIGNALOBJECT

Definition at line 65 of file gwensignal.h.

## GWEN_SLOT

typedef struct GWEN_SLOT GWEN_SLOT

Definition at line 69 of file gwensignal.h.

## GWEN_SLOT_FUNCTION

typedef int GWENHYWFAR_CB(* GWEN_SLOT_FUNCTION) (GWEN_SLOT *slot, void *userData, void *pArg1, void *pArg2, int iArg3, int iArg4)

This is the prototype for the slot function. If there is a problem in the function it should return 1, otherwise 0.

Definition at line 76 of file gwensignal.h.

## Function Documentation

## GWEN_Signal_Connect()

GWENHYWFAR_API int GWEN_Signal_Connect | ( | GWEN_SIGNAL * | sig,
|  | GWEN_SLOT * | slot )

References GWENHYWFAR_API.

## GWEN_Signal_Disconnect()

GWENHYWFAR_API int GWEN_Signal_Disconnect | ( | GWEN_SIGNAL * | sig,
|  | GWEN_SLOT * | slot )

References GWENHYWFAR_API.

## GWEN_Signal_Emit()

GWENHYWFAR_API int GWEN_Signal_Emit | ( | GWEN_SIGNAL * | sig,
|  | void * | pArg1,
|  | void * | pArg2,
|  | int | iArg3,
|  | int | iArg4 )

This function calls the slot function of all connected slots. If any of the slot functions called returns with code 1 then this function will return 1, too. Otherwise 0 is returned. This means that this function will only return 0 if every called slot function returns 0.

References GWENHYWFAR_API.

## GWEN_Signal_free()

GWENHYWFAR_API void GWEN_Signal_free | ( | GWEN_SIGNAL * | sig | ) |

References GWENHYWFAR_API.

## GWEN_Signal_GetSignalObject()

GWENHYWFAR_API GWEN_SIGNALOBJECT * GWEN_Signal_GetSignalObject | ( | const GWEN_SIGNAL * | sig | ) |

References GWENHYWFAR_API.

## GWEN_Signal_new()

GWENHYWFAR_API GWEN_SIGNAL * GWEN_Signal_new | ( | GWEN_SIGNALOBJECT * | so,
|  | const char * | derivedType,
|  | const char * | name,
|  | const char * | typeOfArg1,
|  | const char * | typeOfArg2 )

References GWENHYWFAR_API.

## GWEN_SignalObject_FindSignal()

GWENHYWFAR_API GWEN_SIGNAL * GWEN_SignalObject_FindSignal | ( | const GWEN_SIGNALOBJECT * | so,
|  | const char * | name,
|  | const char * | typeOfArg1,
|  | const char * | typeOfArg2 )

References GWENHYWFAR_API.

## GWEN_SignalObject_FindSlot()

GWENHYWFAR_API GWEN_SLOT * GWEN_SignalObject_FindSlot | ( | const GWEN_SIGNALOBJECT * | so,
|  | const char * | name,
|  | const char * | typeOfArg1,
|  | const char * | typeOfArg2 )

References GWENHYWFAR_API.

## GWEN_SignalObject_free()

GWENHYWFAR_API void GWEN_SignalObject_free | ( | GWEN_SIGNALOBJECT * | so | ) |

References GWENHYWFAR_API.

## GWEN_SignalObject_new()

GWENHYWFAR_API GWEN_SIGNALOBJECT * GWEN_SignalObject_new | ( | void |  | ) |

References GWENHYWFAR_API.

## GWEN_SignalObject_RemoveForDerivedType()

GWENHYWFAR_API void GWEN_SignalObject_RemoveForDerivedType | ( | GWEN_SIGNALOBJECT * | so,
|  | const char * | derivedType )

This function removes all signals and slots for the given derived type. This function can be used from within the FREEDATA function of the GWEN_INHERIT framework.

References GWENHYWFAR_API.

## GWEN_Slot_free()

GWENHYWFAR_API void GWEN_Slot_free | ( | GWEN_SLOT * | slot | ) |

References GWENHYWFAR_API.

## GWEN_Slot_GetSignalObject()

GWENHYWFAR_API GWEN_SIGNALOBJECT * GWEN_Slot_GetSignalObject | ( | const GWEN_SLOT * | slot | ) |

## GWEN_Slot_new()

GWENHYWFAR_API GWEN_SLOT * GWEN_Slot_new | ( | GWEN_SIGNALOBJECT * | so,
|  | const char * | derivedType,
|  | const char * | name,
|  | const char * | typeOfArg1,
|  | const char * | typeOfArg2,
|  | GWEN_SLOT_FUNCTION | fn,
|  | void * | userData )

References GWENHYWFAR_API.