annotate lwlib/lwlib.h @ 22758:dbd9ecc9dbac

Added next-buffer/previous-buffer keybindings (bound to M-n/M-p). (crisp-unbury-buffer): New function. Fixed bogus XEmacs/Lucid string-match checking. Made modeline entry mouse2-able. (crisp-mode-map): Make this a sparse keymap parented from current-global-map. (crisp-mode-original-keymap): Don't copy the keymap. (crisp-last-last-command): Renamed from last-last-command. defvar it. (crisp-mode): Honor ARG. (crisp-kill-line, crisp-copy-line): When a region isn't highlighted, use the region from point to eol. Honor prefix argument. (crisp-submit-bug-report): New command, taken from cc-mode. Shortened the version numbering, removed the release-version tracking (crisp-version): New function. New keybindings `C-home', `C-end', `M-home', `M-end', `C-f', `M-l', `M-m'. (crisp-copy-line): No need to save point. Removed S-right and S-left bindings. Abstract the marking and selection interfaces so that we can be compatible with both Emacs and XEmacs. And try and make the behavior as close as possible under both environments so that there are no surprises.
author Karl Heuer <kwzh@gnu.org>
date Tue, 14 Jul 1998 22:17:35 +0000
parents de5c3eda52fc
children d8d30f76cc61
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 #ifndef LWLIB_H
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2 #define LWLIB_H
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4 #include <X11/Intrinsic.h>
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 /*
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ** Widget values depend on the Widget type:
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 **
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 ** widget: (name value key enabled data contents/selected)
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 **
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ** label: ("name" "string" NULL NULL NULL NULL)
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ** button: ("name" "string" "key" T/F data <default-button-p>)
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ** button w/menu:
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ** ("name" "string" "key" T/F data (label|button|button w/menu...))
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ** menubar: ("name" NULL NULL T/F data (button w/menu))
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ** selectable thing:
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ** ("name" "string" "key" T/F data T/F)
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ** checkbox: selectable thing
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ** radio: ("name" NULL NULL T/F data (selectable thing...))
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ** strings: ("name" NULL NULL T/F data (selectable thing...))
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ** text: ("name" "string" <ign> T/F data)
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
22 ** main: ("name")
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 typedef unsigned long LWLIB_ID;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 typedef enum _change_type
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 {
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 NO_CHANGE = 0,
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 INVISIBLE_CHANGE = 1,
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 VISIBLE_CHANGE = 2,
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 STRUCTURAL_CHANGE = 3
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 } change_type;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 typedef struct _widget_value
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 {
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 /* name of widget */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 char* name;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 /* value (meaning depend on widget type) */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 char* value;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 /* keyboard equivalent. no implications for XtTranslations */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 char* key;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 /* true if enabled */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 Boolean enabled;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 /* true if selected */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 Boolean selected;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 /* true if was edited (maintained by get_value) */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 Boolean edited;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 /* true if has changed (maintained by lw library) */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 change_type change;
14878
487b03096cc5 (struct widget_value): New field this_one_change.
Richard M. Stallman <rms@gnu.org>
parents: 14018
diff changeset
51 /* true if this widget itself has changed,
487b03096cc5 (struct widget_value): New field this_one_change.
Richard M. Stallman <rms@gnu.org>
parents: 14018
diff changeset
52 but not counting the other widgets found in the `next' field. */
487b03096cc5 (struct widget_value): New field this_one_change.
Richard M. Stallman <rms@gnu.org>
parents: 14018
diff changeset
53 change_type this_one_change;
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 /* Contents of the sub-widgets, also selected slot for checkbox */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 struct _widget_value* contents;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56 /* data passed to callback */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 XtPointer call_data;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 /* next one in the list */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 struct _widget_value* next;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 /* slot for the toolkit dependent part. Always initialize to NULL. */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 void* toolkit_data;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 /* tell us if we should free the toolkit data slot when freeing the
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 widget_value itself. */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 Boolean free_toolkit_data;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 /* we resource the widget_value structures; this points to the next
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 one on the free list if this one has been deallocated.
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 */
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 struct _widget_value *free_list;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 } widget_value;
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
73 typedef void (*lw_callback) (/* Widget w, LWLIB_ID id, void* data */);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
75 void lw_register_widget (/* char* type, char* name, LWLIB_ID id,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
76 widget_value* val, lw_callback pre_activate_cb,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
77 lw_callback selection_cb,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
78 lw_callback post_activate_cb */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
79 Widget lw_get_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
80 Widget lw_make_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
81 Widget lw_create_widget (/* char* type, char* name, LWLIB_ID id,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
82 widget_value* val, Widget parent, Boolean pop_up_p,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
83 lw_callback pre_activate_cb,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
84 lw_callback selection_cb,
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
85 lw_callback post_activate_cb */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
86 LWLIB_ID lw_get_widget_id (/* Widget w */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
87 void lw_modify_all_widgets (/* LWLIB_ID id, widget_value* val, Boolean deep_p */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
88 void lw_destroy_widget (/* Widget w */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
89 void lw_destroy_all_widgets (/* LWLIB_ID id */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
90 void lw_destroy_everything (/* void */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
91 void lw_destroy_all_pop_ups (/* void */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
92 Widget lw_raise_all_pop_up_widgets (/* void */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
93 widget_value* lw_get_all_values (/* LWLIB_ID id */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
94 Boolean lw_get_some_values (/* LWLIB_ID id, widget_value* val */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
95 void lw_pop_up_all_widgets (/* LWLIB_ID id */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
96 void lw_pop_down_all_widgets (/* LWLIB_ID id */);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 widget_value *malloc_widget_value ();
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
98 void free_widget_value (/* widget_value * */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
99 void lw_popup_menu (/* Widget */);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 /* Toolkit independent way of focusing on a Widget at the Xt level. */
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
102 void lw_set_keyboard_focus (/* Widget parent, Widget w */);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 /* Silly Energize hack to invert the "sheet" button */
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
105 void lw_show_busy (/* Widget w, Boolean busy */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
106
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
107 /* Silly hack to assist with Lucid/Athena geometry management. */
14018
0a94cd2c51c4 Comment fixes.
Karl Heuer <kwzh@gnu.org>
parents: 9064
diff changeset
108 void lw_refigure_widget (/* Widget w, Boolean doit */);
8784
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
109
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
110 /* Toolkit independent way of determining if an event occurred on a
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
111 menubar. */
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
112 Boolean lw_window_is_in_menubar (/* Window win, Widget menubar_widget */);
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
113
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
114 /* Manage resizing: TRUE permits resizing widget w; FALSE disallows it. */
0166e4ab659a *** empty log message ***
Paul Reilly <pmr@pajato.com>
parents: 5706
diff changeset
115 void lw_allow_resizing (/* Widget w, Boolean flag */);
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
9064
d716ea8937e2 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 8784
diff changeset
117 /* Set up the main window. */
d716ea8937e2 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 8784
diff changeset
118 void lw_set_main_areas (/* Widget parent,
d716ea8937e2 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 8784
diff changeset
119 Widget menubar,
d716ea8937e2 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 8784
diff changeset
120 Widget work_area */);
d716ea8937e2 entered into RCS
Paul Reilly <pmr@pajato.com>
parents: 8784
diff changeset
121
5626
93bb7e0935ba Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 #endif /* LWLIB_H */