ui/motif/tree.h

Sun, 27 Oct 2024 10:22:19 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 27 Oct 2024 10:22:19 +0100
branch
newapi
changeset 356
eae98e4f3f1f
parent 153
ee49d1852a5f
permissions
-rw-r--r--

add support for groups/states to text, list widgets (GTK)

/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 2014 Olaf Wintermann. All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice, this list of conditions and the following disclaimer.
 *
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice, this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef TREE_H
#define	TREE_H

#include "../ui/tree.h"
#include "../common/context.h"

#ifdef	__cplusplus
extern "C" {
#endif

typedef struct UiTreeEventData {
    UiObject        *obj;
    ui_callback     activate;
    ui_callback     selection;
    void            *userdata;
    UiListSelection *last_selection;
} UiTreeEventData;    

typedef struct UiTableView {
    Widget      widget;
    UiVar       *var;
    UiModel     *model;
} UiTableView;

void ui_table_update(UiEvent *event, UiTableView *view);
int ui_add_icon_gadget(Widget container, UiModel *model, void *data);
char* ui_type_to_string(UiModelType type, void *data, Boolean *free);

void ui_table_action_callback(
        Widget widget,
        UiTreeEventData *event,
        XmContainerSelectCallbackStruct *sel);
void ui_table_select_callback(
        Widget widget,
        UiTreeEventData *event,
        XmContainerSelectCallbackStruct *sel);

UiListSelection* ui_list_selection(XmContainerSelectCallbackStruct *xs);

Boolean ui_compare_list_selection(UiListSelection *s1, UiListSelection *s2);


#ifdef	__cplusplus
}
#endif

#endif	/* TREE_H */

mercurial