Mercurial > emacs
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 |
rev | line source |
---|---|
5626 | 1 #ifndef LWLIB_H |
2 #define LWLIB_H | |
3 | |
4 #include <X11/Intrinsic.h> | |
5 | |
6 /* | |
7 ** Widget values depend on the Widget type: | |
8 ** | |
9 ** widget: (name value key enabled data contents/selected) | |
10 ** | |
11 ** label: ("name" "string" NULL NULL NULL NULL) | |
12 ** button: ("name" "string" "key" T/F data <default-button-p>) | |
13 ** button w/menu: | |
14 ** ("name" "string" "key" T/F data (label|button|button w/menu...)) | |
15 ** menubar: ("name" NULL NULL T/F data (button w/menu)) | |
16 ** selectable thing: | |
17 ** ("name" "string" "key" T/F data T/F) | |
18 ** checkbox: selectable thing | |
19 ** radio: ("name" NULL NULL T/F data (selectable thing...)) | |
20 ** strings: ("name" NULL NULL T/F data (selectable thing...)) | |
21 ** text: ("name" "string" <ign> T/F data) | |
8784 | 22 ** main: ("name") |
5626 | 23 */ |
24 | |
25 typedef unsigned long LWLIB_ID; | |
26 | |
27 typedef enum _change_type | |
28 { | |
29 NO_CHANGE = 0, | |
30 INVISIBLE_CHANGE = 1, | |
31 VISIBLE_CHANGE = 2, | |
32 STRUCTURAL_CHANGE = 3 | |
33 } change_type; | |
34 | |
35 typedef struct _widget_value | |
36 { | |
37 /* name of widget */ | |
38 char* name; | |
39 /* value (meaning depend on widget type) */ | |
40 char* value; | |
41 /* keyboard equivalent. no implications for XtTranslations */ | |
42 char* key; | |
43 /* true if enabled */ | |
44 Boolean enabled; | |
45 /* true if selected */ | |
46 Boolean selected; | |
47 /* true if was edited (maintained by get_value) */ | |
48 Boolean edited; | |
49 /* true if has changed (maintained by lw library) */ | |
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 | 54 /* Contents of the sub-widgets, also selected slot for checkbox */ |
55 struct _widget_value* contents; | |
56 /* data passed to callback */ | |
57 XtPointer call_data; | |
58 /* next one in the list */ | |
59 struct _widget_value* next; | |
60 /* slot for the toolkit dependent part. Always initialize to NULL. */ | |
61 void* toolkit_data; | |
62 /* tell us if we should free the toolkit data slot when freeing the | |
63 widget_value itself. */ | |
64 Boolean free_toolkit_data; | |
65 | |
66 /* we resource the widget_value structures; this points to the next | |
67 one on the free list if this one has been deallocated. | |
68 */ | |
69 struct _widget_value *free_list; | |
70 } widget_value; | |
71 | |
72 | |
8784 | 73 typedef void (*lw_callback) (/* Widget w, LWLIB_ID id, void* data */); |
5626 | 74 |
8784 | 75 void lw_register_widget (/* char* type, char* name, LWLIB_ID id, |
76 widget_value* val, lw_callback pre_activate_cb, | |
77 lw_callback selection_cb, | |
78 lw_callback post_activate_cb */); | |
79 Widget lw_get_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); | |
80 Widget lw_make_widget (/* LWLIB_ID id, Widget parent, Boolean pop_up_p */); | |
81 Widget lw_create_widget (/* char* type, char* name, LWLIB_ID id, | |
82 widget_value* val, Widget parent, Boolean pop_up_p, | |
83 lw_callback pre_activate_cb, | |
84 lw_callback selection_cb, | |
85 lw_callback post_activate_cb */); | |
86 LWLIB_ID lw_get_widget_id (/* Widget w */); | |
87 void lw_modify_all_widgets (/* LWLIB_ID id, widget_value* val, Boolean deep_p */); | |
88 void lw_destroy_widget (/* Widget w */); | |
89 void lw_destroy_all_widgets (/* LWLIB_ID id */); | |
90 void lw_destroy_everything (/* void */); | |
91 void lw_destroy_all_pop_ups (/* void */); | |
92 Widget lw_raise_all_pop_up_widgets (/* void */); | |
93 widget_value* lw_get_all_values (/* LWLIB_ID id */); | |
94 Boolean lw_get_some_values (/* LWLIB_ID id, widget_value* val */); | |
95 void lw_pop_up_all_widgets (/* LWLIB_ID id */); | |
96 void lw_pop_down_all_widgets (/* LWLIB_ID id */); | |
5626 | 97 widget_value *malloc_widget_value (); |
8784 | 98 void free_widget_value (/* widget_value * */); |
99 void lw_popup_menu (/* Widget */); | |
5626 | 100 |
101 /* Toolkit independent way of focusing on a Widget at the Xt level. */ | |
8784 | 102 void lw_set_keyboard_focus (/* Widget parent, Widget w */); |
5626 | 103 |
104 /* Silly Energize hack to invert the "sheet" button */ | |
8784 | 105 void lw_show_busy (/* Widget w, Boolean busy */); |
106 | |
107 /* Silly hack to assist with Lucid/Athena geometry management. */ | |
14018 | 108 void lw_refigure_widget (/* Widget w, Boolean doit */); |
8784 | 109 |
110 /* Toolkit independent way of determining if an event occurred on a | |
111 menubar. */ | |
112 Boolean lw_window_is_in_menubar (/* Window win, Widget menubar_widget */); | |
113 | |
114 /* Manage resizing: TRUE permits resizing widget w; FALSE disallows it. */ | |
115 void lw_allow_resizing (/* Widget w, Boolean flag */); | |
5626 | 116 |
9064 | 117 /* Set up the main window. */ |
118 void lw_set_main_areas (/* Widget parent, | |
119 Widget menubar, | |
120 Widget work_area */); | |
121 | |
5626 | 122 #endif /* LWLIB_H */ |