56 #define WM_MSG_TYPE_NUM 2
61 bool (*
cmp_fn)(
const void *
a,
const void *b);
169 const char *id_repr);
173 const char *id_repr);
202 # define _WM_MESSAGE_EXTERN_BEGIN \
203 _Pragma("GCC diagnostic push"); \
204 _Pragma("GCC diagnostic ignored \"-Wredundant-decls\"");
205 # define _WM_MESSAGE_EXTERN_END _Pragma("GCC diagnostic pop");
207 # define _WM_MESSAGE_EXTERN_BEGIN
208 # define _WM_MESSAGE_EXTERN_END
223 const char *id_repr);
228 const char *id_repr);
234 const char *id_repr);
237 #define WM_msg_publish_rna_prop(mbus, id_, data_, type_, prop_) \
239 wmMsgParams_RNA msg_key_params_ = {{0}}; \
240 _WM_MESSAGE_EXTERN_BEGIN; \
241 extern PropertyRNA rna_##type_##_##prop_; \
242 _WM_MESSAGE_EXTERN_END; \
243 RNA_pointer_create(id_, &RNA_##type_, data_, &msg_key_params_.ptr); \
244 msg_key_params_.prop = &rna_##type_##_##prop_; \
245 WM_msg_publish_rna_params(mbus, &msg_key_params_); \
248 #define WM_msg_subscribe_rna_prop(mbus, id_, data_, type_, prop_, value) \
250 wmMsgParams_RNA msg_key_params_ = {{0}}; \
251 _WM_MESSAGE_EXTERN_BEGIN; \
252 extern PropertyRNA rna_##type_##_##prop_; \
253 _WM_MESSAGE_EXTERN_END; \
254 RNA_pointer_create(id_, &RNA_##type_, data_, &msg_key_params_.ptr); \
255 msg_key_params_.prop = &rna_##type_##_##prop_; \
256 WM_msg_subscribe_rna_params(mbus, &msg_key_params_, value, __func__); \
261 #define WM_msg_subscribe_rna_anon_type(mbus, type_, value) \
263 WM_msg_subscribe_rna_params(mbus, \
264 &(const wmMsgParams_RNA){ \
267 .type = &RNA_##type_, \
275 #define WM_msg_subscribe_rna_anon_prop(mbus, type_, prop_, value) \
277 _WM_MESSAGE_EXTERN_BEGIN; \
278 extern PropertyRNA rna_##type_##_##prop_; \
279 _WM_MESSAGE_EXTERN_END; \
280 WM_msg_subscribe_rna_params(mbus, \
281 &(const wmMsgParams_RNA){ \
284 .type = &RNA_##type_, \
286 .prop = &rna_##type_##_##prop_, \
struct wmMsgSubscribeKey * next
struct wmMsgSubscribeKey * prev
struct wmMsgSubscribeValueLink * prev
wmMsgSubscribeValue params
struct wmMsgSubscribeValueLink * next
wmMsgSubscribeValueFreeDataFn free_data
wmMsgSubscribeValueUpdateIdFn update_id
struct wmMsgSubscribe * next
struct wmMsgSubscribe * prev
void(* remove_by_id)(struct wmMsgBus *mbus, const struct ID *id)
void(* update_by_id)(struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst)
void(* repr)(FILE *stream, const struct wmMsgSubscribeKey *msg_key)
unsigned int(* hash_fn)(const void *msg)
struct wmMsgTypeInfo::@1166 gset
void(* key_free_fn)(void *key)
bool(* cmp_fn)(const void *a, const void *b)
wmMsgParams_Static params
struct wmMsgSubscribeValueLink wmMsgSubscribeValueLink
struct wmMsgSubscribeKey wmMsgSubscribeKey
void WM_msg_subscribe_rna_params(struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void WM_msg_publish_rna_params(struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
struct wmMsgParams_RNA wmMsgParams_RNA
void WM_msg_publish_static(struct wmMsgBus *mbus, int event)
struct wmMsg_RNA wmMsg_RNA
void WM_msg_id_update(struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst)
void(* wmMsgSubscribeValueFreeDataFn)(struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
wmMsgSubscribeKey_RNA * WM_msg_lookup_rna(struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
struct wmMsgSubscribeKey_RNA wmMsgSubscribeKey_RNA
void WM_msgtypeinfo_init_rna(wmMsgTypeInfo *msgtype_info)
void WM_msg_subscribe_static(struct wmMsgBus *mbus, int event, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void WM_msgbus_clear_by_owner(struct wmMsgBus *mbus, void *owner)
void WM_msgtypeinfo_init_static(wmMsgTypeInfo *msgtype_info)
@ WM_MSG_STATICTYPE_WINDOW_DRAW
@ WM_MSG_STATICTYPE_FILE_READ
@ WM_MSG_STATICTYPE_SCREEN_EDIT
void WM_msg_publish_static_params(struct wmMsgBus *mbus, const wmMsgParams_Static *msg_key_params)
void WM_msg_subscribe_ID(struct wmMsgBus *mbus, struct ID *id, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void WM_msg_publish_ID(struct wmMsgBus *mbus, struct ID *id)
void WM_msgbus_destroy(struct wmMsgBus *mbus)
struct wmMsg_Static wmMsg_Static
struct wmMsgTypeInfo wmMsgTypeInfo
void WM_msg_publish_rna(struct wmMsgBus *mbus, PointerRNA *ptr, PropertyRNA *prop)
struct wmMsgSubscribeValue wmMsgSubscribeValue
wmMsgSubscribeKey_Static * WM_msg_lookup_static(struct wmMsgBus *mbus, const wmMsgParams_Static *msg_key_params)
void WM_msg_dump(struct wmMsgBus *mbus, const char *info)
void WM_msgbus_types_init(void)
struct wmMsgParams_Static wmMsgParams_Static
void WM_msg_publish_with_key(struct wmMsgBus *mbus, wmMsgSubscribeKey *msg_key)
void WM_msg_id_remove(struct wmMsgBus *mbus, const struct ID *id)
void(* wmMsgNotifyFn)(struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
wmMsgSubscribeKey * WM_msg_subscribe_with_key(struct wmMsgBus *mbus, const wmMsgSubscribeKey *msg_key_test, const wmMsgSubscribeValue *msg_val_params)
void(* wmMsgSubscribeValueUpdateIdFn)(struct bContext *C, struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst, struct wmMsgSubscribeValue *msg_val)
void WM_msg_subscribe_static_params(struct wmMsgBus *mbus, const wmMsgParams_Static *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
void WM_msgbus_handle(struct wmMsgBus *mbus, struct bContext *C)
struct wmMsgSubscribeKey_Static wmMsgSubscribeKey_Static
struct wmMsgBus * WM_msgbus_create(void)
void WM_msg_subscribe_rna(struct wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)