Mercurial > emacs
comparison oldXMenu/Create.c @ 49600:23a1cea22d13
Trailing whitespace deleted.
| author | Juanma Barranquero <lekktu@gmail.com> |
|---|---|
| date | Tue, 04 Feb 2003 14:56:31 +0000 |
| parents | bbce331da1be |
| children | 695cf19ef79e d7ddb3e565de |
comparison
equal
deleted
inserted
replaced
| 49599:5ade352e8d1c | 49600:23a1cea22d13 |
|---|---|
| 1 /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Create.c,v 1.4 1993/03/09 18:18:01 jimb Exp $ */ | 1 /* $Header: /cvs/emacs/oldXMenu/Create.c,v 1.1 1999/10/03 19:34:56 fx Exp $ */ |
| 2 /* Copyright Massachusetts Institute of Technology 1985 */ | 2 /* Copyright Massachusetts Institute of Technology 1985 */ |
| 3 | 3 |
| 4 #include "copyright.h" | 4 #include "copyright.h" |
| 5 | 5 |
| 6 /* | 6 /* |
| 96 double atof(); | 96 double atof(); |
| 97 char *x_get_resource_string (); | 97 char *x_get_resource_string (); |
| 98 | 98 |
| 99 | 99 |
| 100 | 100 |
| 101 static Status | 101 static Status |
| 102 XAllocDisplayColor(display, map, colorName, color, junk) | 102 XAllocDisplayColor(display, map, colorName, color, junk) |
| 103 Display *display; | 103 Display *display; |
| 104 Colormap map; | 104 Colormap map; |
| 105 char *colorName; | 105 char *colorName; |
| 106 XColor *color; | 106 XColor *color; |
| 187 Pixmap cursor; /* Cursor pixmap holder. */ | 187 Pixmap cursor; /* Cursor pixmap holder. */ |
| 188 Pixmap cursor_mask; /* Cursor mask pixmap holder. */ | 188 Pixmap cursor_mask; /* Cursor mask pixmap holder. */ |
| 189 Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */ | 189 Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */ |
| 190 unsigned long valuemask; | 190 unsigned long valuemask; |
| 191 XGCValues *values; | 191 XGCValues *values; |
| 192 | 192 |
| 193 Window root = RootWindow (display, DefaultScreen (display)); | 193 Window root = RootWindow (display, DefaultScreen (display)); |
| 194 | 194 |
| 195 /* | 195 /* |
| 196 * Calloc the XMenu structure and the initial pane. | 196 * Calloc the XMenu structure and the initial pane. |
| 197 */ | 197 */ |
| 203 pane = (XMPane *)calloc(1, sizeof(XMPane)); | 203 pane = (XMPane *)calloc(1, sizeof(XMPane)); |
| 204 if (pane == NULL) { | 204 if (pane == NULL) { |
| 205 _XMErrorCode = XME_CALLOC; | 205 _XMErrorCode = XME_CALLOC; |
| 206 return(NULL); | 206 return(NULL); |
| 207 } | 207 } |
| 208 | 208 |
| 209 /* | 209 /* |
| 210 * Create the XAssocTable | 210 * Create the XAssocTable |
| 211 */ | 211 */ |
| 212 assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE); | 212 assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE); |
| 213 if(assoc_tab == NULL) { | 213 if(assoc_tab == NULL) { |
| 214 _XMErrorCode= XME_CREATE_ASSOC; | 214 _XMErrorCode= XME_CREATE_ASSOC; |
| 264 def_val = x_get_resource_string ("menuMode", "MenuMode"); | 264 def_val = x_get_resource_string ("menuMode", "MenuMode"); |
| 265 if (def_val != NULL) { | 265 if (def_val != NULL) { |
| 266 if (strcmp(def_val, "box") == 0) menu_mode = BOX; | 266 if (strcmp(def_val, "box") == 0) menu_mode = BOX; |
| 267 else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT; | 267 else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT; |
| 268 } | 268 } |
| 269 | 269 |
| 270 def_val = x_get_resource_string ("menuMouse", "MenuMouse"); | 270 def_val = x_get_resource_string ("menuMouse", "MenuMouse"); |
| 271 if ( | 271 if ( |
| 272 def_val != NULL && | 272 def_val != NULL && |
| 273 DisplayCells(display, DefaultScreen(display)) > 2 && | 273 DisplayCells(display, DefaultScreen(display)) > 2 && |
| 274 XAllocDisplayColor(display, | 274 XAllocDisplayColor(display, |
| 275 DefaultColormap(display, DefaultScreen(display)), | 275 DefaultColormap(display, DefaultScreen(display)), |
| 276 def_val, | 276 def_val, |
| 277 &mouse_color, &color_def) | 277 &mouse_color, &color_def) |
| 278 ); | 278 ); |
| 279 else if (reverse && | 279 else if (reverse && |
| 280 XAllocDisplayColor(display, | 280 XAllocDisplayColor(display, |
| 281 DefaultColormap(display, DefaultScreen(display)), | 281 DefaultColormap(display, DefaultScreen(display)), |
| 282 "white", | 282 "white", |
| 283 &mouse_color, &color_def) | 283 &mouse_color, &color_def) |
| 284 ); | 284 ); |
| 285 | 285 |
| 286 else if (XAllocDisplayColor(display, | 286 else if (XAllocDisplayColor(display, |
| 287 DefaultColormap(display, DefaultScreen(display)), | 287 DefaultColormap(display, DefaultScreen(display)), |
| 288 "black", | 288 "black", |
| 289 &mouse_color, &color_def) | 289 &mouse_color, &color_def) |
| 290 ); | 290 ); |
| 291 | 291 |
| 292 else ; | 292 else ; |
| 293 | 293 |
| 294 def_val = x_get_resource_string ("menuBackground", "MenuBackground"); | 294 def_val = x_get_resource_string ("menuBackground", "MenuBackground"); |
| 295 if ( | 295 if ( |
| 296 def_val != NULL && | 296 def_val != NULL && |
| 333 if (def_val != NULL) p_fnt_name = def_val; | 333 if (def_val != NULL) p_fnt_name = def_val; |
| 334 | 334 |
| 335 def_val = x_get_resource_string ("paneForeground", "PaneForeground"); | 335 def_val = x_get_resource_string ("paneForeground", "PaneForeground"); |
| 336 if ( | 336 if ( |
| 337 def_val != NULL && | 337 def_val != NULL && |
| 338 DisplayCells(display, DefaultScreen(display)) > 2 | 338 DisplayCells(display, DefaultScreen(display)) > 2 |
| 339 ) | 339 ) |
| 340 XAllocDisplayColor(display, DefaultColormap(display, | 340 XAllocDisplayColor(display, DefaultColormap(display, |
| 341 DefaultScreen(display)), | 341 DefaultScreen(display)), |
| 342 def_val, | 342 def_val, |
| 343 &p_frg_color, &color_def); | 343 &p_frg_color, &color_def); |
| 344 | 344 |
| 345 else if (reverse) XAllocDisplayColor(display, | 345 else if (reverse) XAllocDisplayColor(display, |
| 346 DefaultColormap(display, | 346 DefaultColormap(display, |
| 347 DefaultScreen(display)), | 347 DefaultScreen(display)), |
| 348 "white", | 348 "white", |
| 349 &p_frg_color, &color_def); | 349 &p_frg_color, &color_def); |
| 350 else XAllocDisplayColor(display, | 350 else XAllocDisplayColor(display, |
| 351 DefaultColormap(display, DefaultScreen(display)), | 351 DefaultColormap(display, DefaultScreen(display)), |
| 360 DefaultColormap(display, DefaultScreen(display)), | 360 DefaultColormap(display, DefaultScreen(display)), |
| 361 def_val, | 361 def_val, |
| 362 &p_bdr_color, &color_def) | 362 &p_bdr_color, &color_def) |
| 363 ); | 363 ); |
| 364 else if (reverse && | 364 else if (reverse && |
| 365 XAllocDisplayColor(display, | 365 XAllocDisplayColor(display, |
| 366 DefaultColormap(display, DefaultScreen(display)), | 366 DefaultColormap(display, DefaultScreen(display)), |
| 367 "white", | 367 "white", |
| 368 &p_bdr_color, &color_def) | 368 &p_bdr_color, &color_def) |
| 369 ); | 369 ); |
| 370 else XAllocDisplayColor(display, | 370 else XAllocDisplayColor(display, |
| 371 DefaultColormap(display, DefaultScreen(display)), | 371 DefaultColormap(display, DefaultScreen(display)), |
| 372 "black", | 372 "black", |
| 373 &p_bdr_color, &color_def); | 373 &p_bdr_color, &color_def); |
| 374 | 374 |
| 375 def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth"); | 375 def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth"); |
| 376 if (def_val != NULL) p_bdr_width = atoi(def_val); | 376 if (def_val != NULL) p_bdr_width = atoi(def_val); |
| 377 | 377 |
| 378 def_val = x_get_resource_string ("paneSpread", "PaneSpread"); | 378 def_val = x_get_resource_string ("paneSpread", "PaneSpread"); |
| 379 if (def_val != NULL) p_spread = atof(def_val); | 379 if (def_val != NULL) p_spread = atof(def_val); |
| 380 | 380 |
| 381 def_val = x_get_resource_string ("selectionStyle", "SelectionStyle"); | 381 def_val = x_get_resource_string ("selectionStyle", "SelectionStyle"); |
| 382 if (def_val != NULL) { | 382 if (def_val != NULL) { |
| 394 DisplayCells(display, DefaultScreen(display)) > 2 && | 394 DisplayCells(display, DefaultScreen(display)) > 2 && |
| 395 XAllocDisplayColor(display, | 395 XAllocDisplayColor(display, |
| 396 DefaultColormap(display, DefaultScreen(display)), | 396 DefaultColormap(display, DefaultScreen(display)), |
| 397 def_val, | 397 def_val, |
| 398 &s_frg_color, &color_def) | 398 &s_frg_color, &color_def) |
| 399 ); | 399 ); |
| 400 else if (reverse && | 400 else if (reverse && |
| 401 XAllocDisplayColor(display, | 401 XAllocDisplayColor(display, |
| 402 DefaultColormap(display, DefaultScreen(display)), | 402 DefaultColormap(display, DefaultScreen(display)), |
| 403 "white", | 403 "white", |
| 404 &s_frg_color, &color_def) | 404 &s_frg_color, &color_def) |
| 407 DefaultColormap(display, DefaultScreen(display)), | 407 DefaultColormap(display, DefaultScreen(display)), |
| 408 "black", | 408 "black", |
| 409 &s_frg_color, &color_def) | 409 &s_frg_color, &color_def) |
| 410 ) ; | 410 ) ; |
| 411 else ; | 411 else ; |
| 412 | 412 |
| 413 | 413 |
| 414 def_val = x_get_resource_string ("selectionBorder", "SelectionBorder"); | 414 def_val = x_get_resource_string ("selectionBorder", "SelectionBorder"); |
| 415 if ( | 415 if ( |
| 416 def_val != NULL && | 416 def_val != NULL && |
| 417 DisplayCells(display, DefaultScreen(display)) > 2 && | 417 DisplayCells(display, DefaultScreen(display)) > 2 && |
| 419 DefaultColormap(display, DefaultScreen(display)), | 419 DefaultColormap(display, DefaultScreen(display)), |
| 420 def_val, | 420 def_val, |
| 421 &s_bdr_color, &color_def) | 421 &s_bdr_color, &color_def) |
| 422 ) ; | 422 ) ; |
| 423 else if (reverse && | 423 else if (reverse && |
| 424 XAllocDisplayColor(display, | 424 XAllocDisplayColor(display, |
| 425 DefaultColormap(display, DefaultScreen(display)), | 425 DefaultColormap(display, DefaultScreen(display)), |
| 426 "white", | 426 "white", |
| 427 &s_bdr_color, &color_def) | 427 &s_bdr_color, &color_def) |
| 428 ) ; | 428 ) ; |
| 429 else if (XAllocDisplayColor(display, | 429 else if (XAllocDisplayColor(display, |
| 433 ) ; | 433 ) ; |
| 434 else ; | 434 else ; |
| 435 | 435 |
| 436 def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth"); | 436 def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth"); |
| 437 if (def_val != NULL) s_bdr_width = atoi(def_val); | 437 if (def_val != NULL) s_bdr_width = atoi(def_val); |
| 438 | 438 |
| 439 def_val = x_get_resource_string ("selectionSpread", "SelectionSpread"); | 439 def_val = x_get_resource_string ("selectionSpread", "SelectionSpread"); |
| 440 if (def_val != NULL) s_spread = atof(def_val); | 440 if (def_val != NULL) s_spread = atof(def_val); |
| 441 | 441 |
| 442 /* | 442 /* |
| 443 * Create and store the inactive pattern pixmap. | 443 * Create and store the inactive pattern pixmap. |
| 444 */ | 444 */ |
| 445 { | 445 { |
| 446 char *data = NULL; | 446 char *data = NULL; |
| 447 int width, height; | 447 int width, height; |
| 448 | 448 |
| 449 switch (inact_pnum) | 449 switch (inact_pnum) |
| 450 { | 450 { |
| 451 case 0: | 451 case 0: |
| 452 data = (char *)dimple1_bits; | 452 data = (char *)dimple1_bits; |
| 453 width = dimple1_width; | 453 width = dimple1_width; |
| 454 height = dimple1_height; | 454 height = dimple1_height; |
| 493 } | 493 } |
| 494 | 494 |
| 495 /* | 495 /* |
| 496 * Load the mouse cursor. | 496 * Load the mouse cursor. |
| 497 */ | 497 */ |
| 498 | 498 |
| 499 switch (menu_style) { | 499 switch (menu_style) { |
| 500 case LEFT: | 500 case LEFT: |
| 501 cursor = XCreateBitmapFromData(display, | 501 cursor = XCreateBitmapFromData(display, |
| 502 root, | 502 root, |
| 503 left_ptr_bits, | 503 left_ptr_bits, |
| 508 left_ptrmsk_bits, | 508 left_ptrmsk_bits, |
| 509 left_ptrmsk_width, | 509 left_ptrmsk_width, |
| 510 left_ptrmsk_height); | 510 left_ptrmsk_height); |
| 511 mouse_cursor = XCreatePixmapCursor( | 511 mouse_cursor = XCreatePixmapCursor( |
| 512 display, | 512 display, |
| 513 cursor, cursor_mask, | 513 cursor, cursor_mask, |
| 514 &mouse_color, &bkgnd_color, | 514 &mouse_color, &bkgnd_color, |
| 515 left_ptr_x_hot, | 515 left_ptr_x_hot, |
| 516 left_ptr_y_hot | 516 left_ptr_y_hot |
| 517 ); | 517 ); |
| 518 XFreePixmap(display, cursor); | 518 XFreePixmap(display, cursor); |
| 519 XFreePixmap(display, cursor_mask); | 519 XFreePixmap(display, cursor_mask); |
| 520 break; | 520 break; |
| 521 case RIGHT: | 521 case RIGHT: |
| 522 cursor = XCreateBitmapFromData(display, | 522 cursor = XCreateBitmapFromData(display, |
| 523 root, | 523 root, |
| 524 right_ptr_bits, | 524 right_ptr_bits, |
| 535 &mouse_color, &bkgnd_color, | 535 &mouse_color, &bkgnd_color, |
| 536 right_ptr_x_hot, | 536 right_ptr_x_hot, |
| 537 right_ptr_y_hot | 537 right_ptr_y_hot |
| 538 ); | 538 ); |
| 539 XFreePixmap(display, cursor); | 539 XFreePixmap(display, cursor); |
| 540 XFreePixmap(display, cursor_mask); | 540 XFreePixmap(display, cursor_mask); |
| 541 break; | 541 break; |
| 542 case CENTER: | 542 case CENTER: |
| 543 cursor = XCreateBitmapFromData(display, | 543 cursor = XCreateBitmapFromData(display, |
| 544 root, | 544 root, |
| 545 cntr_ptr_bits, | 545 cntr_ptr_bits, |
| 556 &mouse_color, &bkgnd_color, | 556 &mouse_color, &bkgnd_color, |
| 557 cntr_ptr_x_hot, | 557 cntr_ptr_x_hot, |
| 558 cntr_ptr_y_hot | 558 cntr_ptr_y_hot |
| 559 ); | 559 ); |
| 560 XFreePixmap(display, cursor); | 560 XFreePixmap(display, cursor); |
| 561 XFreePixmap(display, cursor_mask); | 561 XFreePixmap(display, cursor_mask); |
| 562 break; | 562 break; |
| 563 default: | 563 default: |
| 564 /* Error! Invalid style parameter. */ | 564 /* Error! Invalid style parameter. */ |
| 565 _XMErrorCode = XME_STYLE_PARAM; | 565 _XMErrorCode = XME_STYLE_PARAM; |
| 566 return(NULL); | 566 return(NULL); |
| 571 } | 571 } |
| 572 | 572 |
| 573 /* | 573 /* |
| 574 * Open the pane and selection fonts. | 574 * Open the pane and selection fonts. |
| 575 */ | 575 */ |
| 576 | 576 |
| 577 p_fnt_info = XLoadQueryFont(display, p_fnt_name); | 577 p_fnt_info = XLoadQueryFont(display, p_fnt_name); |
| 578 if (p_fnt_info == NULL) { | 578 if (p_fnt_info == NULL) { |
| 579 _XMErrorCode = XME_OPEN_FONT; | 579 _XMErrorCode = XME_OPEN_FONT; |
| 580 return(NULL); | 580 return(NULL); |
| 581 | 581 |
| 582 } | 582 } |
| 583 | 583 |
| 584 s_fnt_info = XLoadQueryFont(display, s_fnt_name); | 584 s_fnt_info = XLoadQueryFont(display, s_fnt_name); |
| 585 if (s_fnt_info == NULL) { | 585 if (s_fnt_info == NULL) { |
| 586 _XMErrorCode = XME_OPEN_FONT; | 586 _XMErrorCode = XME_OPEN_FONT; |
| 617 | 617 |
| 618 /* | 618 /* |
| 619 * Initialize the internal pane and selection creation queues. | 619 * Initialize the internal pane and selection creation queues. |
| 620 */ | 620 */ |
| 621 _XMWinQueInit(); | 621 _XMWinQueInit(); |
| 622 | 622 |
| 623 /* | 623 /* |
| 624 * Create pane, active, and inactive GC's. | 624 * Create pane, active, and inactive GC's. |
| 625 */ | 625 */ |
| 626 values = (XGCValues *)malloc(sizeof(XGCValues)); | 626 values = (XGCValues *)malloc(sizeof(XGCValues)); |
| 627 valuemask = (GCForeground | GCBackground | GCFont | GCLineWidth); | 627 valuemask = (GCForeground | GCBackground | GCFont | GCLineWidth); |
| 632 | 632 |
| 633 values->foreground = p_frg_color.pixel; | 633 values->foreground = p_frg_color.pixel; |
| 634 values->background = bkgnd_color.pixel; | 634 values->background = bkgnd_color.pixel; |
| 635 values->font = p_fnt_info->fid; | 635 values->font = p_fnt_info->fid; |
| 636 values->line_width = p_bdr_width; | 636 values->line_width = p_bdr_width; |
| 637 | 637 |
| 638 pane_GC = XCreateGC( | 638 pane_GC = XCreateGC( |
| 639 display, | 639 display, |
| 640 root, | 640 root, |
| 641 valuemask, | 641 valuemask, |
| 642 values); | 642 values); |
| 643 /* | 643 /* |
| 644 * Then normal video selection. | 644 * Then normal video selection. |
| 646 | 646 |
| 647 values->foreground = s_frg_color.pixel; | 647 values->foreground = s_frg_color.pixel; |
| 648 values->background = bkgnd_color.pixel; | 648 values->background = bkgnd_color.pixel; |
| 649 values->font = s_fnt_info->fid; | 649 values->font = s_fnt_info->fid; |
| 650 values->line_width = s_bdr_width; | 650 values->line_width = s_bdr_width; |
| 651 normal_select_GC = XCreateGC(display, | 651 normal_select_GC = XCreateGC(display, |
| 652 root, | 652 root, |
| 653 valuemask, | 653 valuemask, |
| 654 values); | 654 values); |
| 655 /* | 655 /* |
| 656 * Inverse video selection. | 656 * Inverse video selection. |
| 657 */ | 657 */ |
| 658 | 658 |
| 659 values->foreground = bkgnd_color.pixel; | 659 values->foreground = bkgnd_color.pixel; |
| 660 values->background = s_frg_color.pixel; | 660 values->background = s_frg_color.pixel; |
| 661 values->font = s_fnt_info->fid; | 661 values->font = s_fnt_info->fid; |
| 662 values->line_width = s_bdr_width; | 662 values->line_width = s_bdr_width; |
| 663 inverse_select_GC = XCreateGC(display, | 663 inverse_select_GC = XCreateGC(display, |
| 664 root, | 664 root, |
| 665 valuemask, | 665 valuemask, |
| 666 values); | 666 values); |
| 667 stipple_pixmap = XCreateBitmapFromData(display, | 667 stipple_pixmap = XCreateBitmapFromData(display, |
| 668 root, | 668 root, |
| 669 stipple_bits, | 669 stipple_bits, |
| 670 stipple_width, | 670 stipple_width, |
| 671 stipple_height); | 671 stipple_height); |
| 672 | 672 |
| 673 /* | 673 /* |
| 674 * Finally, inactive pane header and selections | 674 * Finally, inactive pane header and selections |
| 675 */ | 675 */ |
| 676 valuemask |= (GCFillStyle | GCStipple); | 676 valuemask |= (GCFillStyle | GCStipple); |
| 677 values->foreground = s_frg_color.pixel; | 677 values->foreground = s_frg_color.pixel; |
| 678 values->background = bkgnd_color.pixel; | 678 values->background = bkgnd_color.pixel; |
| 679 values->font = s_fnt_info->fid; | 679 values->font = s_fnt_info->fid; |
| 680 values->line_width = s_bdr_width; | 680 values->line_width = s_bdr_width; |
| 681 values->fill_style = FillStippled; | 681 values->fill_style = FillStippled; |
| 682 values->stipple = stipple_pixmap; | 682 values->stipple = stipple_pixmap; |
| 683 | 683 |
| 684 inact_GC = XCreateGC(display, | 684 inact_GC = XCreateGC(display, |
| 685 root, | 685 root, |
| 686 valuemask, | 686 valuemask, |
| 687 values); | 687 values); |
| 688 | 688 |
| 689 valuemask |= (GCGraphicsExposures); | 689 valuemask |= (GCGraphicsExposures); |
| 690 values->graphics_exposures = False; | 690 values->graphics_exposures = False; |
| 691 inact_GC_noexpose = XCreateGC (display, | 691 inact_GC_noexpose = XCreateGC (display, |
| 692 root, | 692 root, |
| 693 valuemask, values); | 693 valuemask, values); |
| 694 | 694 |
| 695 | 695 |
| 696 /* | 696 /* |
