application/demo_bindings.c

Tue, 28 Oct 2025 21:13:35 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Tue, 28 Oct 2025 21:13:35 +0100
changeset 882
75de79b155e3
parent 873
78853bfc47cf
child 886
6f5e02fcb7b9
permissions
-rw-r--r--

add ui_motif_get_app()

872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2017 Olaf Wintermann. All rights reserved.
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
1e34a27e016d add first code for binding demo
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
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "demo_bindings.h"
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30
873
78853bfc47cf add textfield (win32)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 872
diff changeset
31 #include <stdio.h>
78853bfc47cf add textfield (win32)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 872
diff changeset
32 #include <stdlib.h>
78853bfc47cf add textfield (win32)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 872
diff changeset
33 #include <string.h>
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34
873
78853bfc47cf add textfield (win32)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 872
diff changeset
35 #ifndef UI_WIN32
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 Document* document_create(int id) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38 Document* doc = ui_document_new(sizeof(Document));
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 UiContext *ctx = ui_document_context(doc);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 char buf[32];
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 snprintf(buf, 32, "%d", id);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 doc->id = ui_string_new(ctx, "id");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 doc->name = ui_string_new(ctx, "name");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 doc->input_name = ui_string_new(ctx, "input_name");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 ui_set(doc->id, buf);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 return doc;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 void update_name(UiEvent *event, void *userdata) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 Document *doc = event->document;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56 if(!doc) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 return;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 char *s = ui_get(doc->input_name);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 ui_set(doc->name, s);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63 void switch_document(UiEvent *event, void *userdata) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 MainWindow *wdata = event->window;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 if(event->document) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 ui_detach_document(event->obj->ctx, event->document);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 }
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
68 printf("selection: %d\n", event->intval);
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 Document *doc = ui_list_get(wdata->doclist, event->intval);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 if(doc) {
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
71 char *s1 = ui_get(doc->id);
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
72 char *s2 = ui_get(doc->name);
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
73 printf("doc %s - %s\n", s1, s2);
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 ui_attach_document(event->obj->ctx, doc);
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
75
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76 }
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
77 //UiListSelection sel = ui_list_getselection(wdata->doclist);
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
78 //printf("sel: %d\n", sel.rows[0]);
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
79 //ui_listselection_free(sel);
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 void* doclist_get_value(void *elm, int col) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83 Document *doc = elm;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 return ui_get(doc->id);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 void application_startup(UiEvent *event, void *data) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88 UiObject *obj = ui_simple_window("Bindings Demo", NULL);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
89 MainWindow *wdata = ui_malloc(obj->ctx, sizeof(MainWindow));
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90 obj->window = wdata;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92 wdata->doclist = ui_list_new(obj->ctx, "doclist");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10, .fill = TRUE) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 ui_rlabel(obj, .label = "Document:");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96 ui_llabel(obj, .varname = "id");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97 ui_newline(obj);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 ui_rlabel(obj, .label = "Name:");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100 ui_llabel(obj, .varname = "name");
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101 ui_newline(obj);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
103 ui_combobox(obj, .varname = "doclist", .colspan = 2, .onactivate = switch_document, .getvalue = doclist_get_value, .colspan = 2, .hfill = TRUE);
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 ui_newline(obj);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 ui_frame(obj, .label = "Document", .colspan = 2, .fill = TRUE) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 ui_grid(obj, .margin = 10, .columnspacing = 10, .rowspacing = 10) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 ui_rlabel(obj, .label = "Name:", .vfill = TRUE);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
109 ui_textfield(obj, .varname = "input_name", .onchange = update_name);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 for(int i=0;i<10;i++) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
115 Document *doc = document_create(i);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 ui_list_append(wdata->doclist, doc);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
118 ui_list_update(wdata->doclist);
882
75de79b155e3 add ui_motif_get_app()
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 873
diff changeset
119 ui_list_setselection(wdata->doclist, 0);
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 Document *doc = ui_list_get(wdata->doclist, 0);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121 ui_attach_document(obj->ctx, doc);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
124 ui_show(obj);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
125 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
126
873
78853bfc47cf add textfield (win32)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 872
diff changeset
127 #endif
872
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
128
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
129 #ifndef UI_WIN32
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
130
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
131 int main(int argc, char **argv) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
132 ui_init(NULL, argc, argv);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
133 ui_onstartup(application_startup, NULL);
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
134 ui_main();
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
135 return 0;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
136 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
137
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
138 #else
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
139
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
140 int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
141 return 0;
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
142 }
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
143
1e34a27e016d add first code for binding demo
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
144 #endif

mercurial