ui/common/object.h

Sun, 07 Dec 2025 15:50:20 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 07 Dec 2025 15:50:20 +0100
changeset 971
0224108bd8c2
parent 932
28fc967f74ef
permissions
-rw-r--r--

rename tree.h to list.h

5
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
140
c03c338a7dcf refactors value binding system
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 33
diff changeset
4 * Copyright 2017 Olaf Wintermann. All rights reserved.
5
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19d37cb9c96c added textarea
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
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #ifndef UIC_OBJECT_H
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30 #define UIC_OBJECT_H
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 #include "../ui/toolkit.h"
932
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
33 #include <cx/map.h>
5
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35 #ifdef __cplusplus
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 extern "C" {
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 #endif
932
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
38
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
39 typedef struct UiObjectPrivate {
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
40 UiObject obj;
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
41 CxMap *ext;
28fc967f74ef add functions for storing custom data in an UiObject
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 886
diff changeset
42 } UiObjectPrivate;
5
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43
626
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
44 typedef void (*ui_object_callback)(UiObject *obj, void *userdata);
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
45
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
46 void ui_register_object_creation_callback(ui_object_callback func, void *userdata);
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
47 void ui_register_object_destruction_callback(ui_object_callback func, void *userdata);
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
48
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
49 void uic_object_created(UiObject *obj);
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
50 void uic_object_destroyed(UiObject *obj);
724c7036a03e add functions for registering global object creation/destruction callbacks
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 404
diff changeset
51
383
03599608d555 add UiObject reference counting (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 328
diff changeset
52 void uic_object_destroy(UiObject *obj);
03599608d555 add UiObject reference counting (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 328
diff changeset
53
627
3f0c9fe60c68 use uic_object_new_toplevel to create toplevel objects
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 626
diff changeset
54 UiObject* uic_object_new_toplevel(void);
33
458831c574f4 added listview, sidebar and toolbar image button (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 5
diff changeset
55 UiObject* uic_object_new(UiObject *toplevel, UIWIDGET widget);
328
059cba080ab4 implement new tabview (GTK)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 192
diff changeset
56 UiObject* uic_ctx_object_new(UiContext *ctx, UIWIDGET widget);
404
384f6d1f5784 add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 383
diff changeset
57
384f6d1f5784 add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 383
diff changeset
58 void uic_object_push_container(UiObject *toplevel, UiContainerX *newcontainer);
384f6d1f5784 add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 383
diff changeset
59 void uic_object_pop_container(UiObject *toplevel);
886
6f5e02fcb7b9 implement frame container (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 801
diff changeset
60 void uic_object_remove_second_last_container(UiObject *toplevel);
404
384f6d1f5784 add first working cocoa code
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 383
diff changeset
61
5
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 #ifdef __cplusplus
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 }
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 #endif
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 #endif /* UIC_OBJECT_H */
19d37cb9c96c added textarea
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69

mercurial