Blender  V3.3
Typedefs | Functions | Variables
screen_context.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_gpencil_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.h"
#include "BKE_armature.h"
#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_gpencil.h"
#include "BKE_layer.h"
#include "BKE_object.h"
#include "BKE_tracking.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_clip.h"
#include "ED_gpencil.h"
#include "SEQ_channels.h"
#include "SEQ_select.h"
#include "SEQ_sequencer.h"
#include "SEQ_transform.h"
#include "UI_interface.h"
#include "WM_api.h"
#include "screen_intern.h"

Go to the source code of this file.

Typedefs

typedef eContextResult(* context_callback) (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_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_gpencil_data (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_gpencil_data_owner (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_gpencil_layer (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_annotation_layer (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_active_gpencil_frame (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_visible_gpencil_layers (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_editable_gpencil_layers (const bContext *C, bContextDataResult *result)
 
static eContextResult screen_ctx_editable_gpencil_strokes (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 *UNUSED(user_data))
 
static void register_context_function (const char *member, context_callback function)
 
static void ensure_ed_screen_context_functions (void)
 
int ed_screen_context (const bContext *C, const char *member, bContextDataResult *result)
 

Variables

const char * screen_context_dir []
 
static GHashed_screen_context_functions = NULL
 

Typedef Documentation

◆ context_callback

typedef eContextResult(* context_callback) (const bContext *C, bContextDataResult *result)

Definition at line 1216 of file screen_context.c.

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 ( void  )
static

Definition at line 1228 of file screen_context.c.

References BKE_blender_atexit_register(), BLI_ghash_new(), BLI_ghashutil_strcmp(), BLI_ghashutil_strhash_p_murmur(), ed_screen_context_functions, free_context_function_ghash(), NULL, register_context_function(), screen_ctx_active_action(), screen_ctx_active_annotation_layer(), screen_ctx_active_bone(), screen_ctx_active_editable_fcurve(), screen_ctx_active_gpencil_frame(), screen_ctx_active_gpencil_layer(), 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_gpencil_layers(), screen_ctx_editable_gpencil_strokes(), screen_ctx_editable_objects(), screen_ctx_gpencil_data(), screen_ctx_gpencil_data_owner(), 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_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_gpencil_layers(), 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 UNUSEDuser_data)
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 1060 of file screen_context.c.

References C, result, and screen_ctx_sel_actions_impl().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_active_annotation_layer()

static eContextResult screen_ctx_active_annotation_layer ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_bone()

static eContextResult screen_ctx_active_bone ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_editable_fcurve()

static eContextResult screen_ctx_active_editable_fcurve ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_gpencil_frame()

static eContextResult screen_ctx_active_gpencil_frame ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_gpencil_layer()

static eContextResult screen_ctx_active_gpencil_layer ( const bContext C,
bContextDataResult result 
)
static

◆ 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()

static eContextResult screen_ctx_active_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_operator()

static eContextResult screen_ctx_active_operator ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_pose_bone()

static eContextResult screen_ctx_active_pose_bone ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_active_sequence_strip()

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

◆ screen_ctx_annotation_data()

static eContextResult screen_ctx_annotation_data ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_annotation_data_owner()

static eContextResult screen_ctx_annotation_data_owner ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_asset_library()

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

◆ screen_ctx_edit_object()

static eContextResult screen_ctx_edit_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_editable_bones()

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

Definition at line 307 of file screen_context.c.

References C, result, and screen_ctx_visible_or_editable_bones_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_editable_fcurves()

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

◆ screen_ctx_editable_gpencil_layers()

static eContextResult screen_ctx_editable_gpencil_layers ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_editable_gpencil_strokes()

static eContextResult screen_ctx_editable_gpencil_strokes ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_editable_objects()

static eContextResult screen_ctx_editable_objects ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_gpencil_data()

static eContextResult screen_ctx_gpencil_data ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_gpencil_data_owner()

static eContextResult screen_ctx_gpencil_data_owner ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_image_paint_object()

static eContextResult screen_ctx_image_paint_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_object()

static eContextResult screen_ctx_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_objects_in_mode()

static eContextResult screen_ctx_objects_in_mode ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_objects_in_mode_unique_data()

static eContextResult screen_ctx_objects_in_mode_unique_data ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_particle_edit_object()

static eContextResult screen_ctx_particle_edit_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_pose_object()

static eContextResult screen_ctx_pose_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_scene()

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

◆ screen_ctx_sculpt_object()

static eContextResult screen_ctx_sculpt_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_sel_actions_impl()

static eContextResult screen_ctx_sel_actions_impl ( const bContext C,
bContextDataResult result,
bool  active_only,
bool  editable 
)
static

◆ screen_ctx_sel_edit_fcurves_()

static eContextResult screen_ctx_sel_edit_fcurves_ ( const bContext C,
bContextDataResult result,
const int  extra_filter 
)
static

◆ screen_ctx_selectable_objects()

static eContextResult screen_ctx_selectable_objects ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_bones()

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

Definition at line 373 of file screen_context.c.

References C, result, and screen_ctx_selected_bones_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_selected_bones_()

static eContextResult screen_ctx_selected_bones_ ( const bContext C,
bContextDataResult result,
const bool  selected_editable_bones 
)
static

◆ screen_ctx_selected_editable_actions()

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

Definition at line 1069 of file screen_context.c.

References C, result, and 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 377 of file screen_context.c.

References C, result, and 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()

static eContextResult screen_ctx_selected_editable_keyframes ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_editable_objects()

static eContextResult screen_ctx_selected_editable_objects ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_editable_sequences()

static eContextResult screen_ctx_selected_editable_sequences ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_movieclip_tracks()

static eContextResult screen_ctx_selected_movieclip_tracks ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_nla_strips()

static eContextResult screen_ctx_selected_nla_strips ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_objects()

static eContextResult screen_ctx_selected_objects ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_pose_bones()

static eContextResult screen_ctx_selected_pose_bones ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_pose_bones_from_active_object()

static eContextResult screen_ctx_selected_pose_bones_from_active_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_sequences()

static eContextResult screen_ctx_selected_sequences ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_selected_visible_actions()

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

Definition at line 1064 of file screen_context.c.

References C, result, and 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()

static eContextResult screen_ctx_sequences ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_ui_list()

static eContextResult screen_ctx_ui_list ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_vertex_paint_object()

static eContextResult screen_ctx_vertex_paint_object ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_visible_bones()

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

Definition at line 303 of file screen_context.c.

References C, result, and screen_ctx_visible_or_editable_bones_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_visible_fcurves()

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

Definition at line 1107 of file screen_context.c.

References C, result, and screen_ctx_sel_edit_fcurves_().

Referenced by ensure_ed_screen_context_functions().

◆ screen_ctx_visible_gpencil_layers()

static eContextResult screen_ctx_visible_gpencil_layers ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_visible_objects()

static eContextResult screen_ctx_visible_objects ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_visible_or_editable_bones_()

static eContextResult screen_ctx_visible_or_editable_bones_ ( const bContext C,
bContextDataResult result,
const bool  editable_bones 
)
static

◆ screen_ctx_visible_pose_bones()

static eContextResult screen_ctx_visible_pose_bones ( const bContext C,
bContextDataResult result 
)
static

◆ screen_ctx_weight_paint_object()

static eContextResult screen_ctx_weight_paint_object ( const bContext C,
bContextDataResult result 
)
static

Variable Documentation

◆ ed_screen_context_functions

GHash* ed_screen_context_functions = NULL
static

◆ screen_context_dir

const char* screen_context_dir[]

Definition at line 56 of file screen_context.c.

Referenced by bpy_context_members(), and ed_screen_context().