Annotation of 43BSDReno/contrib/emacs-18.55/oldXMenu/Recomp.c, revision 1.1

1.1     ! root        1: #include <X11/copyright.h>
        !             2: 
        !             3: /* $Header: Recomp.c,v 1.5 87/12/20 12:05:46 rws 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 "XMenuInt.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.