#ifndef CONTAINER_H
#define CONTAINER_H
#include "../ui/toolkit.h"
#include "../ui/container.h"
#include <string.h>
#ifdef __cplusplus
extern "C" {
#endif
#define ui_reset_layout(layout) memset(&(layout),
0,
sizeof(UiLayout))
#define ui_lb2bool(b) ((b) ==
UI_LAYOUT_TRUE ?
TRUE :
FALSE)
#define ui_bool2lb(b) ((b) ?
UI_LAYOUT_TRUE :
UI_LAYOUT_FALSE)
typedef void (*ui_container_add_f)(UiContainer*, GtkWidget*, UiBool);
typedef struct UiDocumentView UiDocumentView;
typedef struct UiLayout UiLayout;
typedef enum UiLayoutBool UiLayoutBool;
enum UiLayoutBool {
UI_LAYOUT_UNDEFINED =
0,
UI_LAYOUT_TRUE,
UI_LAYOUT_FALSE,
};
struct UiLayout {
UiLayoutBool fill;
UiBool newline;
char *label;
UiBool hexpand;
UiBool vexpand;
int width;
int gridwidth;
};
struct UiContainer {
GtkWidget *widget;
GtkMenu *menu;
GtkWidget *current;
void (*add)(UiContainer*, GtkWidget*, UiBool);
UiLayout layout;
int close;
};
typedef struct UiBoxContainer {
UiContainer container;
UiBool has_fill;
} UiBoxContainer;
typedef struct UiGridContainer {
UiContainer container;
int x;
int y;
#ifdef UI_GTK2
int width;
int height;
#endif
} UiGridContainer;
typedef struct UiPanedContainer {
UiContainer container;
GtkWidget *current_pane;
int orientation;
int max;
int cur;
} UiPanedContainer;
typedef struct UiTabViewContainer {
UiContainer container;
} UiTabViewContainer;
GtkWidget* ui_gtk_vbox_new(
int spacing);
GtkWidget* ui_gtk_hbox_new(
int spacing);
UiContainer* ui_frame_container(UiObject *obj, GtkWidget *frame);
void ui_frame_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
UiContainer* ui_box_container(UiObject *obj, GtkWidget *box);
void ui_box_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
UiContainer* ui_grid_container(UiObject *obj, GtkWidget *grid);
void ui_grid_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
UiContainer* ui_scrolledwindow_container(UiObject *obj, GtkWidget *scrolledwindow);
void ui_scrolledwindow_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
UiContainer* ui_tabview_container(UiObject *obj, GtkWidget *tabview);
void ui_tabview_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
void ui_paned_container_add(UiContainer *ct, GtkWidget *widget, UiBool fill);
void ui_split_container_add1(UiContainer *ct, GtkWidget *widget, UiBool fill);
void ui_split_container_add2(UiContainer *ct, GtkWidget *widget, UiBool fill);
UiObject* ui_add_document_tab(UiDocumentView *view);
void ui_tab_set_document(UiContext *ctx,
void *document);
void ui_tab_detach_document(UiContext *ctx);
#ifdef __cplusplus
}
#endif
#endif