From 181f08a7d8378c5d3cb290b58c7618396413d28c Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 3 Jun 2014 12:59:55 -0700 Subject: 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. --- lwlib/ChangeLog | 9 +++++ lwlib/lwlib-widget.h | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++ lwlib/lwlib.h | 57 ++--------------------------- 3 files changed, 111 insertions(+), 55 deletions(-) create mode 100644 lwlib/lwlib-widget.h (limited to 'lwlib') 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); -- cgit v1.2.1