1: #include <X/mit-copyright.h>
2:
3: /* $Header: XMenuDestroy.c,v 10.6 86/02/01 16:14:50 tony Rel $ */
4: /* Copyright Massachusetts Institute of Technology 1985 */
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 "XMenuInternal.h"
17:
18: (menu)
19: register XMenu *menu; /* Menu object to destroy. */
20: {
21: register XMPane *p_ptr; /* Pane pointer. */
22: register XMSelect *s_ptr; /* Selection pointer. */
23:
24: register int i; /* Loop counter. */
25: register int j; /* Loop counter. */
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_ptr->next
35: ) {
36: for (
37: s_ptr = p_ptr->s_list->next;
38: s_ptr != p_ptr->s_list;
39: s_ptr = s_ptr->next
40: ) {
41: free(s_ptr);
42: }
43: if (p_ptr->window) {
44: XDestroySubwindows(p_ptr->window);
45: XDestroyWindow(p_ptr->window);
46: }
47: free(p_ptr);
48: }
49:
50: /*
51: * Destroy the association table.
52: */
53: XDestroyAssocTable(menu->assoc_tab);
54:
55: /*
56: * Free the mouse cursor.
57: */
58: XFreeCursor(menu->mouse_cursor);
59:
60: /*
61: * Free the fonts.
62: */
63: XFreeFont(menu->p_fnt_info->id);
64: XFreeFont(menu->s_fnt_info->id);
65:
66: /*
67: * Free the pixmaps.
68: */
69: XFreePixmap(menu->p_bdr_pixmap);
70: XFreePixmap(menu->s_bdr_pixmap);
71: XFreePixmap(menu->p_frg_pixmap);
72: XFreePixmap(menu->s_frg_pixmap);
73: XFreePixmap(menu->bkgnd_pixmap);
74: XFreePixmap(menu->inact_pixmap);
75:
76: /*
77: * Free the color cells.
78: */
79: if ((menu->p_bdr_color != BlackPixel) && (menu->p_bdr_color != WhitePixel))
80: XFreeColors(&menu->p_bdr_color, 1, 0);
81: if ((menu->s_bdr_color != BlackPixel) && (menu->s_bdr_color != WhitePixel))
82: XFreeColors(&menu->s_bdr_color, 1, 0);
83: if ((menu->p_frg_color != BlackPixel) && (menu->p_frg_color != WhitePixel))
84: XFreeColors(&menu->p_frg_color, 1, 0);
85: if ((menu->s_frg_color != BlackPixel) && (menu->s_frg_color != WhitePixel))
86: XFreeColors(&menu->s_frg_color, 1, 0);
87: if ((menu->bkgnd_color != BlackPixel) && (menu->bkgnd_color != WhitePixel))
88: XFreeColors(&menu->bkgnd_color, 1, 0);
89:
90: /*
91: * Free the XMenu.
92: */
93: free(menu);
94: }
Defined functions
defined in line
18; used 6 times