55 lines
1.4 KiB
C
55 lines
1.4 KiB
C
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup modifiers
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "FX_shader_types.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
struct ARegionType;
|
|
struct PanelType;
|
|
struct bContext;
|
|
struct uiLayout;
|
|
typedef void (*PanelDrawFn)(const bContext *, Panel *);
|
|
|
|
/**
|
|
* Draw shaderfx error message.
|
|
*/
|
|
void shaderfx_panel_end(struct uiLayout *layout, PointerRNA *ptr);
|
|
|
|
/**
|
|
* Gets RNA pointers for the active object and the panel's shaderfx data.
|
|
*/
|
|
struct PointerRNA *shaderfx_panel_get_property_pointers(struct Panel *panel,
|
|
struct PointerRNA *r_ob_ptr);
|
|
|
|
/**
|
|
* Create a panel in the context's region
|
|
*/
|
|
PanelType *shaderfx_panel_register(ARegionType *region_type, ShaderFxType type, PanelDrawFn draw);
|
|
|
|
/**
|
|
* Add a child panel to the parent.
|
|
*
|
|
* \note To create the panel type's idname, it appends the \a name argument to the \a parent's
|
|
* idname.
|
|
*/
|
|
struct PanelType *shaderfx_subpanel_register(struct ARegionType *region_type,
|
|
const char *name,
|
|
const char *label,
|
|
PanelDrawFn draw_header,
|
|
PanelDrawFn draw,
|
|
struct PanelType *parent);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|