emacs/lwlib/lwlib-int.h

76 lines
2 KiB
C
Raw Permalink Normal View History

/*
Copyright (C) 1992 Lucid, Inc.
2024-01-02 01:47:10 +00:00
Copyright (C) 2000-2024 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 <https://www.gnu.org/licenses/>. */
1994-01-18 23:47:41 +00:00
#ifndef LWLIB_INTERNAL_H
#define LWLIB_INTERNAL_H
#include "lwlib.h"
struct widget_xft_data;
1994-01-18 23:47:41 +00:00
typedef struct _widget_instance
{
Widget widget;
Widget parent;
Boolean pop_up_p;
Don't link libXft when using cairo * configure.ac: Check cairo early. Don't try Xft if cairo is used. * lwlib/lwlib-utils.h [USE_CAIRO]: Include cairo.h and fontconfig.h. (XftFont, XftDraw, XftColor, XGlyphInfo) [USE_CAIRO]: New typedefs. (XftFontOpenName, XftFontClose, XftDrawCreate, XftDrawDestroy) (XftDrawRect, XftDrawStringUtf8, XftTextExtentsUtf8) [USE_CAIRO]: New macros. (crxft_font_open_name, crxft_font_close, crxft_draw_create) (crxft_draw_rect, crxft_draw_string, crxft_text_extents) [USE_CAIRO]: New externs. * lwlib/lwlib-utils.c [USE_CAIRO]: Include math.h, cairo-ft.h, and cairo-xlib.h. (crxft_font_open_name, crxft_font_close, crxft_draw_create) (crxft_set_source_color, crxft_draw_rect, crxft_draw_string) (crxft_text_extents) [USE_CAIRO]: New Xft compatibility functions. * lwlib/xlwmenuP.h [USE_CAIRO]: Include lwlib-utils.h. * lwlib/xlwmenu.c (display_menu_item) [USE_CAIRO]: Call cairo_surface_mark_dirty and cairo_surface_flush. * lwlib/lwlib-Xaw.c [USE_CAIRO]: Include stdlib.h and lwlib-utils.h. (draw_text) [USE_CAIRO]: Call cairo_surface_flush. * src/xsettings.c [USE_CAIRO]: Include fontconfig.h (apply_xft_settings) [!HAVE_XFT]: Don't call XftDefaultSubstitute or XftDefaultSet. * lwlib/lwlib-Xaw.c: * lwlib/lwlib-int.h: * lwlib/xlwmenu.c: * lwlib/xlwmenuP.h: * src/xrdb.c: * src/xsettings.c: * src/xterm.c: Replace all #ifdef HAVE_XFT with #if defined USE_CAIRO || defined HAVE_XFT. * src/xfns.c (x_default_font_parameter): Replace #ifdef HAVE_XFT with #if defined USE_CAIRO || defined HAVE_XFT.
2019-04-24 03:31:37 +00:00
#if defined USE_CAIRO || defined HAVE_XFT
struct widget_xft_data *xft_data;
#endif
1994-01-18 23:47:41 +00:00
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;
1994-01-18 23:47:41 +00:00
struct _widget_instance* instances;
struct _widget_info* next;
} widget_info;
Change function definition from K&R to prototype. Fix prototype warnings. * lwlib-Xaw.c (xaw_generic_callback, command_reset) (xaw_update_one_value): Reformat. (xaw_update_one_widget): Reformat and remove dead code. (xaw_scrollbar_scroll, xaw_scrollbar_jump, xaw_create_scrollbar) (xaw_update_scrollbar): Remove (not used). (make_dialog): Change from K&R to prototype. Remove dead code. (xaw_creation_table): Remove scrollbar entry. * lwlib-Xlw.c (x_print_complete_resource_name): Change from K&R to prototype. (xlw_update_one_value): Reformat. * lwlib-Xm.c (x_print_complete_resource_name) (make_destroyed_instance, free_destroyed_instance, first_child) (lw_motif_widget_p, resource_motif_string, destroy_all_children) (xm_arm_callback, xm_update_label, xm_update_list) (xm_update_pushbutton, xm_update_cascadebutton) (xm_update_toggle, xm_update_radiobox, make_menu_in_widget) (update_one_menu_entry, xm_update_menu, xm_update_text) (xm_update_text_field, xm_update_one_widget) (xm_update_one_value, activate_button, dialog_key_cb) (make_dialog, mark_dead_instance_destroyed) (find_matching_instance, recenter_widget, recycle_instance) (xm_create_dialog, make_menubar, remove_grabs, make_popup_menu) (make_main, xm_destroy_instance, xm_popup_menu) (set_min_dialog_size, xm_pop_instance, do_call) (xm_internal_update_other_instances, xm_generic_callback) (xm_nosel_callback, xm_pull_down_callback, xm_pop_down_callback) (xm_set_keyboard_focus, xm_set_main_areas, xm_manage_resizing): Change from K&R to prototype. * lwlib-int.h (widget_creation_function): Fix prototype. * lwlib.c (allocate_widget_info, lw_register_widget): Change from K&R to prototype. (lw_internal_update_other_instances, merge_widget_value): Reformat. * xlwmenu.c (size_menu_item): Change from K&R to prototype. Change label_width and height to int. (draw_arrow, draw_shadow_rectangle, draw_shadow_rhombus) (draw_separator, display_menu, fit_to_screen, motion_event_is_in_menu) (map_event_to_widget_value): Reformat. (display_menu_item): Change from K&R to prototype.
2010-07-08 10:29:51 +00:00
typedef Widget (*widget_creation_function) (widget_instance *instance);
1994-01-18 23:47:41 +00:00
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
1996-01-05 00:45:43 +00:00
a widget has been used by the user */
1994-01-18 23:47:41 +00:00
void
lw_internal_update_other_instances (Widget, XtPointer, XtPointer);
1994-01-18 23:47:41 +00:00
/* get the widget_value for a widget in a given instance */
widget_value*
lw_get_widget_value_for_widget (widget_instance *, Widget);
1994-01-18 23:47:41 +00:00
widget_info *lw_get_widget_info (LWLIB_ID);
widget_instance * lw_get_widget_instance (Widget);
1994-01-18 23:47:41 +00:00
1994-09-10 15:23:10 +00:00
#endif /* LWLIB_INTERNAL_H */