ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/rxvt.h
(Generate patch)

Comparing rxvt-unicode/src/rxvt.h (file contents):
Revision 1.340 by ayin, Fri Dec 28 14:00:47 2007 UTC vs.
Revision 1.344 by ayin, Sat Dec 29 14:25:42 2007 UTC

76 76
77#include "encoding.h" 77#include "encoding.h"
78#include "rxvtutil.h" 78#include "rxvtutil.h"
79#include "rxvtfont.h" 79#include "rxvtfont.h"
80#include "rxvttoolkit.h" 80#include "rxvttoolkit.h"
81#include "scrollbar.h"
81#include "ev_cpp.h" 82#include "ev_cpp.h"
82#include "salloc.h" 83#include "salloc.h"
83#include "libptytty.h" 84#include "libptytty.h"
84 85
85#include "rxvtperl.h" 86#include "rxvtperl.h"
111#ifndef HAVE_XPOINTER 112#ifndef HAVE_XPOINTER
112typedef char *XPointer; 113typedef char *XPointer;
113#endif 114#endif
114 115
115#include <termios.h> 116#include <termios.h>
116typedef struct termios ttymode_t;
117 117
118#include "background.h" 118#include "background.h"
119 119
120#ifndef STDIN_FILENO 120#ifndef STDIN_FILENO
121# define STDIN_FILENO 0 121# define STDIN_FILENO 0
280#define scrollBar_esc 30 280#define scrollBar_esc 30
281 281
282#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) || defined(PLAIN_SCROLLBAR) 282#if defined(RXVT_SCROLLBAR) || defined(NEXT_SCROLLBAR) || defined(XTERM_SCROLLBAR) || defined(PLAIN_SCROLLBAR)
283# define HAVE_SCROLLBARS 1 283# define HAVE_SCROLLBARS 1
284#endif 284#endif
285
286#define R_SB_ALIGN_CENTRE 0
287#define R_SB_ALIGN_TOP 1
288#define R_SB_ALIGN_BOTTOM 2
289
290#define R_SB_NEXT 1
291#define R_SB_XTERM 2
292#define R_SB_PLAIN 4
293#define R_SB_RXVT 8
294
295#define SB_WIDTH_NEXT 19
296#define SB_WIDTH_XTERM 15
297#define SB_WIDTH_PLAIN 7
298#ifndef SB_WIDTH_RXVT
299# define SB_WIDTH_RXVT 10
300#endif
301
302/*
303 * NeXT scrollbar defines
304 */
305#define SB_PADDING 1
306#define SB_BORDER_WIDTH 1
307#define SB_BEVEL_WIDTH_UPPER_LEFT 1
308#define SB_BEVEL_WIDTH_LOWER_RIGHT 2
309#define SB_LEFT_PADDING (SB_PADDING + SB_BORDER_WIDTH)
310#define SB_MARGIN_SPACE (SB_PADDING * 2)
311#define SB_BUTTON_WIDTH (SB_WIDTH_NEXT - SB_MARGIN_SPACE - SB_BORDER_WIDTH)
312#define SB_BUTTON_HEIGHT (SB_BUTTON_WIDTH)
313#define SB_BUTTON_SINGLE_HEIGHT (SB_BUTTON_HEIGHT + SB_PADDING)
314#define SB_BUTTON_BOTH_HEIGHT (SB_BUTTON_SINGLE_HEIGHT * 2)
315#define SB_BUTTON_TOTAL_HEIGHT (SB_BUTTON_BOTH_HEIGHT + SB_PADDING)
316#define SB_BUTTON_BEVEL_X (SB_LEFT_PADDING)
317#define SB_BUTTON_FACE_X (SB_BUTTON_BEVEL_X + SB_BEVEL_WIDTH_UPPER_LEFT)
318#define SB_THUMB_MIN_HEIGHT (SB_BUTTON_WIDTH - (SB_PADDING * 2))
319 /*
320 * +-------------+
321 * | | <---< SB_PADDING
322 * | ::::::::::: |
323 * | ::::::::::: |
324 * '''''''''''''''''
325 * ,,,,,,,,,,,,,,,,,
326 * | ::::::::::: |
327 * | ::::::::::: |
328 * | +---------------< SB_BEVEL_WIDTH_UPPER_LEFT
329 * | | :::::::: |
330 * | V :::: vv-------< SB_BEVEL_WIDTH_LOWER_RIGHT
331 * | +---------+ |
332 * | | ......%%| |
333 * | | ......%%| |
334 * | | .. ()..%%| |
335 * | | ......%%| |
336 * | | %%%%%%%%| |
337 * | +---------+ | <.........................
338 * | | <---< SB_PADDING :
339 * | +---------+ | <-+.......... :---< SB_BUTTON_TOTAL_HEIGHT
340 * | | ......%%| | | : :
341 * | | ../\..%%| | |---< SB_BUTTON_HEIGHT :
342 * | | %%%%%%%%| | | : :
343 * | +---------+ | <-+ : :
344 * | | : :
345 * | +---------+ | <-+ :---< SB_BUTTON_BOTH_HEIGHT
346 * | | ......%%| | | : :
347 * | | ..\/..%%| | | : :
348 * | | %%%%%%%%| | |---< SB_BUTTON_SINGLE_HEIGHT
349 * | +---------+ | | : :
350 * | | | : :
351 * +-------------+ <-+.........:............:
352 * ^^|_________| :
353 * || | :
354 * || +---< SB_BUTTON_WIDTH
355 * || :
356 * |+------< SB_PADDING
357 * |: :
358 * +----< SB_BORDER_WIDTH
359 * : :
360 * :............:
361 * |
362 * +---< SB_WIDTH_NEXT
363 */
364 285
365enum { 286enum {
366 NO_REFRESH = 0, /* Window not visible at all! */ 287 NO_REFRESH = 0, /* Window not visible at all! */
367 FAST_REFRESH = 1, /* Fully exposed window */ 288 FAST_REFRESH = 1, /* Fully exposed window */
368 SLOW_REFRESH = 2, /* Partially exposed window */ 289 SLOW_REFRESH = 2, /* Partially exposed window */
737#if ENABLE_STYLES 658#if ENABLE_STYLES
738# define FONTSET(style) fontset[GET_STYLE (style)] 659# define FONTSET(style) fontset[GET_STYLE (style)]
739#else 660#else
740# define FONTSET(style) fontset[0] 661# define FONTSET(style) fontset[0]
741#endif 662#endif
742
743#ifdef HAVE_SCROLLBARS
744# define scrollbar_TotalWidth() (scrollBar.width + sb_shadow * 2)
745#else
746# define scrollbar_TotalWidth() (0)
747#endif
748#define scrollbar_isMotion() (scrollBar.state == 'm')
749#define scrollbar_isUp() (scrollBar.state == 'U')
750#define scrollbar_isDn() (scrollBar.state == 'D')
751#define scrollbar_isUpDn() isupper (scrollBar.state)
752#define isScrollbarWindow(w) (scrollBar.state && (w) == scrollBar.win)
753
754#define scrollbarnext_dnval() (scrollBar.end + (scrollBar.width + 1))
755#define scrollbarnext_upButton(y) ((y) > scrollBar.end \
756 && (y) <= scrollbarnext_dnval ())
757#define scrollbarnext_dnButton(y) ((y) > scrollbarnext_dnval())
758#define SCROLLNEXT_MINHEIGHT SB_THUMB_MIN_HEIGHT
759#define scrollbarrxvt_upButton(y) ((y) < scrollBar.beg)
760#define scrollbarrxvt_dnButton(y) ((y) > scrollBar.end)
761#define SCROLLRXVT_MINHEIGHT 10
762#define SCROLLXTERM_MINHEIGHT 10
763
764#define scrollbar_minheight() (scrollBar.style == R_SB_NEXT \
765 ? SCROLLNEXT_MINHEIGHT \
766 : SCROLLRXVT_MINHEIGHT)
767#define scrollbar_above_slider(y) ((y) < scrollBar.top)
768#define scrollbar_below_slider(y) ((y) > scrollBar.bot)
769#define scrollbar_position(y) ((y) - scrollBar.beg)
770#define scrollbar_size() (scrollBar.end - scrollBar.beg \
771 - scrollbar_minheight ())
772 663
773typedef callback<void (const char *)> log_callback; 664typedef callback<void (const char *)> log_callback;
774typedef callback<int (int)> getfd_callback; 665typedef callback<int (int)> getfd_callback;
775 666
776/****************************************************************************/ 667/****************************************************************************/
1029Opt_count 920Opt_count
1030}; 921};
1031 922
1032/* ------------------------------------------------------------------------- */ 923/* ------------------------------------------------------------------------- */
1033 924
1034typedef struct {
1035 char state; /* scrollbar state */
1036 char init; /* scrollbar has been initialised */
1037 unsigned int beg; /* slider sub-window begin height */
1038 unsigned int end; /* slider sub-window end height */
1039 unsigned int top; /* slider top position */
1040 unsigned int bot; /* slider bottom position */
1041 unsigned int style; /* style: rxvt, xterm, next */
1042 unsigned int width; /* scrollbar width */
1043 Window win;
1044 int (rxvt_term::*update)(int, int, int, int);
1045
1046 void setIdle() { state = 1 ; }
1047 void setMotion() { state = 'm'; }
1048 void setUp() { state = 'U'; }
1049 void setDn() { state = 'D'; }
1050} scrollBar_t;
1051
1052struct rxvt_vars : TermWin_t { 925struct rxvt_vars : TermWin_t {
1053 scrollBar_t scrollBar; 926 scrollBar_t scrollBar;
1054 uint8_t options[(Opt_count + 7) >> 3]; 927 uint8_t options[(Opt_count + 7) >> 3];
1055 XSizeHints szHint; 928 XSizeHints szHint;
1056 rxvt_color *pix_colors; 929 rxvt_color *pix_colors;
1057 rxvt_color *pix_colors_focused;
1058#ifdef OFF_FOCUS_FADING
1059 rxvt_color *pix_colors_unfocused;
1060#endif
1061 Cursor TermWin_cursor; /* cursor for vt window */ 930 Cursor TermWin_cursor; /* cursor for vt window */
1062 int sb_shadow; /* scrollbar shadow width */
1063 int numlock_state; 931 int numlock_state;
1064 line_t *row_buf; // all lines, scrollback + terminal, circular, followed by temp_buf 932 line_t *row_buf; // all lines, scrollback + terminal, circular, followed by temp_buf
1065 line_t *drawn_buf; // text on screen 933 line_t *drawn_buf; // text on screen
1066 line_t *swap_buf; // lines for swap buffer 934 line_t *swap_buf; // lines for swap buffer
1067 char *tabs; /* per location: 1 == tab-stop */ 935 char *tabs; /* per location: 1 == tab-stop */
1068 screen_t screen; 936 screen_t screen;
1069 screen_t swap; 937 screen_t swap;
1070 selection_t selection; 938 selection_t selection;
939 rxvt_color pix_colors_focused[TOTAL_COLORS];
940#ifdef OFF_FOCUS_FADING
941 rxvt_color pix_colors_unfocused[TOTAL_COLORS];
942#endif
1071}; 943};
1072 944
1073struct rxvt_term : zero_initialized, rxvt_vars, rxvt_screen { 945struct rxvt_term : zero_initialized, rxvt_vars, rxvt_screen {
1074 946
1075 // special markers with magic addresses 947 // special markers with magic addresses
1191/* ---------- */ 1063/* ---------- */
1192 Cursor leftptr_cursor; 1064 Cursor leftptr_cursor;
1193/* ---------- */ 1065/* ---------- */
1194 struct mouse_event MEvent; 1066 struct mouse_event MEvent;
1195 XComposeStatus compose; 1067 XComposeStatus compose;
1196 ttymode_t tio; 1068 struct termios tio;
1197 row_col_t oldcursor; 1069 row_col_t oldcursor;
1198#ifdef HAVE_BG_PIXMAP 1070#ifdef HAVE_BG_PIXMAP
1199 bgPixmap_t bgPixmap; 1071 bgPixmap_t bgPixmap;
1200#endif 1072#endif
1201#ifdef HAVE_AFTERIMAGE 1073#ifdef HAVE_AFTERIMAGE

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines