From: Paul Eggert Date: Tue, 3 Jun 2014 19:59:55 +0000 (-0700) Subject: Do not require libXt-devel when building with gtk. X-Git-Tag: emacs-25.0.90~2639^2~131 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=181f08a7d8378c5d3cb290b58c7618396413d28c;p=emacs.git Do not require libXt-devel when building with gtk. * 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. --- diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 5457b91d645..daf47ce4720 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,12 @@ +2014-06-03 Paul Eggert + + 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 * xlwmenu.c (openXftFont): Do not load regular X font here. diff --git a/lwlib/lwlib-widget.h b/lwlib/lwlib-widget.h new file mode 100644 index 00000000000..b5abb1af9fa --- /dev/null +++ b/lwlib/lwlib-widget.h @@ -0,0 +1,100 @@ +/* +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 . */ + +/* 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 diff --git a/lwlib/lwlib.h b/lwlib/lwlib.h index 563ade8b34d..46e2d7a4891 100644 --- a/lwlib/lwlib.h +++ b/lwlib/lwlib.h @@ -42,22 +42,9 @@ along with GNU Emacs. If not, see . */ ** 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. */ @@ -81,46 +68,6 @@ enum menu_separator 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); diff --git a/src/ChangeLog b/src/ChangeLog index 39dde84f645..a6cbac808c2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2014-06-03 Paul Eggert + + 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 If ENABLE_CHECKING, range-check args of FD_CLR, FD_ISSET, FD_SET. diff --git a/src/gtkutil.h b/src/gtkutil.h index 345b3283e6d..a69932cc25c 100644 --- a/src/gtkutil.h +++ b/src/gtkutil.h @@ -24,7 +24,7 @@ along with GNU Emacs. If not, see . */ #ifdef USE_GTK #include -#include "../lwlib/lwlib.h" +#include "../lwlib/lwlib-widget.h" #include "frame.h" #include "xterm.h" diff --git a/src/menu.h b/src/menu.h index d71989ea1ef..266a471bc38 100644 --- a/src/menu.h +++ b/src/menu.h @@ -20,52 +20,9 @@ along with GNU Emacs. If not, see . */ #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 diff --git a/src/nsmenu.m b/src/nsmenu.m index e5f0b7668bc..46b7400b2e4 100644 --- a/src/nsmenu.m +++ b/src/nsmenu.m @@ -943,7 +943,7 @@ ns_menu_show (struct frame *f, int x, int y, bool for_click, bool keymaps, } #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;