2000-12-04 19:53:04 -05:00
|
|
|
#ifndef __EXPANDOS_H
|
|
|
|
#define __EXPANDOS_H
|
|
|
|
|
2000-12-17 02:39:22 -05:00
|
|
|
#include "signals.h"
|
2000-12-04 19:53:04 -05:00
|
|
|
|
|
|
|
/* first argument of signal must match to active .. */
|
|
|
|
typedef enum {
|
|
|
|
EXPANDO_ARG_NONE,
|
|
|
|
EXPANDO_ARG_SERVER,
|
|
|
|
EXPANDO_ARG_WINDOW,
|
|
|
|
EXPANDO_ARG_WINDOW_ITEM,
|
|
|
|
|
|
|
|
EXPANDO_NEVER /* special: expando never changes */
|
|
|
|
} ExpandoArg;
|
|
|
|
|
|
|
|
typedef char* (*EXPANDO_FUNC)
|
|
|
|
(SERVER_REC *server, void *item, int *free_ret);
|
|
|
|
|
|
|
|
/* Create expando - overrides any existing ones.
|
|
|
|
... = signal, type, ..., NULL - list of signals that might change the
|
|
|
|
value of this expando */
|
|
|
|
void expando_create(const char *key, EXPANDO_FUNC func, ...);
|
|
|
|
/* Add new signal to expando */
|
|
|
|
void expando_add_signal(const char *key, const char *signal, ExpandoArg arg);
|
|
|
|
/* Destroy expando */
|
|
|
|
void expando_destroy(const char *key, EXPANDO_FUNC func);
|
|
|
|
|
2000-12-17 02:39:22 -05:00
|
|
|
void expando_bind(const char *key, int funccount, SIGNAL_FUNC *funcs);
|
|
|
|
void expando_unbind(const char *key, int funccount, SIGNAL_FUNC *funcs);
|
|
|
|
|
2000-12-04 19:53:04 -05:00
|
|
|
/* internal: */
|
|
|
|
EXPANDO_FUNC expando_find_char(char chr);
|
|
|
|
EXPANDO_FUNC expando_find_long(const char *key);
|
|
|
|
|
|
|
|
void expandos_init(void);
|
|
|
|
void expandos_deinit(void);
|
|
|
|
|
|
|
|
#endif
|