30#include "RNA_prototypes.hh"
92 if (
ptr.data !=
nullptr) {
97 rna_update_prop = &rna_ColorRamp_color_mode;
109 eye->
ptr = rna_update_ptr;
110 eye->
prop = rna_update_prop;
137 const int cursor[2] = {mx, my};
168 const bool filter_samples =
true;
171 reinterpret_cast<const float (*)[4]
>(eye->
color_buffer.data()),
200 switch (event->
val) {
205 const bool is_undo = eye->
is_undo;
239 switch (event->
val) {
316 if (
ptr.data !=
nullptr) {
325 ot->name =
"Eyedropper Colorband";
326 ot->idname =
"UI_OT_eyedropper_colorramp";
327 ot->description =
"Sample a color band";
345 ot->name =
"Eyedropper Colorband (Points)";
346 ot->idname =
"UI_OT_eyedropper_colorramp_point";
347 ot->description =
"Point-sample a color band";
void BKE_colorband_init_from_table_rgba(ColorBand *coba, const float(*array)[4], int array_len, bool filter_samples)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
wmWindow * CTX_wm_window(const bContext *C)
ARegion * CTX_wm_region(const bContext *C)
void BLI_bitmap_draw_2d_line_v2v2i(const int p1[2], const int p2[2], bool(*callback)(int, int, void *), void *user_data)
MINLINE void copy_v2_v2_int(int r[2], const int a[2])
Read Guarded memory(de)allocation.
uiBut * UI_context_active_but_get(const bContext *C)
void UI_context_active_but_clear(bContext *C, wmWindow *win, ARegion *region)
bool UI_but_flag_is_set(uiBut *but, int flag)
BMesh const char void * data
bool eyedropper_color_sample_fl(bContext *C, Eyedropper *eye, const int event_xy[2], float r_col[3])
@ EYE_MODAL_SAMPLE_CONFIRM
@ EYE_MODAL_POINT_CONFIRM
@ EYE_MODAL_POINT_REMOVE_LAST
static bool eyedropper_colorband_init(bContext *C, wmOperator *op)
static void eyedropper_colorband_cancel(bContext *C, wmOperator *op)
static wmOperatorStatus eyedropper_colorband_modal(bContext *C, wmOperator *op, const wmEvent *event)
void UI_OT_eyedropper_colorramp(wmOperatorType *ot)
void UI_OT_eyedropper_colorramp_point(wmOperatorType *ot)
static void eyedropper_colorband_sample_segment(bContext *C, EyedropperColorband *eye, const int m_xy[2])
static void eyedropper_colorband_apply(bContext *C, wmOperator *op)
static wmOperatorStatus eyedropper_colorband_invoke(bContext *C, wmOperator *op, const wmEvent *)
static bool eyedropper_colorband_sample_callback(int mx, int my, void *userdata)
static wmOperatorStatus eyedropper_colorband_exec(bContext *C, wmOperator *op)
static void eyedropper_colorband_exit(bContext *C, wmOperator *op)
static void eyedropper_colorband_sample_point(bContext *C, EyedropperColorband *eye, const int m_xy[2])
static wmOperatorStatus eyedropper_colorband_point_modal(bContext *C, wmOperator *op, const wmEvent *event)
static bool eyedropper_colorband_poll(bContext *C)
VecBase< float, 4 > float4
const PointerRNA PointerRNA_NULL
void RNA_property_update(bContext *C, PointerRNA *ptr, PropertyRNA *prop)
bool RNA_struct_undo_check(const StructRNA *type)
EyedropperColorband * eye
Vector< float4 > color_buffer
ColorBand init_color_band
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)