29 class AbstractGridView;
77 void change_state_delayed();
78 static void grid_tile_click_fn(
bContext *,
void *but_arg1,
void *);
79 void add_grid_tile_button(
uiBlock &block);
126 template<
class ItemT,
typename... Args>
inline ItemT &
add_item(Args &&...args);
134 void update_children_from_old(
const AbstractView &old_view)
override;
142 void change_state_delayed();
213 std::optional<bool> should_be_active()
const override;
214 void on_activate()
override;
223 static_assert(std::is_base_of<AbstractGridViewItem, ItemT>::value,
224 "Type must derive from and implement the AbstractGridViewItem interface");
226 return dynamic_cast<ItemT &
>(
add_item(std::make_unique<ItemT>(std::forward<Args>(args)...)));
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
virtual ~AbstractGridViewItem()=default
virtual void on_activate()
virtual std::optional< bool > should_be_active() const
AbstractGridViewItem(StringRef identifier)
virtual void build_grid_tile(uiLayout &layout) const =0
uiButViewItem * view_item_but_
const AbstractGridView & get_view() const
virtual bool matches(const AbstractViewItem &other) const override
Map< StringRef, AbstractGridViewItem * > item_map_
ItemT & add_item(Args &&...args)
int get_item_count() const
virtual ~AbstractGridView()=default
void foreach_item(ItemIterFn iter_fn) const
const GridViewStyle & get_style() const
virtual void build_items()=0
Vector< std::unique_ptr< AbstractGridViewItem > > items_
GridViewBuilder(uiBlock &block)
void build_grid_view(AbstractGridView &grid_view, const View2D &v2d)
std::function< void(PreviewGridItem &new_active)> ActivateFn
PreviewGridItem(StringRef identifier, StringRef label, int preview_icon_id)
void build_grid_tile(uiLayout &layout) const override
void set_is_active_fn(IsActiveFn fn)
void set_on_activate_fn(ActivateFn fn)
std::function< bool()> IsActiveFn
SyclQueue void void size_t num_bytes void
GridViewStyle(int width, int height)