ui/ui/toolkit.h

changeset 33
458831c574f4
parent 29
c96169444d88
child 35
3e8b5c9b4033
--- 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 <Xm/XmAll.h> 
 #define UIWIDGET Widget
 
+#elif defined(UI_QT4) || defined(UI_QT5)
+#ifdef	__cplusplus
+#include <QApplication>
+#include <QWidget>
+#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

mercurial