#ifndef TOOLBAR_H
#define TOOLBAR_H
#include "../ui/toolbar.h"
#include <ucx/map.h>
#include <ucx/list.h>
#include "model.h"
#include "tree.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct UiToolItemI UiToolItemI;
typedef struct UiToolItem UiToolItem;
typedef struct UiStToolItem UiStToolItem;
typedef struct UiToggleToolItem UiToggleToolItem;
typedef struct UiToolbarComboBox UiToolbarComboBox;
typedef struct UiToolbarComboBoxNV UiToolbarComboBoxNV;
typedef void(*ui_toolbar_add_f)(GtkToolbar*, UiToolItemI*, UiObject*);
struct UiToolItemI {
ui_toolbar_add_f add_to;
};
struct UiToolItem {
UiToolItemI item;
const char *label;
const char *image;
ui_callback callback;
void *userdata;
const char *varname;
UcxList *groups;
int isimportant;
};
struct UiStToolItem {
UiToolItemI item;
const char *stockid;
ui_callback callback;
void *userdata;
const char *varname;
UcxList *groups;
int isimportant;
};
struct UiToggleToolItem {
UiToolItemI item;
const char *label;
const char *image;
const char *stockid;
UiInteger *value;
const char *var;
UcxList *groups;
int isimportant;
};
struct UiToolbarComboBox {
UiToolItemI item;
UiVar *var;
ui_getvaluefunc getvalue;
ui_callback callback;
void *userdata;
};
struct UiToolbarComboBoxNV {
UiToolItemI item;
char *listname;
ui_getvaluefunc getvalue;
ui_callback callback;
void *userdata;
};
void ui_toolbar_init();
void ui_toolitem_vstgr(
char *name,
char *stockid,
int isimportant,
ui_callback f,
void *userdata,
va_list ap);
GtkWidget* ui_create_toolbar(UiObject *obj);
void add_toolitem_widget(GtkToolbar *tb, UiToolItem *item, UiObject *obj);
void add_toolitem_st_widget(GtkToolbar *tb, UiStToolItem *item, UiObject *obj);
void add_toolitem_toggle_widget(GtkToolbar *tb, UiToggleToolItem *item, UiObject *obj);
void add_toolbar_combobox(GtkToolbar *tb, UiToolbarComboBox *cb, UiObject *obj);
void add_toolbar_combobox_nv(GtkToolbar *tb, UiToolbarComboBoxNV *cb, UiObject *obj);
void ui_combobox_change_event(GtkComboBox *widget, UiEventData *e);
void ui_combobox_update(UiEvent *event,
void *combobox);
void ui_tool_button_toggled(GtkToggleToolButton *widget, UiEventData *event);
int64_t ui_tool_toggle_button_get(UiInteger *integer);
void ui_tool_toggle_button_set(UiInteger *integer,
int64_t value);
#ifdef __cplusplus
}
#endif
#endif