kptype.h 844 B

12345678910111213141516171819202122232425262728293031323334
  1. /** @file kptype.h
  2. *
  3. * @brief Klish scheme's "ptype" entry
  4. */
  5. #ifndef _klish_kptype_h
  6. #define _klish_kptype_h
  7. #include <faux/list.h>
  8. #include <klish/kaction.h>
  9. typedef struct kptype_s kptype_t;
  10. typedef faux_list_node_t kptype_actions_node_t;
  11. C_DECL_BEGIN
  12. kptype_t *kptype_new(const char *name);
  13. void kptype_free(kptype_t *ptype);
  14. const char *kptype_name(const kptype_t *ptype);
  15. const char *kptype_help(const kptype_t *ptype);
  16. bool_t kptype_set_help(kptype_t *ptype, const char *help);
  17. // ACTIONs
  18. faux_list_t *kptype_actions(const kptype_t *ptype);
  19. bool_t kptype_add_actions(kptype_t *plugin, kaction_t *action);
  20. ssize_t kptype_actions_len(const kptype_t *plugin);
  21. kptype_actions_node_t *kptype_actions_iter(const kptype_t *plugin);
  22. kaction_t *kptype_actions_each(kptype_actions_node_t **iter);
  23. C_DECL_END
  24. #endif // _klish_kptype_h