瀏覽代碼

Mac: UI lib placeholder (#88)

Pascal Peridont 8 年之前
父節點
當前提交
da0bed682f
共有 2 個文件被更改,包括 91 次插入2 次删除
  1. 13 2
      Makefile
  2. 78 0
      libs/ui/ui_stub.c

+ 13 - 2
Makefile

@@ -32,6 +32,10 @@ OPENAL = libs/openal/openal.o
 
 SSL = libs/ssl/ssl.o
 
+UV = libs/uv/uv.o
+
+UI = libs/ui/ui_stub.o
+
 LIB = ${PCRE} ${RUNTIME} ${STD}
 
 BOOT = src/_main.o
@@ -82,7 +86,7 @@ all: libhl hl libs
 install_lib:
 	cp libhl.${LIBEXT} /usr/local/lib
 
-libs: fmt sdl ssl
+libs: fmt sdl ssl openal ui uv
 
 libhl: ${LIB}
 	${CC} -o libhl.$(LIBEXT) -m${ARCH} ${LIBFLAGS} -shared ${LIB} -lpthread -lm
@@ -106,13 +110,20 @@ openal: ${OPENAL} libhl
 ssl: ${SSL} libhl
 	${CC} ${CFLAGS} -shared -o ssl.hdll ${SSL} ${LIBFLAGS} -L. -lhl -lmbedtls -lmbedx509 -lmbedcrypto $(LIBSSL)
 
+ui: ${UI} libhl
+	${CC} ${CFLAGS} -shared -o ui.hdll ${UI} ${LIBFLAGS} -L. -lhl
+
+uv: ${UV} libhl
+	${CC} ${CFLAGS} -shared -o uv.hdll ${UV} ${LIBFLAGS} -L. -lhl -luv
+
+
 .SUFFIXES : .c .o
 
 .c.o :
 	${CC} ${CFLAGS} -o $@ -c $<
 
 clean_o:
-	rm -f ${STD} ${BOOT} ${RUNTIME} ${PCRE} ${HL} ${FMT} ${SDL} ${SSL}
+	rm -f ${STD} ${BOOT} ${RUNTIME} ${PCRE} ${HL} ${FMT} ${SDL} ${SSL} ${OPENAL} ${UI} ${UV}
 
 clean: clean_o
 	rm -f hl hl.exe libhl.$(LIBEXT) *.hdll

+ 78 - 0
libs/ui/ui_stub.c

@@ -0,0 +1,78 @@
+#define HL_NAME(n) ui_##n
+#include <hl.h>
+#include <unistd.h>
+
+#define wref void
+#define vsentinel void
+
+HL_PRIM void HL_NAME(ui_init)() {
+}
+
+HL_PRIM int HL_NAME(ui_dialog)( const uchar *title, const uchar *message, int flags ) {
+	return 0;
+}
+
+HL_PRIM wref *HL_NAME(ui_winlog_new)( const uchar *title, int width, int height ) {
+	return NULL;
+}
+
+HL_PRIM wref *HL_NAME(ui_button_new)( wref *w, const uchar *txt, vclosure *callb ) {
+	return NULL;
+}
+
+HL_PRIM void HL_NAME(ui_winlog_set_text)( wref *w, const uchar *txt, bool autoScroll ) {
+}
+
+HL_PRIM void HL_NAME(ui_win_set_text)( wref *w, const uchar *txt ) {
+}
+
+HL_PRIM void HL_NAME(ui_win_set_enable)( wref *w, bool enable ) {
+}
+
+HL_PRIM void HL_NAME(ui_win_destroy)( wref *w ) {
+}
+
+HL_PRIM int HL_NAME(ui_loop)( bool blocking ) {
+	return 1;
+}
+
+HL_PRIM void HL_NAME(ui_stop_loop)() {
+	// TODO ?
+}
+
+HL_PRIM vsentinel *HL_NAME(ui_start_sentinel)( double timeout, vclosure *c ) {
+	return NULL;
+}
+
+HL_PRIM void HL_NAME(ui_sentinel_tick)( vsentinel *s ) {
+}
+
+HL_PRIM void HL_NAME(ui_sentinel_pause)( vsentinel *s, bool pause ) {
+}
+
+HL_PRIM bool HL_NAME(ui_sentinel_is_paused)( vsentinel *s ) {
+	return false;
+}
+
+HL_PRIM void HL_NAME(ui_close_console)() {
+}
+
+#define _WIN _ABSTRACT(ui_window)
+#define _SENTINEL _ABSTRACT(ui_sentinel)
+
+DEFINE_PRIM(_VOID, ui_init, _NO_ARG);
+DEFINE_PRIM(_I32, ui_dialog, _BYTES _BYTES _I32);
+DEFINE_PRIM(_WIN, ui_winlog_new, _BYTES _I32 _I32);
+DEFINE_PRIM(_WIN, ui_button_new, _WIN _BYTES _FUN(_VOID,_NO_ARG));
+DEFINE_PRIM(_VOID, ui_winlog_set_text, _WIN _BYTES _BOOL);
+DEFINE_PRIM(_VOID, ui_win_set_text, _WIN _BYTES);
+DEFINE_PRIM(_VOID, ui_win_set_enable, _WIN _BOOL);
+DEFINE_PRIM(_VOID, ui_win_destroy, _WIN);
+DEFINE_PRIM(_I32, ui_loop, _BOOL);
+DEFINE_PRIM(_VOID, ui_stop_loop, _NO_ARG);
+DEFINE_PRIM(_VOID, ui_close_console, _NO_ARG);
+
+DEFINE_PRIM(_SENTINEL, ui_start_sentinel, _F64 _FUN(_VOID,_NO_ARG));
+DEFINE_PRIM(_VOID, ui_sentinel_tick, _SENTINEL);
+DEFINE_PRIM(_VOID, ui_sentinel_pause, _SENTINEL _BOOL);
+DEFINE_PRIM(_BOOL, ui_sentinel_is_paused, _SENTINEL);