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