Annotation of 43BSD/contrib/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.8 86/02/01 16:14:44 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 int i;            /* Loop index. */
                     24:     register XMPane *p_ptr;    /* Pointer to pane being deleted. */
                     25:     register XMSelect *s_ptr;  /* Pointer to selections being 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:     s_ptr = p_ptr->s_list;
                     50:     for (i = 0; i < p_ptr->s_count; i++) {
                     51:        XDeleteAssoc(menu->assoc_tab, s_ptr->prev->window);
                     52:        free(s_ptr->prev);
                     53:        s_ptr = s_ptr->next;
                     54:     }
                     55:     free(s_ptr);
                     56: 
                     57:     if (p_ptr->window) {
                     58:        /*
                     59:         * Destroy the selection transparencies.
                     60:         */
                     61:        XDestroySubwindows(p_ptr->window);
                     62:     
                     63:        /*
                     64:         * Destroy the pane window.
                     65:         */
                     66:        XDestroyWindow(p_ptr->window);
                     67:     }
                     68:     
                     69:     /*
                     70:      * Free the pane's XMPane structure.
                     71:      */
                     72:     free(p_ptr);
                     73: 
                     74:     /*
                     75:      * Schedule a recompute.
                     76:      */
                     77:     menu->recompute = 1;
                     78: 
                     79:     /*
                     80:      * Return the pane number just deleted.
                     81:      */
                     82:     _XMErrorCode = XME_NO_ERROR;
                     83:     return(p_num);
                     84: }

unix.superglobalmegacorp.com

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