Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
wm_message_bus.h File Reference
#include "RNA_prototypes.h"
#include "RNA_types.h"
#include <stdio.h>

Go to the source code of this file.

Classes

struct  wmMsgTypeInfo
 
struct  wmMsg
 
struct  wmMsgSubscribeKey
 
struct  wmMsgSubscribeValue
 
struct  wmMsgSubscribeValueLink
 
struct  wmMsgParams_Static
 
struct  wmMsg_Static
 
struct  wmMsgSubscribeKey_Static
 
struct  wmMsgParams_RNA
 
struct  wmMsg_RNA
 
struct  wmMsgSubscribeKey_RNA
 

Macros

#define WM_MSG_TYPE_NUM   2
 
#define WM_msg_publish_rna_prop(mbus, id_, data_, type_, prop_)
 
#define WM_msg_subscribe_rna_prop(mbus, id_, data_, type_, prop_, value)
 
#define WM_msg_subscribe_rna_anon_type(mbus, type_, value)
 
#define WM_msg_subscribe_rna_anon_prop(mbus, type_, prop_, value)
 

Typedefs

typedef void(* wmMsgNotifyFn) (struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
 
typedef void(* wmMsgSubscribeValueFreeDataFn) (struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)
 
typedef void(* wmMsgSubscribeValueUpdateIdFn) (struct bContext *C, struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst, struct wmMsgSubscribeValue *msg_val)
 
typedef struct wmMsgTypeInfo wmMsgTypeInfo
 
typedef struct wmMsg wmMsg
 
typedef struct wmMsgSubscribeKey wmMsgSubscribeKey
 
typedef struct wmMsgSubscribeValue wmMsgSubscribeValue
 
typedef struct wmMsgSubscribeValueLink wmMsgSubscribeValueLink
 
typedef struct wmMsgParams_Static wmMsgParams_Static
 
typedef struct wmMsg_Static wmMsg_Static
 
typedef struct wmMsgSubscribeKey_Static wmMsgSubscribeKey_Static
 
typedef struct wmMsgParams_RNA wmMsgParams_RNA
 
typedef struct wmMsg_RNA wmMsg_RNA
 
typedef struct wmMsgSubscribeKey_RNA wmMsgSubscribeKey_RNA
 

Enumerations

enum  { WM_MSG_TYPE_RNA = 0 , WM_MSG_TYPE_STATIC = 1 }
 
enum  { WM_MSG_STATICTYPE_WINDOW_DRAW = 0 , WM_MSG_STATICTYPE_SCREEN_EDIT = 1 , WM_MSG_STATICTYPE_FILE_READ = 2 }
 

Functions

void WM_msgbus_types_init (void)
 
struct wmMsgBusWM_msgbus_create (void)
 
void WM_msgbus_destroy (struct wmMsgBus *mbus)
 
void WM_msgbus_clear_by_owner (struct wmMsgBus *mbus, void *owner)
 
void WM_msg_dump (struct wmMsgBus *mbus, const char *info)
 
void WM_msgbus_handle (struct wmMsgBus *mbus, struct bContext *C)
 
void WM_msg_publish_with_key (struct wmMsgBus *mbus, wmMsgSubscribeKey *msg_key)
 
wmMsgSubscribeKeyWM_msg_subscribe_with_key (struct wmMsgBus *mbus, const wmMsgSubscribeKey *msg_key_test, const wmMsgSubscribeValue *msg_val_params)
 
void WM_msg_id_update (struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst)
 
void WM_msg_id_remove (struct wmMsgBus *mbus, const struct ID *id)
 
void WM_msgtypeinfo_init_static (wmMsgTypeInfo *msgtype_info)
 
wmMsgSubscribeKey_StaticWM_msg_lookup_static (struct wmMsgBus *mbus, const wmMsgParams_Static *msg_key_params)
 
void WM_msg_publish_static_params (struct wmMsgBus *mbus, const wmMsgParams_Static *msg_key_params)
 
void WM_msg_publish_static (struct wmMsgBus *mbus, int event)
 
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_msg_subscribe_static (struct wmMsgBus *mbus, int event, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
 
void WM_msgtypeinfo_init_rna (wmMsgTypeInfo *msgtype_info)
 
wmMsgSubscribeKey_RNAWM_msg_lookup_rna (struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
 
void WM_msg_publish_rna_params (struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params)
 
void WM_msg_publish_rna (struct wmMsgBus *mbus, PointerRNA *ptr, PropertyRNA *prop)
 
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_subscribe_rna (struct wmMsgBus *mbus, PointerRNA *ptr, const PropertyRNA *prop, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)
 
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)
 

Macro Definition Documentation

◆ WM_msg_publish_rna_prop

#define WM_msg_publish_rna_prop (   mbus,
  id_,
  data_,
  type_,
  prop_ 
)
Value:
{ \
wmMsgParams_RNA msg_key_params_ = {{0}}; \
RNA_pointer_create(id_, &RNA_##type_, data_, &msg_key_params_.ptr); \
msg_key_params_.prop = &rna_##type_##_##prop_; \
WM_msg_publish_rna_params(mbus, &msg_key_params_); \
} \
((void)0)
SyclQueue void void size_t num_bytes void
T * data_
Definition: eval_output.h:163

Definition at line 224 of file wm_message_bus.h.

◆ WM_msg_subscribe_rna_anon_prop

#define WM_msg_subscribe_rna_anon_prop (   mbus,
  type_,
  prop_,
  value 
)
Value:
{ \
PointerRNA msg_ptr_ = {0, &RNA_##type_}; \
wmMsgParams_RNA msg_key_params_ = {{0}}; \
msg_key_params_.ptr = msg_ptr_; \
msg_key_params_.prop = &rna_##type_##_##prop_; \
WM_msg_subscribe_rna_params(mbus, &msg_key_params_, value, __func__); \
} \
((void)0)
void WM_msg_subscribe_rna_params(struct wmMsgBus *mbus, const wmMsgParams_RNA *msg_key_params, const wmMsgSubscribeValue *msg_val_params, const char *id_repr)

Definition at line 251 of file wm_message_bus.h.

◆ WM_msg_subscribe_rna_anon_type

#define WM_msg_subscribe_rna_anon_type (   mbus,
  type_,
  value 
)
Value:
{ \
PointerRNA msg_ptr_ = {0, &RNA_##type_}; \
wmMsgParams_RNA msg_key_params_ = {{0}}; \
msg_key_params_.ptr = msg_ptr_; \
WM_msg_subscribe_rna_params(mbus, &msg_key_params_, value, __func__); \
} \
((void)0)

Definition at line 242 of file wm_message_bus.h.

◆ WM_msg_subscribe_rna_prop

#define WM_msg_subscribe_rna_prop (   mbus,
  id_,
  data_,
  type_,
  prop_,
  value 
)
Value:
{ \
wmMsgParams_RNA msg_key_params_ = {{0}}; \
RNA_pointer_create(id_, &RNA_##type_, data_, &msg_key_params_.ptr); \
msg_key_params_.prop = &rna_##type_##_##prop_; \
WM_msg_subscribe_rna_params(mbus, &msg_key_params_, value, __func__); \
} \
((void)0)

Definition at line 232 of file wm_message_bus.h.

◆ WM_MSG_TYPE_NUM

#define WM_MSG_TYPE_NUM   2

Definition at line 43 of file wm_message_bus.h.

Typedef Documentation

◆ wmMsg

typedef struct wmMsg wmMsg

◆ wmMsg_RNA

typedef struct wmMsg_RNA wmMsg_RNA

◆ wmMsg_Static

typedef struct wmMsg_Static wmMsg_Static

◆ wmMsgNotifyFn

typedef void(* wmMsgNotifyFn) (struct bContext *C, struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)

Definition at line 27 of file wm_message_bus.h.

◆ wmMsgParams_RNA

◆ wmMsgParams_Static

◆ wmMsgSubscribeKey

◆ wmMsgSubscribeKey_RNA

◆ wmMsgSubscribeKey_Static

◆ wmMsgSubscribeValue

One of many in wmMsgSubscribeKey.values

◆ wmMsgSubscribeValueFreeDataFn

typedef void(* wmMsgSubscribeValueFreeDataFn) (struct wmMsgSubscribeKey *msg_key, struct wmMsgSubscribeValue *msg_val)

Definition at line 30 of file wm_message_bus.h.

◆ wmMsgSubscribeValueLink

One of many in wmMsgSubscribeKey.values

◆ wmMsgSubscribeValueUpdateIdFn

typedef void(* wmMsgSubscribeValueUpdateIdFn) (struct bContext *C, struct wmMsgBus *mbus, struct ID *id_src, struct ID *id_dst, struct wmMsgSubscribeValue *msg_val)

Definition at line 34 of file wm_message_bus.h.

◆ wmMsgTypeInfo

typedef struct wmMsgTypeInfo wmMsgTypeInfo

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
WM_MSG_TYPE_RNA 
WM_MSG_TYPE_STATIC 

Definition at line 39 of file wm_message_bus.h.

◆ anonymous enum

anonymous enum
Enumerator
WM_MSG_STATICTYPE_WINDOW_DRAW 
WM_MSG_STATICTYPE_SCREEN_EDIT 
WM_MSG_STATICTYPE_FILE_READ 

Definition at line 134 of file wm_message_bus.h.

Function Documentation

◆ WM_msg_dump()

void WM_msg_dump ( struct wmMsgBus mbus,
const char *  info 
)

◆ WM_msg_id_remove()

void WM_msg_id_remove ( struct wmMsgBus mbus,
const struct ID id 
)

◆ WM_msg_id_update()

void WM_msg_id_update ( struct wmMsgBus mbus,
struct ID id_src,
struct ID id_dst 
)

◆ WM_msg_lookup_rna()

wmMsgSubscribeKey_RNA* WM_msg_lookup_rna ( struct wmMsgBus mbus,
const wmMsgParams_RNA msg_key_params 
)

◆ WM_msg_lookup_static()

wmMsgSubscribeKey_Static* WM_msg_lookup_static ( struct wmMsgBus mbus,
const wmMsgParams_Static msg_key_params 
)

◆ WM_msg_publish_ID()

void WM_msg_publish_ID ( struct wmMsgBus mbus,
struct ID id 
)

◆ WM_msg_publish_rna()

void WM_msg_publish_rna ( struct wmMsgBus mbus,
PointerRNA ptr,
PropertyRNA prop 
)

Definition at line 262 of file wm_message_bus_rna.c.

References ptr, and WM_msg_publish_rna_params().

Referenced by rna_property_update().

◆ WM_msg_publish_rna_params()

void WM_msg_publish_rna_params ( struct wmMsgBus mbus,
const wmMsgParams_RNA msg_key_params 
)

◆ WM_msg_publish_static()

void WM_msg_publish_static ( struct wmMsgBus mbus,
int  event 
)

Definition at line 90 of file wm_message_bus_static.c.

References WM_msg_publish_static_params().

Referenced by wm_file_read_post().

◆ WM_msg_publish_static_params()

void WM_msg_publish_static_params ( struct wmMsgBus mbus,
const wmMsgParams_Static msg_key_params 
)

◆ WM_msg_publish_with_key()

void WM_msg_publish_with_key ( struct wmMsgBus mbus,
wmMsgSubscribeKey msg_key 
)

◆ WM_msg_subscribe_ID()

void WM_msg_subscribe_ID ( struct wmMsgBus mbus,
struct ID id,
const wmMsgSubscribeValue msg_val_params,
const char *  id_repr 
)

◆ WM_msg_subscribe_rna()

void WM_msg_subscribe_rna ( struct wmMsgBus mbus,
PointerRNA ptr,
const PropertyRNA prop,
const wmMsgSubscribeValue msg_val_params,
const char *  id_repr 
)

◆ WM_msg_subscribe_rna_params()

void WM_msg_subscribe_rna_params ( struct wmMsgBus mbus,
const wmMsgParams_RNA msg_key_params,
const wmMsgSubscribeValue msg_val_params,
const char *  id_repr 
)

◆ WM_msg_subscribe_static()

void WM_msg_subscribe_static ( struct wmMsgBus mbus,
int  event,
const wmMsgSubscribeValue msg_val_params,
const char *  id_repr 
)

Definition at line 114 of file wm_message_bus_static.c.

References WM_msg_subscribe_static_params().

◆ WM_msg_subscribe_static_params()

void WM_msg_subscribe_static_params ( struct wmMsgBus mbus,
const wmMsgParams_Static msg_key_params,
const wmMsgSubscribeValue msg_val_params,
const char *  id_repr 
)

◆ WM_msg_subscribe_with_key()

wmMsgSubscribeKey* WM_msg_subscribe_with_key ( struct wmMsgBus mbus,
const wmMsgSubscribeKey msg_key_test,
const wmMsgSubscribeValue msg_val_params 
)
Parameters
msg_key_testNeeds following wmMsgSubscribeKey fields filled in:
  • msg.params
  • msg.head.type
  • msg.head.id .. other values should be zeroed.
Returns
The key for this subscription. note that this is only needed in rare cases when the key needs further manipulation.

Definition at line 136 of file wm_message_bus.c.

References BLI_addtail(), BLI_assert, BLI_gset_ensure_p_ex(), LISTBASE_FOREACH, MEM_mallocN, wmMsgBus::messages, wmMsgBus::messages_gset, wmMsgTypeInfo::msg_key_size, wmMsgSubscribeValue::notify, NULL, wmMsgSubscribeValue::owner, wmMsgSubscribeValueLink::params, type, wmMsg::type, wmMsgSubscribeValue::user_data, wmMsgSubscribeKey::values, wm_msg_subscribe_value_msg_cast(), and wm_msg_types.

Referenced by WM_msg_subscribe_rna_params(), and WM_msg_subscribe_static_params().

◆ WM_msgbus_clear_by_owner()

void WM_msgbus_clear_by_owner ( struct wmMsgBus mbus,
void owner 
)

◆ WM_msgbus_create()

struct wmMsgBus* WM_msgbus_create ( void  )

◆ WM_msgbus_destroy()

void WM_msgbus_destroy ( struct wmMsgBus mbus)

◆ WM_msgbus_handle()

void WM_msgbus_handle ( struct wmMsgBus mbus,
struct bContext C 
)

◆ WM_msgbus_types_init()

void WM_msgbus_types_init ( void  )

Definition at line 36 of file wm_message_bus.c.

References wm_msg_init_fn, WM_MSG_TYPE_NUM, and wm_msg_types.

Referenced by WM_init().

◆ WM_msgtypeinfo_init_rna()

void WM_msgtypeinfo_init_rna ( wmMsgTypeInfo msgtype_info)

◆ WM_msgtypeinfo_init_static()

void WM_msgtypeinfo_init_static ( wmMsgTypeInfo msgtype_info)