Annotation of researchv9/X11/src/X.V11R1/lib/oldXMenu/DelPane.c, revision 1.1.1.1

1.1       root        1: #include <X11/copyright.h>
                      2: 
                      3: /* $Header: DelPane.c,v 1.1 87/08/04 10:26:03 toddb Exp $ */
                      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(display, menu, p_num)
                     20:     register Display *display; /* Previously opened display */
                     21:     register XMenu *menu;      /* Menu object to be modified. */
                     22:     register int p_num;                /* Pane number to be deleted. */
                     23: {
                     24:     register XMPane *p_ptr;    /* Pointer to pane being deleted. */
                     25:     register XMSelect *s_ptr;  /* Pointer to selections being deleted. */
                     26:     register XMSelect *s_next;  /* Pointer to next selection to be deleted. */
                     27:         
                     28:     /*
                     29:      * Find the right pane.
                     30:      */
                     31:     p_ptr = _XMGetPanePtr(menu, p_num);
                     32:     if (p_ptr == NULL) return(XM_FAILURE);
                     33: 
                     34:     /*
                     35:      * Remove the pane from the association table.
                     36:      */
                     37:     XDeleteAssoc(display, menu->assoc_tab, p_ptr->window);
                     38: 
                     39:     /*
                     40:      * Remove the pane from the pane list and update
                     41:      * the pane count.
                     42:      */
                     43:     remque(p_ptr);
                     44:     menu->p_count--;
                     45: 
                     46:     /*
                     47:      * Remove all the selections in the pane from the
                     48:      * association table and free their XMSelect structures.
                     49:      */
                     50:     for (
                     51:        s_ptr = p_ptr->s_list->next; 
                     52:        s_ptr != p_ptr->s_list;
                     53:        s_ptr = s_next
                     54:     ) {
                     55:        XDeleteAssoc(display, menu->assoc_tab, s_ptr->window);
                     56:        s_next = s_ptr->next;
                     57:        free(s_ptr);
                     58:     }
                     59:     free(p_ptr->s_list);
                     60: 
                     61:     if (p_ptr->window) {
                     62:        /*
                     63:         * Destroy the selection transparencies.
                     64:         */
                     65:        XDestroySubwindows(display, p_ptr->window);
                     66:     
                     67:        /*
                     68:         * Destroy the pane window.
                     69:         */
                     70:        XDestroyWindow(display, p_ptr->window);
                     71:     }
                     72:     
                     73:     /*
                     74:      * Free the pane's XMPane structure.
                     75:      */
                     76:     free(p_ptr);
                     77: 
                     78:     /*
                     79:      * Schedule a recompute.
                     80:      */
                     81:     menu->recompute = 1;
                     82: 
                     83:     /*
                     84:      * Return the pane number just deleted.
                     85:      */
                     86:     _XMErrorCode = XME_NO_ERROR;
                     87:     return(p_num);
                     88: }

unix.superglobalmegacorp.com

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