summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2018-08-26 17:22:05 -0400
committerPietro Gagliardi <[email protected]>2018-08-26 17:22:05 -0400
commit2c275b76aefba775c140584fe39a1912cd4556ff (patch)
treef71dc43758b19d4ed093618d72d36f007077a677
parent246950deed73be2c2c6175496b1e72b96f8f4d46 (diff)
And finally migrated Area back.
-rw-r--r--area.go (renamed from BBB_GOFILES/area.go)2
-rw-r--r--areahandler.go (renamed from BBB_GOFILES/areahandler.go)49
-rw-r--r--pkgui.c18
-rw-r--r--pkgui.h4
4 files changed, 36 insertions, 37 deletions
diff --git a/BBB_GOFILES/area.go b/area.go
index f7ed41c..56160a2 100644
--- a/BBB_GOFILES/area.go
+++ b/area.go
@@ -6,7 +6,7 @@ import (
"unsafe"
)
-// #include "ui.h"
+// #include "pkgui.h"
import "C"
// Area is a Control that represents a blank canvas that a program
diff --git a/BBB_GOFILES/areahandler.go b/areahandler.go
index dbe739e..0e06395 100644
--- a/BBB_GOFILES/areahandler.go
+++ b/areahandler.go
@@ -6,30 +6,7 @@ import (
"unsafe"
)
-// #include <stdlib.h>
-// #include "ui.h"
-// #include "util.h"
-// extern void doAreaHandlerDraw(uiAreaHandler *, uiArea *, uiAreaDrawParams *);
-// extern void doAreaHandlerMouseEvent(uiAreaHandler *, uiArea *, uiAreaMouseEvent *);
-// extern void doAreaHandlerMouseCrossed(uiAreaHandler *, uiArea *, int);
-// extern void doAreaHandlerDragBroken(uiAreaHandler *, uiArea *);
-// extern int doAreaHandlerKeyEvent(uiAreaHandler *, uiArea *, uiAreaKeyEvent *);
-// static inline uiAreaHandler *allocAreaHandler(void)
-// {
-// uiAreaHandler *ah;
-//
-// ah = (uiAreaHandler *) pkguiAlloc(sizeof (uiAreaHandler));
-// ah->Draw = doAreaHandlerDraw;
-// ah->MouseEvent = doAreaHandlerMouseEvent;
-// ah->MouseCrossed = doAreaHandlerMouseCrossed;
-// ah->DragBroken = doAreaHandlerDragBroken;
-// ah->KeyEvent = doAreaHandlerKeyEvent;
-// return ah;
-// }
-// static inline void freeAreaHandler(uiAreaHandler *ah)
-// {
-// free(ah);
-// }
+// #include "pkgui.h"
import "C"
// no need to lock this; only the GUI thread can access it
@@ -122,14 +99,14 @@ type AreaHandler interface {
}
func registerAreaHandler(ah AreaHandler) *C.uiAreaHandler {
- uah := C.allocAreaHandler()
+ uah := C.pkguiAllocAreaHandler()
areahandlers[uah] = ah
return uah
}
func unregisterAreaHandler(uah *C.uiAreaHandler) {
delete(areahandlers, uah)
- C.freeAreaHandler(uah)
+ C.pkguiFreeAreaHandler(uah)
}
// AreaDrawParams provides a drawing context that can be used
@@ -159,8 +136,8 @@ type AreaDrawParams struct {
ClipHeight float64
}
-//export doAreaHandlerDraw
-func doAreaHandlerDraw(uah *C.uiAreaHandler, ua *C.uiArea, udp *C.uiAreaDrawParams) {
+//export pkguiDoAreaHandlerDraw
+func pkguiDoAreaHandlerDraw(uah *C.uiAreaHandler, ua *C.uiArea, udp *C.uiAreaDrawParams) {
ah := areahandlers[uah]
a := ControlFromLibui(uintptr(unsafe.Pointer(ua))).(*Area)
dp := &AreaDrawParams{
@@ -210,8 +187,8 @@ func appendBits(out []uint, held C.uint64_t) []uint {
return out
}
-//export doAreaHandlerMouseEvent
-func doAreaHandlerMouseEvent(uah *C.uiAreaHandler, ua *C.uiArea, ume *C.uiAreaMouseEvent) {
+//export pkguiDoAreaHandlerMouseEvent
+func pkguiDoAreaHandlerMouseEvent(uah *C.uiAreaHandler, ua *C.uiArea, ume *C.uiAreaMouseEvent) {
ah := areahandlers[uah]
a := ControlFromLibui(uintptr(unsafe.Pointer(ua))).(*Area)
me := &AreaMouseEvent{
@@ -229,15 +206,15 @@ func doAreaHandlerMouseEvent(uah *C.uiAreaHandler, ua *C.uiArea, ume *C.uiAreaMo
ah.MouseEvent(a, me)
}
-//export doAreaHandlerMouseCrossed
-func doAreaHandlerMouseCrossed(uah *C.uiAreaHandler, ua *C.uiArea, left C.int) {
+//export pkguiDoAreaHandlerMouseCrossed
+func pkguiDoAreaHandlerMouseCrossed(uah *C.uiAreaHandler, ua *C.uiArea, left C.int) {
ah := areahandlers[uah]
a := ControlFromLibui(uintptr(unsafe.Pointer(ua))).(*Area)
ah.MouseCrossed(a, tobool(left))
}
-//export doAreaHandlerDragBroken
-func doAreaHandlerDragBroken(uah *C.uiAreaHandler, ua *C.uiArea) {
+//export pkguiDoAreaHandlerDragBroken
+func pkguiDoAreaHandlerDragBroken(uah *C.uiAreaHandler, ua *C.uiArea) {
ah := areahandlers[uah]
a := ControlFromLibui(uintptr(unsafe.Pointer(ua))).(*Area)
ah.DragBroken(a)
@@ -252,8 +229,8 @@ type AreaKeyEvent struct {
Up bool
}
-//export doAreaHandlerKeyEvent
-func doAreaHandlerKeyEvent(uah *C.uiAreaHandler, ua *C.uiArea, uke *C.uiAreaKeyEvent) C.int {
+//export pkguiDoAreaHandlerKeyEvent
+func pkguiDoAreaHandlerKeyEvent(uah *C.uiAreaHandler, ua *C.uiArea, uke *C.uiAreaKeyEvent) C.int {
ah := areahandlers[uah]
a := ControlFromLibui(uintptr(unsafe.Pointer(ua))).(*Area)
ke := &AreaKeyEvent{
diff --git a/pkgui.c b/pkgui.c
index 081c956..1527fad 100644
--- a/pkgui.c
+++ b/pkgui.c
@@ -206,3 +206,21 @@ void pkguiFreeDrawTextLayoutParams(uiDrawTextLayoutParams *p)
{
free(p);
}
+
+uiAreaHandler *pkguiAllocAreaHandler(void)
+{
+ uiAreaHandler *ah;
+
+ ah = (uiAreaHandler *) pkguiAlloc(sizeof (uiAreaHandler));
+ ah->Draw = pkguiDoAreaHandlerDraw;
+ ah->MouseEvent = pkguiDoAreaHandlerMouseEvent;
+ ah->MouseCrossed = pkguiDoAreaHandlerMouseCrossed;
+ ah->DragBroken = pkguiDoAreaHandlerDragBroken;
+ ah->KeyEvent = pkguiDoAreaHandlerKeyEvent;
+ return ah;
+}
+
+void pkguiFreeAreaHandler(uiAreaHandler *ah)
+{
+ free(ah);
+}
diff --git a/pkgui.h b/pkgui.h
index 44cd6b3..5081a32 100644
--- a/pkgui.h
+++ b/pkgui.h
@@ -85,4 +85,8 @@ extern void pkguiFreeFontDescriptor(uiFontDescriptor *fd);
extern uiDrawTextLayoutParams *pkguiNewDrawTextLayoutParams(void);
extern void pkguiFreeDrawTextLayoutParams(uiDrawTextLayoutParams *p);
+// area.go
+extern uiAreaHandler *pkguiAllocAreaHandler(void);
+extern void pkguiFreeAreaHandler(uiAreaHandler *ah);
+
#endif