|
|
1.1 root 1: #include <X11/copyright.h>
2:
3: /* $Header: Destroy.c,v 1.1 87/08/04 10:26:25 toddb Exp $ */
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: XMenuDestroy(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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.