|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.