Annotation of 43BSDTahoe/new/X/XMenu/XMenuDestroy.c, revision 1.1.1.1

1.1       root        1: #include <X/mit-copyright.h>
                      2: 
                      3: /* $Header: XMenuDestroy.c,v 10.7 86/05/15 16:26:40 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: XMenuDestroy(menu)
                     19:     register XMenu *menu;      /* Menu object to destroy. */
                     20: {
                     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. */
                     25: 
                     26:     /*
                     27:      * Destroy the selection and pane X windows and free
                     28:      * their corresponding XMWindows.
                     29:      */
                     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);
                     42:        }
                     43:        if (p_ptr->window) {
                     44:            XDestroySubwindows(p_ptr->window);
                     45:            XDestroyWindow(p_ptr->window);
                     46:        }
                     47:        p_next = p_ptr->next;
                     48:        free(p_ptr);
                     49:     }
                     50: 
                     51:     /*
                     52:      * Destroy the association table.
                     53:      */
                     54:     XDestroyAssocTable(menu->assoc_tab);
                     55: 
                     56:     /*
                     57:      * Free the mouse cursor.
                     58:      */
                     59:     XFreeCursor(menu->mouse_cursor);
                     60: 
                     61:     /*
                     62:      * Free the fonts.
                     63:      */
                     64:     XFreeFont(menu->p_fnt_info->id);
                     65:     XFreeFont(menu->s_fnt_info->id);
                     66: 
                     67:     /*
                     68:      * Free the pixmaps.
                     69:      */
                     70:     XFreePixmap(menu->p_bdr_pixmap);
                     71:     XFreePixmap(menu->s_bdr_pixmap);
                     72:     XFreePixmap(menu->p_frg_pixmap);
                     73:     XFreePixmap(menu->s_frg_pixmap);
                     74:     XFreePixmap(menu->bkgnd_pixmap);
                     75:     XFreePixmap(menu->inact_pixmap);
                     76: 
                     77:     /*
                     78:      * Free the color cells.
                     79:      */
                     80:     if ((menu->p_bdr_color != BlackPixel) && (menu->p_bdr_color != WhitePixel))
                     81:        XFreeColors(&menu->p_bdr_color, 1, 0);
                     82:     if ((menu->s_bdr_color != BlackPixel) && (menu->s_bdr_color != WhitePixel))
                     83:        XFreeColors(&menu->s_bdr_color, 1, 0);
                     84:     if ((menu->p_frg_color != BlackPixel) && (menu->p_frg_color != WhitePixel))
                     85:        XFreeColors(&menu->p_frg_color, 1, 0);
                     86:     if ((menu->s_frg_color != BlackPixel) && (menu->s_frg_color != WhitePixel))
                     87:        XFreeColors(&menu->s_frg_color, 1, 0);
                     88:     if ((menu->bkgnd_color != BlackPixel) && (menu->bkgnd_color != WhitePixel))
                     89:        XFreeColors(&menu->bkgnd_color, 1, 0);
                     90: 
                     91:     /*
                     92:      * Free the XMenu.
                     93:      */
                     94:     free(menu);
                     95: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.