application/demo_states.c

Tue, 16 Jun 2026 17:29:14 +0200

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 16 Jun 2026 17:29:14 +0200
changeset 1203
35779840ebfd
parent 1201
fd7dc0716ab6
permissions
-rw-r--r--

add ui_suppress_state/ui_unsuppress_state

1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2026 Olaf Wintermann. All rights reserved.
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "demo_states.h"
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31 #include <inttypes.h>
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 static void *doc1;
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 static void *doc2;
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 static void doc1_attachment(UiEvent *event, void *userdata) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 printf("attach document 1\n");
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 ui_attach_document(event->obj->ctx, doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 printf("detach document 1\n");
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 ui_detach_document(event->obj->ctx, doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 static void doc2_attachment(UiEvent *event, void *userdata) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 UiContext *ctx = ui_document_context(doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 printf("attach document 2 to document 1\n");
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50 ui_attach_document(ctx, doc2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 printf("detach document 2 from document 1\n");
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 ui_detach_document(ctx, doc2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 static void doc_enable_state1(UiEvent *event, void *doc) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 UiContext *ctx = ui_document_context(doc);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 ui_set_state(ctx, 1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62 ui_unset_state(ctx, 1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 static void doc_enable_state2(UiEvent *event, void *doc) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 UiContext *ctx = ui_document_context(doc);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 ui_set_state(ctx, 2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71 ui_unset_state(ctx, 2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75 static void doc_enable_state3(UiEvent *event, void *doc) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 UiContext *ctx = ui_document_context(doc);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 ui_set_state(ctx, 3);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 ui_unset_state(ctx, 3);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 static void doc_enable_state4(UiEvent *event, void *doc) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 UiContext *ctx = ui_document_context(doc);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 if(event->intval) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 ui_set_state(ctx, 4);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88 } else {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 ui_unset_state(ctx, 4);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92
1203
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
93 static void doc_suppress_state1(UiEvent *event, void *doc) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
94 UiContext *ctx = ui_document_context(doc);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
95 if(event->intval) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
96 ui_suppress_state(ctx, 1);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
97 } else {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
98 ui_unsuppress_state(ctx, 1);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
99 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
100 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
101
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
102 static void doc_suppress_state2(UiEvent *event, void *doc) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
103 UiContext *ctx = ui_document_context(doc);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
104 if(event->intval) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
105 ui_suppress_state(ctx, 2);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
106 } else {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
107 ui_unsuppress_state(ctx, 2);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
108 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
109 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
110
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
111 static void doc_suppress_state3(UiEvent *event, void *doc) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
112 UiContext *ctx = ui_document_context(doc);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
113 if(event->intval) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
114 ui_suppress_state(ctx, 3);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
115 } else {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
116 ui_unsuppress_state(ctx, 3);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
117 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
118 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
119
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
120 static void doc_suppress_state4(UiEvent *event, void *doc) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
121 UiContext *ctx = ui_document_context(doc);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
122 if(event->intval) {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
123 ui_suppress_state(ctx, 4);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
124 } else {
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
125 ui_unsuppress_state(ctx, 4);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
126 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
127 }
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
128
1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 static void application_startup(UiEvent *event, void *userdata) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130 UiObject *obj = ui_window("States Demo");
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 doc1 = ui_document_new(8);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 doc2 = ui_document_new(8);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 ui_hbox(obj, .margin = 10, .spacing = 8) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136 ui_button(obj, .label = "State 1", .states = UI_STATES(1));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137 ui_button(obj, .label = "State 2", .states = UI_STATES(2));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 ui_button(obj, .label = "State 3", .states = UI_STATES(3));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139 ui_button(obj, .label = "State 4", .states = UI_STATES(4));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140 ui_button(obj, .label = "State 1,2", .states = UI_STATES(1, 2));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141 ui_button(obj, .label = "State 1,2,3", .states = UI_STATES(1, 2, 3));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142 ui_button(obj, .label = "State 1,2,3,4", .states = UI_STATES(1, 2, 3, 4));
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
144
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
145 ui_frame(obj, .label = "Window", .fill = TRUE, .margin = 10, .subcontainer = UI_CONTAINER_VBOX) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
146 ui_hbox(obj, .margin = 10, .spacing = 8) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
147 ui_togglebutton(obj, .label = "Enable 1", .enable_state = 1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
148 ui_togglebutton(obj, .label = "Enable 2", .enable_state = 2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
149 ui_togglebutton(obj, .label = "Enable 3", .enable_state = 3);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
150 ui_togglebutton(obj, .label = "Enable 4", .enable_state = 4);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
151 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
152
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
153 ui_frame(obj, .label = "Doc 1", .fill = TRUE, .margin = 10, .padding = 10, .spacing = 10, .subcontainer = UI_CONTAINER_VBOX) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
154 ui_togglebutton(obj, .label = "Attach", .onchange = doc1_attachment);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
155
1203
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
156 ui_grid(obj, .margin = 10, .columnspacing = 8, .rowspacing = 8, .def_hfill = TRUE) {
1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
157 ui_togglebutton(obj, .label = "Enable 1", .onchange = doc_enable_state1, .onchangedata = doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
158 ui_togglebutton(obj, .label = "Enable 2", .onchange = doc_enable_state2, .onchangedata = doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
159 ui_togglebutton(obj, .label = "Enable 3", .onchange = doc_enable_state3, .onchangedata = doc1);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
160 ui_togglebutton(obj, .label = "Enable 4", .onchange = doc_enable_state4, .onchangedata = doc1);
1203
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
161
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
162 ui_newline(obj);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
163
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
164 ui_togglebutton(obj, .label = "Suppress 1", .onchange = doc_suppress_state1, .onchangedata = doc1);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
165 ui_togglebutton(obj, .label = "Suppress 2", .onchange = doc_suppress_state2, .onchangedata = doc1);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
166 ui_togglebutton(obj, .label = "Suppress 3", .onchange = doc_suppress_state3, .onchangedata = doc1);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
167 ui_togglebutton(obj, .label = "Suppress 4", .onchange = doc_suppress_state4, .onchangedata = doc1);
1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
168 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
169
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
170 ui_frame(obj, .label = "Doc 2", .fill = TRUE, .margin = 10, .padding = 10, .spacing = 10, .subcontainer = UI_CONTAINER_VBOX) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
171 ui_togglebutton(obj, .label = "Attach", .onchange = doc2_attachment);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
172
1203
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
173 ui_grid(obj, .margin = 10, .columnspacing = 8, .rowspacing = 8, .def_hfill = TRUE) {
1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
174 ui_togglebutton(obj, .label = "Enable 1", .onchange = doc_enable_state1, .onchangedata = doc2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
175 ui_togglebutton(obj, .label = "Enable 2", .onchange = doc_enable_state2, .onchangedata = doc2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
176 ui_togglebutton(obj, .label = "Enable 3", .onchange = doc_enable_state3, .onchangedata = doc2);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
177 ui_togglebutton(obj, .label = "Enable 4", .onchange = doc_enable_state4, .onchangedata = doc2);
1203
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
178
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
179 ui_newline(obj);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
180
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
181 ui_togglebutton(obj, .label = "Suppress 1", .onchange = doc_suppress_state1, .onchangedata = doc2);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
182 ui_togglebutton(obj, .label = "Suppress 2", .onchange = doc_suppress_state2, .onchangedata = doc2);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
183 ui_togglebutton(obj, .label = "Suppress 3", .onchange = doc_suppress_state3, .onchangedata = doc2);
35779840ebfd add ui_suppress_state/ui_unsuppress_state
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 1201
diff changeset
184 ui_togglebutton(obj, .label = "Suppress 4", .onchange = doc_suppress_state4, .onchangedata = doc2);
1201
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
185 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
186 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
187 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
188 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
189
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
190 ui_show(obj);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
191 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
192
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
193
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
194 #ifndef UI_WIN32
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
195
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
196 int main(int argc, char **argv) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
197 ui_init(NULL, argc, argv);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
198 ui_onstartup(application_startup, NULL);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
199 ui_main();
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
200 return 0;
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
201 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
202
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
203 #else
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
204
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
205 int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
206 //ui_init(NULL, argc, argv);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
207 //ui_onstartup(application_startup, NULL);
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
208 //ui_main();
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
209 return 0;
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
210 }
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
211
fd7dc0716ab6 change ui_active_states to return also active states from sub-documents
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
212 #endif

mercurial