diff options
Diffstat (limited to 'window-scroll.c')
-rw-r--r-- | window-scroll.c | 140 |
1 files changed, 70 insertions, 70 deletions
diff --git a/window-scroll.c b/window-scroll.c index 7d49036c..d3f7d244 100644 --- a/window-scroll.c +++ b/window-scroll.c @@ -1,4 +1,4 @@ -/* $Id: window-scroll.c,v 1.26 2009-01-10 19:35:40 nicm Exp $ */ +/* $Id: window-scroll.c,v 1.27 2009-01-11 23:31:46 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -22,21 +22,21 @@ #include "tmux.h" -struct screen *window_scroll_init(struct window *); -void window_scroll_free(struct window *); -void window_scroll_resize(struct window *, u_int, u_int); -void window_scroll_key(struct window *, struct client *, int); +struct screen *window_scroll_init(struct window_pane *); +void window_scroll_free(struct window_pane *); +void window_scroll_resize(struct window_pane *, u_int, u_int); +void window_scroll_key(struct window_pane *, struct client *, int); -void window_scroll_redraw_screen(struct window *); +void window_scroll_redraw_screen(struct window_pane *); void window_scroll_write_line( - struct window *, struct screen_write_ctx *, u_int); + struct window_pane *, struct screen_write_ctx *, u_int); void window_scroll_write_column( - struct window *, struct screen_write_ctx *, u_int); + struct window_pane *, struct screen_write_ctx *, u_int); -void window_scroll_scroll_up(struct window *); -void window_scroll_scroll_down(struct window *); -void window_scroll_scroll_left(struct window *); -void window_scroll_scroll_right(struct window *); +void window_scroll_scroll_up(struct window_pane *); +void window_scroll_scroll_down(struct window_pane *); +void window_scroll_scroll_left(struct window_pane *); +void window_scroll_scroll_right(struct window_pane *); const struct window_mode window_scroll_mode = { window_scroll_init, @@ -54,90 +54,90 @@ struct window_scroll_mode_data { }; struct screen * -window_scroll_init(struct window *w) +window_scroll_init(struct window_pane *wp) { struct window_scroll_mode_data *data; struct screen *s; struct screen_write_ctx ctx; u_int i; - w->modedata = data = xmalloc(sizeof *data); + wp->modedata = data = xmalloc(sizeof *data); data->ox = 0; data->oy = 0; s = &data->screen; - screen_init(s, screen_size_x(&w->base), screen_size_y(&w->base), 0); + screen_init(s, screen_size_x(&wp->base), screen_size_y(&wp->base), 0); s->mode &= ~MODE_CURSOR; - screen_write_start(&ctx, s, NULL, NULL); + screen_write_start(&ctx, NULL, s); for (i = 0; i < screen_size_y(s); i++) - window_scroll_write_line(w, &ctx, i); + window_scroll_write_line(wp, &ctx, i); screen_write_stop(&ctx); return (s); } void -window_scroll_free(struct window *w) +window_scroll_free(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; screen_free(&data->screen); xfree(data); } void -window_scroll_resize(struct window *w, u_int sx, u_int sy) +window_scroll_resize(struct window_pane *wp, u_int sx, u_int sy) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct screen_write_ctx ctx; u_int i; screen_resize(s, sx, sy); - screen_write_start(&ctx, s, NULL, NULL); + screen_write_start(&ctx, NULL, s); for (i = 0; i < screen_size_y(s); i++) - window_scroll_write_line(w, &ctx, i); + window_scroll_write_line(wp, &ctx, i); screen_write_stop(&ctx); } void -window_scroll_key(struct window *w, unused struct client *c, int key) +window_scroll_key(struct window_pane *wp, unused struct client *c, int key) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; int table; - table = options_get_number(&w->options, "mode-keys"); + table = options_get_number(&wp->window->options, "mode-keys"); switch (mode_key_lookup(table, key)) { case MODEKEY_QUIT: - window_reset_mode(w); + window_pane_reset_mode(wp); break; case MODEKEY_LEFT: - window_scroll_scroll_left(w); + window_scroll_scroll_left(wp); break; case MODEKEY_RIGHT: - window_scroll_scroll_right(w); + window_scroll_scroll_right(wp); break; case MODEKEY_UP: - window_scroll_scroll_up(w); + window_scroll_scroll_up(wp); break; case MODEKEY_DOWN: - window_scroll_scroll_down(w); + window_scroll_scroll_down(wp); break; case MODEKEY_PPAGE: - if (data->oy + screen_size_y(s) > screen_hsize(&w->base)) - data->oy = screen_hsize(&w->base); + if (data->oy + screen_size_y(s) > screen_hsize(&wp->base)) + data->oy = screen_hsize(&wp->base); else data->oy += screen_size_y(s); - window_scroll_redraw_screen(w); + window_scroll_redraw_screen(wp); break; case MODEKEY_NPAGE: if (data->oy < screen_size_y(s)) data->oy = 0; else data->oy -= screen_size_y(s); - window_scroll_redraw_screen(w); + window_scroll_redraw_screen(wp); break; default: break; @@ -146,9 +146,9 @@ window_scroll_key(struct window *w, unused struct client *c, int key) void window_scroll_write_line( - struct window *w, struct screen_write_ctx *ctx, u_int py) + struct window_pane *wp, struct screen_write_ctx *ctx, u_int py) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct grid_cell gc; char hdr[32]; @@ -157,9 +157,9 @@ window_scroll_write_line( if (py == 0) { memcpy(&gc, &grid_default_cell, sizeof gc); size = xsnprintf(hdr, sizeof hdr, - "[%u,%u/%u]", data->ox, data->oy, screen_hsize(&w->base)); - gc.fg = options_get_number(&w->options, "mode-fg"); - gc.bg = options_get_number(&w->options, "mode-bg"); + "[%u,%u/%u]", data->ox, data->oy, screen_hsize(&wp->base)); + gc.fg = options_get_number(&wp->window->options, "mode-fg"); + gc.bg = options_get_number(&wp->window->options, "mode-bg"); screen_write_cursormove(ctx, screen_size_x(s) - size, 0); screen_write_puts(ctx, &gc, "%s", hdr); memcpy(&gc, &grid_default_cell, sizeof gc); @@ -167,58 +167,58 @@ window_scroll_write_line( size = 0; screen_write_cursormove(ctx, 0, py); - screen_write_copy(ctx, &w->base, data->ox, (screen_hsize(&w->base) - + screen_write_copy(ctx, &wp->base, data->ox, (screen_hsize(&wp->base) - data->oy) + py, screen_size_x(s) - size, 1); } void window_scroll_write_column( - struct window *w, struct screen_write_ctx *ctx, u_int px) + struct window_pane *wp, struct screen_write_ctx *ctx, u_int px) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; screen_write_cursormove(ctx, px, 0); - screen_write_copy(ctx, &w->base, data->ox + px, - screen_hsize(&w->base) - data->oy, 1, screen_size_y(s)); + screen_write_copy(ctx, &wp->base, data->ox + px, + screen_hsize(&wp->base) - data->oy, 1, screen_size_y(s)); } void -window_scroll_redraw_screen(struct window *w) +window_scroll_redraw_screen(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct screen_write_ctx ctx; u_int i; - screen_write_start_window(&ctx, w); + screen_write_start(&ctx, wp, NULL); for (i = 0; i < screen_size_y(s); i++) - window_scroll_write_line(w, &ctx, i); + window_scroll_write_line(wp, &ctx, i); screen_write_stop(&ctx); } void -window_scroll_scroll_up(struct window *w) +window_scroll_scroll_up(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen_write_ctx ctx; - if (data->oy >= screen_hsize(&w->base)) + if (data->oy >= screen_hsize(&wp->base)) return; data->oy++; - screen_write_start_window(&ctx, w); + screen_write_start(&ctx, wp, NULL); screen_write_cursormove(&ctx, 0, 0); screen_write_insertline(&ctx, 1); - window_scroll_write_line(w, &ctx, 0); - window_scroll_write_line(w, &ctx, 1); + window_scroll_write_line(wp, &ctx, 0); + window_scroll_write_line(wp, &ctx, 1); screen_write_stop(&ctx); } void -window_scroll_scroll_down(struct window *w) +window_scroll_scroll_down(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct screen_write_ctx ctx; @@ -226,18 +226,18 @@ window_scroll_scroll_down(struct window *w) return; data->oy--; - screen_write_start_window(&ctx, w); + screen_write_start(&ctx, wp, NULL); screen_write_cursormove(&ctx, 0, 0); screen_write_deleteline(&ctx, 1); - window_scroll_write_line(w, &ctx, screen_size_y(s) - 1); - window_scroll_write_line(w, &ctx, 0); + window_scroll_write_line(wp, &ctx, screen_size_y(s) - 1); + window_scroll_write_line(wp, &ctx, 0); screen_write_stop(&ctx); } void -window_scroll_scroll_right(struct window *w) +window_scroll_scroll_right(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct screen_write_ctx ctx; u_int i; @@ -246,20 +246,20 @@ window_scroll_scroll_right(struct window *w) return; data->ox++; - screen_write_start_window(&ctx, w); + screen_write_start(&ctx, wp, NULL); for (i = 1; i < screen_size_y(s); i++) { screen_write_cursormove(&ctx, 0, i); screen_write_deletecharacter(&ctx, 1); } - window_scroll_write_column(w, &ctx, screen_size_x(s) - 1); - window_scroll_write_line(w, &ctx, 0); + window_scroll_write_column(wp, &ctx, screen_size_x(s) - 1); + window_scroll_write_line(wp, &ctx, 0); screen_write_stop(&ctx); } void -window_scroll_scroll_left(struct window *w) +window_scroll_scroll_left(struct window_pane *wp) { - struct window_scroll_mode_data *data = w->modedata; + struct window_scroll_mode_data *data = wp->modedata; struct screen *s = &data->screen; struct screen_write_ctx ctx; u_int i; @@ -268,12 +268,12 @@ window_scroll_scroll_left(struct window *w) return; data->ox--; - screen_write_start_window(&ctx, w); + screen_write_start(&ctx, wp, NULL); for (i = 1; i < screen_size_y(s); i++) { screen_write_cursormove(&ctx, 0, i); screen_write_insertcharacter(&ctx, 1); } - window_scroll_write_column(w, &ctx, 0); - window_scroll_write_line(w, &ctx, 0); + window_scroll_write_column(wp, &ctx, 0); + window_scroll_write_line(wp, &ctx, 0); screen_write_stop(&ctx); } |