98 |
|
|
99 |
|
|
100 |
|
|
101 |
static Status |
static Status |
102 |
XAllocDisplayColor(display, map, colorName, color, junk) |
XAllocDisplayColor(display, map, colorName, color, junk) |
103 |
Display *display; |
Display *display; |
104 |
Colormap map; |
Colormap map; |
189 |
Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */ |
Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */ |
190 |
unsigned long valuemask; |
unsigned long valuemask; |
191 |
XGCValues *values; |
XGCValues *values; |
192 |
|
|
193 |
Window root = RootWindow (display, DefaultScreen (display)); |
Window root = RootWindow (display, DefaultScreen (display)); |
194 |
|
|
195 |
/* |
/* |
205 |
_XMErrorCode = XME_CALLOC; |
_XMErrorCode = XME_CALLOC; |
206 |
return(NULL); |
return(NULL); |
207 |
} |
} |
208 |
|
|
209 |
/* |
/* |
210 |
* Create the XAssocTable |
* Create the XAssocTable |
211 |
*/ |
*/ |
212 |
assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE); |
assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE); |
266 |
if (strcmp(def_val, "box") == 0) menu_mode = BOX; |
if (strcmp(def_val, "box") == 0) menu_mode = BOX; |
267 |
else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT; |
else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT; |
268 |
} |
} |
269 |
|
|
270 |
def_val = x_get_resource_string ("menuMouse", "MenuMouse"); |
def_val = x_get_resource_string ("menuMouse", "MenuMouse"); |
271 |
if ( |
if ( |
272 |
def_val != NULL && |
def_val != NULL && |
273 |
DisplayCells(display, DefaultScreen(display)) > 2 && |
DisplayCells(display, DefaultScreen(display)) > 2 && |
274 |
XAllocDisplayColor(display, |
XAllocDisplayColor(display, |
275 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
276 |
def_val, |
def_val, |
277 |
&mouse_color, &color_def) |
&mouse_color, &color_def) |
278 |
); |
); |
279 |
else if (reverse && |
else if (reverse && |
282 |
"white", |
"white", |
283 |
&mouse_color, &color_def) |
&mouse_color, &color_def) |
284 |
); |
); |
285 |
|
|
286 |
else if (XAllocDisplayColor(display, |
else if (XAllocDisplayColor(display, |
287 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
288 |
"black", |
"black", |
289 |
&mouse_color, &color_def) |
&mouse_color, &color_def) |
290 |
); |
); |
291 |
|
|
292 |
else ; |
else ; |
293 |
|
|
294 |
def_val = x_get_resource_string ("menuBackground", "MenuBackground"); |
def_val = x_get_resource_string ("menuBackground", "MenuBackground"); |
335 |
def_val = x_get_resource_string ("paneForeground", "PaneForeground"); |
def_val = x_get_resource_string ("paneForeground", "PaneForeground"); |
336 |
if ( |
if ( |
337 |
def_val != NULL && |
def_val != NULL && |
338 |
DisplayCells(display, DefaultScreen(display)) > 2 |
DisplayCells(display, DefaultScreen(display)) > 2 |
339 |
) |
) |
340 |
XAllocDisplayColor(display, DefaultColormap(display, |
XAllocDisplayColor(display, DefaultColormap(display, |
341 |
DefaultScreen(display)), |
DefaultScreen(display)), |
342 |
def_val, |
def_val, |
343 |
&p_frg_color, &color_def); |
&p_frg_color, &color_def); |
344 |
|
|
345 |
else if (reverse) XAllocDisplayColor(display, |
else if (reverse) XAllocDisplayColor(display, |
346 |
DefaultColormap(display, |
DefaultColormap(display, |
347 |
DefaultScreen(display)), |
DefaultScreen(display)), |
348 |
"white", |
"white", |
349 |
&p_frg_color, &color_def); |
&p_frg_color, &color_def); |
362 |
&p_bdr_color, &color_def) |
&p_bdr_color, &color_def) |
363 |
); |
); |
364 |
else if (reverse && |
else if (reverse && |
365 |
XAllocDisplayColor(display, |
XAllocDisplayColor(display, |
366 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
367 |
"white", |
"white", |
368 |
&p_bdr_color, &color_def) |
&p_bdr_color, &color_def) |
369 |
); |
); |
370 |
else XAllocDisplayColor(display, |
else XAllocDisplayColor(display, |
371 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
372 |
"black", |
"black", |
373 |
&p_bdr_color, &color_def); |
&p_bdr_color, &color_def); |
374 |
|
|
375 |
def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth"); |
def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth"); |
376 |
if (def_val != NULL) p_bdr_width = atoi(def_val); |
if (def_val != NULL) p_bdr_width = atoi(def_val); |
377 |
|
|
378 |
def_val = x_get_resource_string ("paneSpread", "PaneSpread"); |
def_val = x_get_resource_string ("paneSpread", "PaneSpread"); |
379 |
if (def_val != NULL) p_spread = atof(def_val); |
if (def_val != NULL) p_spread = atof(def_val); |
380 |
|
|
396 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
397 |
def_val, |
def_val, |
398 |
&s_frg_color, &color_def) |
&s_frg_color, &color_def) |
399 |
); |
); |
400 |
else if (reverse && |
else if (reverse && |
401 |
XAllocDisplayColor(display, |
XAllocDisplayColor(display, |
402 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
409 |
&s_frg_color, &color_def) |
&s_frg_color, &color_def) |
410 |
) ; |
) ; |
411 |
else ; |
else ; |
412 |
|
|
413 |
|
|
414 |
def_val = x_get_resource_string ("selectionBorder", "SelectionBorder"); |
def_val = x_get_resource_string ("selectionBorder", "SelectionBorder"); |
415 |
if ( |
if ( |
421 |
&s_bdr_color, &color_def) |
&s_bdr_color, &color_def) |
422 |
) ; |
) ; |
423 |
else if (reverse && |
else if (reverse && |
424 |
XAllocDisplayColor(display, |
XAllocDisplayColor(display, |
425 |
DefaultColormap(display, DefaultScreen(display)), |
DefaultColormap(display, DefaultScreen(display)), |
426 |
"white", |
"white", |
427 |
&s_bdr_color, &color_def) |
&s_bdr_color, &color_def) |
435 |
|
|
436 |
def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth"); |
def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth"); |
437 |
if (def_val != NULL) s_bdr_width = atoi(def_val); |
if (def_val != NULL) s_bdr_width = atoi(def_val); |
438 |
|
|
439 |
def_val = x_get_resource_string ("selectionSpread", "SelectionSpread"); |
def_val = x_get_resource_string ("selectionSpread", "SelectionSpread"); |
440 |
if (def_val != NULL) s_spread = atof(def_val); |
if (def_val != NULL) s_spread = atof(def_val); |
441 |
|
|
446 |
char *data = NULL; |
char *data = NULL; |
447 |
int width, height; |
int width, height; |
448 |
|
|
449 |
switch (inact_pnum) |
switch (inact_pnum) |
450 |
{ |
{ |
451 |
case 0: |
case 0: |
452 |
data = (char *)dimple1_bits; |
data = (char *)dimple1_bits; |
495 |
/* |
/* |
496 |
* Load the mouse cursor. |
* Load the mouse cursor. |
497 |
*/ |
*/ |
498 |
|
|
499 |
switch (menu_style) { |
switch (menu_style) { |
500 |
case LEFT: |
case LEFT: |
501 |
cursor = XCreateBitmapFromData(display, |
cursor = XCreateBitmapFromData(display, |
510 |
left_ptrmsk_height); |
left_ptrmsk_height); |
511 |
mouse_cursor = XCreatePixmapCursor( |
mouse_cursor = XCreatePixmapCursor( |
512 |
display, |
display, |
513 |
cursor, cursor_mask, |
cursor, cursor_mask, |
514 |
&mouse_color, &bkgnd_color, |
&mouse_color, &bkgnd_color, |
515 |
left_ptr_x_hot, |
left_ptr_x_hot, |
516 |
left_ptr_y_hot |
left_ptr_y_hot |
517 |
); |
); |
518 |
XFreePixmap(display, cursor); |
XFreePixmap(display, cursor); |
519 |
XFreePixmap(display, cursor_mask); |
XFreePixmap(display, cursor_mask); |
520 |
break; |
break; |
521 |
case RIGHT: |
case RIGHT: |
522 |
cursor = XCreateBitmapFromData(display, |
cursor = XCreateBitmapFromData(display, |
537 |
right_ptr_y_hot |
right_ptr_y_hot |
538 |
); |
); |
539 |
XFreePixmap(display, cursor); |
XFreePixmap(display, cursor); |
540 |
XFreePixmap(display, cursor_mask); |
XFreePixmap(display, cursor_mask); |
541 |
break; |
break; |
542 |
case CENTER: |
case CENTER: |
543 |
cursor = XCreateBitmapFromData(display, |
cursor = XCreateBitmapFromData(display, |
558 |
cntr_ptr_y_hot |
cntr_ptr_y_hot |
559 |
); |
); |
560 |
XFreePixmap(display, cursor); |
XFreePixmap(display, cursor); |
561 |
XFreePixmap(display, cursor_mask); |
XFreePixmap(display, cursor_mask); |
562 |
break; |
break; |
563 |
default: |
default: |
564 |
/* Error! Invalid style parameter. */ |
/* Error! Invalid style parameter. */ |
573 |
/* |
/* |
574 |
* Open the pane and selection fonts. |
* Open the pane and selection fonts. |
575 |
*/ |
*/ |
576 |
|
|
577 |
p_fnt_info = XLoadQueryFont(display, p_fnt_name); |
p_fnt_info = XLoadQueryFont(display, p_fnt_name); |
578 |
if (p_fnt_info == NULL) { |
if (p_fnt_info == NULL) { |
579 |
_XMErrorCode = XME_OPEN_FONT; |
_XMErrorCode = XME_OPEN_FONT; |
580 |
return(NULL); |
return(NULL); |
581 |
|
|
582 |
} |
} |
583 |
|
|
584 |
s_fnt_info = XLoadQueryFont(display, s_fnt_name); |
s_fnt_info = XLoadQueryFont(display, s_fnt_name); |
619 |
* Initialize the internal pane and selection creation queues. |
* Initialize the internal pane and selection creation queues. |
620 |
*/ |
*/ |
621 |
_XMWinQueInit(); |
_XMWinQueInit(); |
622 |
|
|
623 |
/* |
/* |
624 |
* Create pane, active, and inactive GC's. |
* Create pane, active, and inactive GC's. |
625 |
*/ |
*/ |
634 |
values->background = bkgnd_color.pixel; |
values->background = bkgnd_color.pixel; |
635 |
values->font = p_fnt_info->fid; |
values->font = p_fnt_info->fid; |
636 |
values->line_width = p_bdr_width; |
values->line_width = p_bdr_width; |
637 |
|
|
638 |
pane_GC = XCreateGC( |
pane_GC = XCreateGC( |
639 |
display, |
display, |
640 |
root, |
root, |
641 |
valuemask, |
valuemask, |
642 |
values); |
values); |
648 |
values->background = bkgnd_color.pixel; |
values->background = bkgnd_color.pixel; |
649 |
values->font = s_fnt_info->fid; |
values->font = s_fnt_info->fid; |
650 |
values->line_width = s_bdr_width; |
values->line_width = s_bdr_width; |
651 |
normal_select_GC = XCreateGC(display, |
normal_select_GC = XCreateGC(display, |
652 |
root, |
root, |
653 |
valuemask, |
valuemask, |
654 |
values); |
values); |
656 |
* Inverse video selection. |
* Inverse video selection. |
657 |
*/ |
*/ |
658 |
|
|
659 |
values->foreground = bkgnd_color.pixel; |
values->foreground = bkgnd_color.pixel; |
660 |
values->background = s_frg_color.pixel; |
values->background = s_frg_color.pixel; |
661 |
values->font = s_fnt_info->fid; |
values->font = s_fnt_info->fid; |
662 |
values->line_width = s_bdr_width; |
values->line_width = s_bdr_width; |
663 |
inverse_select_GC = XCreateGC(display, |
inverse_select_GC = XCreateGC(display, |
664 |
root, |
root, |
665 |
valuemask, |
valuemask, |
666 |
values); |
values); |
667 |
stipple_pixmap = XCreateBitmapFromData(display, |
stipple_pixmap = XCreateBitmapFromData(display, |
668 |
root, |
root, |
669 |
stipple_bits, |
stipple_bits, |
670 |
stipple_width, |
stipple_width, |
671 |
stipple_height); |
stipple_height); |
672 |
|
|
673 |
/* |
/* |
674 |
* Finally, inactive pane header and selections |
* Finally, inactive pane header and selections |
675 |
*/ |
*/ |
680 |
values->line_width = s_bdr_width; |
values->line_width = s_bdr_width; |
681 |
values->fill_style = FillStippled; |
values->fill_style = FillStippled; |
682 |
values->stipple = stipple_pixmap; |
values->stipple = stipple_pixmap; |
683 |
|
|
684 |
inact_GC = XCreateGC(display, |
inact_GC = XCreateGC(display, |
685 |
root, |
root, |
686 |
valuemask, |
valuemask, |
687 |
values); |
values); |
688 |
|
|
689 |
valuemask |= (GCGraphicsExposures); |
valuemask |= (GCGraphicsExposures); |
690 |
values->graphics_exposures = False; |
values->graphics_exposures = False; |
691 |
inact_GC_noexpose = XCreateGC (display, |
inact_GC_noexpose = XCreateGC (display, |
692 |
root, |
root, |
693 |
valuemask, values); |
valuemask, values); |
694 |
|
|