* lwlib/lwlib-widget.h: New file, with contents taken from lwlib.h.
(widget_value) [HAVE_NTGUI]: New member 'title'.
* lwlib/lwlib.h: Include lwlib-widget.h.
(change_type, enum button_type, widget_value):
Move to lwlib-widget.h.
* src/gtkutil.h, src/menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
dependency on libXt-devel.
* src/menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
(enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
lwlib-widget.h now does this.
* src/nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
+2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Do not require libXt-devel when building with gtk.
+ * lwlib-widget.h: New file, with contents taken from lwlib.h.
+ (widget_value) [HAVE_NTGUI]: New member 'title'.
+ * lwlib.h: Include lwlib-widget.h.
+ (change_type, enum button_type, widget_value):
+ Move to lwlib-widget.h.
+
2014-06-03 Dmitry Antipov <dmantipov@yandex.ru>
* xlwmenu.c (openXftFont): Do not load regular X font here.
--- /dev/null
+/*
+Copyright (C) 1992, 1993 Lucid, Inc.
+Copyright (C) 1994, 1999-2014 Free Software Foundation, Inc.
+
+This file is part of the Lucid Widget Library.
+
+The Lucid Widget Library 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 1, or (at your option)
+any later version.
+
+The Lucid Widget Library 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 GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This part is separate from lwlib.h because it does not need X,
+ and thus can be used by non-X code in Emacs proper. */
+
+#ifndef LWLIB_WIDGET_H
+#define LWLIB_WIDGET_H
+
+typedef enum
+{
+ NO_CHANGE = 0,
+ INVISIBLE_CHANGE = 1,
+ VISIBLE_CHANGE = 2,
+ STRUCTURAL_CHANGE = 3
+} change_type;
+
+enum button_type
+{
+ BUTTON_TYPE_NONE,
+ BUTTON_TYPE_TOGGLE,
+ BUTTON_TYPE_RADIO
+};
+
+typedef struct _widget_value
+{
+ /* Name of widget. */
+ Lisp_Object lname;
+ char *name;
+
+ /* Value (meaning depend on widget type). */
+ char *value;
+
+ /* Keyboard equivalent. no implications for XtTranslations. */
+ Lisp_Object lkey;
+ char *key;
+
+ /* Help string or nil if none.
+ GC finds this string through the frame's menu_bar_vector
+ or through menu_items. */
+ Lisp_Object help;
+
+ /* True if enabled. */
+ bool enabled;
+
+ /* True if selected. */
+ bool selected;
+
+ /* True if was edited (maintained by get_value). */
+ bool edited;
+
+#ifdef HAVE_NTGUI
+ /* True if menu title. */
+ bool title;
+#endif
+
+ /* The type of a button. */
+ enum button_type button_type;
+
+ /* Type of change (maintained by lw library). */
+ change_type change;
+
+ /* Type of this widget's change, but not counting the other widgets
+ found in the `next' field. */
+ change_type this_one_change;
+
+ /* Contents of the sub-widgets, also selected slot for checkbox. */
+ struct _widget_value *contents;
+
+ /* Data passed to callback. */
+ void *call_data;
+
+ /* Next one in the list. */
+ struct _widget_value *next;
+
+ /* Slot for the toolkit dependent part. Always initialize to NULL. */
+ void *toolkit_data;
+
+ /* Whether we should free the toolkit data slot when freeing the
+ widget_value itself. */
+ bool free_toolkit_data;
+} widget_value;
+
+#endif
** main: ("name")
*/
-typedef unsigned long LWLIB_ID;
-
-typedef enum _change_type
-{
- NO_CHANGE = 0,
- INVISIBLE_CHANGE = 1,
- VISIBLE_CHANGE = 2,
- STRUCTURAL_CHANGE = 3
-} change_type;
+#include "lwlib-widget.h"
-enum button_type
-{
- BUTTON_TYPE_NONE,
- BUTTON_TYPE_TOGGLE,
- BUTTON_TYPE_RADIO
-};
+typedef unsigned long LWLIB_ID;
/* Menu separator types. */
SEPARATOR_SHADOW_DOUBLE_ETCHED_OUT_DASH
};
-typedef struct _widget_value
-{
- /* name of widget */
- Lisp_Object lname;
- char* name;
- /* value (meaning depend on widget type) */
- char* value;
- /* keyboard equivalent. no implications for XtTranslations */
- Lisp_Object lkey;
- char* key;
- /* Help string or nil if none.
- GC finds this string through the frame's menu_bar_vector
- or through menu_items. */
- Lisp_Object help;
- /* true if enabled */
- Boolean enabled;
- /* true if selected */
- Boolean selected;
- /* true if was edited (maintained by get_value) */
- Boolean edited;
- /* The type of a button. */
- enum button_type button_type;
- /* true if has changed (maintained by lw library) */
- change_type change;
- /* true if this widget itself has changed,
- but not counting the other widgets found in the `next' field. */
- change_type this_one_change;
- /* Contents of the sub-widgets, also selected slot for checkbox */
- struct _widget_value* contents;
- /* data passed to callback */
- XtPointer call_data;
- /* next one in the list */
- struct _widget_value* next;
- /* slot for the toolkit dependent part. Always initialize to NULL. */
- void* toolkit_data;
- /* tell us if we should free the toolkit data slot when freeing the
- widget_value itself. */
- Boolean free_toolkit_data;
-} widget_value;
-
typedef void (*lw_callback) (Widget w, LWLIB_ID id, void* data);
+2014-06-03 Paul Eggert <eggert@cs.ucla.edu>
+
+ Do not require libXt-devel when building with gtk.
+ * gtkutil.h, menu.h: Include lwlib-widget.h, not lwlib-h, to avoid
+ dependency on libXt-devel.
+ * menu.h [HAVE_NTGUI]: Include lwlib-widget.h in this case too.
+ (enum button_type, widget_value) [HAVE_NTGUI]: Remove, as
+ lwlib-widget.h now does this.
+ * nsmenu.m (ns_menu_show): "enabled" -> "enable" to fix typo.
+
2014-06-03 Paul Eggert <eggert@penguin.cs.ucla.edu>
If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET.
#ifdef USE_GTK
#include <gtk/gtk.h>
-#include "../lwlib/lwlib.h"
+#include "../lwlib/lwlib-widget.h"
#include "frame.h"
#include "xterm.h"
#define MENU_H
#include "systime.h" /* for Time */
-#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS)
-#include "../lwlib/lwlib.h" /* for widget_value */
-#endif
+#include "../lwlib/lwlib-widget.h"
#ifdef HAVE_NTGUI
-/* This is based on the one in ../lwlib/lwlib.h, with unused portions
- removed. HAVE_NTGUI cannot include lwlib.h, as that pulls in X11
- headers. */
-
-enum button_type
-{
- BUTTON_TYPE_NONE,
- BUTTON_TYPE_TOGGLE,
- BUTTON_TYPE_RADIO
-};
-
-typedef struct _widget_value
-{
- /* name of widget */
- Lisp_Object lname;
- const char* name;
- /* value (meaning depend on widget type) */
- const char* value;
- /* keyboard equivalent. no implications for XtTranslations */
- Lisp_Object lkey;
- const char* key;
- /* Help string or nil if none.
- GC finds this string through the frame's menu_bar_vector
- or through menu_items. */
- Lisp_Object help;
- /* true if enabled */
- unsigned char enabled;
- /* true if selected */
- unsigned char selected;
- /* The type of a button. */
- enum button_type button_type;
- /* true if menu title */
- unsigned char title;
- /* Contents of the sub-widgets, also selected slot for checkbox */
- struct _widget_value* contents;
- /* data passed to callback */
- void *call_data;
- /* next one in the list */
- struct _widget_value* next;
-} widget_value;
-
extern Lisp_Object Qunsupported__w32_dialog;
#endif
}
#endif /* not HAVE_MULTILINGUAL_MENU */
- wv = make_widget_value (SSDATA (item_name), NULL, !NILP (enabled),
+ wv = make_widget_value (SSDATA (item_name), NULL, !NILP (enable),
STRINGP (help) ? help : Qnil);
if (prev_wv)
prev_wv->next = wv;