diff -r 9a5f47fbc5c3 -r 458831c574f4 ui/ui/toolkit.h --- a/ui/ui/toolkit.h Sat Apr 12 13:44:53 2014 +0200 +++ b/ui/ui/toolkit.h Sat May 10 15:43:22 2014 +0200 @@ -49,6 +49,15 @@ #include #define UIWIDGET Widget +#elif defined(UI_QT4) || defined(UI_QT5) +#ifdef __cplusplus +#include +#include +#define UIWIDGET QWidget* +#else /* __cplusplus */ +#define UIWIDGET void* +#endif + #endif #ifdef __cplusplus @@ -58,14 +67,14 @@ #define UI_GROUP_SELECTION 20000 /* public types */ -typedef struct UiObject UiObject; -typedef struct UiEvent UiEvent; -typedef struct UiObserver UiObserver; +typedef struct UiObject UiObject; +typedef struct UiEvent UiEvent; +typedef struct UiObserver UiObserver; -typedef struct UiInteger UiInteger; -typedef struct UiString UiString; -typedef struct UiText UiText; -typedef struct UiList UiList; +typedef struct UiInteger UiInteger; +typedef struct UiString UiString; +typedef struct UiText UiText; +typedef struct UiList UiList; /* private types */ typedef struct UiContext UiContext; @@ -74,37 +83,49 @@ #define ui_getval(val) (val).get(&(val)) #define ui_setval(val, v) (val).set(&(val), v) -#define ui_getsubstr(text, begin, end) (text).getsubstr(&(val), begin, end) +#define ui_getsubstr(text, begin, end) (text).getsubstr(&(text), begin, end) #define ui_insert(text, begin, str) (text).insert(&(text), begin, str) +#define ui_length(text) (text).length(&(text)) +#define ui_selection(text, begin, end) (text).selection(&(text), begin, end) +#define ui_position(text) (text).position(&(text)) +#define ui_remove(text, begin, end) (text).remove(&(text), begin, end) + +typedef void(*ui_callback)(UiEvent*, void*); /* event, user data */ - -typedef void(*ui_callback)(UiEvent*, void*); /* event, user data */ +typedef void*(*ui_model_getvalue_f)(void*, int); + +typedef int(*ui_threadfunc)(void*); struct UiObject { /* * native widget */ - UIWIDGET widget; + UIWIDGET widget; /* * user window data */ - void *window; + void *window; /* * current document */ - void *document; + void *document; /* * window context (private) */ - UiContext *ctx; + UiContext *ctx; /* * container interface (private) */ UiContainer *container; + + /* + * next container object + */ + UiObject *next; }; struct UiEvent { @@ -143,10 +164,11 @@ int (*position)(UiText*); void (*selection)(UiText*, int*, int*); // text, begin, end int (*length)(UiText*); + void (*remove)(UiText*, int, int); // text, begin, end char *value; void *obj; void *undomgr; - // TODO: selection, undo, replace, ... + // TODO: replace, ... }; /* @@ -170,6 +192,7 @@ }; + void ui_init(char *appname, int argc, char **argv); char* ui_appname(); @@ -178,7 +201,16 @@ void ui_main(); void ui_show(UiObject *obj); +void ui_close(UiObject *obj); + +void ui_job(ui_threadfunc tf, void *td, ui_callback f, void *fd); + void ui_set_enabled(UIWIDGET widget, int enabled); +void ui_set_show_all(UIWIDGET widget, int value); +void ui_set_visible(UIWIDGET widget, int visible); + +UIWIDGET ui_sidebar(UiObject *obj); +void ui_end(UiObject *obj); void ui_set_document(UiObject *obj, void *document); void ui_detach_document(UiObject *obj, void *document); @@ -197,6 +229,9 @@ void ui_document_setint(void *doc, char *name, int val); int ui_document_getint(void *doc, char *name); +void ui_document_regtext(void *doc, char *name, UiText *text); +void ui_document_reglist(void *doc, char *name, UiList *list); + // new: int ui_getint(UiObject *obj, char *name); @@ -226,6 +261,8 @@ void ui_clipboard_set(char *str); char* ui_clipboard_get(); +void ui_add_image(char *imgname, char *filename); + #ifdef __cplusplus } #endif