annotate lwlib/lwlib-internal.h @ 5750:66d2f63df75f

Correct some spelling and formatting in behavior.el. Mentioned in tracker issue 826, the third thing mentioned there (the file name at the bottom of the file) had already been fixed. lisp/ChangeLog addition: 2013-08-05 Aidan Kehoe <kehoea@parhasard.net> * behavior.el: (override-behavior): Correct some spelling and formatting here, thank you Steven Mitchell in tracker issue 826.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 05 Aug 2013 10:05:32 +0100
parents ade4c7e2c6cb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4894
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
1 /* Implementation-specific definitions for the Lucid Widget Library.
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
2 Copyright (C) 1992 Lucid, Inc.
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
3 Copyright (C) 2000 Ben Wing.
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
4
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
5 This file is part of the Lucid Widget Library.
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
6
5422
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
7 The Lucid Widget Library is free software: you can redistribute it
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
8 and/or modify it under the terms of the GNU General Public License as
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
9 published by the Free Software Foundation, either version 3 of the
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
10 License, or (at your option) any later version.
4894
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
11
5422
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
12 The Lucid Widget Library is distributed in the hope that it will be
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
15 General Public License for more details.
4894
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
16
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
17 You should have received a copy of the GNU General Public License
5422
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
18 along with the Lucid Widget Library. If not, see
ade4c7e2c6cb Migrate lwlib/ to GPLv3.
Mike Sperber <sperber@deinprogramm.de>
parents: 5231
diff changeset
19 <http://www.gnu.org/licenses/>. */
4894
03ab78e48ef6 Add copyright and license information based on Ben's recollections.
Jerry James <james@xemacs.org>
parents: 3025
diff changeset
20
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
21 #ifndef INCLUDED_lwlib_internal_h_
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
22 #define INCLUDED_lwlib_internal_h_
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 #include "lwlib.h"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
26 #ifdef USE_ASSERTIONS
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
27 /* Highly dubious kludge */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
28 /* (thanks, Jamie, I feel better now -- ben) */
1650
34abfb24e891 [xemacs-hg @ 2003-08-28 15:44:04 by james]
james
parents: 771
diff changeset
29 EXTERN_C void assert_failed (const char *, int, const char *);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
30 # define abort() (assert_failed (__FILE__, __LINE__, "abort()"))
3025
facf3239ba30 [xemacs-hg @ 2005-10-25 11:16:19 by ben]
ben
parents: 1650
diff changeset
31 # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x))
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
32 #else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
33 # ifdef DEBUG_XEMACS
3025
facf3239ba30 [xemacs-hg @ 2005-10-25 11:16:19 by ben]
ben
parents: 1650
diff changeset
34 # define assert(x) ((x) ? (void) 0 : (void) abort ())
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
35 # else
3025
facf3239ba30 [xemacs-hg @ 2005-10-25 11:16:19 by ben]
ben
parents: 1650
diff changeset
36 # define assert(x) ((void) 0)
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
37 # endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
38 #endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents: 442
diff changeset
39
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 /* This represents a single widget within a widget tree. All the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 widgets in a widget tree are chained through the `next' field.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42 `info' is a back pointer to the widget tree. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 typedef struct _widget_instance
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 Widget widget;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47 Widget parent;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 Boolean pop_up_p;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 struct _widget_info* info;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 struct _widget_instance* next;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 } widget_instance;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 /* This represents a single widget tree, such as a single menubar.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 The global variable `all_widget_info' lists all widget trees,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 chained through the `next' field of this structure. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 typedef struct _widget_info
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 char* type;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 char* name;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 LWLIB_ID id;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 widget_value* val;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 Boolean busy;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 lw_callback pre_activate_cb;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 lw_callback selection_cb;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 lw_callback post_activate_cb;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 struct _widget_instance* instances;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 struct _widget_info* next;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 } widget_info;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 typedef Widget
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 (*widget_creation_function) (widget_instance* instance);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 typedef struct _widget_creation_entry
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
76 const char* type;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 widget_creation_function function;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 } widget_creation_entry;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 /* update all other instances of a widget. Can be used in a callback when
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
81 a widget has been used by the user */
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 void
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 lw_internal_update_other_instances (Widget widget, XtPointer closure,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84 XtPointer call_data);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 /* get the widget_value for a widget in a given instance */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 widget_value*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 lw_get_widget_value_for_widget (widget_instance* instance, Widget w);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 widget_info *lw_get_widget_info (LWLIB_ID id);
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91
440
8de8e3f6228a Import from CVS: tag r21-2-28
cvs
parents: 428
diff changeset
92 #endif /* INCLUDED_lwlib_internal_h_ */