view lwlib/lwlib-int.h @ 109380:1a678cf6a4cd

Fix the MS-DOS build; remove more "#ifdef subprocesses". process.c <inhibit_sentinels>: Move to the common part. (Fwaiting_for_user_input_p): Move to the common part; return nil if async subprocesses aren't supported. sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on MS-DOS. Remove "#ifdef subprocesses". (sys_subshell, sys_select): Remove "#ifdef subprocesses". (gettimeofday): Remove "#ifdef subprocesses". (wait_without_blocking): Remove function. (flush_pending_output, child_setup_tty): Don't compile on MS-DOS. Remove "#ifdef subprocesses". (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not compiled on MS-DOS. callproc.c (Fcall_process) [!MSDOS]: Don't call wait_for_termination on MS-DOS. emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from initialization of inhibit_sentinels. keyboard.c (record_asynch_buffer_change): Remove "#ifdef subprocesses" conditional. callproc.c (Fcall_process) [!subprocesses]: Don't call wait_for_termination, since `buffer' cannot be an integer when async subprocesses are not supported xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses' for ifdefing away the call to Fprocess_status. process.c (add_keyboard_wait_descriptor) [!subprocesses]: Ifdef away the entire body of the function.
author Eli Zaretskii <eliz@gnu.org>
date Tue, 13 Jul 2010 14:03:42 +0300
parents 33021b778d4d
children 417b1e4d63cd
line wrap: on
line source

/*
Copyright (C) 1992 Lucid, Inc.
Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
  2010 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; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.  */


#ifndef LWLIB_INTERNAL_H
#define LWLIB_INTERNAL_H

#include "lwlib.h"

extern char *safe_strdup (const char *);

struct widget_xft_data;

typedef struct _widget_instance
{
  Widget		widget;
  Widget		parent;
  Boolean		pop_up_p;
#ifdef HAVE_XFT
  struct widget_xft_data *xft_data;
  int                   nr_xft_data;
#endif
  struct _widget_info*		info;
  struct _widget_instance*	next;
} widget_instance;

typedef struct _widget_info
{
  char*			type;
  char*			name;
  LWLIB_ID		id;
  widget_value*		val;
  Boolean		busy;
  lw_callback		pre_activate_cb;
  lw_callback		selection_cb;
  lw_callback		post_activate_cb;
  lw_callback		highlight_cb;
  struct _widget_instance*	instances;
  struct _widget_info*		next;
} widget_info;

typedef Widget (*widget_creation_function) (widget_instance *instance);

typedef struct _widget_creation_entry
{
  char*				type;
  widget_creation_function	function;
} widget_creation_entry;

/* update all other instances of a widget.  Can be used in a callback when
   a widget has been used by the user */
void
lw_internal_update_other_instances (Widget, XtPointer, XtPointer);

/* get the widget_value for a widget in a given instance */
widget_value*
lw_get_widget_value_for_widget (widget_instance *, Widget);

widget_info *lw_get_widget_info (LWLIB_ID);
widget_instance * lw_get_widget_instance (Widget);

#endif /* LWLIB_INTERNAL_H */

/* arch-tag: ae02f67d-ef25-421c-b956-b01a4b0aac76
   (do not change this comment) */