diff options
| author | Gerd Moellmann | 2001-03-22 19:51:57 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-03-22 19:51:57 +0000 |
| commit | bce72079877b0bba60c9317c3ae3001569423964 (patch) | |
| tree | 24e8a67e334ab3bc30d4b0fa0d7e878e90411dd9 /src | |
| parent | 97305dec1cf99a6c805d644ba6a0a468d285ae15 (diff) | |
| download | emacs-bce72079877b0bba60c9317c3ae3001569423964.tar.gz emacs-bce72079877b0bba60c9317c3ae3001569423964.zip | |
(x_update_menu_appearance): Renamed from
x_set_menu_face_resources. Use different resources for popups.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfaces.c | 129 |
1 files changed, 63 insertions, 66 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index b9a134ff719..8347fe95b67 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -601,6 +601,10 @@ static void clear_font_table P_ ((struct frame *)); | |||
| 601 | extern Lisp_Object w32_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); | 601 | extern Lisp_Object w32_list_fonts P_ ((struct frame *, Lisp_Object, int, int)); |
| 602 | #endif /* WINDOWSNT */ | 602 | #endif /* WINDOWSNT */ |
| 603 | 603 | ||
| 604 | #ifdef USE_X_TOOLKIT | ||
| 605 | static void x_update_menu_appearance P_ ((struct frame *)); | ||
| 606 | #endif /* USE_X_TOOLKIT */ | ||
| 607 | |||
| 604 | #endif /* HAVE_WINDOW_SYSTEM */ | 608 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 605 | 609 | ||
| 606 | 610 | ||
| @@ -4341,91 +4345,84 @@ DEFUN ("internal-set-lisp-face-attribute-from-resource", | |||
| 4341 | #endif /* HAVE_WINDOW_SYSTEM */ | 4345 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 4342 | 4346 | ||
| 4343 | 4347 | ||
| 4344 | #ifdef HAVE_X_WINDOWS | ||
| 4345 | /*********************************************************************** | 4348 | /*********************************************************************** |
| 4346 | Menu face | 4349 | Menu face |
| 4347 | ***********************************************************************/ | 4350 | ***********************************************************************/ |
| 4348 | 4351 | ||
| 4349 | #ifdef USE_X_TOOLKIT | 4352 | #if defined HAVE_X_WINDOWS && defined USE_X_TOOLKIT |
| 4350 | 4353 | ||
| 4351 | void | 4354 | /* Make menus on frame F appear as specified by the `menu' face. */ |
| 4352 | x_set_menu_face_resources (f) | 4355 | |
| 4356 | static void | ||
| 4357 | x_update_menu_appearance (f) | ||
| 4353 | struct frame *f; | 4358 | struct frame *f; |
| 4354 | { | 4359 | { |
| 4355 | struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); | 4360 | struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
| 4361 | XrmDatabase rdb; | ||
| 4356 | 4362 | ||
| 4357 | if (dpyinfo) | 4363 | if (dpyinfo |
| 4364 | && (rdb = XrmGetDatabase (FRAME_X_DISPLAY (f)), | ||
| 4365 | rdb != NULL)) | ||
| 4358 | { | 4366 | { |
| 4359 | Display *dpy = FRAME_X_DISPLAY (f); | 4367 | char line[512]; |
| 4360 | XrmDatabase rdb = XrmGetDatabase (dpy); | 4368 | Lisp_Object lface = lface_from_face_name (f, Qmenu, 1); |
| 4361 | extern Lisp_Object Vx_resource_name; | 4369 | struct face *face = FACE_FROM_ID (f, MENU_FACE_ID); |
| 4362 | 4370 | char *myname = XSTRING (Vx_resource_name)->data; | |
| 4363 | if (rdb) | 4371 | int changed_p = 0; |
| 4364 | { | ||
| 4365 | char line[512]; | ||
| 4366 | Lisp_Object lface = lface_from_face_name (f, Qmenu, 1); | ||
| 4367 | struct face *face = FACE_FROM_ID (f, MENU_FACE_ID); | ||
| 4368 | char *myname = XSTRING (Vx_resource_name)->data; | ||
| 4369 | int changes = 0; | ||
| 4370 | 4372 | ||
| 4371 | if (STRINGP (LFACE_FOREGROUND (lface))) | 4373 | if (STRINGP (LFACE_FOREGROUND (lface))) |
| 4372 | { | 4374 | { |
| 4373 | sprintf (line, "%s.menu*foreground: %s", | 4375 | sprintf (line, "%s.popup_menu*foreground: %s", |
| 4374 | myname, XSTRING (LFACE_FOREGROUND (lface))->data); | 4376 | myname, XSTRING (LFACE_FOREGROUND (lface))->data); |
| 4375 | XrmPutLineResource (&rdb, line); | 4377 | XrmPutLineResource (&rdb, line); |
| 4376 | sprintf (line, "%s.pane.menubar*foreground: %s", | 4378 | sprintf (line, "%s.pane.menubar*foreground: %s", |
| 4377 | myname, XSTRING (LFACE_FOREGROUND (lface))->data); | 4379 | myname, XSTRING (LFACE_FOREGROUND (lface))->data); |
| 4378 | XrmPutLineResource (&rdb, line); | 4380 | XrmPutLineResource (&rdb, line); |
| 4379 | ++changes; | 4381 | changed_p = 1; |
| 4380 | } | 4382 | } |
| 4381 | 4383 | ||
| 4382 | if (STRINGP (LFACE_BACKGROUND (lface))) | 4384 | if (STRINGP (LFACE_BACKGROUND (lface))) |
| 4383 | { | 4385 | { |
| 4384 | sprintf (line, "%s*menu*background: %s", | 4386 | sprintf (line, "%s.popup_menu*background: %s", |
| 4385 | myname, XSTRING (LFACE_BACKGROUND (lface))->data); | 4387 | myname, XSTRING (LFACE_BACKGROUND (lface))->data); |
| 4386 | XrmPutLineResource (&rdb, line); | 4388 | XrmPutLineResource (&rdb, line); |
| 4387 | sprintf (line, "%s.pane.menubar*background: %s", | 4389 | sprintf (line, "%s.pane.menubar*background: %s", |
| 4388 | myname, XSTRING (LFACE_BACKGROUND (lface))->data); | 4390 | myname, XSTRING (LFACE_BACKGROUND (lface))->data); |
| 4389 | XrmPutLineResource (&rdb, line); | 4391 | XrmPutLineResource (&rdb, line); |
| 4390 | ++changes; | 4392 | changed_p = 1; |
| 4391 | } | 4393 | } |
| 4392 | 4394 | ||
| 4393 | if (face->font_name | 4395 | if (face->font_name |
| 4394 | && (!UNSPECIFIEDP (LFACE_FAMILY (lface)) | 4396 | && (!UNSPECIFIEDP (LFACE_FAMILY (lface)) |
| 4395 | || !UNSPECIFIEDP (LFACE_SWIDTH (lface)) | 4397 | || !UNSPECIFIEDP (LFACE_SWIDTH (lface)) |
| 4396 | || !UNSPECIFIEDP (LFACE_AVGWIDTH (lface)) | 4398 | || !UNSPECIFIEDP (LFACE_AVGWIDTH (lface)) |
| 4397 | || !UNSPECIFIEDP (LFACE_WEIGHT (lface)) | 4399 | || !UNSPECIFIEDP (LFACE_WEIGHT (lface)) |
| 4398 | || !UNSPECIFIEDP (LFACE_SLANT (lface)) | 4400 | || !UNSPECIFIEDP (LFACE_SLANT (lface)) |
| 4399 | || !UNSPECIFIEDP (LFACE_HEIGHT (lface)))) | 4401 | || !UNSPECIFIEDP (LFACE_HEIGHT (lface)))) |
| 4400 | { | 4402 | { |
| 4401 | #ifdef USE_MOTIF | 4403 | #ifdef USE_MOTIF |
| 4402 | char *format1 = "%s.pane.menubar*fontList: %s"; | 4404 | const char *suffix = "List"; |
| 4403 | char *format2 = "%s*menu*fontList: %s"; | ||
| 4404 | #else | 4405 | #else |
| 4405 | char *format1 = "%s.pane.menubar*font: %s"; | 4406 | const char *suffix = ""; |
| 4406 | char *format2 = "%s*menu*font: %s"; | 4407 | #endif |
| 4407 | #endif | 4408 | sprintf (line, "%s.pane.menubar*font%s: %s", |
| 4408 | sprintf (line, format1, myname, face->font_name); | 4409 | myname, suffix, face->font_name); |
| 4409 | XrmPutLineResource (&rdb, line); | 4410 | XrmPutLineResource (&rdb, line); |
| 4410 | sprintf (line, format2, myname, face->font_name); | 4411 | sprintf (line, "%s.popup_menu*font%s: %s", |
| 4411 | XrmPutLineResource (&rdb, line); | 4412 | myname, suffix, face->font_name); |
| 4412 | ++changes; | 4413 | XrmPutLineResource (&rdb, line); |
| 4413 | } | 4414 | changed_p = 1; |
| 4415 | } | ||
| 4414 | 4416 | ||
| 4415 | if (changes && f->output_data.x->menubar_widget) | 4417 | if (changed_p && f->output_data.x->menubar_widget) |
| 4416 | { | 4418 | { |
| 4417 | free_frame_menubar (f); | 4419 | free_frame_menubar (f); |
| 4418 | set_frame_menubar (f, 1, 1); | 4420 | set_frame_menubar (f, 1, 1); |
| 4419 | XWINDOW (FRAME_SELECTED_WINDOW (f))->update_mode_line = Qt; | ||
| 4420 | } | ||
| 4421 | } | 4421 | } |
| 4422 | } | 4422 | } |
| 4423 | } | 4423 | } |
| 4424 | 4424 | ||
| 4425 | 4425 | #endif /* HAVE_X_WINDOWS && USE_X_TOOLKIT */ | |
| 4426 | #endif /* USE_X_TOOLKIT */ | ||
| 4427 | |||
| 4428 | #endif /* HAVE_X_WINDOWS */ | ||
| 4429 | 4426 | ||
| 4430 | 4427 | ||
| 4431 | 4428 | ||
| @@ -5972,7 +5969,7 @@ realize_basic_faces (f) | |||
| 5972 | { | 5969 | { |
| 5973 | menu_face_change_count = 0; | 5970 | menu_face_change_count = 0; |
| 5974 | #ifdef USE_X_TOOLKIT | 5971 | #ifdef USE_X_TOOLKIT |
| 5975 | x_set_menu_face_resources (f); | 5972 | x_update_menu_appearance (f); |
| 5976 | #endif | 5973 | #endif |
| 5977 | } | 5974 | } |
| 5978 | 5975 | ||