#ifndef TOOLBAR_H
#define TOOLBAR_H
#include "../ui/toolbar.h"
#include "../common/toolbar.h"
#include <cx/map.h>
#include <cx/list.h>
#include "list.h"
#ifdef __cplusplus
extern "C" {
#endif
#if UI_GTK2 ||
UI_GTK3
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;
CxList *groups;
int isimportant;
};
struct UiStToolItem {
UiToolItemI item;
const char *stockid;
ui_callback callback;
void *userdata;
const char *varname;
CxList *groups;
int isimportant;
};
struct UiToggleToolItem {
UiToolItemI item;
const char *label;
const char *image;
const char *stockid;
UiInteger *value;
const char *var;
CxList *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_toolitem_vstgr(
char *name,
char *stockid,
int isimportant,
ui_callback f,
void *userdata,
va_list ap);
GtkWidget* ui_create_toolbar(UiObject *obj);
void ui_toolbar_add_items(UiObject *obj, GtkWidget *toolbar, CxMap *items, CxList *defaults);
void add_toolitem_widget(GtkToolbar *tb, UiToolbarItem *item, UiObject *obj);
void add_toolitem_toggle_widget(GtkToolbar *tb, UiToolbarToggleItem *item, UiObject *obj);
void add_toolitem_menu_widget(GtkToolbar *tb, UiToolbarMenuItem *item, UiObject *obj);
void ui_tool_button_toggled(GtkToggleToolButton *widget, UiVarEventData *event);
int64_t ui_tool_toggle_button_get(UiInteger *integer);
void ui_tool_toggle_button_set(UiInteger *integer,
int64_t value);
GtkWidget* ui_create_headerbar(UiObject *obj);
void ui_toolbar_headerbar_add_items(UiObject *obj, GtkWidget *headerbar, CxMap *items, CxList *defaults);
void add_headerbar_item_widget(GtkHeaderBar *hb, UiToolbarItem *item, UiObject *obj);
void add_headerbar_item_toggle_widget(GtkHeaderBar *hb, UiToolbarToggleItem *item, UiObject *obj);
void add_headerbar_item_menu_widget(GtkHeaderBar *hb, UiToolbarMenuItem *item, UiObject *obj);
#endif
#ifdef __cplusplus
}
#endif
#endif