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

1.1       root        1: #include <X11/copyright.h>
                      2: 
                      3: /* $Header: Recomp.c,v 1.4 87/08/04 10:30:03 toddb Exp $ */
                      4: /* Copyright    Massachusetts Institute of Technology    1985  */
                      5: 
                      6: /*
                      7:  * XMenu:      MIT Project Athena, X Window system menu package
                      8:  *
                      9:  *     XMenuRecompute - Recompute XMenu object dependencies.
                     10:  *
                     11:  *     Author:         Tony Della Fera, DEC
                     12:  *                     September, 1985
                     13:  *
                     14:  */
                     15: 
                     16: #include "XMenuInternal.h"
                     17: 
                     18: int
                     19: XMenuRecompute(display, menu)
                     20:     Display *display;
                     21:     register XMenu *menu;      /* Menu object to be recomputed. */
                     22: {
                     23:     register XMPane *p_ptr;    /* Pane pointer. */
                     24:     register XMSelect *s_ptr;  /* Selection pointer. */
                     25: 
                     26:     register int p_num;                /* Pane serial number. */
                     27:     register int s_num;                /* Selection serial number. */
                     28:     
                     29:     /*
                     30:      * If there are no panes in the menu then return failure
                     31:      * beacuse the menu is not initialized.
                     32:      */
                     33:     if (menu->p_count == 0) {
                     34:        _XMErrorCode = XME_NOT_INIT;
                     35:        return(XM_FAILURE);
                     36:     }
                     37: 
                     38:     /*
                     39:      * Recompute menu wide global values: pane window size,
                     40:      * selection size and maximum selection count.
                     41:      */
                     42:     _XMRecomputeGlobals(display, menu);
                     43: 
                     44:     /*
                     45:      * For each pane in the menu...
                     46:      */
                     47:         
                     48:     p_num = 0;
                     49:     for (
                     50:        p_ptr = menu->p_list->next;
                     51:        p_ptr != menu->p_list;
                     52:        p_ptr = p_ptr->next
                     53:     ){
                     54:        /*
                     55:         * Recompute pane dependencies.
                     56:         */
                     57:        if (_XMRecomputePane(display, menu, p_ptr, p_num) == _FAILURE) {
                     58:            return(XM_FAILURE);
                     59:        }
                     60:         p_num++;
                     61:        
                     62:        /*
                     63:         * For each selection in the pane...
                     64:         */
                     65:        s_num = 0;
                     66:        for (
                     67:            s_ptr = p_ptr->s_list->next;
                     68:            s_ptr != p_ptr->s_list;
                     69:            s_ptr = s_ptr->next
                     70:        ) {
                     71:            /*
                     72:             * Recompute selection dependencies.
                     73:             */
                     74:            if (_XMRecomputeSelection(display, menu, s_ptr, s_num) == _FAILURE) {
                     75:                return(XM_FAILURE);
                     76:            }
                     77:            s_num++;
                     78:        }
                     79:     }
                     80: 
                     81:     /*
                     82:      * Recompute menu size.
                     83:      */
                     84:     if (menu->menu_style == CENTER) {
                     85:        menu->width = menu->p_width + (menu->p_bdr_width << 1);
                     86:     }
                     87:     else {
                     88:        menu->width = menu->p_width + (menu->p_bdr_width << 1) +
                     89:            ((menu->p_count - 1) * menu->p_x_off);
                     90:     }
                     91:     menu->height = menu->p_height + (menu->p_bdr_width << 1) +
                     92:        ((menu->p_count - 1) * menu->p_y_off);
                     93: 
                     94:     /*
                     95:      * Reset the recompute flag.
                     96:      */
                     97:     menu->recompute = 0;
                     98: 
                     99:     /*
                    100:      * Return successfully.
                    101:      */
                    102:     _XMErrorCode = XME_NO_ERROR;
                    103:     return(XM_SUCCESS);
                    104: }

unix.superglobalmegacorp.com

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