add existing code (build system, libs, initial mizucp code)
[mizunara.git] / ui / motif / tree.h
1 /*
2  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3  *
4  * Copyright 2014 Olaf Wintermann. All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  *   1. Redistributions of source code must retain the above copyright
10  *      notice, this list of conditions and the following disclaimer.
11  *
12  *   2. Redistributions in binary form must reproduce the above copyright
13  *      notice, this list of conditions and the following disclaimer in the
14  *      documentation and/or other materials provided with the distribution.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef TREE_H
30 #define TREE_H
31
32 #include "../ui/tree.h"
33 #include "../common/context.h"
34
35 #ifdef  __cplusplus
36 extern "C" {
37 #endif
38
39 typedef struct UiTreeEventData {
40     UiObject        *obj;
41     ui_callback     activate;
42     ui_callback     selection;
43     void            *userdata;
44     UiListSelection *last_selection;
45 } UiTreeEventData;    
46
47 typedef struct UiTableView {
48     Widget      widget;
49     UiVar       *var;
50     UiModel     *model;
51 } UiTableView;
52
53 void ui_table_update(UiEvent *event, UiTableView *view);
54 int ui_add_icon_gadget(Widget container, UiModel *model, void *data);
55 char* ui_type_to_string(UiModelType type, void *data, Boolean *free);
56
57 void ui_table_action_callback(
58         Widget widget,
59         UiTreeEventData *event,
60         XmContainerSelectCallbackStruct *sel);
61 void ui_table_select_callback(
62         Widget widget,
63         UiTreeEventData *event,
64         XmContainerSelectCallbackStruct *sel);
65
66 UiListSelection* ui_list_selection(XmContainerSelectCallbackStruct *xs);
67
68 Boolean ui_compare_list_selection(UiListSelection *s1, UiListSelection *s2);
69
70
71 #ifdef  __cplusplus
72 }
73 #endif
74
75 #endif  /* TREE_H */
76