… | |
… | |
222 | STRG (Rs_saveLines, "saveLines", "sl", "number", "number of scrolled lines to save"), |
222 | STRG (Rs_saveLines, "saveLines", "sl", "number", "number of scrolled lines to save"), |
223 | #if ENABLE_XEMBED |
223 | #if ENABLE_XEMBED |
224 | STRG (Rs_embed, NULL, "embed", "windowid", "window id to embed terminal in"), |
224 | STRG (Rs_embed, NULL, "embed", "windowid", "window id to embed terminal in"), |
225 | #endif |
225 | #endif |
226 | #if XFT |
226 | #if XFT |
|
|
227 | BOOL (Rs_buffered, "buffered", NULL, Opt_buffered, 0, NULL), |
|
|
228 | #endif |
|
|
229 | #if ENABLE_FRILLS |
227 | STRG (Rs_depth, "depth", "depth", "number", "depth of visual to request"), |
230 | STRG (Rs_depth, "depth", "depth", "number", "depth of visual to request"), |
228 | BOOL (Rs_buffered, "buffered", NULL, Opt_buffered, 0, NULL), |
231 | STRG (Rs_visual, "visual", "visual", "number", "visual id to request"), |
229 | #endif |
|
|
230 | #if ENABLE_FRILLS |
|
|
231 | RSTRG (Rs_transient_for, "transient-for", "windowid"), |
232 | RSTRG (Rs_transient_for, "transient-for", "windowid"), |
232 | BOOL (Rs_override_redirect, "override-redirect", "override-redirect", Opt_override_redirect, 0, "set override-redirect on the terminal window"), |
233 | BOOL (Rs_override_redirect, "override-redirect", "override-redirect", Opt_override_redirect, 0, "set override-redirect on the terminal window"), |
233 | STRG (Rs_pty_fd, NULL, "pty-fd", "fileno", "file descriptor of pty to use"), |
234 | STRG (Rs_pty_fd, NULL, "pty-fd", "fileno", "file descriptor of pty to use"), |
234 | BOOL (Rs_hold, "hold", "hold", Opt_hold, 0, "retain window after shell exit"), |
235 | BOOL (Rs_hold, "hold", "hold", Opt_hold, 0, "retain window after shell exit"), |
235 | STRG (Rs_ext_bwidth, "externalBorder", "w", "number", "external border in pixels"), |
236 | STRG (Rs_ext_bwidth, "externalBorder", "w", "number", "external border in pixels"), |
… | |
… | |
638 | rxvt_define_key (XrmDatabase *database ecb_unused, |
639 | rxvt_define_key (XrmDatabase *database ecb_unused, |
639 | XrmBindingList bindings ecb_unused, |
640 | XrmBindingList bindings ecb_unused, |
640 | XrmQuarkList quarks, |
641 | XrmQuarkList quarks, |
641 | XrmRepresentation *type ecb_unused, |
642 | XrmRepresentation *type ecb_unused, |
642 | XrmValue *value, |
643 | XrmValue *value, |
643 | XPointer closure ecb_unused) |
644 | XPointer closure) |
644 | { |
645 | { |
|
|
646 | rxvt_term *term = (rxvt_term *)closure; |
645 | int last; |
647 | int last; |
646 | |
648 | |
647 | for (last = 0; quarks[last] != NULLQUARK; last++) /* look for last quark in list */ |
649 | for (last = 0; quarks[last] != NULLQUARK; last++) /* look for last quark in list */ |
648 | ; |
650 | ; |
649 | |
651 | |
650 | last--; |
652 | last--; |
651 | GET_R->parse_keysym (XrmQuarkToString (quarks[last]), (char *)value->addr);//D//TODO |
653 | term->parse_keysym (XrmQuarkToString (quarks[last]), (char *)value->addr); |
652 | return False; |
654 | return False; |
653 | } |
655 | } |
654 | |
656 | |
655 | /* |
657 | /* |
656 | * look for something like this (XK_Delete) |
658 | * look for something like this (XK_Delete) |
… | |
… | |
741 | } |
743 | } |
742 | |
744 | |
743 | wchar_t *ws = rxvt_mbstowcs (arg); |
745 | wchar_t *ws = rxvt_mbstowcs (arg); |
744 | if (!HOOK_INVOKE ((this, HOOK_REGISTER_COMMAND, DT_INT, sym, DT_INT, state, DT_WCS_LEN, ws, wcslen (ws), DT_END))) |
746 | if (!HOOK_INVOKE ((this, HOOK_REGISTER_COMMAND, DT_INT, sym, DT_INT, state, DT_WCS_LEN, ws, wcslen (ws), DT_END))) |
745 | keyboard->register_user_translation (sym, state, ws); |
747 | keyboard->register_user_translation (sym, state, ws); |
|
|
748 | |
746 | free (ws); |
749 | free (ws); |
747 | return 1; |
750 | return 1; |
748 | } |
751 | } |
749 | |
752 | |
750 | # endif /* KEYSYM_RESOURCE */ |
753 | # endif /* KEYSYM_RESOURCE */ |
… | |
… | |
796 | /* |
799 | /* |
797 | * Query resources for options that affect us |
800 | * Query resources for options that affect us |
798 | */ |
801 | */ |
799 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
802 | for (int entry = 0; entry < ecb_array_length (optList); entry++) |
800 | { |
803 | { |
|
|
804 | int s; |
801 | const char *kw = optList[entry].kw; |
805 | const char *kw = optList[entry].kw; |
802 | |
806 | |
803 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
807 | if (kw == NULL || rs[optList[entry].doff] != NULL) |
804 | continue; // previously set |
808 | continue; // previously set |
805 | |
809 | |
… | |
… | |
811 | allocated.push_back ((void *)p); |
815 | allocated.push_back ((void *)p); |
812 | rs[optList[entry].doff] = p; |
816 | rs[optList[entry].doff] = p; |
813 | |
817 | |
814 | if (optList_isBool (entry)) |
818 | if (optList_isBool (entry)) |
815 | { |
819 | { |
816 | bool s = parse_bool_resource (p); |
820 | s = strcasecmp (p, "TRUE") == 0 |
|
|
821 | || strcasecmp (p, "YES") == 0 |
|
|
822 | || strcasecmp (p, "ON") == 0 |
|
|
823 | || strcasecmp (p, "1") == 0; |
817 | |
824 | |
818 | if (optList_isReverse (entry)) |
825 | if (optList_isReverse (entry)) |
819 | s = !s; |
826 | s = !s; |
820 | |
827 | |
821 | set_option (optList[entry].index, s); |
828 | set_option (optList[entry].index, s); |
… | |
… | |
826 | } |
833 | } |
827 | |
834 | |
828 | void |
835 | void |
829 | rxvt_term::extract_keysym_resources () |
836 | rxvt_term::extract_keysym_resources () |
830 | { |
837 | { |
831 | #if !defined NO_RESOURCES && defined KEYSYM_RESOURCE |
838 | #ifndef NO_RESOURCES |
832 | find_resources ("keysym", "Keysym", XrmEnumOneLevel, rxvt_define_key); |
|
|
833 | #endif |
|
|
834 | } |
|
|
835 | |
|
|
836 | #if !defined NO_RESOURCES && (defined KEYSYM_RESOURCE || defined BG_IMAGE_FROM_FILE) |
|
|
837 | void |
|
|
838 | rxvt_term::find_resources (const char *n_prefix, const char *c_prefix, int mode, |
|
|
839 | Bool (*proc)(XrmDatabase *, XrmBindingList, XrmQuarkList, XrmRepresentation *, XrmValue *, XPointer)) |
|
|
840 | { |
|
|
841 | /* |
839 | /* |
842 | * [R5 or later]: enumerate the resource database |
840 | * [R5 or later]: enumerate the resource database |
843 | */ |
841 | */ |
|
|
842 | # ifdef KEYSYM_RESOURCE |
844 | XrmDatabase database = XrmGetDatabase (dpy); |
843 | XrmDatabase database = XrmGetDatabase (dpy); |
845 | XrmName name_prefix[3]; |
844 | XrmName name_prefix[3]; |
846 | XrmClass class_prefix[3]; |
845 | XrmClass class_prefix[3]; |
847 | |
846 | |
848 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
847 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
849 | name_prefix[1] = XrmStringToName (n_prefix); |
848 | name_prefix[1] = XrmStringToName ("keysym"); |
850 | name_prefix[2] = NULLQUARK; |
849 | name_prefix[2] = NULLQUARK; |
851 | class_prefix[0] = XrmStringToName (RESCLASS); |
850 | class_prefix[0] = XrmStringToName (RESCLASS); |
852 | class_prefix[1] = XrmStringToName (c_prefix); |
851 | class_prefix[1] = XrmStringToName ("Keysym"); |
853 | class_prefix[2] = NULLQUARK; |
852 | class_prefix[2] = NULLQUARK; |
854 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
853 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
855 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
854 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
856 | mode, proc, NULL); |
855 | XrmEnumOneLevel, rxvt_define_key, (XPointer)this); |
857 | # ifdef RESFALLBACK |
856 | # ifdef RESFALLBACK |
858 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
857 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
859 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
858 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
860 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
859 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
861 | mode, proc, NULL); |
860 | XrmEnumOneLevel, rxvt_define_key, (XPointer)this); |
862 | # endif |
861 | # endif |
|
|
862 | # endif |
|
|
863 | |
|
|
864 | #endif /* NO_RESOURCES */ |
863 | } |
865 | } |
864 | #endif |
|
|
865 | |
866 | |
866 | /*----------------------- end-of-file (C source) -----------------------*/ |
867 | /*----------------------- end-of-file (C source) -----------------------*/ |