root/trunk/oldXMenu/Destroy.c

Revision 4196, 3.3 kB (checked in by miyoshi, 2 years ago)

Sync up with Emacs CVS HEAD.

  • Property svn:eol-style set to native
Line 
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
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 }
117
118 /* arch-tag: 44c9589f-5893-46fc-bc23-1b03a7f9c015
119    (do not change this comment) */
Note: See TracBrowser for help on using the browser.