--- rxvt-unicode/src/rxvt.h 2007/12/28 14:00:47 1.340 +++ rxvt-unicode/src/rxvt.h 2007/12/29 14:25:42 1.344 @@ -78,6 +78,7 @@ #include "rxvtutil.h" #include "rxvtfont.h" #include "rxvttoolkit.h" +#include "scrollbar.h" #include "ev_cpp.h" #include "salloc.h" #include "libptytty.h" @@ -113,7 +114,6 @@ #endif #include -typedef struct termios ttymode_t; #include "background.h" @@ -283,85 +283,6 @@ # define HAVE_SCROLLBARS 1 #endif -#define R_SB_ALIGN_CENTRE 0 -#define R_SB_ALIGN_TOP 1 -#define R_SB_ALIGN_BOTTOM 2 - -#define R_SB_NEXT 1 -#define R_SB_XTERM 2 -#define R_SB_PLAIN 4 -#define R_SB_RXVT 8 - -#define SB_WIDTH_NEXT 19 -#define SB_WIDTH_XTERM 15 -#define SB_WIDTH_PLAIN 7 -#ifndef SB_WIDTH_RXVT -# define SB_WIDTH_RXVT 10 -#endif - -/* - * NeXT scrollbar defines - */ -#define SB_PADDING 1 -#define SB_BORDER_WIDTH 1 -#define SB_BEVEL_WIDTH_UPPER_LEFT 1 -#define SB_BEVEL_WIDTH_LOWER_RIGHT 2 -#define SB_LEFT_PADDING (SB_PADDING + SB_BORDER_WIDTH) -#define SB_MARGIN_SPACE (SB_PADDING * 2) -#define SB_BUTTON_WIDTH (SB_WIDTH_NEXT - SB_MARGIN_SPACE - SB_BORDER_WIDTH) -#define SB_BUTTON_HEIGHT (SB_BUTTON_WIDTH) -#define SB_BUTTON_SINGLE_HEIGHT (SB_BUTTON_HEIGHT + SB_PADDING) -#define SB_BUTTON_BOTH_HEIGHT (SB_BUTTON_SINGLE_HEIGHT * 2) -#define SB_BUTTON_TOTAL_HEIGHT (SB_BUTTON_BOTH_HEIGHT + SB_PADDING) -#define SB_BUTTON_BEVEL_X (SB_LEFT_PADDING) -#define SB_BUTTON_FACE_X (SB_BUTTON_BEVEL_X + SB_BEVEL_WIDTH_UPPER_LEFT) -#define SB_THUMB_MIN_HEIGHT (SB_BUTTON_WIDTH - (SB_PADDING * 2)) - /* - * +-------------+ - * | | <---< SB_PADDING - * | ::::::::::: | - * | ::::::::::: | - * ''''''''''''''''' - * ,,,,,,,,,,,,,,,,, - * | ::::::::::: | - * | ::::::::::: | - * | +---------------< SB_BEVEL_WIDTH_UPPER_LEFT - * | | :::::::: | - * | V :::: vv-------< SB_BEVEL_WIDTH_LOWER_RIGHT - * | +---------+ | - * | | ......%%| | - * | | ......%%| | - * | | .. ()..%%| | - * | | ......%%| | - * | | %%%%%%%%| | - * | +---------+ | <......................... - * | | <---< SB_PADDING : - * | +---------+ | <-+.......... :---< SB_BUTTON_TOTAL_HEIGHT - * | | ......%%| | | : : - * | | ../\..%%| | |---< SB_BUTTON_HEIGHT : - * | | %%%%%%%%| | | : : - * | +---------+ | <-+ : : - * | | : : - * | +---------+ | <-+ :---< SB_BUTTON_BOTH_HEIGHT - * | | ......%%| | | : : - * | | ..\/..%%| | | : : - * | | %%%%%%%%| | |---< SB_BUTTON_SINGLE_HEIGHT - * | +---------+ | | : : - * | | | : : - * +-------------+ <-+.........:............: - * ^^|_________| : - * || | : - * || +---< SB_BUTTON_WIDTH - * || : - * |+------< SB_PADDING - * |: : - * +----< SB_BORDER_WIDTH - * : : - * :............: - * | - * +---< SB_WIDTH_NEXT - */ - enum { NO_REFRESH = 0, /* Window not visible at all! */ FAST_REFRESH = 1, /* Fully exposed window */ @@ -740,36 +661,6 @@ # define FONTSET(style) fontset[0] #endif -#ifdef HAVE_SCROLLBARS -# define scrollbar_TotalWidth() (scrollBar.width + sb_shadow * 2) -#else -# define scrollbar_TotalWidth() (0) -#endif -#define scrollbar_isMotion() (scrollBar.state == 'm') -#define scrollbar_isUp() (scrollBar.state == 'U') -#define scrollbar_isDn() (scrollBar.state == 'D') -#define scrollbar_isUpDn() isupper (scrollBar.state) -#define isScrollbarWindow(w) (scrollBar.state && (w) == scrollBar.win) - -#define scrollbarnext_dnval() (scrollBar.end + (scrollBar.width + 1)) -#define scrollbarnext_upButton(y) ((y) > scrollBar.end \ - && (y) <= scrollbarnext_dnval ()) -#define scrollbarnext_dnButton(y) ((y) > scrollbarnext_dnval()) -#define SCROLLNEXT_MINHEIGHT SB_THUMB_MIN_HEIGHT -#define scrollbarrxvt_upButton(y) ((y) < scrollBar.beg) -#define scrollbarrxvt_dnButton(y) ((y) > scrollBar.end) -#define SCROLLRXVT_MINHEIGHT 10 -#define SCROLLXTERM_MINHEIGHT 10 - -#define scrollbar_minheight() (scrollBar.style == R_SB_NEXT \ - ? SCROLLNEXT_MINHEIGHT \ - : SCROLLRXVT_MINHEIGHT) -#define scrollbar_above_slider(y) ((y) < scrollBar.top) -#define scrollbar_below_slider(y) ((y) > scrollBar.bot) -#define scrollbar_position(y) ((y) - scrollBar.beg) -#define scrollbar_size() (scrollBar.end - scrollBar.beg \ - - scrollbar_minheight ()) - typedef callback log_callback; typedef callback getfd_callback; @@ -1031,35 +922,12 @@ /* ------------------------------------------------------------------------- */ -typedef struct { - char state; /* scrollbar state */ - char init; /* scrollbar has been initialised */ - unsigned int beg; /* slider sub-window begin height */ - unsigned int end; /* slider sub-window end height */ - unsigned int top; /* slider top position */ - unsigned int bot; /* slider bottom position */ - unsigned int style; /* style: rxvt, xterm, next */ - unsigned int width; /* scrollbar width */ - Window win; - int (rxvt_term::*update)(int, int, int, int); - - void setIdle() { state = 1 ; } - void setMotion() { state = 'm'; } - void setUp() { state = 'U'; } - void setDn() { state = 'D'; } -} scrollBar_t; - struct rxvt_vars : TermWin_t { scrollBar_t scrollBar; uint8_t options[(Opt_count + 7) >> 3]; XSizeHints szHint; rxvt_color *pix_colors; - rxvt_color *pix_colors_focused; -#ifdef OFF_FOCUS_FADING - rxvt_color *pix_colors_unfocused; -#endif Cursor TermWin_cursor; /* cursor for vt window */ - int sb_shadow; /* scrollbar shadow width */ int numlock_state; line_t *row_buf; // all lines, scrollback + terminal, circular, followed by temp_buf line_t *drawn_buf; // text on screen @@ -1068,6 +936,10 @@ screen_t screen; screen_t swap; selection_t selection; + rxvt_color pix_colors_focused[TOTAL_COLORS]; +#ifdef OFF_FOCUS_FADING + rxvt_color pix_colors_unfocused[TOTAL_COLORS]; +#endif }; struct rxvt_term : zero_initialized, rxvt_vars, rxvt_screen { @@ -1193,7 +1065,7 @@ /* ---------- */ struct mouse_event MEvent; XComposeStatus compose; - ttymode_t tio; + struct termios tio; row_col_t oldcursor; #ifdef HAVE_BG_PIXMAP bgPixmap_t bgPixmap;