Lines Matching defs:wp

55 screen_redraw_border_set(struct window *w, struct window_pane *wp,
73 if (wp != NULL && window_pane_index(wp, &idx) == 0)
101 struct window_pane *wp;
103 wp = TAILQ_NEXT(TAILQ_FIRST(&w->panes), entry);
104 if (wp == NULL)
106 if (TAILQ_NEXT(wp, entry) != NULL)
108 if (direction == 0 && wp->xoff == 0)
110 if (direction == 1 && wp->yoff == 0)
117 screen_redraw_pane_border(struct screen_redraw_ctx *ctx, struct window_pane *wp,
120 struct options *oo = wp->window->options;
121 u_int ex = wp->xoff + wp->sx, ey = wp->yoff + wp->sy;
127 if (px >= wp->xoff && px < ex && py >= wp->yoff && py < ey)
134 hsplit = screen_redraw_two_panes(wp->window, 0);
135 vsplit = screen_redraw_two_panes(wp->window, 1);
140 if (window_pane_show_scrollbar(wp, pane_scrollbars))
141 sb_w = wp->scrollbar_style.width + wp->scrollbar_style.pad;
144 * Left/right borders. The wp->sy / 2 test is to colour only half the
147 if ((wp->yoff == 0 || py >= wp->yoff - 1) && py <= ey) {
149 if (wp->xoff - sb_w == 0 && px == wp->sx + sb_w)
150 if (!hsplit || (hsplit && py <= wp->sy / 2))
152 if (wp->xoff - sb_w != 0 && px == wp->xoff - sb_w - 1)
153 if (!hsplit || (hsplit && py > wp->sy / 2))
156 if (wp->xoff == 0 && px == wp->sx + sb_w)
157 if (!hsplit || (hsplit && py <= wp->sy / 2))
159 if (wp->xoff != 0 && px == wp->xoff - 1)
160 if (!hsplit || (hsplit && py > wp->sy / 2))
167 if (wp->yoff == 0 && py == wp->sy && px <= wp->sx / 2)
169 if (wp->yoff != 0 && py == wp->yoff - 1 && px > wp->sx / 2)
173 if ((wp->xoff - sb_w == 0 || px >= wp->xoff - sb_w) &&
175 if (wp->yoff != 0 && py == wp->yoff - 1)
181 if ((wp->xoff == 0 || px >= wp->xoff) &&
183 if (wp->yoff != 0 && py == wp->yoff - 1)
201 struct window_pane *wp;
216 TAILQ_FOREACH(wp, &w->panes, entry) {
217 if (!window_pane_visible(wp))
219 switch (screen_redraw_pane_border(ctx, wp, px, py)) {
321 struct window_pane *wp, *active;
337 active = wp = server_client_get_pane(c);
339 if (!window_pane_visible(wp))
343 line = wp->yoff - 1;
345 line = wp->yoff + sy;
346 right = wp->xoff + 2 + wp->status_size - 1;
348 if (py == line && px >= wp->xoff + 2 && px <= right)
352 wp = TAILQ_NEXT(wp, entry);
353 if (wp == NULL)
354 wp = TAILQ_FIRST(&w->panes);
355 } while (wp != active);
358 active = wp = server_client_get_pane(c);
360 if (!window_pane_visible(wp))
362 *wpp = wp;
365 if (window_pane_show_scrollbar(wp, pane_scrollbars)) {
368 line = wp->yoff - 1;
370 line = wp->yoff + wp->sy;
377 sb_w = wp->scrollbar_style.width +
378 wp->scrollbar_style.pad;
380 (wp->yoff == 0 && py < wp->sy) ||
381 (py >= wp->yoff && py < wp->yoff + wp->sy)) {
384 (px >= wp->xoff + wp->sx &&
385 px < wp->xoff + wp->sx + sb_w)) ||
387 (px >= wp->xoff - sb_w &&
388 px < wp->xoff)))
397 border = screen_redraw_pane_border(ctx, wp, px, py);
405 wp = TAILQ_NEXT(wp, entry);
406 if (wp == NULL)
407 wp = TAILQ_FIRST(&w->panes);
408 } while (wp != active);
416 struct window_pane *wp)
420 border = screen_redraw_pane_border(ctx, wp, px, py);
428 screen_redraw_make_pane_status(struct client *c, struct window_pane *wp,
431 struct window *w = wp->window;
441 ft = format_create(c, NULL, FORMAT_PANE|wp->id, FORMAT_STATUS);
442 format_defaults(ft, c, c->session, c->session->curw, wp);
444 if (wp == server_client_get_pane(c))
448 fmt = options_get_string(wp->options, "pane-border-format");
451 if (wp->sx < 4)
452 wp->status_size = width = 0;
454 wp->status_size = width = wp->sx - 4;
456 memcpy(&old, &wp->status_screen, sizeof old);
457 screen_init(&wp->status_screen, width, 1, 0);
458 wp->status_screen.mode = 0;
460 screen_write_start(&ctx, &wp->status_screen);
463 px = wp->xoff + 2 + i;
465 py = wp->yoff - 1;
467 py = wp->yoff + wp->sy;
469 screen_redraw_border_set(w, wp, pane_lines, cell_type, &gc);
481 if (grid_compare(wp->status_screen.grid, old.grid) == 0) {
496 struct window_pane *wp;
502 TAILQ_FOREACH(wp, &w->panes, entry) {
503 if (!window_pane_visible(wp))
505 s = &wp->status_screen;
507 size = wp->status_size;
509 yoff = wp->yoff - 1;
511 yoff = wp->yoff + wp->sy;
512 xoff = wp->xoff + 2;
556 struct window_pane *wp;
575 TAILQ_FOREACH(wp, &w->panes, entry) {
576 if (screen_redraw_make_pane_status(c, wp, ctx, lines))
666 screen_redraw_pane(struct client *c, struct window_pane *wp,
671 if (!window_pane_visible(wp))
679 screen_redraw_draw_pane(&ctx, wp);
681 if (window_pane_show_scrollbar(wp, ctx.pane_scrollbars))
682 screen_redraw_draw_pane_scrollbar(&ctx, wp);
690 u_int y, struct window_pane *wp)
699 if (wp->border_gc_set)
700 return (&wp->border_gc);
701 wp->border_gc_set = 1;
703 ft = format_create_defaults(NULL, c, s, s->curw, wp);
705 style_apply(&wp->border_gc, oo, "pane-active-border-style", ft);
707 style_apply(&wp->border_gc, oo, "pane-border-style", ft);
710 return (&wp->border_gc);
723 struct window_pane *wp, *active = server_client_get_pane(c);
736 cell_type = screen_redraw_check_cell(ctx, x, y, &wp);
740 if (wp == NULL) {
751 tmp = screen_redraw_draw_borders_style(ctx, x, y, wp);
756 if (server_is_marked(s, s->curw, marked_pane.wp) &&
757 screen_redraw_check_is(ctx, x, y, marked_pane.wp))
760 screen_redraw_border_set(w, wp, ctx->pane_lines, cell_type, &gc);
783 if (wp != NULL && arrows) {
785 if (((i == wp->xoff + 1 &&
791 (j == wp->yoff + 1 &&
815 struct window_pane *wp;
820 TAILQ_FOREACH(wp, &w->panes, entry)
821 wp->border_gc_set = 0;
835 struct window_pane *wp;
839 TAILQ_FOREACH(wp, &w->panes, entry) {
840 if (window_pane_visible(wp))
841 screen_redraw_draw_pane(ctx, wp);
869 screen_redraw_draw_pane(struct screen_redraw_ctx *ctx, struct window_pane *wp)
874 struct screen *s = wp->screen;
875 struct colour_palette *palette = &wp->palette;
879 log_debug("%s: %s @%u %%%u", __func__, c->name, w->id, wp->id);
881 if (wp->xoff + wp->sx <= ctx->ox || wp->xoff >= ctx->ox + ctx->sx)
887 for (j = 0; j < wp->sy; j++) {
888 if (wp->yoff + j < ctx->oy || wp->yoff + j >= ctx->oy + ctx->sy)
890 y = top + wp->yoff + j - ctx->oy;
892 if (wp->xoff >= ctx->ox &&
893 wp->xoff + wp->sx <= ctx->ox + ctx->sx) {
896 x = wp->xoff - ctx->ox;
897 width = wp->sx;
898 } else if (wp->xoff < ctx->ox &&
899 wp->xoff + wp->sx > ctx->ox + ctx->sx) {
904 } else if (wp->xoff < ctx->ox) {
906 i = ctx->ox - wp->xoff;
908 width = wp->sx - i;
912 x = wp->xoff - ctx->ox;
916 __func__, c->name, wp->id, i, j, x, y, width);
918 tty_default_colours(&defaults, wp);
929 struct window_pane *wp;
933 TAILQ_FOREACH(wp, &w->panes, entry) {
934 if (window_pane_show_scrollbar(wp, ctx->pane_scrollbars) &&
935 window_pane_visible(wp))
936 screen_redraw_draw_pane_scrollbar(ctx, wp);
943 struct window_pane *wp)
945 struct screen *s = wp->screen;
947 u_int sb = ctx->pane_scrollbars, total_height, sb_h = wp->sy;
949 int sb_w = wp->scrollbar_style.width;
950 int sb_pad = wp->scrollbar_style.pad;
951 int cm_y, cm_size, xoff = wp->xoff, ox = ctx->ox;
952 int sb_x, sb_y = (int)(wp->yoff - ctx->oy); /* sb top */
954 if (window_pane_mode(wp) == WINDOW_PANE_NO_MODE) {
963 if (TAILQ_FIRST(&wp->modes) == NULL)
965 if (window_copy_get_current_offset(wp, &cm_y, &cm_size) == 0)
976 sb_x = xoff + wp->sx - ox;
983 screen_redraw_draw_scrollbar(ctx, wp, sb_pos, sb_x, sb_y, sb_h,
987 wp->sb_slider_y = slider_y; /* top of slider y pos in scrollbar */
988 wp->sb_slider_h = slider_h; /* height of slider */
993 struct window_pane *wp, int sb_pos, int sb_x, int sb_y, u_int sb_h,
999 struct style *sb_style = &wp->scrollbar_style;
1003 int sx = ctx->sx, sy = ctx->sy, xoff = wp->xoff;
1004 int yoff = wp->yoff;