1/* Copyright Massachusetts Institute of Technology 1985 */ 2 3#include "copyright.h" 4 5 6/* 7 * XMenu: MIT Project Athena, X Window system menu package 8 * 9 * XMenuDestroy - Free all resources associated with and XMenu. 10 * 11 * Author: Tony Della Fera, DEC 12 * August, 1985 13 * 14 */ 15 16#include "XMenuInt.h" 17 18XMenuDestroy(display, menu) 19 Display *display; 20 register XMenu *menu; /* Menu object to destroy. */ 21{ 22 register XMPane *p_ptr; /* Pointer to the current pane. */ 23 register XMPane *p_next; /* Pointer to the next pane. */ 24 register XMSelect *s_ptr; /* Pointer to the current selection. */ 25 register XMSelect *s_next; /* Pointer to the next selection. */ 26 27 /* 28 * Destroy the selection and pane X windows and free 29 * their corresponding XMWindows. 30 */ 31 for ( 32 p_ptr = menu->p_list->next; 33 p_ptr != menu->p_list; 34 p_ptr = p_next 35 ) { 36 for ( 37 s_ptr = p_ptr->s_list->next; 38 s_ptr != p_ptr->s_list; 39 s_ptr = s_next 40 ) { 41 s_next = s_ptr->next; 42 free(s_ptr); 43 } 44 if (p_ptr->window) { 45 XDestroySubwindows(display, p_ptr->window); 46 XDestroyWindow(display, p_ptr->window); 47 } 48 p_next = p_ptr->next; 49 free(p_ptr); 50 } 51 52 /* 53 * Destroy the association table. 54 */ 55 XDestroyAssocTable(menu->assoc_tab); 56 57 /* 58 * Free the mouse cursor. 59 */ 60 XFreeCursor(display, menu->mouse_cursor); 61 62 /* 63 * Free the fonts. 64 */ 65 XFreeFont(display, menu->p_fnt_info); 66 XFreeFont(display, menu->s_fnt_info); 67 68 /* 69 * Free the pixmaps. 70 */ 71/* XFreePixmap(display, menu->p_bdr_pixmap); 72 XFreePixmap(display, menu->s_bdr_pixmap); 73 XFreePixmap(display, menu->p_frg_pixmap); 74 XFreePixmap(display, menu->s_frg_pixmap); 75 XFreePixmap(display, menu->bkgnd_pixmap); */ 76 XFreePixmap(display, menu->inact_pixmap); 77 78 /* 79 * Free the color cells. 80 */ 81 if ((menu->p_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_bdr_color != WhitePixel(display, DefaultScreen(display)))) 82 XFreeColors( 83 display, 84 DefaultColormap(display, DefaultScreen(display)), 85 &menu->p_bdr_color, 86 1, 0); 87 if ((menu->s_bdr_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_bdr_color != WhitePixel(display, DefaultScreen(display)))) 88 XFreeColors( 89 display, 90 DefaultColormap(display, DefaultScreen(display)), 91 &menu->s_bdr_color, 92 1, 0); 93 if ((menu->p_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->p_frg_color != WhitePixel(display, DefaultScreen(display)))) 94 XFreeColors( 95 display, 96 DefaultColormap(display, DefaultScreen(display)), 97 &menu->p_frg_color, 98 1, 0); 99 if ((menu->s_frg_color != BlackPixel(display, DefaultScreen(display))) && (menu->s_frg_color != WhitePixel(display, DefaultScreen(display)))) 100 XFreeColors( 101 display, 102 DefaultColormap(display, DefaultScreen(display)), 103 &menu->s_frg_color, 104 1, 0); 105 if ((menu->bkgnd_color != BlackPixel(display, DefaultScreen(display))) && (menu->bkgnd_color != WhitePixel(display, DefaultScreen(display)))) 106 XFreeColors( 107 display, 108 DefaultColormap(display, DefaultScreen(display)), 109 &menu->bkgnd_color, 110 1, 0); 111 112 /* 113 * Free the XMenu. 114 */ 115 free(menu); 116} 117 118/* arch-tag: 44c9589f-5893-46fc-bc23-1b03a7f9c015 119 (do not change this comment) */ 120