15 #include "RNA_prototypes.h"
114 if (column->display_name == column_name) {
132 (column ==
nullptr && !column_name.is_empty())) {
140 if (column_name.is_empty()) {
143 else if (column ==
nullptr) {
144 uiItemL(row, column_name.data(), ICON_NONE);
148 std::stringstream ss;
154 uiItemL(row, ss.str().c_str(), ICON_NONE);
160 uiItemIntO(row,
"", ICON_X,
"SPREADSHEET_OT_remove_row_filter_rule",
"index", current_index);
178 (column ==
nullptr && !column_name.is_empty())) {
185 uiItemR(layout, filter_ptr,
"column_name", 0,
IFACE_(
"Column"), ICON_NONE);
188 if (column ==
nullptr || column_name.is_empty()) {
194 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
195 uiItemR(layout, filter_ptr,
"value_int8", 0,
IFACE_(
"Value"), ICON_NONE);
198 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
199 uiItemR(layout, filter_ptr,
"value_int", 0,
IFACE_(
"Value"), ICON_NONE);
202 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
203 uiItemR(layout, filter_ptr,
"value_float", 0,
IFACE_(
"Value"), ICON_NONE);
205 uiItemR(layout, filter_ptr,
"threshold", 0,
nullptr, ICON_NONE);
209 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
210 uiItemR(layout, filter_ptr,
"value_float2", 0,
IFACE_(
"Value"), ICON_NONE);
212 uiItemR(layout, filter_ptr,
"threshold", 0,
nullptr, ICON_NONE);
216 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
217 uiItemR(layout, filter_ptr,
"value_float3", 0,
IFACE_(
"Value"), ICON_NONE);
219 uiItemR(layout, filter_ptr,
"threshold", 0,
nullptr, ICON_NONE);
223 uiItemR(layout, filter_ptr,
"value_boolean", 0,
IFACE_(
"Value"), ICON_NONE);
226 uiItemR(layout, filter_ptr,
"value_string", 0,
IFACE_(
"Value"), ICON_NONE);
230 uiItemR(layout, filter_ptr,
"operation", 0,
nullptr, ICON_NONE);
231 uiItemR(layout, filter_ptr,
"value_color", 0,
IFACE_(
"Value"), ICON_NONE);
233 uiItemR(layout, filter_ptr,
"threshold", 0,
nullptr, ICON_NONE);
237 uiItemR(layout, filter_ptr,
"value_string", 0,
IFACE_(
"Value"), ICON_NONE);
257 uiItemO(layout,
nullptr, ICON_ADD,
"SPREADSHEET_OT_add_row_filter_rule");
280 panel_iter = panel_iter->
next;
288 panel_iter = panel_iter->
next;
328 PanelType *panel_type = MEM_cnew<PanelType>(__func__);
329 strcpy(panel_type->
idname,
"SPREADSHEET_PT_row_filters");
330 strcpy(panel_type->
label,
N_(
"Filters"));
331 strcpy(panel_type->
category,
"Filters");
339 PanelType *panel_type = MEM_cnew<PanelType>(__func__);
340 strcpy(panel_type->
idname,
"SPREADSHEET_PT_filter");
341 strcpy(panel_type->
label,
"");
342 strcpy(panel_type->
category,
"Filters");
struct SpaceSpreadsheet * CTX_wm_space_spreadsheet(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
@ PANEL_TYPE_HEADER_EXPAND
#define BLI_assert_unreachable()
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void void bool BLI_listbase_link_move(ListBase *listbase, void *vlink, int step) ATTR_NONNULL()
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define SET_FLAG_FROM_TEST(value, test, flag)
#define BLT_I18NCONTEXT_DEFAULT_BPYRNA
@ SPREADSHEET_ROW_FILTER_BOOL_VALUE
@ SPREADSHEET_ROW_FILTER_UI_EXPAND
@ SPREADSHEET_ROW_FILTER_ENABLED
@ SPREADSHEET_FILTER_ENABLE
eSpreadsheetFilterOperation
@ SPREADSHEET_ROW_FILTER_GREATER
@ SPREADSHEET_ROW_FILTER_EQUAL
@ SPREADSHEET_ROW_FILTER_LESS
eSpreadsheetColumnValueType
@ SPREADSHEET_VALUE_TYPE_INT8
@ SPREADSHEET_VALUE_TYPE_FLOAT
@ SPREADSHEET_VALUE_TYPE_BYTE_COLOR
@ SPREADSHEET_VALUE_TYPE_UNKNOWN
@ SPREADSHEET_VALUE_TYPE_FLOAT3
@ SPREADSHEET_VALUE_TYPE_BOOL
@ SPREADSHEET_VALUE_TYPE_STRING
@ SPREADSHEET_VALUE_TYPE_INT32
@ SPREADSHEET_VALUE_TYPE_FLOAT2
@ SPREADSHEET_VALUE_TYPE_COLOR
@ SPREADSHEET_VALUE_TYPE_INSTANCES
void uiItemS_ex(uiLayout *layout, float factor)
void uiLayoutSetActive(uiLayout *layout, bool active)
void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
void uiItemL(uiLayout *layout, const char *name, int icon)
struct PointerRNA * UI_panel_custom_data_get(const struct Panel *panel)
void UI_panel_custom_data_set(struct Panel *panel, struct PointerRNA *custom_data)
struct Panel * UI_panel_add_instanced(const struct bContext *C, struct ARegion *region, struct ListBase *panels, const char *panel_idname, struct PointerRNA *custom_data)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void UI_panels_free_instanced(const struct bContext *C, struct ARegion *region)
bool UI_panel_list_matches_data(struct ARegion *region, struct ListBase *data, uiListPanelIDFromDataFunc panel_idname_func)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void uiLayoutSetEmboss(uiLayout *layout, eUIEmbossType emboss)
void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
void uiLayoutSetPropDecorate(uiLayout *layout, bool is_sep)
return(oflags[bm->toolflag_index].f &oflag) !=0
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
void *(* MEM_mallocN)(size_t len, const char *str)
std::string to_string(const T &n)
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
void register_row_filter_panels(ARegionType ®ion_type)
static short get_filter_expand_flag(const bContext *UNUSED(C), Panel *panel)
static std::string operation_string(const eSpreadsheetColumnValueType data_type, const eSpreadsheetFilterOperation operation)
static void spreadsheet_filter_panel_draw_header(const bContext *C, Panel *panel)
static SpreadsheetColumn * lookup_visible_column_for_filter(const SpaceSpreadsheet &sspreadsheet, const StringRef column_name)
static void filter_panel_id_fn(void *UNUSED(row_filter_v), char *r_name)
static void spreadsheet_row_filters_layout(const bContext *C, Panel *panel)
static void filter_reorder(bContext *C, Panel *panel, int new_index)
static std::string value_string(const SpreadsheetRowFilter &row_filter, const eSpreadsheetColumnValueType data_type)
static void spreadsheet_filter_panel_draw(const bContext *C, Panel *panel)
static void set_filter_expand_flag(const bContext *UNUSED(C), Panel *panel, short expand_flag)
short(* get_list_data_expand_flag)(const struct bContext *C, struct Panel *pa)
void(* draw)(const struct bContext *C, struct Panel *panel)
void(* draw_header)(const struct bContext *C, struct Panel *panel)
char idname[BKE_ST_MAXNAME]
void(* set_list_data_expand_flag)(const struct bContext *C, struct Panel *pa, short expand_flag)
void(* reorder)(struct bContext *C, struct Panel *pa, int new_index)
char translation_context[BKE_ST_MAXNAME]
char category[BKE_ST_MAXNAME]
char label[BKE_ST_MAXNAME]