81 screen =
reinterpret_cast<bScreen *
>(screen->id.next)) {
122 sync_types->
object = !sequence_view;
125 sync_types->
sequence = sequence_view;
142 sync_types->
object = !sequence_view &&
208 GSet *selected_objects)
229 GSet *selected_ebones)
234 short bone_flag = ebone->flag;
250 if (bone_flag != ebone->flag) {
259 GSet *selected_pbones)
265 short bone_flag = pchan->
bone->
flag;
279 if (bone_flag != pchan->
bone->
flag) {
334 scene, view_layer, &te->subtree, sync_types, selected_items);
361 scene, view_layer, &space_outliner->
tree, &sync_types, &selected_items);
391 const bool is_selected = (base !=
nullptr) && ((base->flag &
BASE_SELECTED) != 0);
393 if (base && (ob == obact)) {
414 if (ebone == ebone_active) {
436 if (pchan == pchan_active) {
455 if (seq == sequence_active) {
517 view_layer, space_outliner, &te->subtree, active_data, sync_types);
537 C, space_outliner, &sync_types);
547 view_layer, space_outliner, &space_outliner->
tree, &active_data, &sync_types);
#define PBONE_SELECTABLE(arm, bone)
struct Scene * CTX_data_scene(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct EditBone * CTX_data_active_bone(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct bPoseChannel * CTX_data_active_pose_bone(const bContext *C)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
bool BLI_gset_haskey(const GSet *gs, const void *key) ATTR_WARN_UNUSED_RESULT
unsigned int BLI_ghashutil_ptrhash(const void *key)
GSet * BLI_gset_new(GSetHashFP hashfp, GSetCmpFP cmpfp, const char *info) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
bool BLI_ghashutil_ptrcmp(const void *a, const void *b)
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
bool BLI_gset_add(GSet *gs, void *key)
#define LISTBASE_FOREACH(type, var, list)
void DEG_id_tag_update(struct ID *id, int flag)
#define OBEDIT_FROM_VIEW_LAYER(view_layer)
#define OBACT(_view_layer)
@ WM_OUTLINER_SYNC_SELECT_FROM_SEQUENCE
@ WM_OUTLINER_SYNC_SELECT_FROM_OBJECT
@ WM_OUTLINER_SYNC_SELECT_FROM_EDIT_BONE
@ WM_OUTLINER_SYNC_SELECT_FROM_POSE_BONE
#define WM_OUTLINER_SYNC_SELECT_FROM_ALL
#define EBONE_SELECTABLE(arm, ebone)
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode)
void ED_armature_ebone_select_set(EditBone *ebone, bool select)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void outliner_viewcontext_init(const struct bContext *C, TreeViewContext *tvc)
static void selected_items_free(SelectedItems *selected_items)
void outliner_sync_selection(const bContext *C, SpaceOutliner *space_outliner)
void ED_outliner_select_sync_from_object_tag(bContext *C)
void ED_outliner_select_sync_from_edit_bone_tag(bContext *C)
static void outliner_sync_selection_from_outliner(Scene *scene, ViewLayer *view_layer, ListBase *tree, const SyncSelectTypes *sync_types, SelectedItems *selected_items)
static bool is_object_selected(GSet *selected_objects, Base *base)
static void outliner_select_sync_to_object(ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, GSet *selected_objects)
static bool is_pose_bone_selected(GSet *selected_pbones, bPoseChannel *pchan)
void ED_outliner_select_sync_from_pose_bone_tag(bContext *C)
static void add_selected_item(GSet *selected, void *data)
static void outliner_select_sync_from_object(ViewLayer *view_layer, Object *obact, TreeElement *te, TreeStoreElem *tselem)
void ED_outliner_select_sync_from_outliner(bContext *C, SpaceOutliner *space_outliner)
static void outliner_sync_select_from_outliner_set_types(bContext *C, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
static bool is_edit_bone_selected(GSet *selected_ebones, EditBone *ebone)
static bool outliner_sync_select_to_outliner_set_types(const bContext *C, SpaceOutliner *space_outliner, SyncSelectTypes *sync_types)
static void outliner_sync_selection_to_outliner(ViewLayer *view_layer, SpaceOutliner *space_outliner, ListBase *tree, SyncSelectActiveData *active_data, const SyncSelectTypes *sync_types)
static void outliner_select_sync_from_pose_bone(bPoseChannel *pchan_active, TreeElement *te, TreeStoreElem *tselem)
void ED_outliner_select_sync_from_all_tag(bContext *C)
static void outliner_select_sync_from_sequence(Sequence *sequence_active, TreeStoreElem *tselem)
void ED_outliner_select_sync_from_sequence_tag(bContext *C)
static void get_sync_select_active_data(const bContext *C, SyncSelectActiveData *active_data)
static void outliner_select_sync_from_edit_bone(EditBone *ebone_active, TreeElement *te, TreeStoreElem *tselem)
bool ED_outliner_select_sync_is_dirty(const bContext *C)
static void selected_items_init(SelectedItems *selected_items)
static void outliner_select_sync_to_pose_bone(TreeElement *te, TreeStoreElem *tselem, GSet *selected_pbones)
static void outliner_select_sync_to_sequence(Scene *scene, TreeStoreElem *tselem)
static void outliner_select_sync_to_edit_bone(ViewLayer *view_layer, TreeElement *te, TreeStoreElem *tselem, GSet *selected_ebones)
void ED_outliner_select_sync_flag_outliners(const bContext *C)
Sequence * SEQ_select_active_get(Scene *scene)
void SEQ_select_active_set(Scene *scene, Sequence *seq)
bPoseChannel * pose_channel
short outliner_sync_select_dirty
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)