// 2 june 2019 #define uiprivProgrammerErrorNotInitialized(func) \ uiprivProgrammerError("attempt to call %s() before uiInit()", \ func) #define uiprivProgrammerErrorWrongThread(func) \ uiprivProgrammerError("attempt to call %s() on a thread other than the GUI thread", \ func) #define uiprivProgrammerErrorWrongStructSize(badSize, structName) \ uiprivProgrammerError("wrong size %" uiprivSizetPrintf " for %s", \ badSize, structName) #define uiprivProgrammerErrorIndexOutOfRange(badIndex, func) \ uiprivProgrammerError("index %d out of range in %s()", \ badIndex, func) #define uiprivProgrammerErrorNullPointer(paramDesc, func) \ uiprivProgrammerError("invalid null pointer for %s passed into %s()", \ paramDesc, func) #define uiprivProgrammerErrorIntIDNotFound(idDesc, badID, func) \ uiprivProgrammerError("%s identifier %d not found in %s()", \ idDesc, badID, func) // TODO type mismatch #define uiprivProgrammerErrorBadSenderForEvent(senderDesc, eventDesc, func) \ uiprivProgrammerError("attempt to use a %s sender with a %s event in %s()", \ senderDesc, eventDesc, func) #define uiprivProgrammerErrorChangingEventDuringFire(func) \ uiprivProgrammerError("attempt to change a uiEvent with %s() while it is firing", \ func) #define uiprivProgrammerErrorRecursiveEventFire() \ uiprivProgrammerError("attempt to fire a uiEvent while it is already being fired") #define uiprivProgrammerErrorFreeingInternalEvent() \ uiprivProgrammerError("attempt to free a libui-provided uiEvent") #define uiprivProgrammerErrorFreeingEventInUse() \ uiprivProgrammerError("attempt to free a uiEvent that still has handlers registered")