Annotation of 43BSD/contrib/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.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: XMenuDestroy(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: }

unix.superglobalmegacorp.com

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