33 value_array.
fill(
false);
34 value_array[cur] =
true;
48 const char *used_propname,
51 const int cols_per_group = 5;
67 const int cols = (layers / 2) + (layers % 2);
68 const int groups = ((cols / 2) < cols_per_group) ? (1) : (cols / cols_per_group);
71 if (used_ptr && used_propname) {
74 RNA_warning(
"used layers property not found: %s.%s",
87 for (
int group = 0; group < groups; group++) {
90 for (
int row = 0; row < 2; row++) {
93 int layer = groups * cols_per_group * row + cols_per_group * group;
96 for (
int col = 0; (
col < cols_per_group) && (layer < layers);
col++, layer++) {
98 const int butlay = 1 << layer;
100 if (active_layer & butlay) {
101 icon = ICON_LAYER_ACTIVE;
104 icon = ICON_LAYER_USED;
wmWindow * CTX_wm_window(const bContext *C)
#define POINTER_FROM_INT(i)
#define POINTER_AS_INT(i)
#define RNA_warning(format,...)
void UI_but_func_set(uiBut *but, std::function< void(bContext &)> func)
uiBut * uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, std::optional< blender::StringRef > name, int icon, int x, int y, int width, int height)
void fill(const T &value) const
constexpr const char * c_str() const
void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, const StringRefNull propname, PointerRNA *used_ptr, const char *used_propname, int active_layer)
static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
const char * RNA_struct_identifier(const StructRNA *type)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_boolean_get_index(PointerRNA *ptr, PropertyRNA *prop, int index)
void RNA_property_boolean_set_array(PointerRNA *ptr, PropertyRNA *prop, const bool *values)
uiLayout & column(bool align)
uiLayout & row(bool align)
wmEventModifierFlag modifier
struct wmEvent * eventstate