28 PyGILState_STATE gilstate = PyGILState_Ensure();
30 PyObject *py_args =
static_cast<PyObject *
>(user_data);
31 PyObject *py_func_or_msg = PyTuple_GET_ITEM(py_args, 0);
35 if (PyUnicode_Check(py_func_or_msg)) {
37 const char *msg_src = PyUnicode_AsUTF8AndSize(py_func_or_msg, &msg_len);
41 PyObject *py_args_after_first = PyTuple_GetSlice(py_args, 1, PY_SSIZE_T_MAX);
42 PyObject *py_msg = PyObject_CallObject(py_func_or_msg, py_args_after_first);
43 Py_DECREF(py_args_after_first);
48 if (py_msg ==
nullptr) {
52 if (py_msg == Py_None) {
55 else if (PyUnicode_Check(py_msg)) {
56 Py_ssize_t msg_src_len;
57 const char *msg_src = PyUnicode_AsUTF8AndSize(py_msg, &msg_src_len);
61 PyErr_Format(PyExc_TypeError,
62 "poll_message_set(function, ...): expected string or None, got %.200s",
63 Py_TYPE(py_msg)->tp_name);
75 PyGILState_Release(gilstate);
103 const Py_ssize_t args_len = PyTuple_GET_SIZE(args);
105 PyErr_SetString(PyExc_ValueError,
106 "poll_message_set(message, ...): requires a message argument");
110 PyObject *py_func_or_msg = PyTuple_GET_ITEM(args, 0);
112 if (PyUnicode_Check(py_func_or_msg)) {
114 PyErr_SetString(PyExc_ValueError,
115 "poll_message_set(message): does not support additional arguments");
119 else if (PyCallable_Check(py_func_or_msg)) {
123 PyErr_Format(PyExc_TypeError,
124 "poll_message_set(message, ...): "
125 "expected at least 1 string or callable argument, got %.200s",
126 Py_TYPE(py_func_or_msg)->tp_name);
void CTX_wm_operator_poll_msg_set_dynamic(bContext *C, const bContextPollMsgDyn_Params *params)
PyDoc_STRVAR(FalseBP1D___doc__, "Class hierarchy: :class:`freestyle.types.BinaryPredicate1D` > :class:`FalseBP1D`\n" "\n" ".. method:: __call__(inter1, inter2)\n" "\n" " Always returns false.\n" "\n" " :arg inter1: The first Interface1D object.\n" " :type inter1: :class:`freestyle.types.Interface1D`\n" " :arg inter2: The second Interface1D object.\n" " :type inter2: :class:`freestyle.types.Interface1D`\n" " :return: False.\n" " :rtype: bool\n")
void(*) free_fn(bContext *C, void *user_data)
char *(*) get_fn(bContext *C, void *user_data)