… | |
… | |
201 | STRG (Rs_backgroundPixmap, "backgroundPixmap", "pixmap", "file[;geom]", "background pixmap"), |
201 | STRG (Rs_backgroundPixmap, "backgroundPixmap", "pixmap", "file[;geom]", "background pixmap"), |
202 | #endif |
202 | #endif |
203 | #if ENABLE_EWMH |
203 | #if ENABLE_EWMH |
204 | STRG (Rs_iconfile, "iconFile", "icon", "file", "path to application icon image"), |
204 | STRG (Rs_iconfile, "iconFile", "icon", "file", "path to application icon image"), |
205 | #endif |
205 | #endif |
|
|
206 | #ifdef HAVE_XMU |
|
|
207 | RSTRG (Rs_pointerShape, "pointerShape", "string"), |
|
|
208 | #endif |
206 | /* fonts: command-line option = resource name */ |
209 | /* fonts: command-line option = resource name */ |
207 | STRG (Rs_font, "font", "fn", "fontname", "normal text font"), |
210 | STRG (Rs_font, "font", "fn", "fontname", "normal text font"), |
208 | #if ENABLE_STYLES |
211 | #if ENABLE_STYLES |
209 | STRG (Rs_boldFont, "boldFont", "fb", "fontname", "bold font"), |
212 | STRG (Rs_boldFont, "boldFont", "fb", "fontname", "bold font"), |
210 | STRG (Rs_italicFont, "italicFont", "fi", "fontname", "italic font"), |
213 | STRG (Rs_italicFont, "italicFont", "fi", "fontname", "italic font"), |
… | |
… | |
625 | return 0; |
628 | return 0; |
626 | } |
629 | } |
627 | |
630 | |
628 | /*}}} */ |
631 | /*}}} */ |
629 | |
632 | |
630 | #ifndef NO_RESOURCES |
|
|
631 | /*----------------------------------------------------------------------*/ |
633 | /*----------------------------------------------------------------------*/ |
632 | |
634 | |
633 | # ifdef KEYSYM_RESOURCE |
635 | #ifdef KEYSYM_RESOURCE |
634 | static void |
636 | static void |
635 | rxvt_define_key (rxvt_term *term, const char *k, const char *v) |
637 | rxvt_define_key (rxvt_term *term, const char *k, const char *v) |
636 | { |
638 | { |
637 | term->bind_action (k, v); |
639 | term->bind_action (k, v); |
638 | } |
640 | } |
… | |
… | |
768 | |
770 | |
769 | if (*arg == '\0' || (sym = parse_keysym (str, state)) == -1) |
771 | if (*arg == '\0' || (sym = parse_keysym (str, state)) == -1) |
770 | return -1; |
772 | return -1; |
771 | |
773 | |
772 | wchar_t *ws = rxvt_mbstowcs (arg); |
774 | wchar_t *ws = rxvt_mbstowcs (arg); |
|
|
775 | if (!HOOK_INVOKE ((this, HOOK_REGISTER_COMMAND, DT_INT, sym, DT_INT, state, DT_WCS_LEN, ws, wcslen (ws), DT_END))) |
773 | keyboard->register_action (sym, state, ws); |
776 | keyboard->register_action (sym, state, ws); |
774 | |
777 | |
775 | free (ws); |
778 | free (ws); |
776 | return 1; |
779 | return 1; |
777 | } |
780 | } |
778 | |
781 | |
779 | # endif /* KEYSYM_RESOURCE */ |
782 | #endif /* KEYSYM_RESOURCE */ |
780 | #endif /* NO_RESOURCES */ |
|
|
781 | |
783 | |
782 | static char * |
784 | static char * |
783 | get_res (XrmDatabase database, const char *program, const char *option) |
785 | get_res (XrmDatabase database, const char *program, const char *option) |
784 | { |
786 | { |
785 | char resource[512]; |
787 | char resource[512]; |
… | |
… | |
859 | } |
861 | } |
860 | |
862 | |
861 | void |
863 | void |
862 | rxvt_term::enumerate_keysym_resources (void (*cb)(rxvt_term *, const char *, const char *)) |
864 | rxvt_term::enumerate_keysym_resources (void (*cb)(rxvt_term *, const char *, const char *)) |
863 | { |
865 | { |
864 | #ifndef NO_RESOURCES |
|
|
865 | /* |
866 | /* |
866 | * [R5 or later]: enumerate the resource database |
867 | * [R5 or later]: enumerate the resource database |
867 | */ |
868 | */ |
868 | # ifdef KEYSYM_RESOURCE |
869 | #ifdef KEYSYM_RESOURCE |
869 | void *closure[2] = { |
870 | void *closure[2] = { |
870 | (void *)this, |
871 | (void *)this, |
871 | (void *)cb, |
872 | (void *)cb, |
872 | }; |
873 | }; |
873 | |
874 | |
874 | XrmDatabase database = XrmGetDatabase (dpy); |
875 | XrmDatabase database = XrmGetDatabase (dpy); |
875 | XrmName name_prefix[3]; |
876 | XrmName name_prefix[3]; |
876 | XrmClass class_prefix[3]; |
877 | XrmClass class_prefix[3]; |
877 | |
878 | |
878 | name_prefix[0] = XrmStringToName (rs[Rs_name]); |
|
|
879 | name_prefix[1] = XrmStringToName ("keysym"); |
879 | name_prefix[1] = XrmStringToName ("keysym"); |
880 | name_prefix[2] = NULLQUARK; |
880 | name_prefix[2] = NULLQUARK; |
881 | class_prefix[0] = XrmStringToName (RESCLASS); |
|
|
882 | class_prefix[1] = XrmStringToName ("Keysym"); |
881 | class_prefix[1] = XrmStringToName ("Keysym"); |
883 | class_prefix[2] = NULLQUARK; |
882 | class_prefix[2] = NULLQUARK; |
884 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
883 | |
885 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
|
|
886 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
|
|
887 | # ifdef RESFALLBACK |
884 | # ifdef RESFALLBACK |
888 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
885 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESFALLBACK); |
889 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
886 | /* XXX: Need to check sizeof (rxvt_t) == sizeof (XPointer) */ |
890 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
887 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
891 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
888 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
892 | # endif |
|
|
893 | # endif |
889 | # endif |
894 | |
890 | |
895 | #endif /* NO_RESOURCES */ |
891 | name_prefix[0] = class_prefix[0] = XrmStringToName (RESCLASS); |
|
|
892 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
|
|
893 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
|
|
894 | |
|
|
895 | name_prefix[0] = class_prefix[0] = XrmStringToName (rs[Rs_name]); |
|
|
896 | XrmEnumerateDatabase (database, name_prefix, class_prefix, |
|
|
897 | XrmEnumOneLevel, rxvt_keysym_enumerate_helper, (XPointer)closure); |
|
|
898 | #endif |
896 | } |
899 | } |
897 | |
900 | |
898 | void |
901 | void |
899 | rxvt_term::extract_keysym_resources () |
902 | rxvt_term::extract_keysym_resources () |
900 | { |
903 | { |
|
|
904 | #ifdef KEYSYM_RESOURCE |
901 | enumerate_keysym_resources (rxvt_define_key); |
905 | enumerate_keysym_resources (rxvt_define_key); |
|
|
906 | #endif |
902 | } |
907 | } |
903 | |
908 | |
904 | /*----------------------- end-of-file (C source) -----------------------*/ |
909 | /*----------------------- end-of-file (C source) -----------------------*/ |
905 | |
910 | |