release-1.10release-1.6release-1.7release-1.8release-1.9
Last change
on this file since 3e0147f was
2a17b63,
checked in by Nelson Elhage <nelhage@mit.edu>, 15 years ago
|
Push and pop contexts whenever we change context.
This allows us to get rid of the awful hack in owl_process_input_char,
and opens the path to being able to invoke popup windows from the
editwin and vice versa (In fact, you can now do so without
segfaulting, although the display layer does not yet quite do the
right thing).
|
-
Property mode set to
100644
|
File size:
1.2 KB
|
Line | |
---|
1 | #include <string.h> |
---|
2 | #include "owl.h" |
---|
3 | |
---|
4 | #define SET_ACTIVE(ctx, new) ctx->mode = ((ctx->mode)&~OWL_CTX_ACTIVE_BITS)|new |
---|
5 | #define SET_MODE(ctx, new) ctx->mode = ((ctx->mode)&~OWL_CTX_MODE_BITS)|new |
---|
6 | |
---|
7 | int owl_context_init(owl_context *ctx) |
---|
8 | { |
---|
9 | ctx->mode = OWL_CTX_STARTUP; |
---|
10 | ctx->data = NULL; |
---|
11 | return 0; |
---|
12 | } |
---|
13 | |
---|
14 | |
---|
15 | /* returns whether test matches the current context */ |
---|
16 | int owl_context_matches(const owl_context *ctx, int test) |
---|
17 | { |
---|
18 | /*owl_function_debugmsg(", current: 0x%04x test: 0x%04x\n", ctx->mode, test);*/ |
---|
19 | if ((((ctx->mode&OWL_CTX_MODE_BITS) & test) |
---|
20 | || !(test&OWL_CTX_MODE_BITS)) |
---|
21 | && |
---|
22 | (((ctx->mode&OWL_CTX_ACTIVE_BITS) & test) |
---|
23 | || !(test&OWL_CTX_ACTIVE_BITS))) { |
---|
24 | return 1; |
---|
25 | } else { |
---|
26 | return 0; |
---|
27 | } |
---|
28 | } |
---|
29 | |
---|
30 | void *owl_context_get_data(const owl_context *ctx) |
---|
31 | { |
---|
32 | return ctx->data; |
---|
33 | } |
---|
34 | |
---|
35 | int owl_context_get_mode(const owl_context *ctx) |
---|
36 | { |
---|
37 | return ctx->mode & OWL_CTX_MODE_BITS; |
---|
38 | } |
---|
39 | |
---|
40 | int owl_context_get_active(const owl_context *ctx) |
---|
41 | { |
---|
42 | return ctx->mode & OWL_CTX_ACTIVE_BITS; |
---|
43 | } |
---|
44 | |
---|
45 | int owl_context_is_startup(const owl_context *ctx) |
---|
46 | { |
---|
47 | return (ctx->mode & OWL_CTX_STARTUP)?1:0; |
---|
48 | } |
---|
49 | |
---|
50 | int owl_context_is_interactive(const owl_context *ctx) |
---|
51 | { |
---|
52 | return(ctx->mode & OWL_CTX_INTERACTIVE)?1:0; |
---|
53 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.