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.518 by sf-exg, Sun Jan 13 22:30:47 2013 UTC vs.
Revision 1.542 by root, Wed Dec 17 15:35:42 2014 UTC

77# include <gdk-pixbuf/gdk-pixbuf.h> 77# include <gdk-pixbuf/gdk-pixbuf.h>
78#endif 78#endif
79 79
80#if XRENDER && (HAVE_PIXBUF || ENABLE_TRANSPARENCY) 80#if XRENDER && (HAVE_PIXBUF || ENABLE_TRANSPARENCY)
81# define HAVE_BG_PIXMAP 1 81# define HAVE_BG_PIXMAP 1
82# define HAVE_IMG 1
82#endif 83#endif
83 84
84#if HAVE_BG_PIXMAP 85#if HAVE_BG_PIXMAP
85# if HAVE_PIXBUF 86# if HAVE_PIXBUF
86# define BG_IMAGE_FROM_FILE 1 87# define BG_IMAGE_FROM_FILE 1
175 176
176void * rxvt_malloc (size_t size); 177void * rxvt_malloc (size_t size);
177void * rxvt_calloc (size_t number, size_t size); 178void * rxvt_calloc (size_t number, size_t size);
178void * rxvt_realloc (void *ptr, size_t size); 179void * rxvt_realloc (void *ptr, size_t size);
179 180
181KeySym rxvt_XKeycodeToKeysym (Display *dpy, KeyCode keycode, int index);
182
180///////////////////////////////////////////////////////////////////////////// 183/////////////////////////////////////////////////////////////////////////////
181 184
182// temporarily replace the process environment 185// temporarily replace the process environment
183extern char **environ; 186extern char **environ;
184extern char **rxvt_environ; // the original environ pointer 187extern char **rxvt_environ; // the original environ pointer
185
186static inline void
187set_environ (stringvec *envv)
188{
189#if ENABLE_PERL
190 assert (envv);
191#else
192 if (envv)
193#endif
194 environ = (char **)envv->begin ();
195}
196 188
197static inline void 189static inline void
198set_environ (char **envv) 190set_environ (char **envv)
199{ 191{
200#if ENABLE_PERL 192#if ENABLE_PERL
400 ERASE = +2, 392 ERASE = +2,
401}; 393};
402 394
403/* modes for rxvt_term::scr_page () - scroll page. used by scrollbar window */ 395/* modes for rxvt_term::scr_page () - scroll page. used by scrollbar window */
404enum page_dirn { 396enum page_dirn {
405 UP, 397 DN = -1,
406 DN,
407 NO_DIR, 398 NO_DIR = 0,
399 UP = 1,
408}; 400};
409 401
410/* arguments for rxvt_term::scr_change_screen () */ 402/* arguments for rxvt_term::scr_change_screen () */
411enum { 403enum {
412 PRIMARY = 0, 404 PRIMARY = 0,
649#define PrivMode_MouseBtnEvent (1UL<<20) 641#define PrivMode_MouseBtnEvent (1UL<<20)
650#define PrivMode_MouseAnyEvent (1UL<<21) 642#define PrivMode_MouseAnyEvent (1UL<<21)
651#define PrivMode_BracketPaste (1UL<<22) 643#define PrivMode_BracketPaste (1UL<<22)
652#define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack 644#define PrivMode_ExtModeMouse (1UL<<23) // xterm pseudo-utf-8 hack
653#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales 645#define PrivMode_ExtMouseRight (1UL<<24) // xterm pseudo-utf-8, but works in non-utf-8-locales
646#define PrivMode_BlinkingCursor (1UL<<25)
654 647
655#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent) 648#define PrivMode_mouse_report (PrivMode_MouseX10|PrivMode_MouseX11|PrivMode_MouseBtnEvent|PrivMode_MouseAnyEvent)
656 649
657#ifdef ALLOW_132_MODE 650#ifdef ALLOW_132_MODE
658# define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK) 651# define PrivMode_Default (PrivMode_Autowrap|PrivMode_ShiftKeys|PrivMode_VisibleCursor|PrivMode_132OK)
661#endif 654#endif
662 655
663// do not change these constants lightly, there are many interdependencies 656// do not change these constants lightly, there are many interdependencies
664#define IMBUFSIZ 128 // input modifier buffer sizes 657#define IMBUFSIZ 128 // input modifier buffer sizes
665#define KBUFSZ 512 // size of keyboard mapping buffer 658#define KBUFSZ 512 // size of keyboard mapping buffer
666#define CBUFSIZ 2048 // size of command buffer 659#define CBUFSIZ 32768 // size of command buffer (longest command sequence possible)
667#define CBUFCNT 8 // never call pty_fill/cmd_parse more than this often in a row 660#define CBUFCNT 8 // never call pty_fill/cmd_parse more than this often in a row
668#define UBUFSIZ 2048 // character buffer 661#define UBUFSIZ 2048 // character buffer
669 662
670#if ENABLE_FRILLS 663#if ENABLE_FRILLS
671# include <X11/Xmd.h> 664# include <X11/Xmd.h>
744 737
745#define GET_STYLE(x) (((x) & RS_styleMask) >> RS_styleShift) 738#define GET_STYLE(x) (((x) & RS_styleMask) >> RS_styleShift)
746#define SET_STYLE(x,style) (((x) & ~RS_styleMask) | ((style) << RS_styleShift)) 739#define SET_STYLE(x,style) (((x) & ~RS_styleMask) | ((style) << RS_styleShift))
747 740
748#define GET_ATTR(x) (((x) & RS_attrMask)) 741#define GET_ATTR(x) (((x) & RS_attrMask))
749// return attributes defining the background, encoding doesn't matter
750// depends on RS_fgShift > RS_bgShift
751#define GET_BGATTR(x) \
752 (ecb_unlikely ((x) & RS_RVid) \
753 ? (((x) & (RS_attrMask & ~RS_RVid)) \
754 | (((x) & RS_fgMask) >> (RS_fgShift - RS_bgShift))) \
755 : ((x) & (RS_attrMask | RS_bgMask)))
756#define SET_FGCOLOR(x,fg) (((x) & ~RS_fgMask) | ((fg) << RS_fgShift)) 742#define SET_FGCOLOR(x,fg) (((x) & ~RS_fgMask) | ((fg) << RS_fgShift))
757#define SET_BGCOLOR(x,bg) (((x) & ~RS_bgMask) | ((bg) << RS_bgShift)) 743#define SET_BGCOLOR(x,bg) (((x) & ~RS_bgMask) | ((bg) << RS_bgShift))
758#define SET_ATTR(x,a) (((x) & ~RS_attrMask) | (a)) 744#define SET_ATTR(x,a) (((x) & ~RS_attrMask) | (a))
759 745
760#define RS_SAME(a,b) (!(((a) ^ (b)) & ~RS_Careful)) 746#define RS_SAME(a,b) (!(((a) ^ (b)) & ~RS_Careful))
869// that are not representable in unicode, as well as characters 855// that are not representable in unicode, as well as characters
870// not fitting in the BMP. 856// not fitting in the BMP.
871struct compose_char 857struct compose_char
872{ 858{
873 unicode_t c1, c2; // any chars != NOCHAR are valid 859 unicode_t c1, c2; // any chars != NOCHAR are valid
874 #if __cplusplus >= 201103L || ECB_GCC_VERSION(4,4) 860
875 compose_char () = default;
876 #endif
877 compose_char (unicode_t c1, unicode_t c2) 861 compose_char (unicode_t c1, unicode_t c2)
878 : c1(c1), c2(c2) 862 : c1(c1), c2(c2)
879 { } 863 { }
880}; 864};
881 865
1143/* ---------- */ 1127/* ---------- */
1144 rend_t rstyle; 1128 rend_t rstyle;
1145/* ---------- */ 1129/* ---------- */
1146#ifdef SELECTION_SCROLLING 1130#ifdef SELECTION_SCROLLING
1147 int scroll_selection_lines; 1131 int scroll_selection_lines;
1148 enum page_dirn scroll_selection_dir;
1149 int selection_save_x, 1132 int selection_save_x,
1150 selection_save_y, 1133 selection_save_y,
1151 selection_save_state; 1134 selection_save_state;
1152#endif 1135#endif
1153/* ---------- */ 1136/* ---------- */
1162 mouse_row, 1145 mouse_row,
1163 mouse_col, 1146 mouse_col,
1164# ifdef POINTER_BLANK 1147# ifdef POINTER_BLANK
1165 pointerBlankDelay, 1148 pointerBlankDelay,
1166# endif 1149# endif
1150 multiClickTime,
1151 cursor_type,
1167 allowedxerror; 1152 allowedxerror;
1168/* ---------- */ 1153/* ---------- */
1169 unsigned int ModLevel3Mask, 1154 unsigned int ModLevel3Mask,
1170 ModMetaMask, 1155 ModMetaMask,
1171 ModNumLockMask; 1156 ModNumLockMask;
1198 image_effects root_effects; 1183 image_effects root_effects;
1199 1184
1200 void render_root_image (); 1185 void render_root_image ();
1201# endif 1186# endif
1202 1187
1203 void tint_image (rxvt_img *img, rxvt_color &tint, bool tint_set, int shade);
1204
1205 ev_tstamp bg_valid_since; 1188 ev_tstamp bg_valid_since;
1206 1189
1207 bool bg_window_size_sensitive (); 1190 bool bg_window_size_sensitive ();
1208 bool bg_window_position_sensitive (); 1191 bool bg_window_position_sensitive ();
1209 1192
1242 char *locale; 1225 char *locale;
1243 char charsets[4]; 1226 char charsets[4];
1244 char *v_buffer; /* pointer to physical buffer */ 1227 char *v_buffer; /* pointer to physical buffer */
1245 unsigned int v_buflen; /* size of area to write */ 1228 unsigned int v_buflen; /* size of area to write */
1246 stringvec *argv, *envv; /* if != 0, will be freed at destroy time */ 1229 stringvec *argv, *envv; /* if != 0, will be freed at destroy time */
1230 char **env;
1247 1231
1248#ifdef KEYSYM_RESOURCE 1232#ifdef KEYSYM_RESOURCE
1249 keyboard_manager *keyboard; 1233 keyboard_manager *keyboard;
1250#endif 1234#endif
1251#ifndef NO_RESOURCES 1235#ifndef NO_RESOURCES
1334 void pointer_blank (); 1318 void pointer_blank ();
1335#endif 1319#endif
1336 void pointer_unblank (); 1320 void pointer_unblank ();
1337 1321
1338 void tt_printf (const char *fmt,...); 1322 void tt_printf (const char *fmt,...);
1323 void tt_write_ (const char *data, unsigned int len);
1339 void tt_write (const char *data, unsigned int len); 1324 void tt_write (const char *data, unsigned int len);
1325 void tt_write_user_input (const char *data, unsigned int len);
1340 void pty_write (); 1326 void pty_write ();
1341 1327
1342 void make_current () const // make this the "currently active" urxvt instance 1328 void make_current () const // make this the "currently active" urxvt instance
1343 { 1329 {
1344 SET_R (this); 1330 SET_R (this);
1345 set_environ (envv); 1331 set_environ (env);
1346 rxvt_set_locale (locale); 1332 rxvt_set_locale (locale);
1347 } 1333 }
1348 1334
1349#if USE_XIM 1335#if USE_XIM
1350 rxvt_xim *input_method; 1336 rxvt_xim *input_method;
1383#if ENABLE_FRILLS 1369#if ENABLE_FRILLS
1384 void set_urgency (bool enable); 1370 void set_urgency (bool enable);
1385#else 1371#else
1386 void set_urgency (bool enable) { } 1372 void set_urgency (bool enable) { }
1387#endif 1373#endif
1388 void update_fade_color (unsigned int idx); 1374 void update_fade_color (unsigned int idx, bool first_time = false);
1389#ifdef PRINTPIPE 1375#ifdef PRINTPIPE
1390 FILE *popen_printer (); 1376 FILE *popen_printer ();
1391 int pclose_printer (FILE *stream); 1377 int pclose_printer (FILE *stream);
1392#endif 1378#endif
1393 void process_print_pipe (); 1379 void process_print_pipe ();
1402 void process_color_seq (int report, int color, const char *str, char resp); 1388 void process_color_seq (int report, int color, const char *str, char resp);
1403 void process_xterm_seq (int op, char *str, char resp); 1389 void process_xterm_seq (int op, char *str, char resp);
1404 int privcases (int mode, unsigned long bit); 1390 int privcases (int mode, unsigned long bit);
1405 void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg); 1391 void process_terminal_mode (int mode, int priv, unsigned int nargs, const int *arg);
1406 void process_sgr_mode (unsigned int nargs, const int *arg); 1392 void process_sgr_mode (unsigned int nargs, const int *arg);
1393 void set_cursor_style (int style);
1407 // init.C 1394 // init.C
1408 void init (stringvec *argv, stringvec *envv); 1395 void init (stringvec *argv, stringvec *envv);
1409 void init (int argc, const char *const *argv, const char *const *envv); 1396 void init (int argc, const char *const *argv, const char *const *envv);
1410 void init2 (int argc, const char *const *argv); 1397 void init2 (int argc, const char *const *argv);
1411 void init_vars (); 1398 void init_vars ();
1416 void init_command (const char *const *argv); 1403 void init_command (const char *const *argv);
1417 void run_command (const char *const *argv); 1404 void run_command (const char *const *argv);
1418 int run_child (const char *const *argv); 1405 int run_child (const char *const *argv);
1419 void color_aliases (int idx); 1406 void color_aliases (int idx);
1420 void create_windows (int argc, const char *const *argv); 1407 void create_windows (int argc, const char *const *argv);
1421 void get_colours (); 1408 void get_colors ();
1422 void get_ourmods (); 1409 void get_ourmods ();
1423 void set_icon (const char *file); 1410 void set_icon (const char *file);
1424 // main.C 1411 // main.C
1425 void tt_winch (); 1412 void tt_winch ();
1426 rxvt_term (); 1413 rxvt_term ();
1427 ~rxvt_term (); 1414 ~rxvt_term ();
1428 void destroy (); 1415 void destroy ();
1429 void emergency_cleanup (); 1416 void emergency_cleanup ();
1430 void recolour_cursor (); 1417 void recolor_cursor ();
1431 void resize_all_windows (unsigned int newwidth, unsigned int newheight, int ignoreparent); 1418 void resize_all_windows (unsigned int newwidth, unsigned int newheight, int ignoreparent);
1432 void window_calc (unsigned int newwidth, unsigned int newheight); 1419 void window_calc (unsigned int newwidth, unsigned int newheight);
1433 bool set_fonts (); 1420 bool set_fonts ();
1434 void set_string_property (Atom prop, const char *str, int len = -1); 1421 void set_string_property (Atom prop, const char *str, int len = -1);
1435 void set_mbstring_property (Atom prop, const char *str, int len = -1); 1422 void set_mbstring_property (Atom prop, const char *str, int len = -1);
1485 void paste (char *data, unsigned int len) NOTHROW; 1472 void paste (char *data, unsigned int len) NOTHROW;
1486 void scr_alloc () NOTHROW; 1473 void scr_alloc () NOTHROW;
1487 void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW; 1474 void scr_blank_line (line_t &l, unsigned int col, unsigned int width, rend_t efs) const NOTHROW;
1488 void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW; 1475 void scr_blank_screen_mem (line_t &l, rend_t efs) const NOTHROW;
1489 void scr_kill_char (line_t &l, int col) const NOTHROW; 1476 void scr_kill_char (line_t &l, int col) const NOTHROW;
1477 void scr_set_char_rend (line_t &l, int col, rend_t rend);
1490 int scr_scroll_text (int row1, int row2, int count) NOTHROW; 1478 int scr_scroll_text (int row1, int row2, int count) NOTHROW;
1491 void copy_line (line_t &dst, line_t &src); 1479 void copy_line (line_t &dst, line_t &src);
1492 void scr_reset (); 1480 void scr_reset ();
1493 void scr_release () NOTHROW; 1481 void scr_release () NOTHROW;
1494 void scr_clear (bool really = false) NOTHROW; 1482 void scr_clear (bool really = false) NOTHROW;
1500 void scr_backindex () NOTHROW; 1488 void scr_backindex () NOTHROW;
1501 void scr_forwardindex () NOTHROW; 1489 void scr_forwardindex () NOTHROW;
1502#endif 1490#endif
1503 void scr_touch (bool refresh) NOTHROW; 1491 void scr_touch (bool refresh) NOTHROW;
1504 void scr_expose (int x, int y, int width, int height, bool refresh) NOTHROW; 1492 void scr_expose (int x, int y, int width, int height, bool refresh) NOTHROW;
1505 void scr_recolour (bool refresh = true) NOTHROW; 1493 void scr_recolor (bool refresh = true) NOTHROW;
1506 void scr_remap_chars () NOTHROW; 1494 void scr_remap_chars () NOTHROW;
1507 void scr_remap_chars (line_t &l) NOTHROW; 1495 void scr_remap_chars (line_t &l) NOTHROW;
1508 1496
1509 enum cursor_mode { SAVE, RESTORE }; 1497 enum cursor_mode { SAVE, RESTORE };
1510 1498
1535 void scr_report_position () NOTHROW; 1523 void scr_report_position () NOTHROW;
1536 void set_font_style () NOTHROW; 1524 void set_font_style () NOTHROW;
1537 void scr_charset_choose (int set) NOTHROW; 1525 void scr_charset_choose (int set) NOTHROW;
1538 void scr_charset_set (int set, unsigned int ch) NOTHROW; 1526 void scr_charset_set (int set, unsigned int ch) NOTHROW;
1539 void scr_move_to (int y, int len) NOTHROW; 1527 void scr_move_to (int y, int len) NOTHROW;
1528 bool scr_page (int nlines) NOTHROW;
1540 bool scr_page (enum page_dirn direction, int nlines) NOTHROW; 1529 bool scr_page (enum page_dirn direction, int nlines) NOTHROW
1530 {
1531 return scr_page (direction * nlines);
1532 }
1541 bool scr_changeview (int new_view_start) NOTHROW; 1533 bool scr_changeview (int new_view_start) NOTHROW;
1542 void scr_bell () NOTHROW; 1534 void scr_bell () NOTHROW;
1543 void scr_printscreen (int fullhist) NOTHROW; 1535 void scr_printscreen (int fullhist) NOTHROW;
1544 void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW; 1536 void scr_xor_rect (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle1, rend_t rstyle2) NOTHROW;
1545 void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW; 1537 void scr_xor_span (int beg_row, int beg_col, int end_row, int end_col, rend_t rstyle) NOTHROW;
1546 void scr_reverse_selection () NOTHROW; 1538 void scr_reverse_selection () NOTHROW;
1547 void scr_dump (int fd) NOTHROW; 1539 void scr_dump (int fd) NOTHROW;
1548 1540
1549 void selection_check (int check_more) NOTHROW; 1541 void selection_check (int check_more) NOTHROW;
1542 void selection_changed () NOTHROW; /* sets want_refresh, corrects coordinates */
1550 void selection_request (Time tm, int selnum = Sel_Primary) NOTHROW; 1543 void selection_request (Time tm, int selnum = Sel_Primary) NOTHROW;
1551 void selection_clear (bool clipboard = false) NOTHROW; 1544 void selection_clear (bool clipboard = false) NOTHROW;
1552 void selection_make (Time tm); 1545 void selection_make (Time tm);
1553 bool selection_grab (Time tm, bool clipboard = false) NOTHROW; 1546 bool selection_grab (Time tm, bool clipboard = false) NOTHROW;
1554 void selection_start_colrow (int col, int row) NOTHROW; 1547 void selection_start_colrow (int col, int row) NOTHROW;
1561 void selection_rotate (int x, int y) NOTHROW; 1554 void selection_rotate (int x, int y) NOTHROW;
1562 1555
1563 // xdefaults.C 1556 // xdefaults.C
1564 void rxvt_usage (int type); 1557 void rxvt_usage (int type);
1565 const char **get_options (int argc, const char *const *argv); 1558 const char **get_options (int argc, const char *const *argv);
1559 int parse_keysym (const char *str, unsigned int &state);
1566 int parse_keysym (const char *str, const char *arg); 1560 int bind_action (const char *str, const char *arg);
1567 const char *x_resource (const char *name); 1561 const char *x_resource (const char *name);
1568 void extract_resources (); 1562 void extract_resources ();
1563 void enumerate_keysym_resources (void (*cb)(rxvt_term *, const char *, const char *));
1569 void extract_keysym_resources (); 1564 void extract_keysym_resources ();
1570}; 1565};
1571 1566
1572#endif /* _RXVT_H_ */ 1567#endif /* _RXVT_H_ */
1573 1568

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines