18#include "RNA_prototypes.hh"
25#define WHEEL_SIZE (5 * U.widget_unit)
44 float softmin, softmax,
step, precision;
52 switch (
U.color_picker_type) {
70 switch (
U.color_picker_type) {
111 if (lock_luminosity) {
118 switch (
U.color_picker_type) {
223 row = &layout->
row(
false);
226 row = &layout->
row(
false);
227 op_ptr = row->
op(
"PALETTE_OT_sort",
IFACE_(
"Saturation"), ICON_NONE);
229 row = &layout->
row(
false);
232 row = &layout->
row(
false);
233 op_ptr = row->
op(
"PALETTE_OT_sort",
IFACE_(
"Luminance"), ICON_NONE);
243 uiBut *but =
nullptr;
245 const int cols_per_row = std::max(layout->
width() /
UI_UNIT_X, 1);
265 "PALETTE_OT_color_add",
275 "PALETTE_OT_color_delete",
286 "PALETTE_OT_color_move",
299 "PALETTE_OT_color_move",
318 int row_cols = 0, col_id = 0;
320 if (row_cols >= cols_per_row) {
363 "UI_OT_eyedropper_color",
#define LISTBASE_FOREACH(type, var, list)
MINLINE float len_v3(const float a[3]) ATTR_WARN_UNUSED_RESULT
#define CTX_IFACE_(context, msgid)
#define BLT_I18NCONTEXT_COLOR
#define RNA_warning(format,...)
uiBut * uiDefButR(uiBlock *block, ButType type, int retval, std::optional< blender::StringRef > str, int x, int y, short width, short height, PointerRNA *ptr, blender::StringRefNull propname, int index, float min, float max, std::optional< blender::StringRef > tip)
uiBut * uiDefIconButO(uiBlock *block, ButType type, blender::StringRefNull opname, blender::wm::OpCallContext opcontext, int icon, int x, int y, short width, short height, std::optional< blender::StringRef > tip)
uiBut * uiDefButR_prop(uiBlock *block, ButType type, int retval, std::optional< blender::StringRef > str, int x, int y, short width, short height, PointerRNA *ptr, PropertyRNA *prop, int index, float min, float max, std::optional< blender::StringRef > tip)
PointerRNA * UI_but_operator_ptr_ensure(uiBut *but)
uiBut * uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x, int y, short width, short height, std::optional< blender::StringRef > tip)
constexpr const char * c_str() const
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
ColorPicker * ui_block_colorpicker_create(uiBlock *block)
void uiTemplatePalette(uiLayout *layout, PointerRNA *ptr, const StringRefNull propname, bool)
void uiTemplateCryptoPicker(uiLayout *layout, PointerRNA *ptr, const StringRefNull propname, int icon)
static void ui_template_palette_menu(bContext *, uiLayout *layout, void *)
void uiTemplateColorPicker(uiLayout *layout, PointerRNA *ptr, const StringRefNull propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic)
const char * RNA_property_ui_description(const PropertyRNA *prop)
bool RNA_struct_is_a(const StructRNA *type, const StructRNA *srna)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
void RNA_property_float_ui_range(PointerRNA *ptr, PropertyRNA *prop, float *softmin, float *softmax, float *step, float *precision)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
PointerRNA RNA_property_pointer_get(PointerRNA *ptr, PropertyRNA *prop)
const char * RNA_struct_identifier(const StructRNA *type)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
float luminosity_lock_value
eButGradientType gradient_type
void label(blender::StringRef name, int icon)
uiLayout & column(bool align)
void separator(float factor=1.0f, LayoutSeparatorType type=LayoutSeparatorType::Auto)
uiLayout & row(bool align)
PointerRNA op(wmOperatorType *ot, std::optional< blender::StringRef > name, int icon, blender::wm::OpCallContext context, eUI_Item_Flag flag)