view oldXMenu/Recomp.c @ 109573:228a5fa4eda0

Remove extern declarations from .c files, and them to .h files. * src/xsmfns.c (Vuser_login_name): * src/xrdb.c (Vdouble_click_time): * src/xfaces.c (xic_create_fontsetname): * src/w32select.c (waiting_for_input): * src/print.c (minibuffer_auto_raise): * src/msdos.c (Qhelp_echo): * src/macros.c (real_this_command): * src/keymap.c (Voverriding_local_map): * src/xterm.c (poll_for_input_1, gray_bitmap_width) (gray_bitmap_height, gray_bitmap_bits; * src/xmenu.c ( Voverriding_local_map) (Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box) (use_file_dialog, Xt_app_con): * src/xdisp.c (minibuffer_auto_raise, Voverriding_local_map) (Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible) (Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines) (Qtool_bar_lines, ignore_mouse_drag_p): * src/minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky) (Qrear_nonsticky, nconc2): * src/keyboard.c (current_global_map, minibuf_level, Qmenu_item) (Vhistory_length, Vtranslation_table_for_input, Qcomposition) (Qdisplay, Qafter_string, Qbefore_string, Qundefined): * src/fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name) (minibuf_level, minibuffer_auto_raise, lisp_time_argument): * src/eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction) (gc_in_progress): * src/doc.c (Voverriding_local_map, Qremap): * src/dired.c (completion_ignore_case, Qcompletion_ignore_case) (Vcompletion_regexp_list): * src/coding.c (Qmac, Qinsert_file_contents, Qwrite_region) (Qcompletion_ignore_case): * src/callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly) (Vhistory_length, Vthis_original_command, real_this_command) (Qface, Qminibuffer_prompt, history_delete_duplicates): * src/image.c (Qrisky_local_variable): * src/fontset.c (QCname): * src/fns.c (minibuffer_auto_raise, QCname): * src/dispnew.c (char_ins_del_cost): * src/composite.c (font_fill_lglyph_metrics): * src/cmds.c (Qface, Vtranslation_table_for_input): * src/charset.c (map_char_table_for_charset, Qfile_name_handler_alist): * src/ccl.c (charset_unicode): * src/callproc.c (Vtemporary_file_directory): * src/buffer.c (emacs_strerror): Remove extern declarations. Remove extern declarations from .c files, and them to .h files. * src/keyboard.h (Qhelp_echo, waiting_for_input) (input_available_clear_time, ignore_mouse_drag_p) (Vdouble_click_time, real_this_command, Vthis_original_command): * src/keymap.h (Qremap, Qmenu_item, Voverriding_local_map) (Voverriding_local_map_menu_flag): * src/lisp.h (Qinteractive_form, use_file_dialog) (Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount) (Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask) (QCindex, QCmatrix, QCcolor_adjustment, QCmask) (Qrisky_local_variable, map_char_table_for_charset, Vprint_level) (Qfunction, debug_on_next_call, Qfield) (Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument) (Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string) (Qfile_directory_p, Qinsert_file_contents) (Qcompletion_ignore_case, Qcompletion_ignore_case) (Vcompletion_regexp_list, Vhistory_length, completion_ignore_case) (history_delete_duplicates, minibuffer_auto_raise, Qonly) (Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky) (Qminibuffer_prompt) (Vtemporary_file_directory,char_ins_del_vector, Qface): * src/xterm.h (gray_bitmap_width, gray_bitmap_height) (gray_bitmap_bits, xic_create_fontsetname): * src/coding.h (Vtranslation_table_for_input): Add extern declarations. * src/data.c (Qwindow): Make non-static, used from other files too. * src/frame.c (validate_x_resource_name): Remove shadow definition for i.
author Dan Nicolaescu <dann@ics.uci.edu>
date Wed, 28 Jul 2010 22:48:06 -0700
parents 5cc91198ffb2
children ef719132ddfa
line wrap: on
line source

/* Copyright    Massachusetts Institute of Technology    1985	*/

#include "copyright.h"


/*
 * XMenu:	MIT Project Athena, X Window system menu package
 *
 * 	XMenuRecompute - Recompute XMenu object dependencies.
 *
 *	Author:		Tony Della Fera, DEC
 *			September, 1985
 *
 */

#include "XMenuInt.h"

int
XMenuRecompute(Display *display, register XMenu *menu)
                     
                         	/* Menu object to be recomputed. */
{
    register XMPane *p_ptr;	/* Pane pointer. */
    register XMSelect *s_ptr;	/* Selection pointer. */

    register int p_num;		/* Pane serial number. */
    register int s_num;		/* Selection serial number. */

    /*
     * If there are no panes in the menu then return failure
     * because the menu is not initialized.
     */
    if (menu->p_count == 0) {
	_XMErrorCode = XME_NOT_INIT;
	return(XM_FAILURE);
    }

    /*
     * Recompute menu wide global values: pane window size,
     * selection size and maximum selection count.
     */
    _XMRecomputeGlobals(display, menu);

    /*
     * For each pane in the menu...
     */

    p_num = 0;
    for (
	p_ptr = menu->p_list->next;
	p_ptr != menu->p_list;
	p_ptr = p_ptr->next
    ){
	/*
	 * Recompute pane dependencies.
	 */
	if (_XMRecomputePane(display, menu, p_ptr, p_num) == _FAILURE) {
	    return(XM_FAILURE);
	}
        p_num++;

	/*
	 * For each selection in the pane...
	 */
	s_num = 0;
	for (
	    s_ptr = p_ptr->s_list->next;
	    s_ptr != p_ptr->s_list;
	    s_ptr = s_ptr->next
	) {
	    /*
	     * Recompute selection dependencies.
	     */
	    if (_XMRecomputeSelection(display, menu, s_ptr, s_num) == _FAILURE) {
		return(XM_FAILURE);
	    }
	    s_num++;
	}
    }

    /*
     * Recompute menu size.
     */
    if (menu->menu_style == CENTER) {
	menu->width = menu->p_width + (menu->p_bdr_width << 1);
    }
    else {
	menu->width = menu->p_width + (menu->p_bdr_width << 1) +
	    ((menu->p_count - 1) * menu->p_x_off);
    }
    menu->height = menu->p_height + (menu->p_bdr_width << 1) +
	((menu->p_count - 1) * menu->p_y_off);

    /*
     * Reset the recompute flag.
     */
    menu->recompute = 0;

    /*
     * Return successfully.
     */
    _XMErrorCode = XME_NO_ERROR;
    return(XM_SUCCESS);
}

/* arch-tag: 1fe99b82-3873-4aab-b2b3-f277c93e00d9
   (do not change this comment) */