root/lwlib/lwlib-int.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /*
     2 Copyright (C) 1992 Lucid, Inc.
     3 Copyright (C) 2000-2023 Free Software Foundation, Inc.
     4 
     5 This file is part of the Lucid Widget Library.
     6 
     7 The Lucid Widget Library is free software; you can redistribute it and/or
     8 modify it under the terms of the GNU General Public License as published by
     9 the Free Software Foundation; either version 1, or (at your option)
    10 any later version.
    11 
    12 The Lucid Widget Library is distributed in the hope that it will be useful,
    13 but WITHOUT ANY WARRANTY; without even the implied warranty of
    14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    15 GNU General Public License for more details.
    16 
    17 You should have received a copy of the GNU General Public License
    18 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    19 
    20 
    21 #ifndef LWLIB_INTERNAL_H
    22 #define LWLIB_INTERNAL_H
    23 
    24 #include "lwlib.h"
    25 
    26 struct widget_xft_data;
    27 
    28 typedef struct _widget_instance
    29 {
    30   Widget                widget;
    31   Widget                parent;
    32   Boolean               pop_up_p;
    33 #if defined USE_CAIRO || defined HAVE_XFT
    34   struct widget_xft_data *xft_data;
    35 #endif
    36   struct _widget_info*          info;
    37   struct _widget_instance*      next;
    38 } widget_instance;
    39 
    40 typedef struct _widget_info
    41 {
    42   char*                 type;
    43   char*                 name;
    44   LWLIB_ID              id;
    45   widget_value*         val;
    46   Boolean               busy;
    47   lw_callback           pre_activate_cb;
    48   lw_callback           selection_cb;
    49   lw_callback           post_activate_cb;
    50   lw_callback           highlight_cb;
    51   struct _widget_instance*      instances;
    52   struct _widget_info*          next;
    53 } widget_info;
    54 
    55 typedef Widget (*widget_creation_function) (widget_instance *instance);
    56 
    57 typedef struct _widget_creation_entry
    58 {
    59   char*                         type;
    60   widget_creation_function      function;
    61 } widget_creation_entry;
    62 
    63 /* update all other instances of a widget.  Can be used in a callback when
    64    a widget has been used by the user */
    65 void
    66 lw_internal_update_other_instances (Widget, XtPointer, XtPointer);
    67 
    68 /* get the widget_value for a widget in a given instance */
    69 widget_value*
    70 lw_get_widget_value_for_widget (widget_instance *, Widget);
    71 
    72 widget_info *lw_get_widget_info (LWLIB_ID);
    73 widget_instance * lw_get_widget_instance (Widget);
    74 
    75 #endif /* LWLIB_INTERNAL_H */

/* [<][>][^][v][top][bottom][index][help] */