1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-28 19:42:02 +00:00
emacs/lwlib/lwlib-int.h
Jan Djärv 1ecb2d3f03 Use XFT in Lucid dialogs if available.
* xmenu.c (apply_systemfont_to_dialog): New.
	(create_and_show_dialog): Call apply_systemfont_to_dialog if HAVE_XFT.

	* lwlib-Xaw.c (widget_xft_data): New for Xft data.
	(fill_xft_data, openFont, get_text_width_and_height)
	(draw_text, set_text, find_xft_data, command_press)
	(command_reset): New functions.
	(xaw_update_one_widget): Call set_text for dialog and buttons
	if HAVE_XFT.  Also set internalHeight for buttons.
	(xaw_destroy_instance): Free all Xft related data.
	(button_actions, buttonTrans): New structures.
	(make_dialog): Call XtAppAddActions for button_actions.
	Find xft font to use and call fill_xft_data for widgets.
	(xaw_create_dialog): Pass instance parameter to make_dialog.

	* lwlib-int.h (_widget_instance): Add Xft data if HAVE_XFT.
	Override translations for buttons.  If depth is 16 or more, tell
	Xaw3d to not be nice to colormap.
	Remove separator widget, use XtNhorizDistance on first right button
	instead.

	* xresources.texi (Lucid Resources): Mention faceName for dialogs.
2010-04-11 20:25:09 +02:00

86 lines
2.3 KiB
C

/*
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 __P ((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) ();
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 __P ((Widget, XtPointer, XtPointer));
/* get the widget_value for a widget in a given instance */
widget_value*
lw_get_widget_value_for_widget __P ((widget_instance *, Widget));
widget_info *lw_get_widget_info __P ((LWLIB_ID));
widget_instance * lw_get_widget_instance __P ((Widget));
#endif /* LWLIB_INTERNAL_H */
/* arch-tag: ae02f67d-ef25-421c-b956-b01a4b0aac76
(do not change this comment) */