Blender  V3.3
Classes | Functions | Variables
bpy_rna_context.c File Reference
#include <Python.h>
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "WM_api.h"
#include "WM_types.h"
#include "bpy_rna_context.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
#include "bpy_rna.h"

Go to the source code of this file.

Classes

struct  ContextStore
 
struct  BPyContextTempOverride
 

Functions

void bpy_rna_context_types_init (void)
 
Context Temporary Override Method
static PyObject * bpy_context_temp_override_extract_known_args (const char *const *kwds_static, PyObject *kwds)
 
 PyDoc_STRVAR (bpy_context_temp_override_doc, ".. method:: temp_override(window, area, region, **keywords)\n" "\n" " Context manager to temporarily override members in the context.\n" "\n" " :arg window: Window override or None.\n" " :type window: :class:`bpy.types.Window`\n" " :arg area: Area override or None.\n" " :type area: :class:`bpy.types.Area`\n" " :arg region: Region override or None.\n" " :type region: :class:`bpy.types.Region`\n" " :arg keywords: Additional keywords override context members.\n" " :return: The context manager .\n" " :rtype: context manager\n")
 
static PyObject * bpy_context_temp_override (PyObject *self, PyObject *args, PyObject *kwds)
 

Variables

PyMethodDef BPY_rna_context_temp_override_method_def
 

Temporary Context Override (Python Context Manager)

typedef struct ContextStore ContextStore
 
typedef struct BPyContextTempOverride BPyContextTempOverride
 
static PyMethodDef bpy_rna_context_temp_override__tp_methods []
 
static PyTypeObject BPyContextTempOverride_Type
 
static void bpy_rna_context_temp_override__tp_dealloc (BPyContextTempOverride *self)
 
static PyObject * bpy_rna_context_temp_override_enter (BPyContextTempOverride *self)
 
static PyObject * bpy_rna_context_temp_override_exit (BPyContextTempOverride *self, PyObject *UNUSED(args))
 

Detailed Description

This file adds some helper methods to the context, that cannot fit well in RNA itself.

Definition in file bpy_rna_context.c.

Typedef Documentation

◆ BPyContextTempOverride

◆ ContextStore

typedef struct ContextStore ContextStore

Function Documentation

◆ bpy_context_temp_override()

static PyObject* bpy_context_temp_override ( PyObject *  self,
PyObject *  args,
PyObject *  kwds 
)
static

◆ bpy_context_temp_override_extract_known_args()

static PyObject* bpy_context_temp_override_extract_known_args ( const char *const *  kwds_static,
PyObject *  kwds 
)
static

Definition at line 177 of file bpy_rna_context.c.

References BLI_assert_unreachable.

Referenced by bpy_context_temp_override().

◆ bpy_rna_context_temp_override__tp_dealloc()

static void bpy_rna_context_temp_override__tp_dealloc ( BPyContextTempOverride self)
static

Definition at line 58 of file bpy_rna_context.c.

◆ bpy_rna_context_temp_override_enter()

static PyObject* bpy_rna_context_temp_override_enter ( BPyContextTempOverride self)
static

◆ bpy_rna_context_temp_override_exit()

static PyObject* bpy_rna_context_temp_override_exit ( BPyContextTempOverride self,
PyObject *  UNUSEDargs 
)
static

◆ bpy_rna_context_types_init()

void bpy_rna_context_types_init ( void  )

Definition at line 313 of file bpy_rna_context.c.

References BLI_assert_unreachable, and BPyContextTempOverride_Type.

Referenced by BPY_rna_types_extend_capi().

◆ PyDoc_STRVAR()

PyDoc_STRVAR ( bpy_context_temp_override_doc  ,
".. method:: temp_override(window, area, region, **keywords)\n" "\n" " Context manager to temporarily override members in the context.\n" "\n" " :arg window: Window override or None.\n" " :type window: :class:`bpy.types.Window`\n" " :arg area: Area override or None.\n" " :type area: :class:`bpy.types.Area`\n" " :arg region: Region override or None.\n" " :type region: :class:`bpy.types.Region`\n" " :arg keywords: Additional keywords override context members.\n" " :return: The context manager .\n" " :rtype: context manager\n"   
)

Variable Documentation

◆ bpy_rna_context_temp_override__tp_methods

PyMethodDef bpy_rna_context_temp_override__tp_methods[]
static
Initial value:
= {
{"__enter__", (PyCFunction)bpy_rna_context_temp_override_enter, METH_NOARGS},
{"__exit__", (PyCFunction)bpy_rna_context_temp_override_exit, METH_VARARGS},
{NULL},
}
static PyObject * bpy_rna_context_temp_override_enter(BPyContextTempOverride *self)
static PyObject * bpy_rna_context_temp_override_exit(BPyContextTempOverride *self, PyObject *UNUSED(args))

Definition at line 157 of file bpy_rna_context.c.

◆ BPY_rna_context_temp_override_method_def

PyMethodDef BPY_rna_context_temp_override_method_def
Initial value:
= {
"temp_override",
METH_VARARGS | METH_KEYWORDS,
bpy_context_temp_override_doc,
}
static PyObject * bpy_context_temp_override(PyObject *self, PyObject *args, PyObject *kwds)

Definition at line 306 of file bpy_rna_context.c.

Referenced by BPY_rna_types_extend_capi().

◆ BPyContextTempOverride_Type

PyTypeObject BPyContextTempOverride_Type
static
Initial value:
= {
PyVarObject_HEAD_INIT(NULL, 0).tp_name = "ContextTempOverride",
.tp_basicsize = sizeof(BPyContextTempOverride),
.tp_dealloc = (destructor)bpy_rna_context_temp_override__tp_dealloc,
.tp_flags = Py_TPFLAGS_DEFAULT,
}
struct BPyContextTempOverride BPyContextTempOverride
static PyMethodDef bpy_rna_context_temp_override__tp_methods[]
static void bpy_rna_context_temp_override__tp_dealloc(BPyContextTempOverride *self)

Definition at line 163 of file bpy_rna_context.c.

Referenced by bpy_context_temp_override(), and bpy_rna_context_types_init().