Mercurial > hg > xemacs-beta
annotate lwlib/lwlib-internal.h @ 4549:68d1ca56cffa
First part of interactive checks that coding systems encode regions.
2008-01-21 Aidan Kehoe <kehoea@parhasard.net>
* coding.el (decode-coding-string):
(encode-coding-string): Accept GNU's NOCOPY argument for
these. Todo; write compiler macros to use it.
(query-coding-warning-face): New face, to show unencodable
characters.
(default-query-coding-region-safe-charset-skip-chars-map):
New variable, a cache used by #'default-query-coding-region.
(default-query-coding-region): Default implementation of
#'query-coding-region, using the safe-charsets and safe-chars
coding systemproperties.
(query-coding-region): New function; can a given coding system
encode a given region?
(query-coding-string): New function; can a given coding system
encode a given string?
(unencodable-char-position): Function API taken from GNU; return
the first unencodable position given a string and coding system.
(encode-coding-char): Function API taken from GNU; return CHAR
encoded using CODING-SYSTEM, or nil if CODING-SYSTEM would trash
CHAR.
((unless (featurep 'mule)): Override the default
query-coding-region implementation on non-Mule.
* mule/mule-coding.el (make-8-bit-generate-helper): Eliminate a
duplicate comment.
(make-8-bit-choose-category): Simplify implementation.
(8-bit-fixed-query-coding-region): Implementation of
#'query-coding-region for coding systems created with
#'make-8-bit-coding-system.
(make-8-bit-coding-system): Initialise the #'query-coding-region
implementation for these character sets.
(make-8-bit-coding-system): Ditto for the compiler macro version
of this function.
* unicode.el (unicode-query-coding-skip-chars-arg): New variable,
used by unicode-query-coding-region, initialised in
mule/general-late.el.
(unicode-query-coding-region): New function, the
#'query-coding-region implementation for Unicode coding systems.
Initialise the query-coding-function property for the Unicode
coding systems to #'unicode-query-coding-region.
* mule/mule-charset.el (charset-skip-chars-string): New
function. Return a #'skip-chars-forward argument that skips all
characters in CHARSET.
(map-charset-chars): Function synced from GNU, modified to work
with XEmacs. Map FUNC across the int value charset ranges of
CHARSET.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 21 Jan 2008 22:51:21 +0100 |
parents | facf3239ba30 |
children | 03ab78e48ef6 |
rev | line source |
---|---|
440 | 1 #ifndef INCLUDED_lwlib_internal_h_ |
2 #define INCLUDED_lwlib_internal_h_ | |
428 | 3 |
4 #include "lwlib.h" | |
5 | |
448 | 6 #ifdef USE_ASSERTIONS |
7 /* Highly dubious kludge */ | |
8 /* (thanks, Jamie, I feel better now -- ben) */ | |
1650 | 9 EXTERN_C void assert_failed (const char *, int, const char *); |
448 | 10 # define abort() (assert_failed (__FILE__, __LINE__, "abort()")) |
3025 | 11 # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x)) |
448 | 12 #else |
13 # ifdef DEBUG_XEMACS | |
3025 | 14 # define assert(x) ((x) ? (void) 0 : (void) abort ()) |
448 | 15 # else |
3025 | 16 # define assert(x) ((void) 0) |
448 | 17 # endif |
18 #endif | |
19 | |
428 | 20 /* This represents a single widget within a widget tree. All the |
21 widgets in a widget tree are chained through the `next' field. | |
22 `info' is a back pointer to the widget tree. */ | |
23 | |
24 typedef struct _widget_instance | |
25 { | |
26 Widget widget; | |
27 Widget parent; | |
28 Boolean pop_up_p; | |
29 struct _widget_info* info; | |
30 struct _widget_instance* next; | |
31 } widget_instance; | |
32 | |
33 /* This represents a single widget tree, such as a single menubar. | |
34 The global variable `all_widget_info' lists all widget trees, | |
35 chained through the `next' field of this structure. */ | |
36 | |
37 typedef struct _widget_info | |
38 { | |
39 char* type; | |
40 char* name; | |
41 LWLIB_ID id; | |
42 widget_value* val; | |
43 Boolean busy; | |
44 lw_callback pre_activate_cb; | |
45 lw_callback selection_cb; | |
46 lw_callback post_activate_cb; | |
47 struct _widget_instance* instances; | |
48 struct _widget_info* next; | |
49 } widget_info; | |
50 | |
51 typedef Widget | |
52 (*widget_creation_function) (widget_instance* instance); | |
53 | |
54 typedef struct _widget_creation_entry | |
55 { | |
442 | 56 const char* type; |
428 | 57 widget_creation_function function; |
58 } widget_creation_entry; | |
59 | |
60 /* update all other instances of a widget. Can be used in a callback when | |
442 | 61 a widget has been used by the user */ |
428 | 62 void |
63 lw_internal_update_other_instances (Widget widget, XtPointer closure, | |
64 XtPointer call_data); | |
65 | |
66 /* get the widget_value for a widget in a given instance */ | |
67 widget_value* | |
68 lw_get_widget_value_for_widget (widget_instance* instance, Widget w); | |
69 | |
70 widget_info *lw_get_widget_info (LWLIB_ID id); | |
71 | |
440 | 72 #endif /* INCLUDED_lwlib_internal_h_ */ |