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

Comparing rxvt-unicode/src/rxvtperl.xs (file contents):
Revision 1.216 by root, Thu Oct 3 01:11:38 2013 UTC vs.
Revision 1.226 by sf-exg, Wed Sep 3 18:20:37 2014 UTC

1/*----------------------------------------------------------------------* 1/*----------------------------------------------------------------------*
2 * File: rxvtperl.xs 2 * File: rxvtperl.xs
3 *----------------------------------------------------------------------* 3 *----------------------------------------------------------------------*
4 * 4 *
5 * All portions of code are copyright by their respective author/s. 5 * All portions of code are copyright by their respective author/s.
6 * Copyright (c) 2005-2008,2011 Marc Lehmann <schmorp@schmorp.de> 6 * Copyright (c) 2005-2014,2011 Marc Lehmann <schmorp@schmorp.de>
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by 9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version. 11 * (at your option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
490 490
491 FREETMPS; 491 FREETMPS;
492 LEAVE; 492 LEAVE;
493 493
494 return ret; 494 return ret;
495}
496
497static void
498_keysym_resource_push (rxvt_term *term, const char *k, const char *v)
499{
500 dSP;
501 XPUSHs (sv_2mortal (newSVpv (v, 0)));
502 PUTBACK;
503}
504
505static void
506_keysym_resources (rxvt_term *term)
507{
508 term->enumerate_keysym_resources (_keysym_resource_push);
495} 509}
496 510
497static void 511static void
498ungrab (rxvt_term *THIS) 512ungrab (rxvt_term *THIS)
499{ 513{
793 static const struct { 807 static const struct {
794 const char *name; 808 const char *name;
795 IV iv; 809 IV iv;
796 } *civ, const_iv[] = { 810 } *civ, const_iv[] = {
797# define const_iv(name) { # name, (IV)name } 811# define const_iv(name) { # name, (IV)name }
812 const_iv (HOOK_INIT),
813 const_iv (HOOK_DESTROY),
814 const_iv (HOOK_ACTION),
815
798 const_iv (NUM_RESOURCES), 816 const_iv (NUM_RESOURCES),
799 const_iv (DEFAULT_RSTYLE), 817 const_iv (DEFAULT_RSTYLE),
800 const_iv (OVERLAY_RSTYLE), 818 const_iv (OVERLAY_RSTYLE),
801 const_iv (Color_Bits), 819 const_iv (Color_Bits),
802 const_iv (RS_bgShift), const_iv (RS_bgMask), 820 const_iv (RS_bgShift), const_iv (RS_bgMask),
816 const_iv (RS_Uline), 834 const_iv (RS_Uline),
817 835
818 // TODO: should support all colour constants, create colorinc.h &c 836 // TODO: should support all colour constants, create colorinc.h &c
819 const_iv (Color_fg), 837 const_iv (Color_fg),
820 const_iv (Color_bg), 838 const_iv (Color_bg),
839#if OFF_FOCUS_FADING
821 const_iv (Color_fade), 840 const_iv (Color_fade),
841#endif
822 const_iv (Color_pointer_fg), 842 const_iv (Color_pointer_fg),
823 const_iv (Color_pointer_bg), 843 const_iv (Color_pointer_bg),
824 const_iv (Color_border), 844 const_iv (Color_border),
825 const_iv (NRS_COLORS), 845 const_iv (NRS_COLORS),
826 const_iv (TOTAL_COLORS), 846 const_iv (TOTAL_COLORS),
1187void 1207void
1188rxvt_term::put_option_db (octet_string specifier, octet_string value) 1208rxvt_term::put_option_db (octet_string specifier, octet_string value)
1189 CODE: 1209 CODE:
1190 XrmPutStringResource (&THIS->option_db, specifier, value); 1210 XrmPutStringResource (&THIS->option_db, specifier, value);
1191 1211
1212void
1213rxvt_term::_keysym_resources ()
1214 PPCODE:
1215 PUTBACK;
1216 _keysym_resources (THIS);
1217 SPAGAIN;
1218
1192int 1219int
1193rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt) 1220rxvt_term::grab_button (int button, U32 modifiers, Window window = THIS->vt)
1194 CODE: 1221 CODE:
1195 RETVAL = XGrabButton (THIS->dpy, button, modifiers, window, 1, 1222 RETVAL = XGrabButton (THIS->dpy, button, modifiers, window, 1,
1196 ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask, 1223 ButtonPressMask | ButtonReleaseMask | EnterWindowMask | LeaveWindowMask | PointerMotionMask,
1810 THIS->cursor_blink_reset (); 1837 THIS->cursor_blink_reset ();
1811 break; 1838 break;
1812#endif 1839#endif
1813 1840
1814 case Opt_cursorUnderline: 1841 case Opt_cursorUnderline:
1842 THIS->cursor_type = set ? 1 : 0;
1815 THIS->want_refresh = 1; 1843 THIS->want_refresh = 1;
1816 THIS->refresh_check (); 1844 THIS->refresh_check ();
1817 break; 1845 break;
1818 1846
1819# case Opt_scrollBar_floating: 1847# case Opt_scrollBar_floating:
1825} 1853}
1826 OUTPUT: 1854 OUTPUT:
1827 RETVAL 1855 RETVAL
1828 1856
1829bool 1857bool
1830rxvt_term::parse_keysym (char *keysym, char *str) 1858rxvt_term::bind_action (char *keysym, char *str)
1859 ALIAS:
1860 parse_keysym = 1
1831 CODE: 1861 CODE:
1832 RETVAL = 0 < THIS->parse_keysym (keysym, str); 1862 RETVAL = 0 < THIS->bind_action (keysym, str);
1833 THIS->keyboard->register_done (); 1863 THIS->keyboard->register_done ();
1834 OUTPUT: 1864 OUTPUT:
1835 RETVAL 1865 RETVAL
1836
1837void
1838rxvt_term::register_command (int keysym, unsigned int state, SV *str)
1839 CODE:
1840 wchar_t *wstr = sv2wcs (str);
1841 THIS->keyboard->register_user_translation (keysym, state, wstr);
1842 free (wstr);
1843 1866
1844void 1867void
1845rxvt_term::screen_cur (...) 1868rxvt_term::screen_cur (...)
1846 PROTOTYPE: $;$$ 1869 PROTOTYPE: $;$$
1847 ALIAS: 1870 ALIAS:
1973 THIS->scr_add_lines (wstr, wcslen (wstr)); 1996 THIS->scr_add_lines (wstr, wcslen (wstr));
1974 free (wstr); 1997 free (wstr);
1975} 1998}
1976 1999
1977void 2000void
2001rxvt_term::tt_write_user_input (SV *octets)
2002 INIT:
2003 STRLEN len;
2004 char *str = SvPVbyte (octets, len);
2005 C_ARGS:
2006 str, len
2007
2008void
1978rxvt_term::tt_write (SV *octets) 2009rxvt_term::tt_write (SV *octets)
1979 INIT: 2010 INIT:
1980 STRLEN len; 2011 STRLEN len;
1981 char *str = SvPVbyte (octets, len); 2012 char *str = SvPVbyte (octets, len);
1982 C_ARGS: 2013 C_ARGS:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines