/* Public domain */ #ifndef _EDACIOUS_CORE_H_ #define _EDACIOUS_CORE_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef _ES_INTERNAL # include #endif /* Flags to ES_CoreInit() */ #define ES_INIT_PRELOAD_ALL 0x01 /* Preload all installed modules */ /* Dynamically-linked module */ typedef struct es_module { const char *version; /* Version number */ const char *descr; /* Long description */ const char *url; /* Package URL */ void (*init)(const char *ver); /* Init callback */ void (*destroy)(void); /* Destroy callback */ ES_ComponentClass **comClasses; /* Component classes */ VG_NodeOps **vgClasses; /* VG node classes */ } ES_Module; __BEGIN_DECLS extern AG_Object esVfsRoot; /* General-purpose VFS */ extern void *esCoreClasses[]; /* Base object classes */ extern void *esSchematicClasses[]; /* Base schematic VG classes */ extern const char *esEditableClasses[]; /* User-editable object classes */ void ES_CoreInit(Uint); void ES_CoreDestroy(void); void ES_SetObjectOpenHandler(AG_Window *(*fn)(void *)); void ES_SetObjectCloseHandler(void (*fn)(void *)); int ES_LoadModule(const char *); int ES_UnloadModule(const char *); /* For GUI */ void ES_InitMenuMDI(void); void ES_FileMenu(AG_MenuItem *, void *); void ES_EditMenu(AG_MenuItem *, void *); AG_Window *ES_OpenObject(void *); void ES_CloseObject(void *); void ES_GUI_NewObject(AG_Event *); void ES_GUI_LoadObject(AG_Event *); void ES_GUI_CreateComponentModel(AG_Event *); void ES_GUI_NewComponentModelDlg(AG_Event *); void ES_GUI_OpenDlg(AG_Event *); void ES_GUI_Save(AG_Event *); void ES_GUI_SaveAsDlg(AG_Event *); void ES_GUI_Quit(AG_Event *); void ES_GUI_Undo(AG_Event *); void ES_GUI_Redo(AG_Event *); void ES_GUI_EditPreferences(AG_Event *); void ES_GUI_SelectFontDlg(AG_Event *); __END_DECLS #include #endif /* _EDACIOUS_CORE_H_ */