38 switch (cl_iter->
type) {
61 int prompt_len = strlen(sc->
prompt);
64 cl_dummy->
len = prompt_len + cl->
len;
67 memcpy(cl_dummy->
line, sc->
prompt, prompt_len);
68 memcpy(cl_dummy->
line + prompt_len, cl->
line, cl->
len + 1);
87 return (tvc->
iter !=
nullptr);
98 return ((tvc->
iter = (
void *)((
Link *)tvc->
iter)->prev) !=
nullptr);
111 const char *
str,
int width,
int *row,
int *column,
const char *end)
114 const int tab_width = 4;
117 col =
UNLIKELY(*
str ==
'\t') ? (tab_width - (*column % tab_width)) :
120 if (*column +
col > width) {
125 if (end &&
str >= end) {
139 int offl = 0, offc = 0;
143 pen[0] = cwidth * offc;
171 rcti *r_draw_rect_outer)
174 r_draw_rect->
xmin = margin;
176 r_draw_rect->
ymin = margin;
178 r_draw_rect->
ymax = region->winy;
180 r_draw_rect_outer->
xmin = 0;
181 r_draw_rect_outer->
xmax = region->winx;
182 r_draw_rect_outer->
ymin = 0;
183 r_draw_rect_outer->
ymax = region->winy;
190 void **r_mval_pick_item,
191 int *r_mval_pick_offset)
196 const View2D *v2d = ®ion->v2d;
222 int m_pos[2] = {mval[0], mval[1]};
224 if (m_pos[0] != INT_MAX) {
229 ret =
textview_draw(&tvc, do_draw, m_pos, r_mval_pick_item, r_mval_pick_offset);
237 const int mval[2] = {INT_MAX, INT_MAX};
243 const int mval[2] = {INT_MAX, INT_MAX};
249 int r_mval_pick_offset = 0;
250 void *mval_pick_item =
nullptr;
253 return r_mval_pick_offset;
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_str_utf8_char_width_safe(const char *p) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_str_utf8_size_safe(const char *p) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
@ GPU_SHADER_3D_UNIFORM_COLOR
Read Guarded memory(de)allocation.
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
void console_textview_main(SpaceConsole *sc, const ARegion *region)
void console_scrollback_prompt_end(SpaceConsole *sc, ConsoleLine *cl_dummy)
static enum eTextViewContext_LineFlag console_line_data(TextViewContext *tvc, uchar fg[4], uchar[4], int *, uchar[4], uchar[4])
int console_textview_height(SpaceConsole *sc, const ARegion *region)
void console_scrollback_prompt_begin(SpaceConsole *sc, ConsoleLine *cl_dummy)
static int console_textview_step(TextViewContext *tvc)
static void console_textview_const_colors(TextViewContext *, uchar bg_sel[4])
static int console_textview_begin(TextViewContext *tvc)
static void console_textview_line_get(TextViewContext *tvc, const char **r_line, int *r_len)
static void console_textview_draw_rect_calc(const ARegion *region, rcti *r_draw_rect, rcti *r_draw_rect_outer)
static void console_textview_end(TextViewContext *tvc)
int console_char_pick(SpaceConsole *sc, const ARegion *region, const int mval[2])
static void console_textview_draw_cursor(TextViewContext *tvc, int cwidth, int columns)
static int console_textview_main__internal(SpaceConsole *sc, const ARegion *region, const bool do_draw, const int mval[2], void **r_mval_pick_item, int *r_mval_pick_offset)
static void console_cursor_wrap_offset(const char *str, int width, int *row, int *column, const char *end)
void *(* MEM_mallocN)(size_t len, const char *str)
void MEM_freeN(void *vmemh)
enum eTextViewContext_LineFlag(* line_data)(TextViewContext *tvc, uchar fg[4], uchar bg[4], int *r_icon, uchar r_icon_fg[4], uchar r_icon_bg[4])
void(* end)(TextViewContext *tvc)
void(* const_colors)(TextViewContext *tvc, unsigned char bg_sel[4])
int(* begin)(TextViewContext *tvc)
void(* line_get)(TextViewContext *tvc, const char **r_line, int *r_len)
int(* step)(TextViewContext *tvc)
void(* draw_cursor)(TextViewContext *tvc, int cwidth, int columns)
int textview_draw(TextViewContext *tvc, const bool do_draw, const int mval_init[2], void **r_mval_pick_item, int *r_mval_pick_offset)
eTextViewContext_LineFlag