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

1.1       root        1: #include <X/mit-copyright.h>
                      2: 
                      3: /* $Header: XMenuDelPane.c,v 10.10 86/05/16 12:34:37 tony Rel $ */
                      4: /* Copyright    Massachusetts Institute of Technology    1985  */
                      5: 
                      6: /*
                      7:  * XMenu:      MIT Project Athena, X Window system menu package
                      8:  *
                      9:  *     XMenuDeletePane - Deletes a pane from an XMenu object.
                     10:  *
                     11:  *     Author:         Tony Della Fera, DEC
                     12:  *                     20-Nov-85
                     13:  *
                     14:  */
                     15: 
                     16: #include "XMenuInternal.h"
                     17: 
                     18: int
                     19: XMenuDeletePane(menu, p_num)
                     20:     register XMenu *menu;      /* Menu object to be modified. */
                     21:     register int p_num;                /* Pane number to be deleted. */
                     22: {
                     23:     register XMPane *p_ptr;    /* Pointer to pane being deleted. */
                     24:     register XMSelect *s_ptr;  /* Pointer to selections being deleted. */
                     25:     register XMSelect *s_next;  /* Pointer to next selection to be deleted. */
                     26:         
                     27:     /*
                     28:      * Find the right pane.
                     29:      */
                     30:     p_ptr = _XMGetPanePtr(menu, p_num);
                     31:     if (p_ptr == NULL) return(XM_FAILURE);
                     32: 
                     33:     /*
                     34:      * Remove the pane from the association table.
                     35:      */
                     36:     XDeleteAssoc(menu->assoc_tab, p_ptr->window);
                     37: 
                     38:     /*
                     39:      * Remove the pane from the pane list and update
                     40:      * the pane count.
                     41:      */
                     42:     remque(p_ptr);
                     43:     menu->p_count--;
                     44: 
                     45:     /*
                     46:      * Remove all the selections in the pane from the
                     47:      * association table and free their XMSelect structures.
                     48:      */
                     49:     for (
                     50:        s_ptr = p_ptr->s_list->next; 
                     51:        s_ptr != p_ptr->s_list;
                     52:        s_ptr = s_next
                     53:     ) {
                     54:        XDeleteAssoc(menu->assoc_tab, s_ptr->window);
                     55:        s_next = s_ptr->next;
                     56:        free(s_ptr);
                     57:     }
                     58:     free(p_ptr->s_list);
                     59: 
                     60:     if (p_ptr->window) {
                     61:        /*
                     62:         * Destroy the selection transparencies.
                     63:         */
                     64:        XDestroySubwindows(p_ptr->window);
                     65:     
                     66:        /*
                     67:         * Destroy the pane window.
                     68:         */
                     69:        XDestroyWindow(p_ptr->window);
                     70:     }
                     71:     
                     72:     /*
                     73:      * Free the pane's XMPane structure.
                     74:      */
                     75:     free(p_ptr);
                     76: 
                     77:     /*
                     78:      * Schedule a recompute.
                     79:      */
                     80:     menu->recompute = 1;
                     81: 
                     82:     /*
                     83:      * Return the pane number just deleted.
                     84:      */
                     85:     _XMErrorCode = XME_NO_ERROR;
                     86:     return(p_num);
                     87: }

unix.superglobalmegacorp.com

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