gvcext.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /// @file
  2. /// @ingroup gvc_api
  3. /*************************************************************************
  4. * Copyright (c) 2011 AT&T Intellectual Property
  5. * All rights reserved. This program and the accompanying materials
  6. * are made available under the terms of the Eclipse Public License v1.0
  7. * which accompanies this distribution, and is available at
  8. * https://www.eclipse.org/legal/epl-v10.html
  9. *
  10. * Contributors: Details at https://graphviz.org
  11. *************************************************************************/
  12. /* Common header used by both clients and plugins */
  13. #pragma once
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. /*
  18. * Define an apis array of name strings using an enumerated api_t as index.
  19. * The enumerated type is defined here. The apis array is
  20. * inititialized in gvplugin.c by redefining ELEM and reinvoking APIS.
  21. */
  22. #define APIS ELEM(render) ELEM(layout) ELEM(textlayout) ELEM(device) ELEM(loadimage)
  23. /*
  24. * Define api_t using names based on the plugin names with API_ prefixed.
  25. */
  26. #define ELEM(x) API_##x,
  27. typedef enum { APIS } api_t; /* API_render, API_layout, ... */
  28. #undef ELEM
  29. typedef struct GVJ_s GVJ_t;
  30. typedef struct GVG_s GVG_t;
  31. typedef struct GVC_s GVC_t; ///< graphviz context
  32. typedef struct {
  33. const char *name;
  34. void* address;
  35. } lt_symlist_t;
  36. typedef struct gvplugin_available_s gvplugin_available_t;
  37. #if !defined(LTDL_H)
  38. extern lt_symlist_t lt_preloaded_symbols[];
  39. #endif
  40. #ifdef __cplusplus
  41. }
  42. #endif