2015-05-14 08:43:25 -05:00
// 6 april 2015
2015-11-17 18:18:55 -06:00
# ifdef __cplusplus
extern " C " {
# endif
2015-05-14 08:43:25 -05:00
# include <stdlib.h>
2015-05-21 09:32:55 -05:00
# define uthash_fatal(msg) complain("uthash failed: %s", (msg))
# define uthash_malloc(sz) uiAlloc((sz), "(uthash internal)")
# define uthash_free(ptr,sz) uiFree((ptr))
# include "uthash/uthash.h"
2015-10-12 20:11:42 -05:00
# include "uthash/utarray.h"
2015-05-21 09:32:55 -05:00
2015-05-14 08:43:25 -05:00
extern uiInitOptions options ;
extern void * uiAlloc ( size_t , const char * ) ;
# define uiNew(T) ((T *) uiAlloc(sizeof (T), #T))
extern void * uiRealloc ( void * , size_t , const char * ) ;
extern void uiFree ( void * ) ;
extern void complain ( const char * , . . . ) ;
2015-08-27 11:05:11 -05:00
extern int isToplevel ( uiControl * ) ;
extern uiControl * toplevelOwning ( uiControl * ) ;
2015-09-01 15:44:09 -05:00
extern int controlSelfVisible ( uiControl * ) ;
2015-08-27 11:05:11 -05:00
extern void controlUpdateState ( uiControl * ) ;
extern void osCommitEnable ( uiControl * ) ;
extern void osCommitDisable ( uiControl * ) ;
2015-05-29 13:56:11 -05:00
2015-05-18 21:02:37 -05:00
// ptrarray.c
2015-05-14 08:43:25 -05:00
struct ptrArray {
void * * ptrs ;
uintmax_t len ;
uintmax_t cap ;
} ;
struct ptrArray * newPtrArray ( void ) ;
void ptrArrayDestroy ( struct ptrArray * ) ;
void ptrArrayAppend ( struct ptrArray * , void * ) ;
2015-05-18 09:32:08 -05:00
void ptrArrayInsertAt ( struct ptrArray * , uintmax_t , void * ) ;
2015-05-14 08:43:25 -05:00
void ptrArrayDelete ( struct ptrArray * , uintmax_t ) ;
# define ptrArrayIndex(p, T, i) ((T) ((p)->ptrs[(i)]))
// shouldquit.c
2015-05-29 13:56:11 -05:00
extern int shouldQuit ( void ) ;
// types.c
2015-06-01 17:11:23 -05:00
extern void uninitTypes ( void ) ;
2015-05-29 13:56:11 -05:00
extern uiTyped * newTyped ( uintmax_t type ) ;
2015-10-08 17:24:09 -05:00
// areaevents.c
typedef struct clickCounter clickCounter ;
// you should call Reset() to zero-initialize a new instance
// it doesn't matter that all the non-count fields are zero: the first click will fail the curButton test straightaway, so it'll return 1 and set the rest of the structure accordingly
struct clickCounter {
uintmax_t curButton ;
intmax_t rectX0 ;
intmax_t rectY0 ;
intmax_t rectX1 ;
intmax_t rectY1 ;
uintptr_t prevTime ;
uintmax_t count ;
} ;
extern uintmax_t clickCounterClick ( clickCounter * , uintmax_t , intmax_t , intmax_t , uintptr_t , uintptr_t , intmax_t , intmax_t ) ;
extern void clickCounterReset ( clickCounter * ) ;
extern int fromScancode ( uintptr_t , uiAreaKeyEvent * ) ;
2015-10-11 10:13:01 -05:00
// matrix.c
extern void setIdentity ( uiDrawMatrix * ) ;
2015-10-12 06:58:07 -05:00
extern void fallbackSkew ( uiDrawMatrix * , double , double , double , double ) ;
2015-10-11 11:36:48 -05:00
extern void fallbackTranslate ( uiDrawMatrix * , double , double ) ;
2015-10-12 00:43:12 -05:00
extern void scaleCenter ( double , double , double * , double * ) ;
extern void fallbackScale ( uiDrawMatrix * , double , double , double , double ) ;
2015-10-11 11:36:48 -05:00
extern void fallbackMultiply ( uiDrawMatrix * , uiDrawMatrix * ) ;
extern void fallbackTransformPoint ( uiDrawMatrix * , double * , double * ) ;
extern void fallbackTransformSize ( uiDrawMatrix * , double * , double * ) ;
2015-11-17 18:18:55 -06:00
# ifdef __cplusplus
}
# endif