… | |
… | |
762 | # include "optinc.h" |
762 | # include "optinc.h" |
763 | # undef nodef |
763 | # undef nodef |
764 | # undef def |
764 | # undef def |
765 | |
765 | |
766 | HV *stash = gv_stashpv ("urxvt", 1); |
766 | HV *stash = gv_stashpv ("urxvt", 1); |
767 | struct { |
767 | static const struct { |
768 | const char *name; |
768 | const char *name; |
769 | IV iv; |
769 | IV iv; |
770 | } *civ, const_iv[] = { |
770 | } *civ, const_iv[] = { |
771 | # define const_iv(name) { # name, (IV)name } |
771 | # define const_iv(name) { # name, (IV)name } |
772 | const_iv (DEFAULT_RSTYLE), |
772 | const_iv (DEFAULT_RSTYLE), |
… | |
… | |
923 | RETVAL |
923 | RETVAL |
924 | |
924 | |
925 | int |
925 | int |
926 | SET_FGCOLOR (int rend, int new_color) |
926 | SET_FGCOLOR (int rend, int new_color) |
927 | CODE: |
927 | CODE: |
928 | RETVAL = SET_FGCOLOR (rend, new_color); |
928 | RETVAL = SET_FGCOLOR (rend, clamp (new_color, 0, TOTAL_COLORS - 1)); |
929 | OUTPUT: |
929 | OUTPUT: |
930 | RETVAL |
930 | RETVAL |
931 | |
931 | |
932 | int |
932 | int |
933 | SET_BGCOLOR (int rend, int new_color) |
933 | SET_BGCOLOR (int rend, int new_color) |
934 | CODE: |
934 | CODE: |
935 | RETVAL = SET_BGCOLOR (rend, new_color); |
935 | RETVAL = SET_BGCOLOR (rend, clamp (new_color, 0, TOTAL_COLORS - 1)); |
936 | OUTPUT: |
936 | OUTPUT: |
937 | RETVAL |
937 | RETVAL |
938 | |
938 | |
939 | int |
939 | int |
940 | GET_CUSTOM (int rend) |
940 | GET_CUSTOM (int rend) |
… | |
… | |
1292 | |
1292 | |
1293 | void |
1293 | void |
1294 | rxvt_term::focus_out () |
1294 | rxvt_term::focus_out () |
1295 | |
1295 | |
1296 | void |
1296 | void |
|
|
1297 | rxvt_term::key_press (unsigned int state, unsigned int keycode, Time time = CurrentTime) |
|
|
1298 | ALIAS: |
|
|
1299 | key_release = 1 |
|
|
1300 | CODE: |
|
|
1301 | { |
|
|
1302 | XKeyEvent xkey; |
|
|
1303 | |
|
|
1304 | memset (&xkey, 0, sizeof (xkey)); |
|
|
1305 | |
|
|
1306 | xkey.time = time; |
|
|
1307 | xkey.state = state; |
|
|
1308 | xkey.keycode = keycode; |
|
|
1309 | |
|
|
1310 | xkey.type = ix ? KeyRelease : KeyPress; |
|
|
1311 | xkey.display = THIS->dpy; |
|
|
1312 | xkey.window = THIS->vt; |
|
|
1313 | xkey.root = THIS->display->root; |
|
|
1314 | xkey.subwindow = THIS->vt; |
|
|
1315 | |
|
|
1316 | if (ix) |
|
|
1317 | THIS->key_release (xkey); |
|
|
1318 | else |
|
|
1319 | THIS->key_press (xkey); |
|
|
1320 | } |
|
|
1321 | |
|
|
1322 | void |
1297 | rxvt_term::want_refresh () |
1323 | rxvt_term::want_refresh () |
1298 | CODE: |
1324 | CODE: |
1299 | THIS->want_refresh = 1; |
1325 | THIS->want_refresh = 1; |
1300 | |
1326 | |
1301 | void |
1327 | void |
… | |
… | |
1492 | |
1518 | |
1493 | void |
1519 | void |
1494 | rxvt_term::_resource (char *name, int index, SV *newval = 0) |
1520 | rxvt_term::_resource (char *name, int index, SV *newval = 0) |
1495 | PPCODE: |
1521 | PPCODE: |
1496 | { |
1522 | { |
1497 | struct resval { const char *name; int value; } rslist [] = { |
1523 | static const struct resval { const char *name; int value; } *rs, rslist [] = { |
1498 | # define def(name) { # name, Rs_ ## name }, |
1524 | # define def(name) { # name, Rs_ ## name }, |
1499 | # define reserve(name,count) |
1525 | # define reserve(name,count) |
1500 | # include "rsinc.h" |
1526 | # include "rsinc.h" |
1501 | # undef def |
1527 | # undef def |
1502 | # undef reserve |
1528 | # undef reserve |
1503 | }; |
1529 | }; |
1504 | |
1530 | |
1505 | struct resval *rs = rslist + sizeof (rslist) / sizeof (rslist [0]); |
1531 | rs = rslist + sizeof (rslist) / sizeof (rslist [0]); |
1506 | |
1532 | |
1507 | do { |
1533 | do { |
1508 | if (rs-- == rslist) |
1534 | if (rs-- == rslist) |
1509 | croak ("no such resource '%s', requested", name); |
1535 | croak ("no such resource '%s', requested", name); |
1510 | } while (strcmp (name, rs->name)); |
1536 | } while (strcmp (name, rs->name)); |
… | |
… | |
1786 | : 1; |
1812 | : 1; |
1787 | |
1813 | |
1788 | XChangeProperty (THIS->dpy, window, property, |
1814 | XChangeProperty (THIS->dpy, window, property, |
1789 | type, format, PropModeReplace, |
1815 | type, format, PropModeReplace, |
1790 | (unsigned char *)data_, len / elemsize); |
1816 | (unsigned char *)data_, len / elemsize); |
1791 | XSync (THIS->dpy, 0); |
|
|
1792 | } |
1817 | } |
1793 | |
1818 | |
1794 | Atom |
1819 | Atom |
1795 | XInternAtom (rxvt_term *term, char *atom_name, int only_if_exists = FALSE) |
1820 | XInternAtom (rxvt_term *term, char *atom_name, int only_if_exists = FALSE) |
1796 | C_ARGS: term->dpy, atom_name, only_if_exists |
1821 | C_ARGS: term->dpy, atom_name, only_if_exists |