view src/menubar.h @ 5277:d804e621add0

Simplify the API of PARSE_KEYWORDS for callers. src/ChangeLog addition: 2010-09-18 Aidan Kehoe <kehoea@parhasard.net> Simplify the API of PARSE_KEYWORDS for callers. * lisp.h (PARSE_KEYWORDS): Simply the API, while making the implementation a little more complex; work out KEYWORDS_OFFSET from the appropriate Lisp_Subr struct, take the function name as the C name of the DEFUN rather than a symbol visible as a Lisp_Object, on debug builds assert that we're actually in the function so we choke on badly-done copy-and-pasting, * lisp.h (PARSE_KEYWORDS_8): New. This is the old PARSE_KEYWORDS. * fns.c (Fmerge, FsortX, Ffill, Freduce, Freplace): Change to use the new PARSE_KEYWORDS syntax. * elhash.c (Fmake_hash_table): Chance to the new PARSE_KEYWORDS syntax, rename a define to correspond to what other files use. * symbols.c (intern_massaging_name): * buffer.c (ADD_INT): Rename intern_converting_underscores_to_dashes() to intern_massaging_name(), now it does a little more.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 18 Sep 2010 15:57:20 +0100
parents cd0abfdb9e9d
children 308d34e9f07d
line wrap: on
line source

/* Define generic menubar support.
   Copyright (C) 1995 Board of Trustees, University of Illinois.

This file is part of XEmacs.

XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* Synched up with: Not in FSF. */

/* #### Still needs some device-abstraction work. */

#ifndef INCLUDED_menubar_h_
#define INCLUDED_menubar_h_

#ifdef HAVE_MENUBARS
#include "gui.h"
void update_frame_menubars (struct frame *f);
void free_frame_menubars (struct frame *f);
Lisp_Object menu_parse_submenu_keywords (Lisp_Object desc,
					 Lisp_Object gui_item);
Lisp_Object current_frame_menubar (const struct frame *f);

EXFUN (Fmenu_find_real_submenu, 2);

extern Lisp_Object Vmenu_accelerator_prefix;
extern Lisp_Object Vmenu_accelerator_modifiers;
extern Lisp_Object Vmenu_accelerator_enabled;
extern Lisp_Object Vmenu_accelerator_map;

extern Lisp_Object Qmenu_force;
extern Lisp_Object Qmenu_fallback;

extern Lisp_Object Qmenu_quit;
extern Lisp_Object Qmenu_up;
extern Lisp_Object Qmenu_down;
extern Lisp_Object Qmenu_left;
extern Lisp_Object Qmenu_right;
extern Lisp_Object Qmenu_select;
extern Lisp_Object Qmenu_escape;


/* #### kluuuuuuuuuuuuuuuuuuuuuuuuuuuudge!
   The author of the accelerator code didn't know what the hell he was doing.
   Someone needs to abstract this properly. */
#if defined (HAVE_X_WINDOWS) && defined (LWLIB_MENUBARS_LUCID)
extern int x_kludge_lw_menu_active (void);
struct command_builder;
Lisp_Object command_builder_find_menu_accelerator (struct command_builder
						   *builder);
Lisp_Object command_builder_operate_menu_accelerator (struct command_builder
						      *builder);
#endif

extern int popup_menu_up_p;
extern int menubar_show_keybindings;
extern int popup_menu_titles;
extern int in_menu_callback;

#endif /* HAVE_MENUBARS */

#endif /* INCLUDED_menubar_h_ */