view oldXMenu/DelPane.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
 *
 * 	XMenuDeletePane - Deletes a pane from an XMenu object.
 *
 *	Author:		Tony Della Fera, DEC
 *			20-Nov-85
 *
 */

#include "XMenuInt.h"

int
XMenuDeletePane(register Display *display, register XMenu *menu, register int p_num)
                              	/* Previously opened display */
                         	/* Menu object to be modified. */
                       		/* Pane number to be deleted. */
{
    register XMPane *p_ptr;	/* Pointer to pane being deleted. */
    register XMSelect *s_ptr;	/* Pointer to selections being deleted. */
    register XMSelect *s_next;  /* Pointer to next selection to be deleted. */

    /*
     * Find the right pane.
     */
    p_ptr = _XMGetPanePtr(menu, p_num);
    if (p_ptr == NULL) return(XM_FAILURE);

    /*
     * Remove the pane from the association table.
     */
    XDeleteAssoc(display, menu->assoc_tab, p_ptr->window);

    /*
     * Remove the pane from the pane list and update
     * the pane count.
     */
    emacs_remque(p_ptr);
    menu->p_count--;

    /*
     * Remove all the selections in the pane from the
     * association table and free their XMSelect structures.
     */
    for (
	s_ptr = p_ptr->s_list->next;
	s_ptr != p_ptr->s_list;
	s_ptr = s_next
    ) {
	XDeleteAssoc(display, menu->assoc_tab, s_ptr->window);
	s_next = s_ptr->next;
	free(s_ptr);
    }
    free(p_ptr->s_list);

    if (p_ptr->window) {
	/*
	 * Destroy the selection transparencies.
	 */
	XDestroySubwindows(display, p_ptr->window);

	/*
	 * Destroy the pane window.
	 */
	XDestroyWindow(display, p_ptr->window);
    }

    /*
     * Free the pane's XMPane structure.
     */
    free(p_ptr);

    /*
     * Schedule a recompute.
     */
    menu->recompute = 1;

    /*
     * Return the pane number just deleted.
     */
    _XMErrorCode = XME_NO_ERROR;
    return(p_num);
}

/* arch-tag: 32a5bfd4-4bac-4090-bb53-844110f4908e
   (do not change this comment) */