Blender V4.3
screen_context.cc File Reference
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_gpencil_legacy_types.h"
#include "DNA_grease_pencil_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_sequence_types.h"
#include "DNA_space_types.h"
#include "DNA_windowmanager_types.h"
#include "DNA_workspace_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BKE_action.hh"
#include "BKE_armature.hh"
#include "BKE_blender.hh"
#include "BKE_context.hh"
#include "BKE_gpencil_legacy.h"
#include "BKE_layer.hh"
#include "BKE_object.hh"
#include "BKE_tracking.h"
#include "RNA_access.hh"
#include "RNA_prototypes.hh"
#include "ED_anim_api.hh"
#include "ED_armature.hh"
#include "ED_clip.hh"
#include "ED_gpencil_legacy.hh"
#include "SEQ_channels.hh"
#include "SEQ_select.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_transform.hh"
#include "UI_interface.hh"
#include "WM_api.hh"
#include "ANIM_bone_collections.hh"
#include "screen_intern.hh"

Go to the source code of this file.

Typedefs

using context_callback = eContextResult (*)(const bContext *C, bContextDataResult *result)
 

Functions

static eContextResult screen_ctx_scene (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_visible_objects (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selectable_objects (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_objects (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_objects (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_editable_objects (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_objects_in_mode (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_objects_in_mode_unique_data (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_visible_or_editable_bones_ (const bContext *C, bContextDataResult *result, const bool editable_bones)
 
static eContextResult screen_ctx_visible_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_editable_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_bones_ (const bContext *C, bContextDataResult *result, const bool selected_editable_bones)
 
static eContextResult screen_ctx_selected_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_visible_pose_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_pose_bones (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_pose_bones_from_active_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_bone (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_pose_bone (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_property (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_edit_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_sculpt_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_vertex_paint_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_weight_paint_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_image_paint_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_particle_edit_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_pose_object (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_sequence_strip (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_sequences (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_sequences (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_sequences (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_nla_track (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_nla_strip (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_nla_strips (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_movieclip_tracks (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_annotation_data (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_annotation_data_owner (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_annotation_layer (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_grease_pencil_data (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_operator (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_sel_actions_impl (const bContext *C, bContextDataResult *result, bool active_only, bool editable)
 
static eContextResult screen_ctx_active_action (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_visible_actions (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_actions (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_sel_edit_fcurves_ (const bContext *C, bContextDataResult *result, const int extra_filter)
 
static eContextResult screen_ctx_editable_fcurves (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_visible_fcurves (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_fcurves (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_visible_fcurves (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_editable_fcurve (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_selected_editable_keyframes (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_asset_library (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_ui_list (const bContext *C, bContextDataResult *result)
 
static void free_context_function_ghash (void *)
 
static void register_context_function (const char *member, context_callback function)
 
static void ensure_ed_screen_context_functions ()
 
int ed_screen_context (const bContext *C, const char *member, bContextDataResult *result)
 

Variables

const char * screen_context_dir []
 
static GHashed_screen_context_functions = nullptr
 

Typedef Documentation

◆ context_callback

Definition at line 1139 of file screen_context.cc.

Function Documentation

◆ ed_screen_context()

int ed_screen_context ( const bContext * C,
const char * member,
bContextDataResult * result )

◆ ensure_ed_screen_context_functions()

static void ensure_ed_screen_context_functions ( )
static

Definition at line 1152 of file screen_context.cc.

References BKE_blender_atexit_register(), BLI_ghash_new(), BLI_ghashutil_strcmp(), BLI_ghashutil_strhash_p_murmur(), ed_screen_context_functions, free_context_function_ghash(), register_context_function(), screen_ctx_active_action(), screen_ctx_active_annotation_layer(), screen_ctx_active_bone(), screen_ctx_active_editable_fcurve(), screen_ctx_active_nla_strip(), screen_ctx_active_nla_track(), screen_ctx_active_object(), screen_ctx_active_operator(), screen_ctx_active_pose_bone(), screen_ctx_active_sequence_strip(), screen_ctx_annotation_data(), screen_ctx_annotation_data_owner(), screen_ctx_asset_library(), screen_ctx_edit_object(), screen_ctx_editable_bones(), screen_ctx_editable_fcurves(), screen_ctx_editable_objects(), screen_ctx_grease_pencil_data(), screen_ctx_image_paint_object(), screen_ctx_object(), screen_ctx_objects_in_mode(), screen_ctx_objects_in_mode_unique_data(), screen_ctx_particle_edit_object(), screen_ctx_pose_object(), screen_ctx_property(), screen_ctx_scene(), screen_ctx_sculpt_object(), screen_ctx_selectable_objects(), screen_ctx_selected_bones(), screen_ctx_selected_editable_actions(), screen_ctx_selected_editable_bones(), screen_ctx_selected_editable_fcurves(), screen_ctx_selected_editable_keyframes(), screen_ctx_selected_editable_objects(), screen_ctx_selected_editable_sequences(), screen_ctx_selected_movieclip_tracks(), screen_ctx_selected_nla_strips(), screen_ctx_selected_objects(), screen_ctx_selected_pose_bones(), screen_ctx_selected_pose_bones_from_active_object(), screen_ctx_selected_sequences(), screen_ctx_selected_visible_actions(), screen_ctx_selected_visible_fcurves(), screen_ctx_sequences(), screen_ctx_ui_list(), screen_ctx_vertex_paint_object(), screen_ctx_visible_bones(), screen_ctx_visible_fcurves(), screen_ctx_visible_objects(), screen_ctx_visible_pose_bones(), and screen_ctx_weight_paint_object().

Referenced by ed_screen_context().

◆ free_context_function_ghash()

static void free_context_function_ghash ( void * )
static

◆ register_context_function()

static void register_context_function ( const char * member,
context_callback function )
inlinestatic

◆ screen_ctx_active_action()

static eContextResult screen_ctx_active_action ( const bContext * C,
bContextDataResult * result )
static

Definition at line 980 of file screen_context.cc.

References screen_ctx_sel_actions_impl().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_active_annotation_layer()

◆ screen_ctx_active_bone()

◆ screen_ctx_active_editable_fcurve()

◆ screen_ctx_active_nla_strip()

static eContextResult screen_ctx_active_nla_strip ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_active_nla_track()

static eContextResult screen_ctx_active_nla_track ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_active_object()

◆ screen_ctx_active_operator()

◆ screen_ctx_active_pose_bone()

◆ screen_ctx_active_sequence_strip()

static eContextResult screen_ctx_active_sequence_strip ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_annotation_data()

◆ screen_ctx_annotation_data_owner()

◆ screen_ctx_asset_library()

static eContextResult screen_ctx_asset_library ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_edit_object()

◆ screen_ctx_editable_bones()

static eContextResult screen_ctx_editable_bones ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_editable_fcurves()

static eContextResult screen_ctx_editable_fcurves ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_editable_objects()

◆ screen_ctx_grease_pencil_data()

◆ screen_ctx_image_paint_object()

◆ screen_ctx_object()

◆ screen_ctx_objects_in_mode()

◆ screen_ctx_objects_in_mode_unique_data()

◆ screen_ctx_particle_edit_object()

◆ screen_ctx_pose_object()

◆ screen_ctx_property()

◆ screen_ctx_scene()

static eContextResult screen_ctx_scene ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_sculpt_object()

◆ screen_ctx_sel_actions_impl()

◆ screen_ctx_sel_edit_fcurves_()

◆ screen_ctx_selectable_objects()

◆ screen_ctx_selected_bones()

static eContextResult screen_ctx_selected_bones ( const bContext * C,
bContextDataResult * result )
static

Definition at line 390 of file screen_context.cc.

References screen_ctx_selected_bones_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_selected_bones_()

◆ screen_ctx_selected_editable_actions()

static eContextResult screen_ctx_selected_editable_actions ( const bContext * C,
bContextDataResult * result )
static

Definition at line 989 of file screen_context.cc.

References screen_ctx_sel_actions_impl().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_selected_editable_bones()

static eContextResult screen_ctx_selected_editable_bones ( const bContext * C,
bContextDataResult * result )
static

Definition at line 394 of file screen_context.cc.

References screen_ctx_selected_bones_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_selected_editable_fcurves()

static eContextResult screen_ctx_selected_editable_fcurves ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_selected_editable_keyframes()

◆ screen_ctx_selected_editable_objects()

◆ screen_ctx_selected_editable_sequences()

◆ screen_ctx_selected_movieclip_tracks()

◆ screen_ctx_selected_nla_strips()

◆ screen_ctx_selected_objects()

◆ screen_ctx_selected_pose_bones()

◆ screen_ctx_selected_pose_bones_from_active_object()

◆ screen_ctx_selected_sequences()

◆ screen_ctx_selected_visible_actions()

static eContextResult screen_ctx_selected_visible_actions ( const bContext * C,
bContextDataResult * result )
static

Definition at line 984 of file screen_context.cc.

References screen_ctx_sel_actions_impl().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_selected_visible_fcurves()

static eContextResult screen_ctx_selected_visible_fcurves ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_sequences()

◆ screen_ctx_ui_list()

◆ screen_ctx_vertex_paint_object()

◆ screen_ctx_visible_bones()

static eContextResult screen_ctx_visible_bones ( const bContext * C,
bContextDataResult * result )
static

◆ screen_ctx_visible_fcurves()

static eContextResult screen_ctx_visible_fcurves ( const bContext * C,
bContextDataResult * result )
static

Definition at line 1028 of file screen_context.cc.

References screen_ctx_sel_edit_fcurves_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_visible_objects()

◆ screen_ctx_visible_or_editable_bones_()

◆ screen_ctx_visible_pose_bones()

◆ screen_ctx_weight_paint_object()

Variable Documentation

◆ ed_screen_context_functions

GHash* ed_screen_context_functions = nullptr
static

◆ screen_context_dir

const char* screen_context_dir[]

Definition at line 62 of file screen_context.cc.

Referenced by ed_screen_context().