Did some build fixes.

This commit is contained in:
Pietro Gagliardi 2015-12-16 14:03:47 -05:00
parent a6c0fbdb87
commit e67ed84ad9
3 changed files with 40 additions and 4 deletions

14
area.go Normal file
View File

@ -0,0 +1,14 @@
// 16 december 2015
package ui
// #include "ui.h"
import "C"
// no need to lock this; only the GUI thread can access it
var areas = make(map[*C.uiArea]*Area)
// TODO.
type Area struct {
Control
}

View File

@ -2,6 +2,7 @@
package ui
// #include <stdlib.h>
// #include "ui.h"
// extern void doAreaHandlerDraw(uiAreaHandler *, uiArea *, uiAreaDrawParams *);
// static inline uiAreaHandler *allocAreaHandler(void)
@ -55,7 +56,7 @@ type AreaDrawParams struct {
VScrollPos int
}
// export doAreaHandlerDraw
//export doAreaHandlerDraw
func doAreaHandlerDraw(uah *C.uiAreaHandler, ua *C.uiArea, udp *C.uiAreaDrawParams) {
ah := areahandlers[uah]
a := areas[ua]

27
draw.go
View File

@ -32,14 +32,35 @@ import "C"
// dp.Context.Clip(p)
// // ...
// p.Free() // when done with the path
//
// A Path also defines its fill mode. (This should ideally be a fill
// parameter, but some implementations prevent it.)
// TODO talk about fill modes
type Path struct {
p *C.uiDrawPath
}
// NewPath creates a new Path.
func NewPath() *Path {
// TODO
type FillMode uint
const (
Winding FillMode = iota
Alternate
)
// NewPath creates a new Path with the given fill mode.
func NewPath(fillMode FillMode) *Path {
var fm C.uiDrawFillMode
switch fillMode {
case Winding:
fm = C.uiDrawFillModeWinding
case Alternate:
fm = C.uiDrawFillModeAlternate
default:
panic("invalid fill mode passed to ui.NewPath()")
}
return &Path{
p: C.uiDrawNewPath(),
p: C.uiDrawNewPath(fm),
}
}