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 /*